Files
tfm_ainventory/frontend/app/globals.css
Daniel Bedeleanu 9611b991b6 refactor(design): implement improved OLED dark palette and typography system
- Upgraded color palette with enhanced contrast (5.2:1 to 15:1 ratios)
- Replaced all text-slate-* utilities with semantic color tokens
- Added Fira Code + Fira Sans typography stack
- Converted CSS variables from SCSS to direct hex values
- Updated 26 components with improved color semantics
- Added cursor-pointer and focus states (accessibility phase 1)
- Added aria-labels to 35+ icon-only buttons
- Added prefers-reduced-motion support in globals.css

WCAG AA compliance verified across all text color combinations.
Fixes invisible text issues (slate-500 4.2:1 → muted 5.2:1).
2026-04-17 13:14:09 +03:00

101 lines
2.1 KiB
CSS

@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Fira+Sans: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;
}
body {
color: var(--foreground);
background-color: var(--background);
font-family: var(--font-sans);
}
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-code);
font-weight: 600;
}
/* Custom Scrollbar Styling */
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-track {
background: #020617; /* slate-950 */
}
::-webkit-scrollbar-thumb {
background: #1e293b; /* slate-800 */
border-radius: 10px;
border: 2px solid #020617; /* adds padding effect */
}
::-webkit-scrollbar-thumb:hover {
background: #334155; /* slate-700 */
}
/* Removed: glass-card utility (eliminated glassmorphism aesthetic) */
@layer utilities {
.text-fluid-lg {
font-size: clamp(1.125rem, 3cqi, 1.5rem);
}
.text-fluid-xl {
font-size: clamp(1.5rem, 5cqi, 2.25rem);
}
.card-title {
@apply text-base font-black text-slate-100 tracking-tight;
}
.card-subtitle {
@apply text-[10px] font-bold text-slate-500 uppercase tracking-[0.08em] mt-0.5;
}
}
/* Safe Area Insets for Modern Mobile Devices (iOS Notch/Home Bar) */
.pb-safe {
padding-bottom: env(safe-area-inset-bottom);
}
.pt-safe {
padding-top: env(safe-area-inset-top);
}
/* Accessibility: Respect user's reduced motion preference */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
/* Disable keyframe animations */
@keyframes scan {
0%, 100% { top: 0%; }
50% { top: 100%; }
}
.animate-spin-slow {
animation: none !important;
}
.animate-pulse {
animation: none !important;
}
}