@lism-css/mcp 0.23.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +15 -15
- package/README.md +5 -5
- package/dist/data/docs-index.json +185 -159
- package/dist/data/guides/SKILL.md +164 -228
- package/dist/data/guides/antipatterns-layout.md +271 -0
- package/dist/data/guides/antipatterns.md +121 -196
- package/dist/data/guides/base-styles.md +10 -9
- package/dist/data/guides/components-core.md +27 -9
- package/dist/data/guides/components-ui.md +30 -51
- package/dist/data/guides/css-rules.md +104 -107
- package/dist/data/guides/customize.md +10 -7
- package/dist/data/guides/naming.md +22 -41
- package/dist/data/guides/primitive-class.md +5 -5
- package/dist/data/guides/primitives/a--decorator.md +2 -28
- package/dist/data/guides/primitives/a--divider.md +1 -52
- package/dist/data/guides/primitives/a--icon.md +2 -76
- package/dist/data/guides/primitives/a--spacer.md +1 -49
- package/dist/data/guides/primitives/l--autoColumns.md +7 -54
- package/dist/data/guides/primitives/l--box.md +1 -21
- package/dist/data/guides/primitives/l--center.md +6 -39
- package/dist/data/guides/primitives/l--cluster.md +6 -26
- package/dist/data/guides/primitives/l--columns.md +7 -56
- package/dist/data/guides/primitives/l--flex.md +5 -62
- package/dist/data/guides/primitives/l--flow.md +11 -72
- package/dist/data/guides/primitives/l--frame.md +7 -78
- package/dist/data/guides/primitives/l--grid.md +5 -56
- package/dist/data/guides/primitives/l--stack.md +5 -44
- package/dist/data/guides/primitives/l--switchColumns.md +8 -53
- package/dist/data/guides/primitives/l--tileGrid.md +7 -44
- package/dist/data/guides/primitives/l--withSide.md +9 -79
- package/dist/data/guides/property-class/all-props.md +246 -0
- package/dist/data/guides/property-class/bd.md +6 -71
- package/dist/data/guides/property-class/hov.md +14 -73
- package/dist/data/guides/property-class/max-sz.md +3 -39
- package/dist/data/guides/property-class.md +33 -250
- package/dist/data/guides/references/authoring.md +246 -0
- package/dist/data/guides/references/page-sections.md +99 -0
- package/dist/data/guides/references/verification.md +75 -0
- package/dist/data/guides/responsive.md +44 -15
- package/dist/data/guides/set-class.md +2 -12
- package/dist/data/guides/tokens.md +20 -16
- package/dist/data/guides/trait-class/has--gutter.md +3 -31
- package/dist/data/guides/trait-class/has--mask.md +3 -36
- package/dist/data/guides/trait-class/has--snap.md +3 -34
- package/dist/data/guides/trait-class/has--transition.md +3 -41
- package/dist/data/guides/trait-class/is--boxLink.md +2 -63
- package/dist/data/guides/trait-class/is--container.md +2 -29
- package/dist/data/guides/trait-class/is--layer.md +1 -57
- package/dist/data/guides/trait-class/is--wrapper.md +3 -56
- package/dist/data/guides/trait-class.md +8 -8
- package/dist/data/guides/utility-class.md +1 -1
- package/dist/data/meta.js +4 -3
- package/dist/index.js +4 -1
- package/dist/lib/load-markdown.d.ts +4 -0
- package/dist/lib/load-markdown.js +10 -0
- package/dist/lib/response.d.ts +5 -0
- package/dist/lib/response.js +15 -2
- package/dist/lib/schemas.d.ts +35 -0
- package/dist/lib/schemas.js +13 -0
- package/dist/lib/search.d.ts +2 -0
- package/dist/lib/search.js +56 -4
- package/dist/lib/types.d.ts +5 -21
- package/dist/lib/version.d.ts +2 -0
- package/dist/lib/version.js +8 -0
- package/dist/tools/convert-css.js +37 -14
- package/dist/tools/get-component.js +2 -2
- package/dist/tools/get-guide.d.ts +2 -0
- package/dist/tools/get-guide.js +41 -18
- package/dist/tools/get-overview.js +2 -2
- package/dist/tools/get-props-system.js +8 -6
- package/dist/tools/get-tokens.js +2 -2
- package/dist/tools/search-docs.js +13 -7
- package/package.json +21 -6
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# ページ定番セクションの構成例
|
|
2
|
+
|
|
3
|
+
ヒーロー・サイトヘッダー・フッターなど、ページの定番セクションを`Group`/`Wrapper`/`Stack`+Propsで組む時の出発点です。ここにある構成をベースにし、実際の値は値・トークン照合(C5)を通してから確定します。
|
|
4
|
+
|
|
5
|
+
共通の考え方:
|
|
6
|
+
|
|
7
|
+
- セクションの外殻は`Group`(`as="header"`/`as="section"`/`as="footer"`)で意味付けし、`c--siteHeader`のような何のパーツかを示す独自クラス名を付ける(ページ固有の領域も`c--frontHero`のようにslug等を含めて`c--`で命名する。[`css-rules.md`](../css-rules.md#独自クラスの選び方2分類))。
|
|
8
|
+
- 「全幅の背景+中央寄せの本文幅」は、外殻`Group`(背景色・縦padding)+`hasGutter`(サイト共通の左右余白)+内側`Wrapper`(コンテンツ幅)の組み合わせで作る。`max-width`をpxで直書きしない。
|
|
9
|
+
- 縦の並びは`Stack`、横並びは`Cluster`に任せ、余白はすべて`g`/`py`などのトークンPropsで表す。
|
|
10
|
+
- セクションの高さをデザインpxで固定しない。高さは余白(`py`)とコンテンツが決める。
|
|
11
|
+
|
|
12
|
+
## サイトヘッダー
|
|
13
|
+
|
|
14
|
+
ロゴ+ナビの横並び。折り返しは`Cluster`、両端寄せは`jc="between"`。
|
|
15
|
+
|
|
16
|
+
```jsx
|
|
17
|
+
import { Group, Wrapper, Cluster, Link } from 'lism-css/astro';
|
|
18
|
+
|
|
19
|
+
<Group as="header" className="c--siteHeader" bgc="base" py="20" hasGutter>
|
|
20
|
+
<Wrapper contentSize="xl">
|
|
21
|
+
<Cluster jc="between" g="20">
|
|
22
|
+
<Link href="/" fw="bold" fz="l">Site Name</Link>
|
|
23
|
+
<Cluster as="nav" g="30" fz="s">
|
|
24
|
+
<Link href="/about">About</Link>
|
|
25
|
+
<Link href="/blog">Blog</Link>
|
|
26
|
+
<Link href="/contact">Contact</Link>
|
|
27
|
+
</Cluster>
|
|
28
|
+
</Cluster>
|
|
29
|
+
</Wrapper>
|
|
30
|
+
</Group>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- ボタン型のCTAを置くなら`@lism-css/ui`の`Button`を使う([`components-ui.md`](../components-ui.md))。素の`<button>`を整えるなら`set--plain`。
|
|
34
|
+
- 追従ヘッダーにする場合だけ`pos="sticky" t="0" z="99"`を足す。
|
|
35
|
+
|
|
36
|
+
## ヒーローセクション
|
|
37
|
+
|
|
38
|
+
全幅背景+中央寄せテキスト+CTA。
|
|
39
|
+
|
|
40
|
+
```jsx
|
|
41
|
+
import { Group, Wrapper, Stack, Cluster, Heading, Text } from 'lism-css/astro';
|
|
42
|
+
|
|
43
|
+
<Group as="section" className="c--frontHero" bgc="base-2" py={['60', null, '80']} hasGutter isContainer>
|
|
44
|
+
<Wrapper contentSize="l">
|
|
45
|
+
<Stack g="30" ai="center" ta="center">
|
|
46
|
+
<Heading level="1" fz={['3xl', null, '5xl']}>キャッチコピー</Heading>
|
|
47
|
+
<Text fz={['m', null, 'l']} c="text-2">サブコピー</Text>
|
|
48
|
+
<Cluster g="20" jc="center">{/* CTA: @lism-css/ui の Button */}</Cluster>
|
|
49
|
+
</Stack>
|
|
50
|
+
</Wrapper>
|
|
51
|
+
</Group>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- 背景に画像やレイヤーを敷く場合は`Layer`を検討する([`../trait-class/is--layer.md`](../trait-class/is--layer.md))。
|
|
55
|
+
|
|
56
|
+
## フッター
|
|
57
|
+
|
|
58
|
+
リンク集の段組み+コピーライト。列数固定なら`Columns`、最小幅ベースの自動段組みなら`AutoColumns`。
|
|
59
|
+
|
|
60
|
+
```jsx
|
|
61
|
+
import { Group, Wrapper, Stack, AutoColumns, Text, Divider } from 'lism-css/astro';
|
|
62
|
+
|
|
63
|
+
<Group as="footer" className="c--siteFooter" bgc="text" c="base" py="60" hasGutter isContainer>
|
|
64
|
+
<Wrapper contentSize="xl">
|
|
65
|
+
<Stack g="40">
|
|
66
|
+
<AutoColumns cols="12rem" g="40">
|
|
67
|
+
<Stack g="15" fz="s">{/* リンク列 */}</Stack>
|
|
68
|
+
<Stack g="15" fz="s">{/* リンク列 */}</Stack>
|
|
69
|
+
<Stack g="15" fz="s">{/* リンク列 */}</Stack>
|
|
70
|
+
</AutoColumns>
|
|
71
|
+
<Divider />
|
|
72
|
+
<Text fz="xs" ta="center">© 2026 Site Name</Text>
|
|
73
|
+
</Stack>
|
|
74
|
+
</Wrapper>
|
|
75
|
+
</Group>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## 汎用コンテンツセクション
|
|
79
|
+
|
|
80
|
+
見出し+カード一覧などのくり返し型。
|
|
81
|
+
|
|
82
|
+
```jsx
|
|
83
|
+
import { Group, Wrapper, Stack, Heading, Columns } from 'lism-css/astro';
|
|
84
|
+
|
|
85
|
+
<Group as="section" className="c--frontFeatures" py="70" hasGutter isContainer>
|
|
86
|
+
<Wrapper contentSize="l">
|
|
87
|
+
<Stack g="40">
|
|
88
|
+
<Heading level="2" fz="2xl" ta="center">Features</Heading>
|
|
89
|
+
<Columns cols={[1, null, 3]} g="30">{/* カード */}</Columns>
|
|
90
|
+
</Stack>
|
|
91
|
+
</Wrapper>
|
|
92
|
+
</Group>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 使う前の確認
|
|
96
|
+
|
|
97
|
+
- 使うPrimitive/Traitの詳細ファイル(`primitives/l--*.md`・`trait-class/*.md`)を、`SKILL.md`の資料確認トリガーに従って読む。
|
|
98
|
+
- レスポンシブ値(配列・オブジェクト指定)を使う場合は、祖先の`isContainer`または`@media`運用の確認が必要([`responsive.md`](../responsive.md))。
|
|
99
|
+
- ここに書いた値はすべて例。実際のデザイン値は`tokens.md`との照合(C5)とトークン差分表を通す。
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# 検証の分離(`.lism/`規約と評価サブエージェント)
|
|
2
|
+
|
|
3
|
+
提出前チェックの実行を実装担当の本人から分離し、実装プランと評価結果をユーザーが後から確認できるファイルとして残すための規約です。実装フロー・チェック項目の正本は`SKILL.md`(実装フロー・提出前セルフチェック)、実装プランの中身と書式は[`authoring.md`](./authoring.md)を参照してください。
|
|
4
|
+
|
|
5
|
+
`lism-css-guide`の実装フローでは、事前チェック実行レベルが「通常」「値照合付き」の場合だけこの規約を適用します。「不要」「軽量」では`.lism/`へのファイル作成も評価サブエージェントへの委任も行いません(`SKILL.md`「事前チェック実行レベル」参照)。このレベル条件は`lism-css-guide`固有のもので、`.lism/`規約をここから参照する他のスキル(`lism-css-refactor`等)には適用されません。他のスキルからの利用時は、ファイルを作るかどうかは各スキル側の手順に従ってください。
|
|
6
|
+
|
|
7
|
+
## `.lism/`作業ディレクトリ
|
|
8
|
+
|
|
9
|
+
Lism実装作業の成果物(実装プラン・評価報告)は、プロジェクトルートの`.lism/`に固定名で保存します。
|
|
10
|
+
|
|
11
|
+
| ファイル | 内容 | 作成タイミング |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| `.lism/plan.md` | 実装プラン(トークン差分表・構成表を含む) | 値照合付きレベルの実装前チェック時 |
|
|
14
|
+
| `.lism/review.md` | 評価サブエージェント(委任できない環境では本人)による評価報告 | 通常・値照合付きレベルの提出前セルフチェック時(不要・軽量では作成しない) |
|
|
15
|
+
|
|
16
|
+
- **固定名・上書き方式**。タスクごとに別名を作らない。照合先が一意に決まることが、評価サブエージェントや将来の機械チェックの前提になる。複数タスクの文脈は各ファイル冒頭のメタデータヘッダで区別する。
|
|
17
|
+
- メタデータヘッダには日時・対象タスク・スケール前提(デザイン再現時。判定根拠付き)を書く。
|
|
18
|
+
- OSのtempディレクトリは使わない(環境ごとにパスが変わり、ユーザーが確認できない)。
|
|
19
|
+
- このスキルが既存プロジェクトの`.gitignore`を書き換えることはしない。`.lism/`をコミットしない運用にしたいユーザーには、完了報告で`.gitignore`への追加を案内する(プランを記録として残す運用も可)。
|
|
20
|
+
|
|
21
|
+
`.lism/plan.md`のメタデータヘッダ例:
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
---
|
|
25
|
+
date: 2026-07-02
|
|
26
|
+
task: トップページのヒーローセクション実装
|
|
27
|
+
scale: PNGは2880px幅=1440px設計の2x書き出し(画像実寸と行送り・ボタン高さの整合で判定)
|
|
28
|
+
---
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 評価サブエージェントへの委任
|
|
32
|
+
|
|
33
|
+
提出前セルフチェックを実装した本人だけで行うと、「正確に再現する」等のゴールへの執着や、自分で立てたプランを疑いにくくなる心理から、例外を自己承認してしまいやすくなります。サブエージェント/タスク委任機能が使える環境では、照合を読み取り専用の評価サブエージェントに委任します。使えない環境では、同じ照合を本人が`SKILL.md`「提出前セルフチェック」の順に自分で実行します。
|
|
34
|
+
|
|
35
|
+
運用ルール:
|
|
36
|
+
|
|
37
|
+
- 評価サブエージェントは**実装プランではなくルールと照合する**。基準は`SKILL.md`の「最小ゲート」「判定記号」、`antipatterns.md`・`antipatterns-layout.md`、`property-class.md`。プラン段階で✅にされてしまった逸脱も、コードがルール違反であれば検出できる。
|
|
38
|
+
- 加えて`.lism/plan.md`と実装を突き合わせる: CSSに残った各宣言が、構成表の「CSSに残す」列やトークン差分表の行に対応しているか。**表に対応しない宣言は違反として列挙する**。
|
|
39
|
+
- 評価は読み取りだけで完結させる(評価サブエージェントはコードを変更しない)。
|
|
40
|
+
- **違反ゼロを終了条件にする**: 違反ゼロの評価報告が出るまで提出せず、違反を修正したら再評価を依頼する(修正→再評価を繰り返す)。
|
|
41
|
+
- 評価報告は`.lism/review.md`へ保存し、完了報告から必ず参照する(評価を実施したことをユーザーが確認できるようにする)。
|
|
42
|
+
|
|
43
|
+
### 評価サブエージェントへの指示テンプレ
|
|
44
|
+
|
|
45
|
+
```md
|
|
46
|
+
あなたはLism CSS実装の評価者です。実装の意図や経緯は考慮せず、ルール照合だけを行ってください。
|
|
47
|
+
|
|
48
|
+
対象ファイル: {実装・変更したファイルのパス一覧}
|
|
49
|
+
実装プラン: .lism/plan.md(存在する場合)
|
|
50
|
+
照合する資料(このスキルのファイル):
|
|
51
|
+
- {skillルート}/SKILL.md の「最小ゲート」「判定記号」
|
|
52
|
+
- {skillルート}/antipatterns.md と antipatterns-layout.md(TOCの全項目と照合)
|
|
53
|
+
- {skillルート}/property-class.md(CSSに残った宣言がProps/Property Classで表せないか)
|
|
54
|
+
- {skillルート}/tokens.md(使われている値・色がトークンに存在するか)
|
|
55
|
+
|
|
56
|
+
確認すること:
|
|
57
|
+
1. 最小ゲートの各項目への違反
|
|
58
|
+
2. antipatterns系2ファイルの各項目に該当するコード
|
|
59
|
+
3. CSS内の各宣言が .lism/plan.md の構成表・トークン差分表の行に対応しているか(対応しない宣言は違反)
|
|
60
|
+
4. `✅例外`の行が「直書きしてよい例外」のどの項目に該当するかの引用を伴っているか
|
|
61
|
+
|
|
62
|
+
報告書式(違反ゼロでも作成する):
|
|
63
|
+
|
|
64
|
+
| file:line | 違反ルール(資料名と節) | 内容 | 判定 |
|
|
65
|
+
| --- | --- | --- | --- |
|
|
66
|
+
|
|
67
|
+
判定は「違反 / 要確認」。表には違反・要確認の行だけを載せ、適合した項目を1行ずつ列挙しないでください。最後に「照合した資料名の一覧」と違反・要確認の件数サマリを書いてください。違反ゼロの場合、報告はこの一覧とサマリだけでかまいません。
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### grepによる補助チェック(コマンドが実行できる環境のみ)
|
|
71
|
+
|
|
72
|
+
評価時に`grep`等が使える場合は、次の検出で違反候補のあたりを付けてよい(最終判定は資料との照合で行う):
|
|
73
|
+
|
|
74
|
+
- **Props移行漏れ**: Props/Property Classで表せるプロパティの宣言がカスタムCSSに残っていないかを、値ではなく**プロパティ名**で検出する。`grep -rnE '^\s*(padding|margin|gap|font-(size|family|weight)|line-height|letter-spacing|color|background|border-radius|(max-|min-)?(width|height)|text-align)[^:]*:' src` のヒット行は、値がトークン参照(`var(--s20)`等)でも移行候補。CSS残留を許可するのは擬似要素・子孫セレクタ・状態切替を伴う宣言だけ。
|
|
75
|
+
- **トークン外の値**: px/rem/emは `grep -rnE '[0-9]+(\.[0-9]+)?(px|rem|em)' src`、生hexは `grep -rnE '#[0-9a-fA-F]{3,8}' src`。ヒット行を「直書きしてよい例外」または`.lism/plan.md`の該当行に対応付け、対応付けられない行は違反。
|
|
@@ -8,7 +8,7 @@ Lism CSS は**コンテナクエリ**をデフォルトで採用しています
|
|
|
8
8
|
- [HTML / Property Class での指定](#html--property-class-での指定)
|
|
9
9
|
- [Lism コンポーネントでの指定](#lism-コンポーネントでの指定)
|
|
10
10
|
|
|
11
|
-
[詳細](https://lism-css.com/docs/responsive
|
|
11
|
+
[詳細](https://lism-css.com/docs/responsive.md)
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -23,7 +23,7 @@ Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape)
|
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
| BP | 値 | 効くタイミング |
|
|
26
|
-
|
|
26
|
+
| --- | --- | --- |
|
|
27
27
|
| `xs` | 0(無効) | (opt-in) |
|
|
28
28
|
| `sm` | 480px | sm 以上 |
|
|
29
29
|
| `md` | 800px | md 以上 |
|
|
@@ -99,19 +99,7 @@ Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape)
|
|
|
99
99
|
}
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
**例外パターン** — `alwaysVar` 対応の `c`, `bgc`, `p`, `m`, `bdrs`
|
|
103
|
-
|
|
104
|
-
```css
|
|
105
|
-
.-p { padding: var(--p) }
|
|
106
|
-
@container (min-width: 480px) {
|
|
107
|
-
.-p_sm { padding: var(--p); --p: var(--p_sm) !important }
|
|
108
|
-
}
|
|
109
|
-
@container (min-width: 800px) {
|
|
110
|
-
.-p_md { padding: var(--p); --p: var(--p_md) !important }
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
ソースコードの [props.ts](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/config/defaults/props.ts) で `alwaysVar: 1` がセットされているプロパティがこのパターンで出力されます。
|
|
102
|
+
**例外パターン** — `alwaysVar` 対応の `c`, `bgc`, `p`, `m`, `bdrs` のみ。ベース変数(`--p` 等)が常に現在適用中の値を指すように上書きされる。CSS出力例と仕組みは [property-class.md の `alwaysVar` タイプ](./property-class.md#alwaysvar-タイプ)を参照。
|
|
115
103
|
|
|
116
104
|
## Lism コンポーネントでの指定
|
|
117
105
|
|
|
@@ -132,3 +120,44 @@ Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape)
|
|
|
132
120
|
style="--p_sm: var(--s30); --p_md: var(--s40); --fz_sm: var(--fz--m); --fz_md: var(--fz--l)">
|
|
133
121
|
</div>
|
|
134
122
|
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Authoring時の確認ルール
|
|
127
|
+
|
|
128
|
+
### base値を必ず置く
|
|
129
|
+
|
|
130
|
+
BP専用値だけを書くと、BP未満で値が未指定になります。配列では先頭、オブジェクトでは`base`、HTMLでは`-{prop}:{value}`を必ず置きます。
|
|
131
|
+
|
|
132
|
+
| NG | OK |
|
|
133
|
+
| --- | --- |
|
|
134
|
+
| `<Box p={{ sm: 30 }}>` | `<Box p={{ base: '20', sm: '30' }}>` |
|
|
135
|
+
| `<div class="-p_sm" style="--p_sm:var(--s30)">` | `<div class="-p:20 -p_sm" style="--p_sm:var(--s30)">` |
|
|
136
|
+
|
|
137
|
+
### 冗長配列は圧縮する
|
|
138
|
+
|
|
139
|
+
前のBPと同じ値を繰り返さない。変わらないBPは`null`でスキップし、全BPで同じ値なら単一値にします。
|
|
140
|
+
|
|
141
|
+
| NG | OK |
|
|
142
|
+
| --- | --- |
|
|
143
|
+
| `fxd={['column', 'column', 'row']}` | `fxd={['column', null, 'row']}` |
|
|
144
|
+
| `p={['20', '20', '20']}` | `p="20"` |
|
|
145
|
+
| `cols={[1, 1, 3]}` | `cols={[1, null, 3]}` |
|
|
146
|
+
|
|
147
|
+
ただし、既存コードの型・生成仕様で`null`が使えない場合は既存パターンを優先します。レスポンシブ差分を誤って単一値化しないでください。
|
|
148
|
+
|
|
149
|
+
### container query運用では祖先`isContainer`を確認する
|
|
150
|
+
|
|
151
|
+
デフォルトではレスポンシブProperty Classは`@container`で発火します。レスポンシブ値を載せる要素の祖先に`isContainer`/`is--container`があるか確認してください。
|
|
152
|
+
|
|
153
|
+
```jsx
|
|
154
|
+
<Stack isContainer>
|
|
155
|
+
<Box p={{ base: '20', md: '40' }}>...</Box>
|
|
156
|
+
</Stack>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
`$is_container_query:0`などの設定でmedia query運用が確認できる場合は、`isContainer`祖先は必須ではありません。設定が不明な場合は、既存SCSS設定・`customize.md`・生成CSSを確認してから判断してください。
|
|
160
|
+
|
|
161
|
+
### `isContainer`を置く位置で挙動が変わる
|
|
162
|
+
|
|
163
|
+
`isContainer`を追加する位置はcontainer幅と発火タイミングを変えます。既存UIの見た目・UXが変わる可能性がある場合は⏸としてユーザー確認してください。特に、固定Gridを`cols={[1,2,3]}`へ変える提案は挙動変更として扱います。
|
|
@@ -8,7 +8,7 @@ HTML では直接クラスを付与し、Lism コンポーネントでは `set`
|
|
|
8
8
|
set-- は目的別に 2 カテゴリに分かれます。
|
|
9
9
|
|
|
10
10
|
| カテゴリ | 用途 | クラス |
|
|
11
|
-
|
|
11
|
+
| --- | --- | --- |
|
|
12
12
|
| 基礎スタイリング | HTML 要素のリセット/リバート | `set--plain` / `set--revert` |
|
|
13
13
|
| 変数のセット | CSS 変数のセットアップのみを行う | `set--bxsh` / `set--hov` / `set--bdrsInner` / `set--bleed` / `set--s` |
|
|
14
14
|
|
|
@@ -30,17 +30,7 @@ set-- は目的別に 2 カテゴリに分かれます。
|
|
|
30
30
|
|
|
31
31
|
## 対応ソースコード
|
|
32
32
|
|
|
33
|
-
ソース: https://github.com/lism-css/lism-css/tree/main/packages/lism-css/src/scss/base/set
|
|
34
|
-
|
|
35
|
-
| クラス | ソースファイル |
|
|
36
|
-
|--------|---------------|
|
|
37
|
-
| `set--plain` | [`_plain.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_plain.scss) |
|
|
38
|
-
| `set--revert` | [`_revert.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_revert.scss) |
|
|
39
|
-
| `set--bxsh` | [`_tokens.gen.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_tokens.gen.scss) |
|
|
40
|
-
| `set--hov` | [`_hov.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_hov.scss) |
|
|
41
|
-
| `set--bdrsInner` | [`_bdrsInner.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_bdrsInner.scss) |
|
|
42
|
-
| `set--bleed` | [`_bleed.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/set/_bleed.scss) |
|
|
43
|
-
| `set--s` | [`_tokens.gen.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_tokens.gen.scss) |
|
|
33
|
+
ソース: https://github.com/lism-css/lism-css/tree/main/packages/lism-css/src/scss/base/set(`set--{name}` は `_{name}.scss` に対応。`set--bxsh` / `set--s` のみ `base/tokens/_tokens.gen.scss` で生成)
|
|
44
34
|
|
|
45
35
|
---
|
|
46
36
|
|
|
@@ -29,7 +29,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
29
29
|
## トークン概要テーブル
|
|
30
30
|
|
|
31
31
|
| カテゴリ | トークン値 | CSS変数パターン | 例 |
|
|
32
|
-
|
|
32
|
+
| --- | --- | --- | --- |
|
|
33
33
|
| 余白 (space) | `5`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `50`, `60`, `70`, `80` | `--s{N}` | `--s20` |
|
|
34
34
|
| フォントサイズ (fz) | `base`, `2xs`, `xs`, `s`, `m`, `l`, `xl`, `2xl`, `3xl`, `4xl`, `5xl` | `--fz--{key}` | `--fz--l` |
|
|
35
35
|
| ハーフレディング・行間 (hl/lh) | `base`, `xs`, `s`, `l` | `--hl--{key}` | `--hl--s` |
|
|
@@ -54,7 +54,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
54
54
|
フィボナッチ数列ベースのスケーリング。`--s-unit`(デフォルト `calc(var(--fz--base) * 0.5)` = ≒ 8px)を基準単位とする。
|
|
55
55
|
|
|
56
56
|
| CSS変数 | 値 | 実サイズ目安 |
|
|
57
|
-
|
|
57
|
+
| --- | --- | --- |
|
|
58
58
|
| `--s5` | `calc(var(--s-unit) * 0.5)` | ≒ 4px |
|
|
59
59
|
| `--s10` | `var(--s-unit)` | ≒ 8px |
|
|
60
60
|
| `--s15` | `calc(var(--s-unit) * 1.5)` | ≒ 12px |
|
|
@@ -91,7 +91,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
91
91
|
倍音列(調和数列)ベースの、ハーモニックモジュラースケーリングを採用。`--fz-mol`(デフォルト `8`)を分子とする `mol / (mol ± n)` の比率で算出される。
|
|
92
92
|
|
|
93
93
|
| CSS変数 | 値 | 説明 |
|
|
94
|
-
|
|
94
|
+
| --- | --- | --- |
|
|
95
95
|
| `--fz--5xl` | `calc(1em * var(--fz-mol) / (var(--fz-mol) - 6))` | 最大(mol/(mol-6)) |
|
|
96
96
|
| `--fz--4xl` | `calc(1em * var(--fz-mol) / (var(--fz-mol) - 5))` | 特大(mol/(mol-5)) |
|
|
97
97
|
| `--fz--3xl` | `calc(1em * var(--fz-mol) / (var(--fz-mol) - 4))` | 3XL(mol/(mol-4)) |
|
|
@@ -112,7 +112,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
112
112
|
ハーフレディングの大きさ。Lism CSSでは、`line-height` は `calc(1em + var(--hl) * 2)` で算出される。`--hl-unit`(≒ 2px)を基準単位とする。
|
|
113
113
|
|
|
114
114
|
| CSS変数 | 値 | 説明 |
|
|
115
|
-
|
|
115
|
+
| --- | --- | --- |
|
|
116
116
|
| `--hl--xs` | `var(--hl-unit)` | 極小の行間(≒ 2px) |
|
|
117
117
|
| `--hl--s` | `calc(var(--hl-unit) * 2)` | 小さめの行間(≒ 4px) |
|
|
118
118
|
| `--hl--base` | `calc(var(--hl-unit) * 3)` | 基本の行間(≒ 6px) |
|
|
@@ -122,7 +122,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
122
122
|
## 字間 (lts)
|
|
123
123
|
|
|
124
124
|
| CSS変数 | 値 | 説明 |
|
|
125
|
-
|
|
125
|
+
| --- | --- | --- |
|
|
126
126
|
| `--lts--base` | `normal` | 基本の文字間隔 |
|
|
127
127
|
| `--lts--s` | `-0.025em` | 狭めの文字間隔 |
|
|
128
128
|
| `--lts--l` | `0.05em` | 広めの文字間隔 |
|
|
@@ -132,7 +132,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
132
132
|
## フォント (ff)
|
|
133
133
|
|
|
134
134
|
| CSS変数 | 値 |
|
|
135
|
-
|
|
135
|
+
| --- | --- |
|
|
136
136
|
| `--ff--base` | `-apple-system, 'BlinkMacSystemFont', 'Hiragino Sans', sans-serif` |
|
|
137
137
|
| `--ff--accent` | `Georgia, serif` |
|
|
138
138
|
| `--ff--mono` | `ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace` |
|
|
@@ -141,7 +141,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
141
141
|
## ウェイト (fw)
|
|
142
142
|
|
|
143
143
|
| CSS変数 | 値 | 説明 |
|
|
144
|
-
|
|
144
|
+
| --- | --- | --- |
|
|
145
145
|
| `--fw--light` | `300` | 細め |
|
|
146
146
|
| `--fw--normal` | `400` | 標準 |
|
|
147
147
|
| `--fw--bold` | `600` | 太字(Hiragino Sans W6 相当) |
|
|
@@ -154,7 +154,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
154
154
|
音楽の強弱記号(piano 系列)に由来するセマンティック命名を採用。`p`(piano / 弱く)の反復回数が多いほど透明度が増す。Lism 内で「文字の反復回数で段階を表す」命名は opacity のみの例外。
|
|
155
155
|
|
|
156
156
|
| CSS変数 | 値 | 説明 |
|
|
157
|
-
|
|
157
|
+
| --- | --- | --- |
|
|
158
158
|
| `--o--mp` | `0.9` | mezzo-piano: ごく軽い減衰 |
|
|
159
159
|
| `--o--p` | `0.75` | piano: hover fade, 補助テキスト等 |
|
|
160
160
|
| `--o--pp` | `0.5` | pianissimo: disabled, divider, decorator 等 |
|
|
@@ -164,7 +164,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
164
164
|
## 角丸 (bdrs)
|
|
165
165
|
|
|
166
166
|
| CSS変数 | 値 | 説明 |
|
|
167
|
-
|
|
167
|
+
| --- | --- | --- |
|
|
168
168
|
| `--bdrs--10` | `0.25rem` | ≒ 4px |
|
|
169
169
|
| `--bdrs--20` | `0.5rem` | ≒ 8px |
|
|
170
170
|
| `--bdrs--30` | `1rem` | ≒ 16px |
|
|
@@ -178,7 +178,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
178
178
|
`--shc`(シャドウカラー)と `--shsz--{N}`(シャドウサイズ)を組み合わせて構成される。要素ごとに `--shc` を上書きして再計算したい場合は、`set--bxsh` クラスを併用する。
|
|
179
179
|
|
|
180
180
|
| CSS変数 | 値 |
|
|
181
|
-
|
|
181
|
+
| --- | --- |
|
|
182
182
|
| `--bxsh--10` | `var(--shsz--10) var(--shc)` |
|
|
183
183
|
| `--bxsh--20` | `var(--shsz--20) var(--shc)` |
|
|
184
184
|
| `--bxsh--30` | `var(--shsz--30) var(--shc)` |
|
|
@@ -186,7 +186,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
186
186
|
| `--bxsh--50` | `var(--shsz--50) var(--shc)` |
|
|
187
187
|
|
|
188
188
|
| CSS変数 | 初期値 |
|
|
189
|
-
|
|
189
|
+
| --- | --- |
|
|
190
190
|
| `--shadow` | `hsl(220 4% 8% / 12%)` |
|
|
191
191
|
| `--shc` | `var(--shadow)` |
|
|
192
192
|
| `--shsz--10` | `0px 1px 3px` |
|
|
@@ -201,7 +201,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
201
201
|
`l--flow` のコンテンツ間余白に使われるトークン。`:root` で定義されている。
|
|
202
202
|
|
|
203
203
|
| CSS変数 | 値 | 説明 |
|
|
204
|
-
|
|
204
|
+
| --- | --- | --- |
|
|
205
205
|
| `--flow--base` | `var(--s30)`(`lang="ja"` 時は `var(--s35)`) | `l--flow` の基準余白 |
|
|
206
206
|
| `--flow--s` | `var(--s20)` | `-flow:s` で適用される小さめの余白 |
|
|
207
207
|
|
|
@@ -211,7 +211,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
211
211
|
サイト全体のガター(左右余白)量を扱う変数群。`--flow--base` / `--flow` と同じく「基準値(`:root`)+ 要素ローカル機能変数」の2層構造を採る。
|
|
212
212
|
|
|
213
213
|
| CSS変数 | 初期値 | 説明 |
|
|
214
|
-
|
|
214
|
+
| --- | --- | --- |
|
|
215
215
|
| `--gutter--base` | `var(--s30)` | サイトコンテンツの左右余白の基準値(`:root` で定義) |
|
|
216
216
|
| `--gutter` | `var(--gutter--base)` | `.has--gutter` で要素ローカルに初期化される機能変数。要素単位で `style="--gutter: 20px"` のように上書き可能 |
|
|
217
217
|
|
|
@@ -229,7 +229,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
229
229
|
サイト全体のカラー設計に使用するトークン。
|
|
230
230
|
|
|
231
231
|
| CSS変数 | デフォルト値 | 説明 |
|
|
232
|
-
|
|
232
|
+
| --- | --- | --- |
|
|
233
233
|
| `--base` | `hsl(220 0% 99%)` | ベース背景色 |
|
|
234
234
|
| `--base-2` | `hsl(220 4% 95%)` | 代替背景色 |
|
|
235
235
|
| `--text` | `hsl(220 0% 8%)` | 基本テキスト色 |
|
|
@@ -245,7 +245,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
245
245
|
OKLCH で定義されたカラーパレット。`--L`(明度)と `--C`(彩度)の基準値を調整するとパレット全体の色味を変更可能。デフォルト: `--L: 60%`, `--C: 0.2`。
|
|
246
246
|
|
|
247
247
|
| CSS変数 | 値 |
|
|
248
|
-
|
|
248
|
+
| --- | --- |
|
|
249
249
|
| `--red` | `oklch(var(--L) var(--C) 20)` |
|
|
250
250
|
| `--orange` | `oklch(calc(var(--L) + 6%) calc(var(--C) - 0.01) 48)` |
|
|
251
251
|
| `--yellow` | `oklch(calc(var(--L) + 12%) calc(var(--C) - 0.02) 80)` |
|
|
@@ -263,10 +263,12 @@ OKLCH で定義されたカラーパレット。`--L`(明度)と `--C`(彩
|
|
|
263
263
|
|
|
264
264
|
`--keycolor: var(--red)` のように指定しておくことで、そのボックス自身や子要素のカラー Props(`c`, `bgc`, `bdc` など)で 特定の色をハードコーディングせずに `--keycolor` 経由で参照できるようにすることができる。代表的な使用例は `u--cbox` ユーティリティクラス。
|
|
265
265
|
|
|
266
|
+
`c` / `bgc` / `bdc` の値に `keycolor` を指定すると、`-c:keycolor` のような Property Class が出力される(`style` 属性ではない)。これらのクラスは `--c: var(--keycolor)` のように `--keycolor` を参照する。
|
|
267
|
+
|
|
266
268
|
```html
|
|
267
269
|
<!-- ボックスにキーカラーを設定、テキストをキーカラーに連動させる例 -->
|
|
268
270
|
<div class="u--cbox" style="--keycolor: var(--red)">
|
|
269
|
-
<p class="-c
|
|
271
|
+
<p class="-c:keycolor">...</p>
|
|
270
272
|
</div>
|
|
271
273
|
```
|
|
272
274
|
```jsx
|
|
@@ -277,6 +279,8 @@ OKLCH で定義されたカラーパレット。`--L`(明度)と `--C`(彩
|
|
|
277
279
|
|
|
278
280
|
- `c`, `bgc` 等のカラー系 Props では、セマンティックカラー → パレットカラーの順で検索される
|
|
279
281
|
- どちらも最終的に `var(--{name})` に変換される
|
|
282
|
+
- `main.css` でクラス化されるのは厳選したセマンティックカラーと `keycolor` のみ(`-c:brand` / `-c:keycolor` など)。それ以外のカラートークン(`red` などのパレットカラー)は `style` 属性の CSS 変数として出力される
|
|
283
|
+
- `full.css` + `isFullMode` では、`c` / `bgc` / `bdc` の全カラートークンがクラス化される(`-bgc:red` など)
|
|
280
284
|
|
|
281
285
|
|
|
282
286
|
## トークン値の命名規則
|
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
要素の左右に、サイト共通の gutter(余白)を適用する Trait クラス。`padding` 系ユーティリティとは別に、「サイト全体で統一した左右余白」を確保したい時に使う。
|
|
4
4
|
|
|
5
|
-
## 基本情報
|
|
6
|
-
|
|
7
|
-
- クラス名: `has--gutter`
|
|
8
5
|
- Lism props: `hasGutter`(`<Lism hasGutter>` 等)
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
|
|
7
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/trait-class.md#has--gutter
|
|
11
8
|
|
|
12
9
|
## SCSS 定義
|
|
13
10
|
|
|
@@ -26,38 +23,13 @@
|
|
|
26
23
|
## CSS 変数
|
|
27
24
|
|
|
28
25
|
| 変数 | 役割 | デフォルト |
|
|
29
|
-
|
|
26
|
+
| --- | --- | --- |
|
|
30
27
|
| `--gutter--base` | サイト全体のガター基準値(`:root` 定義) | `var(--s30)` |
|
|
31
28
|
| `--gutter` | `.has--gutter` 要素ローカルの機能変数 | `var(--gutter--base)` |
|
|
32
29
|
|
|
33
30
|
- サイト全体の基準を変えたい場合は `:root` 等で `--gutter--base` を上書きする
|
|
34
31
|
- 個別要素のみガター量を変えたい場合は、その要素で `style="--gutter: 20px"` のように `--gutter` を直接上書きする
|
|
35
32
|
|
|
36
|
-
## Usage
|
|
37
|
-
|
|
38
|
-
```html
|
|
39
|
-
<div class="has--gutter">
|
|
40
|
-
<p>Lorem ipsum content...</p>
|
|
41
|
-
<p>Lorem ipsum content...</p>
|
|
42
|
-
</div>
|
|
43
|
-
|
|
44
|
-
<!-- 個別要素でガター量を上書きする例 -->
|
|
45
|
-
<div class="has--gutter" style="--gutter: 20px">
|
|
46
|
-
<p>Lorem ipsum content...</p>
|
|
47
|
-
</div>
|
|
48
|
-
```
|
|
49
|
-
```jsx
|
|
50
|
-
<Lism hasGutter>
|
|
51
|
-
<p>Lorem ipsum content...</p>
|
|
52
|
-
<p>Lorem ipsum content...</p>
|
|
53
|
-
</Lism>
|
|
54
|
-
|
|
55
|
-
{/* 個別要素でガター量を上書きする例 */}
|
|
56
|
-
<Lism hasGutter style={{ '--gutter': '20px' }}>
|
|
57
|
-
<p>Lorem ipsum content...</p>
|
|
58
|
-
</Lism>
|
|
59
|
-
```
|
|
60
|
-
|
|
61
33
|
## 関連
|
|
62
34
|
|
|
63
35
|
- `-px:*` プロパティクラス — その要素ごとに任意の左右 padding を付けたい場合はこちら
|
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
`--maskImg` 変数と組み合わせて、要素自身にマスク画像を適用する Trait クラス。SVG を使った異形シェイプ表示などに使う。
|
|
4
4
|
|
|
5
|
-
## 基本情報
|
|
6
|
-
|
|
7
|
-
- クラス名: `has--mask`
|
|
8
5
|
- Lism props: `hasMask`(`<Lism hasMask>` 等)
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
|
|
7
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/trait-class.md#has--mask
|
|
11
8
|
|
|
12
9
|
## SCSS 定義
|
|
13
10
|
|
|
@@ -25,42 +22,12 @@
|
|
|
25
22
|
## CSS 変数
|
|
26
23
|
|
|
27
24
|
| 変数 | 役割 | デフォルト |
|
|
28
|
-
|
|
25
|
+
| --- | --- | --- |
|
|
29
26
|
| `--maskImg` | マスク画像(`url(...)` で指定。SVG data URI が多い) | **未定義(必須)** |
|
|
30
27
|
| `--maskPos` | マスクの位置 | `50%` |
|
|
31
28
|
| `--maskSize` | マスクのサイズ | `contain` |
|
|
32
29
|
| `--maskRepeat` | マスクの繰り返し | `no-repeat` |
|
|
33
30
|
|
|
34
|
-
## Usage
|
|
35
|
-
|
|
36
|
-
`Frame` コンポーネント(または任意の要素)に `has--mask` を付与し、`--maskImg` に SVG の data URI をセットする。
|
|
37
|
-
|
|
38
|
-
```html
|
|
39
|
-
<div
|
|
40
|
-
class="l--frame has--mask -ar:og"
|
|
41
|
-
style="--maskImg: url('data:image/svg+xml,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><path fill="%23000000" d="M170.4,25.7...Z" /></svg>')"
|
|
42
|
-
>
|
|
43
|
-
<img src="..." width="960" height="640" alt="" />
|
|
44
|
-
</div>
|
|
45
|
-
```
|
|
46
|
-
```jsx
|
|
47
|
-
<Frame
|
|
48
|
-
hasMask
|
|
49
|
-
ar="og"
|
|
50
|
-
style={{
|
|
51
|
-
'--maskImg': `url('data:image/svg+xml,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><path fill="%23000000" d="M170.4,25.7...Z" /></svg>')`
|
|
52
|
-
}}
|
|
53
|
-
>
|
|
54
|
-
<img src="..." width="960" height="640" alt="" />
|
|
55
|
-
</Frame>
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### 実装メモ
|
|
59
|
-
|
|
60
|
-
- HTML 属性内で SVG data URI を使う場合、`<` / `>` / `"` をエンティティ化する必要がある
|
|
61
|
-
- JSX の `style` オブジェクトで渡す場合はテンプレートリテラルでそのまま書ける
|
|
62
|
-
- マスクの位置や繰り返しを変えたい場合は `--maskPos` / `--maskSize` / `--maskRepeat` を個別に上書き
|
|
63
|
-
|
|
64
31
|
## 関連
|
|
65
32
|
|
|
66
33
|
- `l--frame` — アスペクト比制御。マスク画像をフィットさせるラッパーとして併用することが多い
|
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
`scroll-snap-*` 系のプロパティを CSS 変数経由でセットする Trait クラス。横スクロールカルーセルなどで子要素のスナップ位置を制御したい時に使う。
|
|
4
4
|
|
|
5
|
-
## 基本情報
|
|
6
|
-
|
|
7
|
-
- クラス名: `has--snap`
|
|
8
5
|
- Lism props: `hasSnap`(`<Lism hasSnap>` 等)
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
|
|
7
|
+
公式ドキュメント(使い方・コード例): https://lism-css.com/docs/trait-class.md#has--snap
|
|
11
8
|
|
|
12
9
|
## SCSS 定義
|
|
13
10
|
|
|
@@ -30,39 +27,11 @@
|
|
|
30
27
|
## CSS 変数
|
|
31
28
|
|
|
32
29
|
| 変数 | 役割 | デフォルト |
|
|
33
|
-
|
|
30
|
+
| --- | --- | --- |
|
|
34
31
|
| `--snapType` | `scroll-snap-type` | `both mandatory` |
|
|
35
32
|
| `--snapAlign` | 子要素の `scroll-snap-align` | `start` |
|
|
36
33
|
| `--snapStop` | 子要素の `scroll-snap-stop` | `normal` |
|
|
37
34
|
|
|
38
|
-
## Usage
|
|
39
|
-
|
|
40
|
-
`ov="auto"`(または `overflow: auto`)と一緒に使い、スクロールコンテナとして成立させる必要がある。
|
|
41
|
-
|
|
42
|
-
```html
|
|
43
|
-
<div class="has--snap -ov:auto -ar:16/9 -bd">
|
|
44
|
-
<div class="l--frame -ar:16/9 -p:15"><img src="..." /></div>
|
|
45
|
-
<div class="l--frame -ar:16/9 -p:15"><img src="..." /></div>
|
|
46
|
-
<div class="l--frame -ar:16/9 -p:15"><img src="..." /></div>
|
|
47
|
-
</div>
|
|
48
|
-
```
|
|
49
|
-
```jsx
|
|
50
|
-
<Box hasSnap ov="auto" ar="16/9" bd>
|
|
51
|
-
<Frame ar="16/9" p="15"><img src="..." /></Frame>
|
|
52
|
-
<Frame ar="16/9" p="15"><img src="..." /></Frame>
|
|
53
|
-
<Frame ar="16/9" p="15"><img src="..." /></Frame>
|
|
54
|
-
</Box>
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### スナップ方向を水平だけに限定する例
|
|
58
|
-
|
|
59
|
-
```html
|
|
60
|
-
<div class="has--snap -ov:auto" style="--snapType: x mandatory">...</div>
|
|
61
|
-
```
|
|
62
|
-
```jsx
|
|
63
|
-
<Box hasSnap ov="auto" style={{ '--snapType': 'x mandatory' }}>...</Box>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
35
|
## 関連
|
|
67
36
|
|
|
68
37
|
- `-ov:*` プロパティクラス — スクロールコンテナ化に必須
|