# Decanter デザインシステム

## Decanter デザインシステムのインターフェースプレビュー

オリジナルのイベントカードを絞り込み、概要を開き、該当するトピックがない場合も別の方法で内容を確認できます。

## Decanter デザインシステム設計リファレンス

Decanter 7.5.3 パッケージと公式の v7 インストール手順・規約に基づいています。v8 での非推奨化は移行に関する注記として扱います。プレビューはHTML/CSSによる独自の解釈で、ローカルのフォントフォールバックを使用し、大学のアイデンティティマークは使用していません。

### 文字設定

| 名前 / ルール | 値 / 設定 | 用途 |
| --- | --- | --- |
| Primary sans / serif | Source Sans 3 / Source Serif 4 | フォールバックには Helvetica/Arial と Georgia/Times を使用します。 |
| Long-form line height | 1.4–1.5em | 推奨する読みやすい文字サイズの範囲。 |
| Short text / headings | 1.2–1.3em | よりコンパクトなグループ。 |
### 選択したモジュラー設定

| 名前 / ルール | 値 / 設定 | 用途 |
| --- | --- | --- |
| Scale mobile / tablet / desktop | 1.15 / 1.2 / 1.25 | type-* の各段階に適用する比率。 |
| basefont-23 selection | 18px XS–SM; 21px MD–XL; 23px 2XL | このサンプルで使用する明示的な設定。 |
| Breakpoints SM / MD / LG / XL / 2XL | 576 / 768 / 992 / 1200 / 1500px | レスポンシブの境界。 |
| cc maximum | 1500px at 1700px viewport | 画面端まで広がる流動的なコンテンツコンテナ。 |
| Screen edge XS / SM / MD / LG / XL | 20 / 30 / 50 / 80 / 100px | 数学的なスケールではなく、厳選された設定。 |
### アイデンティティカラーとアクションカラーの違い

| 名前 / ルール | 値 / 設定 | 用途 |
| --- | --- | --- |
| Cardinal red | #8c1515 | アイデンティティの主要カラー。 |
| Black / cool grey | #2e2d29 / #53565a | 基本のニュートラルパレット。 |
### Web向けインタラクティブパレット

| 名前 / ルール | 値 / 設定 | 用途 |
| --- | --- | --- |
| Digital red / dark | #b1040e / #820000 | インタラクティブ要素向けのスタイル。ワードマークの色の代わりにはなりません。 |
| Digital blue / dark | #006cb8 / #00548f | リンクのスタイル。 |
## Decanter デザインシステム完全ガイド

実際のインターフェースで、このデザインシステムを選び、適用し、レビューするための実践ガイドです。

詳しいガイダンス、実装の出発点、ソースへのリンクをまとめています。

## Decanter デザインシステム：SDK ではなく Tailwind プリセット

### ドキュメントに記載された生成手順を固定する

> 検証済みの Decanter パッケージは 7.5.3 で、Tailwind CSS ^3.4.17 を宣言しています。公開エントリーポイントは Tailwind の設定プリセットです。presets に require("decanter") を追加し、content を実際のソースファイルに設定して、ユーティリティスタイルシートをコンパイルします。インポートする Decanter React プロバイダーはありません。

ドキュメントには v8 で削除予定の項目が含まれていますが、インストール手順は引き続き v7 として記載されています。このリファレンスでは v7.5.3 に固定し、非推奨の foggy、slab、旧式の modular-text ユーティリティは使用しません。単独のプレビューはレイアウト規則を明示的に解釈したものであり、Tailwind でコンパイルしたものではありません。

関連する仕様を確認する

## Decanter デザインシステム：レスポンシブなモジュラータイポグラフィ

### スケールは基準値によって決まる

Source Sans 3 と Source Serif 4 をそれぞれ主要なサンセリフ体とセリフ体として使用し、フォールバックには Helvetica/Arial と Georgia/Times を指定します。type-* ユーティリティは、ピクセル数で固定された見出しではなく、比率に基づく役割を表します。スケールの倍率は、モバイルで 1.15、タブレットで 1.2、デスクトップで 1.25 です。

