CSSファイルの種類
lism-css パッケージは、用途に応じて複数のビルド済みCSSを同梱しています。読み込むファイルを差し替えるだけで、@layer のオン / オフを切り替えたり、全部入りビルドに変更したりできます。通常は main.css を使い、必要なときだけほかのファイルに切り替えてください。
| ファイル | 内容 |
|---|---|
lism-css/main.css |
標準ビルド(@layer あり) |
lism-css/main_no_layer.css |
@layer なし版 |
lism-css/full.css |
全部入りビルド(@layer あり / CSS Purge 併用前提) |
lism-css/full_no_layer.css |
全部入りビルドの @layer なし版 |
@layer をオフにする
lism-css/main.css の代わりに lism-css/main_no_layer.css を読み込むと、@layer をオフにできます。ほかの設定は不要です。
@layer なし版は、既存サイトや WordPress テーマなど、ほかのCSSとの優先順位(カスケード)を自分で制御できない環境での利用を想定しています。レイヤーで優先順位を付けられないぶん、次の方法で main.css と同じ「Property Class > Utility Class > そのほかのクラス」の順を再現しています。
| クラス | @layer なし版での出力 |
詳細度 |
|---|---|---|
Property Class(-p:20 など) |
常に !important 付き |
0-1-0 + !important |
Utility Class(u--trim / u--trimAll / u--cbox) |
セレクタを二重化(.u--trim.u--trim) |
0-2-0 |
| そのほかのクラス | セレクタは main.css と同じ |
変更なし |
そのため、@layer なし版では次の点に注意してください。
- Property Class と同じプロパティをインラインスタイルや JavaScript で指定しても、Property Class が勝ちます。値を変えるにはクラス自体を付け替えてください(
-pのようにCSS変数で値を受け取るクラスは、--pの書き換えでも変えられます)。 - Utility Class を自分のCSSで上書きするには、
.u--trim.u--trim以上の詳細度が必要です。 lism.config.jsのdefaultImportant: falseや SCSS の$default_important: 0を指定しても、@layerなし版では無視され、!importantは常に付きます。propsの個別設定important: 0も同様です。
全部入りビルド(full.css)を使う
lism-css/main.css の代わりに lism-css/full.css を読み込むと、main.css には含まれないクラスまで収録した全部入りビルドを利用できます。
import 'lism-css/full.css'; // @layer なし版は 'lism-css/full_no_layer.css'full.css には、main.css の内容に加えて以下が含まれます。
- 全 Property Class のブレイクポイント対応クラス(
-ta_lgなど)。ただし次のものは対象外です。- 変数出力専用のプロパティ(
isVar系。クラスを出力せず、CSS変数だけを出力するもの) - border ショートハンド系(
bdと、bd-xなどの方向指定) lh
- 変数出力専用のプロパティ(
- border サブプロパティ
bds/bdcのブレイクポイント対応クラス。どちらも変数出力専用ですが、例外として追加されます(bdwはmain.cssでも対応済み)。border のブレイクポイント対応は、ショートハンドではなくサブプロパティで行います。 - カラー系 Property Class(
bgc/c/bdc)の全カラートークン分のクラス(-bgc:redなど)。main.cssでは厳選したセマンティックカラーとkeycolorだけがクラス化されますが、full.cssではパレットカラーを含む全トークンが対象になります。
そのぶんCSSサイズは main.css より大きくなるため、未使用のクラスをビルド時に削除する CSS Purge との併用を前提としています。
full.css を読み込むだけでは、コンポーネント側の出力は変わりません(例: t="20" はインラインスタイルとして出力されます)。コンポーネントの出力も full.css に合わせるには、lism.config.js の isFullMode を有効にしてください。