d48cda4081
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
2.7 KiB
2.7 KiB
このファイルは common/performance.md を Web 固有のパフォーマンスコンテンツで拡張します。
Web パフォーマンスルール
Core Web Vitals 目標
| メトリクス | 目標 |
|---|---|
| LCP | < 2.5秒 |
| INP | < 200ms |
| CLS | < 0.1 |
| FCP | < 1.5秒 |
| TBT | < 200ms |
バンドルバジェット
| ページタイプ | JS バジェット(gzip 圧縮後) | CSS バジェット |
|---|---|---|
| ランディングページ | < 150kb | < 30kb |
| アプリページ | < 300kb | < 50kb |
| マイクロサイト | < 80kb | < 15kb |
ローディング戦略
- 正当な場合、クリティカルなアバブ・ザ・フォールド CSS をインライン化する
- ヒーロー画像とプライマリフォントのみをプリロードする
- 非クリティカルな CSS や JS を遅延読み込みする
- 重いライブラリを動的インポートする
const gsapModule = await import('gsap');
const { ScrollTrigger } = await import('gsap/ScrollTrigger');
画像最適化
- 明示的な
widthとheight - ヒーローメディアのみに
loading="eager"とfetchpriority="high" - ビロウ・ザ・フォールドのアセットには
loading="lazy" - フォールバック付きで AVIF または WebP を優先する
- レンダリングサイズを大幅に超えるソース画像を配信しない
フォント読み込み
- 明確な例外がない限り、フォントファミリーは最大2つ
font-display: swap- 可能な場合はサブセット化する
- 本当にクリティカルなウェイト/スタイルのみをプリロードする
アニメーションパフォーマンス
- コンポジタフレンドリーなプロパティのみをアニメーションする
will-changeは狭い範囲で使用し、完了時に削除する- シンプルなトランジションには CSS を優先する
- JS モーションには
requestAnimationFrameまたは確立されたアニメーションライブラリを使用する - スクロールハンドラの乱発を避ける。IntersectionObserver または行儀の良いライブラリを使用する
パフォーマンスチェックリスト
- すべての画像に明示的なサイズがある
- 意図しないレンダーブロッキングリソースがない
- 動的コンテンツによるレイアウトシフトがない
- モーションがコンポジタフレンドリーなプロパティにとどまっている
- サードパーティスクリプトが async/defer で読み込まれ、必要な場合のみ使用されている