開発者
Knowledge OSの標準構成(VueをUIフレームワーク、Tauriをデスクトップアプリ基盤とする)で 画面を実装する際の基準として使用します。 Reactなど他のUIフレームワークを使用する場合も、 本Design Principlesの命名・状態設計・UIルールを維持します。
Knowledge OS Product Design System
Knowledge OSの画面を、誰が実装しても同じ品質にするための UI設計ルールです。 レイアウト、余白、文字、色、コンポーネントの使い方を定義し、 人間の開発者とAI開発支援ツールが共通の判断基準を持てる状態を つくります。
Introduction
UI Design Systemは、見た目を整えるためだけのルールではありません。 Knowledge OSを使う人が、画面ごとに新しい操作方法を覚えなくても よい状態をつくるための共通言語です。
同じ役割のボタンは、どの画面でも同じ形、同じ位置、同じ言葉で 表現します。同じ種類の情報は、同じカード、同じ文字サイズ、 同じ余白で表示します。
Knowledge OSの標準構成(VueをUIフレームワーク、Tauriをデスクトップアプリ基盤とする)で 画面を実装する際の基準として使用します。 Reactなど他のUIフレームワークを使用する場合も、 本Design Principlesの命名・状態設計・UIルールを維持します。
新しい画面、機能、コンポーネントを設計する際の判断基準として 使用します。
Cursor、Claude Code、Codexなどに実装を依頼するときの 制約条件として使用します。
01 — Foundation
Knowledge OSのUIは、業務資料を扱う一般企業向けの製品です。 日常的にITを使う人だけでなく、パソコン操作が得意ではない人、 高齢者、初めて製品に触れる人も対象とします。
画面を開いた瞬間に、何をする画面なのか分かるようにします。
装飾やAIの存在感ではなく、利用者が扱う資料と情報を 中心に配置します。
同じ見た目の要素には、常に同じ操作結果を持たせます。
文字サイズ、余白、色、位置によって情報の優先順位を 表現します。
成功、警告、エラーは、色に加えてアイコンと文章で 意味を伝えます。
選択肢や装飾を追加するより、不要なものを減らします。
AIが勝手に処理を進めず、提案、確認、実行の順番を守ります。
02 — Layout
Knowledge OSの画面は、原則として 「ナビゲーション」「ページヘッダー」「メインコンテンツ」 の3領域で構成します。
ページ上部には、原則として次の順番で情報を配置します。
| 項目 | 配置 | ルール |
|---|---|---|
| ページタイトル | 左上 | 名詞を基本とし、短くする |
| 補助文 | タイトルの直下 | この画面でできることを一文で示す |
| 主要操作 | 右上 | ボタンは原則1つまで |
資料
登録した資料を確認・整理します。
右上に「資料を追加」ボタンを1つ配置する。
ナレッジマネジメントセンター
「新規」「追加」「アップロード」「AI登録」の 4つのボタンを同時に表示する。
| 用途 | 最大幅 | 使用例 |
|---|---|---|
| 通常画面 | 1280px | 資料一覧、検索結果、ダッシュボード |
| 入力画面 | 840px | 設定、資料登録、初回セットアップ |
| 読み物画面 | 760px | ヘルプ、利用規約、説明文 |
| ダイアログ | 480〜720px | 確認、編集、選択 |
03 — Grid
画面内の要素を感覚で配置せず、12カラムグリッドを基準にします。 ただし、利用者にグリッドの存在を感じさせる必要はありません。
| 項目 | 値 |
|---|---|
| カラム数 | 12 |
| ガター | 24px |
| 左右余白 | 32px以上 |
| 最大コンテンツ幅 | 1280px |
一覧、詳細、入力フォームなど、1つの内容に集中する画面。
メイン資料と、関連情報・操作パネルを並べる画面。
2つの情報を比較する画面。左右の重要度が同じ場合に使用。
| 画面幅 | 列数 | カード最小幅 |
|---|---|---|
| 1200px以上 | 3〜4列 | 260px |
| 768〜1199px | 2列 | 280px |
| 767px以下 | 1列 | 自動 |
04 — Spacing
Knowledge OSでは、余白を装飾ではなく情報整理の手段として 使用します。関係の近い情報は近づけ、異なる情報は離します。
余白は原則として4px単位で設計します。 日常的には8px、12px、16px、24px、32px、48pxを使用します。
| Token | 値 | 主な用途 |
|---|---|---|
space-1 |
4px | アイコンと文字の微調整 |
space-2 |
8px | ラベルと入力欄、ボタン内の要素 |
space-3 |
12px | 小さな要素間 |
space-4 |
16px | カード内の関連要素 |
space-6 |
24px | カード内余白、フォーム項目間 |
space-8 |
32px | セクション間 |
space-12 |
48px | 大きなセクションの区切り |
space-16 |
64px | ページ上部、主要ブロック間 |
「氏名」と入力欄は近づけ、 「連絡先」セクションとの間は大きく空ける。
すべての要素を同じ16px間隔で並べ、 情報のまとまりが分からなくなる。
05 — Card
カードは、関連する情報や操作をひとまとまりとして見せるために 使用します。画面を区切るためだけにカードを乱用してはいけません。
| 項目 | 標準値 |
|---|---|
| 背景 | #FFFFFF |
| 境界線 | 1px / Neutral 200 |
| 角丸 | 12px |
| 内側余白 | 24px |
| 影 | 原則なし。浮遊要素のみ使用 |
| カード間隔 | 16〜24px |
資料、案件、設定内容など、情報を表示するカードです。
「資料を取り込む」など、1つの操作を開始するカードです。
接続状況、処理結果、システム状態を示すカードです。
件数や重要情報を短く要約して示すカードです。
カード全体をクリックできる場合は、次の条件を満たします。
相続手続きの進め方.pdf
PDF・12ページ
更新:2026年7月10日
タイトル、説明、タグ、更新者、更新日、AI評価、 5個のボタンを1枚のカードに詰め込む。
06 — Typography
文字はKnowledge OSで最も重要なUI要素です。 装飾的なフォントではなく、読みやすさと日本語表示の安定性を 優先します。
font-family:
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
"Noto Sans JP",
"Hiragino Kaku Gothic ProN",
"Yu Gothic",
Meiryo,
sans-serif;
OS標準フォントを優先し、追加フォントのインストールを 前提にしません。
| 用途 | サイズ | 太さ | 行間 |
|---|---|---|---|
| 画面タイトル | 28〜32px | 700 | 1.35 |
| セクション見出し | 22〜24px | 700 | 1.4 |
| カード見出し | 17〜18px | 600〜700 | 1.5 |
| 本文 | 16px | 400 | 1.7 |
| ボタン | 15〜16px | 600〜700 | 1.4 |
| 補助文字 | 14px | 400 | 1.6 |
| 最小文字 | 13px | 400 | 1.5 |
補助文字は、入力例、更新日時、任意項目、操作の補足などに 使用します。重要な情報を補助文字だけで伝えてはいけません。
保存先フォルダ
取り込んだ資料を保存する場所です。
※この設定を変更すると既存のインデックス情報との 不整合が発生する可能性があります。
07 — Colors
Knowledge OSの色は、製品の装飾ではなく、 操作の優先度と状態を伝えるために使用します。
Primaryは、主要操作、選択状態、リンク、フォーカス状態に 使用します。
| Token | 値 | 用途 |
|---|---|---|
primary-50 |
#EFF6FF | 選択背景、通知背景 |
primary-100 |
#DBEAFE | ホバー背景 |
primary-500 |
#3B82F6 | 補助的な青 |
primary-600 |
#2563EB | 主要ボタン、リンク |
primary-700 |
#1D4ED8 | ホバー、強調 |
| Token | 値 | 用途 |
|---|---|---|
neutral-0 |
#FFFFFF | カード背景 |
neutral-50 |
#F8FAFC | ページ背景、サイドバー |
neutral-100 |
#F1F5F9 | ホバー背景 |
neutral-200 |
#E2E8F0 | 境界線 |
neutral-500 |
#64748B | 補助文字 |
neutral-700 |
#334155 | 本文 |
neutral-900 |
#0F172A | 見出し |
保存完了、接続成功、正常状態など、処理が完了したことを 伝えるために使用します。
処理は続行できるものの、確認や注意が必要な状態に使用します。
処理を完了できなかった場合や、入力の修正が必要な場合に 使用します。
08 — Components / Button
ボタンは「何が起きるか」を明確に示す操作要素です。 ボタンの見た目は、操作の重要度と危険度に合わせます。
| 種類 | 用途 | 使用数 |
|---|---|---|
| Primary | 画面の最重要操作 | 原則1つ |
| Secondary | 戻る、キャンセル、補助操作 | 必要な数だけ |
| Ghost | 軽い操作、詳細表示 | 控えめに使用 |
| Danger | 削除、初期化、解除 | 危険操作のみ |
| サイズ | 高さ | 用途 |
|---|---|---|
| Large | 48px | 初回設定、主要フロー |
| Medium | 44px | 標準 |
| Small | 36px | テーブル内、補助操作 |
ボタンのラベルは、原則として 「対象+動詞」または 「動詞」にします。
「次へ」は、次に何が起きるか明らかな連続フォームのみ 使用できます。可能な限り「内容を確認」「登録を完了」のように 具体的にします。
ボタンを無効にする場合は、利用者が理由を理解できるようにします。
09 — Components / Tag
タグは、資料の分類、状態、属性を短く示すために使用します。 長い説明や主要操作には使用しません。
| 項目 | 値 |
|---|---|
| 高さ | 28〜32px |
| 左右余白 | 10〜12px |
| 角丸 | 999pxまたは8px |
| 文字サイズ | 13〜14px |
| 最大文字数 | 全角12文字程度 |
タグは分類を示します。ステータスは現在の状態を示します。
相続、契約書、社内資料、顧客A
未確認、処理中、確認済み、エラー
10 — Components / Dialog
ダイアログは、利用者の現在の作業を一時的に中断し、 確認や短い入力を求める場合に使用します。
「相続手続きの進め方.pdf」を削除します。 削除した資料は元に戻せません。
デスクトップでは、左にキャンセル、右に実行ボタンを置きます。 モバイルでは縦並びも許可します。
削除確認では「本当によろしいですか?」だけを表示してはいけません。 削除対象と結果を具体的に説明します。
「顧客A」タグを削除します。 このタグが付いた資料自体は削除されません。
削除します。よろしいですか?
11 — Components / Empty State
Empty Stateは、単に「データがありません」と伝える場所では ありません。利用者が次に何をすればよいかを案内する画面です。
Word、PDF、画像などの資料を登録すると、 内容を検索したり整理したりできます。
まだデータがない理由と、最初の操作を説明します。
検索条件を変更する方法を案内します。
フィルター解除ボタンを表示します。
| 状態 | 見出し | 操作 |
|---|---|---|
| 資料なし | まだ資料が登録されていません | 資料を追加 |
| 検索結果なし | 一致する資料が見つかりませんでした | 検索条件を消す |
| タグなし | まだタグがありません | タグを作成 |
| 履歴なし | まだ操作履歴がありません | ボタンなし |
12 — Components / Loading
Loadingは、システムが止まっているのではなく、 処理を続けていることを利用者に伝えるためのUIです。
| 予想時間 | 表示方法 |
|---|---|
| 0〜1秒 | 原則として表示しない |
| 1〜3秒 | ボタン内スピナー |
| 3〜10秒 | スピナー+処理内容 |
| 10秒以上 | 進捗表示+キャンセル可否+説明 |
AI処理では、「AIが考えています」ではなく、 利用者の資料に対して何をしているかを説明します。
一覧や詳細画面の初期表示では、レイアウトの形を維持する Skeletonを使用できます。
複数ファイルの登録など、処理件数が分かる場合は、 「3 / 10件」のように具体的な進捗を示します。
13 — Components / Search
検索はKnowledge OSの中心機能です。 利用者が正確なファイル名や専門用語を知らなくても、 必要な資料にたどり着けることを目指します。
| 項目 | ルール |
|---|---|
| 高さ | 48〜52px |
| 左アイコン | 虫眼鏡 |
| 右操作 | 入力時のみクリアボタン |
| 角丸 | 12px |
| 検索開始 | Enterまたは検索ボタン |
プレースホルダーには、検索できる内容の例を示します。
検索結果には、なぜその資料が見つかったかを分かる範囲で 示します。
一致した文字列は、背景色と太字で強調します。 文字色だけを変更する方法は避けます。
フィルターは、最初からすべて表示せず、 よく使う条件だけを見せます。
PDF、Word、画像、テキスト
今日、7日以内、30日以内、期間指定
案件名、顧客名、業務分類
併せて、次の操作を表示できます。
AI検索を提供する場合でも、通常検索と別製品のように 分離しません。
14 — Components / Form
フォームは、利用者にシステムの都合を押し付けないように 設計します。必要な情報だけを、自然な順番で入力できるようにします。
| 項目 | 標準値 |
|---|---|
| 高さ | 44〜48px |
| 角丸 | 10px |
| 左右余白 | 14〜16px |
| 境界線 | 1px / Neutral 300 |
| フォーカス | Primary色のリング |
エラーは、フォーム上部にまとめるだけでなく、 問題のある入力欄の直下にも表示します。
ファイル名を入力してください。
入力値が不正です。Error 400。
16 — Responsive
Knowledge OSはデスクトップ利用を中心としますが、 小型ノートPCやタブレットでも主要操作を継続できるようにします。
| 名称 | 幅 | 主な対象 |
|---|---|---|
| Mobile | 〜767px | スマートフォン |
| Tablet | 768〜1023px | タブレット、小型画面 |
| Desktop | 1024〜1439px | 一般的なPC |
| Wide | 1440px〜 | 大型モニター |
小さい画面では、横スクロール、重要列のみ表示、 カード形式への切り替えを使い分けます。
17 — Accessibility
Knowledge OSは、高齢者、視力の低い人、マウス操作が難しい人も 利用する可能性があります。アクセシビリティは追加対応ではなく、 基本品質として扱います。
通常文字は、背景とのコントラスト比4.5:1以上を目安とします。 大きな文字でも、薄すぎる色は使用しません。
18 — Icons & Illustration
アイコンは、文章を置き換えるものではなく、 意味を素早く理解するための補助として使用します。
| 機能 | 表現 |
|---|---|
| 追加 | + |
| 検索 | 虫眼鏡 |
| 削除 | ごみ箱 |
| 編集 | 鉛筆 |
| 設定 | 歯車 |
| 資料 | 書類 |
| フォルダ | フォルダ |
| 成功 | 丸の中のチェック |
| 警告 | 三角形の中の感嘆符 |
| エラー | 丸の中の感嘆符 |
イラストは、初回案内、Empty State、セットアップ完了など、 利用者の不安をやわらげる場面に限定して使用します。
19 — Feedback
利用者が操作した後は、「処理されたのか」「次に何をすべきか」が 分かるフィードバックを返します。
軽い成功通知には、画面端に一時表示するToastを使用できます。
入力エラーや特定領域の問題は、その場所に近い Inline Messageを使用します。
システム全体の状態、接続切れ、更新案内などは、 画面上部のBannerで示します。
保存や登録が完了したら、完了した対象を具体的に示します。
「相続手続きの進め方.pdf」を登録しました。
成功しました。
エラーでは、原因、影響、次の操作の3点をできる範囲で示します。
20 — AI Implementation Rules
新しい画面や機能を実装するときは、このDesign Systemを 個別画面の都合より優先します。
Knowledge OS Design Principles v1.0.0に従って実装してください。
必須条件:
- 一画面一目的を守る
- 一般利用者向けのやさしい日本語を使用する
- 専門用語や英語を画面上に出さない
- 本文は16px以上
- 主要ボタンは44px以上
- Primaryボタンは1画面につき原則1つ
- 余白は4px単位で設計する
- カード角丸は12pxを基本とする
- 色だけで状態を表現しない
- Loadingには処理内容を表示する
- エラーには解決方法を表示する
- Empty Stateには次の操作を表示する
- AIの回答には根拠資料を表示する
- 既存コンポーネントを優先して再利用する
- 新しい独自UIパターンを勝手に追加しない
次のすべてを満たす場合のみ、新規コンポーネントを作成します。
:root {
/* Colors */
--color-primary-50: #eff6ff;
--color-primary-600: #2563eb;
--color-primary-700: #1d4ed8;
--color-success-50: #f0fdf4;
--color-success-700: #15803d;
--color-warning-50: #fffbeb;
--color-warning-700: #b45309;
--color-error-50: #fef2f2;
--color-error-700: #b91c1c;
--color-admin-50: #f5f3ff;
--color-admin-700: #6d28d9;
--color-neutral-0: #ffffff;
--color-neutral-50: #f8fafc;
--color-neutral-100: #f1f5f9;
--color-neutral-200: #e2e8f0;
--color-neutral-500: #64748b;
--color-neutral-700: #334155;
--color-neutral-900: #0f172a;
/* Spacing */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-6: 24px;
--space-8: 32px;
--space-12: 48px;
--space-16: 64px;
/* Radius */
--radius-sm: 8px;
--radius-md: 10px;
--radius-lg: 12px;
--radius-xl: 16px;
--radius-full: 999px;
/* Typography */
--font-size-xs: 13px;
--font-size-sm: 14px;
--font-size-md: 16px;
--font-size-lg: 18px;
--font-size-xl: 24px;
--font-size-page-title: 30px;
/* Control */
--control-height-sm: 36px;
--control-height-md: 44px;
--control-height-lg: 48px;
}
コード上の名称は、役割が分かる英語名を使用します。 画面上の表示は日本語にします。
| 役割 | 推奨コンポーネント名 |
|---|---|
| 主要ボタン | PrimaryButton |
| 資料カード | DocumentCard |
| 空状態 | EmptyState |
| 状態表示 | StatusBadge |
| 確認ダイアログ | ConfirmDialog |
| 検索欄 | SearchInput |
21 — Usage Examples
22 — Review Checklist
新しい画面やコンポーネントを完成と判断する前に、 以下を確認します。
Closing
利用者は、ボタンの色、文字の大きさ、余白、配置から、 次に何が起きるかを無意識に予測しています。
画面ごとにルールが変わると、利用者は毎回考えなければなりません。 一貫したUIは、操作を覚えやすくするだけでなく、 製品への安心感と信頼をつくります。