デザインシステム
落ち着いたサーフェス、収まりのよい操作部品、明快なドキュメント。Masterのサイトで共有する視覚言語。
ブランドガイドはアイデンティティを定義します。このハンドブックはそれを支えるインターフェースを扱います。明るいモードの Moonstone、暗いモードの Obsidian、共通の素材の段階、高低差の順序、例の枠組みを示します。
小さな文書用ワークスペース
小さなプロジェクトの語彙
<article class="p-card r-card b(1) b-solid b-line-divider bg-surface-raised fg-text-body"> <p class="m(0) font-mono text-xs fg-brand">FIELD NOTES / 024</p> <h2 class="mt-sm mb-xs text-xl font-medium fg-text-strong">Room for the details</h2> <p class="m(0) text-sm">Color, spacing and radius come from three shared project tokens.</p></article>@theme { --color-brand: var(--color-text-link); --spacing-card: 1.5rem; --radius-card: .75rem;}生成された CSS
@layer theme { :root, :host { --color-zinc-30: oklch(78% .0025 265); --color-zinc-70: oklch(39.8% .0028 265); --color-zinc-90: oklch(24.6% .0022 265); --color-zinc-100: oklch(15% .0016 265); --color-blue-30: oklch(72.87% .1468 249.3); --color-blue-60: oklch(51.83% .2687 266.1) } :root, :host { --color-surface-raised: light-dark(var(--color-white), var(--color-zinc-90)); --color-line-divider: light-dark(oklch(0% 0 none / .12), oklch(100% 0 none / .12)); --color-text-body: light-dark(var(--color-zinc-70), var(--color-zinc-30)); --color-text-strong: light-dark(var(--color-zinc-100), var(--color-white)); --color-text-link: light-dark(var(--color-blue-60), var(--color-blue-30)) } :root, :host { --color-white: oklch(100% 0 none) } :root, :host { --font-family-mono: var(--font-mono, ui-monospace), SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --font-weight-medium: 500; --font-size-xs: .75rem; --font-size-sm: .875rem; --font-size-xl: 1.25rem; --text-xs: var(--font-size-xs); --text-xs--line-height: 1.5; --text-xs--letter-spacing: 0; --text-sm: var(--font-size-sm); --text-sm--line-height: 1.5; --text-sm--letter-spacing: 0; --text-xl: var(--font-size-xl); --text-xl--line-height: 1.4; --text-xl--letter-spacing: -.01em; --spacing-xs: .5rem; --spacing-sm: .75rem } :root, :host { --color-brand: var(--color-text-link); --spacing-card: 1.5rem; --radius-card: .75rem }}@layer utilities { .text-sm { font-size: var(--text-sm); line-height: var(--text-sm--line-height, normal); letter-spacing: var(--text-sm--letter-spacing, normal) } .text-xl { font-size: var(--text-xl); line-height: var(--text-xl--line-height, normal); letter-spacing: var(--text-xl--letter-spacing, normal) } .text-xs { font-size: var(--text-xs); line-height: var(--text-xs--line-height, normal); letter-spacing: var(--text-xs--letter-spacing, normal) } .bg-surface-raised { background-color: var(--color-surface-raised) } .b-line-divider { border-color: var(--color-line-divider) } .r-card { border-radius: var(--radius-card) } .b-solid { border-style: solid } .b\(1\) { border-width: calc(1 * 1px) } .fg-brand { color: var(--color-brand) } .fg-text-body { color: var(--color-text-body) } .fg-text-strong { color: var(--color-text-strong) } .font-mono { font-family: var(--font-family-mono) } .font-medium { font-weight: var(--font-weight-medium) } .m\(0\) { margin: calc(0 * 1px) } .mb-xs { margin-bottom: var(--spacing-xs) } .mt-sm { margin-top: var(--spacing-sm) } .p-card { padding: var(--spacing-card) }}- --color-brand
var(--color-text-link)- --spacing-card
1.5rem- --radius-card
.75rem
#レイヤーと素材
すべての面は1つの段階に位置します。キャンバスにトレイを置き、トレイに明るいステージを置き、その上にシートが浮き上がります。くぼみは周囲より下に位置します。インターフェースはモノクロを保ち、色相は名前付きの教材見本と状態表示だけに使います。
--ui-surface-canvas--ui-surface-tray--ui-surface-stage--ui-surface-sheet--ui-surface-well--ui-surface-float高低差
sink < flat < rise-1 < rise-1h < rise-2 < rise-3 < overlay
同心の角丸
3 · 4 · 6 · 8 · 10 · 14, nested by a 4px inset
#収まりのよいコントロール
コントロールは共通の素材と状態の順序を使います。浮いた面はホバーで半ピクセル持ち上がり、押すとくぼみに沈みます。選択されたセグメントは沈んだトラック内で浮き上がり、フォーカスは常に見えるインクの輪で示します。
Buttons
Default, primary and quiet; hover lifts, pressing sinks
Choices and fields
Selected segments rise inside a sunken track; fields float back to the sheet on focus
実際の結果を伝えるコピー
#明快な読みのリズム
1つの例を1つのトレイにまとめます。ヘッダーで名付け、ステージで示し、コードウィンドウにソースと閉じた Generated CSS を置き、キャプションで注目点を伝えます。表と索引は自身の枠を持ちます。
値をまとめて
| トークン/クラス | 役割 |
|---|---|
--color-brand | var(--color-text-link) |
--spacing-card | 1.5rem |
--radius-card | .75rem |
説明用の色には必ず名前を付ける
- Context
- Subject
- Comparison
#完全なコンポーネントリファレンス
各ページはコンポーネントの実際の状態、サイトでの使用箇所、マークアップのインターフェースを示します。記述ハンドブックではレイアウトの契約とレシピ全体を扱います。
サーフェスと枠 6
見本と注釈 11
- アイテム内容を表すタイルを、名前付きの説明用色調で示します。
- バッジカテゴリや状態を小さく読みやすく示します。
- ラベル測定対象のレイアウト外に条件名を示します。
- 凡例説明に使うすべての色に、見える名前を添えます。
- 寸法測定製図用の目盛りで、ブラウザー内の実際の幅と高さを読み取ります。
- 軸対象の周囲で物理方向を説明します。
- スウォッチ名前付きの役割と実際の色面。
- パレット固定プリセット色とコピー結果のフィードバック。
- メディア説明用の色調で描くオリジナル画像と、固有寸法を持つ実際の画像。
- プレーヤーネイティブアニメーションの再生、一時停止、リプレイ。
- ダウンロード可能なアセット適切な背景に画像を配置し、ダウンロード操作を提供します。
操作部品 3
ドキュメントと根拠 17
- コードウィンドウ読みやすいソース、安定したタブ、ネイティブのコピー操作。
- ドキュメントパターンドキュメントパターンの動作例と記述用インターフェース。
- パラメーターと契約パラメーターと契約の動作例と記述用インターフェース。
- ツールの例ツールの動作例と記述用インターフェース。
- プロンプトとワークフロープロンプトとワークフローの動作例と記述用インターフェース。
- APIの宣言API宣言の動作例と記述用インターフェース。
- スタイルシートの例スタイルシートの動作例と記述用インターフェース。
- ドキュメント索引ネイティブリンクと任意の表示切り替えで、文書をグループ別に案内します。
- ドキュメントの手順共通のドキュメント手順と実用例。
- ユーティリティテーブル共通のユーティリティテーブルと実用例。
- 数値トークンテーブル共通の数値トークンテーブルと実用例。
- デモのウォーターフォール共通のデモウォーターフォールと実用例。
- チャートグループ共通のベンチマークチャートグループと実用例。
- ベンチマーク指標共通のベンチマーク指標と実用例。
- ベンチマークデータテーブル共通のベンチマークデータテーブルと実用例。
- ベンチマークの出典共通のベンチマーク出典表示と実用例。
- レシピカタログレシピ全体をネイティブの開閉領域にまとめます。
共通コンポーネントで例を作るか、動作するレシピの全体を調べられます。