Reboot

Reboot, a collection of element-specific CSS changes in a single file, kickstart Bootstrap to provide an elegant, consistent, and simple baseline to build upon.

Approach

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.

Headings

All heading elements—<h1>—<h6> have their margin-top removed, margin-bottom: .5rem set, and line-height tightened. While headings inherit their color by default, you can also override it via optional CSS variable, --bs-heading-color.

h1. Bootstrap heading

h2. Bootstrap heading

h3. Bootstrap heading

h4. Bootstrap heading

h5. Bootstrap heading
h6. Bootstrap heading

h1. Bootstrap heading

h2. Bootstrap heading

h3. Bootstrap heading

h4. Bootstrap heading

h5. Bootstrap heading
h6. Bootstrap heading
vue
<template>
 <h1>
  h1. Bootstrap heading
 </h1>
 <h2>
  h2. Bootstrap heading
 </h2>
 <h3>
  h3. Bootstrap heading
 </h3>
 <h4>
  h4. Bootstrap heading
 </h4>
 <h5>
  h5. Bootstrap heading
 </h5>
 <h6>
  h6. Bootstrap heading
 </h6>
</template>
vue
<template>
 <b-h level="1">
  h1. Bootstrap heading
 </b-h>
 <b-h level="2">
  h2. Bootstrap heading
 </b-h>
 <b-h level="3">
  h3. Bootstrap heading
 </b-h>
 <b-h level="4">
  h4. Bootstrap heading
 </b-h>
 <b-h level="5">
  h5. Bootstrap heading
 </b-h>
 <b-h level="6">
  h6. Bootstrap heading
 </b-h>
</template>

Paragraphs

All <p> elements have their margin-top removed and margin-bottom: 1rem set for easy spacing.

This is an example paragraph.

This is an example paragraph.

vue
<template>
 <p>This is an example paragraph.</p>
 <b-p>This is an example paragraph.</b-p>
</template>

Links

Links have a default color and underline applied. While links change on :hover, they don’t change based on whether someone :visited the link. They also receive no special :focus styles.

vue
<template>
 <a to="/">This is an example link</a>
 <hr />
 <Anchor to="#">
  This is an example link
 </Anchor>
</template>

As of v5.3.x, link color is set using rgba() and new -rgb CSS variables, allowing for easy customization of link color opacity. Change the link color opacity with the --bs-link-opacity CSS variable:

vue
<template>
 <a
  to="/"
  style="--bs-link-opacity: .5"
 >This is an example link</a>
 <hr />
 <Anchor
  to="/"
  style="--bs-link-opacity: .5"
 >
  This is an example link
 </Anchor>
</template>

Placeholder links—those without an href—are targeted with a more specific selector and have their color and text-decoration reset to their default values.

vue
<template>
 <a>This is an example link</a>
 <hr />
 <Anchor>This is an example link</Anchor>
</template>

Horizontal rules

The <hr> element has been simplified. Similar to browser defaults, <hr> s are styled via border-top, have a default opacity: .25, and automatically inherit their border-color via color, including when color is set via the parent. They can be modified with text, border, and opacity utilities.









vue
<template>
 <hr />

 <div class="text-success">
  <hr />
 </div>

 <hr class="border border-danger border-2 opacity-50" />
 <hr class="border border-primary border-3 opacity-75" />

 <div margin="y-5">

 </div>

 <b-hr />

 <b-div text-color="success">
  <b-hr />
 </b-div>

 <b-hr
  border
  border-color="danger"
  border-width="2"
  opacity="50"
 />
 <b-hr
  border
  border-color="primary"
  border-width="3"
  opacity="75"
 />
</template>

Lists

All lists— <ul>, <ol>, and <dl> —have their margin-top removed and a margin-bottom: 1rem. Nested lists have no margin-bottom. We’ve also reset the padding-left on <ul> and <ol> elements.

  • All lists have their top margin removed
  • And their bottom margin normalized
  • Nested lists have no bottom margin
    • This way they have a more even appearance
    • Particularly when followed by more list items
  • The left padding has also been reset
  1. Here’s an ordered list
  2. With a few list items
  3. It has the same overall look
  4. As the previous unordered list

  • All lists have their top margin removed
  • And their bottom margin normalized
  • Nested lists have no bottom margin
    • This way they have a more even appearance
    • Particularly when followed by more list items
  • The left padding has also been reset
  1. Here’s an ordered list
  2. With a few list items
  3. It has the same overall look
  4. As the previous unordered list
