//=========================================== // THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template //=========================================== // Shared design tokens + base reset for Hexclave's in-page UIs (the dev tool // and the standalone clickmap overlay). Each feature passes its own scope // selector so the two stylesheets never collide, while the tokens stay defined // in exactly one place. This module deliberately lives outside both feature // folders so either feature can be removed without affecting the other. export function getInPageUiBaseCSS(scopeSelector: string): string { return ` ${scopeSelector} { --sdt-bg: #0a0a0b; --sdt-bg-elevated: #141416; --sdt-bg-hover: #1c1c1f; --sdt-bg-active: #232326; --sdt-bg-subtle: #111113; --sdt-border: #2a2a2e; --sdt-border-subtle: #1e1e22; --sdt-text: #ececef; --sdt-text-secondary: #8b8b93; --sdt-text-tertiary: #5c5c66; --sdt-accent: #6366f1; --sdt-accent-hover: #818cf8; --sdt-accent-muted: rgba(99, 102, 241, 0.15); --sdt-success: #22c55e; --sdt-success-muted: rgba(34, 197, 94, 0.15); --sdt-warning: #eab308; --sdt-warning-muted: rgba(234, 179, 8, 0.15); --sdt-error: #ef4444; --sdt-error-muted: rgba(239, 68, 68, 0.15); --sdt-info: #3b82f6; --sdt-info-muted: rgba(59, 130, 246, 0.15); --sdt-overlay-bg: rgba(17, 17, 19, 0.92); --sdt-radius: 8px; --sdt-radius-sm: 4px; --sdt-radius-lg: 12px; --sdt-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; --sdt-font-mono: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo, Consolas, monospace; --sdt-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05); --sdt-trigger-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08); all: initial; font-family: var(--sdt-font); color: var(--sdt-text); font-size: 13px; line-height: 1.5; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; box-sizing: border-box; } ${scopeSelector} *, ${scopeSelector} *::before, ${scopeSelector} *::after { box-sizing: border-box; } /* Thin, unobtrusive scrollbars for every scroll container */ ${scopeSelector} * { scrollbar-width: thin; scrollbar-color: var(--sdt-border) transparent; } ${scopeSelector} *::-webkit-scrollbar { width: 6px; height: 6px; } ${scopeSelector} *::-webkit-scrollbar-track { background: transparent; } ${scopeSelector} *::-webkit-scrollbar-thumb { background: var(--sdt-border); border-radius: 3px; } ${scopeSelector} *::-webkit-scrollbar-thumb:hover { background: var(--sdt-text-tertiary); } ${scopeSelector} *::-webkit-scrollbar-corner { background: transparent; } /* --- Light theme: system preference fallback --- */ @media (prefers-color-scheme: light) { ${scopeSelector} { --sdt-bg: #ffffff; --sdt-bg-elevated: #f8f8fa; --sdt-bg-hover: #f0f0f3; --sdt-bg-active: #e8e8ec; --sdt-bg-subtle: #fafafa; --sdt-border: #e0e0e5; --sdt-border-subtle: #eaeaef; --sdt-text: #111113; --sdt-text-secondary: #6b6b73; --sdt-text-tertiary: #9b9ba3; --sdt-accent: #6366f1; --sdt-accent-hover: #4f46e5; --sdt-accent-muted: rgba(99, 102, 241, 0.1); --sdt-success: #16a34a; --sdt-success-muted: rgba(22, 163, 74, 0.1); --sdt-warning: #ca8a04; --sdt-warning-muted: rgba(202, 138, 4, 0.1); --sdt-error: #dc2626; --sdt-error-muted: rgba(220, 38, 38, 0.1); --sdt-info: #2563eb; --sdt-info-muted: rgba(37, 99, 235, 0.1); --sdt-overlay-bg: rgba(255, 255, 255, 0.92); --sdt-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.06); --sdt-trigger-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.06); } } /* --- Stack theme explicit overrides (take priority over system preference) --- */ html:has(head > [data-stack-theme="light"]) ${scopeSelector} { --sdt-bg: #ffffff; --sdt-bg-elevated: #f8f8fa; --sdt-bg-hover: #f0f0f3; --sdt-bg-active: #e8e8ec; --sdt-bg-subtle: #fafafa; --sdt-border: #e0e0e5; --sdt-border-subtle: #eaeaef; --sdt-text: #111113; --sdt-text-secondary: #6b6b73; --sdt-text-tertiary: #9b9ba3; --sdt-accent: #6366f1; --sdt-accent-hover: #4f46e5; --sdt-accent-muted: rgba(99, 102, 241, 0.1); --sdt-success: #16a34a; --sdt-success-muted: rgba(22, 163, 74, 0.1); --sdt-warning: #ca8a04; --sdt-warning-muted: rgba(202, 138, 4, 0.1); --sdt-error: #dc2626; --sdt-error-muted: rgba(220, 38, 38, 0.1); --sdt-info: #2563eb; --sdt-info-muted: rgba(37, 99, 235, 0.1); --sdt-overlay-bg: rgba(255, 255, 255, 0.92); --sdt-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.06); --sdt-trigger-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.06); } html:has(head > [data-stack-theme="dark"]) ${scopeSelector} { --sdt-bg: #0a0a0b; --sdt-bg-elevated: #141416; --sdt-bg-hover: #1c1c1f; --sdt-bg-active: #232326; --sdt-bg-subtle: #111113; --sdt-border: #2a2a2e; --sdt-border-subtle: #1e1e22; --sdt-text: #ececef; --sdt-text-secondary: #8b8b93; --sdt-text-tertiary: #5c5c66; --sdt-accent: #6366f1; --sdt-accent-hover: #818cf8; --sdt-accent-muted: rgba(99, 102, 241, 0.15); --sdt-success: #22c55e; --sdt-success-muted: rgba(34, 197, 94, 0.15); --sdt-warning: #eab308; --sdt-warning-muted: rgba(234, 179, 8, 0.15); --sdt-error: #ef4444; --sdt-error-muted: rgba(239, 68, 68, 0.15); --sdt-info: #3b82f6; --sdt-info-muted: rgba(59, 130, 246, 0.15); --sdt-overlay-bg: rgba(17, 17, 19, 0.92); --sdt-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05); --sdt-trigger-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08); } `; }