検索

命名規則

このページでは、Lism CSSにおけるクラス名やCSS変数名の命名規則を説明します。

CSS変数の命名規則

変数名の各ブロックはキャメルケースで --{varName} の形式が基本となります。

トークン変数

種類形式
基本--{prop}--{token}--fz--l, --bdrs--20, --bxsh--10, --sz--s
カラー--{color}--brand, --text, --text-2,--red
スペーシング--s{Token}--s10, --s40

トークンのバリエーション表現

表記条件
s, m, l, xlベース値を中心に大小の段階を示す場合--fz--s, --fz--l
base:root/body の初期値にセットされるもの--fz--base, --lh--base
10, 20, 300none)基準で段階的に増加する場合--bdrs--20, --bxsh--30
-10, -20, -300none)基準で段階的に減少する場合--o---10, --o---20
セマンティック名上記に当てはまらない場合は、セマンティックな名前をつける--ar--og

Property Class 用の変数

Property Class(-{prop}:{value})で使用される変数名に関するルールです。

形式説明
--{prop}クラスの{prop}部分と同じ省略名--p, --bgc, --bdrs, --max-sz
--{prop}_{bp}ブレークポイント値--p_sm, --mx_md

その他の変数

形式用途
--{target}-{prop}要素・クラスに対するプロパティ(:rootで上書き可能)--link-td, --headings-ff
--{propName}プリミティブの主要機能変数--sideW, --mainW
--_{item}-{propName}コンポーネントクラス(c--)の子要素に対するプロパティ--_icon-size
--_{varName}状態管理用の内部変数--_isHov, --_notHov

クラスの命名規則

クラス分類に合わせたプレフィックスをつけます。この時、ハイフン2つ(--) で繋ぎます。

  • Component: c--
  • Atomic Primitives: a--
  • Layout Primitives: l--
  • Trait Primitives: is--
  • Set Class: set--
  • Utility Class: u--

プレフィックスに続く名称は、camelCaseで命名します。

  • NG: c--my-component
  • OK: c--myComponent

Property Classの命名規則については、以下の通りです。

  • 特定の値とセットのクラス: -{prop}:{value}
  • --{prop}変数を受け取るクラス: -{prop}
  • ブレークポイント(--{prop}_{bp})を受け取るクラス: -{prop}_{bp}

{prop} の省略ルール

基本的な方向性として、 Emmet を参考にした省略を行います。

1文字プロパティ

1文字に省略できる主要プロパティを、以下のように定めます。

省略記法プロパティ
ppadding
mmargin
ggap
ccolor
ffont
wwidth
hheight
ddisplay
oopacity
vvisibility
iinset
ttop
bbottom
lleft
rright
zz-index

上記の中で Emmet と異なるのは opacityです。

プロパティグループ

以下のようなプロパティについての省略ルールを紹介します。

  • font/font-*, background/background-*, padding/padding-* のように、ショートハンド/ロングハンドのグループ
  • text-aligntext-decorationのようなtext-*系などの共通したプレフィックスを持つグループ

基本形式: 「グループ略称」+「サブプロパティ名の省略形」

いくつかの例を挙げます。

CSS プロパティProp
fontf
font-sizefz
font-weightfw
backgroundbg
background-colorbgc
background-imagebgi
flexfx
flex-shrinkfxsh
flex-growfxg
grid-templategt
grid-template-columnsgtc
grid-template-rowsgtr

方向指定系の形式: 「グループ略称」 + - +「方向指定」

  • 方向を示すサイドプロパティは、ハイフン(-)付きのサフィックスで方向を指定します。
  • inline/blockは、x/y とします。
例:
方向サフィックス
physical-t / -b / -l / -rbd-t, bd-b, bd-l, bd-r
inline / block-x / -ybd-x, bd-y
start / end-s / -ebd-x-s, bd-x-e, bd-y-s, bd-y-e
x / y-x / -yov-x, ov-y

方向指定系の例外: p, m のみ、最初のハイフンを省略

