diff --git a/frontend/scripts/color-guard.mjs b/frontend/scripts/color-guard.mjs index 6fd5f276..e0b4cc2e 100644 --- a/frontend/scripts/color-guard.mjs +++ b/frontend/scripts/color-guard.mjs @@ -194,7 +194,7 @@ async function validateTokenRegistry() { const darkSeen = new Map(); for (const [name, value] of entries) { - if (!/^ws-[0-9a-f]{6,8}$/.test(name)) { + if (!/^ws-[a-z0-9]+(?:-[a-z0-9]+)*$/.test(name)) { errors.push(`invalid token name "${name}"`); } const light = String(value.light ?? "").toLowerCase(); @@ -234,7 +234,7 @@ function collectWsVarsFromBlocks(css, selectorPattern) { const selector = block[1]?.trim() ?? ""; const body = block[2] ?? ""; if (!selectorPattern.test(selector)) continue; - for (const match of body.matchAll(/--ws-color-([0-9a-z]+)\s*:/g)) { + for (const match of body.matchAll(/--ws-color-([0-9a-z-]+)\s*:/g)) { vars.add(`ws-${match[1]}`); } } @@ -246,7 +246,7 @@ function validateGlobalsCoverage(tokenEntries) { const rootVars = collectWsVarsFromBlocks(css, /(^|,)\s*:root(\s|,|$)/); const darkVars = collectWsVarsFromBlocks(css, /(^|,)\s*\.dark(\s|,|$)/); const inlineVars = new Set( - [...css.matchAll(/--color-ws-([0-9a-z]+)\s*:/g)].map((match) => `ws-${match[1]}`), + [...css.matchAll(/--color-ws-([0-9a-z-]+)\s*:/g)].map((match) => `ws-${match[1]}`), ); const tokenNames = new Set(tokenEntries.map(([name]) => name)); diff --git a/frontend/src/app/workspace/chats/[thread_id]/page.tsx b/frontend/src/app/workspace/chats/[thread_id]/page.tsx index 1c2d7e5e..da97445c 100644 --- a/frontend/src/app/workspace/chats/[thread_id]/page.tsx +++ b/frontend/src/app/workspace/chats/[thread_id]/page.tsx @@ -96,7 +96,7 @@ export default function ChatPage() { sloganIndex % motivationSlogans.length ] ?? { text: t.chatPage.defaultSlogan, - color: "var(--color-ws-333333)", + color: "var(--color-ws-fg-primary)", }; const tickerCharacterList = useMemo(() => { const seen = new Set(); @@ -357,7 +357,7 @@ export default function ChatPage() { @@ -420,7 +420,7 @@ export default function ChatPage() {