summaryrefslogtreecommitdiff
path: root/Documentation/source/ja/frontend.rst
blob: a85ae2256ed8ad3641b45bc69d7de64d2e8b77d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
フロントエンド
==============

ページ責務
----------

.. list-table::
   :header-rows: 1
   :widths: 22 34 44

   * - ルート
     - 主なファイル
     - 責務
   * - ``/``
     - ``src/app/(main)/(home)/page.tsx``
     - Hero、最新記事、Newsletter CTA を含むホーム。
   * - ``/posts``
     - ``src/app/(main)/(home)/posts/page.tsx``
     - 公開済み記事のページ付き一覧。
   * - ``/posts/[slug]``
     - ``src/app/(main)/(home)/posts/[slug]/page.tsx``
     - 記事詳細、リッチテキスト、メタデータ、共有、コメント。
   * - ``/tags``
     - ``src/app/(main)/(home)/tags/page.tsx``
     - タグ一覧と記事数。
   * - ``/tags/[tag]``
     - ``src/app/(main)/(home)/tags/[...slug]/page.tsx``
     - タグで絞り込んだ記事一覧。
   * - ``/login``
     - ``src/app/(main)/(auth)/login/page.tsx``
     - OAuth ログイン入口。

UI 原則
-------

* 読みやすさを優先し、タイポグラフィ、行幅、コントラストを調整する。
* 記事、タグ、検索、テーマ切替、アカウント操作にすぐアクセスできるようにする。
* 点線ボーダー、角マーカー、控えめなモーションという既存の視覚言語を保つ。
* モバイルとデスクトップで同じ情報階層を維持する。

コンポーネント規約
------------------

新しいコンポーネントを作る前に ``src/components/ui`` と既存ページの実装を確認します。共通コンポーネントは正規化された props を受け取り、データ取得は Server Component または ``src/lib`` helper に置きます。アイコンのみのボタンには必ずアクセシブルな名前を付けます。

アクセシビリティ
----------------

カスタム操作にはキーボードフォーカスを残します。アイコンボタンやリンクには読み上げ可能な名前を付けます。ライトテーマとダークテーマの両方で十分なコントラストを保ち、フォームは空・読み込み・成功・エラー状態を扱います。