使い方ガイドへスキップ
apple-design作者 Emil Kowalski

Apple Design スキル。

Claude Code と Codex 用の UX リサーチスキル:Apple のジェスチャー、物理的なモーション、空間的な階層をウェブ向けに翻訳します。

  • UX & Research
  • UI コード
emilkowalski/skills · skills/apple-design/SKILL.mdSKILL.md
--- name: apple-design description: Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style … --- ## The Core Idea ## 1. Response — kill latency ## 2. Direct manipulation — 1:1 tracking ## 3. Interruptibility — the single most important principle ## 4. Behavior over animation — use springs ## 5. Velocity handoff — the seam between drag and animation
2026年9月14日にアップストリームファイルから読み取られたフロントマターとセクション見出し · 全22,559文字

01 できること

Claude CodeおよびCodexでapple-designスキルが行うこと

概要、ワークフロー、出力。いずれもスキルの SKILL.md から読み取った内容です。

SKILL.md より2026年9月14日読取 · 実行記録ではありません

スキル自身の言葉で

Apple DesignはAppleのWWDCインターフェーストーク、主にDesigning Fluid Interfaces(WWDC 2018)を、流動的で物理的なウェブUIを構築するためのルールへと蒸留したものです。ドラッグ、スワイプ、シート、スプリング、モメンタム、中断可能なトランジション、半透明マテリアルと奥行き、タイポグラフィ(オプティカルサイジング、トラッキング、リーディング)、そしてモーション低減時の挙動といった、ジェスチャー駆動のインターフェースに取り組むデザイナーおよび開発者を対象としています。

一貫しているのは、モーションは画面上の現在値から始まり、ユーザーの速度を継承し、モメンタムを先に投影し、いつでもつかんで元に戻せるべきだという点です。スプリングは固定時間のアニメーションに代わるものであり、本質的に中断可能で速度を感知するため使われます。このスキルは、共通の語彙として使われるAppleの8つのデザイン原則で締めくくられます。

生成されるもの

  • :active時に100msのease-outトランジションでコントロールをスケールする、プレスフィードバック用CSS。
  • クリティカルダンピングのデフォルトと、モメンタムバウンスのバリアントを並べて示すモーションスプリング呼び出し。
  • デフォルトのdecelerationRateを0.998として、モメンタム投影を実装するproject()ヘルパー。
  • 半透明ツールバーをブラーなしの単色背景に置き換える、透明度低減用CSS。
プロンプト例を見る ↗

仕組み

  1. 01
    ポインターダウンで応答する

    フィードバックはリリースではなくプレスに属します。押した瞬間にコントロールをハイライトし、入力パス上で本質的でないもの(約300msのタップ遅延を含む)はすべて不具合として扱います。

  2. 02
    ポインターを1:1で追従する

    要素の境界を出てもトラッキングが継続するように、キャプチャ付きの Pointer Events を使用してください。また、要素の中心にスナップするのではなく、ユーザーがどこを掴んだかを尊重してください。

  3. 03
    モーションを中断可能にする

    動いている要素は、飛んでいる最中でも掴んだり方向転換したりできる必要があります。ユーザーは現在のアニメーションが終わるのを待ってから操作をやり直す必要はないはずです。

  4. 04
    スプリングでモーションをモデル化する

    スプリングは目標を単に変更するだけで新しい入力を吸収できるため、モーションは連続したままになります。固定時間のスクリプトには再ターゲットする対象がありません。

  5. 05
    リリース時の速度を引き渡す

    ドラッグとアニメーションの間に切れ目が生じないように、リリース時のポインターの速度をスプリングに渡してください。API が相対速度を求める場合は、残り距離で正規化してください。

  6. 06
    モーメンタムを射影してからスナップする

    指を離した位置からスナップしないでください。スクロールの減速のように静止位置を射影し、その射影に最も近いスナップターゲットを選んでください。

02 適合性を確認

apple-design スキルを使用するタイミング

このような UX リサーチの場合は、Claude Code または Codex で apple-design スキルを使用します。適合性と制限は、スキル自身のファイルから引用しています。

適している場合

  • ドラッグ、スワイプ、シート、モーメンタム、中断可能なトランジションなど、ジェスチャー駆動の UI を構築またはレビューする場合。
  • ナビバー、ツールバー、シートが浮動する機能レイヤーとして振る舞う、半透明のマテリアルと奥行きに関する作業を行う場合。
  • サイズに応じてオプティカルサイジング、字送り、行送りを変化させる必要がある、サイズスケール上のタイポグラフィ作業を行う場合。
  • モーション低減、透明度低減、コントラスト増加が後付けではなくコンポーネントに組み込まれている、アクセシビリティのチェックを行う場合。
  • 意思決定を議論する際に、Apple のデザイン原則を明示的な共通言語として使いたいチーム向けです。

