Skip to content

feat(theme): lens-hero block, the brand lens as a living home-page scene - #10

Merged
Madraka merged 1 commit into
mainfrom
feat/lens-hero
Oct 21, 2026
Merged

Madraka merged 1 commit into
mainfrom
feat/lens-hero

Conversation

@Madraka

@Madraka Madraka commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Adds the lens-hero section block for the cloudhal.com home page redesign.

  • What it is: the brand mark (dark ring, light ring, orange iris, bright pupil, plus an instrument ring of ticks) as inline SVG on a dark scene that stays dark in light and dark mode. Next to it: eyebrow, headline with gradient-highlighted words, text, two buttons and an activity log ("How a change goes live").
  • Motion (lens.ts, about 3 KB):
    • It follows the pointer through critically damped springs, one per depth layer: housing τ 300 ms, ring 200 ms, iris 120 ms, pupil 110 ms. The reach uses a soft tanh clamp.
    • After 2.8 s of stillness, and on touch screens, it drifts along a Lissajous path (11 s / 17 s).
    • As the hero scrolls away, the pupil narrows from 1 to 0.7, the glow fades and the lens rises.
    • Each log line's state (watching, working, waiting, live) tints the progress arc, glow and dot. The iris keeps the brand orange, and live sends a one-shot ping.
  • Restraint:
    • The loop is stopped offscreen, on hidden tabs and once the springs settle.
    • Two CSS loops (breathing, slow ring) with a Pause button.
    • Static at data-ch-motion=none, under prefers-reduced-motion and without JS, where the whole log is shown.
    • The lens is aria-hidden, and every word is a block prop.
  • Scope: the script loads only on pages that render the block.
  • Tested on a local cloudhal dev home page:
    • pointer tracking (iris offset follows the pointer), state stepping, scroll exit, pause;
    • 1440 and 390 widths with no sideways scroll;
    • light and dark, reduced motion.
    • cloudhal deploy --dry-run passes.

Nothing on the live site changes until the home page content uses the block (next step, through MCP with approval).

🤖 Generated with Claude Code

A new section block for the home page: the headline beside the Cloudhal lens
(the mark's rings, iris and pupil as inline SVG). The lens follows the pointer
through critically damped springs per depth layer, drifts on its own when the
pointer is still or coarse, narrows as the hero scrolls away, and steps through
a short activity log whose states tint the arc and glow.

Every word is a block prop. One rAF loop, stopped offscreen, on hidden tabs and
once settled; two CSS loops (breathing glow, instrument ring) with a pause
button; static at motion none, under reduced motion and without JavaScript.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
@Madraka
Madraka merged commit c353be0 into main Oct 21, 2026
3 checks passed
@Madraka
Madraka deleted the feat/lens-hero branch October 21, 2026 20:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant