デザインシステム
技術スタック
| レイヤー | 技術 |
|---|---|
| アプリ形態 | PWA(モバイルWeb) |
| スタイリング | Tailwind CSS |
| API | Hono |
| ランタイム | Bun |
対象インターフェース
AIエージェント向け API
- AIエージェントがタスクを投稿・管理するためのREST API
- UIなし(JSONベース)
受注者向け スマホUI(PWA)
- 日本の主婦層がメインターゲット
- スマホでサクッと操作できるモバイルファーストUI
- ホーム画面追加でアプリライクに使える
デザイン方針
- かわいい・親しみやすい路線(プロダクトビジョン準拠)
- 日本特化のUI/UX
- モバイルファースト(スマホ縦画面を最優先)
- リファレンスUI: サントリー「ジハンピ」アプリ(
img/参照)
リファレンスUIの特徴
参考にしているジハンピアプリは以下の特徴を持つ:
- 明るいスカイブルーの背景にホワイトカードを重ねるレイアウト
- 大きくて読みやすい日本語テキスト
- 丸みを帯びた角(ラウンドコーナー)を多用
- ステップインジケーターによる進捗の可視化
- ボトムシート型モーダルで詳細操作を提供
- 完了状態をチェックマークアイコンで明示
カラーパレット
プライマリカラー
| トークン名 | 値 | 用途 |
|---|---|---|
primary-500 | #00A0E9 | メインブランドカラー、背景、ボタン |
primary-600 | #0088CC | ホバー・アクティブ状態 |
primary-400 | #33B5EF | 軽い強調、アイコン背景 |
primary-100 | #E0F4FD | 薄い背景、バッジ背景 |
ニュートラル
| トークン名 | 値 | 用途 |
|---|---|---|
white | #FFFFFF | カード背景、テキスト(暗い背景上) |
gray-50 | #F9FAFB | ページ背景 |
gray-100 | #F3F4F6 | セクション区切り、入力フィールド背景 |
gray-400 | #9CA3AF | プレースホルダー、非活性テキスト |
gray-600 | #4B5563 | サブテキスト |
gray-900 | #111827 | メインテキスト |
セマンティック
| トークン名 | 値 | 用途 |
|---|---|---|
success | #10B981 | 完了、成功メッセージ |
warning | #F59E0B | 注意、保留中 |
error | #EF4444 | エラー、必須マーク |
info | #00A0E9 | お知らせ(プライマリと同色) |
Tailwind CSS 設定
module.exports = { theme: { extend: { colors: { primary: { 100: '#E0F4FD', 400: '#33B5EF', 500: '#00A0E9', 600: '#0088CC', }, success: '#10B981', warning: '#F59E0B', error: '#EF4444', }, }, },}タイポグラフィ
| 要素 | サイズ | ウェイト | 用途 |
|---|---|---|---|
| 見出し大 | text-2xl(24px) | font-bold | 画面タイトル、完了メッセージ |
| 見出し中 | text-xl(20px) | font-bold | セクション見出し |
| 本文 | text-base(16px) | font-normal | 通常テキスト |
| 補助テキスト | text-sm(14px) | font-normal | 説明文、注釈 |
| キャプション | text-xs(12px) | font-normal | タイムスタンプ、ラベル |
- フォント: システムフォント(
font-sans)。iOS では Hiragino Sans、Android では Noto Sans JP が適用される - 行間:
leading-relaxed(1.625)を基本とし、読みやすさを確保
角丸(Border Radius)
| トークン | 値 | 用途 |
|---|---|---|
rounded-xl | 12px | カード |
rounded-2xl | 16px | モーダル、ボトムシート |
rounded-full | 9999px | ボタン(ピル型)、アバター、バッジ |
rounded-lg | 8px | 入力フィールド、小さなカード |
シャドウ
| トークン | 用途 |
|---|---|
shadow-sm | カード(通常状態) |
shadow-md | カード(フローティング)、ボトムシート |
shadow-lg | モーダルオーバーレイ |
スペーシング
4px グリッドシステムを採用:
| トークン | 値 | 用途 |
|---|---|---|
p-4 | 16px | カード内パディング |
p-6 | 24px | セクション間スペース |
gap-3 | 12px | リスト項目間 |
gap-4 | 16px | カード間 |
px-5 | 20px | 画面横マージン |
コンポーネントパターン
カード
メインのコンテンツコンテナ。白背景にラウンドコーナーとシャドウ。
bg-white rounded-xl shadow-sm p-4プライマリボタン
ピル型のメインアクションボタン。
bg-primary-500 text-white font-bold rounded-full px-6 py-3 text-basehover:bg-primary-600 active:bg-primary-600セカンダリボタン
アウトライン型のサブアクションボタン。
border-2 border-primary-500 text-primary-500 font-bold rounded-full px-6 py-3 text-basehover:bg-primary-100ボトムシート
画面下からスライドアップするモーダル。ジハンピの支払い方法選択画面のパターン。
固定要素: fixed inset-x-0 bottom-0背景: bg-white rounded-t-2xl shadow-lgヘッダー: flex justify-between items-center px-5 py-4 border-b border-gray-100 - 戻るボタン(← 左) - タイトル(中央、font-bold) - 閉じるボタン(× 右)コンテンツ: px-5 py-4オーバーレイ: bg-black/40ステップインジケーター
ジハンピのオンボーディング(3ステップで完了)パターン。
横並びフレックス: flex items-center justify-center gap-2各ステップ: - 完了: bg-primary-500 text-white(チェックアイコン) - 現在: bg-primary-500 text-white(番号) - 未完了: bg-gray-100 text-gray-400(番号)ラベル: text-xs text-center mt-1接続線: h-0.5 w-8 bg-primary-500(完了)/ bg-gray-200(未完了)完了画面
支払い完了のようなサクセス状態を表示するパターン。
背景: bg-primary-500 全画面コンテンツ: text-center text-white - チェックアイコン: 大きな丸囲みチェック - メッセージ: text-2xl font-bold(例:「支払い完了」) - 補足: text-base(例:「ご購入ありがとうございました!」) - 詳細カード: bg-white/20 rounded-xl p-4 text-whiteリスト項目
タスク一覧などで使うリスト項目。
flex items-center gap-3 p-4 bg-white rounded-xl shadow-sm - アイコン: w-10 h-10 rounded-full bg-primary-100 flex items-center justify-center - テキスト: flex-1 - タイトル: text-base font-bold text-gray-900 - 説明: text-sm text-gray-600 - 矢印: text-gray-400 >ナビゲーションバー(トップ)
固定: fixed top-0 inset-x-0背景: bg-primary-500 text-white高さ: h-14 flex items-center px-5タイトル: font-bold text-lg text-center flex-1タブバー(ボトム)
固定: fixed bottom-0 inset-x-0背景: bg-white border-t border-gray-100 shadow-md高さ: h-16 flex items-center justify-around px-2 pb-safe各タブ: - アイコン: w-6 h-6 - ラベル: text-xs mt-1 - アクティブ: text-primary-500 - 非アクティブ: text-gray-400アイコン
- ライブラリ: Lucide Icons を推奨
- サイズ: 24px(
w-6 h-6)を基本、小さい場所では 20px(w-5 h-5) - ストローク: 2px(Lucide デフォルト)
- 色: 親要素の
text-*を継承(currentColor)
アニメーション・トランジション
| パターン | 設定 | 用途 |
|---|---|---|
| フェードイン | transition-opacity duration-200 | 要素の表示切り替え |
| スライドアップ | transition-transform duration-300 ease-out | ボトムシート |
| タップフィードバック | active:scale-95 transition-transform duration-100 | ボタン |
レイアウト基本構造
<!-- 画面全体 --><div class="min-h-screen bg-gray-50 pb-20">
<!-- トップナビ --> <nav class="fixed top-0 inset-x-0 h-14 bg-primary-500 ..."> </nav>
<!-- メインコンテンツ(トップナビ分の余白) --> <main class="pt-14 px-5 space-y-4"> <!-- カードが並ぶ --> </main>
<!-- ボトムタブ --> <nav class="fixed bottom-0 inset-x-0 h-16 bg-white ..."> </nav>
</div>Figma
- これから作成予定
- コード側でデザイントークンを先に定義し、Figmaに反映する流れ