Files
labre-web/src/styles/global.css
T
LakG 4005008872 Fix: texto blanco sobre verde institucional en elementos rellenos
El verde UABC (#00723F) es demasiado oscuro para texto carbón (~2:1,
falla AA). Corrige BrandMark, nav activo (sidebar/dock), chip de
FiltroCategorias y botón de Google en login a texto/ícono blanco
(~6.2:1). Actualiza DESIGN.md/PRODUCT.md y design.json acorde.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 08:35:28 -07:00

164 lines
4.5 KiB
CSS

@import "tailwindcss";
@import "@fontsource-variable/jetbrains-mono";
@theme {
/* MotherDuck-derived system (shadow/radius/type mechanics); identity colors are UABC's own */
--color-cream: #f4efea;
--color-frost: #ffffff;
--color-chalk: #f8f8f7;
--color-ice: #ebf9ff;
--color-ink: #383838;
--color-pencil: #a1a1a1;
--color-graphite: #818181;
/* UABC institutional green/gold — dark enough that primary needs white text, not charcoal */
--color-primary: #00723F;
--color-primary-hover: #005f34;
--color-secondary: #DD971A;
--color-secondary-hover: #c78614;
--color-danger: #f38e84;
--color-danger-hover: #ec7469;
/* AA-contrast text variant of Coral Sketch — the fill color reads ~2:1 on white, too light for body text */
--color-danger-text: #a83224;
--color-positive: #38c1b0;
--color-attention: #ffde00;
--color-surface: var(--color-cream);
--font-sans: "JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, monospace;
--radius-card: 2px;
--shadow-hard: -6px 6px 0 0 var(--color-ink);
--shadow-hard-sm: -3px 3px 0 0 var(--color-ink);
/* Every Tailwind radius utility collapses to the system's 2px — non-negotiable per brief */
--radius-sm: 2px;
--radius-md: 2px;
--radius-lg: 2px;
--radius-xl: 2px;
--radius-2xl: 2px;
--radius-3xl: 2px;
}
@layer base {
html {
color-scheme: light;
}
body {
background: var(--color-cream);
color: var(--color-ink);
font-family: var(--font-sans);
letter-spacing: 0.02em;
-webkit-font-smoothing: antialiased;
}
:focus-visible {
outline: 2px solid var(--color-ink);
outline-offset: 2px;
}
::selection {
background: var(--color-primary);
color: white;
}
/* Tabular data keeps real square corners even where a nested control forgets to ask */
table {
font-variant-numeric: tabular-nums;
}
}
@layer components {
.btn {
@apply inline-flex items-center justify-center gap-2 rounded-[2px] px-4 py-2.5 font-medium
motion-safe:transition-transform motion-safe:duration-100 motion-safe:ease-out
disabled:opacity-50 disabled:pointer-events-none disabled:translate-x-0 disabled:translate-y-0;
min-height: 44px;
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
border: 2px solid var(--color-ink);
color: var(--color-ink);
box-shadow: var(--shadow-hard);
}
.btn:hover,
.btn:focus-visible {
transform: translate(-6px, 6px);
box-shadow: 0 0 0 0 transparent;
}
.btn:active {
transform: translate(-3px, 3px);
box-shadow: var(--shadow-hard-sm);
}
.btn-primary {
background: var(--color-primary);
color: white;
}
.btn-secondary {
background: var(--color-secondary);
color: var(--color-ink);
}
.btn-ghost {
background: transparent;
color: var(--color-ink);
border-color: color-mix(in oklab, var(--color-ink) 35%, transparent);
box-shadow: none;
}
.btn-ghost:hover,
.btn-ghost:focus-visible {
transform: none;
background: var(--color-chalk);
border-color: var(--color-ink);
}
.card {
@apply rounded-[2px] bg-white p-6;
border: 2px solid var(--color-ink);
}
.card-flat {
@apply rounded-[2px] bg-white p-6;
border: 1.5px solid var(--color-ink);
}
.card-raised {
@apply rounded-[2px] bg-white p-6;
border: 2px solid var(--color-ink);
box-shadow: var(--shadow-hard);
}
.card-link {
@apply rounded-[2px] bg-white p-6 block
motion-safe:transition-transform motion-safe:duration-100 motion-safe:ease-out;
border: 2px solid var(--color-ink);
box-shadow: var(--shadow-hard);
}
.card-link:hover,
.card-link:focus-visible {
transform: translate(-6px, 6px);
box-shadow: 0 0 0 0 transparent;
}
.input {
@apply w-full rounded-[2px] bg-white px-3 py-2.5
transition-[border-color] duration-100
focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2
focus-visible:outline-[color:var(--color-ink)];
border: 2px solid var(--color-ink);
min-height: 44px;
touch-action: manipulation;
}
.input:focus {
border-color: var(--color-primary);
}
.label {
@apply block text-sm font-medium mb-1 uppercase;
letter-spacing: 0.05em;
font-size: 0.75rem;
color: var(--color-ink);
}
.badge {
@apply inline-flex items-center rounded-[2px] px-2 py-0.5 text-xs font-semibold uppercase whitespace-nowrap;
letter-spacing: 0.03em;
border: 1.5px solid var(--color-ink);
}
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
}