Skip to content

Add 3D-style textures, text effects, and proper descender centering#17

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

Add 3D-style textures, text effects, and proper descender centering#17
jonwilliams84 merged 1 commit into
masterfrom
claude/refactor-and-features-H58JN

Conversation

@jonwilliams84
Copy link
Copy Markdown
Owner

Textures (4 new, all CSS-only via inline SVG turbulence + repeating gradients — no asset bundling, no licensing):

  • paper: fine fractal grain, multiply blend so it darkens the bg
  • fabric: woven thread look from layered repeating gradients + tiny highlight dots
  • clouds: large soft turbulence, screen blend so it lightens the bg
  • tarmac: dense high-frequency dark grain, multiply blend

Text effects (5 new, applied as a CSS preset map in src/effects.ts):

  • shadow: drop shadow
  • emboss: raised — bright highlight + dark inset
  • engrave: sunken — bright lower + dark upper
  • outline: text-stroke
  • glow: soft white halo

State adds defaultTextEffect (board-wide) and Line.textEffect (per-line override, null = inherit). Backend migrates and validates both.

Descender centering: replaced the fixed translateY(0.09em) hack — which only worked for all-caps fonts — with text-box-trim/text-box-edge inside an @supports block. Modern browsers trim the line box to the actual cap-to-text bounds so any font (Lobster, Permanent Marker, etc.) centers correctly without descenders bleeding into the next row. The translateY fallback is preserved for browsers without text-box-trim.

UI: BackgroundEditor lists the new textures; Admin Typography section gains a Default Effect picker; LineEditor packs the per-line font and text-effect selects into a small two-row group between the text input and colour swatch.

https://claude.ai/code/session_011pGzV6osudSkwYLZ93A74R

Textures (4 new, all CSS-only via inline SVG turbulence + repeating
gradients — no asset bundling, no licensing):
- paper:  fine fractal grain, multiply blend so it darkens the bg
- fabric: woven thread look from layered repeating gradients + tiny
          highlight dots
- clouds: large soft turbulence, screen blend so it lightens the bg
- tarmac: dense high-frequency dark grain, multiply blend

Text effects (5 new, applied as a CSS preset map in src/effects.ts):
- shadow:  drop shadow
- emboss:  raised — bright highlight + dark inset
- engrave: sunken — bright lower + dark upper
- outline: text-stroke
- glow:    soft white halo

State adds defaultTextEffect (board-wide) and Line.textEffect (per-line
override, null = inherit). Backend migrates and validates both.

Descender centering: replaced the fixed translateY(0.09em) hack —
which only worked for all-caps fonts — with text-box-trim/text-box-edge
inside an @supports block. Modern browsers trim the line box to the
actual cap-to-text bounds so any font (Lobster, Permanent Marker, etc.)
centers correctly without descenders bleeding into the next row. The
translateY fallback is preserved for browsers without text-box-trim.

UI: BackgroundEditor lists the new textures; Admin Typography section
gains a Default Effect picker; LineEditor packs the per-line font and
text-effect selects into a small two-row group between the text input
and colour swatch.

https://claude.ai/code/session_011pGzV6osudSkwYLZ93A74R
@jonwilliams84 jonwilliams84 merged commit 3960fb2 into master May 8, 2026
5 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