VNL Works
VNL Works
VNL Works
Docs

VNL Works Labs — 設計方針

ここは「パーツを増やしても破綻しない」ための約束事をまとめたページです。 Tailwind Motion Kit(mk)の思想をベースに、VNL Works のサイト群(VNL Works / Nyano / 将来の配布ページ)へ横展開できる形を想定しています。

現在の実装状況(概要)

Labs に登録されている部品は 22 件です。 (カテゴリ別の件数は以下)

フルスクリーンデモ: 1 件(/labs/demo
motion
11
ui
6
patterns
5
より詳細なチェックリストは、リポジトリ内の docs/IMPLEMENTATION_STATUS.md を参照してください。

1. モーションの“言語化”

部品が増えるほど、個別の気分で duration / easing / distance を決めるとサイトがバラつきます。 mk は CSS 変数(tokens)で「標準の速さ・距離・イージング」を定義し、各部品はそれを参照します。

  • • 速度: --mk-duration-* を基準にする
  • • 距離: --mk-distance-* を基準にする
  • • イージング: --mk-ease-* を基準にする

2. data属性で“挙動”を渡す

Tailwind の utility だけで済ませると「どれがアニメ用の値か」が埋もれがちです。 mk の部品は data-mk-* で挙動を宣言し、JS が必要な場合のみ最小限で反映します。

例: reveal で距離・遅延を指定 → data-mk-distance / data-mk-delay

3. “少しだけ”で効かせる

上品さは、派手さではなく「微細な一貫性」で生まれます。 目安として、移動量は 6〜20px 程度、duration は 160〜600ms 程度に抑えると扱いやすいです。

  • • Hover は lift(小さな浮き) + shadow の組み合わせが堅い
  • • Reveal は blur を多用しない(読みやすさ優先)
  • • “遊び”は局所的に。全ページで bounce すると疲れます

4. アクセシビリティ(必須)

mk は prefers-reduced-motion を尊重し、動きを最小化する設計です。 また、Dialog / Tabs などは ARIA / フォーカス操作を前提にしています。

  • • focus-visible のリングは “見える” 状態を守る
  • • Dialog は ESC / 背景クリック / フォーカストラップが必要
  • • Tabs は矢印キー(←→)と Home/End を扱えると丁寧

5. UI設計の観点(レポート参照)

添付のUIレポート(7階層モデル)を “実装側のチェックリスト” に落とし、以下の順で改善します。 まずは 知覚(Perception)構造(Architecture)を優先し、最後に 感情(Emotional) を足していきます。

  • • コントラスト / 余白 / 境界(カード、セクション)の統一
  • • 現在地が分かるナビ(/labs 配下なども active 表示)
  • • タップ領域 44×44px を下回らない(特にモバイル)
  • • モーションは理解の補助(移動量/速度を tokens で統一)
参考: docs/UI_ANALYSIS_REFERENCE.md / docs/UI_DESIGN_NOTES.md

6. 部品を追加する手順

  1. tailwind-motion-kit に CSS / JS を追加(必要なら tokens も追加)
  2. motion-labs/registry/itemsslug.json を追加
  3. motion-labs/registry/index.json に一覧項目を追記
  4. /labs/components に表示されることを確認
Tip: 各コンポーネント詳細ページの Download ZIP から、必要ファイルだけをまとめた zip を取得できます。 (配布・社内共有の導線としても使えます)

7. リポジトリ内ドキュメント

Tailwind Motion Kit の詳細は、リポジトリ内の markdown にまとまっています。

/tailwind-motion-kit/docs(概要 / 導入 / カタログ / カスタマイズ)