aboutsummaryrefslogtreecommitdiff
path: root/docs/4.0/components/input-group.md
diff options
context:
space:
mode:
authorMark Otto <[email protected]>2017-05-28 22:50:57 -0700
committerMark Otto <[email protected]>2017-05-29 23:32:28 -0700
commit3e76d6565603fafa2c85ad81d7b6345c4e279c72 (patch)
treefad0aa6a4a70cafb4a803bd920d6ae2fa44dc466 /docs/4.0/components/input-group.md
parent32153eb7cba316b873e82cd7b9362c92ca00eddf (diff)
downloadbootstrap-3e76d6565603fafa2c85ad81d7b6345c4e279c72.tar.xz
bootstrap-3e76d6565603fafa2c85ad81d7b6345c4e279c72.zip
Rearrange all the docs to allow for a docs/major.minor/ setup
Diffstat (limited to 'docs/4.0/components/input-group.md')
-rw-r--r--docs/4.0/components/input-group.md237
1 files changed, 237 insertions, 0 deletions
diff --git a/docs/4.0/components/input-group.md b/docs/4.0/components/input-group.md
new file mode 100644
index 000000000..144d6f628
--- /dev/null
+++ b/docs/4.0/components/input-group.md
@@ -0,0 +1,237 @@
+---
+layout: docs
+title: Input group
+description: Easily extend form controls by adding text, buttons, or button groups on either side of textual inputs.
+group: components
+toc: true
+---
+
+## Basic example
+
+Place one add-on or button on either side of an input. You may also place one on both sides of an input. **We do not support multiple form-controls in a single input group.**
+
+{% example html %}
+<div class="input-group">
+ <span class="input-group-addon" id="basic-addon1">@</span>
+ <input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
+</div>
+<br>
+<div class="input-group">
+ <input type="text" class="form-control" placeholder="Recipient's username" aria-label="Recipient's username" aria-describedby="basic-addon2">
+ <span class="input-group-addon" id="basic-addon2">@example.com</span>
+</div>
+<br>
+<label for="basic-url">Your vanity URL</label>
+<div class="input-group">
+ <span class="input-group-addon" id="basic-addon3">https://example.com/users/</span>
+ <input type="text" class="form-control" id="basic-url" aria-describedby="basic-addon3">
+</div>
+<br>
+<div class="input-group">
+ <span class="input-group-addon">$</span>
+ <input type="text" class="form-control" aria-label="Amount (to the nearest dollar)">
+ <span class="input-group-addon">.00</span>
+</div>
+<br>
+<div class="input-group">
+ <span class="input-group-addon">$</span>
+ <span class="input-group-addon">0.00</span>
+ <input type="text" class="form-control" aria-label="Amount (to the nearest dollar)">
+</div>
+{% endexample %}
+
+## Sizing
+
+Add the relative form sizing classes to the `.input-group` itself and contents within will automatically resize—no need for repeating the form control size classes on each element.
+
+{% example html %}
+<div class="input-group input-group-lg">
+ <span class="input-group-addon" id="sizing-addon1">@</span>
+ <input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="sizing-addon1">
+</div>
+<br>
+<div class="input-group">
+ <span class="input-group-addon" id="sizing-addon2">@</span>
+ <input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="sizing-addon2">
+</div>
+{% endexample %}
+
+## Checkboxes and radio addons
+
+Place any checkbox or radio option within an input group's addon instead of text.
+
+{% example html %}
+<div class="row">
+ <div class="col-lg-6">
+ <div class="input-group">
+ <span class="input-group-addon">
+ <input type="checkbox" aria-label="Checkbox for following text input">
+ </span>
+ <input type="text" class="form-control" aria-label="Text input with checkbox">
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="input-group">
+ <span class="input-group-addon">
+ <input type="radio" aria-label="Radio button for following text input">
+ </span>
+ <input type="text" class="form-control" aria-label="Text input with radio button">
+ </div>
+ </div>
+</div>
+{% endexample %}
+
+## Multiple addons
+
+Multiple add-ons are supported and can be mixed with checkbox and radio input versions.
+
+{% example html %}
+<div class="row">
+ <div class="col-lg-6">
+ <div class="input-group">
+ <span class="input-group-addon">
+ <input type="checkbox" aria-label="Checkbox for following text input">
+ </span>
+ <span class="input-group-addon">$</span>
+ <input type="text" class="form-control" aria-label="Text input with checkbox">
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="input-group">
+ <span class="input-group-addon">$</span>
+ <span class="input-group-addon">0.00</span>
+ <input type="text" class="form-control" aria-label="Text input with radio button">
+ </div>
+ </div>
+</div>
+{% endexample %}
+
+
+## Button addons
+
+Buttons in input groups must wrapped in a `.input-group-btn` for proper alignment and sizing. This is required due to default browser styles that cannot be overridden.
+
+{% example html %}
+<div class="row">
+ <div class="col-lg-6">
+ <div class="input-group">
+ <span class="input-group-btn">
+ <button class="btn btn-secondary" type="button">Go!</button>
+ </span>
+ <input type="text" class="form-control" placeholder="Search for..." aria-label="Search for...">
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="input-group">
+ <input type="text" class="form-control" placeholder="Search for..." aria-label="Search for...>
+ <span class="input-group-btn">
+ <button class="btn btn-secondary" type="button">Go!</button>
+ </span>
+ </div>
+ </div>
+</div>
+<br>
+<div class="row">
+ <div class="col-lg-offset-3 col-lg-6">
+ <div class="input-group">
+ <span class="input-group-btn">
+ <button class="btn btn-secondary" type="button">Hate it</button>
+ </span>
+ <input type="text" class="form-control" placeholder="Product name" aria-label="Product name">
+ <span class="input-group-btn">
+ <button class="btn btn-secondary" type="button">Love it</button>
+ </span>
+ </div>
+ </div>
+</div>
+{% endexample %}
+
+## Buttons with dropdowns
+
+{% example html %}
+<div class="row">
+ <div class="col-lg-6">
+ <div class="input-group">
+ <div class="input-group-btn">
+ <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Action
+ </button>
+ <div class="dropdown-menu">
+ <a class="dropdown-item" href="#">Action</a>
+ <a class="dropdown-item" href="#">Another action</a>
+ <a class="dropdown-item" href="#">Something else here</a>
+ <div role="separator" class="dropdown-divider"></div>
+ <a class="dropdown-item" href="#">Separated link</a>
+ </div>
+ </div>
+ <input type="text" class="form-control" aria-label="Text input with dropdown button">
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="input-group">
+ <input type="text" class="form-control" aria-label="Text input with dropdown button">
+ <div class="input-group-btn">
+ <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Action
+ </button>
+ <div class="dropdown-menu dropdown-menu-right">
+ <a class="dropdown-item" href="#">Action</a>
+ <a class="dropdown-item" href="#">Another action</a>
+ <a class="dropdown-item" href="#">Something else here</a>
+ <div role="separator" class="dropdown-divider"></div>
+ <a class="dropdown-item" href="#">Separated link</a>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+{% endexample %}
+
+## Segmented buttons
+
+{% example html %}
+<div class="row">
+ <div class="col-lg-6">
+ <div class="input-group">
+ <div class="input-group-btn">
+ <button type="button" class="btn btn-secondary">Action</button>
+ <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <span class="sr-only">Toggle Dropdown</span>
+ </button>
+ <div class="dropdown-menu">
+ <a class="dropdown-item" href="#">Action</a>
+ <a class="dropdown-item" href="#">Another action</a>
+ <a class="dropdown-item" href="#">Something else here</a>
+ <div role="separator" class="dropdown-divider"></div>
+ <a class="dropdown-item" href="#">Separated link</a>
+ </div>
+ </div>
+ <input type="text" class="form-control" aria-label="Text input with segmented button dropdown">
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="input-group">
+ <input type="text" class="form-control" aria-label="Text input with segmented button dropdown">
+ <div class="input-group-btn">
+ <button type="button" class="btn btn-secondary">Action</button>
+ <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <span class="sr-only">Toggle Dropdown</span>
+ </button>
+ <div class="dropdown-menu dropdown-menu-right">
+ <a class="dropdown-item" href="#">Action</a>
+ <a class="dropdown-item" href="#">Another action</a>
+ <a class="dropdown-item" href="#">Something else here</a>
+ <div role="separator" class="dropdown-divider"></div>
+ <a class="dropdown-item" href="#">Separated link</a>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+{% endexample %}
+
+## Accessibility
+
+Screen readers will have trouble with your forms if you don't include a label for every input. For these input groups, ensure that any additional label or functionality is conveyed to assistive technologies.
+
+The exact technique to be used (`<label>` elements hidden using the `.sr-only` class, or use of the `aria-label` and `aria-labelledby` attributes, possibly in combination with `aria-describedby`) and what additional information will need to be conveyed will vary depending on the exact type of interface widget you're implementing. The examples in this section provide a few suggested, case-specific approaches.