境界を知る

  • 事前にスクリプト化された、あるいは固定時間のアニメーション。ユーザーが要素に触れられるようになった時点で、このスキルはこれを禁止します。
  • 最終的なジェスチャーの状態しか報告しないレコグナイザー。フィードバックが依拠する連続的なトラッキング情報を破棄してしまうためです。
  • 固定の帯を占有し、半透明レイヤーの下にコンテンツをスクロールさせない、不透明なクロム。
  • 確認ダイアログをデフォルトの習慣として使うこと。このファイルでは、本当に破壊的で取り消せない操作にのみ確認ダイアログを限定しています。

提供すべきもの

  • ジェスチャーのコードとそのポインター履歴Pointer Events の実装を持ち込んでください。このスキルは、現在の点だけでなく setPointerCapture と短い速度・位置の履歴を前提としています。
  • 速度を再ターゲットできるスプリングライブラリWeb でのマッピングは Motion / Framer Motion を通じて行われ、このライブラリは再ターゲット時にも速度を引き継ぐ必要があります。すべてのスプリング実装がこれに対応しているわけではありません。
  • レビューしてほしい半透明のクロムツールバー、ナビバー、シートは、backdrop-filter によるブラーと半透明の背景を持つ半透明レイヤーとして構築され、コンテンツはその下をスクロールします。

03 スキルの内部

apple-design スキルが Claude Code と Codex に与えるルール

SKILL.md がエージェントに設定する 8 つの具体的な指示・既定値・制限 — 結果を変える部分です。

  1. デフォルトを臨界減衰スプリングにする

    ほとんどの UI は減衰 1.0 から始め、オーバーシュートなく落ち着くようにしてください。フリックやドラッグリリースのように、ジェスチャー自体にモーメンタムがあった場合に限り、減衰 0.8 前後のバウンスを加えてください。

  2. プレゼンテーション値からアニメーションする

    割り込み時には、要素の画面上のライブなtransformを読み取り、そこから新しいアニメーションを開始してください。論理値やターゲット値から開始すると、目に見えるジャンプが発生します。

  3. CSSトランジションでジェスチャーを駆動しない

    CSSトランジションと@keyframesは、動作中にスムーズに掴んで反転させることができないため、ジェスチャー駆動のモーションはスプリングライブラリで処理する必要があります。

  4. 2Dモーションを2つのスプリングに分割する

    2D距離に対する1つのスプリングではなく、独立したXとYのスプリングを実行してください。速度が異なると、軸が同期からずれます。

  5. Appleの投影法を使う(教科書の方法ではなく)

    物理学の教科書にあるv²/(2·decel)は、Appleが実際に採用しているものではありません。通常のスクロール感にはdecelerationRate 0.998の指数減衰形式を、より軽快な動きには0.99を使用してください。

  6. 反転を通じて速度をブレンドする

    ジェスチャーが反転する瞬間にあるアニメーションを別のものに切り替えると、速度の不連続、つまり壁のような感覚が生まれます。現在の速度から再ターゲットするスプリングライブラリを選んでください。

  7. 薄い半透明のサーフェスを重ねない

    マテリアルの重みは階層の読み取り方を決めます。重いマテリアルは構造的な領域を分離し、軽いマテリアルはインタラクティブな要素を強調します。薄い半透明のレイヤーを互いに重ねないようにしてください。

  8. すべてのサイズに1つのトラッキング値を使わない

    文字間隔(レタースペーシング)はサイズごとに異なります。大きなディスプレイテキストには負のトラッキングが望ましく、小さなテキストにはわずかに正のトラッキングが望ましいため、固定の文字間隔はどこかで不適切になります。

04 実際に使う

Claude Code または Codex に apple-design をインストールする

npx skills add コマンドを実行し、エージェントで最初のタスクを実行して、結果をチェックリストで確認します。

Claude Code、Codex、またはあなたのエージェントに apple-design を追加する

プロジェクトで実行してください。インストーラーが、どのエージェントに追加するかを尋ねます。

Terminal
npx skills add https://github.com/emilkowalski/skills --skill apple-design

skills/apple-design/SKILL.md用の汎用skills CLI形式です。リポジトリが独自のパスを文書化している場合があります。

スキルに最初の UX リサーチタスクを与える

スキル自身の用語で記述されています。角括弧の部分はご自身の内容に置き換えてください。

Starter prompt
I'm building a bottom sheet in [React] that users drag down to dismiss. It currently uses a CSS transition, so a flick snaps from wherever I released and the sheet can't be grabbed again while it's closing. Rework it with Pointer Events and a spring so it tracks the finger 1:1, hands off the release velocity, and projects momentum to pick the snap point.