vue
<template>
 <ul>
  <li>All lists have their top margin removed</li>
  <li>And their bottom margin normalized</li>
  <li>
   Nested lists have no bottom margin
   <ul>
    <li>This way they have a more even appearance</li>
    <li>Particularly when followed by more list items</li>
   </ul>
  </li>
  <li>The left padding has also been reset</li>
 </ul>
 <ol>
  <li>Here’s an ordered list</li>
  <li>With a few list items</li>
  <li>
   It has the same overall look
  </li>
  <li>As the previous unordered list</li>
 </ol>
 <hr />
 <b-ul>
  <b-li>All lists have their top margin removed</b-li>
  <b-li>And their bottom margin normalized</b-li>
  <b-li>
   Nested lists have no bottom margin
   <b-ul>
    <b-li>This way they have a more even appearance</b-li>
    <b-li>Particularly when followed by more list items</b-li>
   </b-ul>
  </b-li>
  <b-li>The left padding has also been reset</b-li>
 </b-ul>
 <b-ol>
  <b-li>Here’s an ordered list</b-li>
  <b-li>With a few list items</b-li>
  <b-li>
   It has the same overall look
  </b-li>
  <b-li>As the previous unordered list</b-li>
 </b-ol>
</template>

For simpler styling, clear hierarchy, and better spacing, description lists have updated margins. <dd>s reset margin-left to 0 and add margin-bottom: .5rem. <dt>s are bolded.

Description lists
A description list is perfect for defining terms.
Term
Definition for the term.
A second definition for the same term.
Another term
Definition for this other term.

Description lists
A description list is perfect for defining terms.
Term
Definition for the term.
A second definition for the same term.
Another term
Definition for this other term.
vue
<template>
 <dl>
  <dt>Description lists</dt>
  <dd>A description list is perfect for defining terms.</dd>
  <dt>Term</dt>
  <dd>Definition for the term.</dd>
  <dd>A second definition for the same term.</dd>
  <dt>Another term</dt>
  <dd>Definition for this other term.</dd>
 </dl>
 <hr />
 <b-dl>
  <b-dt>Description lists</b-dt>
  <b-dd>A description list is perfect for defining terms.</b-dd>
  <b-dt>Term</b-dt>
  <b-dd>Definition for the term.</b-dd>
  <b-dd>A second definition for the same term.</b-dd>
  <b-dt>Another term</b-dt>
  <b-dd>Definition for this other term.</b-dd>
 </b-dl>
</template>

Inline code

Wrap inline snippets of code with <code>. Be sure to escape HTML angle brackets.

For example, <section> should be wrapped as inline.
vue

Code blocks

Use <pre>s for multiple lines of code. Once again, be sure to escape any angle brackets in the code for proper rendering. The <pre> element is reset to remove its margin-top and use rem units for its margin-bottom.

<p>Sample text here...</p>
<p>And another line of sample text here...</p>
vue
<template>
 <pre><code style="color:black;">&lt;p&gt;Sample text here...&lt;/p&gt;
&lt;p&gt;And another line of sample text here...&lt;/p&gt;
</code></pre>
</template>

Variables

For indicating variables use the <var> tag.

y = mx + b
vue
<template>
 <var>y</var>
 =
 <var>m</var>
 <var>x</var>
 +
 <var>b</var>
</template>

User input

Use the <kbd> to indicate input that is typically entered via keyboard.

To switch directories, type cd followed by the name of the directory.
To edit settings, press ctrl + ,
vue

Sample output

For indicating sample output from a program use the <samp> tag.

This text is meant to be treated as sample output from a computer program.
vue
<template>
 <samp>
  This text is meant to be treated as sample output from a computer program.
 </samp>
</template>

Forms

Pointers on buttons

Reboot includes an enhancement for role="button" to change the default cursor to pointer. Add this attribute to elements to help indicate elements are interactive. This role isn’t necessary for <button> elements, which get their own cursor change.

Non-button element button
vue
<template>
 <span
  role="button"
 >Non-button element button</span>
</template>

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>.

Twitter, Inc.
1355 Market St, Suite 900
San Francisco, CA 94103
P: (123) 456-7890
Full Name
first.last@example.com
vue
<template>
 <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:first.last@example.com">first.last@example.com</a>
 </address>
</template>

Blockquote

The default margin on blockquotes is 1em 40px, so we reset that to 0 0 1rem for something more consistent with other elements.

A well-known quote, contained in a blockquote element.

Someone famous in Source Title

vue
<template>
 <BBlockquote>
  <b-p>A well-known quote, contained in a blockquote element.</b-p>
 </BBlockquote>
 <b-p>
  Someone famous in
  <cite title="Source Title">Source Title</cite>
 </b-p>
</template>

Inline elements

The <abbr> element receives basic styling to make it stand out amongst paragraph text.

The HTML abbreviation element.
vue
<template>
 The
 <abbr title="HyperText Markup Language">HTML</abbr>
 abbreviation element.
</template>

See Also