コンポーネント
← すべてのコンポーネント

読了プログレス

stimeo--reading-progress

記事をどこまで読み進めたかを CSS カスタムプロパティで公開する。

  • Core

stimeo--reading-progress は、要素の中をどこまで読み進めたか(0..1)を計測し、 --stimeo--reading-progress カスタムプロパティとして公開します — 要素自身と document ルートの両方に書くため、ページのどこにある固定バーでも CSS だけで消費できます。IntersectionObserver 単体ではこれを表現できません(背の高い記事がビューポートを通過している間、交差率は一定のまま)— そこで本パーツが rAF スロットリング付きのスクロール数学を所有します。監視は capture フェーズなので、オーバーフローコンテナ内の記事でも動きます。進捗が動くと change、1 に到達すると complete が発火します。バーの描画は消費側 CSS の責務で、装飾バーには aria-hidden を付けてください(意味のある進捗は stimeo--progress の領分)。

実行中

このページをスクロールしてください — 記事上部の追従バーは CSS 変数だけで伸びます(消費側 JS なし)。

段落 1: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 2: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 3: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 4: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 5: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 6: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 7: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 8: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 9: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 10: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 11: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 12: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 13: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。

段落 14: スクロールを続けてください — 上のバーは記事の幾何から計算された読了率を、CSS カスタムプロパティ経由で反映しています。