RFS
Bootstrapのリサイジングエンジンは、ビューポートとデバイス全体で利用可能なスペースをよりよく活用するために、一般的なCSSプロパティをレスポンシブにスケーリングします。
RFSとは?
BootstrapのサイドプロジェクトRFSは、最初はフォントサイズのリサイズのために開発されたユニットリサイジングエンジンです(したがって、Responsive Font Sizesの略称です)。現在、RFSはmargin、padding、border-radius、さらにはbox-shadowのような単位値を持つほとんどのCSSプロパティを再スケーリングできます。
このメカニズムは、ブラウザビューポートの寸法に基づいて適切な値を自動的に計算します。レスポンシブなスケーリング動作を可能にするために、remとビューポート単位を組み合わせたcalc()関数にコンパイルされます。
RFSの使用
ミックスインはBootstrapに含まれており、Bootstrapのscssを含めると利用できます。必要に応じて、RFSをスタンドアロンでインストールすることもできます。
ミックスインの使用
rfs()ミックスインには、font-size、margin、margin-top、margin-right、margin-bottom、margin-left、padding、padding-top、padding-right、padding-bottom、padding-leftのショートハンドがあります。ソースSassとコンパイルされたCSSの例については、以下を参照してください。
.title {
@include font-size(4rem);
}
.title {
font-size: calc(1.525rem + 3.3vw);
}
@media (min-width: 1200px) {
.title {
font-size: 4rem;
}
}
他のプロパティも次のようにrfs()ミックスインに渡すことができます:
.selector {
@include rfs(4rem, border-radius);
}
!importantも必要な値に追加できます:
.selector {
@include padding(2.5rem !important);
}
関数の使用
includeを使用したくない場合は、2つの関数もあります:
rfs-value()は、px値が渡された場合、値をrem値に変換します。他の場合は同じ結果を返します。rfs-fluid-value()は、プロパティの再スケーリングが必要な場合、値のフルードバージョンを返します。
この例では、Bootstrapの組み込みレスポンシブブレークポイントミックスインの1つを使用して、lgブレークポイント以下でのみスタイリングを適用します。
.selector {
@include media-breakpoint-down(lg) {
padding: rfs-fluid-value(2rem);
font-size: rfs-fluid-value(1.125rem);
}
}
@media (max-width: 991.98px) {
.selector {
padding: calc(1.325rem + 0.9vw);
font-size: 1.125rem; /* 1.125rem is small enough, so RFS won’t rescale this */
}
}
拡張ドキュメント
RFSはBootstrap組織の下の独立したプロジェクトです。RFSとその設定の詳細については、GitHubリポジトリを参照してください。