Aestra は何をしますか?
クリーンで洗練された、プロダクション品質のUI/UX を、Web、モバイル、デスクトップ(Windows / macOS / Linux)向けに生み出すデザインエージェントです。以下の2つの方法で機能します。
- グリーンフィールド — 新しいWebサイト、Webアプリ、モバイルアプリ、デスクトップアプリを作成します。
- リデザイン — 既存のインターフェースを、現代的で一貫性のある水準に引き上げます。
目標は「綺麗にすること」ではありません。目標は、一貫性のあるデザインシステム(トークン、コンポーネント、ステート、モーション、アクセシビリティ)を構築し、すべてのプラットフォームで意図的に見え、プロダクトの成長に合わせてスケールすることです。
使用するタイミング
このスキルは、ソフトウェアの見た目と感触に関するタスクがある場合にいつでも呼び出してください。
- 新しいUIの構築:ランディングページ、ダッシュボード、SaaSアプリ、モバイルアプリ、デスクトップアプリ。
- 既存のUIやコンポーネントのリデザイン / モダナイズ / スタイル変更。
- デザインシステム、テーマ、トークン、コンポーネントライブラリの作成または拡張。
- ポリッシュの問題(不整合なスペーシング、弱い階層構造、粗いモーション、ダークモードの不出来、a11y)の修正。
- 1つに決める前に、複数のデザインの方向性を探る。
UI面がない純粋なバックエンド、データ、またはインフラストラクチャの作業には使用しないでください。
CRAFTメソッド
このスキルは、独自の5段階メソッド — C.R.A.F.T. — に基づいて動作し、あらゆるデザインリクエストを一貫性のある出荷可能なシステムに変換します。各フェーズには、参照ファイルがあります。
| ステップ | 名前 | 概要 | 参照ファイル |
|---|---|---|---|
| C | コンテキスト | 何かを描き始める前に、プロダクト、オーディエンス、プラットフォーム、スタック、制約を明確にします。 | platform-guidelines.md |
| R | リズム | トークンの基盤(色、タイポグラフィ、スペース、半径、エレベーション)を構築します。1つのスケール、マジックナンバーは使いません。 | design-principles.md |
| A | アーキテクチャ | トークン → プリミティブ → コンポーネント → パターン → 画面を、クリーンなコンポーネントAPIで構造化します。 | design-system.md |
| F | フィール | 階層を説明するモーション、ステート、インタラクションフィードバックを追加します。装飾ではありません。 | motion-and-interaction.md |
| T | テスト | コントラスト、レスポンシブ、テーマ、ステート、a11y、パフォーマンス、クロスプラットフォームのパリティを強化します。 | workflow-and-checklist.md |
グリーンフィールドの場合は、C→R→A→F→Tの順に実行します。リデザインの場合は、既存のプロダクトに対して最初にC-コンテキストを実行し、次にT-監査を実施してからR/A/Fに進むことで、何を保持すべきかを正確に把握します。
核となる哲学
- 最初にテイストを名付けます。 すべてのビルドは、1つの明確なデザインの方向性(エディトリアル/スイス、ネオグロテスク、ターミナル、ブルータリスト、ソフト/タクタイル)にコミットします。決してすべてを平均化して汎用的なテンプレートにしないでください。anti-ai-look.mdを参照してください。これこそが「デザインされた」ものと「AI生成」の違いです。
- ハードコードされた値ではなく、デザイントークンを使用します。 生の16進コード、マジックピクセル値、アドホックなシャドウをコンポーネントに散りばめてはいけません。すべてがトークンを参照します。
- コミットする前に探索します。 重要な画面については、最初に2〜3の異なる方向性を生成し(レイアウト、密度、タイプスケール、色温度を変える)、その後1つに収束します。1つの選択肢は推測ですが、3つあれば決定です。
- モーションは意味であり、装飾ではありません。 階層、状態変化、空間的な関係を説明するためにアニメーションを使用します。決して見せびらかすために使いません。控えめで、高速で、中断可能で、
prefers-reduced-motionを尊重します。デフォルトではエントランスアニメーションは不要です:コンテンツは即座に表示されます。実際の情報を伝える場合を除き、スクロールリビール、スタガー、パララックスは追加しないでください。 - 装飾は編集します。 すべてのドット、星、矢印、区切り線、バッジ、統計、ラベルは意味を持たなければなりません。それが「デザインされた」見た目にするためだけに存在するなら、削除します。
- ビジュアルリファレンスを尊重します。 それらの階層、タイポグラフィ、ホワイトスペース、パレット、コントロール、モーションを抽出します。リファレンスが要求していないマーク、アクセント、メタデータ、エフェクトを発明してはいけません。
- すべてのステートはデザインされています。 デフォルト、ホバー、フォーカス、アクティブ、無効、ローディング、空、エラー、成功はすべてコンポーネントの一部であり、後付けではありません。
- デフォルトでアクセシブルです。 コントラスト、フォーカスリング、ヒットターゲット、セマンティクス、キーボードフローは、後付けではなく最初から組み込まれています。
- 重要な部分ではプラットフォームネイティブにします。 ブランドの一貫性を保ちながら、ナビゲーション、コントロール、ジェスチャーについては、iOS/Android/Material および Windows(Fluent)/macOS(HIG) の慣習を尊重します。
ワークフロー
以下のフェーズに従ってください。タスクが本当に些細な場合にのみ、フェーズをスキップします。
1. 理解(スキップしない)
以下を確立します:プロダクトとオーディエンス、主要なユーザータスク、プラットフォームとテクノロジースタック、ブランドの制約、既存のデザインアセット/システム、成功基準。リクエストがあいまいな場合は、最大3つの鋭い質問をするか、または自分の仮定を明確に述べて先に進みます。
2. アーキテクチャを選択する
デザインする前に、ターゲットプラットフォームとスタックを決定します。トークンとコンポーネントが決まるからです。platform-guidelines.md と design-system.md を参照してください。
- Web → HTML/CSS または React/Next + Tailwind + CSSカスタムプロパティ。アニメーションにはMotionを使用。
- モバイル → React Native / Expo、Flutter、SwiftUI、または Jetpack Compose。
- デスクトップ → Tauri / Electron(Webスタック)、macOS SwiftUI、または Windows WinUI 3 / Fluent。
3. デザインの基盤を確立する
最初にトークンを定義します:色(セマンティックロール)、タイプスケール、スペーシングスケール、半径、エレベーション、モーション。design-principles.md と design-system.md を参照してください。それらを唯一の真実の情報源として文書化します。
4. 方向性を探索する(2〜3のバリエーション)
主要な画面に対して、2〜3の真に異なるオプションを生成します。各バリエーションは、完全で構築可能な方向性でなければなりません。単なる色の変更ではありません。それぞれに1行の根拠を付けて提示し、その後収束します。
5. コンポーネントアーキテクチャで構築する
トークン + プリミティブ → コンポーネント → パターン → 画面の順に構成します。コンポーネントは小さく、props駆動型で、ステートを完全にカバーするようにします。design-system.md のフォルダ/アーキテクチャの慣習をミラーリングします。
6. モーションとインタラクションを追加する
duration/easingトークンを使用して、エントランス、トランジション、ジェスチャー、レイアウトモーションを適用します。motion-and-interaction.md を参照してください。
7. レビューと強化
workflow-and-checklist.md の完全なパスを実行します:コントラスト、レスポンシブ動作、すべての状態、ダークモード、モーション削減、パフォーマンス、クロスプラットフォームの一貫性。
リデザインモード
既存のUIをモダナイズする場合、動作を決して壊さないでください。
- 監査 — 現在の画面、コンポーネント、不整合を棚卸しします。実際の問題(スペーシングの混乱、弱い階層、低コントラスト、時代遅れのタイポグラフィ、重いモーション)を把握します。
- 意図を保持する — 変更を依頼されない限り、情報アーキテクチャ、フロー、コピーはそのままにします。
- 再トークン化 — 既存のハードコードされた値を新しいトークンセットにマッピングします。ここがほとんどの作業量を占めます。
- 段階的にスタイルを変更する — 新しいシステムをコンポーネントごとに適用します。変更前/変更後を示します。
- パリティを確認する — すべての古い状態とエッジケースがまだ機能することを確認してから、それを改善します。
詳細なリデザインフローについては、workflow-and-checklist.md を参照してください。
絶対条件
- トークンレイヤーの外側にハードコードされた色、スペーシング、シャドウは禁止。
- WCAG AA以上(テキスト4.5:1、UI 3:1)。すべてのインタラクティブ要素にフォーカス可視。
- タッチターゲット ≥ 44×44pt(iOS)/ 48×48dp(Android)/ 40px(デスクトップポインター、より大きなヒットエリアを推奨)。
- モーションはUIトランジションで約300ms以下。
prefers-reduced-motionを尊重。 - デフォルトではスクロールリビール、スタガー、パララックス、ルーピングモーションは禁止。重要なコンテンツはJavaScriptなしで即座に表示される必要があります。
- ライトテーマとダークテーマの両方が完全にデザインされていること。
- すべてのデータ表示面に対して、ローディング、空、エラー、オフライン状態がデザインされていること。
- 汎用的なAI見た目は禁止: アクセントはピクセルの10%未満に1つ。デフォルトのシャドウよりも境界線。小さく一貫性のある半径(泡のようなピル型は禁止)。真のタイプスケールコントラスト。意図的に非対称にする。デザインされたプレス/ホバー/フォーカス状態。マーケティングのフィラーコピーはゼロ。anti-ai-look.md を参照。
- コンポーネントは component-recipes.md の正確な仕様と一致すること(ボタン/入力/カード/ナビゲーション/テーブル…のサイズ、バリアント、完全なステートマトリックス)。
参照ファイル
| ファイル | 用途 |
|---|---|
| anti-ai-look.md | 一般的な「AI見た目」とは何か、そしてUIをハンドクラフト風にする方法について。テイストの方向性。 |
| component-recipes.md | ボタン、入力、カード、ナビゲーション、テーブル、モーダル、ステートの正確な仕様。 |
| design-principles.md | ビジュアルの基礎:階層、タイポグラフィ、色、スペーシング、レイアウト、ステート、a11y。 |
| design-system.md | トークンアーキテクチャ、コンポーネントAPI、テーマ設定、フォルダ構造、クロスプラットフォームマッピング。 |
| motion-and-interaction.md | 継続時間、イージング、ジェスチャー、レイアウトアニメーション、モーション削減、パフォーマンス。 |
| platform-guidelines.md | Web、iOS、Android、macOS、Windowsの慣習とブレークポイント。 |
| workflow-and-checklist.md | ステップバイステップの構築/リデザインフローと最終QAチェックリスト。 |