@insession/design-system 1.3.1
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/CHANGELOG.md +84 -0
- package/README.md +108 -0
- package/dist/index.d.ts +501 -0
- package/dist/index.js +1962 -0
- package/dist/index.js.map +1 -0
- package/package.json +69 -0
- package/theme.css +325 -0
package/theme.css
ADDED
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/* @insession/design-system — デザインシステム(DS)のトークン契約。
|
|
2
|
+
*
|
|
3
|
+
* このパッケージのコンポーネント(button / input / spinner 等)が参照する @theme トークンを
|
|
4
|
+
* 一元管理する。
|
|
5
|
+
*
|
|
6
|
+
* ── 消費側アプリのセットアップ ──────────────────────────────
|
|
7
|
+
* @import "tailwindcss";
|
|
8
|
+
* @import "@insession/design-system/theme.css";
|
|
9
|
+
* @source "../../node_modules/@insession/design-system/dist";
|
|
10
|
+
*
|
|
11
|
+
* ⚠ `@source` は必須。これが無いとコンポーネント内のクラス名から Tailwind
|
|
12
|
+
* ユーティリティが生成されず、**ビルドは通るのにスタイルだけが静かに消える**。
|
|
13
|
+
* パスは各アプリの style.css から node_modules への相対パスに合わせること。
|
|
14
|
+
* pnpm では node_modules 配下が symlink になるため、初回セットアップ時は
|
|
15
|
+
* 実際にビルドして見た目を目視確認すること。
|
|
16
|
+
*
|
|
17
|
+
* ── ライトテーマについて ────────────────────────────────
|
|
18
|
+
* このファイルはダーク単一トーンで、[data-theme] のライトテーマオーバーレイを含まない。
|
|
19
|
+
* ライト/ダークを切り替えるアプリは自分側で [data-theme] オーバーレイを持つ。
|
|
20
|
+
*
|
|
21
|
+
* ── insession-app との関係(歴史的経緯) ─────────────────────
|
|
22
|
+
* insession-app の apps/web は巨大な legacy CSS と共存させるため、同じトークンを
|
|
23
|
+
* src/style.css にインラインで持ち、このファイルを import しない。両者の値は
|
|
24
|
+
* 揃えて保守する(insession-app 側が増やしたトークンのうち、このパッケージの
|
|
25
|
+
* コンポーネントが参照しないものはここに持ち込まない)。
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
@theme {
|
|
29
|
+
/* カラー: ブランドパレット(旧名を保持。値は新4色パレットへ。Claude Design の
|
|
30
|
+
「INSESSION Design System」本文の実値に合わせる) */
|
|
31
|
+
--color-mint: #ff6a47; /* 旧ミント→コーラル(アクセント)。ダーク(既定)値 */
|
|
32
|
+
--color-mint-soft: #ffb199; /* ダーク背景向けの淡いコーラル(テキスト/アイコン用) */
|
|
33
|
+
--color-cyan: #5b8bf0; /* 旧シアン→ブルー(セカンダリアクセント)。ダーク(既定)値 */
|
|
34
|
+
--color-violet: #31c47e; /* 新パレットに無いため落ち着いたグリーン系へ振替(装飾のみ) */
|
|
35
|
+
--color-maroon: #8a4a1f; /* 同上。深いアンバー系(装飾のみ) */
|
|
36
|
+
|
|
37
|
+
/* カラー: 背景面(奥 → 手前)。ダーク(既定)。DSの bg/surface-2/surface を3段ランプに割当 */
|
|
38
|
+
--color-bg: #121211;
|
|
39
|
+
--color-bg-elevated: #1a1a18;
|
|
40
|
+
--color-surface: #201f1d;
|
|
41
|
+
/* surface-3: DS の3段目の面。disabled ボタン等の「沈んだ面」に使う。ダーク(既定) */
|
|
42
|
+
--color-surface-3: #282826;
|
|
43
|
+
--color-surface-hover: #2b2b29;
|
|
44
|
+
|
|
45
|
+
/* カラー: 境界。ダーク(既定)はDSの border/border-2 */
|
|
46
|
+
--color-border: #332f25;
|
|
47
|
+
--color-border-strong: #403a2d;
|
|
48
|
+
|
|
49
|
+
/* カラー: テキスト階層。ダーク(既定) */
|
|
50
|
+
--color-text: #f3f0e7;
|
|
51
|
+
--color-text-dim: #a7a395;
|
|
52
|
+
--color-text-faint: #726e62;
|
|
53
|
+
|
|
54
|
+
/* カラー: DS の fill/accent(ボタン等の塗り)。fill=中立塗り(Primary。ダークでは明色)、
|
|
55
|
+
on-fill=その上の文字色。accent=コーラル(=mint 別名)、on-accent=その上の文字色。ダーク(既定) */
|
|
56
|
+
--color-fill: #f1eee6;
|
|
57
|
+
--color-on-fill: #17160f;
|
|
58
|
+
--color-accent: var(--color-mint);
|
|
59
|
+
--color-on-accent: #ffffff;
|
|
60
|
+
|
|
61
|
+
/* カラー: リンクのセマンティック別名(#633)。生 hex は増やさず既存アクセントトークンを参照する。
|
|
62
|
+
リンクは下線を使わず「色 + ウェイト」で区別する。link=静止色(淡コーラル)、
|
|
63
|
+
link-hover=hover/active(コーラル)。web 側では [data-theme] で light/dark に追従する。
|
|
64
|
+
全リンク共通の focus リングは --color-focus-ring。 */
|
|
65
|
+
--color-link: var(--color-mint-soft);
|
|
66
|
+
--color-link-hover: var(--color-mint);
|
|
67
|
+
|
|
68
|
+
/* カラー: アクセント(コーラル)ティント面。段階トークン化(数値=元 rgba の α×100)。
|
|
69
|
+
tinted surface + 細ボーダーの控えめな面表現に使う。塗りは不透過(下が透けない)。
|
|
70
|
+
テーマ背景(--color-bg)へ同率で合成した値なので、既定背景上の見え方は旧 rgba 版と
|
|
71
|
+
同一のまま、consumer 側の --color-bg 上書き(ライトテーマ等)にも自動追従する。
|
|
72
|
+
透明のまま使いたい装飾(グラデーション/グロー)はトークンではなく
|
|
73
|
+
color-mix(in srgb, var(--color-accent) N%, transparent) をその場で使うこと。 */
|
|
74
|
+
--color-tint-3: color-mix(in srgb, rgb(255 90 54) 3%, var(--color-bg));
|
|
75
|
+
--color-tint-5: color-mix(in srgb, rgb(255 90 54) 5%, var(--color-bg));
|
|
76
|
+
--color-tint-7: color-mix(in srgb, rgb(255 90 54) 7%, var(--color-bg));
|
|
77
|
+
--color-tint-8: color-mix(in srgb, rgb(255 90 54) 8%, var(--color-bg));
|
|
78
|
+
--color-tint-10: color-mix(in srgb, rgb(255 90 54) 10%, var(--color-bg));
|
|
79
|
+
--color-tint-12: color-mix(in srgb, rgb(255 90 54) 12%, var(--color-bg));
|
|
80
|
+
--color-tint-13: color-mix(in srgb, rgb(255 90 54) 13%, var(--color-bg));
|
|
81
|
+
--color-tint-16: color-mix(in srgb, rgb(255 90 54) 16%, var(--color-bg));
|
|
82
|
+
--color-tint-22: color-mix(in srgb, rgb(255 90 54) 22%, var(--color-bg));
|
|
83
|
+
|
|
84
|
+
/* カラー: セマンティック(状態表現)。新4色パレットと対応させる(#457)。
|
|
85
|
+
成功=グリーン、情報=ブルー、警告=アンバー、危険=旧来の #ff6b6b を維持(新パレットに
|
|
86
|
+
危険色の指定は無いため)。各色は「地の色(text/icon)」「面(surface)」「枠(border)」の
|
|
87
|
+
3点を持ち、tinted surface + 細ボーダーの基本形に載せられる。地の色はダーク(既定)値。
|
|
88
|
+
ライト値は下のオーバーレイヤーでコントラスト確保のため少し濃くする。
|
|
89
|
+
使い方: text-success / bg-success-surface / border-success-border(warning/danger/info も同様)。 */
|
|
90
|
+
--color-success: #31c47e;
|
|
91
|
+
/* *-surface / *-surface-strong は tint-* と同じく不透過(テーマ背景へ合成。透過なし)。
|
|
92
|
+
border は枠線用途で下面が多様なため半透明のまま。 */
|
|
93
|
+
--color-success-surface: color-mix(in srgb, rgb(49 196 126) 12%, var(--color-bg));
|
|
94
|
+
/* success-surface-strong: Lozenge/Chip/CountChip 等の視認性改善用に一段濃い塗り(#765)。 */
|
|
95
|
+
--color-success-surface-strong: color-mix(in srgb, rgb(49 196 126) 20%, var(--color-bg));
|
|
96
|
+
--color-success-border: rgba(49, 196, 126, 0.3);
|
|
97
|
+
--color-warning: #f5b54a;
|
|
98
|
+
--color-warning-surface: color-mix(in srgb, rgb(245 181 74) 12%, var(--color-bg));
|
|
99
|
+
/* warning-surface-strong: 同上(#765)。 */
|
|
100
|
+
--color-warning-surface-strong: color-mix(in srgb, rgb(245 181 74) 20%, var(--color-bg));
|
|
101
|
+
--color-warning-border: rgba(245, 181, 74, 0.3);
|
|
102
|
+
--color-danger: #ff6b6b;
|
|
103
|
+
--color-danger-surface: color-mix(in srgb, rgb(255 107 107) 12%, var(--color-bg));
|
|
104
|
+
--color-danger-border: rgba(255, 107, 107, 0.3);
|
|
105
|
+
--color-info: #5b8bf0;
|
|
106
|
+
--color-info-surface: color-mix(in srgb, rgb(91 139 240) 12%, var(--color-bg));
|
|
107
|
+
/* info-surface-strong: 同上(#765)。 */
|
|
108
|
+
--color-info-surface-strong: color-mix(in srgb, rgb(91 139 240) 20%, var(--color-bg));
|
|
109
|
+
--color-info-border: rgba(91, 139, 240, 0.3);
|
|
110
|
+
|
|
111
|
+
/* カラー: オーバーレイ面(ポップオーバー/スナックバー/ヘッダーエラー等、前面に浮く面)。
|
|
112
|
+
背景面(surface)より一段濃く不透明にして、下のコンテンツから浮かせる。ダーク(既定)値。 */
|
|
113
|
+
--color-surface-2: #1a1a18;
|
|
114
|
+
|
|
115
|
+
/* カラー: スナックバー(操作フィードバック)専用面。legacy .snackbar の生値をトークン化(#448)。
|
|
116
|
+
surface-2 とは僅かに異なる濃さ/色味を保つ(見た目を変えないため)。error は DS の danger(赤)とは
|
|
117
|
+
別系統の soft pink。DS の Toast(variant="snackbar")がこの3値を参照する。 */
|
|
118
|
+
--color-snackbar-surface: rgba(16, 22, 25, 0.94);
|
|
119
|
+
--color-snackbar-danger: #ff9ab8;
|
|
120
|
+
--color-snackbar-danger-border: rgba(255, 154, 184, 0.3);
|
|
121
|
+
|
|
122
|
+
/* フォント: 新 DS(claude design "INSESSION Design System" #463)に一新。
|
|
123
|
+
JetBrains Mono を「製品フォント」= UI・見出し・本文・ラベル・メタ・数値すべてに使う。
|
|
124
|
+
Archivo はロゴ/ワードマーク専用(現状ロゴは SVG アセット)。日本語フォールバックは維持。
|
|
125
|
+
→ display / body / mono すべて JetBrains Mono に揃える(旧: display/body=Archivo を廃止)。 */
|
|
126
|
+
--font-display: "JetBrains Mono", "Hiragino Sans", "Noto Sans JP", monospace;
|
|
127
|
+
--font-body: "JetBrains Mono", "Hiragino Sans", "Noto Sans JP", monospace;
|
|
128
|
+
--font-mono: "JetBrains Mono", "Hiragino Sans", "Noto Sans JP", monospace;
|
|
129
|
+
|
|
130
|
+
/* タイポグラフィ: サイズ(既存 px の実測から)。行間は付けず normal 固定にし、
|
|
131
|
+
必要な箇所だけ leading-* で上書きする(既存の見た目と揃えるため) */
|
|
132
|
+
--text-2xs: 10px;
|
|
133
|
+
--text-2xs--line-height: normal;
|
|
134
|
+
--text-xs: 11px;
|
|
135
|
+
--text-xs--line-height: normal;
|
|
136
|
+
--text-sm: 12px;
|
|
137
|
+
--text-sm--line-height: normal;
|
|
138
|
+
--text-smd: 13px;
|
|
139
|
+
--text-smd--line-height: normal;
|
|
140
|
+
--text-base: 14px;
|
|
141
|
+
--text-base--line-height: normal;
|
|
142
|
+
--text-md: 15px;
|
|
143
|
+
--text-md--line-height: normal;
|
|
144
|
+
--text-lg: 16px;
|
|
145
|
+
--text-lg--line-height: normal;
|
|
146
|
+
--text-xl: 17px;
|
|
147
|
+
--text-xl--line-height: normal;
|
|
148
|
+
--text-2xl: 18px;
|
|
149
|
+
--text-2xl--line-height: normal;
|
|
150
|
+
--text-3xl: 21px;
|
|
151
|
+
--text-3xl--line-height: normal;
|
|
152
|
+
--text-4xl: 24px;
|
|
153
|
+
--text-4xl--line-height: normal;
|
|
154
|
+
--text-5xl: 30px;
|
|
155
|
+
--text-5xl--line-height: normal;
|
|
156
|
+
--text-6xl: 56px;
|
|
157
|
+
--text-6xl--line-height: normal;
|
|
158
|
+
|
|
159
|
+
/* タイポグラフィ: DS のセマンティック階層(claude design "INSESSION Design System" 準拠。#463)。
|
|
160
|
+
サイズだけでなく weight / letter-spacing / line-height を役割ごとに焼き込むので、
|
|
161
|
+
text-display / text-h1 / text-h2 / text-body / text-small / text-label を当てるだけで
|
|
162
|
+
DS の見出し・本文・ラベルの見た目になる。label は uppercase + mono を併用する
|
|
163
|
+
(font-mono と uppercase ユーティリティ、または .label クラスと組み合わせる)。
|
|
164
|
+
※適用(既存見出しの置換)は画面フェーズで段階的に行う。ここでは語彙を用意する。 */
|
|
165
|
+
--text-display: 44px;
|
|
166
|
+
--text-display--line-height: 1;
|
|
167
|
+
--text-display--font-weight: 800;
|
|
168
|
+
--text-display--letter-spacing: -0.02em;
|
|
169
|
+
--text-h1: 32px;
|
|
170
|
+
--text-h1--line-height: 1.05;
|
|
171
|
+
--text-h1--font-weight: 800;
|
|
172
|
+
--text-h1--letter-spacing: -0.015em;
|
|
173
|
+
--text-h2: 22px;
|
|
174
|
+
--text-h2--line-height: 1.15;
|
|
175
|
+
--text-h2--font-weight: 700;
|
|
176
|
+
--text-body: 16px;
|
|
177
|
+
--text-body--line-height: 1.5;
|
|
178
|
+
--text-body--font-weight: 500;
|
|
179
|
+
--text-small: 14px;
|
|
180
|
+
--text-small--line-height: 1.45;
|
|
181
|
+
--text-small--font-weight: 500;
|
|
182
|
+
--text-label: 11px;
|
|
183
|
+
--text-label--line-height: 1;
|
|
184
|
+
--text-label--font-weight: 600;
|
|
185
|
+
--text-label--letter-spacing: 0.14em;
|
|
186
|
+
|
|
187
|
+
/* 単体の tracking-* ユーティリティとして使う letter-spacing トークン(#950)。標準スケール
|
|
188
|
+
(tracking-wide=0.025em / -wider=0.05em / -widest=0.1em)に無い中間値を、badge/status/
|
|
189
|
+
link/lozenge 等の uppercase caps ラベルで使うぶんだけ切り出す(insession-app の apps/web/src/style.css の
|
|
190
|
+
--tracking-label: 0.14em(#943)と同じ命名感)。tracking-[0.1em] の任意値は標準の
|
|
191
|
+
tracking-widest(=0.1em)へ置換すればよいのでトークン化不要。 */
|
|
192
|
+
--tracking-tag: 0.06em; /* badge.tsx(variant="new") / status.tsx の極小 uppercase バッジ */
|
|
193
|
+
--tracking-pill: 0.08em; /* lozenge.tsx / link.tsx(variant="pill") の uppercase caps */
|
|
194
|
+
|
|
195
|
+
/* 半径: DS の 3 段スケール sm6 / md10 / lg16 + pill999 へ準拠(#463)。
|
|
196
|
+
既存の chip / card / panel トークン名は保ちつつ値を最寄りの DS 値へ寄せる
|
|
197
|
+
(chip 8→6=sm、card 14→16=lg、panel 20→16=lg。いずれも DS 値・変化は最小)。
|
|
198
|
+
DS md(10) は中間サイズ用に --radius-md として用意する(rounded-md で使える)。
|
|
199
|
+
※ legacy CSS の生 border-radius 直書き(装飾的な小 radius・一部の一点物)は別途整理する。 */
|
|
200
|
+
--radius-chip: 6px;
|
|
201
|
+
--radius-md: 10px;
|
|
202
|
+
--radius-card: 16px;
|
|
203
|
+
--radius-panel: 16px;
|
|
204
|
+
--radius-pill: 999px;
|
|
205
|
+
|
|
206
|
+
/* グロー(旧 #457 ブランドの hover 発光)は新 DS で廃止(#463)。新 DS の hover は「ふわっと光る」
|
|
207
|
+
ではなく surface-hover への面変化 / filled は brightness(.93) / カード等は translateY(-2px) の
|
|
208
|
+
控えめな持ち上げで表す。互換のため --shadow-glow トークン名は残すが値は none にして、既存の
|
|
209
|
+
box-shadow: var(--glow) 参照(hover)を一括で無効化する。 */
|
|
210
|
+
--shadow-glow: none;
|
|
211
|
+
--shadow-glow-strong: none;
|
|
212
|
+
|
|
213
|
+
/* エレベーション: 中立的なドロップシャドウ(グローとは別系統)。DS の3段(card / popover /
|
|
214
|
+
modal)へ準拠(#463)。DS は blur を抑え負の spread(-2/-14/-28px)で締める控えめな影が signature。
|
|
215
|
+
app のトークン名(soft/popover/overlay)は保ちつつ DS の各段へ意味対応させる:
|
|
216
|
+
soft = DS card (0 2px 6px -2px。カード・小さな浮き要素)
|
|
217
|
+
popover = DS popover(0 12px 24px -14px。ポップオーバー/メニュー/ドロップダウン)
|
|
218
|
+
overlay = DS modal (0 20px 46px -28px。モーダル・スナックバー等の最前面フロート)
|
|
219
|
+
alpha は DS 値(20/40/42%)。 */
|
|
220
|
+
/* 影の陰色。ダーク(既定)は黒。ライトでは黒だと硬すぎるため暖色グレーへ振る
|
|
221
|
+
(下の [data-theme] オーバーレイで上書き)。legacy の生 rgba(0,0,0,α) はこの
|
|
222
|
+
トークンへ color-mix で α を載せる形に移行し、ダークは従来どおり黒・ライトは
|
|
223
|
+
ソフトな影へ自動追従させる(#459)。 */
|
|
224
|
+
--color-shadow: #000;
|
|
225
|
+
/* 新 DS(#463) elevation: ダーク既定値(単体利用アプリはダーク前提。ファイル冒頭コメント参照)。
|
|
226
|
+
soft=elev-1(card) / popover=elev-2 / overlay=shadow(modal)。
|
|
227
|
+
#867 と同じ理由で @theme に実値を直書きしない: Tailwind v4 は @theme の --shadow-* を
|
|
228
|
+
ビルド時にリテラル展開して `.shadow-*{--tw-shadow:<実値>}` を生成するため、後から
|
|
229
|
+
:root[data-theme] 等の unlayered セレクタで同名変数を上書きしてもユーティリティには
|
|
230
|
+
一切効かない(insession-app の apps/web/src/style.css の同種コメント参照。この非対称が #867 の原因だった)。
|
|
231
|
+
実値は下の unlayered `:root { --elev-* }` に置き、ここは var() 参照だけにする。
|
|
232
|
+
このパッケージは現状ダーク単一トーンで [data-theme] オーバーレイを持たないが、将来
|
|
233
|
+
consumer 側が --elev-* を上書きしても shadow-* ユーティリティが追従できるようにしておく。
|
|
234
|
+
値は変更していない(参照構造のみ変更)。 */
|
|
235
|
+
--shadow-soft: var(--elev-soft);
|
|
236
|
+
--shadow-popover: var(--elev-popover);
|
|
237
|
+
--shadow-overlay: var(--elev-overlay);
|
|
238
|
+
|
|
239
|
+
/* フォーカスリング: キーボードフォーカスの発光(シアンの薄いリング + 柔らかいグロー)。
|
|
240
|
+
input:focus 等で生値だったものをトークン化(#445)。新規部品は focus-visible:shadow-focus で使う。
|
|
241
|
+
アウトライン色/幅/offset は @theme static 側(--color-focus-ring / --focus-ring-*)。 */
|
|
242
|
+
/* 新 DS(#463): focus は info ブルーの 3px リングのみ(外側の 24px ブルームは廃止)。
|
|
243
|
+
shadow-soft/-popover/-overlay と違い theme 別オーバーライドを持たない(insession-app の apps/web/src/style.css
|
|
244
|
+
の --shadow-focus も同様に literal のまま。#867 の問題はテーマ切替時の非追従なので、
|
|
245
|
+
テーマ差分を持たないこの値は @theme 直書きのままで実害が無い)ため --elev-* 化していない。 */
|
|
246
|
+
--shadow-focus: 0 0 0 3px rgba(91, 139, 240, 0.16);
|
|
247
|
+
|
|
248
|
+
/* モーション: イージング */
|
|
249
|
+
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
250
|
+
|
|
251
|
+
/* レコードプレーヤー風ビュー専用パレット(#376。ダークトーン化 #402)。ニューモーフィズム
|
|
252
|
+
(Soft UI)向けに、単一の素材色から削り出したような外観にする一組。ミント/シアン/バイオレットの
|
|
253
|
+
ブランドパレットとは独立した、この一機能だけの意図的な例外(生値のJSX直書きを避ける
|
|
254
|
+
ためここにトークン化する。アプリ全体のトンマナには影響しない)。ダーク素材でも凸凹の
|
|
255
|
+
明暗差が視認できるよう、shadow-light はベースよりわずかに明るいグレー、shadow-dark は
|
|
256
|
+
ほぼ黒に近い深い陰にして、凸/凹のコントラストを確保している */
|
|
257
|
+
--color-rp-base: #2b2c33;
|
|
258
|
+
--color-rp-shadow-light: #3e4049;
|
|
259
|
+
--color-rp-shadow-dark: #121319;
|
|
260
|
+
--color-rp-ink: #c7c9d2;
|
|
261
|
+
/* 盤本体(--color-rp-disc)は筐体(--color-rp-base)よりわずかに暗く・僅かに青紫みを帯びた
|
|
262
|
+
ニュートラルにして、陰影だけに頼らず盤とプレーヤー本体を色味でも分離する(#402 追加要望) */
|
|
263
|
+
--color-rp-disc: #1c1c22;
|
|
264
|
+
/* 凸(浮き出し)。素材から盛り上がって見える基本形 */
|
|
265
|
+
--shadow-rp-convex:
|
|
266
|
+
-5px -5px 10px var(--color-rp-shadow-light), 5px 5px 10px var(--color-rp-shadow-dark);
|
|
267
|
+
--shadow-rp-convex-lg:
|
|
268
|
+
-9px -9px 20px var(--color-rp-shadow-light), 9px 9px 20px var(--color-rp-shadow-dark);
|
|
269
|
+
/* 凹(彫り込み)。素材が窪んで見える基本形(溝・レーベルの受け皿などに使う) */
|
|
270
|
+
--shadow-rp-concave:
|
|
271
|
+
inset -5px -5px 10px var(--color-rp-shadow-light),
|
|
272
|
+
inset 5px 5px 10px var(--color-rp-shadow-dark);
|
|
273
|
+
--shadow-rp-concave-lg:
|
|
274
|
+
inset -9px -9px 18px var(--color-rp-shadow-light),
|
|
275
|
+
inset 9px 9px 18px var(--color-rp-shadow-dark);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
@theme static {
|
|
279
|
+
/* モーション: duration。ユーティリティでは duration-(--dur-fast) のように参照する。
|
|
280
|
+
prefers-reduced-motion 尊重はファイル末尾の legacy ルールで担保。 */
|
|
281
|
+
--dur-fast: 0.18s; /* 小さな state 変化(ホバー色・トグル) */
|
|
282
|
+
--dur-base: 0.25s; /* 標準のトランジション */
|
|
283
|
+
--dur-slow: 0.35s; /* 入場・強めのフィードバック */
|
|
284
|
+
--dur-slower: 0.5s; /* ゆっくりした演出 */
|
|
285
|
+
|
|
286
|
+
/* z-index レイヤースケール(重なり順の単一ソース)。
|
|
287
|
+
背景 < コンテンツ < 追従ヘッダー < ナビ/ドロップダウン < Snackbar < モーダル */
|
|
288
|
+
--z-behind: -1; /* 背景グラデーション(bg-drift) */
|
|
289
|
+
--z-base: 1; /* 通常フロー上の微小な持ち上げ */
|
|
290
|
+
--z-elevated: 5; /* 動画ウィジェット・リアクション等の前面要素 */
|
|
291
|
+
--z-sticky: 10; /* スペースのトップバー(sticky) */
|
|
292
|
+
--z-nav: 20; /* サイドバー・ヘッダーのメニュー */
|
|
293
|
+
--z-dropdown: 30; /* 検索候補などのドロップダウン */
|
|
294
|
+
--z-popover-portal: 35; /* Popover の portal 版(createPortal で document.body 直下 + position:fixed。
|
|
295
|
+
#885)。クリップ元の親パネル自身も --z-dropdown を使うため、それより手前に
|
|
296
|
+
出す必要がある。このパッケージが自分で使うトークンなので、プロダクト側の
|
|
297
|
+
スケール(InSession は 55)に依らずここを既定値の単一ソースにする。
|
|
298
|
+
【注意】この値はプロダクト側の定義(例: InSession の style.css は 55)と
|
|
299
|
+
意図的に一致しない — 各プロダクトは自身の --z-dropdown のスケールに合わせて
|
|
300
|
+
--z-popover-portal を上書きする前提で、"35" を「正しい値」として参照しては
|
|
301
|
+
いけない(このパッケージ単体利用時のフォールバックに過ぎない)。 */
|
|
302
|
+
--z-snackbar: 90; /* 操作完了フィードバック(Snackbar) */
|
|
303
|
+
--z-modal: 100; /* モーダル(backdrop 含む) */
|
|
304
|
+
|
|
305
|
+
/* フォーカスリング: アウトライン(生 var で legacy の :focus-visible から参照)。色はブルー(#457。旧シアン)。
|
|
306
|
+
グロー版(box-shadow)は @theme の --shadow-focus。新規部品/legacy とも同じ値に揃える(#445)。 */
|
|
307
|
+
--color-focus-ring: var(--color-cyan);
|
|
308
|
+
--focus-ring-width: 2px;
|
|
309
|
+
--focus-ring-offset: 2px;
|
|
310
|
+
|
|
311
|
+
/* 無効状態(disabled)の DS 標準の一組。部品ごとの ad hoc な opacity をこの一本に寄せる(#445)。
|
|
312
|
+
ユーティリティでは opacity-(--disabled-opacity)、カーソルは disabled:cursor-not-allowed。 */
|
|
313
|
+
--disabled-opacity: 0.4;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/* エレベーションの実値(#950)。上の @theme 内コメントのとおり、Tailwind v4 が --shadow-* を
|
|
317
|
+
ビルド時にリテラル展開するため実値はここ(@theme の外・unlayered な素の :root)に置き、
|
|
318
|
+
@theme 側は var() 参照だけを持つ(insession-app の apps/web/src/style.css の #867 対応と同じ形)。
|
|
319
|
+
ダーク単一値(このパッケージはダーク前提。ファイル冒頭コメント参照)。値は元 @theme に
|
|
320
|
+
書かれていたものをそのまま移設しただけで変更なし。 */
|
|
321
|
+
:root {
|
|
322
|
+
--elev-soft: 0 2px 6px -2px rgba(0, 0, 0, 0.5);
|
|
323
|
+
--elev-popover: 0 16px 30px -16px rgba(0, 0, 0, 0.7);
|
|
324
|
+
--elev-overlay: 0 26px 64px -32px rgba(0, 0, 0, 0.85);
|
|
325
|
+
}
|