レガシーUIをAsterixに置き換えて開発時間を短縮する方法
既存UIとAsterixの共存
既存のプロジェクトに新しいデザインシステムを丸ごと導入するのは、トラブルの元になりがちです。レイアウトが崩れたり、機能が複雑に絡み合ったりするものです。メタ(Meta)が8年間で13,000以上のアプリを管理しながら開発したStyleXエンジンを使えば、既存のCSS-in-JSと安全に共存できます。
スタイルが混ざらないように、ネームスペースを分離しましょう。
- @astryxdesign/buildの設定を変更し、ライブラリのソースは .astryx- 接頭辞で、既存のコードは .x- 接頭辞でコンパイルされるようにします。
- CSSの @layer を使用し、layers.css を最上段に置いて [reset, astryx-base, astryx-theme, product] の順で優先順位を設定してください。
- 原子UI(Atomic UI)、レイアウト、複合モジュールの順に、移行範囲を決めたマトリックスを作成します。
この隔離構造を使えば、全体をリファクタリングするよりも開発時間を40%削減できます。
デザイナーとのトークン同期
FigmaのデザイントークンとAsterixのテーマ設定が一致していないと、視覚的な誤差が生じ続けます。開発者が手動でコードを修正するのではなく、JSONベースのパイプラインで解決しましょう。
- リポジトリの最上位に、色、タイポグラフィ、間隔を定義したJSONスキーマを配置します。
- デザイナーがFigmaトークンをプッシュした際、GitHub Actionsが自動的に theme.ts を再生成するようにCI/CDを構成します。
- @stylexjs/eslint-plugin を設定し、インラインでの数値入力をブロックします。
このプロセスが終われば、開発者はハードコーディングの代わりに var(--spacing-3) のようなトークン変数だけを使うようになります。UIの断片化が解消され、自動補完のおかげでミスも減ります。
ドメインコンポーネントの自動化
繰り返されるビジネスロジックやUIの組み立てを減らさなければ、新規ページ開発のスピードは上がりません。複雑なモジュールほど、レンダリング領域と状態管理ロジックを分離しましょう。
- データフェッチと状態制御は、純粋なReactフックに分離して管理してください。
- Asterix CLIの swizzle コマンドを使用して、主要コンポーネントをローカルディレクトリに展開し、制御権を確保します。
- CLIテンプレートとカスタムスクリプトを連携させ、API仕様に合わせてページマークアップとフックが自動生成されるようにします。
こうすれば、ページを1つ作るたびにコンポーネントをゼロから作成する時間を、毎回2時間ずつ短縮できます。
ビルドタイムのパフォーマンス管理
ランタイムにスタイルを注入する方式は、コンポーネントが増えるほどパフォーマンスを低下させます。StyleXはビルド時にアトミックなCSSを抽出し、バンドルサイズを縮小します。メタの開発チームのデータによると、静的コンパイル導入後、スタイルバンドルの容量は80%減少し、レンダリング効率は30%向上しました。
- vite.config.ts の astryxStylex オプションで runtimeInjection: false を設定し、静的CSSの抽出を強制します。
- rollupOptions で @astryxdesign と @stylexjs を別々のチャンクに分離します。
- Chrome開発者ツールのPerformanceパネルでINP指標を確認し、50ms以上かかるスタイル計算のボトルネックを見つけ出します。
静的ビルドに転換すれば、大規模なサービスでもランタイムのオーバーヘッドなしに安定した画面を表示できます。