Skip to content

feat(books): design system + sticky header/hero (redesign phase 1) - #233

Merged
konjoinfinity merged 4 commits into
mainfrom
claude/squish-website-updates-pk07mi
Sep 6, 2026
Merged

konjoinfinity merged 4 commits into
mainfrom
claude/squish-website-updates-pk07mi

Conversation

@konjoinfinity

Copy link
Copy Markdown
Collaborator

Summary

First increment of a larger Open & Async–inspired redesign of the squish.run/books site (still plain HTML/CSS/JS, no framework — confirmed there's no package.json or build step anywhere in the repo before touching anything):

  • Extends the existing CSS custom properties into a full token set: a spacing rhythm scale (--space-*, --section-py), a shared .btn system (--primary = the one warm accent yellow reserved for CTAs, --ghost/--purple for secondary actions), and a shared .card system with a consistent hover lift.
  • Every button and card on the page now pulls from these tokens instead of one-off classes — the 5 "Buy on Amazon" buttons, both hero CTAs, and the newsletter submit button are all the same .btn--primary class.
  • Adds a sticky header (logo, anchor nav for Books/Free Printables/About, a "Shop Now" CTA driven by the same AMAZON_LINKS map as the book cards) that compresses and gains a backdrop once scrolled past the hero, via IntersectionObserver on a sentinel element — no scroll-position listener.
  • Rebuilds the hero with a stronger hook line, subhead, and two CTAs visible without scrolling, reusing the existing real cover art (no fabricated assets).

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

  • New feature
  • Bug fix
  • Performance improvement
  • Documentation update
  • Refactor / cleanup

Checklist

  • Changes are scoped to one logical concern (the books microsite, not the inference server)
  • No hardcoded absolute paths
  • No model weights, eval output, or log files staged
  • No existing purchase/retailer links touched or broken
  • pytest tests/ — n/a, no Python changes
  • ruff check — n/a, no Python changes

Related issues

None.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KRmTJECM7bksNeJ3FUjqQw


Generated by Claude Code

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

Copy link
Copy Markdown
Collaborator Author

Same pattern as #232, and pre-existing on main — not caused by this diff. This PR only touches docs/books/index.html (confirmed via git diff --stat origin/main HEAD), no Python files.

  • G4 · Complexity + Size + DRY / Konjo Gate — All Walls Clear: repo-wide complexity ratchet (147 functions above grade C) and squish/backend.py at 511 lines, not in .konjo/oversized-allowlist.txt.
  • Test Linux (Python 3.11/3.12), Test (Python 3.11/3.12/3.13), Test Rust extension: tests/test_wave120_dead_global_purge.py::test_server_line_count_under_threshold fails deterministically (line_count = text.count('\n') + 1 over-counts by one for a file ending in a trailing newline — server.py's real 6399 lines computes as 6400, tripping < 6400), plus (on macOS jobs) 3 pre-existing bfloat16/PEP-3118 numpy buffer errors in tests/test_block_kv_cache_coverage.py / tests/test_prompt_kv_cache_coverage.py.

Verified: main's own latest CI run after merging #232 (34059559190, head 8fcff3b) and its Konjo Gate run (34059559189) are both still red with this identical failure set. No fix exists yet for any of these in an open PR. Standing down on all of the above for this PR — nothing here is fixable from a books-site-only diff without unrelated, out-of-scope Python changes.


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
konjoinfinity marked this pull request as ready for review September 6, 2026 23:00
@konjoinfinity
konjoinfinity merged commit 44cc378 into main Sep 6, 2026
9 of 17 checks passed
@konjoinfinity
konjoinfinity deleted the claude/squish-website-updates-pk07mi branch September 6, 2026 23:01
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.

2 participants