- `} />
-
-## CSS
-
-### Sass variables
-
-
diff --git a/site/src/content/docs/forms/switch.mdx b/site/src/content/docs/forms/switch.mdx
new file mode 100644
index 0000000000..c98f424d8c
--- /dev/null
+++ b/site/src/content/docs/forms/switch.mdx
@@ -0,0 +1,68 @@
+---
+title: Switch
+description: Custom toggle component built on top of native `` checkbox elements.
+toc: true
+---
+
+## Basic switch
+
+Switches are built with checkboxes under the hood, so their HTML closely mirrors that of checkboxes, including optional layout components.
+
+Switches work by layering an invisible checkbox over the custom switch indicator. This preserves interactivity while giving you a completely customizable layer underneath.
+
+Switches also include the `switch` attribute for browsers that support it. This provides haptic feedback when toggling the switch.
+
+
+
+ `} />
+
+## Label
+
+Wrap the `.switch` in a `` layout component and add your label. We use a custom element for layout here that sets some basic flexbox styling. Switches are checkboxes under the hood, so we reused the same custom element here.
+
+Consider margin utilities for additional spacing, and flex utilities for alignment, especially when using small or large switches.
+
+
+
+
+
+ Small switch
+
+
+
+
+
+
+ Default switch
+ `} />
+
+## Disabled
+
+Add the `disabled` attribute and the associated ``s are automatically styled to match with a lighter color to help indicate the input’s state.
+
+
+
+
+
+ Disabled switch
+ `} />
+
+## Sizes
+
+Add a size modifier class to make your switch appear smaller or larger.
+
+
+
+
+
+
+
+
+
+
`} />
+
+## CSS
+
+### Variables
+
+
diff --git a/site/src/content/docs/migration.mdx b/site/src/content/docs/migration.mdx
index 9e80d14520..205dcb2c4d 100644
--- a/site/src/content/docs/migration.mdx
+++ b/site/src/content/docs/migration.mdx
@@ -5,7 +5,46 @@ aliases: "/migration/"
toc: true
---
-## v6.0.0
+## v6.0.0 Migration
+
+Bootstrap 6 is a major release with many breaking changes to modernize our codebase, adopt newer build tools, and improve customization. Keep reading for a guide on how to migrate from v5 to v6, and a full changelog of what's new.
+
+1. Bump your Bootstrap dependency:
+
+ ```json
+ {
+ "dependencies": {
+ "bootstrap": "^6.0.0"
+ }
+ }
+ ```
+
+2. If using all of Bootstrap's Sass files, include it in your Sass using `@use`:
+
+ ```scss
+ @use "bootstrap/scss/bootstrap";
+ ```
+
+ With this, you can then easily override Bootstrap's Sass variables and maps:
+
+ ```scss
+ @use "bootstrap/scss/bootstrap" with (
+ $spacer: 1rem,
+ $enable-reduced-motion: true,
+ );
+ ```
+
+3. If using only certain parts of Bootstrap's Sass files, you can use `@use` to import them individually. Be aware that our Sass file structure has changed and you may need to adjust your imports accordingly.
+
+ ```scss
+ @use "bootstrap/scss/forms";
+ ```
+
+4. Update HTML and CSS per the changelog and updates in the documentation.
+
+5. Recompile your Sass to see the changes.
+
+## v6.0.0 Changelog
### CSS
@@ -44,6 +83,21 @@ toc: true
- Relocated heading classes (like `.h1`) and some type classes (`.mark` and `.small`) to Reboot from `_type.scss`. This avoids a dependency in Sass modules and we like to avoid extending selectors in general.
+### Forms
+
+- **Refactor checks, radios, and switches.**
+ - Split apart `_form-check.scss` into separate stylesheets: `_checkbox.scss`, `_radio.scss`, and `_switch.scss`.
+ - Also split apart the documentation pages for checks, radios, and switches.
+ - Added new CSS variables on each of these components. _Side note: we could've shared variables here, but chose not to for simplicity's sake._
+ - Removed several now unused Sass variables.
+ - Checkboxes now have a wrapping element and an SVG in the DOM for checked and indeterminate states. Radios and switches do not.
+ - Revamped layout for checks, radios, and switches with labels (and descriptions). We now have custom elements for layout that include basic flexbox styling.
+ - @mdo-do: Decide on fate of `.form-check-reverse` and `.btn-check`
+- **Consolidate `.form-select` into `.form-control`.**
+ - Removed `.form-select`—use `.form-control` on `` elements now. Too much abstraction and duplication at the same time.
+ - Adds new CSS variables on `.form-control` for easier customization without Sass compilation.
+ - `.form-control` now has a `min-height` at all times as opposed to just on `