Design System Preview
Qiita — 日本語版

DESIGN.md から抽出したデザイントークンのカタログ。YakuHanJPs による約物半角化、コードブロック混植、rgba opacity ベースのカラーリングを可視化。

記事を探す DESIGN.md を読む

01 / Colors

カラーパレット

Brand
Qiita Green
#55c500
ブランド・CTA
Green Dark
#468c00
ホバー時
Text(opacity ベース)
Text Primary
rgba(0,0,0,0.87)
本文テキスト
Text Secondary
rgba(0,0,0,0.54)
補足テキスト
Text Disabled
rgba(0,0,0,0.38)
無効状態
Semantic
Success
#388e3c
成功・完了
Danger
#d32f2f
エラー・削除
Warning
#f57c00
警告・注意
Surface & Background
Page Background
#f5f6f6
ページ背景
Surface
#ffffff
カード・モーダル
Border
#e0e0e0
区切り線
Code Block BG
#364549
コードブロック背景
Inline Code BG
#f0f0f0
インラインコード背景

02 / Typography

タイポグラフィ階層

Qiitaにログインして、便利な機能を使ってみませんか?
20px / 600 / line-height: 1.4 (28px)CTA見出し h2
React Hooks の使い方と実践的なパターン集
16px / 400 / line-height: 1.8 (28.8px)記事タイトル h2
タグランキング — Section Heading (h3)
14px / 600 / line-height: 1.8 (25.2px)セクション見出し
本文テキスト — line-height: 1.8 のゆったりとした行間で、コードと日本語が混在する技術記事を読みやすく。YakuHanJPs により「括弧」や、句読点の幅が半角化されています。
16px / 400 / line-height: 1.8 (28.8px) / letter-spacing: normal本文
タグランキング
14px / 600 / line-height: 1.5 (21px)ラベル
const app = express();
SFMono-Regular, Consolas... / 14px / 400 / line-height: 1.5コード

YakuHanJPs について

YakuHanJPs は「約物半角化フォント」です。括弧(「」)や句読点(、。)など、約物と呼ばれる記号文字のみを半角幅のグリフで上書きします。font-family の先頭に配置することで、約物だけが半角幅で描画され、その他の文字は後続のフォントにフォールバックします。

Qiita では font-feature-settings: "palt" を使用せず、YakuHanJPs で約物の詰めを処理しています。palt とは異なり、フォント非依存で一貫した半角化が可能です。

YakuHanJPs あり(Qiita)
「日本語」の(テスト)です。
通常のフォント
「日本語」の(テスト)です。

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

React Server Components 入門

React Server Components(RSC)は、サーバーサイドでレンダリングされるコンポーネントです。クライアントに JavaScript バンドルを送信せずに、サーバー上でデータの取得とレンダリングを行います。

基本的な使い方

Server Component はデフォルトの動作です。'use client' ディレクティブを付けない限り、すべてのコンポーネントは Server Component として扱われます。

// Server Component(デフォルト) async function ArticleList() { const articles = await fetchArticles(); return ( <ul> {articles.map(article => ( <li key={article.id}> <h3>{article.title}</h3> <p>{article.summary}</p> </li> ))} </ul> ); }

Client Component との組み合わせ

インタラクティブな要素が必要な場合は、'use client' を宣言して Client Component にします。状態管理(useState)やイベントハンドラ(onClick)を使うコンポーネントが該当します。

'use client'; import { useState } from 'react'; export default function LikeButton({ articleId }: { articleId: string }) { const [liked, setLiked] = useState(false); const [count, setCount] = useState(0); const handleLike = async () => { setLiked(!liked); setCount(prev => liked ? prev - 1 : prev + 1); await fetch(`/api/articles/${articleId}/like`, { method: 'POST', }); }; return ( <button onClick={handleLike}> {liked ? '♥' : '♡'} {count} </button> ); }

パフォーマンスの利点

Server Components を活用することで、以下の利点が得られます:

  • クライアントに送信する JavaScript バンドルサイズの削減
  • サーバーサイドでのデータ取得によるウォーターフォールの回避
  • 重い依存関係(マークダウンパーサー等)をサーバーに閉じ込められる

04 / Buttons & Tags

ボタン・タグバリエーション

投稿する
Primary CTA
Tags

05 / Cards

記事カード

TypeScriptの型パズル入門

Conditional Types, Mapped Types, Template Literal Types を使った実践的な型レベルプログラミングの解説。

@engineer_taro / 2026-04-01 / 142 LGTM

Docker Compose で開発環境を構築する

PostgreSQL + Redis + Next.js のローカル開発環境を docker-compose.yml ひとつで立ち上げる手順。

@devops_hanako / 2026-03-28 / 89 LGTM

GitHub Actions でCI/CDパイプラインを組む

テスト、lint、ビルド、デプロイまでを自動化するワークフローの設計と実装パターン。

@infra_jiro / 2026-03-25 / 203 LGTM

06 / Forms

フォーム要素

デフォルト — border: #e0e0e0, radius: 4px
フォーカス — border: #55c500 (Qiita Green)
エラー — border: #d32f2f (danger)

07 / Elevation

Depth & Elevation

Level 0: Flat
影なし(基調)
Elevation 1
ホバー時カード
Elevation 2
ドロップダウン
Focus Ring
#55c500 (Qiita Green)