aboutsummaryrefslogtreecommitdiff
path: root/docs/components/custom-forms.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/components/custom-forms.md')
-rw-r--r--docs/components/custom-forms.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/components/custom-forms.md b/docs/components/custom-forms.md
index f88d18dab..93f0634f6 100644
--- a/docs/components/custom-forms.md
+++ b/docs/components/custom-forms.md
@@ -7,6 +7,18 @@ In the interest of customization and cross browser consistency, Bootstrap includ
## Checkboxes and radios
+Each checkbox and radio is wrapped in a `<label>` for three reasons:
+
+- It provides a larger hit areas for checking the control.
+- It provides a helpful and semantic wrapper to help us replace the default `<input>`s.
+- It triggers the state of the `<input>` automatically, meaning no JavaScript is required.
+
+We hide the default `<input>` with `opacity` and use the `.c-indicator` to build a new custom form control. We can't build a custom one from just the `<input>` because CSS's `content` doesn't work on that element.
+
+With the sibling selector (`~`), we use the `:checked` state to trigger a makeshift checked state on the custom control.
+
+In the checked states, we use **base64 embedded SVG icons** from [Open Iconic](http://useiconic.com/open). This provides us the best control for styling and positioning across browsers and devices.
+
### Checkboxes
{% example html %}