Skip to content

Add background gradients/textures/animations, per-line fonts, foregro…#15

Merged
jonwilliams84 merged 1 commit into
masterfrom
claude/refactor-and-features-H58JN
May 8, 2026
Merged

Add background gradients/textures/animations, per-line fonts, foregro…#15
jonwilliams84 merged 1 commit into
masterfrom
claude/refactor-and-features-H58JN

Conversation

@jonwilliams84
Copy link
Copy Markdown
Owner

…und dividers

Background:

  • BoardState.background is now a discriminated union: solid | linear gradient (2 colors + angle) | radial gradient (2 colors).
  • DB migration on read maps the old backgroundColor field to { type: "solid", color }, so existing saved state survives.

Effects:

  • texture: none | dots | stripes | grid | noise. CSS-only, layered as a translucent ::before so it overlays any background.
  • animation: none | pan | pulse | shimmer. pan + pulse drive the texture layer (no-op if texture: none). shimmer is a soft gradient sweep that works regardless of texture.

Dividers:

  • Promoted to z-index 3 so they sit on top of letter ascenders, and rebuilt as a translucent dark band + bright lower edge instead of a flat #000 stripe — gives an embossed groove effect that reads on any cell colour without needing to compute a per-row darken().
  • Height switched from 0.5rem fixed to 0.6cqh (min 3px) so they scale with the row.

Fonts:

  • 6 curated Google Fonts loaded in index.html (Bebas Neue default, Anton, Oswald, Bungee, Permanent Marker, Lobster).
  • BoardState.defaultFont sets the board-wide font; Line.font allows optional per-line override.
  • New component renders previews of each option in its own family inside the dropdown.

UI:

  • Background section in admin replaced with a Background & Effects section using the new BackgroundEditor: type/colors/angle for the background, plus texture and animation pickers.
  • New Typography section for the default font.
  • LineEditor gains a compact per-line font picker between the text field and the colour swatch; the text field itself renders in the effective font so you can preview without leaving the row.

https://claude.ai/code/session_011pGzV6osudSkwYLZ93A74R

…und dividers

Background:
- BoardState.background is now a discriminated union: solid | linear
  gradient (2 colors + angle) | radial gradient (2 colors).
- DB migration on read maps the old backgroundColor field to
  { type: "solid", color }, so existing saved state survives.

Effects:
- texture: none | dots | stripes | grid | noise. CSS-only, layered as
  a translucent ::before so it overlays any background.
- animation: none | pan | pulse | shimmer.
  pan + pulse drive the texture layer (no-op if texture: none).
  shimmer is a soft gradient sweep that works regardless of texture.

Dividers:
- Promoted to z-index 3 so they sit on top of letter ascenders, and
  rebuilt as a translucent dark band + bright lower edge instead of a
  flat #000 stripe — gives an embossed groove effect that reads on any
  cell colour without needing to compute a per-row darken().
- Height switched from 0.5rem fixed to 0.6cqh (min 3px) so they scale
  with the row.

Fonts:
- 6 curated Google Fonts loaded in index.html (Bebas Neue default,
  Anton, Oswald, Bungee, Permanent Marker, Lobster).
- BoardState.defaultFont sets the board-wide font; Line.font allows
  optional per-line override.
- New <FontSelect> component renders previews of each option in its
  own family inside the <option> dropdown.

UI:
- Background section in admin replaced with a Background & Effects
  section using the new BackgroundEditor: type/colors/angle for the
  background, plus texture and animation pickers.
- New Typography section for the default font.
- LineEditor gains a compact per-line font picker between the text
  field and the colour swatch; the text field itself renders in the
  effective font so you can preview without leaving the row.

https://claude.ai/code/session_011pGzV6osudSkwYLZ93A74R
@jonwilliams84 jonwilliams84 merged commit 8173c34 into master May 8, 2026
6 checks passed
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