Design System Preview
zenn.dev -- 日本語版

DESIGN.md から抽出したデザイントークンのカタログ。カラー、フォント、コンポーネント、スペーシングの全値を可視化。computed style 実測値に基づく。CSS Custom Properties 未使用。

詳しく見る DESIGN.md を読む

01 / Colors

カラーパレット

Brand
Zenn Blue
#3ea8ff
ブランドカラー・CTA
Zenn Blue Dark
#0f83fd
ホバー・プレス
Text(rgba opacity ベース)
Text Primary
rgba(0,0,0,0.82)
本文テキスト
Text Secondary
rgba(0,0,0,0.55)
補足テキスト
Text Disabled
rgba(0,0,0,0.36)
無効状態
Semantic
Success
#10b981
成功・完了
Danger
#f43f5e
エラー・削除
Warning
#f59e0b
警告・注意
Surface & Border
Background
#ffffff
ページ背景
Surface
#f1f5f9
カード・セクション背景
Border
#d6e3ed
区切り線・入力枠

02 / Typography -- 実測値(CSS vars なし)

タイポグラフィ階層

Tech
38.4px / 700 / line-height: 1.5 (57.6px) / palt: なしトップ・セクション大見出し
記事タイトル -- Article Title (h1)
32px / 700 / line-height: 1.5 / palt: なし記事ページ
記事カード見出し -- Heading 2 (記事)
16.8px / 700 / line-height: 25.2px (x1.5) / palt: なし記事一覧
セクション見出し -- Heading 2 (UI)
16px / 700 / line-height: 24px (x1.5) / palt: なしUI見出し
本文テキスト -- ゆったりとした行間 (line-height: 1.8) で長文を読みやすく。テキスト色は rgba(0,0,0,0.82) で、純粋な黒よりも柔らかい印象。letter-spacing と palt は normal(適用なし)。Qiita と同じ line-height: 1.8 だが、YakuHanJPs による約物半角化がない分、括弧類は全角幅のままとなる。
16px / 400 / line-height: 28.8px (x1.8) / letter-spacing: normal / palt: なし本文
ラベル・タグ -- Label (14px)
14px / 600 / line-height: 1.5 / color: Text Secondary
キャプション -- Caption (12px)
12px / 400 / line-height: 1.5日付・メタ情報
const greeting = "Hello, Zenn!";
SFMono-Regular, Consolas, Menlo, monospace / 14px / 400コードブロック

記事ページの組版サンプル

TypeScript で始めるデザインシステムの型安全な管理

デザインシステムの運用において、カラートークンやスペーシング値を TypeScript の型で管理することで、開発時のミスを大幅に減らせます。この記事では、as const と Template Literal Types を活用した実装パターンを紹介します。

1. デザイントークンの型定義

まず、カラーパレットを as const で定義します。これにより、TypeScript がリテラル型として推論し、存在しない色名を参照した際にコンパイルエラーが発生します。

// デザイントークンの型安全な定義
const colors = {
  primary: "#3ea8ff",
  danger: "#f43f5e",
  text: "rgba(0,0,0,0.82)",
} as const;

type ColorKey = keyof typeof colors;

font-family のフォールバックチェーンも同様に管理できます。Zenn では -apple-system を先頭に配置し、ヒラギノ角ゴ ProN、Meiryo と続くシステムフォント構成を採用しています。Qiita の YakuHanJPs のような Web フォントは使用していません。


04 / Comparison -- Zenn vs Qiita

Qiita との比較

同じ技術記事プラットフォームとして、タイポグラフィとカラー設計の違いを比較。

項目ZennQiita
ブランドカラー #3ea8ff (Blue) #55c500 (Green)
テキスト色rgba(0,0,0,0.82)rgba(0,0,0,0.87)
font-family 先頭-apple-systemYakuHanJPs
約物半角化なしYakuHanJPs で半角化
本文 line-height1.81.8
paltnormalnormal
CSS Custom Propertiesなしあり
ページ背景#ffffff#f5f6f6
ボーダー色#d6e3ed#e0e0e0
Border Radius8-12px4-8px
ブランドカラー並置
Zenn Blue
#3ea8ff
Qiita Green
#55c500
テキスト色の差(opacity ベース)
Zenn Text
rgba(0,0,0,0.82)
Qiita Text
rgba(0,0,0,0.87)

05 / Buttons

ボタンバリエーション

記事を書く
Primary CTA
Like

06 / Cards

カードコンポーネント

TypeScript 5.x の新機能まとめ

Decorator、const type parameters、satisfies など、TypeScript 5.x で追加された主要な機能を実例とともに解説。

TypeScriptフロントエンド
続きを読む

Zenn と Qiita の DESIGN.md 比較

同じ技術記事プラットフォームでも、フォント戦略・色設計・コンポーネントの思想が大きく異なる。AI エージェント向け仕様書としての差分を分析。

デザインシステムAI
続きを読む

日本語 Web フォントの最適化戦略

YakuHanJPs、Noto Sans JP、Google Fonts の woff2 サブセット化。パフォーマンスと表示品質のトレードオフを検証。

パフォーマンスCSS
続きを読む

07 / Forms

フォーム要素

デフォルト -- border: #d6e3ed, radius: 8px
フォーカス -- border: #3ea8ff (Zenn Blue)
エラー -- border: #f43f5e (Danger)

08 / Elevation

Depth & Elevation

Level 0: Flat
影なし、ボーダーのみ(デフォルト)
Level 1
0 2px 4px rgba(0,0,0,0.08) -- カードホバー
Level 2
0 4px 12px rgba(0,0,0,0.1) -- ドロップダウン
Level 3
0 8px 24px rgba(0,0,0,0.12) -- モーダル
Focus Ring
#3ea8ff + box-shadow ring

09 / Spacing

スペーシングスケール

4
8
12
16
20
24
32
48
64

10 / Layout

コンテンツ幅

Page Container 960px
Article Body 820px
Feed Content 690px
Sidebar 300px