このサンプルでは、ドキュメントに記載された basefont-23 の設定を採用しています。XS–SM では 18px、MD–XL では 21px、2XL では 23px です。コンパクトな埋め込み例でも表示が適切な比率になるよう、見出しには type-3 相当のサイズを使用しています。異なる基準値を選ぶ場合は、このプレビューのピクセル値をそのまま流用せず、適用後のサイズを再計算してください。

関連する仕様を確認する

## Decanter デザインシステム：流動的なコンテナとグリッド

### 画面端もレイアウトの一部

cc コンテナでは、画面端の余白を XS で 20px、SM で 30px、MD で 50px、LG で 80px、XL で 100px に設定しています。ビューポート幅が 1700px に達すると、コンテンツの最大幅 1500px に達するまで広がります。これは画面端のルールを明示した流動的なシステムであり、単に幅を 1200px に固定するコンテナではありません。

このサンプルは同じ画面端のルールに従い、MD 未満では2枚の編集カードを1列に並べます。カード内のコンテンツは通常の文書順に配置しているため、レイアウトを縦に積んだ場合も、キーボード操作の順序は読み進める順序と一致します。

関連する仕様を確認する

## Decanter デザインシステム：画面幅に応じて変化するスペーシング

### レスポンシブユーティリティは意図を持って使う

Decanter には、レスポンシブなマージンとパディング用の rs-m-* および rs-p-* ファミリーがあります。選択した段階の値は、ドキュメントに記載された範囲に応じて変わり、Tailwind の固定スペースの別名ではありません。このコード例では、カードの周囲に rs-p-1 を使い、アクションには通常の固定パディングを使っています。

このリファレンスを再現可能な状態に保つため、単独の独自解釈では、CSS に関する調整をすべてアプリケーションコードとして明示しています。ネイティブなビルドでは、同じ名前のルールを別途定義して競合させず、プリセットが生成するユーティリティを使用してください。ビルドスキャナーがクラス全体を認識できない場合は、"rs-p-" + size のような動的な断片を避けてください。

関連する仕様を確認する

## Decanter デザインシステム：アイデンティティカラーとインタラクティブカラー

### Cardinal と digital red は異なる役割を持つ

スタンフォード大学の主要な Cardinal red は #8c1515 です。Digital red #b1040e はインタラクティブ要素やアクセントに使う色で、大学のアイデンティティにおける Cardinal の代わりにはなりません。Digital blue #006cb8 はリンクに使用し、より濃いインタラクション時の色には #00548f を使用します。

このサンプルでは、展開式の詳細表示アクションに digital red を使い、背景には控えめなニュートラルカラーを使用しています。スタンフォード大学のワードマーク、シール、公式アイデンティティバーは含まれていません。大学で使用する場合は、認可されたアイデンティティ素材と大学のブランド規則に従ってください。技術リファレンスの使用は、大学からの推奨や承認を意味するものではありません。

関連する仕様を確認する

## Decanter デザインシステム：アクション付き編集カード

### コンポーネントを推測せず、コンテンツを構成する API

公式のカード例は、スペーシング、タイポグラフィ、背景、アクションのユーティリティを組み合わせたセマンティックな HTML です。この構成では、イベントのカテゴリとタイトルを分け、日付と会場をテキストで示し、実際のボタンで概要をその場に表示します。Decanter の Card prop API を独自に作り出してはいません。

実際の結果がページ遷移なら、タイトルをリンクにするのが適切です。ここで行うのはその場での展開なので、aria-expanded と aria-controls を設定したボタンでその動作を伝えます。プレビューには、大学のニュースをコピーせず、オリジナルのイベント名と概要を使用しています。

- イベントのタイトルをカードの見出しにする。

- 展開前から日時と場所が見えるようにする。

- 内容の開示にはボタンを使い、リンクは実際にページ遷移する場合にのみ使う。

関連する仕様を確認する

## Decanter デザインシステム：フィルターと開示

### どのレイアウトでもコンテンツを利用できる状態にする

トピックセレクターは、元の研究イベントカード2件を絞り込み、表示中の件数を更新します。一致する項目がない選択肢は、意図的に空の状態とリセット方法を示します。フィルターによって見出しの階層が変わったり、カードが選択式のフォーム項目に変わったりすることはありません。

