Skip to content

feat(hero): topic set under the statement, compact countdown - #331

Open
ryzizub wants to merge 5 commits into
2026from
agent/astro-engineer/devf-40
Open

feat(hero): topic set under the statement, compact countdown#331
ryzizub wants to merge 5 commits into
2026from
agent/astro-engineer/devf-40

Conversation

@ryzizub

@ryzizub ryzizub commented Sep 4, 2026

Copy link
Copy Markdown
Member

Summary

  • Homepage hero: the topic set now runs as the statement's own third/fourth lines (5 topics, 3+2 column grid, no separators) instead of nothing — Set A, no product names: AI Agents, Generative UI, Cloud & Backends, Mobile & Web, Humans in Tech.
  • New src/lib/topics.ts is the single source for the set; src/lib/ticker.ts's EVENT_TOPICS now derives from it, dropping the leftover product names (Android & Kotlin, Flutter & Dart).
  • Footing strip is one 3-column grid (date / place / clock) instead of two clusters with a dead gap between them.
  • Countdown gets a compact prop: real suffix text per unit (069d 22h 43m 21s), not a CSS ::after trick, and needs no :global() reach-in — it's the component's own module scope.
  • The header's "Tickets" button hides while the home hero's own "Get tickets" is in view (bar still transparent) — one route to the same place per screen, not two.
  • HeroBackground's unmotivated lower-left red bloom is gone; the plate's only light source (the lamp, upper-right) is the only wash left. This affects every page's hero, not just the home page.
  • Mobile hero photo crop nudged to 42% 88% (was 38% center) to clear the figure under the new topic block.
  • Homepage meta description now names accessibility and the topic set, since the redesigned hero no longer spells them out visually.

Why

Design exploration for DEVF-40 (25 variants, /vx/v4/vx/v16) landed on v16: the topic set as the statement's own lines reads as the headline continuing, not a caption bolted on below the fold.

Follow-up

  • The 2026 pill is baked into logo.png — out of scope here (brand asset).

ryzizub and others added 5 commits September 4, 2026 23:11
The homepage hero gets the topic set as the statement's own third/fourth
lines (5 topics, no product names — AI Agents, Generative UI, Cloud &
Backends, Mobile & Web, Humans in Tech), a footing strip on one 3-column
grid (date / place / clock), and a compact countdown suffix (069d 22h
43m 21s) instead of captioned stubs.

- New src/lib/topics.ts is the single source for the set; ticker.ts's
  EVENT_TOPICS now derives from it, dropping the leftover product names
  (Android & Kotlin, Flutter & Dart).
- Countdown gets a `compact` prop that renders real suffix text on each
  unit, not a stylesheet ::after trick, so it isn't invisible to
  anything that inspects the DOM text.
- Header's "Tickets" CTA hides while the home hero's own "Get tickets"
  button is in view (bar still transparent), to avoid two routes to the
  same place on one screen.
- HeroBackground loses its unmotivated lower-left red bloom — the plate's
  only light source is the lamp upper-right, so that's the only wash left.
- Homepage meta description now names accessibility and the topic set,
  which the redesigned hero no longer spells out visually.
QA on #331 found six mock deviations: mobile hero overflowed the fold
(the running ticker peeked under it), the topic set sat on the
detective's hat/shoulder on phone, "near Prague" survived into the
poster crop, the countdown printed a leading zero (055d), the
nav-toggle kept its box on the first screen, and the desktop block sat
~100px low with air split evenly instead of pooled above the mark.

- Mobile hero back to 100svh; "Stay in the loop" hidden on phone frees
  the height that previously forced auto-height (and the ticker peek).
- HeroBackground gets an opt-in `mobileZoom` prop (background-size);
  homepage sets `auto 130%` + repositioned focus to clear the figure.
- Drop the "near Prague" sub-label (dead in the poster layout).
- Countdown days no longer zero-pads; width is reserved via `min-width:
  3ch` so the 100→99 rollover doesn't shift the suffix.
- Home hero's nav-toggle loses its border in the transparent bar state.
- hero-inner bottom-sets on desktop so leftover height pools above the
  mark instead of splitting evenly top/bottom.
…ountdown

- Replace the below-statement topic set with a single rotating subject in
  a fixed-width mono slot (2.6s cycle, sequential out-then-in). All five
  topics stay in the DOM at all times (aria-label on the group) for SEO
  and screen readers; the rotating slot itself is aria-hidden. Hover or
  keyboard focus on the group holds the current subject (SC 2.2.2), and
  `prefers-reduced-motion` unstacks the slot into a static two-column set
  instead of starting the rotation.
- Re-hang the plate: HeroBackground gets opt-in `width`/`size`/`tightMask`
  props; the homepage widens the photo to 74%, scales it up, and shortens
  the left-to-right dissolve so the bridge and castle read instead of flat
  black. The statement's "back." nudges onto the figure's shoulder instead
  of stopping beside him.
- Hero column hangs from the top edge on desktop (wordmark under the nav)
  instead of centering in the leftover height — the rotor freed ~450px
  that used to sit as dead air above the wordmark. Phone keeps the
  bottom-set rule the mobile-fold fix depends on.
- Footing strip: date/place cluster from the left edge of the measure, the
  countdown closes the right edge (flex `space-between` instead of a
  3-column grid); date renders as `30 OCT 2026`.
- Countdown gets a `showSeconds` prop; the hero drops seconds entirely
  (`54D 10H 05M`) and slows its own tick to 15s once it no longer needs to
  redraw every second.
- "Stay in the loop"'s hit area stretches to match the primary button's
  block on desktop; its underline is carried by the label itself so it
  stops at the last glyph instead of trailing past the tracked-out mono.

Follow-up: the `2026` pill next to the wordmark is baked into `logo.png`
(brand asset) — cutting it needs a new asset from design, not a CSS change.
New logo.png drops the 2026 pill (5:1 -> 4.2:1 intrinsic ratio).
Width caps scaled by 0.84 across hero, Menu, Footer and LandingNotice
so the wordmark renders at the same height instead of growing 19%.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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