feat(books): design system + sticky header/hero (redesign phase 1) - #233
Merged
Merged
Conversation
Extends the existing CSS variables into a full token set (spacing rhythm, shared button/card systems) and rebuilds the hero with a sticky, scroll-aware header and anchor nav. First two phases of a larger Open & Async-inspired redesign; everything is still plain HTML/CSS/JS, no framework added. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KRmTJECM7bksNeJ3FUjqQw
Collaborator
Author
|
Same pattern as #232, and pre-existing on
Verified: Generated by Claude Code |
Rebuilds the books microsite as one continuous-scroll page (single gradient background instead of hard section color-blocks) with a sticky header + scroll-progress bar, an auto-scrolling pull-quote marquee, a Grown-Ups/Little-Ones audience split, a numbered 10-item "what's inside" grid, an animated reading-order timeline, a count-up creator-stats section, an objections FAQ, and a per-book ebook/ paperback/hardback format section — all real content sourced from the books' own Amazon listings (descriptions, A+ content, page counts, pricing) rather than invented copy, plus real character bios for Squish and Lilyan pulled from the same source. Scroll-reveal, marquee, timeline draw-in, and count-up are all IntersectionObserver-driven progressive enhancement: content is never hidden unless JS confirms observer support and the visitor hasn't requested reduced motion. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KRmTJECM7bksNeJ3FUjqQw
Replaces the generic heart-icon placeholder with the actual canon Lilyan illustration, background-keyed to transparent PNG to match the existing Squish mascot circle treatment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KRmTJECM7bksNeJ3FUjqQw
Replaces the books site's Squish artwork with the correct canon character render (background-keyed to transparent PNG), used in both the sticky header logo and the Meet the Friends card. Leaves docs/assets/squish-mascot.png (the separate LLM-product mascot asset) untouched. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KRmTJECM7bksNeJ3FUjqQw
konjoinfinity
marked this pull request as ready for review
September 6, 2026 23:00
This was referenced Sep 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First increment of a larger Open & Async–inspired redesign of the
squish.run/bookssite (still plain HTML/CSS/JS, no framework — confirmed there's nopackage.jsonor build step anywhere in the repo before touching anything):--space-*,--section-py), a shared.btnsystem (--primary= the one warm accent yellow reserved for CTAs,--ghost/--purplefor secondary actions), and a shared.cardsystem with a consistent hover lift..btn--primaryclass.AMAZON_LINKSmap as the book cards) that compresses and gains a backdrop once scrolled past the hero, viaIntersectionObserveron a sentinel element — no scroll-position listener.Rendered the page with a headless browser (screenshots) to confirm the sticky-header class toggle actually fires and the layout holds up at desktop and mobile widths before pushing.
This is phase 1 of a larger planned redesign (pull-quote ticker, audience-split section, numbered lessons grid, reading-order timeline, creator stats, objections FAQ, retailer section, animations pass) — the plan for the remaining phases is being scoped in a follow-up.
Type of change
Checklist
pytest tests/— n/a, no Python changesruff check— n/a, no Python changesRelated issues
None.
🤖 Generated with Claude Code
https://claude.ai/code/session_01KRmTJECM7bksNeJ3FUjqQw
Generated by Claude Code