跳到正文
cccskills
免费在 GitHub 公开

scroll-progress-timeline

Turn any ordered process into a data-driven vertical or horizontal scroll story with a base line, progress fill, active step states, responsive collapse, semantic fallback, and reduced-motion behavior. Use for onboarding, checkout, roadmaps, recipes, case studies, service processes, histories, or narratives where progress through the sequence should become visible while scrolling.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(6)

  • SKILL.md3.9 KB
  • agents/openai.yaml246 B
  • demo/index.html11.8 KB
  • demo/preview.jpg97.4 KB
  • demo/PROMPT.md1.8 KB
  • REFERENCES.md495 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Scroll Progress Timeline

Use one progress line to connect ordered information. The sequence must remain complete, readable, and navigable before animation is added.

Model the steps

Keep the content data-driven:

const steps = [
  { id: "brief", number: "01", title: "Set the direction", body: "..." },
  { id: "build", number: "02", title: "Make the system", body: "..." },
  { id: "ship", number: "03", title: "Release and learn", body: "..." }
];

Render it as an ordered list with real headings. The line, dots, media, and active state enhance that structure; they do not replace it.

Build the line

  1. Render a quiet base line behind every point.
  2. Place one progress line on top with transform-origin: top for vertical or left for horizontal.
  3. Measure the first and last point centers, not arbitrary section edges.
  4. Normalize scroll position between those centers.
  5. Apply scaleY(progress) or scaleX(progress) so updates stay on the compositor.
  6. Mark a step active when the progress head crosses its center.
const progress = Math.min(1, Math.max(0,
  (viewportAnchor - lineStart) / (lineEnd - lineStart)
));
line.style.transform = `scaleY(${progress})`;

Schedule DOM writes in one animation frame. Recalculate geometry after font and image loading, resize, orientation changes, and content mutation.

Choose the layout

  • Use a centered alternating timeline only when both sides have enough width and similar content weight.
  • Use a left rail for long copy, compact steps, or mixed card heights.
  • Use a horizontal line for short sequences with concise labels and explicit keyboard-safe overflow.
  • Use pinned full-screen chapters only when each step carries a distinct visual state. Keep the pin finite and release before the next section.
  • Collapse to a simple left rail on small screens. Do not preserve alternation at the expense of reading order.

Animate step state

Use small opacity, translate, scale, blur, color, or media transitions. Keep every step readable while inactive. Expose active index with aria-current="step" only when that state is meaningful and current; do not announce every scroll update with a live region.

Use IntersectionObserver for simple active-state entry. Use a normalized scroll measurement or GSAP ScrollTrigger when the line must fill continuously or coordinate pinned media.

Handle navigation

  • Make step links real anchors when users can jump within the process.
  • Add scroll-margin for sticky headers.
  • Preserve focus and do not move it during passive scrolling.
  • Keep URLs and browser history stable unless the user explicitly selects a step.
  • If steps are interactive, use buttons or links with visible focus; never make a decorative dot the only control.

Reduce motion

Under prefers-reduced-motion: reduce, show the complete line or discrete reached states without scrubbed interpolation, blur, pinning, or large transforms. Keep ordinary document flow and all step content.

Verify

Test variable step counts, uneven card heights, missing media, long translations, 390/768/1024/1440 widths, 200% zoom, fast forward and reverse scrolling, direct anchor navigation, keyboard order, reduced motion, late font/image layout, route cleanup, and console errors. The active step and line head must agree at every boundary.

Use demo/index.html as the working reference and demo/PROMPT.md to recreate or remix it. Keep REFERENCES.md as the links-only implementation source list.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Build convincing woven cloth in Three.js, with a thread-level weave normal map, sheen and anisotropic highlights, folds that never stretch the texture, hems with thickness, stitches, seams, frayed edges, fold occlusion, dye and wear variation, and light passing through thin fabric. Use for linen, silk, wool, canvas, curtains, banners, cloaks, tablecloths, tapestries or any 3D drape that currently looks like a plastic sheet, a stretched texture, or a flat coloured plane.

中文简介正在准备中。当前显示原文说明。

MengTo/Skills68332026年10月18日 更新

Build recognizable falling leaves in world space using instanced geometry, independent tumble, coupled sideways drift, shared wind, scene occlusion, and camera-aware recycling. Use for 3D autumn leaves or drifting foliage in Three.js and similar scenes; use falling-leaves for a 2D canvas overlay.

中文简介正在准备中。当前显示原文说明。

MengTo/Skills68332026年10月18日 更新

Add coordinated spring, summer, fall, and winter states to a 3D scene, blending foliage, sunlight, sky, ground materials, snow, and particles without rebuilding the world. Use for seasonal controls, architectural walkthroughs, and outdoor scenes with four-season transitions.

中文简介正在准备中。当前显示原文说明。

MengTo/Skills68332026年10月18日 更新

Create or integrate highly detailed 3D models with smooth silhouettes, shaped surfaces, believable bevels, and close-up geometry, then prepare suitable runtime LODs and loading. Use when a user requests high polygon counts, ultra-realistic models, detailed architectural assets, or removal of visibly faceted geometry.

中文简介正在准备中。当前显示原文说明。

MengTo/Skills68332026年10月18日 更新

Build sharp, physically coherent high-resolution materials for 3D rendering with appropriate PBR maps, texel density, UV direction, mipmaps, anisotropic filtering, and progressive asset delivery. Use for detailed wood, stone, fabric, foliage, and architectural close-ups without excessive download or GPU memory costs.

中文简介正在准备中。当前显示原文说明。

MengTo/Skills68332026年10月18日 更新

Build hyperrealistic PBR metal in Three.js: steel, brass, gold, copper and iron as true conductors (metalness 1, measured F0 tint, no albedo) with roughness-varied finishes (polished, brushed anisotropic, aged with patina and worn edges) lit by a dark HDR studio of real bright window cards prefiltered with PMREM. Use when metal looks like grey plastic, a dull blur, or a black hole; when blades, tools, rings, ingots, hardware or product metal need reflections with edges and structure; or when a finish needs scratches, streaks, fingerprints and bevels that catch light.

中文简介正在准备中。当前显示原文说明。

MengTo/Skills68332026年10月18日 更新

查看 MengTo 的全部技能

报告此技能的问题