出典:SKILL.md をスキル自身の用語に沿って記述。

最初の結果を確認

SKILL.md 自体が正しい結果として示しているもの:

  • 閉じている要素を動作中に再度掴み、閉じる動作を完了させずに指に追従することを確認してください。
  • ジェスチャーを反転させ、速度の不連続がないか確認してください。不連続があれば、再ターゲット時に速度がブレンドされていないことを意味します。
  • 実際の状況で実際の人々とテストしてください。モーションの判断は開発者のマシン上では成立しません。
  • モーションをスローモーションまたはフレームごとに再生してください。興味深い欠陥は通常速度では見えません。
  • 着地目標がリリース地点ではなく投影された終点から来ていることを確認してください。
  • 透明度低減バリアントを確認してください。半透明のサーフェスはより霜がかったもの、あるいは不透明なものになり、背景の不透明度が上がりブラーが下がるべきです。

OpenDesignではSKILL.mdリンクからapple-designをインポートしてください:Plugins → Add → Skill → Import from link、その後トップバーで選択します。

05 オープンソースで追跡可能

ソース、ライセンス、検証

このページの情報の出所と、最終確認日時です。

Repository
github.com/emilkowalski/skills ブランチ main
スキルファイル
skills/apple-design/SKILL.md 検証時にコンテンツチェックサムを記録。コミット d23d7f8
License
MIT LICENSE より。
リポジトリスター数
37,516 GitHub スナップショットは 2026-09-14 に emilkowalski/skills リポジトリ全体に対して取得されました。このリポジトリには、このカタログ内に 9 つのスキルが含まれています。apple-design の評価や使用回数ではありません。
OpenDesign により検証済み
2026-09-14 ソースファイル、パス、ライセンステキスト、スター数を確認済み。OpenDesign 本体にはバンドルされていません(2026-08-28 確認)。このページには実行記録がありません。

SKILL.md の中身

  1. 1. レスポンス — レイテンシーを排除するポインターダウンで応答し、すべてのレイテンシーを検証し、インタラクション全体でフィードバックを継続させてください。
  2. 2. ダイレクトマニピュレーション — 1:1トラッキングコンテンツをポインターに固定し、グラブオフセットを尊重し、短い速度履歴を保持してください。
  3. 3. 中断可能性 ― 最も重要な原則入力を絶対にロックしないこと、表示中の値からアニメーションを開始すること、方向転換時に速度をブレンドすること、2Dスプリングを分割すること。
  4. 4. アニメーションよりビヘイビア ― スプリングを使用する物理演算の代わりにダンピング比とレスポンスを用います。ダンピングはデフォルト1.0、バウンスはモメンタム時のみ使用します。
  5. 5. 速度の受け渡し ― ドラッグとアニメーションの境目リリース時の速度をスプリングに渡し、必要に応じて残り距離で正規化します
スキル自身による説明
「Apple のインターフェースデザインと流動的で物理的なモーションへのアプローチを、ウェブ向けに翻訳したものです。ジェスチャー駆動の UI、スプリングアニメーション、ドラッグ/スワイプ/シートのインタラクション、モーメンタムと中断可能なトランジション、半透明のマテリアルと奥行き、タイポグラフィ(オプティカルサイジング、トラッキング、行送り)、reduced-motion、または Apple スタイルのインターフェースの背景にあるデザイン基盤(フィードバック、空間的一貫性、抑制)を構築またはレビューする場合に使用してください。」

SKILL.md のフロントマター説明です。完全なファイルは約 22,559 文字です。GitHub で完全なファイルを読む。

Apple Design

実際の UX リサーチタスクで apple-design を実行します。

OpenDesign をダウンロードし、SKILL.md リンクから apple-design をインポートし、上記のプロンプトを貼り付けて、結果を読む前にプランを確認してください。

ターミナル
npx skills add https://github.com/emilkowalski/skills --skill apple-design

OpenDesign デスクトップ版

ひとつのデザインシステムで、すべての制作物をブランドらしく

完全な Vibe Design Workspace で、同じブランドルールを Web サイト、スライド、操作できるプロトタイプ、ダッシュボード、画像、HTML 動画に展開できます。ローカルの Codex、Claude Code、Cursor などを接続して無料で制作しましょう。

  • Web、スライド、プロトタイプ、ダッシュボード、画像、動画
  • 140+ のデザインシステムと完全なテンプレート/スキルライブラリ
  • ローカル Codex と 21+ のコーディングエージェントを接続 · 無料
無料ダウンロード

macOS と Windows に対応