コンテンツにスキップ

Variant / State

SpiraCSS では、従来の Modifier を VariantState に分離します。

役割の整理

  • 構造(Block / Element): クラスで表現
  • Variant(バリアント): 見た目の静的な差分(サイズ/トーン/レイアウト)
  • State(状態): 動的に切り替わるもの(open/closed/loading/selected)

重要: JS で切り替えるかどうかは分類基準にしない(意味で決める)。

表現モード

設定は spiracss.config.js で行います。

data モード(デフォルト)

種別用途HTMLSCSS
Variant見た目のバリエーションdata-variant="primary"&[data-variant="primary"]
Stateインタラクション状態data-state="active"&[data-state="active"]
ARIA 状態アクセシビリティ状態aria-expanded="true"&[aria-expanded="true"]

配置ルール:

class モード

種別命名ルール
Modifier先頭に -(ケバブケース 1〜2 語).-primary, .-active

class モードでは Variant と State を区別できないため、SCSS 内のセクション配置は data モードと同じ基準で実装者が判断します。

データ属性の命名・値ルール

種別デフォルト属性名値の形式
Variantdata-variantkebab 1〜2 語data-variant="primary-dark"
Statedata-statekebab 1〜2 語data-state="loading"

Variant を複数の属性に分けることも可能(例: data-variant="primary" + data-size="large")。