# DESIGN.md Hardcoded Colors Remediation - Detailed Fix Plan **Status:** READY FOR IMPLEMENTATION **Date Created:** 2026-04-25 **Total Files to Modify:** 23 **Total Color Fixes:** 44+ **Estimated Time:** 2-3 hours --- ## SEMANTIC COLOR MAPPING (From DESIGN.md) ```javascript // Use these ONLY - no arbitrary Tailwind colors allowed { // Status Indicators "Success/Healthy": "tertiary (#00e639)", // Bright terminal green "Error/Destructive": "error (#ffb4ab)", // Light error red "Error Dark": "on-error (#690005)", // Dark error text "Error Container": "error-container (#93000a)", // Error background "Error Container Text": "on-error-container (#ffdad6)", // Error text // Actions "Primary Action": "primary (#ffb781)", // Caution orange "Secondary Action": "secondary (#c8c6c5)", // Gray // UI Elements "Muted/Disabled": "muted (#474746)", // Dark gray "Outline/Border": "outline (#a48c7c)", // Tan border "Outline Variant": "outline-variant (#564335)", // Subtle border // Data Changes "Increase/Add": "tertiary (#00e639)", // Green "Decrease/Remove": "error (#ffb4ab)", // Red "Warning": "primary (#ffb781)", // Orange } ``` --- ## FILE-BY-FILE FIX PLAN ### **1. frontend/components/LogsTable.tsx** **Line 75-76: DB & DELETE action badges** ```tsx // CURRENT (WRONG) (log.action.includes('DB') ? "bg-sky-500/10 text-sky-400 border-sky-500/20" : log.action.includes('DELETE') ? "bg-red-500/10 text-red-500 border-red-500/30" : // FIX TO (log.action.includes('DB') ? "bg-secondary/10 text-secondary border-secondary/20" : log.action.includes('DELETE') ? "bg-error/10 text-error border-error/30" : ``` **Line 77: CREATE action badge** ```tsx // CURRENT (WRONG) (log.action.includes('CREATE') ? "bg-indigo-500/10 text-indigo-400 border-indigo-500/20" : // FIX TO (log.action.includes('CREATE') ? "bg-primary/10 text-primary border-primary/20" : ``` **Line 73: CHECK_IN action badge** ```tsx // CURRENT (WRONG) log.action.includes('CHECK_IN') ? "bg-green-500/10 text-green-500 border-green-500/20" : // FIX TO log.action.includes('CHECK_IN') ? "bg-tertiary/10 text-tertiary border-tertiary/20" : ``` **Line 99: Quantity change indicator** ```tsx // CURRENT (WRONG) (log.quantity_change || 0) > 0 ? "text-green-500" : ((log.quantity_change || 0) < 0 ? "text-rose-500" : // FIX TO (log.quantity_change || 0) > 0 ? "text-tertiary" : ((log.quantity_change || 0) < 0 ? "text-error" : ``` **Line 125: TRASH badge in modal** ```tsx // CURRENT (WRONG) (selectedLog.action.includes('TRASH') ? "bg-rose-500 text-black" : // FIX TO (selectedLog.action.includes('TRASH') ? "bg-error text-on-error" : ``` **Line 147: Quantity change in modal** ```tsx // CURRENT (WRONG) (selectedLog.quantity_change || 0) > 0 ? "text-green-500" : "text-rose-500" // FIX TO (selectedLog.quantity_change || 0) > 0 ? "text-tertiary" : "text-error" ``` --- ### **2. frontend/components/NewItemDialog.tsx** **Lines 29-31: Upload prompt box** ```tsx // CURRENT (WRONG) className="w-full flex flex-col items-center justify-center p-4 md:p-6 rounded-none bg-indigo-500/5 border border-indigo-500/20 group hover:border-indigo-500/50 transition-all font-normal text-indigo-400 gap-2 md:gap-3" ...