Seasonal: Autumn redesign (#237), needs human approval #241

Merged
jared merged 2 commits from seasonal/autumn into lotus 2026-09-25 14:29:08 -04:00
Owner

For #237. Do not merge without human review. Per the issue, only a human approves this and closes #237.

What changed

  • The main problem was a bug, not the design. Every falling leaf sat in a leaf-sized wrapper pinned to the top of the screen, and that wrapper had contain: layout paint style. Paint containment clips children to the box, so each leaf stopped being drawn as soon as it fell out of its first ~40 px. That's why Autumn looked empty. The page still reported 10–16 leaves on screen, because a position check doesn't see the clipping; only the rendered image showed it. It's now contain: layout style.
  • Leaf shapes: a flag-style maple with bold lobes and a stem, which stays recognisable at 30 px (the old outline read as a star or splat), an oak with a stem, and a new aspen. Each has a gradient body and darker veins.
  • Palette: crimson, pumpkin orange, gold, russet and burnt orange, instead of muted tans that read as beige on the light theme.
  • Density: 12 leaves (was 16) at 28–52 px, with opacity capped at 0.5–0.65 so text under a passing leaf stays readable.
  • Dark themes: the leaves are brightened there. In the first redesign pass they sank into the dark warm wash.
  • Reduced motion: the resting leaves moved into empty parts of the layout (the middle of the left icon rail and the space under the member list), partly off-edge. They previously sat on the sidebar, the member list, the composer and the corner controls.

Rendered and looked at

I captured frames at 10, 15 and 20 s after load, in light, dark, phone (Pixel 7) and reduced motion, in a room with real messages. I went through three design passes, each judged on the renders, not the code.

Light, 15 s in (left: before, right: after)
light

Dark, 15 s in
dark

Reduced motion and phone at 20 s (before / after / before / after)
reduced and phone

Close-up of the new leaves (light theme, actual size)
close-up

Open questions for the reviewer

  • Falling leaves still pass over text now and then, for a second each; the text stays readable underneath (see the dark frame). Is that acceptable, or should leaves avoid the reading column?
  • Is the light-theme intensity right? It's gentle, not loud.
  • The sun-shaft light bands and the warm wash are unchanged. Should they be kept, toned down or dropped?
  • Not in this pass: the "leaf pile" idea and any other features.

Unit tests pass (1,245). Merging this PR is the approval step.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA

For #237. **Do not merge without human review.** Per the issue, only a human approves this and closes #237. ### What changed - **The main problem was a bug, not the design.** Every falling leaf sat in a leaf-sized wrapper pinned to the top of the screen, and that wrapper had `contain: layout paint style`. Paint containment clips children to the box, so each leaf stopped being drawn as soon as it fell out of its first ~40 px. That's why Autumn looked empty. The page still reported 10–16 leaves on screen, because a position check doesn't see the clipping; only the rendered image showed it. It's now `contain: layout style`. - **Leaf shapes:** a flag-style maple with bold lobes and a stem, which stays recognisable at 30 px (the old outline read as a star or splat), an oak with a stem, and a new aspen. Each has a gradient body and darker veins. - **Palette:** crimson, pumpkin orange, gold, russet and burnt orange, instead of muted tans that read as beige on the light theme. - **Density:** 12 leaves (was 16) at 28–52 px, with opacity capped at 0.5–0.65 so text under a passing leaf stays readable. - **Dark themes:** the leaves are brightened there. In the first redesign pass they sank into the dark warm wash. - **Reduced motion:** the resting leaves moved into empty parts of the layout (the middle of the left icon rail and the space under the member list), partly off-edge. They previously sat on the sidebar, the member list, the composer and the corner controls. ### Rendered and looked at I captured frames at 10, 15 and 20 s after load, in light, dark, phone (Pixel 7) and reduced motion, in a room with real messages. I went through three design passes, each judged on the renders, not the code. **Light, 15 s in** (left: before, right: after) ![light](https://code.lotusguild.org/attachments/8113709e-3f05-49c3-9586-4da9c04ed064) **Dark, 15 s in** ![dark](https://code.lotusguild.org/attachments/4efbacb9-a2c2-4232-bbab-83656603e9ed) **Reduced motion and phone at 20 s** (before / after / before / after) ![reduced and phone](https://code.lotusguild.org/attachments/6f83f30a-d9b8-42d3-8737-eb97ba8430b7) **Close-up of the new leaves** (light theme, actual size) ![close-up](https://code.lotusguild.org/attachments/4164e013-f3df-452f-b0b5-2291a29b9e73) **Open questions for the reviewer** - Falling leaves still pass over text now and then, for a second each; the text stays readable underneath (see the dark frame). Is that acceptable, or should leaves avoid the reading column? - Is the light-theme intensity right? It's gentle, not loud. - The sun-shaft light bands and the warm wash are unchanged. Should they be kept, toned down or dropped? - Not in this pass: the "leaf pile" idea and any other features. Unit tests pass (1,245). Merging this PR is the approval step. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
jared added 1 commit 2026-09-25 13:37:04 -04:00
feat(seasonal): Autumn: leaves actually fall; real leaf shapes and palette (#237)
CI / Build & Quality Checks (pull_request) Failing after 17m50s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Playwright smoke (e2e) (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 11s
e080059f37
Draft for human review (#237 must be approved and closed by a human).

- Bug: every falling leaf sat in a leaf-sized wrapper pinned at the top of
  the screen with `contain: layout paint style`. Paint containment clips
  children to that box, so a leaf stopped being drawn as soon as it fell out
  of its first ~40 px: the animated theme showed almost nothing while the DOM
  reported 10–16 leaves on screen. Now `contain: layout style`.
- Leaf shapes: a flag-style maple (bold lobes, stem) that stays recognisable
  at 30 px (the old outline read as a star/splat), an oak with a stem, and an
  aspen; gradient body with darker veins.
- Palette: crimson, pumpkin orange, gold, russet, burnt orange (was muted
  tans that read as beige on the light theme).
- 12 leaves at 28–52 px, opacity 0.5–0.65 so text under a passing leaf stays
  readable; brightened on the dark themes, where they sank into the wash.
- Reduced motion: resting leaves moved into empty layout areas (middle of
  the left rail, under the member list), partly off-edge, instead of on the
  sidebar, members, composer and corner controls.

Rendered and inspected at 10/15/20 s in light, dark, phone and reduced
motion (screenshots on #237).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
jared added 1 commit 2026-09-25 13:58:21 -04:00
feat(seasonal): Autumn pass 2 — no tint, a gust, a real preview (#237)
CI / Build & Quality Checks (pull_request) Failing after 1m30s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Playwright smoke (e2e) (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 5s
3e132069c0
Draft for human review (#237 must be approved and closed by a human).

- Removed the full-screen amber wash, sun-shaft bands and vignette: they
  turned the user's theme beige (muddy brown on dark) and lowered contrast
  everywhere. The leaves carry the season on their own. Also removed the
  dust motes (invisible specks) and the now-unused keyframes.
- Gust: every 42 s (first ~8 s after load) five leaves blow across the screen
  together, rising and spinning, in ~5 s. Linear timing — an eased curve is
  applied per keyframe segment and made them hang mid-air for a second.
- Softer flutter (leaves flattened into slivers mid-flip), stronger leaf
  colour (opacity 0.58–0.73, less pale gold tip), brighter on dark themes.
- Reduced motion on phones: no icon rail there, so the resting leaves tuck
  further off-edge and smaller instead of landing on the timeline icons.
- Settings swatch: new optional `preview` prop on seasonal overlays; Autumn
  draws a warm backdrop with arranged leaves (the reduced scene rendered in
  the tile as a black square with two edge fragments).

Rendered and inspected: light/dark/phone at 10/15/20 s, reduced on desktop
and phone, gust tracked frame by frame, the Settings swatch; 60 fps with the
theme on vs off (p95 frame 16.7 ms both).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
Author
Owner

Pass 2 is ready for human review (PR #241, now at 3e132069)

Jared said the orange tint felt off and asked me to keep redesigning until I was satisfied. These are the changes since pass 1, each judged on renders:

  • Tint removed. The amber wash, sun-shaft bands and vignette are gone. They turned the user's theme beige (muddy brown on dark) and lowered contrast everywhere. Autumn is now the app as it is, with leaves.
  • Dust motes removed. They were invisible specks that added nothing.
  • New: a gust. About every 42 s (the first ~8 s after load), five leaves blow across the screen together, rising and spinning, in about 5 s. I tracked their positions frame by frame. The first version stalled mid-screen for a second, because an eased timing curve is applied to each keyframe segment. It now uses linear timing and keeps moving.
  • Softer flutter. Leaves used to flatten into slivers mid-flip.
  • Stronger leaf colour (opacity 0.58–0.73, a less pale gold) and brighter leaves on the dark themes.
  • Phones with reduced motion. A phone has no icon rail, so the resting leaves were landing on the timeline icons. They now tuck further off-edge and are smaller.
  • Settings thumbnail. It used the reduced scene and came out as a black square with two leaf fragments at its edges. A new optional preview prop on the seasonal overlays lets Autumn draw a composition made for the tile.
  • Performance: 60 fps with the theme on and off; the 95th-percentile frame is 16.7 ms either way.

Light: original vs now
light

Dark: original vs now
dark

Reduced motion (desktop), phone, and phone with reduced motion
reduced and phone

A gust passing, full size (t ≈ 10 s)
gust

Settings thumbnail
preview

Still open for the reviewer

  • Leaves still cross text for a moment as they fall, and the gust briefly crosses the middle of the screen. Text stays readable underneath.
  • With reduced motion on a phone the scene is very calm (a few leaves tucked at the edges). I chose that deliberately, since there's no empty space on a phone.

Only a human approves this, merges PR #241 and closes #237.

## Pass 2 is ready for human review (PR #241, now at `3e132069`) Jared said the orange tint felt off and asked me to keep redesigning until I was satisfied. These are the changes since pass 1, each judged on renders: - **Tint removed.** The amber wash, sun-shaft bands and vignette are gone. They turned the user's theme beige (muddy brown on dark) and lowered contrast everywhere. Autumn is now the app as it is, with leaves. - **Dust motes removed.** They were invisible specks that added nothing. - **New: a gust.** About every 42 s (the first ~8 s after load), five leaves blow across the screen together, rising and spinning, in about 5 s. I tracked their positions frame by frame. The first version stalled mid-screen for a second, because an eased timing curve is applied to each keyframe segment. It now uses linear timing and keeps moving. - **Softer flutter.** Leaves used to flatten into slivers mid-flip. - **Stronger leaf colour** (opacity 0.58–0.73, a less pale gold) and brighter leaves on the dark themes. - **Phones with reduced motion.** A phone has no icon rail, so the resting leaves were landing on the timeline icons. They now tuck further off-edge and are smaller. - **Settings thumbnail.** It used the reduced scene and came out as a black square with two leaf fragments at its edges. A new optional `preview` prop on the seasonal overlays lets Autumn draw a composition made for the tile. - **Performance:** 60 fps with the theme on and off; the 95th-percentile frame is 16.7 ms either way. **Light: original vs now** ![light](https://code.lotusguild.org/attachments/3fd8d0f1-2040-486c-916e-dcbc9daad876) **Dark: original vs now** ![dark](https://code.lotusguild.org/attachments/a25a57b8-0711-46ad-8d45-860c7aee4ab5) **Reduced motion (desktop), phone, and phone with reduced motion** ![reduced and phone](https://code.lotusguild.org/attachments/fd10df43-0cff-496c-a37c-9c43e0a6924d) **A gust passing, full size (t ≈ 10 s)** ![gust](https://code.lotusguild.org/attachments/909a5efd-ebe1-4c5e-887d-27fe941eadee) **Settings thumbnail** ![preview](https://code.lotusguild.org/attachments/8d1ee0b0-6c9d-4603-8a24-09d064b6545e) **Still open for the reviewer** - Leaves still cross text for a moment as they fall, and the gust briefly crosses the middle of the screen. Text stays readable underneath. - With reduced motion on a phone the scene is very calm (a few leaves tucked at the edges). I chose that deliberately, since there's no empty space on a phone. Only a human approves this, merges PR #241 and closes #237.
jared merged commit 27c6dacc60 into lotus 2026-09-25 14:29:08 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#241