181 lines
5.3 KiB
CSS
181 lines
5.3 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
:root {
|
|
/* Light theme tokens */
|
|
--color-canvas: #f7f8fa;
|
|
--color-panel: #fff;
|
|
--color-surface: #f3f4f6;
|
|
--color-surface-secondary: #e5e7eb;
|
|
--color-text-primary: #18191a;
|
|
--color-text-secondary: #3e3e44;
|
|
--color-text-tertiary: #62666d;
|
|
--color-text-quaternary: #8a8f98;
|
|
--color-text-muted: #ababab;
|
|
--color-brand: #5e6ad2;
|
|
--color-accent: #7170ff;
|
|
--color-accent-hover: #5e6ad2;
|
|
--color-security: #7a7fad;
|
|
--color-status-green: #27a644;
|
|
--color-status-emerald: #10b981;
|
|
--color-border-primary: #e5e7eb;
|
|
--color-border-secondary: #d1d5db;
|
|
--color-border-tertiary: #cbd5e1;
|
|
--color-line-tint: #e5e7eb;
|
|
--color-line-tertiary: #d1d5db;
|
|
--border-subtle: rgba(0, 0, 0, 0.05);
|
|
--border-standard: rgba(0, 0, 0, 0.08);
|
|
/* RGB channels for opacity-modifier support (border-accent/60, ring-accent/30) */
|
|
--color-accent-ch: 113 112 255;
|
|
--color-brand-ch: 94 106 210;
|
|
/* ─── Admin badge color — easy to swap ─── */
|
|
--color-admin: #f5c518;
|
|
/* Navbar backdrop */
|
|
--navbar-bg: rgba(247, 248, 250, 0.85);
|
|
/* Scrollbar */
|
|
--scrollbar-track: #f3f4f6;
|
|
--scrollbar-thumb: #d1d5db;
|
|
--scrollbar-thumb-hover: #9ca3af;
|
|
}
|
|
|
|
.dark {
|
|
/* Dark theme tokens */
|
|
--color-canvas: #08090a;
|
|
--color-panel: #0f1011;
|
|
--color-surface: #191a1b;
|
|
--color-surface-secondary: #28282c;
|
|
--color-text-primary: #f7f8f8;
|
|
--color-text-secondary: #d0d6e0;
|
|
--color-text-tertiary: #8a8f98;
|
|
--color-text-quaternary: #62666d;
|
|
--color-text-muted: #ababab;
|
|
--color-brand: #5e6ad2;
|
|
--color-accent: #7170ff;
|
|
--color-accent-hover: #828fff;
|
|
--color-security: #7a7fad;
|
|
--color-status-green: #27a644;
|
|
--color-status-emerald: #10b981;
|
|
--color-border-primary: #23252a;
|
|
--color-border-secondary: #34343a;
|
|
--color-border-tertiary: #3e3e44;
|
|
--color-line-tint: #141516;
|
|
--color-line-tertiary: #18191a;
|
|
--border-subtle: rgba(255, 255, 255, 0.05);
|
|
--border-standard: rgba(255, 255, 255, 0.08);
|
|
/* ─── Admin badge color — easy to swap ─── */
|
|
--color-admin: #f5c518;
|
|
/* Navbar backdrop */
|
|
--navbar-bg: rgba(8, 9, 10, 0.85);
|
|
/* Scrollbar */
|
|
--scrollbar-track: #0f1011;
|
|
--scrollbar-thumb: #28282c;
|
|
--scrollbar-thumb-hover: #3e3e44;
|
|
}
|
|
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
body {
|
|
@apply bg-canvas text-textPrimary font-sans antialiased;
|
|
font-feature-settings: "cv01", "ss03";
|
|
}
|
|
|
|
/* Focus ring — accessible but minimal */
|
|
:focus-visible {
|
|
outline: 2px solid rgba(113, 112, 255, 0.6);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Scrollbar styling — theme-aware */
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: var(--scrollbar-track);
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: var(--scrollbar-thumb);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: var(--scrollbar-thumb-hover);
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
.btn-primary {
|
|
@apply inline-flex items-center justify-center px-5 py-2.5 bg-brand hover:bg-accentHover text-white font-medium text-sm rounded transition-colors duration-200;
|
|
font-feature-settings: "cv01", "ss03";
|
|
}
|
|
|
|
.btn-primary:focus-visible {
|
|
outline: 2px solid rgba(113, 112, 255, 0.6);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Card theme-aware (substitui card-dark) */
|
|
.card {
|
|
@apply bg-panel border border-borderSubtle rounded-xl overflow-hidden;
|
|
}
|
|
|
|
/* Alias retrocompatível */
|
|
.card-dark {
|
|
@apply bg-panel border border-borderSubtle rounded-xl overflow-hidden;
|
|
}
|
|
|
|
/* Inputs de formulário theme-aware */
|
|
.form-input {
|
|
@apply w-full rounded-lg border border-borderPrimary bg-surface px-3 py-2 text-sm text-textPrimary placeholder:text-textQuaternary
|
|
focus:border-accent/60 focus:outline-none focus:ring-1 focus:ring-accent/30
|
|
transition-colors;
|
|
}
|
|
|
|
/* Labels de formulário theme-aware */
|
|
.form-label {
|
|
@apply text-xs font-medium text-textSecondary uppercase tracking-wide;
|
|
}
|
|
|
|
/* Seção de card em formulários */
|
|
.form-section {
|
|
@apply rounded-xl border border-borderSubtle bg-panel p-6 space-y-4;
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
/* Stagger entry animation for property cards */
|
|
@keyframes fade-in-up {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(8px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.animate-fade-in-up {
|
|
animation: fade-in-up 0.25s ease both;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.animate-fade-in-up {
|
|
animation: none;
|
|
}
|
|
}
|
|
}
|