メインコンテンツにスキップ ドキュメントナビゲーションにスキップ

Reboot

Rebootは、要素固有のCSS変更を1つのファイルにまとめたもので、Bootstrapをキックスタートして、エレガントで一貫性のある簡単なベースラインを構築。

※"v5.0.0"での変更はv5.0.0-alpha版、v5.0.0-beta版での変更も含みます。

※"v5.2.0"での変更はv5.2.0-beta1での変更も含みます。
※"v5.3.0"での変更はv5.3.0-alpha版での変更も含みます。

アプローチ(Approach)

Rebootは、Normalizeの上で構築され、要素のセレクタのみを使用して多少独断的なスタイルで多くのHTML要素を提供。追加のスタイルは、クラスだけで行われる。例えば、より単純なベースラインのためにいくつかの <table> のスタイルを再構築して、後で .table.table-bordered などを提供。

Rebootで再定義すべきものを選ぶガイドラインと理由は次のとおり:

  • いくつかのブラウザのデフォルト値を更新して、拡張できるコンポーネントの空白の単位を em から rem にする。
  • margin-top を避けているので、縦方向のマージンが折りたたまれて予期しない結果を与える可能性がある。しかし、もっと重要なことは、margin の一方向は、より単純なメンタルモデルであるということ。
  • デバイスサイズ全体を容易に拡大縮小するために、ブロック要素の margin には rem を使用する必要がある。
  • できる限り inherit(継承)を使用して、font 関連のプロパティの宣言を最小限にする。

CSS変数(CSS variables)v5.1.0新設、v5.2.0更新

v5.1.1では、必要な @import をすべてのCSSバンドル(bootstrap.css, bootstrap-reboot.css, bootstrap-grid.css を含む)で標準化して、_root.scss を組み込んだ。これにより、バンドルで使用されているCSS変数の数に関係なく、すべてのバンドルに :root レベルのCSS変数が追加される。最終的にBootstrap5は、常にSassを再コンパイルする必要なしに、よりリアルタイムのカスタマイズを提供するため、時間の経過とともに追加されるCSS変数を引き続き表示する。Bootstrapのアプローチは、ソースのSass変数を取得しCSS変数に変換する。そうすれば、CSS変数を使用しなくても、Sassのすべての機能が利用できる。これはまだ進行中であり、完全に実装するには時間がかかる。(※各コンポーネント等のCSS変数の実装の進捗状況は、GitHubに記載)

例えば、一般的な <body> スタイルの次の :root CSS変数について考察:

デフォルトの設定
scss/_root.scss 内 root-body-variables の設定@if $font-size-root != null {
  --#{$prefix}root-font-size: #{$font-size-root};
}
--#{$prefix}body-font-family: #{inspect($font-family-base)};
@include rfs($font-size-base, --#{$prefix}body-font-size);
--#{$prefix}body-font-weight: #{$font-weight-base};
--#{$prefix}body-line-height: #{$line-height-base};
--#{$prefix}body-color: #{$body-color};

--#{$prefix}emphasis-color: #{$body-emphasis-color};
--#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};

--#{$prefix}secondary-color: #{$body-secondary-color};
--#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};
--#{$prefix}secondary-bg: #{$body-secondary-bg};
--#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};

--#{$prefix}tertiary-color: #{$body-tertiary-color};
--#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
--#{$prefix}tertiary-bg: #{$body-tertiary-bg};
--#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};

@if $body-text-align != null {
  --#{$prefix}body-text-align: #{$body-text-align};
}
--#{$prefix}body-bg: #{$body-bg};
--#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};

実際には、これらの変数はRebootで次のように適用される:

scss/_reboot.scss 内 reboot-body-rules の設定body {
  margin: 0; // 1. すべてのブラウザでマージンを削除
  font-family: var(--#{$prefix}body-font-family);
  @include font-size(var(--#{$prefix}body-font-size));
  font-weight: var(--#{$prefix}body-font-weight);
  line-height: var(--#{$prefix}body-line-height);
  color: var(--#{$prefix}body-color);
  text-align: var(--#{$prefix}body-text-align);
  background-color: var(--#{$prefix}body-bg); // 2. 最善の方法として、デフォルトの`background-color`を適用
  -webkit-text-size-adjust: 100%; // 3. iOSで向きを変更した後のフォントサイズの調整を防ぐ
  -webkit-tap-highlight-color: rgba($black, 0); // 4. デフォルトのタップハイライトをiOSで完全に透明になるように変更
}

これをコンパイルすると次のようになる:

bootstrap.css 内 の設定body {
  margin: 0;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
  text-align: var(--bs-body-text-align);
  background-color: var(--bs-body-bg);
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

これにより、好きなようにリアルタイムでカスタマイズできる:

設定例
<body style="--bs-body-color: #333;">
  <!-- ... -->
</body>
【変更履歴】
  • 【v5.2.0】
    • 「CSS変数の追加」にもとの「CSS変数」を加えて更新
    • CSS変数:--#{$variable-prefix}--#{$prefix} に変更

ページのデフォルト(Page defaults)v5.1.0設定変更

<html><body> 要素は、より良いページ全体のデフォルトを提供するのに更新される。具体的には:

  • box-sizing は、*::before*::after を含むすべての要素で基本的に border-box を設定するので、要素で宣言した幅がパディングやボーダーを決して超えないことが保証される。
  • font-size は、<html> で宣言されないが、16px(ブラウザのデフォルト)が仮定される。font-size: 1rem<body> に適用され、ユーザーの嗜好を尊重し、よりアクセスしやすいアプローチを保証しながら、メディアクエリによる簡単なレスポンシブの拡大縮小ができる。このブラウザのデフォルトは、$font-size-root 変数の変更で再定義できる。
  • また <body> では、基本的な font-family, font-weight, color を設定しているので、後でフォントの不一致を防止するために、いくつかのフォーム要素によって継承される。
  • 安全のために <body> には、デフォルトの背景色として background-color#fff(white)を設定。
【変更履歴】
  • 【v5.0.0-alpha1】
    • <body>text-align の設定が left から scss/_variables.scss 内の $body-text-align 変数で設定可能に(デフォルトの設定はnull(なし))
    • <body>font-size の設定が scss/_variables.scss 内の $font-size-root 変数で設定可能に(デフォルトの設定は1rem(16px))
  • 【v5.1.0】
    • <body> の各プロパティの設定は、前記のとおりCSS変数に移行

基準のフォントスタック(Native font stack)v5.2.0一部変更

Bootstrapは、「ネイティブ・フォントスタック」や「システム・フォントスタック」を利用して、すべてのデバイスとOSで最適なテキストレンダリングを実現。これらのシステムフォントは、特に今日のデバイスを念頭に置いて設計されており、画面でのレンダリングの改善、可変フォントのサポートなどを備えている。詳細はこのSmashing Magazineの記事にあるネイティブ・フォントスタックの詳細に記載。

デフォルトの設定
scss/_variables.scss 内 stylelint-disable value-keyword-case の設定$font-family-sans-serif:
  // クロスプラットフォームの汎用フォントファミリー(デフォルトのユーザーインターフェイスフォント)
  system-ui,
  // MacOS と iOS (San Francisco)用の Safari
  -apple-system,
  // Windows
  "Segoe UI",
  // Android
  Roboto,
  // 古いmacOSとiOS
  "Helvetica Neue", 
  // Linax
  "Noto sans",
  "Liberation Sans",
  // 基本のwebフォールバック
  Arial,
  // Sans serifのフォールバック
  sans-serif,
  // 絵文字用フォント
  "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;

フォントスタックには絵文字フォントが含まれているため、多くの一般的な記号/絵文字のユニコード文字はマルチカラーの絵文字としてレンダリングされるので注意。それらの外観は、ブラウザ/プラットフォームのネイティブ絵文字フォントで使用されているスタイルによって異なり、CSS color スタイルの影響を受けない。

この font-family<body> に適用されると、Bootstrap全体で自動的に基本継承される。基本の font-family に切り替えるには、scss/_variables.scss 内の $font-family-base を更新し、Bootstrapを再コンパイルする。

【変更履歴】
  • 【v5.0.0-alpha1】
    • system-uiを追加し、BlinkMacSystemFont(Chrome 56未満のMacOS (San Francisco)用のフォント)を削除
  • 【v5.0.0-alpha3】
    • Liberation Sans(Ubuntu用sans-serif)が追加
  • 【v5.2.0】
    • Arial(基本のwebフォールバック)は、Linux固有のフォントを優先させるため、その後に移動
    • Helvetica Neue(古いiOSとmacOSバージョンのUIフォント)のコメント表記を修正

見出し(Headings)

※定義済クラスを使用した見出しについては、文字の体裁に掲載。

すべての見出し要素(<h1><h6>)の margin-top を削除し、margin-bottom: .5rem を設定し、line-height を狭めにした。見出しの color はデフォルトで継承されるが、オプションのCSS変数 --bs-heading-color で上書きできる。

見本
見出し
<h1></h1>

h1. Bootstrap 見出し

<h2></h2>

h2. Bootstrap 見出し

<h3></h3>

h3. Bootstrap 見出し

<h4></h4>

h4. Bootstrap 見出し

<h5></h5>
h5. Bootstrap 見出し
<h6></h6>
h6. Bootstrap 見出し
設定例
<h1>h1. Bootstrap 見出し</h1>
<h2>h2. Bootstrap 見出し</h2>
<h3>h3. Bootstrap 見出し</h3>
<h4>h4. Bootstrap 見出し</h4>
<h5>h5. Bootstrap 見出し</h5>
<h6>h6. Bootstrap 見出し</h6>
【注意】
  • v5.3.0-alpha1では $headings-color-dark: #fff; の設定だったためダークモードでは白字だったが、v5.3.0-alpha2では $headings-color-dark: null; となりダークモードでも標準の文字色で表示される

段落(Paragraphs)v5.3.0「見出し」から分離

※定義済クラスを使用した段落については、文字の体裁に掲載。

すべての <p> 要素は、margin-top が削除され、margin-bottom: 1rem が設定されており、間隔を取りやすくなっている。

見本

これは段落の例です。

設定例
<p>これは段落の例です。</p>

※定義済クラスを使用したリンクについては、リンクユーティリティに掲載。

リンクにはデフォルトの色と下線が適用される。リンクは :hover で変化するが、誰かがそのリンクに :visit したかどうかでは変化しない。また、特別な :focus スタイルも適用されない。

見本
このテキストにはリンクがあります。
設定例
このテキストには<a href="#">リンク</a>があります。

v5.3.xでは、リンク colorrgba() と新しいCSS変数 -rgb を使って設定され、リンクカラーの不透明度を簡単にカスタマイズできる。リンク色の不透明度を変更するには、-bs-link-opacity CSS変数を使用:

見本
このテキストにはリンクがあります。
設定例
このテキストには<a href="#" style="--bs-link-opacity: .5">リンク</a>があります。

プレースホルダーリンク(href のないリンク)は、より具体的なセレクタでターゲットとなり、colortext-decoration がデフォルト値にリセットされる。

見本
設定例
<a>これはプレースホルダーリンクです。</a>
【変更履歴】
  • 【v5.0.0-alpha1】
    • デフォルトでリンクに下線が装飾される(text-decoration: nonetext-decoration: underline)ことに(審美的な理由でリンクから下線を外していたが、アクセシビリティの観点から通常のテキストと区別がつきにくいため下線を施した)
    • デフォルトの動作をv4の場合(ホバー状態のみに下線がつく)と同じにしたい場合は、scss/_variables.scss 内の
      • $link-decorationunderlinenone
      • $link-hover-decoration(ホバー状態の動作) を nullunderline
      に変更して再コンパイルする
  • 【v5.2.0】
    • color--bs-link-color CSS変数を使用
    • a:hover 疑似クラスの color では、--bs-link-hover-color CSS変数を使用
  • 【v5.3.0】
    • color は、--bs-link-color から --bs-link-color-rgb--bs-link-opacityrgba() としての設定に変更し、-bs-link-opacity CSS変数を使用してリンクカラーの不透明度がカスタマイズ可能に
    • a:hover 疑似クラスの color では、--bs-link-hover-color から --bs-link-hover-color-rgb--bs-link-opacityrgba() としての設定に変更

横仕切り線(Horizontal rules)v5.2.0「文字の体裁」から移動、スタイル変更

<hr> 要素を簡略化。ブラウザのデフォルトと同様に、<hr>border-top を経由してスタイル設定され、デフォルトでは opacity: .25 であり、親要素で color が設定されている場合を含め、color を経由して自動的に border-color を継承。これらは、テキスト、罫線、不透明度の各ユーティリティを使用して変更できる。

見本

デフォルト


親要素にカラーが設定されている場合


少し濃くて少し太めの仕切り線


濃くて太めの仕切り線


設定例
デフォルト<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">
【設定】
【注意】
  • hr.border-{size} では太さが変わらないので、必ず hr.border.border-{size} にする
  • hr.border.border-{size}.text-{color} では色が変わらないので、必ず hr.border.border-{size}.border-{color} にする
  • hr.border.border-{size}.border-{color}.border-opacity-{value} では仕切り線の濃淡は変わらないので、必ず hr.border.border-{size}.border-{color}.opacity-{value} にする
【変更履歴】
  • 【v5.1.0】
    • 線の幅の設定は、border ではなく、height プロパティ(デフォルトは 1px)を使用
  • 【v5.2.0】
    • 線の幅の設定を height から border-top プロパティに変更。これにより、線の太さは .py-(-{breakpoint})-{size} ではなく、.border.border-{size} を使用することになった

リスト(Lists)

※定義済クラスを使用したリストについては、文字の体裁に掲載。

すべてのリスト(<ul>, <ol>, <dl>)では、margin-top が削除され、margin-bottom: 1rem を追加。リストが入れ子になった場合は、margin-bottom は追加されない。<ul><ol> 要素の padding-left もリセット。

箇条書きリスト・順序付きリスト v5.0.0-alpha1スタイル変更

見本
  • すべてのリストの上部マージンが削除
  • そしてそれらの下マージンは正規化
  • 入れ子になったリストには下マージンがない
    • このように、それらはより均一な外観を持つ
    • 特にリスト項目が続く場合
  • 左側のパディングもリセット
  1. こちらが順序付きリスト
  2. いくつかのリスト項目で
  3. 上の箇条書きリストとは
  4. 全体的に同じ外観
設定例
箇条書きリスト<ul>
  <li>すべてのリストの上部マージンが削除</li>
  <li>そしてそれらの下マージンは正規化</li>
  <li>入れ子になったリストには下マージンがない
    <ul>
      <li>このように、それらはより均一な外観を持つ</li>
      <li>特にリスト項目が続く場合</li>
    </ul>
  </li>
  <li>左側のパディングもリセット</li>
</ul>
順序付きリスト<ol>
  <li>こちらが順序付きリスト</li>
  <li>いくつかのリスト項目で</li>
  <li>上の箇条書きリストとは</li>
  <li>全体的に同じ外観</li>
</ol>
【変更履歴】
  • 【v5.0.0-alpha1】
    • padding-left40px(ブラウザのデフォルト)から 2rem に変更

定義リスト

※定義済クラスを使用した水平定義リストについては、文字の体裁に掲載。

シンプルなスタイリング、階層のクリア、空白の改善のため、定義リスト(<dl>)では margin を更新。<dd> では margin-left0 にリセットされ、margin-bottom: .5rem を追加。<dt>太字に設定。

見本
説明リスト
説明リストは、用語を定義するのに最適。
用語
用語の定義。
同じ用語の2番目の定義。
別の用語
この別の用語の定義。
設定例
<dl>
  <dt>説明リスト</dt>
  <dd>説明リストは、用語を定義するのに最適。</dd>
  <dt>用語</dt>
  <dd>用語の定義。</dd>
  <dd>同じ用語の2番目の定義。</dd>
  <dt>別の用語</dt>
  <dd>この別の用語の定義。</dd>
</dl>

コード表示(Inline code)v5.0.0-alpha1「コード」から移動

埋め込みのコードスニペットを <code> で囲む。HTMLタグの< >はエスケープして下さい。

見本

プログラムコードを埋め込むには <code> を使います。

コードにリンクをつけると <code> のようになります。

設定例
<p>プログラムコードを埋め込むには <code>&lt;code&gt;</code> を使います。</p>
<p>コードにリンクをつけると <a href="#"><code>&lt;code&gt;</code></a> のようになります。</p>
【設定】
  • プログラムコードを埋め込むためには、<code> タグを使用
  • <code> タグ内で <, >, & を使うときは、それぞれ &lt;, &gt;, &amp; にエスケープ処理をする
【注意】
  • <a>(リンク)内にあるときには、スタイルはフォントの大きさと字体以外はリセットされる。

コードブロック(Code blocks)v5.0.0-alpha1「コード」から移動、一部廃止

複数行のコードには <pre> を使用。再度、正しくレンダリングするために、コード内の< >をエスケープして下さい。<pre> 要素では、margin-top が削除され、margin-bottomrem 単位で使用するようにリセットされる。

見本
<p>ここにサンプルテキスト...</p>
<p>ここにサンプルテキストの別の行...</p>
設定例
<pre><code>&lt;p&gt;ここにサンプルテキスト...&lt;/p&gt;
&lt;p&gt;ここにサンプルテキストの別の行...&lt;/p&gt;</code></pre>
【設定】
  • 複数行のコードを表示するためには、<pre><code> タグを使用
  • <pre><code> 内で <, >, & を使うときは、それぞれ &lt;, &gt;, &amp; と記述してエスケープ処理をする
【変更履歴】
  • 【v5.0.0-alpha1】
    • .pre-scrollable(y軸スクロールバー表示)を廃止。

変数表示(Variables)v5.0.0-alpha1「コード」から移動

変数を示すには、<var> タグを使用。

見本
y = mx + b
設定例
<var>y</var> = <var>m</var><var>x</var> + <var>b</var>
【設定】
  • <var> タグを使用(基本的に斜体で表示)
【注意】
  • ブラウザによっては123やabcなど英数字のみ適用

ユーザー入力(User input)v5.0.0-alpha1「コード」から移動、v5.2.0スタイル変更

<kbd> を使用して、通常キーボードから入力されるインプットを示す。

見本

ユーザーが入力した内容を表示するにはユーザー入力のようにします。
タグを入れ子にするとユーザー入力のようになります。

設定例
ユーザーが入力した内容を表示するには<kbd>ユーザー入力</kbd>のようにします。
タグを入れ子にすると<kbd><kbd>ユーザー入力</kbd></kbd>のようになります。
【設定】
  • キーボードから入力された入力を示すためには、<kbd> タグを使用
【変更履歴】
  • 【v5.2.0】
    • <kbd> タグを入れ子にしても太字にならなくなった
      ※Sass変数として scss/_variables.scss 内に $nested-kbd-font-weight は非推奨で存在(デフォルトは $font-weight-bold から null に変更)するが、v6で削除予定

サンプル出力(Sample output)v5.0.0-alpha1「コード」から移動

プログラムからのサンプル出力を表示するには、<samp> タグを使用。

見本
This text is meant to be treated as sample output from a computer program.
このテキストは、コンピュータプログラムからのサンプル出力として扱われることを意図しています。

デフォルトの段落文(参考)

This text is meant to be treated as sample output from a computer program.
このテキストは、コンピュータプログラムからのサンプル出力として扱われることを意図しています。

設定例
<samp>This text is meant to be treated as sample output from a computer program.</samp><br>
<samp>このテキストは、コンピュータプログラムからのサンプル出力として扱われることを意図しています。</samp>
【設定】
  • <samp> タグを使用(基本的に等幅フォントで表示)
【注意】
  • ブラウザによっては123やabcなど英数字のみ適用

テーブル(Tables)

※定義済クラスを使用したテーブルについては、テーブルに掲載。

テーブルは、<caption>、罫線の枠、一貫した text-align の確保のためにスタイルが少し調整される。さらに .table クラスでborder(罫線)、padding(余白)を追加変更。

見本
これはテーブルの見本で、ここは内容を説明するための表題。
見出し 見出し 見出し 見出し
テーブルのセル テーブルのセル テーブルのセル テーブルのセル
テーブルのセル テーブルのセル テーブルのセル テーブルのセル
テーブルのセル テーブルのセル テーブルのセル テーブルのセル
設定例
<table>
  <caption>これはテーブルの見本で、ここは内容を説明するための表題。</caption>
  <thead>
    <tr>
      <th>見出し</th>
      ...
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>テーブルのセル</td>
      ...
    </tr>
    ...
  </tbody>
</table>

フォーム(Forms)v5.0.0-alpha1一部スタイル変更

※定義済クラスを使用したフォームについては、フォームに掲載。

様々なフォーム要素が、より単純な基本スタイルに再設定される。ここで最も注目すべきいくつかの変更点は、次のとおり:

  • 個別のインプットやインプットグループのラッパーとして簡単に使用できるように、<fieldset> には、ボーダー、パディング、マージンの設定はしない。
  • <legend> は、fieldsetと同様、並べ替えの見出しとしても表示されるようにスタイルを変更。
  • <label> は、display: inline-block で表示できるように設定され、margin を適用。
  • <input><select>, <textarea>, <button> は、主にNormalizeによって対処されるが、Rebootがそれらの margin を削除し、line-height: inherit(継承)に設定。
  • <textarea> は、水平方向のリサイズは多くの場合ページレイアウトを「分割」するだけで、縦方向のリサイズができるように変更。
  • :not(:disabled) の場合、<button><input> ボタン要素では cursor: pointer になる。

これらの変更などは、以下に表示。

見本
legendの見本

100

設定例
<form>
  <fieldset>
    <legend>legendの見本</legend>
    <p>
      <label for="input">text inputの見本</label>
      <input type="text" id="input" placeholder="Example text input">
    </p>
    <p>
      <label for="email">emailの見本</label>
      <input type="email" id="email" placeholder="test@example.com">
    </p>
    <p>
      <label for="tel">telephoneの見本</label>
      <input type="tel" id="tel">
    </p>
    <p>
      <label for="url">urlの見本</label>
      <input type="url" id="url">
    </p>
    <p>
      <label for="number">numberの見本</label>
      <input type="number" id="number">
    </p>
    <p>
      <label for="search">searchの見本</label>
      <input type="search" id="search">
    </p>
    <p>
      <label for="range">rangeの見本</label>
      <input type="range" id="range" min="0" max="10">
    </p>
    <p>
      <label for="file">file inputの見本</label>
      <input type="file" id="file">
    </p>
    <p>
      <label for="select">selectの見本</label>
      <select id="select">
        <option value="">選ぶ...</option>
        <optgroup label="Option group 1">
          <option value="">オプション1</option>
          ...
        </optgroup>
        ...
      </select>
    </p>
    <p>
      <label>
        <input type="checkbox" value=""> このチェックボックスをクリック
      </label>
    </p>
    <p>
      <label>
        <input type="radio" id="optionsRadios1" name="optionsRadios" value="option1" checked> オプション1...
      </label>
      <label>
        <input type="radio" id="optionsRadios2" name="optionsRadios" value="option2"> オプション2...
      </label>
      <label>
        <input type="radio" id="optionsRadios3" name="optionsRadios" value="option3" disabled> オプション3は無効
      </label>
    </p>
    <p>
      <label for="textarea">textareaの見本</label>
      <textarea id="textarea" rows="3"></textarea>
    </p>
    <p>
      <label for="date">dateの見本</label>
      <input type="date" id="date">
    </p>
    <p>
      <label for="time">timeの見本</label>
      <input type="time" id="time">
    </p>
    <p>
      <label for="password">passwordの見本</label>
      <input type="password" id="password">
    </p>
    <p>
      <label for="datetime-local">datetime-localの見本</label>
      <input type="datetime-local" id="datetime-local">
    </p>
    <p>
      <label for="week">weekの見本</label>
      <input type="week" id="week">
    </p>
    <p>
      <label for="month">monthの見本</label>
      <input type="month" id="month">
    </p>
    <p>
      <label for="color">colorの見本</label>
      <input type="color" id="color">
    </p>
    <p>
      <label for="output">outputの見本</label>
      <output id="output" name="result">100</output>
    </p>
    <p>
      <button type="submit">登録ボタン</button>
      <input type="submit" value="Input登録ボタン">
      <input type="reset" value="Inputリセットボタン">
      <input type="button" value="Inputボタン">
    </p>
    <p>
      <button type="submit" disabled">登録ボタン無効</button>
      <input type="submit" value="Input登録ボタン無効" disabled>
      <input type="reset" value="Inputリセットボタン無効" disabled>
      <input type="button" value="Inputボタン無効" disabled>
    </p>
  </fieldset>
</form>
【変更履歴】
  • 【v5.0.0-alpha1】
    • RFSがデフォルトで有効となり、ビューポートが1200px未満で <legend> のフォントサイズがビューポートに応じて拡大縮小

ボタン上のポインタ(Pointers on buttons)

Rebootには、デフォルトのカーソルを指ポインタ cursor: pointer)に変更するために role="button" の拡張が組み込まれている。この属性を要素に追加して、要素が相互作用であることを示す。この役割は、独自の cursor に変更する <button> 要素には必要ない。

見本
非ボタン要素ボタン
設定例
<span role="button" tabindex="0">非ボタン要素ボタン</span>
【設定】
  • 要素に [role="button"] 属性を入れると、その要素にカーソルを合わせたときに指ポインタ()に変更するようになる

その他の要素(Misc elements)

アドレス(Address)

<address> 要素では、ブラウザのデフォルトのフォントスタイルが italic から normal にリセット。line-height も継承され、margin-bottom: 1rem を追加。<address> は、最も上位の製造元(または作品全体)の連絡先情報を表示。すべての行を<br>で終了して書式を保持。

見本
Twitter社
94103 アメリカ合衆国 カルフォルニア州
サンフランシスコ市 マーケット通り1355番地 900号室
P: (123) 456-7890
フルネーム
first.last@example.com
設定例
<address>
  <strong>Twitter社</strong><br>
  アメリカ合衆国 カルフォルニア州<br>
  サンフランシスコ市 フォルサム通り795番地 600号室<br>
  <abbr title="電話">P:</abbr> (123) 456-7890
</address>
<address>
  <strong>フルネーム</strong><br>
  <a href="mailto:#">first.last@example.com</a>
</address>

引用(Blockquote)v5.0.0-alpha1設定変更

※定義済クラスを使用した引用については、文字の体裁に掲載。

blockquoteのデフォルトの margin1em 40px だが、他の要素との一貫性のために 0 0 1rem にリセット。さらに .blockquote クラスでスタイルを追加変更。

見本

blockquote要素に含まれるよく知られた引用。

文章の引用元が明示できます。

Bootstrap5.xの設定例 緑背景が変更箇所
<blockquote>
  <p>blockquote要素に含まれるよく知られた引用。</p>
</blockquote>
<p>文章の<cite title="引用元の名前">引用元</cite>が明示できます。</p>
※Bootstrap4.xの設定例 赤背景が変更箇所
<blockquote>
  <p>blockquote要素に含まれるよく知られた引用。</p>
  <footer>文章の<cite title="引用元の名前">引用元</cite>が明示できます。</footer>
</blockquote>
【変更履歴】

インライン要素(Inline elements)

※定義済クラスを使用した省略語については、文字の体裁に掲載。

<abbr> 要素は、段落テキストの中で基本的に目立つようなスタイルになる。

見本

HTMLはたいへんすばらしいものです。

設定例
<p><abbr title="HyperText Markup Language">HTML</abbr>はたいへんすばらしいものです。</p>

詳細情報表示(Summary)

詳細情報表示のデフォルトの cursor は、テキストカーソル text)なので、それを指ポインタ pointer)にリセットして、要素をクリックすることで詳細情報が開閉できることを伝える。

見本
詳細

詳細についての詳しい情報。

さらに詳細

詳細についてさらに詳しく説明。

設定例
<details>
  <summary>詳細</summary>
  <p>詳細についての詳しい情報。</p>
</details>

<details open>
  <summary>さらに詳細</summary>
  <p>詳細についてさらに詳しく説明。</p>
</details>

HTML5 [hidden] 属性(HTML5 [hidden] attribute)

HTML5ではデフォルトで display: none にスタイル設定された [hidden] という新しいグローバル属性が追加された。その display が誤って再定義されるのを防ぐため、PureCSSからアイデアを借りて [hidden] { display: none !important; } を使ってこれを改善している。

<input type="text" hidden>

要素の可視性を単に切り替えるのに、その display が変更されない要素では文書の流れに影響を与えてしまうので、代わりに可視性ユーティリティクラスを使用する。