style(theme): retint light theme to a cool neutral/slate palette - #462
style(theme): retint light theme to a cool neutral/slate palette#462Brosski224 wants to merge 1 commit into
Conversation
Replace the near-white/near-black + periwinkle-purple light theme with
a calmer cool-slate system across the whole app: canvas/card/border/text
tokens, primary buttons, and the accent color in src/index.css's
[data-theme='light'] block, plus matching updates to the pricing/plan-tier
cards, badges, and hero promo cards ("Support development", "Link your
calendar") that previously used saturated per-tier brand colors or were
hardcoded outside the theme system entirely.
Left untouched: dark mode, genuinely semantic/status colors (errors,
success, warnings), external-brand colors (About page social buttons),
and a few theme-independent tokens (toggle track color, decorative mesh
gradients) that are hardcoded identically for both themes by design.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EtDAY24ssvKnCAjELnLpp2
|
React Doctor found 116 issues in 10 files · 26 errors & 90 warnings · score 60 / 100 (Needs work) · vs Errors
90 warnings
40 more warnings not shown.
|
| @@ -212,7 +212,7 @@ export const FeatureSpotlight: React.FC = () => { | |||
| {currentFeature.bullets.map((bullet, idx) => ( | |||
| <div key={idx} className={`flex items-center justify-center group/item transition-transform duration-200 px-2`}> | |||
There was a problem hiding this comment.
React Doctor · react-doctor/no-array-index-as-key (warning)
Your users can see & submit the wrong data when this list reorders or filters, so use a stable id like key={item.id}, not the array index "idx".
Fix → Use a stable id from the item, like key={item.id} or key={item.slug}. Index keys break when the list reorders or filters.
| @@ -787,7 +787,7 @@ const Launcher: React.FC<LauncherProps> = ({ onStartMeeting, onOpenSettings, onO | |||
| > | |||
| <path | |||
| d="M12 2C7.58172 2 4 5.58172 4 10V22L7 19L9.5 21.5L12 19L14.5 21.5L17 19L20 22V10C20 5.58172 16.4183 2 12 2Z" | |||
There was a problem hiding this comment.
React Doctor · react-doctor/rendering-svg-precision (warning)
Your users download extra bytes for SVG d precision they can't see, so round it to 1 or 2 decimals.
Fix → Round path, points, and transform decimals to 1 or 2 digits. The extra precision adds bytes with no visible difference.
| const chatWindowBg = isLightTheme ? '#FAFAFA' : '#111111'; | ||
|
|
||
| // Submit initial query when overlay opens | ||
| useEffect(() => { |
There was a problem hiding this comment.
React Doctor · react-doctor/effect-needs-cleanup (error)
setTimeout creates a timer in useEffect without guaranteed cleanup. Return a cleanup function that owns every allocation so it does not leak after unmount.
Fix → Return a cleanup function that stops the subscription or timer: return () => target.removeEventListener(name, handler) for listeners, return () => clearInterval(id) or clearTimeout(id) for timers, return () => observer.disconnect() for observers, return () => socket.close() for connections, or return unsubscribe if the subscribe call already gave you one.
Cherry-picked from local main. Retints the light theme to a cool neutral/slate palette.