## PALETTE'S JOURNAL - CRITICAL LEARNINGS ONLY ## 2026-02-13 - [Brand Color Contrast Failure] **Learning:** The brand color `#667eea` fails WCAG AA contrast (3.4:1) against white backgrounds, affecting accessibility for text headers and primary buttons. **Action:** Replace `#667eea` with `#4f46e5` (Indigo 600) which passes WCAG AA (5.5:1) while maintaining brand identity. Update all instances including `manifest.json`. ## 2026-02-22 - [Clipboard API & CSP] **Learning:** `navigator.clipboard.writeText` requires user permission, but in a headless Playwright environment, permissions must be explicitly granted via `browser.new_context(permissions=['clipboard-write'])`. Additionally, inline scripts injected dynamically require relaxing the Content Security Policy (CSP) from `script-src 'self'` to `script-src 'self' 'unsafe-inline'` or using a nonce, which is a critical security vs. usability trade-off for local dashboards. **Action:** When implementing "Copy to Clipboard" in environments with strict CSP, either implement a nonce system or document the `unsafe-inline` requirement. For testing, always grant clipboard permissions explicitly.