各要約には個別のボタン状態があります。カードを閉じても、フォーカスは同じトリガーに残ります。フィルターを変更すると、非表示になった要約は閉じられるため、トピックに戻った際も一貫した概要から確認できます。コントロールの動作は、ユーティリティベースのデザイン手法に追加されたアプリケーション側の機能であり、パッケージに含まれるDecanter JavaScriptの機能ではありません。

関連する仕様を確認する

## Decanterデザインシステムのビルドと検証

### 生成クラスにはソースのスキャンが必要です

このセットアップはTailwind 3と、検証済みのDecanter 7.5.3プリセットを対象としています。入力ディレクティブ、コンテンツのglob、出力コマンド、オリジナルのカード構成が含まれています。生成されたスタイルシートをドキュメントのheadから読み込んでください。承認済みのフォントファイルは別途読み込むか、記載されているフォールバックをそのまま使用してください。

プレビューはこのツールチェーンではビルドされておらず、実装ラベルにもその旨が記載されています。本番環境で採用する場合は、完全なクラスセットを独自にコンパイルし、生成された出力を確認してください。特にメジャーバージョンのアップグレードで非推奨のユーティリティが変更される場合は、念入りな確認が必要です。

1. Decanterと互換性のあるTailwindのメジャーバージョンを固定します。

2. プリセットを登録し、実際のソースディレクトリをスキャンします。

3. Tailwindの3つのディレクティブレイヤーをコンパイルします。

4. 選択したベースフォント、画面端、カードのアクションを、記載されたブレークポイントで確認します。

関連する仕様を確認する

## Decanterデザインシステムのコンポーネント例

### オリジナルのエディトリアルカード

検証済みのユーティリティ群で構成したセマンティックなHTMLと、アプリケーション側で管理する開示ボタン。

```
<article class="bg-white border border-solid border-black-20 rs-p-1">
  <p class="font-semibold text-digital-red">Research conversation</p>
  <h2 class="type-2 font-serif leading-display">Reading the changing coast</h2>
  <p class="leading-normal">An original example event about field observations.</p>
  <button type="button" class="bg-digital-red text-white px-26 py-10
    hocus:bg-cardinal-red-dark focus:outline focus:outline-2">
    Show session details
  </button>
</article>
```

コードリファレンス

### プリセット設定

Tailwind 3を固定して使用するための、最小限かつ完全な設定。

```
module.exports = {
  presets: [require('decanter')],
  content: ['./src/**/*.{html,js}']
};
```

コードリファレンス

### 単体で動作するサンプル一式

レイアウト、操作要素、初期化処理を含むドキュメント全体です。リンク先のサンプルアーカイブを展開すると、このプレビューで使用する正確な相対パスのベンダーアセットが得られます。その後、HTTP経由で配信してください。

