diff --git a/docs/_utils/filters.js b/docs/_utils/filters.js
index fe2a65591..367960baf 100644
--- a/docs/_utils/filters.js
+++ b/docs/_utils/filters.js
@@ -133,3 +133,32 @@ export function sort(arr, keys = ['data.order', 'data.title']) {
}
});
}
+
+export function groupByTags(collection, tags) {
+ let ret = Object.fromEntries(tags.map(tag => [tag, []]));
+ ret.other = [];
+
+ for (let item of collection) {
+ let categorized = false;
+
+ for (let tag of tags) {
+ if (item.data.tags.includes(tag)) {
+ ret[tag].push(item);
+ categorized = true;
+ }
+ }
+
+ if (!categorized) {
+ ret.other.push(item);
+ }
+ }
+
+ // Remove empty categories
+ for (let category in ret) {
+ if (ret[category].length === 0) {
+ delete ret[category];
+ }
+ }
+
+ return ret;
+}
diff --git a/docs/docs/components/checkbox.md b/docs/docs/components/checkbox.md
index b34179270..57ff73526 100644
--- a/docs/docs/components/checkbox.md
+++ b/docs/docs/components/checkbox.md
@@ -1,7 +1,8 @@
---
title: Checkbox
description: Checkboxes allow the user to toggle an option on or off.
-tags: component
+tags: forms
+native: checkbox
---
```html {.example}
diff --git a/docs/docs/components/radio.md b/docs/docs/components/radio.md
index cde6ee2b7..7f26fd587 100644
--- a/docs/docs/components/radio.md
+++ b/docs/docs/components/radio.md
@@ -3,6 +3,7 @@ title: Radio
description: Radios allow the user to select a single option from a group.
tags: component
parent: radio-group
+native: radio
---
Radios are designed to be used with [radio groups](/docs/components/radio-group).
@@ -45,7 +46,7 @@ Use the `disabled` attribute to disable a radio.
```
-## Sizes
+### Sizes
Add the `size` attribute to the [Radio Group](/docs/components/radio-group) to change the radios' size.
diff --git a/docs/docs/components/range.md b/docs/docs/components/range.md
index c3db10ce8..b315eacf1 100644
--- a/docs/docs/components/range.md
+++ b/docs/docs/components/range.md
@@ -1,7 +1,8 @@
---
title: Range
description: Ranges allow the user to select a single value within a given range using a slider.
-tags: component
+tags: forms
+native: slider
---
```html {.example}
diff --git a/docs/docs/components/select.md b/docs/docs/components/select.md
index e4db90431..44b7d5cb7 100644
--- a/docs/docs/components/select.md
+++ b/docs/docs/components/select.md
@@ -1,8 +1,8 @@
---
title: Select
description: Selects allow you to choose items from a menu of predefined options.
-tags: component
-native: input
+tags: forms
+native: select
---
```html {.example}
diff --git a/docs/docs/components/textarea.md b/docs/docs/components/textarea.md
index 6c41b6a1b..4e6970f94 100644
--- a/docs/docs/components/textarea.md
+++ b/docs/docs/components/textarea.md
@@ -1,7 +1,8 @@
---
title: Textarea
description: Textareas collect data from the user and allow multiple lines of text.
-tags: component
+tags: forms
+icon: textarea
native: input
---
@@ -113,4 +114,4 @@ Textareas can be made to resize both vertically and horizontally when `resize` i
```html {.example}
-```
\ No newline at end of file
+```
diff --git a/docs/docs/native/button.md b/docs/docs/native/button.md
index b5eafe84a..cae3d9bba 100644
--- a/docs/docs/native/button.md
+++ b/docs/docs/native/button.md
@@ -1,8 +1,7 @@
---
title: Button
description: 'Button styles apply your Web Awesome theme to native HTML buttons. Buttons are activated by users to perform actions, such as submitting a form.'
-tags: native
-layout: element
+tags: forms
component: button
icon: button
---
diff --git a/docs/docs/native/checkbox.md b/docs/docs/native/checkbox.md
new file mode 100644
index 000000000..0fd173e66
--- /dev/null
+++ b/docs/docs/native/checkbox.md
@@ -0,0 +1,89 @@
+---
+title: Checkbox
+description: Checkboxes allow the user to toggle an option on or off.
+tags: forms
+component: checkbox
+icon: checkbox
+elements:
+ "": https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox
+---
+
+```html {.example}
+
+```
+
+## Examples
+
+### Checked
+
+Use the `checked` attribute to activate the checkbox.
+
+```html {.example}
+
+```
+
+
+
+### Disabled
+
+Use the `disabled` attribute to disable the checkbox.
+
+```html {.example}
+
+```
+
+
+
+### Custom Validity
+
+Use the `setCustomValidity()` method to set a custom validation message. This will prevent the form from submitting and make the browser display the error message you provide. To clear the error, call this function with an empty string.
+
+```html {.example}
+
+
+```
diff --git a/docs/docs/native/content.md b/docs/docs/native/content.md
index d29f8bfe3..63fd07ecc 100644
--- a/docs/docs/native/content.md
+++ b/docs/docs/native/content.md
@@ -1,7 +1,7 @@
---
title: Content
description: 'Content styles apply your Web Awesome theme to HTML text content, code, and images.'
-tags: native
+tags: content
layout: element
icon: skeleton
---
diff --git a/docs/docs/native/details.md b/docs/docs/native/details.md
index b26093edb..3e0e4c100 100644
--- a/docs/docs/native/details.md
+++ b/docs/docs/native/details.md
@@ -1,7 +1,7 @@
---
title: Details
description: 'Details styles apply your Web Awesome theme to the HTML `` element. Details show a brief summary and expand to show additional content.'
-tags: native
+tags: apps
layout: element
component: details
icon: details
diff --git a/docs/docs/native/dialog.md b/docs/docs/native/dialog.md
index 212ea3d2f..4d4309850 100644
--- a/docs/docs/native/dialog.md
+++ b/docs/docs/native/dialog.md
@@ -1,8 +1,7 @@
---
title: Dialog
description: 'Dialog styles apply your Web Awesome theme to the HTML `