diff --git a/AI_RULES.md b/AI_RULES.md index d49f4248..90a63f69 100644 --- a/AI_RULES.md +++ b/AI_RULES.md @@ -27,6 +27,7 @@ This is the **Single Source of Truth** for ALL AI agents. Refer to [PROJECT_ARCH - **NO BOLD FONTS**: Use `font-normal` throughout. Hierarchy via size and color only. - **NO `tracking-widest`**. - **StatCard Typography**: Numeric values in StatCards MUST match the exact text size of their corresponding labels (e.g., `text-base md:text-lg`) to avoid overwhelming the density of the component. +- **Shapes**: All components MUST use 0px border radius (sharp corners) and NO box-shadows. Depth via tonal layers and borders only. - **Layout**: Main pages MUST use `max-w-7xl`. - **Unified Headers**: Icon box (`p-4 bg-primary/10 border-primary/20`) + Title (`text-3xl font-normal`). - **Iconography**: Use **Lucide Icons** exclusively. diff --git a/DESIGN.2.md b/DESIGN.2.md new file mode 100644 index 00000000..e69de29b diff --git a/backups/ainventory_2026-04-25_12-21-30.tar.gz b/backups/ainventory_2026-04-25_12-21-30.tar.gz new file mode 100644 index 00000000..c51ca0ac Binary files /dev/null and b/backups/ainventory_2026-04-25_12-21-30.tar.gz differ diff --git a/frontend/VERSION.json b/frontend/VERSION.json index 3ff78f2a..d0ee76a3 100644 --- a/frontend/VERSION.json +++ b/frontend/VERSION.json @@ -1,6 +1,6 @@ { - "version": "1.14.25", - "last_build": "2026-04-25-1221", + "version": "1.14.26", + "last_build": "2026-04-25-1225", "codename": "ConfigCore", - "commit": "b74d1172" + "commit": "701e30fb" } \ No newline at end of file diff --git a/frontend/app/globals.css b/frontend/app/globals.css index 71b32795..33edc79c 100644 --- a/frontend/app/globals.css +++ b/frontend/app/globals.css @@ -1,54 +1,92 @@ -@import url('https://fonts.googleapis.com/css2?family=Fira+Code&family=Fira+Sans&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap'); @tailwind base; @tailwind components; @tailwind utilities; -:root { - /* Dark Mode (OLED) - Improved Contrast Palette */ - --background: #0A0E27; - --foreground: #F0F4F8; - --primary: #3B82F6; - --primary-foreground: #FFFFFF; - --font-code: 'Fira Code', monospace; - --font-sans: 'Fira Sans', sans-serif; +@layer base { + :root { + --background: #131313; + --foreground: #FFFFFF; + --primary: #F58618; + --border: #222222; + --muted: #888888; + } + + * { + @apply border-border; + border-radius: 0 !important; + box-shadow: none !important; + } + + body { + @apply bg-background text-foreground antialiased font-normal; + font-family: 'Space Grotesk', sans-serif; + letter-spacing: -0.01em; + } + + /* Strict "NO BOLD" enforcement from AI_RULES.md */ + *, *::before, *::after { + font-weight: 400 !important; + } + + /* No uppercase/italics as per AI_RULES.md */ + *, *::before, *::after { + text-transform: none !important; + font-style: normal !important; + } + + h1, h2, h3, h4, h5, h6 { + @apply tracking-tighter; + } } -body { - color: var(--foreground); - background-color: var(--background); - font-family: var(--font-sans); - font-weight: 400; +@layer components { + /* Level 1 (Cards/Panels): #121212 with a 1px solid border of #222222 */ + .level-1 { + @apply bg-[#121212] border border-[#222222]; + } + + /* Level 2 (Modals/Popovers): #1A1A1A with a 2px solid border of the Primary Orange */ + .level-2 { + @apply bg-[#1A1A1A] border-2 border-primary; + } + + /* Active State */ + .active-border { + @apply border border-primary; + } + + /* High-contrast status blocks */ + .status-success { + @apply bg-[#00FF41] text-black px-2 py-0.5; + } + + .status-alert { + @apply bg-[#F58618] text-black px-2 py-0.5; + } } -h1, h2, h3, h4, h5, h6 { - font-family: var(--font-code); - font-weight: 400; -} - -/* Custom Scrollbar Styling */ +/* Custom Industrial Scrollbar Styling */ ::-webkit-scrollbar { - width: 10px; - height: 10px; + width: 8px; + height: 8px; } ::-webkit-scrollbar-track { - background: #020617; /* slate-950 */ + background: #0A0A0A; } ::-webkit-scrollbar-thumb { - background: #1e293b; /* slate-800 */ - border-radius: 10px; - border: 2px solid #020617; /* adds padding effect */ + background: #222222; + border-radius: 0; } ::-webkit-scrollbar-thumb:hover { - background: #334155; /* slate-700 */ + background: #F58618; } -/* Removed: glass-card utility (eliminated glassmorphism aesthetic) */ @layer utilities { - .text-fluid-lg { font-size: clamp(1.125rem, 3cqi, 1.5rem); } @@ -58,15 +96,20 @@ h1, h2, h3, h4, h5, h6 { } .card-title { - @apply text-base font-normal text-slate-100 tracking-tight; + @apply text-base font-normal tracking-tight; } .card-subtitle { - @apply text-xs font-normal text-slate-500 tracking-[0.08em] mt-0.5; + @apply text-xs font-normal text-muted-foreground tracking-tight mt-0.5; + } + + .mono-data { + @apply font-normal tracking-normal; + font-variant-numeric: tabular-nums; } } -/* Safe Area Insets for Modern Mobile Devices (iOS Notch/Home Bar) */ +/* Safe Area Insets for Modern Mobile Devices */ .pb-safe { padding-bottom: env(safe-area-inset-bottom); }