padding, margin については、pt, px, my のような記法が CSS フレームワークで広く普及しているため、最初のハイフンを省略します。

方向省略形
physicalpt, pb, pl, pr, mt, mb, ml, mr
inline/blockpx, py, mx, my
start/endpx-s, px-e, py-s, py-e, mx-s, mx-e, my-s, my-e

グループ略称の衝突禁止

一つのグループで使用された略称を他のグループで再利用してはいけません。

NG例: flexfxとし、flex-shrinkfshとしてしまう。(fx グループの一貫性を崩すため)

max- / min- プロパティ

max-, min- プレフィックスはハイフンを保持します。

例:
CSS プロパティProp
max-widthmax-w
min-widthmin-w
max-heightmax-h
min-heightmin-h

その他のプロパティ

その他のプロパティは、以下の基準で省略します。

  1. 1単語: そのまま使用 or 省略
  2. ハイフン繋がり、または6文字以上: Emmet形式、または認識しやすい範囲で省略
例:
CSS プロパティProp分類
floatfloatそのまま
orderorderそのまま
positionpos省略
overflowov省略
inline-sizesz省略
block-sizebsz省略
aspect-ratioar省略
writing-modewm省略
white-spacewhs省略

1文字プロパティの短縮名の再利用

グループを持たない1文字プロパティの場合は、その他のハイフン前半部分の略称としてその文字を再利用できます。 また、方向プロパティのみをサブプロパティに持つ場合も、方向サフィックスと衝突しない範囲で再利用できます。

以下はその一例です。

1文字 Prop再利用先展開例
t(top)text-*ta(text-align)
l(left)line-*lh(line-height)
w(width)writing-wm(writing-mode)
p(padding)place-*pi(place-items)

grid-*g は例外的で、gridをLismでは扱わないという例外的なルールによって許容されています。

{value} の省略ルール

Property Class-{prop}:{value}{value}部分の省略ルールについて説明します。

基本ルール: CSS の実値をそのまま使う

{value} 部分は基本的に省略はしません{prop} がすでに省略されているので、その代わり {value} との組み合わせからプロパティを推測できるようにするためです。

.-d:none → display: none;
.-d:inline-flex → display: inline-flex;
.-pos:relative → position: relative;
.-ta:center → text-align: center;
.-fx:1 → flex: 1;
.-fxd:column → flex-direction: column;

トークン値を利用する場合

対応するトークンがある場合は、そのトークン値(--{token}--{value}{value}部分)を利用します。

.-c:text-2 → color: var(--text-2);
.-fz:l → font-size: var(--fz--l);
.-p10 → padding: var(--s10);
.-fw:bold → font-weight: var(--fw--bold);
.-bdrs:20 → border-radius: var(--bdrs--20);
.-bxsh:10 → box-shadow: var(--bxsh--10);

正の値と同様に、トークン値が-{NUM}のものも値をそのまま連結した変数名になります。

.-o:-10 → opacity: var(--o---10);
.-o:-20 → opacity: var(--o---20);

値の表記ルール

単位、マイナス、小数点なども、基本的にはそのままクラス化します。

.-w:100% → width: 100%;
.-h:100% → height: 100%;
.-z:-1 → z-index: -1;
.-ar:16/9 → aspect-ratio: 16/9;

小数点付きのProperty Classはコアにはないが、例えばopacity:0.75のような固定値をクラス化したい場合は次のようなCSSを追加して利用します。

.-o\:0\.75{opacity: 0.75;}
/* → <div class="-o:0.75"> のようにして使う */

長いキーワード値、かつ意味が通りやすいものは省略可

例外的に、6文字以上の値で、かつ省略してもすぐに意味がわかるものであれば省略可とします。

実際の値省略名クラスの例
uppercaseupper-tt:upper
lowercaselower-tt:lower
fit-contentfit-w:fit, -h:fit
space-betweenbetween-ac:between, -jc:between
currentColorcurrent-bdc:current

© Lism CSS. All rights reserved.