--- name: LabPréstamos description: Sistema institucional UABC para préstamo de material de laboratorio — la bitácora de papel y Excel, digitalizada. colors: verde-institucional: "#00723F" verde-institucional-hover: "#005f34" dorado-uabc: "#DD971A" dorado-uabc-hover: "#c78614" superficie: "#F4F7F5" tinta: "#2D3748" peligro: "#C53030" typography: headline: fontFamily: "Inter Variable, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif" fontSize: "1.5rem (2xl) → 1.875rem (3xl) md+" fontWeight: 600 lineHeight: 1.25 title: fontFamily: "Inter Variable, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif" fontSize: "1.125rem" fontWeight: 600 lineHeight: 1.4 body: fontFamily: "Inter Variable, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif" fontSize: "0.875rem" fontWeight: 400 lineHeight: 1.5 label: fontFamily: "Inter Variable, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif" fontSize: "0.875rem" fontWeight: 500 lineHeight: 1.3 caption: fontFamily: "Inter Variable, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif" fontSize: "0.75rem" fontWeight: 400 lineHeight: 1.4 rounded: control: "0.5rem" emphasis: "1rem" pill: "9999px" spacing: tight: "0.5rem" base: "1rem" loose: "1.5rem" section: "2rem" components: button-primary: backgroundColor: "{colors.verde-institucional}" textColor: "#ffffff" rounded: "{rounded.control}" padding: "10px 16px" button-secondary: backgroundColor: "{colors.dorado-uabc}" textColor: "#ffffff" rounded: "{rounded.control}" padding: "10px 16px" button-ghost: backgroundColor: "transparent" textColor: "{colors.tinta}" rounded: "{rounded.control}" padding: "10px 16px" card: backgroundColor: "#ffffff" textColor: "{colors.tinta}" rounded: "{rounded.control}" padding: "24px" input: backgroundColor: "#ffffff" textColor: "{colors.tinta}" rounded: "{rounded.control}" padding: "10px 12px" --- # Design System: LabPréstamos ## Overview **Creative North Star: "La Bitácora Digital"** LabPréstamos is the printed loan sheet and the Excel logbook it used to feed, collapsed into one live surface. Every visual decision defends that lineage: nothing decorative, nothing that would feel out of place next to an official UABC form, but nothing that feels like a cold spreadsheet either. The system is **cálido pero confiable** — warm but reliable — and it earns the "warm" half narrowly: a gold accent, soft rounded corners, and gentle motion sit on top of an otherwise flat, administrative base. The page itself stays flat and quiet — white cards on a pale green-grey surface, hairline borders instead of shadows, tabular numbers lined up like a real ledger. Depth is reserved for the two things that are genuinely *floating above* the page: the toast notifications and the mobile navigation dock. That asymmetry is deliberate — it is how the system tells the eye "this is the document" from "this is the chrome." Two audiences read this bitácora differently. The alumno's default device is the phone — the catalog, the request modal, the pill-shaped floating dock are all tuned for thumbs. The admin's default device is the desktop — dense tables, a persistent sidebar, KPI tiles. Neither view degrades on the other's device; every screen ships both a table and a card-list rendering. **Key Characteristics:** - Flat administrative base (white cards, hairline ink-tinted borders, no ambient shadow) - Shadow appears only on floating overlay chrome — the mobile dock and toasts — never on the page plane - Every status is a tinted pill: 12–15% color wash background, full-strength text - Tabular numbers everywhere a quantity, date, or stock figure appears - One typeface (Inter Variable) carrying every role through weight and size alone - Motion is a courtesy, not a performance: `motion-safe:`-gated, specific-property transitions, no `transition-all` ## Colors Two institutional hues carry the whole palette under a strict 60/30/10 split — green dominant, gold as a deliberately rare accent, everything else neutral ink and white. ### Primary - **Verde Institucional** (`#00723F`): the UABC green. Primary buttons, the desktop sidebar's entire background, active nav states, focus rings, "healthy/positive" status pills (disponible, aprobado, devuelto), the login mark. This is the color of the system's authority — it appears on anything that confirms, approves, or orients. ### Secondary - **Dorado UABC** (`#DD971A`): the institutional gold. Used sparingly and only as an accent — secondary buttons, the "en préstamo" KPI tile, "mantenimiento" status pills, the logo-mark square on the sidebar/mobile header. Never the dominant color of a screen. ### Neutral - **Superficie** (`#F4F7F5`): the page background — a near-white green-grey, not pure white. Everything else (cards, dialogs, the desktop sidebar's text, dock) sits on top of it. - **Tinta** (`#2D3748`): body text, and — critically — the **source color for every border in the system**. Borders are never a fixed gray; they're `color-mix(in oklab, var(--color-ink) N%, transparent)` at 8–20% depending on prominence. This ties every hairline to the same ink token instead of a separate gray scale. - **Peligro** (`#C53030`): errors, destructive actions, and the one status that is allowed to break the tinted-pill convention (see Named Rules). ### Named Rules **The Ink-Mix Border Rule.** Every hairline border and divider is `color-mix(in oklab, var(--color-tinta) N%, transparent)`, never a literal gray hex. A border is always "ink, diluted," so it stays coherent with body text at any opacity. **The Vencido Exception.** Every status pill uses the tinted-fill pattern (see Components → Badges) *except* an overdue loan ("Vencido"), which gets a solid `peligro` fill with white text — on both the table badge and, on mobile, a light danger wash across the entire card background. This is the system's one permitted alarm: reserve a solid semantic fill for the single state that genuinely needs to interrupt a scan, and only that state. ## Typography **Body & Display Font:** Inter Variable (with `ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif` fallback) **Character:** One typeface for the entire system — hierarchy comes from weight and size, never a second family. It reads as a single, consistent institutional voice rather than a "brand font + UI font" split. ### Hierarchy - **Headline** (600, 1.5rem → 1.875rem at `md:`, 1.25 line-height): page-level `

`s — "Mis préstamos", "Estadísticas", the login screen's title. - **Title** (600, 1.125rem, 1.4 line-height): section and card headers — "Inicia sesión", "Inventario", empty-state headings. - **Body** (400, 0.875rem, 1.5 line-height): the default text size for the whole system — table cells, descriptions, list content. Notably small-scale throughout; this is a dense operational tool, not editorial content. - **Label** (500, 0.875rem): form field labels (`.label`), rendered at 90% ink opacity. - **Caption** (400, 0.75rem, opacity 60–80%): metadata — matrícula, inventory numbers, timestamps, hint text under fields. ### Named Rules **The Tabular Numbers Rule.** Any figure that represents a count — cantidad, stock (`disponible / total`), KPI values, dates — is rendered with `font-variant-numeric: tabular-nums`. Numbers must align like a ledger column, because that is literally what they replace. ## Layout The system runs on Tailwind's default breakpoint (`md:` = 768px) as the single hard split between the mobile and desktop layouts — there is no intermediate tablet treatment. **Desktop (≥768px):** a fixed 256px (`w-64`) left sidebar in solid Verde Institucional, full page height. It is collapsible: a hamburger button above the content toggles a `sidebar-collapsed` class on ``, animated with a 200ms `translateX(-100%)`; the choice persists in `localStorage` and is applied via a blocking inline `