@lism-css/mcp 0.22.0 → 0.24.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 +232 -96
- package/dist/data/guides/SKILL.md +162 -224
- package/dist/data/guides/antipatterns-layout.md +268 -0
- package/dist/data/guides/antipatterns.md +118 -196
- package/dist/data/guides/base-styles.md +14 -12
- package/dist/data/guides/components-core.md +26 -8
- package/dist/data/guides/components-ui.md +28 -24
- package/dist/data/guides/css-rules.md +40 -57
- package/dist/data/guides/customize.md +121 -37
- package/dist/data/guides/naming.md +23 -42
- 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 +244 -0
- package/dist/data/guides/property-class/bd.md +5 -70
- 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 +31 -249
- 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 +73 -0
- package/dist/data/guides/responsive.md +68 -20
- package/dist/data/guides/set-class.md +2 -12
- package/dist/data/guides/tokens.md +31 -31
- 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 +11 -60
- 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/markdown-utils.d.ts +1 -1
- 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 +45 -2
- 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 +38 -15
- package/dist/tools/get-component.js +2 -2
- package/dist/tools/get-guide.d.ts +2 -0
- package/dist/tools/get-guide.js +40 -17
- 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 +17 -2
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# ページ定番セクションの構成例
|
|
2
|
+
|
|
3
|
+
ヒーロー・サイトヘッダー・フッターなど、ページの定番セクションを`Group`/`Wrapper`/`Stack`+Propsで組む時の出発点です。ここにある構成をベースにし、実際の値は値・トークン照合(C5)を通してから確定します。
|
|
4
|
+
|
|
5
|
+
共通の考え方:
|
|
6
|
+
|
|
7
|
+
- セクションの外殻は`Group`(`as="header"`/`as="section"`/`as="footer"`)で意味付けし、サイト領域には`z--*`、ページ固有の領域には`p--*`を付ける([`css-rules.md`](../css-rules.md#独自プレフィックス))。
|
|
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="z--header" 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="p--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="z--footer" 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="p--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,73 @@
|
|
|
1
|
+
# 検証の分離(`.lism/`規約と評価サブエージェント)
|
|
2
|
+
|
|
3
|
+
提出前チェックの実行を実装担当の本人から分離し、実装プランと評価結果をユーザーが後から確認できるファイルとして残すための規約です。実装フロー・チェック項目の正本は`SKILL.md`(実装フロー・提出前セルフチェック)、実装プランの中身と書式は[`authoring.md`](./authoring.md)を参照してください。
|
|
4
|
+
|
|
5
|
+
## `.lism/`作業ディレクトリ
|
|
6
|
+
|
|
7
|
+
Lism実装作業の成果物(実装プラン・評価報告)は、プロジェクトルートの`.lism/`に固定名で保存します。
|
|
8
|
+
|
|
9
|
+
| ファイル | 内容 | 作成タイミング |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `.lism/plan.md` | 実装プラン(トークン差分表・構成表を含む) | 値照合付きレベルの実装前チェック時 |
|
|
12
|
+
| `.lism/review.md` | 評価サブエージェント(委任できない環境では本人)による評価報告 | 提出前セルフチェック時 |
|
|
13
|
+
|
|
14
|
+
- **固定名・上書き方式**。タスクごとに別名を作らない。照合先が一意に決まることが、評価サブエージェントや将来の機械チェックの前提になる。複数タスクの文脈は各ファイル冒頭のメタデータヘッダで区別する。
|
|
15
|
+
- メタデータヘッダには日時・対象タスク・スケール前提(デザイン再現時。判定根拠付き)を書く。
|
|
16
|
+
- OSのtempディレクトリは使わない(環境ごとにパスが変わり、ユーザーが確認できない)。
|
|
17
|
+
- このスキルが既存プロジェクトの`.gitignore`を書き換えることはしない。`.lism/`をコミットしない運用にしたいユーザーには、完了報告で`.gitignore`への追加を案内する(プランを記録として残す運用も可)。
|
|
18
|
+
|
|
19
|
+
`.lism/plan.md`のメタデータヘッダ例:
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
---
|
|
23
|
+
date: 2026-07-02
|
|
24
|
+
task: トップページのヒーローセクション実装
|
|
25
|
+
scale: PNGは2880px幅=1440px設計の2x書き出し(画像実寸と行送り・ボタン高さの整合で判定)
|
|
26
|
+
---
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 評価サブエージェントへの委任
|
|
30
|
+
|
|
31
|
+
提出前セルフチェックを実装した本人だけで行うと、「正確に再現する」等のゴールへの執着や、自分で立てたプランを疑いにくくなる心理から、例外を自己承認してしまいやすくなります。サブエージェント/タスク委任機能が使える環境では、照合を読み取り専用の評価サブエージェントに委任します。使えない環境では、同じ照合を本人が`SKILL.md`「提出前セルフチェック」の順に自分で実行します。
|
|
32
|
+
|
|
33
|
+
運用ルール:
|
|
34
|
+
|
|
35
|
+
- 評価サブエージェントは**実装プランではなくルールと照合する**。基準は`SKILL.md`の「最小ゲート」「判定記号」、`antipatterns.md`・`antipatterns-layout.md`、`property-class.md`。プラン段階で✅にされてしまった逸脱も、コードがルール違反であれば検出できる。
|
|
36
|
+
- 加えて`.lism/plan.md`と実装を突き合わせる: CSSに残った各宣言が、構成表の「CSSに残す」列やトークン差分表の行に対応しているか。**表に対応しない宣言は違反として列挙する**。
|
|
37
|
+
- 評価は読み取りだけで完結させる(評価サブエージェントはコードを変更しない)。
|
|
38
|
+
- **違反ゼロを終了条件にする**: 違反ゼロの評価報告が出るまで提出せず、違反を修正したら再評価を依頼する(修正→再評価を繰り返す)。
|
|
39
|
+
- 評価報告は`.lism/review.md`へ保存し、完了報告から必ず参照する(評価を実施したことをユーザーが確認できるようにする)。
|
|
40
|
+
|
|
41
|
+
### 評価サブエージェントへの指示テンプレ
|
|
42
|
+
|
|
43
|
+
```md
|
|
44
|
+
あなたはLism CSS実装の評価者です。実装の意図や経緯は考慮せず、ルール照合だけを行ってください。
|
|
45
|
+
|
|
46
|
+
対象ファイル: {実装・変更したファイルのパス一覧}
|
|
47
|
+
実装プラン: .lism/plan.md(存在する場合)
|
|
48
|
+
照合する資料(このスキルのファイル):
|
|
49
|
+
- {skillルート}/SKILL.md の「最小ゲート」「判定記号」
|
|
50
|
+
- {skillルート}/antipatterns.md と antipatterns-layout.md(TOCの全項目と照合)
|
|
51
|
+
- {skillルート}/property-class.md(CSSに残った宣言がProps/Property Classで表せないか)
|
|
52
|
+
- {skillルート}/tokens.md(使われている値・色がトークンに存在するか)
|
|
53
|
+
|
|
54
|
+
確認すること:
|
|
55
|
+
1. 最小ゲートの各項目への違反
|
|
56
|
+
2. antipatterns系2ファイルの各項目に該当するコード
|
|
57
|
+
3. CSS内の各宣言が .lism/plan.md の構成表・トークン差分表の行に対応しているか(対応しない宣言は違反)
|
|
58
|
+
4. `✅例外`の行が「直書きしてよい例外」のどの項目に該当するかの引用を伴っているか
|
|
59
|
+
|
|
60
|
+
報告書式(違反ゼロでも作成する):
|
|
61
|
+
|
|
62
|
+
| file:line | 違反ルール(資料名と節) | 内容 | 判定 |
|
|
63
|
+
| --- | --- | --- | --- |
|
|
64
|
+
|
|
65
|
+
判定は「違反 / 要確認 / 適合」。最後に違反件数のサマリを書いてください。
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### grepによる補助チェック(コマンドが実行できる環境のみ)
|
|
69
|
+
|
|
70
|
+
評価時に`grep`等が使える場合は、次の検出で違反候補のあたりを付けてよい(最終判定は資料との照合で行う):
|
|
71
|
+
|
|
72
|
+
- **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残留を許可するのは擬似要素・子孫セレクタ・状態切替を伴う宣言だけ。
|
|
73
|
+
- **トークン外の値**: 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
|
|
|
@@ -19,16 +19,35 @@ Lism CSS は**コンテナクエリ**をデフォルトで採用しています
|
|
|
19
19
|
```
|
|
20
20
|
Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape) ──┬── Laptop and up
|
|
21
21
|
│ │ │
|
|
22
|
-
sm:480px md:800px
|
|
22
|
+
sm:480px md:800px lg:1120px
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
| BP | 値 | 効くタイミング |
|
|
26
|
-
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| `xs` | 0(無効) | (opt-in) |
|
|
27
28
|
| `sm` | 480px | sm 以上 |
|
|
28
29
|
| `md` | 800px | md 以上 |
|
|
29
|
-
|
|
|
30
|
+
| `lg` | 1120px | lg 以上 |
|
|
31
|
+
| `xl` | 0(無効) | (opt-in) |
|
|
30
32
|
|
|
31
|
-
**レスポンシブ対応の Property Class
|
|
33
|
+
**レスポンシブ対応の Property Class は、標準で `sm` / `md` / `lg` のすべてに対応。** どの Prop がレスポンシブ対応かは property-class.md の BP 列を参照。レスポンシブ非対応の Prop でブレイクポイント指定を使う場合は customize.md 参照の SCSS カスタマイズが必要です。
|
|
34
|
+
|
|
35
|
+
**`xs` / `xl` は opt-in**:
|
|
36
|
+
- デフォルト値は `0`(無効)で、CSS は出力されません。`lism.config.js` の `breakpoints` でサイズを与えると有効化されます(customize.md 参照)。
|
|
37
|
+
- 型(Lism コンポーネント)でも `sm` / `md` / `lg` のみがデフォルトで補完・許可されます。`xs` / `xl` を使う場合は `declare module 'lism-css'` で `BreakpointRegistry` を拡張して解禁します。
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
// src/lism.d.ts など
|
|
41
|
+
import 'lism-css';
|
|
42
|
+
declare module 'lism-css' {
|
|
43
|
+
interface BreakpointRegistry {
|
|
44
|
+
xl: true; // 配列の 5 要素目 [..., xl] と { xl: ... } を解禁
|
|
45
|
+
xs: true; // { xs: ... } を解禁(xs は配列記法では書けない)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
- `xs` は配列記法では書けません(配列のインデックス → BP の対応が `[base, sm, md, lg, xl]` で固定のため)。オブジェクト記法(`{ xs: ... }`)でのみ指定します。`xl` は配列記法・オブジェクト記法の両方で利用できます。
|
|
32
51
|
|
|
33
52
|
例: `-d:none -d_sm:block` → デフォルト非表示、`sm` 以上で表示。
|
|
34
53
|
|
|
@@ -80,29 +99,17 @@ Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape)
|
|
|
80
99
|
}
|
|
81
100
|
```
|
|
82
101
|
|
|
83
|
-
**例外パターン** — `alwaysVar` 対応の `c`, `bgc`, `p`, `m`, `bdrs`
|
|
84
|
-
|
|
85
|
-
```css
|
|
86
|
-
.-p { padding: var(--p) }
|
|
87
|
-
@container (min-width: 480px) {
|
|
88
|
-
.-p_sm { padding: var(--p); --p: var(--p_sm) !important }
|
|
89
|
-
}
|
|
90
|
-
@container (min-width: 800px) {
|
|
91
|
-
.-p_md { padding: var(--p); --p: var(--p_md) !important }
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
ソースコードの [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-タイプ)を参照。
|
|
96
103
|
|
|
97
104
|
## Lism コンポーネントでの指定
|
|
98
105
|
|
|
99
106
|
配列形式またはオブジェクト形式でレスポンシブ値を指定します。
|
|
100
107
|
|
|
101
108
|
```jsx
|
|
102
|
-
// 配列形式: [
|
|
109
|
+
// 配列形式: 位置は [base, sm, md, lg, xl] で固定(xs は配列記法では書けない)
|
|
103
110
|
<Box p={[20, 30, 40]} fz={['s', 'm', 'l']} />
|
|
104
111
|
|
|
105
|
-
//
|
|
112
|
+
// オブジェクト形式(xs を使う場合はこちら)
|
|
106
113
|
<Box p={{ base: '20', sm: '30', md: '40' }} />
|
|
107
114
|
```
|
|
108
115
|
|
|
@@ -113,3 +120,44 @@ Smartphone ──┬── Tablet (Portrait) ──┬── Tablet (Landscape)
|
|
|
113
120
|
style="--p_sm: var(--s30); --p_md: var(--s40); --fz_sm: var(--fz--m); --fz_md: var(--fz--l)">
|
|
114
121
|
</div>
|
|
115
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` | [`_shadow.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_shadow.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` | [`_space.scss`](https://raw.githubusercontent.com/lism-css/lism-css/main/packages/lism-css/src/scss/base/tokens/_space.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
|
|
|
@@ -10,7 +10,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
10
10
|
- [トークン概要テーブル](#トークン概要テーブル)
|
|
11
11
|
- [余白 (space)](#余白-space)
|
|
12
12
|
- [フォントサイズ (fz)](#フォントサイズ-fz)
|
|
13
|
-
- [行間 (lh
|
|
13
|
+
- [行間 (hl/lh)](#行間-hllh)
|
|
14
14
|
- [字間 (lts)](#字間-lts)
|
|
15
15
|
- [フォント (ff)](#フォント-ff)
|
|
16
16
|
- [ウェイト (fw)](#ウェイト-fw)
|
|
@@ -29,20 +29,20 @@ 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
|
-
| フォントサイズ (fz) | `
|
|
35
|
-
| ハーフレディング・行間 (lh
|
|
34
|
+
| フォントサイズ (fz) | `base`, `2xs`, `xs`, `s`, `m`, `l`, `xl`, `2xl`, `3xl`, `4xl`, `5xl` | `--fz--{key}` | `--fz--l` |
|
|
35
|
+
| ハーフレディング・行間 (hl/lh) | `base`, `xs`, `s`, `l` | `--hl--{key}` | `--hl--s` |
|
|
36
36
|
| 字間 (lts) | `base`, `s`, `l`, `xl` | `--lts--{key}` | `--lts--s` |
|
|
37
37
|
| フォント (ff) | `base`, `accent`, `mono` | `--ff--{key}` | `--ff--mono` |
|
|
38
38
|
| ウェイト (fw) | `light`, `normal`, `bold` | `--fw--{key}` | `--fw--bold` |
|
|
39
39
|
| 透明度 (o) | `mp`, `p`, `pp`, `ppp` | `--o--{key}` | `--o--p` |
|
|
40
40
|
| 角丸 (bdrs) | `10`, `20`, `30`, `40`, `99`, `inner` | `--bdrs--{key}` | `--bdrs--20` |
|
|
41
41
|
| 影 (bxsh) | `10`, `20`, `30`, `40`, `50` | `--bxsh--{N}` | `--bxsh--20` |
|
|
42
|
-
| サイズ (sz) | `xs`, `s`, `m`, `l`, `xl
|
|
42
|
+
| サイズ (sz) | `xs`, `s`, `m`, `l`, `xl` | `--sz--{key}` | `--sz--l` |
|
|
43
43
|
| アスペクト比 (ar) | `og` | `--ar--{key}` | `--ar--og` |
|
|
44
44
|
| フロー余白 (flow) | `base`, `s` | `--flow--{key}` | `--flow--base` |
|
|
45
|
-
| セマンティックカラー (
|
|
45
|
+
| セマンティックカラー (color) | `base`, `base-2`, `text`, `text-2`, `divider`, `link`, `brand`, `accent`, `neutral` | `--{name}` | `--brand` |
|
|
46
46
|
| パレットカラー (palette) | `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `gray`, `white`, `black` | `--{name}` | `--red` |
|
|
47
47
|
|
|
48
48
|
|
|
@@ -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)) |
|
|
@@ -103,17 +103,16 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
103
103
|
| `--fz--xs` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 2))` | XS(mol/(mol+2)) |
|
|
104
104
|
| `--fz--2xs` | `calc(1em * var(--fz-mol) / (var(--fz-mol) + 3))` | 最小(mol/(mol+3)) |
|
|
105
105
|
| `--fz--base` | `1rem` | 本文の基本フォントサイズ |
|
|
106
|
-
| `--fz--root` | — | `:root` のフォントサイズ |
|
|
107
106
|
|
|
108
107
|
`--fz-mol` を上書きすることでスケール全体を調整可能(7以上の値に対応)。
|
|
109
108
|
|
|
110
109
|
|
|
111
|
-
## 行間 (lh
|
|
110
|
+
## 行間 (hl/lh)
|
|
112
111
|
|
|
113
112
|
ハーフレディングの大きさ。Lism CSSでは、`line-height` は `calc(1em + var(--hl) * 2)` で算出される。`--hl-unit`(≒ 2px)を基準単位とする。
|
|
114
113
|
|
|
115
114
|
| CSS変数 | 値 | 説明 |
|
|
116
|
-
|
|
115
|
+
| --- | --- | --- |
|
|
117
116
|
| `--hl--xs` | `var(--hl-unit)` | 極小の行間(≒ 2px) |
|
|
118
117
|
| `--hl--s` | `calc(var(--hl-unit) * 2)` | 小さめの行間(≒ 4px) |
|
|
119
118
|
| `--hl--base` | `calc(var(--hl-unit) * 3)` | 基本の行間(≒ 6px) |
|
|
@@ -123,7 +122,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
123
122
|
## 字間 (lts)
|
|
124
123
|
|
|
125
124
|
| CSS変数 | 値 | 説明 |
|
|
126
|
-
|
|
125
|
+
| --- | --- | --- |
|
|
127
126
|
| `--lts--base` | `normal` | 基本の文字間隔 |
|
|
128
127
|
| `--lts--s` | `-0.025em` | 狭めの文字間隔 |
|
|
129
128
|
| `--lts--l` | `0.05em` | 広めの文字間隔 |
|
|
@@ -133,16 +132,16 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
133
132
|
## フォント (ff)
|
|
134
133
|
|
|
135
134
|
| CSS変数 | 値 |
|
|
136
|
-
|
|
137
|
-
| `--ff--base` | `-apple-system, 'BlinkMacSystemFont', 'Hiragino Sans', sans-serif
|
|
138
|
-
| `--ff--accent` | `
|
|
135
|
+
| --- | --- |
|
|
136
|
+
| `--ff--base` | `-apple-system, 'BlinkMacSystemFont', 'Hiragino Sans', sans-serif` |
|
|
137
|
+
| `--ff--accent` | `Georgia, serif` |
|
|
139
138
|
| `--ff--mono` | `ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace` |
|
|
140
139
|
|
|
141
140
|
|
|
142
141
|
## ウェイト (fw)
|
|
143
142
|
|
|
144
143
|
| CSS変数 | 値 | 説明 |
|
|
145
|
-
|
|
144
|
+
| --- | --- | --- |
|
|
146
145
|
| `--fw--light` | `300` | 細め |
|
|
147
146
|
| `--fw--normal` | `400` | 標準 |
|
|
148
147
|
| `--fw--bold` | `600` | 太字(Hiragino Sans W6 相当) |
|
|
@@ -155,7 +154,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
155
154
|
音楽の強弱記号(piano 系列)に由来するセマンティック命名を採用。`p`(piano / 弱く)の反復回数が多いほど透明度が増す。Lism 内で「文字の反復回数で段階を表す」命名は opacity のみの例外。
|
|
156
155
|
|
|
157
156
|
| CSS変数 | 値 | 説明 |
|
|
158
|
-
|
|
157
|
+
| --- | --- | --- |
|
|
159
158
|
| `--o--mp` | `0.9` | mezzo-piano: ごく軽い減衰 |
|
|
160
159
|
| `--o--p` | `0.75` | piano: hover fade, 補助テキスト等 |
|
|
161
160
|
| `--o--pp` | `0.5` | pianissimo: disabled, divider, decorator 等 |
|
|
@@ -165,7 +164,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
165
164
|
## 角丸 (bdrs)
|
|
166
165
|
|
|
167
166
|
| CSS変数 | 値 | 説明 |
|
|
168
|
-
|
|
167
|
+
| --- | --- | --- |
|
|
169
168
|
| `--bdrs--10` | `0.25rem` | ≒ 4px |
|
|
170
169
|
| `--bdrs--20` | `0.5rem` | ≒ 8px |
|
|
171
170
|
| `--bdrs--30` | `1rem` | ≒ 16px |
|
|
@@ -179,7 +178,7 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
179
178
|
`--shc`(シャドウカラー)と `--shsz--{N}`(シャドウサイズ)を組み合わせて構成される。要素ごとに `--shc` を上書きして再計算したい場合は、`set--bxsh` クラスを併用する。
|
|
180
179
|
|
|
181
180
|
| CSS変数 | 値 |
|
|
182
|
-
|
|
181
|
+
| --- | --- |
|
|
183
182
|
| `--bxsh--10` | `var(--shsz--10) var(--shc)` |
|
|
184
183
|
| `--bxsh--20` | `var(--shsz--20) var(--shc)` |
|
|
185
184
|
| `--bxsh--30` | `var(--shsz--30) var(--shc)` |
|
|
@@ -187,8 +186,9 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
187
186
|
| `--bxsh--50` | `var(--shsz--50) var(--shc)` |
|
|
188
187
|
|
|
189
188
|
| CSS変数 | 初期値 |
|
|
190
|
-
|
|
191
|
-
| `--
|
|
189
|
+
| --- | --- |
|
|
190
|
+
| `--shadow` | `hsl(220 4% 8% / 12%)` |
|
|
191
|
+
| `--shc` | `var(--shadow)` |
|
|
192
192
|
| `--shsz--10` | `0px 1px 3px` |
|
|
193
193
|
| `--shsz--20` | `0px 2px 6px` |
|
|
194
194
|
| `--shsz--30` | `0px 4px 12px` |
|
|
@@ -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,12 +229,12 @@ CSSコードを書く場合やコンポーネントのPropsに値を指定する
|
|
|
229
229
|
サイト全体のカラー設計に使用するトークン。
|
|
230
230
|
|
|
231
231
|
| CSS変数 | デフォルト値 | 説明 |
|
|
232
|
-
|
|
233
|
-
| `--base` | `hsl(
|
|
234
|
-
| `--base-2` | `hsl(
|
|
235
|
-
| `--text` | `hsl(
|
|
236
|
-
| `--text-2` | `hsl(
|
|
237
|
-
| `--divider` | `hsl(
|
|
232
|
+
| --- | --- | --- |
|
|
233
|
+
| `--base` | `hsl(220 0% 99%)` | ベース背景色 |
|
|
234
|
+
| `--base-2` | `hsl(220 4% 95%)` | 代替背景色 |
|
|
235
|
+
| `--text` | `hsl(220 0% 8%)` | 基本テキスト色 |
|
|
236
|
+
| `--text-2` | `hsl(220 4% 32%)` | 補助テキスト色 |
|
|
237
|
+
| `--divider` | `hsl(220 4% 88%)` | 区切り線色 |
|
|
238
238
|
| `--link` | `oklch(50% 0.3 240)` | リンク色 |
|
|
239
239
|
| `--brand` | `#1e5f8c` | ブランド色 |
|
|
240
240
|
| `--accent` | `#d94a6a` | アクセント色 |
|
|
@@ -245,11 +245,11 @@ 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)` |
|
|
252
|
-
| `--green` | `oklch(calc(var(--L) + 4%) calc(var(--C) - 0.
|
|
252
|
+
| `--green` | `oklch(calc(var(--L) + 4%) calc(var(--C) - 0.02) 152)` |
|
|
253
253
|
| `--blue` | `oklch(calc(var(--L) - 4%) calc(var(--C) + 0.01) 264)` |
|
|
254
254
|
| `--purple` | `oklch(calc(var(--L) - 4%) calc(var(--C) + 0.01) 288)` |
|
|
255
255
|
| `--pink` | `oklch(calc(var(--L) + 2%) calc(var(--C) + 0.01) 352)` |
|
|
@@ -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` — アスペクト比制御。マスク画像をフィットさせるラッパーとして併用することが多い
|