```
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Decanter editorial composition</title><style>*{box-sizing:border-box}body{margin:0;background:#f6f5f2;color:#2e2d29;font:18px/1.5 'Helvetica Neue',Helvetica,Arial,sans-serif}.cc{margin-inline:20px;max-width:1500px;padding-block:40px}h1{font-family:Georgia,serif;font-size:1.520875em;line-height:1.2;margin:24px 0}h2{font:700 1.3225em/1.25 Georgia,serif;margin:12px 0}p{margin:16px 0}.overline{letter-spacing:.12em;font-size:14px;font-weight:700}.filters{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding-block:24px;border-block:1px solid #c0c0bf;margin-block:32px}select{font:inherit;background:white;border:1px solid #767674;padding:8px}.cards{display:grid;grid-template-columns:1fr;gap:20px}article{background:white;padding:24px;border-top:4px solid #8c1515}article time{font-size:16px;color:#53565a}.topic{font-size:14px;font-weight:600;letter-spacing:.04em}.abstract{border-top:1px solid #d5d5d4;padding-top:16px}.action{font:600 16px/1.3 Arial,sans-serif;background:#b1040e;color:white;border:0;padding:12px 20px;cursor:pointer}.action:hover{background:#820000;text-decoration:underline}.reset{font:inherit;color:#006cb8;background:none;border:0;text-decoration:underline;padding:8px 0;cursor:pointer}:focus-visible{outline:3px solid #00548f;outline-offset:4px}small{display:block;font-size:14px;color:#53565a;margin-top:32px}[hidden]{display:none!important}@media(min-width:576px){.cc{margin-inline:30px}}@media(min-width:768px){body{font-size:21px}.cc{margin-inline:50px}h1{font-size:1.728em}h2{font-size:1.44em}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:992px){.cc{margin-inline:80px}.cards{gap:36px}h1{font-size:1.953125em}h2{font-size:1.5625em}}@media(min-width:1200px){.cc{margin-inline:100px}.cards{gap:40px}}@media(min-width:1500px){body{font-size:23px}.cards{gap:48px}}@media(min-width:1700px){.cc{margin-inline:auto}}
</style><main class="cc"><p class="overline">RESEARCH CONVERSATIONS · ORIGINAL EXAMPLES</p><h1>Ideas take shape in conversation.</h1><p>A compact editorial collection interpreting Decanter’s responsive type and screen-edge rules.</p><div class="filters"><label for="topic">Topic</label><select id="topic"><option value="all">All topics</option><option value="environment">Environment</option><option value="archives">Archives</option><option value="astronomy">Astronomy</option></select><span id="count" role="status">2 example events</span></div><div class="cards"><article data-topic="environment"><p class="topic">ENVIRONMENT</p><h2>Reading the changing coast</h2><time datetime="2026-10-12">12 October · Fictional seminar room</time><p>How field notes reveal changes that a single measurement cannot capture.</p><button class="action" type="button" aria-expanded="false" aria-controls="coast">Show session details</button><div class="abstract" id="coast" hidden><p>This original sample session compares written observations, sketches and repeat measurements. The conversation asks how researchers describe uncertainty when a landscape changes gradually.</p></div></article><article data-topic="archives"><p class="topic">ARCHIVES</p><h2>The stories between records</h2><time datetime="2026-10-19">19 October · Fictional reading room</time><p>Exploring how context connects objects in a community archive.</p><button class="action" type="button" aria-expanded="false" aria-controls="archive">Show session details</button><div class="abstract" id="archive" hidden><p>This original example considers correspondence, oral history and catalogue descriptions together. It examines how a collection can preserve disagreement without erasing individual perspectives.</p></div></article></div><div id="empty" hidden><h2>No events in this example topic</h2><p>Choose another topic or return to the full collection.</p><button type="button" class="reset" id="reset">Show all topics</button></div><small>Independent OpenDesign specimen. Original content, local font fallbacks and interpreted Decanter layout rules. No Stanford identity or real event listing.</small></main><script>const topic=document.querySelector('#topic'),cards=[...document.querySelectorAll('article')];function filter(){let count=0;cards.forEach(c=>{c.hidden=topic.value!=='all'&&topic.value!==c.dataset.topic;if(!c.hidden)count++;const b=c.querySelector('button');b.setAttribute('aria-expanded','false');b.textContent='Show session details';c.querySelector('.abstract').hidden=true});document.querySelector('#count').textContent=count+' example events';document.querySelector('#empty').hidden=count!==0}topic.onchange=filter;document.querySelector('#reset').onclick=()=>{topic.value='all';filter();topic.focus()};document.querySelectorAll('.action').forEach(b=>b.onclick=()=>{let open=b.getAttribute('aria-expanded')!=='true';b.setAttribute('aria-expanded',String(open));b.textContent=open?'Hide session details':'Show session details';document.getElementById(b.getAttribute('aria-controls')).hidden=!open});</script></html>
```

コードリファレンス

- 完全なサンプルは「ソース」からダウンロードできます。READMEに正確なローカル起動コマンドが記載されています。

- ベンダーのパスはこのドキュメントからの相対パスのままにしてください。アーカイブには、このプレビューで使用するアセット一式が含まれています。

## Decanterデザインシステムのエージェント設定

### 実装の出発点

