Skip to content

Theme-colored sparkle accent (✦) for emphasis in prose#7

Open
korentomas wants to merge 2 commits into
mainfrom
sparkle-accent
Open

Theme-colored sparkle accent (✦) for emphasis in prose#7
korentomas wants to merge 2 commits into
mainfrom
sparkle-accent

Conversation

@korentomas
Copy link
Copy Markdown
Owner

Summary

Add a small decorative/emphasis glyph that reads appropriately against each theme. Goal: something that functions like a more visual exclamation point, inline in body prose.

  • New --sparkle CSS variable per theme:
    • terminal: #d8ff55 (yellow-lime)
    • paper: #c9751c (burnt sienna)
    • ink: #e8c67b (light gold)
    • amber: #ffe6a0 (brighter amber)
    • blueprint: #ffd48a (warm tan on slate)
    • plum: #ffd48a (gold on plum)
  • .sparkle class: colored with var(--sparkle), slightly smaller (0.9em), slight vertical nudge.
  • <SparkleText> component auto-wraps any in a string.
  • Applied in /interests, /now, /then, and book notes.

How you use it

Type anywhere in these string fields inside site-config.ts and it renders colored:

  • INTERESTS[i].body
  • NOW.sections[i].body
  • THEN[i].sections[i].body
  • BOOKS[i].items[i].note (optional)

Example:

{ title: "AI safety", body: "How do we keep ✦ capable systems doing what we actually want?" }

Test plan

  • npm run build passes
  • Playwright smoke tests pass (6/6)
  • Drop a ✦ into INTERESTS[0].body, check it renders colored in all six themes

- New --sparkle CSS variable per theme. Terminal gets yellow-lime
  (#d8ff55), paper gets burnt sienna, ink/plum get light gold, amber
  goes brighter, blueprint picks warm tan.
- .sparkle class applies color, trims size, slight vertical nudge.
- SparkleText component auto-wraps ✦ in any body string so content
  can stay in site-config.ts as plain strings.
- Applied to /interests, /now, /then, and book notes.

Type ✦ anywhere in a body string (interests.body, NOW/THEN
section.body, BOOKS note) and it renders in the theme's accent.
Copilot AI review requested due to automatic review settings April 24, 2026 17:06
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 24, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
remix-portfolio Ready Ready Preview, Comment Apr 24, 2026 5:14pm

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a theme-aware “sparkle” emphasis glyph (✦) that can be embedded in prose strings and rendered with consistent styling across all site themes.

Changes:

  • Introduces a per-theme --sparkle CSS variable and a .sparkle style for the glyph.
  • Adds a reusable <SparkleText> component that wraps occurrences in styled markup.
  • Applies <SparkleText> to prose fields in /interests, /now, /then, and /books notes.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
app/styles/global.css Adds --sparkle theme variables and .sparkle styling for the glyph.
app/components/SparkleText.tsx New component that parses strings and wraps with a styled span.
app/routes/interests.tsx Renders interest body text through <SparkleText>.
app/routes/now.tsx Renders section body text through <SparkleText>.
app/routes/then.tsx Renders archived section body text through <SparkleText>.
app/routes/books.tsx Renders optional book notes through <SparkleText>.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/components/SparkleText.tsx Outdated
{parts.map((part, i) => (
<Fragment key={i}>
{i > 0 && (
<span className="sparkle" aria-hidden="true">
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aria-hidden="true" removes the ✦ glyph from assistive technologies. Since the glyph is intended to convey emphasis (not purely decorative), consider exposing it to screen readers (remove aria-hidden) or provide an accessible equivalent (e.g., an aria-label/visually-hidden text) so the emphasis isn’t lost.

Suggested change
<span className="sparkle" aria-hidden="true">
<span className="sparkle">

Copilot uses AI. Check for mistakes.
Comment on lines +5 to +8
export function SparkleText({ text }: { text: string }) {
if (!text.includes(SPARKLE)) return <>{text}</>;
const parts = text.split(SPARKLE);
return (
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There’s no automated coverage validating that gets wrapped/styled (e.g., asserting a .sparkle span appears when content contains the glyph). Since this is a new rendering behavior used across multiple pages, it would be good to add a small Playwright assertion (or component-level test if you have one) to prevent regressions.

Copilot uses AI. Check for mistakes.
- SparkleText now matches any of: ✦ ✧ ✻ ✽ ✶ ✴ ✳
  (four-pointed + asterisk/starburst varieties). Only the character
  itself is wrapped in the .sparkle span; surrounding text is
  unchanged.
- SiteHeader's tagline now renders SITE.bio through SparkleText so
  the always-visible bio line can carry an accent.
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