aboutsummaryrefslogtreecommitdiff
path: root/docs/content/reboot.md
diff options
context:
space:
mode:
authorMark Otto <[email protected]>2015-08-09 23:38:16 -0700
committerMark Otto <[email protected]>2015-08-09 23:38:16 -0700
commiteaeee93fa34092ee7c107d75edffd6c8274c15fb (patch)
treedd3c7e7a09c4879ebf26a1621e1351414d3de6c9 /docs/content/reboot.md
parent317c667d1c0d1d0984d863d9d4baad9e1a25b1c6 (diff)
downloadbootstrap-eaeee93fa34092ee7c107d75edffd6c8274c15fb.tar.xz
bootstrap-eaeee93fa34092ee7c107d75edffd6c8274c15fb.zip
docs rearrange
Diffstat (limited to 'docs/content/reboot.md')
-rw-r--r--docs/content/reboot.md286
1 files changed, 286 insertions, 0 deletions
diff --git a/docs/content/reboot.md b/docs/content/reboot.md
new file mode 100644
index 000000000..3d0568846
--- /dev/null
+++ b/docs/content/reboot.md
@@ -0,0 +1,286 @@
+---
+layout: page
+title: Reboot
+group: content
+---
+
+Part of Bootstrap's job is to provide an elegant, consistent, and simple baseline to build upon. We use Reboot, a collection of element-specific CSS changes in a single file, to kickstart that.
+
+Reboot builds upon Normalize, providing many HTML elements with somewhat opinionated styles using only element selectors. Additional styling is done only with classes. For example, we reboot some `<table>` styles for a simpler baseline and later provide `.table`, `.table-bordered`, and more.
+
+## Contents
+
+* Will be replaced with the ToC, excluding the "Contents" header
+{:toc}
+
+## Approach
+
+Here are our guidelines and reasons for choosing what to override in Reboot:
+
+- Update some browser default values to use `rem`s instead of `em`s for scalable component spacing.
+- Avoid `margin-top`. Vertical margins can collapse, yielding unexpected results. More importantly though, a single direction of `margin` is a simpler mental model.
+- For easier scaling across device sizes, block elements should use `rem`s for `margin`s.
+- Keep declarations of `font`-related properties to a minimal, using `inherit` whenever possible.
+
+## Page defaults
+
+The `<html>` and `<body>` elements are updated to provide better page-wide defaults. More specifically:
+
+- The `box-sizing` is globally set on every element—including `*:before` and `*after`, to `border-box`. This ensures that the declared width of element is never exceeded due to padding or border.
+- A base `font-size: 16px` is declared on the `<html>` and `font-size: 1rem` on the `<body>` for easy responsive type-scaling via media queryies.
+- The `<body>` also sets a global `font-family` and `line-height`. This is inherited later by some form elements to prevent font inconsistencies.
+- For safety, the `<body>` has a declared `background-color`, defaulting to `#fff`.
+
+## Headings and paragraphs
+
+All heading elements—e.g., `<h1>`—and `<p>` are reset to have their `margin-top` removed. Headings have `margin-bottom: .5rem` added and paragraphs `margin-bottom: 1rem` for easy spacing.
+
+<div class="bd-example">
+{% markdown %}
+# h1 heading
+Curabitur blandit tempus porttitor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
+
+## h2 heading
+Curabitur blandit tempus porttitor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
+
+### h3 heading
+Curabitur blandit tempus porttitor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
+
+#### h4 heading
+Curabitur blandit tempus porttitor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
+
+##### h5 heading
+Curabitur blandit tempus porttitor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
+
+###### h6 heading
+Curabitur blandit tempus porttitor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
+{% endmarkdown %}
+</div>
+
+## Lists
+
+All lists—`<ul>`, `<ol>`, and `<dl>`—have their `margin-top` removed and a `margin-bottom: 1rem`. Nested lists have no `margin-bottom`.
+
+<div class="bd-example">
+{% markdown %}
+* Lorem ipsum dolor sit amet
+* Consectetur adipiscing elit
+* Integer molestie lorem at massa
+* Facilisis in pretium nisl aliquet
+* Nulla volutpat aliquam velit
+ * Phasellus iaculis neque
+ * Purus sodales ultricies
+ * Vestibulum laoreet porttitor sem
+ * Ac tristique libero volutpat at
+* Faucibus porta lacus fringilla vel
+* Aenean sit amet erat nunc
+* Eget porttitor lorem
+
+1. Lorem ipsum dolor sit amet
+2. Consectetur adipiscing elit
+3. Integer molestie lorem at massa
+4. Facilisis in pretium nisl aliquet
+5. Nulla volutpat aliquam velit
+6. Faucibus porta lacus fringilla vel
+7. Aenean sit amet erat nunc
+8. Eget porttitor lorem
+{% endmarkdown %}
+</div>
+
+For simpler styling, clear hierarchy, and better spacing, description lists have updated `margin`s. `<dd>`s reset `margin-left` to `0` and add `margin-bottom: .5rem`. `<dt>`s are **bolded**.
+
+<div class="bd-example">
+{% markdown %}
+<dl>
+ <dt>Description lists</dt>
+ <dd>A description list is perfect for defining terms.</dd>
+ <dt>Euismod</dt>
+ <dd>Vestibulum id ligula porta felis euismod semper eget lacinia odio sem.</dd>
+ <dd>Donec id elit non mi porta gravida at eget metus.</dd>
+ <dt>Malesuada porta</dt>
+ <dd>Etiam porta sem malesuada magna mollis euismod.</dd>
+</dl>
+{% endmarkdown %}
+</div>
+
+## Preformatted text
+
+The `<pre>` element is reset to remove its `margin-top` and use `rem` units for its `margin-bottom`.
+
+<div class="bd-example">
+{% markdown %}
+<pre>
+.element {
+ margin-bottom: 1rem;
+}
+</pre>
+{% endmarkdown %}
+</div>
+
+## Tables
+
+Tables are slightly adjusted to style `<caption>`s and ensure consistent `text-align` throughout. Additional changes for borders, padding, and more come with [the `.table` class](/components/tables/).
+
+<div class="bd-example">
+ <table>
+ <caption>
+ This is an example table, and this is its caption to describe the contents.
+ </caption>
+ <thead>
+ <tr>
+ <th>Table heading</th>
+ <th>Table heading</th>
+ <th>Table heading</th>
+ <th>Table heading</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ </tr>
+ <tr>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ </tr>
+ <tr>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ <td>Table cell</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+## Forms
+
+Various form elements have been rebooted for simpler base styles. Here are some of the most notable changes:
+
+- `<fieldset>`s have no borders, padding, or margin so they can be easily used as wrappers for individual inputs or groups of inputs.
+- `<legend>`s, like fieldsets, have also been restyled to be displayed as a heading of sorts.
+- `<label>`s are set to `display: inline-block` to allow `margin` to be applied.
+- `<input>`s, `<selects>`s, `<textareas>`s, and `<buttons>`s are mostly addressed by Normalize, but Reboot removes their `margin` and sets `line-height: inherit`, too.
+- `<textarea>`s are modified to only be resizeble vertically as horizontal resizing often "breaks" page layout.
+
+These changes, and more, are demonstrated below.
+
+<form class="bd-example">
+ <fieldset>
+ <legend>Example legend</legend>
+
+ <p>
+ <label for="input">Example input</label>
+ <input type="text" id="input" placeholder="Example input">
+ </p>
+
+ <p>
+ <label for="select">Example select</label>
+ <select id="select">
+ <option value="">Choose...</option>
+ <optgroup label="Option group 1">
+ <option value="">Option 1</option>
+ <option value="">Option 2</option>
+ <option value="">Option 3</option>
+ </optgroup>
+ <optgroup label="Option group 2">
+ <option value="">Option 4</option>
+ <option value="">Option 5</option>
+ <option value="">Option 6</option>
+ </optgroup>
+ </select>
+ </p>
+
+ <p>
+ <label>
+ <input type="checkbox" value="">
+ Check this checkbox
+ </label>
+ </p>
+
+ <p>
+ <label>
+ <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>
+ Option one is this and that
+ </label>
+ <label>
+ <input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">
+ Option two is something else that's also super long to demonstrate the wrapping of these fancy form controls.
+ </label>
+ <label>
+ <input type="radio" name="optionsRadios" id="optionsRadios3" value="option3" disabled>
+ Option three is disabled
+ </label>
+ </p>
+
+ <p>
+ <label for="textarea">Example textarea</label>
+ <textarea id="textarea" rows="3"></textarea>
+ </p>
+
+ <p>
+ <label for="time">Example temporal</label>
+ <input type="datetime" id="time">
+ </p>
+
+ <p>
+ <label for="output">Example output</label>
+ <output name="result" id="output">100</output>
+ </p>
+
+ <p>
+ <button type="submit">Button submit</button>
+ <input type="submit" value="Input submit button">
+ <input type="button" value="Input button">
+ </p>
+
+ <p>
+ <button type="submit" disabled>Button submit</button>
+ <input type="submit" value="Input submit button" disabled>
+ <input type="button" value="Input button" disabled>
+ </p>
+ </fieldset>
+</form>
+
+## Misc elements
+
+### Address
+
+The `<address>` element is updated to reset the browser default `font-style` from `italic` to `normal`. `line-height` is also now inherited, and `margin-bottom: 1rem` has been added. `<address>`s are for presenting contact information for the nearest ancestor (or an entire body of work). Preserve formatting by ending lines with `<br>`.
+
+<div class="bd-example">
+ <address>
+ <strong>Twitter, Inc.</strong><br>
+ 1355 Market St, Suite 900<br>
+ San Francisco, CA 94103<br>
+ <abbr title="Phone">P:</abbr> (123) 456-7890
+ </address>
+
+ <address>
+ <strong>Full Name</strong><br>
+ <a href="mailto:#">[email protected]</a>
+ </address>
+</div>
+
+### Blockquote
+
+The default `margin` on blockquotes is `1em 40px`, so we reset that to `0 0 1rem` for something more consistent with other elements.
+
+<div class="bd-example">
+ <blockquote>
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
+ <footer>Someone famous in <cite title="Source Title">Source Title</cite></footer>
+ </blockquote>
+</div>
+
+### Inline elements
+
+The `<abbr>` element receives basic styling to make it stand the amongst paragraph text.
+
+<div class="bd-example">
+ Nulla <abbr title="attribute">attr</abbr> vitae elit libero, a pharetra augue.
+</div>