ソースで確認したプリセットのビルド設定です。インタープリターで表示する単独プレビューの作成には使用していません。ドキュメントのheadでdist/styles.cssを読み込んでください。フォントと組織のアイデンティティアセットは別途検討が必要です。Sourcesにある完全な動作例のZIPには、プレビューに必要な依存関係とドキュメント一式も含まれています。展開したディレクトリでpython3 -m http.server 8080を実行し、http://localhost:8080/stanford-decanter.htmlを開いてください。モジュールを使う例をfile://経由で開かないでください。

```
npm install --save-dev decanter@7.5.3 tailwindcss@3.4.17
# tailwind.config.cjs
# module.exports = {
#   presets: [require('decanter')],
#   content: ['./src/**/*.{html,js}']
# };
# src/input.css
# @tailwind base;
# @tailwind components;
# @tailwind utilities;
npx tailwindcss -c tailwind.config.cjs -i ./src/input.css -o ./dist/styles.css
```

### あなたのプロジェクト向けプロンプト

```
Decanter 7.5.3/Tailwind 3を使ったエディトリアルなイベントページを構成します。プリセット、明示的に選択したbasefont、type-*スケール、ccの画面端ルールを使用してください。セマンティックなカードでは、トピック、タイトル、日時、場所をそれぞれ区別します。ページ内でのトピック絞り込みと、aria-expandedを使った要約の開閉操作を実装してください。非推奨のfoggy/slabユーティリティ、大学の記事のコピー、アイデンティティマークの使用は避けてください。手作業で解釈したプレビューは、Decanterをコンパイルしてビルドしたものとは明確に区別してください。
```

## Decanterデザインシステムの参照元と適用範囲

公式の大学イベントページではなく、独自に制作したOpenDesignの学習用構成です。コンテンツはオリジナルで、Stanfordのマークは使用していません。コードの採用と、ブランドの承認を得たアイデンティティの使用は別のものです。

- Decanterの概要 公式の目的、対象者、リソースへの入口。

- 開発者向けインストール バージョンごとの実装および設定ガイダンス。

- Figmaでのデザイン 公式デザインライブラリへの入口。

- 動作サンプル一式をダウンロード 完全なHTML、ローカルのCSS／JavaScript依存関係、付属ライセンス、正確な起動手順を含むZIPです。ビルド手順は不要です。

## Decanterデザインシステムの関連リソース

### Suomi.fi デザインシステム

Source Sans 3と明示的なスペーシングトークンを使い、書類選択から復帰できるパターンを取り入れて、フィンランドの公共サービス向けに読みやすいフォームを作成します。

### UNDP デザインシステム

UNDPが公開している色と間隔のトークン、キーボードで操作できるネイティブのタブ、閲覧の進捗をローカルに記録するワークショップ資料の完全な例をご覧ください。

### USWDS

USWDSのスペーシングトークン、テーマの役割、セマンティックな表、ネイティブのアコーディオンをつなぎ、検索可能な機会比較を作成します。


- [実装リファレンス](https://decanter.stanford.edu/for-developers/strategies-and-conventions)
- [ソース](https://decanter.stanford.edu/for-designers/type-grids-and-color)
- [ソース](https://decanter.stanford.edu/for-developers/strategies-and-conventions)
- [ソース](https://identity.stanford.edu/design-elements/color/primary-colors/)
- [ソース](https://identity.stanford.edu/design-elements/color/web/)
- [関連する仕様を確認する](https://decanter.stanford.edu/for-developers/installation)
- [関連する仕様を確認する](https://decanter.stanford.edu/for-developers/strategies-and-conventions)
- [関連する仕様を確認する](https://identity.stanford.edu/design-elements/color/web/)
- [関連する仕様を確認する](https://decanter.stanford.edu/examples/cards)
- [コードリファレンス](https://decanter.stanford.edu/examples/cards)
- [コードリファレンス](https://decanter.stanford.edu/for-developers/installation)
- [コードリファレンス](https://decanter.stanford.edu/for-developers/strategies-and-conventions)
- [Decanterの概要 公式の目的、対象者、リソースへの入口。](https://decanter.stanford.edu/)
- [開発者向けインストール バージョンごとの実装および設定ガイダンス。](https://decanter.stanford.edu/for-developers/installation)
- [Figmaでのデザイン 公式デザインライブラリへの入口。](https://decanter.stanford.edu/for-designers/figma)
