使い方
AgentCSS は業務画面のための CSS フレームワークです。トークン(CSS 変数 --ac-*)・部品のクラス(接頭辞 ac-)・小さな JS・Jinja マクロでできています。AI に画面を作らせても、ここにある部品とルールだけを使えばクリーンな画面になります。
<link rel="stylesheet" href="agentcss-fonts/biz-udpgothic.css"> <!-- 任意。フォントは別のパッケージ @jirikiai/agentcss-fonts(使うフォントだけ) -->
<link rel="stylesheet" href="/1.0.0/agentcss.min.css">
<style>:root { --ac-brand: #1F5FAD; --ac-brand-2: #12324F; --ac-accent: #2876D5; }</style> <!-- 会社の色だけ差し替え -->
<script src="/1.0.0/agentcss.min.js" defer></script>
- 端末: スマホ 〜599px(文字 15px・押す所 44px・入力欄 16px)/タブレット 600〜1023px/PC 1024px〜(コンパクト 13px・行 32px・入力 28px)。HTML は共通で、密度のトークンだけが切り替わります。
- PC で本人が密度を選ぶ:
<html data-ac-density="standard">。テーマ「ゆったり」:data-ac-theme="relaxed"。 - ダークモード:
data-theme="dark"、端末の設定に合わせるならdata-theme="auto"。印刷は暗い画面のままでも明るい色になります。 - 会社の見た目: 色 6 種・フォント 3 系統・文字の段・角・影をトークンと
data-ac-*で切り替えます(下の「会社の見た目」)。 - Jinja:
{% import "agentcss.html" as ac %}→{{ ac.button("保存", kind="primary") }}。 - ルールの自動チェック:
python scripts/lint.py <フォルダ>(トークン以外の色・px の余白・グラデーション・絵文字・旧クラスを見つけます)。
トークン
色は意味があるときだけ使います。会社ごとに変えられるのは色 6 種(ブランド色・2 つ目の色・アクセント・ヘッダーの地・ボタン・リンク)の系統だけ。状態の色は固定です。角丸は部品 4px・カード 6px、影は 2 段階(--ac-shadow-1 カード、--ac-shadow-2 浮かぶもの)、動きは 0.1〜0.2 秒。
--ac-brand#1F5FAD--ac-brand-hover#174A87--ac-brand-active#123C6E--ac-brand-soft#E8F0FB--ac-brand-soft-2#D4E3F7--ac-brand-text#1B4F94--ac-brand-contrast#FFFFFF--ac-brand-2#12324F--ac-brand-2-hover#0D2740--ac-brand-2-contrast#FFFFFF--ac-logo-ink#12324F--ac-logo-spark#2F7BD8--ac-logo-spark-2#82B0E8--ac-bg#F4F5F7--ac-surface#FFFFFF--ac-surface-2#FAFBFC--ac-surface-3#EEF0F2--ac-surface-inverse#1B1F24--ac-text#1B1F24--ac-text-2#444C56--ac-muted#5B6470--ac-subtle#8A929C--ac-text-inverse#FFFFFF--ac-border#DDE1E6--ac-border-soft#E6E9ED--ac-border-strong#C9CED5--ac-link#1F5FAD--ac-link-hover#174A87--ac-focus#1F5FAD--ac-overlayrgba(16, 24, 40, 0.45)--ac-hoverrgba(16, 24, 40, 0.04)--ac-pressedrgba(16, 24, 40, 0.08)--ac-on-darkrgba(255, 255, 255, 0.82)--ac-on-dark-mutedrgba(255, 255, 255, 0.55)--ac-on-dark-hoverrgba(255, 255, 255, 0.10)--ac-info#1F5FAD--ac-info-bg#E8F0FB--ac-info-text#1B4F94--ac-info-border#9DBBE3--ac-success#1E7B3A--ac-success-bg#E6F4EA--ac-success-text#1B6330--ac-success-border#9CCFAA--ac-warning#B26A00--ac-warning-bg#FDF3E1--ac-warning-text#7A4A00--ac-warning-border#E3BF7B--ac-danger#B42318--ac-danger-bg#FBE9E7--ac-danger-text#9F2A1B--ac-danger-border#E8A79C--ac-neutral#5B6470--ac-neutral-bg#EEF0F2--ac-neutral-text#444C56--ac-neutral-border#C9CED5--ac-accent-1#2F7BD8--ac-accent-2#16805F--ac-accent-3#C2570C--ac-accent-4#6B5BB5--ac-accent-5#0B7A8A--ac-accent-6#9A6B12--ac-logo-ink-inverse#FFFFFF--ac-logo-spark-inverse#7DB3F0--ac-header-bgvar(--ac-surface)--ac-header-textvar(--ac-text)--ac-header-mutedvar(--ac-muted)--ac-header-hovervar(--ac-hover)--ac-header-bordervar(--ac-border-soft)--ac-header-logo-inkvar(--ac-logo-ink)--ac-header-logo-sparkvar(--ac-logo-spark)--ac-btn-primary-bgvar(--ac-brand)--ac-btn-primary-hovervar(--ac-brand-hover)--ac-btn-primary-activevar(--ac-brand-active)--ac-btn-primary-textvar(--ac-brand-contrast)--ac-accent#2876D5--ac-accent-hover#1F5FAD--ac-accent-soft#EDF3FA--ac-accent-text#1A4C89--ac-accent-contrast#FFFFFF--ac-app-colorvar(--ac-brand)--ac-cat-salesvar(--ac-accent-1)--ac-cat-moneyvar(--ac-accent-2)--ac-cat-peoplevar(--ac-accent-3)--ac-cat-teamvar(--ac-accent-4)--ac-cat-basevar(--ac-accent-5)--ac-cat-othervar(--ac-neutral)--ac-media-bg#000000密度
| 密度 | 文字 | 表の行 | 入力・ボタン | 入力の文字 | 部品の間 |
|---|---|---|---|---|---|
| コンパクト(PC の初期値) | 13px | 32px | 28px | 13px | 8px |
| 標準(PC で選ぶ・ゆったり) | 14px | 40px | 32px | 14px | 12px |
| タブレット 600〜1023px | 14px | 44px | 44px | 16px | 12px |
| スマホ 〜599px | 15px | 48px | 44px | 16px | 16px |
| ゆったり(スマホ) | 16px | 52px | 48px | 17px | 16px |
フォント(別のパッケージ @jirikiai/agentcss-fonts)
入れない場合は端末に入っている字で表示されます。
| フォント | 用途 | 版 | ライセンス | ファイル | 大きさ | CSS |
|---|---|---|---|---|---|---|
| BIZ UDPGothic | 本文・見出し | 5.3.0 | SIL Open Font License 1.1 | 244 | 5.4 MB | agentcss-fonts/biz-udpgothic.css |
| Noto Sans JP | 本文・見出し | 5.3.1 | SIL Open Font License 1.1 | 244 | 5.6 MB | agentcss-fonts/noto-sans-jp.css |
| BIZ UDPMincho | 見出し・本文 | 5.3.0 | SIL Open Font License 1.1 | 244 | 7.8 MB | agentcss-fonts/biz-udpmincho.css |
| Roboto Mono | 数字 | 5.3.0 | SIL Open Font License 1.1 | 4 | 0.0 MB | agentcss-fonts/roboto-mono.css |
枠組み(画面・見出し・グリッド・並び)
画面は ac-page の中に、見出し(ac-page-header)→ 本文の順に置きます。見出しは画面名と件数だけ。説明文はヘルプへ。グリッドはスマホで自動的に 1 列になります。
画面の見出し
案件
<header class="ac-page-header">
<h1 class="ac-page-header__title">案件</h1>
<span class="ac-page-header__meta">156 件・受注予定日の新しい順</span>
<div class="ac-page-header__actions">
<button class="ac-btn">CSV</button>
<button class="ac-btn ac-btn--primary"><svg class="ac-btn__icon ac-btn__icon--left" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#plus"></use></svg>新しい案件</button>
</div>
</header>グリッド(ac-grid--3)
<div class="ac-grid ac-grid--3">
<div class="ac-card"><div class="ac-card__body">1</div></div>
<div class="ac-card"><div class="ac-card__body">2</div></div>
<div class="ac-card"><div class="ac-card__body">3</div></div>
</div>横並び(ac-row)と縦の並び(ac-stack)
<div class="ac-row ac-row--between ac-row--wrap">
<span>左</span>
<div class="ac-row"><button class="ac-btn">取消</button><button class="ac-btn ac-btn--primary">保存</button></div>
</div>
<div class="ac-stack ac-stack--sm ac-mt-md">
<div>1 行目</div><div>2 行目</div>
</div>セクション
基本情報
<section class="ac-section">
<h2 class="ac-section__title">基本情報</h2>
<div class="ac-section__body">本文</div>
</section>やってはいけない例
- 「ようこそ!」などの大きな見出しや、画面の説明を見出しの下に繰り返す
<h1 class="ac-h1">ようこそ! 今日も一日がんばりましょう</h1> - 画面ごとに独自の余白(style="margin: 13px")
<div style="margin: 13px">…</div>
カード
情報のまとまりを 1 枚に。影は「ごく薄い」1 段目だけ、角丸は 6px。表を入れるときは ac-card__body--flush で余白をなくします。
基本
今日の予定
<section class="ac-card">
<header class="ac-card__header">
<h2 class="ac-card__title">今日の予定</h2>
<div class="ac-card__actions"><a class="ac-btn ac-btn--sm" href="#">すべて</a></div>
</header>
<div class="ac-card__body">10:00 株式会社テスト 打ち合わせ</div>
<footer class="ac-card__footer"><a class="ac-card__footer-link" href="#">一覧を見る</a></footer>
</section>やってはいけない例
- カードの中にカードを入れる(区切りは線か ac-section で)
<div class="ac-card"><div class="ac-card">…</div></div> - 大きな影・グラデーションで浮かせる
.my-card { box-shadow: 0 20px 40px …; background: linear-gradient(…); }
ボタン
主ボタン(--primary)は 1 画面に 1 つ。取り消せない操作は --danger。押すと少し沈み、キーボードで選ぶと青い枠が出ます。アイコンだけのボタンには必ず title と ac-sr-only の文字を付けます。
種類
<button class="ac-btn">標準</button>
<button class="ac-btn ac-btn--primary">保存</button>
<button class="ac-btn ac-btn--danger">削除</button>
<button class="ac-btn ac-btn--danger-text">取り消す</button>
<button class="ac-btn ac-btn--outline">枠だけ</button>
<button class="ac-btn ac-btn--ghost">文字だけ</button>
<button class="ac-btn" disabled>使えない</button>大きさ・アイコン
<button class="ac-btn ac-btn--sm">小さい</button>
<button class="ac-btn"><svg class="ac-btn__icon ac-btn__icon--left" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#download"></use></svg>Excel</button>
<button class="ac-btn ac-btn--icon" title="編集"><svg class="ac-btn__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#pencil"></use></svg><span class="ac-sr-only">編集</span></button>
<button class="ac-btn ac-btn--icon-border" title="削除"><svg class="ac-btn__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#trash-2"></use></svg><span class="ac-sr-only">削除</span></button>ボタンの組
<div class="ac-btn-group" role="group" aria-label="範囲">
<button class="ac-btn ac-btn--primary" aria-pressed="true">自分</button>
<button class="ac-btn">部署</button>
<button class="ac-btn">全社</button>
</div>やってはいけない例
- 主ボタンを 1 画面にいくつも並べる・色だけで意味を伝える
<button class="ac-btn ac-btn--primary">保存</button><button class="ac-btn ac-btn--primary">印刷</button> - 文字のないアイコンボタン(読み上げで分からない)
<button class="ac-btn ac-btn--icon"><svg>…</svg></button>
入力
項目は ac-field(ラベル・入力欄・説明・エラー)。必須は is-required、エラーは has-error と ac-field__error。スマホでは入力欄の文字が 16px になり、入力時に画面が拡大されません。
入力欄・選択・複数行
<div class="ac-grid ac-grid--2">
<div class="ac-field is-required">
<label class="ac-field__label" for="d-name">案件名</label>
<input class="ac-input" id="d-name" value="テスト商事 - 新規導入">
<div class="ac-field__help">例: 顧客名 - 内容</div>
</div>
<div class="ac-field has-error">
<label class="ac-field__label" for="d-amt">金額</label>
<input class="ac-input" id="d-amt" value="abc" aria-invalid="true" aria-describedby="d-amt-e">
<div class="ac-field__error" id="d-amt-e">数字で入力してください。</div>
</div>
<div class="ac-field">
<label class="ac-field__label" for="d-st">フェーズ</label>
<div class="ac-select-wrap"><select class="ac-select" id="d-st"><option>見込み</option><option>提案</option></select></div>
</div>
<div class="ac-field">
<label class="ac-field__label" for="d-q">検索</label>
<input class="ac-search" id="d-q" type="search" placeholder="顧客・案件を検索">
</div>
<div class="ac-field ac-span-2">
<label class="ac-field__label" for="d-memo">メモ</label>
<textarea class="ac-textarea" id="d-memo"></textarea>
</div>
</div>チェック・ラジオ・スイッチ
<div class="ac-row ac-row--wrap ac-row--lg">
<label class="ac-check"><input type="checkbox" checked><span>メールで知らせる</span></label>
<label class="ac-radio"><input type="radio" name="d-r" checked><span>四半期</span></label>
<label class="ac-radio"><input type="radio" name="d-r"><span>半期</span></label>
<label class="ac-switch"><input type="checkbox" role="switch" checked><span class="ac-switch__track"></span><span>自動承認</span></label>
</div>横並びの項目(ac-field--inline)
<div class="ac-field ac-field--inline">
<label class="ac-field__label" for="d-in">担当</label>
<input class="ac-input" id="d-in" value="山田 太郎">
</div>やってはいけない例
- ラベルを placeholder だけで済ませる(入力すると消えて分からない)
<input class="ac-input" placeholder="案件名"> - エラーを赤い枠だけで知らせる(理由と直し方を文字で)
<input class="ac-input is-invalid">
表
数字は is-num で右揃え・等幅。横に長い表は ac-table-wrap で横スクロール。スマホでカードの並びにするときは ac-table--cards と各セルの data-label。
一覧
| 案件名 | フェーズ | 金額 | 受注予定日 |
|---|---|---|---|
| テスト商事 - 新規導入 | 提案 | ¥1,200,000 | 2026/11/30 |
| テスト物流 - 追加 | 受注 | ¥480,000 | 2026/10/31 |
<div class="ac-table-wrap">
<table class="ac-table ac-table--cards">
<thead><tr><th>案件名</th><th>フェーズ</th><th class="is-num">金額</th><th>受注予定日</th></tr></thead>
<tbody>
<tr><td data-label="案件名"><a href="#">テスト商事 - 新規導入</a></td><td data-label="フェーズ"><span class="ac-badge ac-badge--info">提案</span></td><td class="is-num" data-label="金額">¥1,200,000</td><td data-label="受注予定日">2026/11/30</td></tr>
<tr><td data-label="案件名"><a href="#">テスト物流 - 追加</a></td><td data-label="フェーズ"><span class="ac-badge ac-badge--success">受注</span></td><td class="is-num" data-label="金額">¥480,000</td><td data-label="受注予定日">2026/10/31</td></tr>
</tbody>
</table>
</div>やってはいけない例
- 数字を左揃え・桁がそろわない字体のまま並べる
<td>¥1,200,000</td>
表示(バッジ・タグ・アバター・KPI・0 件・進み具合)
色は意味があるときだけ。状態の色(--success 緑・--warning 黄・--danger 赤)は会社の色に関係なく固定です。
バッジ・タグ・アバター
<span class="ac-badge">下書き</span>
<span class="ac-badge ac-badge--info">提出済</span>
<span class="ac-badge ac-badge--success">入金済</span>
<span class="ac-badge ac-badge--warning">期限が近い</span>
<span class="ac-badge ac-badge--danger">期限超過</span>
<span class="ac-tag">展示会</span>
<span class="ac-avatar ac-avatar--sm">山</span>
<span class="ac-avatar">佐</span>KPI
<div class="ac-grid ac-grid--3">
<div class="ac-kpi"><span class="ac-kpi__label">今月の受注額</span><span class="ac-kpi__value">1,320<small>万円</small></span><span class="ac-kpi__delta is-up">前月比 +12%</span></div>
<div class="ac-kpi"><span class="ac-kpi__label">期限切れの ToDo</span><span class="ac-kpi__value">5<small>件</small></span><span class="ac-kpi__delta is-down">前週比 +2 件</span></div>
<div class="ac-kpi"><span class="ac-kpi__label">達成率</span><span class="ac-kpi__value ac-num">31%</span><div class="ac-progress"><span class="ac-progress__bar" style="width: 31%"></span></div></div>
</div>0 件の案内
<div class="ac-empty">
<svg class="ac-empty__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#inbox"></use></svg>
<div class="ac-empty__title">承認待ちはありません</div>
<div>申請が届くとここに出ます。</div>
</div>ラベルと値(ac-dl)・リスト
- 顧客番号
- C-000123
- 住所
- 東京都千代田区丸の内 9-9-9
- 見積書 Q-2026-0001
- 請求書 INV-2026-0003
<dl class="ac-dl">
<dt>顧客番号</dt><dd class="ac-num">C-000123</dd>
<dt>住所</dt><dd>東京都千代田区丸の内 9-9-9</dd>
</dl>
<ul class="ac-list ac-mt-md">
<li class="ac-list__item"><span class="ac-list__main">見積書 Q-2026-0001</span><span class="ac-list__meta">10/18</span></li>
<li class="ac-list__item"><span class="ac-list__main">請求書 INV-2026-0003</span><span class="ac-list__meta">09/23</span></li>
</ul>やってはいけない例
- 紫や蛍光色・グラデーションのバッジ、絵文字で状態を表す
<span style="background: linear-gradient(…)">完了</span>
通知(帯のお知らせ・トースト)
画面の中の大事な知らせは ac-alert、操作の結果は ac-toast(JS の AgentCSS.toast() でも出せます)。
帯のお知らせ
<div class="ac-stack ac-stack--sm">
<div class="ac-alert ac-alert--info" role="status"><svg class="ac-alert__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#info"></use></svg><div class="ac-alert__body">10 月分は 11/10 に自動で締めます。</div></div>
<div class="ac-alert ac-alert--success" role="status"><svg class="ac-alert__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#circle-check"></use></svg><div class="ac-alert__body">発行しました。</div></div>
<div class="ac-alert ac-alert--warning" role="status"><svg class="ac-alert__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#triangle-alert"></use></svg><div class="ac-alert__body">支払期限を過ぎた請求書が 1 件あります。</div></div>
<div class="ac-alert ac-alert--danger" role="alert"><svg class="ac-alert__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#circle-x"></use></svg><div class="ac-alert__body">保存できませんでした。入力を確かめてください。</div></div>
</div>トースト
<button class="ac-btn" data-dc-toast="保存しました">トーストを出す</button>
<div class="ac-toast ac-toast--success ac-mt-md" role="status" style="animation: none"><div class="ac-toast__body">保存しました</div></div>重ね(ダイアログ・横から出る枠・ツールチップ・開閉)
浮かぶものだけ 2 段目の影。ダイアログは data-ac-modal を付けると外側のクリックと Esc で閉じ、フォーカスは中に留まります。スマホでは入力のダイアログは全画面。
ダイアログ
削除の確認
<button class="ac-btn" data-ac-open="d-modal">ダイアログを開く</button>
<div class="ac-modal" id="d-modal" data-ac-modal role="dialog" aria-modal="true" aria-labelledby="d-modal-t">
<div class="ac-modal__dialog">
<header class="ac-modal__header"><h2 class="ac-modal__title" id="d-modal-t">削除の確認</h2></header>
<button class="ac-btn ac-btn--icon ac-modal__close" data-ac-close title="閉じる"><svg class="ac-btn__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#x"></use></svg><span class="ac-sr-only">閉じる</span></button>
<div class="ac-modal__body">案件「テスト商事 - 新規導入」を削除しますか? ごみ箱から戻せます。</div>
<footer class="ac-modal__footer"><button class="ac-btn" data-ac-close>キャンセル</button><button class="ac-btn ac-btn--danger" data-ac-close>削除</button></footer>
</div>
</div>ツールチップ・開閉
<span class="ac-row"><span>確度</span><span tabindex="0" data-ac-tooltip="受注できそうな見込み(%)。フェーズで自動で入ります。"><svg class="ac-icon ac-muted" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#info"></use></svg></span></span>
<div class="ac-collapse is-open ac-mt-md">
<h3 class="ac-collapse__title"><button class="ac-collapse__toggle" data-ac-toggle="collapse" aria-expanded="true"><svg class="ac-collapse__icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#chevron-down"></use></svg>取引の形</button></h3>
<div class="ac-collapse__body">請求先・紹介者・受注日</div>
</div>図(時系列・カレンダー)
活動の記録は ac-timeline、営業カレンダーは ac-calendar(休みは is-holiday、今日は is-today)。
時系列
- 10/20 14:00訪問要件を確認した。
- 10/24見積書を送る
<ol class="ac-timeline">
<li class="ac-timeline__item is-done"><div class="ac-timeline__time">10/20 14:00</div><div class="ac-timeline__title">訪問</div><div class="ac-timeline__body">要件を確認した。</div></li>
<li class="ac-timeline__item"><div class="ac-timeline__time">10/24</div><div class="ac-timeline__title">見積書を送る</div></li>
</ol>カレンダー
<div class="ac-calendar" role="grid" aria-label="2026年11月">
<div class="ac-calendar__dow is-holiday">日</div>
<div class="ac-calendar__dow">月</div>
<div class="ac-calendar__dow">火</div>
<div class="ac-calendar__dow">水</div>
<div class="ac-calendar__dow">木</div>
<div class="ac-calendar__dow">金</div>
<div class="ac-calendar__dow">土</div>
<div class="ac-calendar__day"><span class="ac-calendar__num">1</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">2</span></div>
<div class="ac-calendar__day is-holiday"><span class="ac-calendar__num">3</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">4</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">5</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">6</span></div>
<div class="ac-calendar__day is-holiday"><span class="ac-calendar__num">7</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">8</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">9</span></div>
<div class="ac-calendar__day is-today"><span class="ac-calendar__num">10</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">11</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">12</span><span class=ac-calendar__event>打ち合わせ</span></div>
<div class="ac-calendar__day"><span class="ac-calendar__num">13</span></div>
<div class="ac-calendar__day is-holiday"><span class="ac-calendar__num">14</span></div>
</div>会社の見た目(色 6 種・フォント 3 系統・文字の段・角・影)
会社ごとに差し替えてよいのは次のトークンだけです(自由な CSS は足さない)。色: --ac-brand(ブランド色)・--ac-brand-2(2 つ目の色)・--ac-accent(アクセント)・--ac-header-bg(ヘッダーの地)・--ac-btn-primary-bg(ボタン)・--ac-link(リンク)。フォント: --ac-font-family(本文)・--ac-font-family-heading(見出し)・--ac-font-family-num(数字)。文字の段は data-ac-density / data-ac-theme="relaxed"、角は data-ac-radius="subtle"、影は data-ac-shadow="none"。文字の色との組み合わせはコントラスト比 4.5:1 以上にします。状態の色(赤・黄・緑)は変えられません。
ヘッダー(地の色・アプリの色の細い帯)
<header class="ac-header ac-header--stripe">
<strong>営業</strong>
<a href="#">案件</a><a href="#">見積</a>
<span class="ac-header__muted ac-small">ヘッダーの地 --ac-header-bg / 帯 --ac-app-color</span>
</header>アクセント・分類の色
<span class="ac-badge ac-badge--accent">おすすめ</span>
<span class="ac-badge ac-badge--solid ac-badge--accent">新着</span>
<span class="ac-cat ac-cat--sales ac-cat-tile"><svg class="ac-icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#house"></use></svg></span>
<span class="ac-cat ac-cat--money ac-cat-tile"><svg class="ac-icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#download"></use></svg></span>
<span class="ac-cat ac-cat--people ac-cat-tile"><svg class="ac-icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#users"></use></svg></span>
<span class="ac-cat ac-cat--team ac-cat-tile"><svg class="ac-icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#calendar"></use></svg></span>
<span class="ac-cat ac-cat--base ac-cat-tile"><svg class="ac-icon" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#settings"></use></svg></span>フォント 3 系統
見出し(--ac-font-family-heading)
本文(--ac-font-family): 取引先・案件・見積書の本文です。
¥1,234,567.89
数字(--ac-font-family-num)
<div class="ac-stack ac-stack--sm">
<h3 class="ac-h2">見出し(--ac-font-family-heading)</h3>
<p>本文(--ac-font-family): 取引先・案件・見積書の本文です。</p>
<p class="ac-num ac-h2">¥1,234,567.89</p>
<p class="ac-muted ac-small">数字(--ac-font-family-num)</p>
</div>角と影の段
<div class="ac-row ac-row--wrap">
<button class="ac-btn" data-dc-toggle="acRadius:subtle">角: 標準 / 控えめ</button>
<button class="ac-btn" data-dc-toggle="acShadow:none">影: やわらかい / なし</button>
</div>やってはいけない例
- トークン以外の色で会社の色を足す・状態の色を会社の色に変える
.ac-badge--danger { background: #FF00AA; } - 白い文字が読めない明るいブランド色のまま使う(4.5:1 未満)
:root { --ac-brand: #FDE047; }
画面の外枠(版の表示・スマホの下のタブ・ロゴ)
全画面の下に版と推奨環境(ac-footer)。スマホの下のタブ(ac-bottom-nav)は役割ごとのよく使う 4 つ+その他。
画面の下
<footer class="ac-footer">
<span class="ac-footer__item ac-footer__start">推奨環境: Chrome・Edge の最新版・PC は 1280×800 以上</span>
<span class="ac-footer__item"><a href="#">JirikiAI v2.0.0</a></span>
<span class="ac-footer__item">AgentCSS v1.0.0</span>
</footer>ロゴ
<span class="ac-logo" style="--ac-logo-size: 28px"><svg class="ac-logo__mark" viewBox="0 0 64 64" aria-hidden="true"><path class="ac-logo__j" d="M38 28 V44 A13 13 0 0 1 12 44" stroke-width="11" stroke-linecap="round"/><path class="ac-logo__spark" d="M38 1 Q40.5 10 50 12 Q40.5 14 38 23 Q35.5 14 26 12 Q35.5 10 38 1 Z"/></svg><span>Jiriki<span class="ac-logo__ai">AI</span></span></span>クリーンな画面のルール
- グラデーション・紫や蛍光色・大きな影は使わない。平らな面と細い線で区切る。
- 絵文字・飾りの記号は使わない。意味のあるアイコン(Lucide)だけ、同じ意味には同じアイコン。
- カードの中にカードを入れない。角丸は部品 4px・カード 6px まで。
- 「ようこそ!」などの大見出し・説明文の繰り返しをしない。画面名と件数だけ。
- トークン以外の色・余白を書かない(lint.py が見つけます)。
- 機械的な言い回し(「〜を活用して」「シームレスに」)を使わない。画面の言葉の辞書に合わせる。
- WCAG 2.2 AA: 文字のコントラスト 4.5:1 以上、キーボードだけで全操作、フォーカスの青い枠を消さない。