From 5afb04c580c24da9e613b59e7c99cf6aa6103670 Mon Sep 17 00:00:00 2001 From: poyrazavsever Date: Fri, 17 Jul 2026 22:51:51 +0300 Subject: [PATCH] fix(theme): preserve poyraz dark interaction tokens --- scripts/phase3-storage-smoke.ts | 16 +++++++++++++++- server/branding/runtime.ts | 1 - server/branding/service.ts | 7 +------ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/scripts/phase3-storage-smoke.ts b/scripts/phase3-storage-smoke.ts index 277fb6a..4a45523 100644 --- a/scripts/phase3-storage-smoke.ts +++ b/scripts/phase3-storage-smoke.ts @@ -93,7 +93,21 @@ try { assert.equal(fileService.readPublicBranding(darkLogo.id).metadata.id, darkLogo.id); assert.equal(fileService.readPublicBranding(icon.id).metadata.id, icon.id); assert.ok(contrastRatio(branding.primaryColor, branding.cssVariables["--poyraz-primary-foreground"]) >= 4.5); - assert.ok(contrastRatio(branding.accentColor, branding.cssVariables["--poyraz-accent-foreground"]) >= 4.5); + assert.equal( + branding.cssVariables["--poyraz-accent"], + undefined, + "Poyraz must own the light/dark semantic accent surface", + ); + assert.equal( + branding.cssVariables["--poyraz-accent-foreground"], + undefined, + "Poyraz must own the light/dark semantic accent foreground", + ); + assert.equal( + branding.cssVariables["--poyraz-accent-hover"], + undefined, + "Poyraz must own the light/dark semantic accent hover surface", + ); assertDomainError(() => brandingService.update(clientOne, { applicationName: "Attack" }), "FORBIDDEN"); assertDomainError(() => brandingService.update(ownerTwo, { applicationName: "Attack" }), "FORBIDDEN"); assertDomainError(() => brandingService.update(ownerOne, { primaryColor: "red" }), "VALIDATION_ERROR"); diff --git a/server/branding/runtime.ts b/server/branding/runtime.ts index d713e05..c9ebca1 100644 --- a/server/branding/runtime.ts +++ b/server/branding/runtime.ts @@ -19,7 +19,6 @@ export function getPublicBranding(): PublicBranding { iconUrl: null, cssVariables: buildBrandingTokens( DEFAULT_BRANDING.primaryColor, - DEFAULT_BRANDING.accentColor, DEFAULT_BRANDING.radiusScale, ), }; diff --git a/server/branding/service.ts b/server/branding/service.ts index 923b9b6..e3f9eb6 100644 --- a/server/branding/service.ts +++ b/server/branding/service.ts @@ -106,7 +106,7 @@ export class BrandingService { lightLogoUrl: publicAssetUrl(lightLogoId), darkLogoUrl: publicAssetUrl(darkLogoId), iconUrl: publicAssetUrl(settings.iconFileId), - cssVariables: buildBrandingTokens(settings.primaryColor, settings.accentColor, settings.radiusScale), + cssVariables: buildBrandingTokens(settings.primaryColor, settings.radiusScale), }; } @@ -164,7 +164,6 @@ export class BrandingService { export function buildBrandingTokens( primary: string, - accent: string, radiusScale: "compact" | "default" | "soft", ): Record<`--${string}`, string> { const radii = { @@ -173,7 +172,6 @@ export function buildBrandingTokens( soft: ["0.5rem", "0.75rem", "1rem", "1.25rem", "1.5rem"], }[radiusScale]; const primaryForeground = readableForeground(primary); - const accentForeground = readableForeground(accent); return { "--poyraz-primary": primary, @@ -188,9 +186,6 @@ export function buildBrandingTokens( "--poyraz-primary-dark": mixHex(primary, "#000000", 0.4), "--poyraz-primary-muted": `color-mix(in srgb, ${primary} 12%, var(--poyraz-surface))`, "--poyraz-primary-muted-foreground": primary, - "--poyraz-accent": accent, - "--poyraz-accent-foreground": accentForeground, - "--poyraz-accent-hover": mixHex(accent, accentForeground, 0.1), "--poyraz-ring": primary, "--poyraz-focus-ring": primary, "--poyraz-radius-xs": radii[0],