--- version: "2.0" name: "GastroSib" description: "Identidad B2B premium para abastecimiento HoReCa: un sistema oscuro, industrial y editorial que trata la logística gastronómica como un sistema operativo de precisión. El rojo es señal, no decoración." colors: primary: "#AF1917" secondary: "#B88D57" accent: "#AF1917" neutral: "#F5F1EA" background: "#111111" surface: "#1A1A1A" text-primary: "#F5F1EA" text-secondary: "#A8A29A" border: "#2A2A2A" typography: display-lg: fontFamily: "Urbanist" fontSize: "56px" fontWeight: 700 lineHeight: "58px" letterSpacing: "-0.02em" body-md: fontFamily: "DM Sans" fontSize: "16px" fontWeight: 400 lineHeight: "24px" label-md: fontFamily: "Urbanist" fontSize: "13px" fontWeight: 700 lineHeight: "18px" letterSpacing: "0.16em" mono-data: fontFamily: "Space Mono" fontSize: "12px" fontWeight: 400 lineHeight: "20px" rounded: sm: "6px" md: "12px" full: "9999px" spacing: base: "8px" sm: "8px" md: "16px" lg: "24px" xl: "48px" gap: "24px" section-padding: "96px" components: button-primary: backgroundColor: "{colors.primary}" textColor: "{colors.neutral}" typography: "{typography.label-md}" rounded: "{rounded.sm}" padding: "14px 24px" button-secondary: backgroundColor: "transparent" textColor: "{colors.neutral}" border: "1px solid {colors.border}" typography: "{typography.label-md}" rounded: "{rounded.sm}" padding: "14px 24px" button-link: textColor: "{colors.primary}" typography: "{typography.label-md}" rounded: "{rounded.sm}" padding: "0px" card: background: "{colors.surface}" border: "1px solid {colors.border}" borderRadius: "{rounded.md}" padding: "24px" boxShadow: "0 18px 40px -16px rgba(0,0,0,0.55)" --- # DESIGN.md — GastroSib > Sistema de diseño extraído del board de identidad de marca **GastroSib — Brand Identity for Premium HoReCa Supply**. > Formato DESIGN.md v2: frontmatter YAML de tokens (legible por máquina) + secciones narrativas (legibles por humano y agente). > Fuente: imagen de brand board estático. Las secciones Motion/WebGL/ThreeJS se completan o se omiten según lo que la fuente realmente documenta. --- ## 1. Tema Visual y Atmósfera GastroSib viste la logística gastronómica B2B con la severidad de un sistema operativo. La paleta es casi monocroma —negro profundo y blanco cálido— interrumpida por un único rojo de señal que aparece solo donde importa: el símbolo, un número de paso, un código de lote. Es la marca de un socio de servicio premium, no de un almacén: deliberadamente despojada de cualquier cliché decorativo de restaurante (sin manteles, sin caligrafías, sin texturas rústicas). En su lugar, rejillas estrictas, mayúsculas geométricas condensadas y fotografía de producto con sombra dramática que sugiere precisión nivel Michelin. El gesto distintivo es la marca: un círculo tipo botón de encendido con una chispa en diamante, fusión de la letra **G**, la función del chef y el "encendido" del servicio: una sola pieza que dice *continuidad de suministro + estructura geométrica*. La frase que resume el sistema, citada por el propio CEO en el board: *"no parece un logo, parece un sistema operativo."* **Palabras clave de personalidad**: preciso, industrial, premium, confiable, editorial, minimalista. **Densidad del layout**: spacious (editorial, con aire negativo generoso entre bloques). **Modo preferido**: oscuro (Dark Mode garantiza operación cómoda bajo la iluminación baja de las zonas de almacén; es la base del sistema, no una variante). **Nivel de ornamentación**: flat con acentos precisos. Sin gradientes blandos ni texturas; la única "ornamentación" es el rojo de señal y los códigos monoespaciados de datos. **Audiencia visual objetivo**: compradores y operaciones B2B del segmento HoReCa (hoteles, restaurantes, cafés) y equipos de cocina profesionales. --- ## 2. Paleta de Colores y Roles Semánticos Paleta de 4 colores tal como la documenta el board, más derivados de superficie/estado necesarios para construir interfaces. Los 4 hex base son textuales del brand board. ### Colores de marca | Nombre | Variable CSS | Hex | Rol | Texto sobre él | |--------|-------------|-----|-----|----------------| | Brand Red (Primario) | `--color-primary` | `#AF1917` | Símbolo, CTAs, señal, números de paso, acento "Sib" | `#F5F1EA` | | Brand Red hover | `--color-primary-hover` | `#C61E1B` | Estado hover del primario | `#F5F1EA` | | Brand Red activo | `--color-primary-active` | `#8E120F` | Estado pressed del primario | `#F5F1EA` | | Gold Accent (Secundario) | `--color-secondary` | `#B88D57` | Highlights editoriales, premium, usado con moderación | `#111111` | | Acento | `--color-accent` | `#AF1917` | Highlights, indicadores, estados activos | `#F5F1EA` | > **Regla de uso del rojo**: es *señal*, no relleno. Energía, urgencia, indicación. Nunca grandes superficies rojas. > **Regla del oro**: editorial, "used sparingly" — encabezados de catálogo, filetes, detalles premium. ### Colores de superficie | Nombre | Variable CSS | Hex | Rol | |--------|-------------|-----|-----| | Deep Black (Fondo) | `--color-bg` | `#111111` | Background de página. Autoridad y profundidad. | | Superficie | `--color-surface` | `#1A1A1A` | Cards, paneles, tiles | | Superficie elevada | `--color-surface-raised` | `#222222` | Dropdowns, popovers | | Superficie overlay | `--color-surface-overlay` | `#0C0C0C` | Modals, sheets | | Borde | `--color-border` | `#2A2A2A` | Divisores, bordes de card/input | | Borde sutil | `--color-border-subtle` | `#1F1F1F` | Separadores ligeros | ### Colores de texto | Nombre | Variable CSS | Hex | Uso | |--------|-------------|-----|-----| | Warm White (principal) | `--color-text` | `#F5F1EA` | Body text, headings, negative space | | Texto secundario | `--color-text-secondary` | `#A8A29A` | Descriptions, subtítulos | | Texto muted | `--color-text-muted` | `#6E6A63` | Placeholders, metadata | | Texto sobre primario | `--color-text-on-primary` | `#F5F1EA` | Texto en botones rojos | ### Colores de estado > El board no documenta una escala de estados; se derivan de la lógica de la marca (rojo = señal/error encaja con el acento, oro/verde para éxito editorial). Marcados como derivados. | Estado | Variable CSS | Hex | Texto | |--------|-------------|-----|-------| | Éxito | `--color-success` | `#5E8C61` | `#F5F1EA` | | Advertencia | `--color-warning` | `#B88D57` | `#111111` | | Error | `--color-error` | `#AF1917` | `#F5F1EA` | | Info | `--color-info` | `#A8A29A` | `#111111` | --- ## 3. Reglas de Tipografía Dos familias, ambas **Google Fonts nativas** (sin sustitución): Urbanist para impacto y voz de marca, DM Sans para comunicación técnica detallada. Una tercera, monoespaciada, aparece en los códigos de datos del empaque (ITEM / BATCH / LOGISTICS). ### Familias tipográficas ```css /* Heading: Urbanist — sans geométrica, moderna, confiada. Para impacto y momentos clave de marca. */ --font-heading: 'Urbanist', sans-serif; /* Body: DM Sans — limpia, muy legible, neutral. Para comunicación técnica detallada. */ --font-body: 'DM Sans', sans-serif; /* Mono/data: Space Mono — códigos de lote, SKU, etiquetas logísticas. */ --font-mono: 'Space Mono', monospace; ``` **Google Fonts:** ```html ``` **Nota sobre sustitución**: ninguna. Tanto **Urbanist** como **DM Sans** están documentadas literalmente en el brand board y existen en Google Fonts, así que se renderizan tal cual (fidelidad total). `Space Mono` es la elección para los códigos monoespaciados observados en el empaque. ### Escala tipográfica | Token | rem | px equiv. | Line height | Uso | |-------|-----|-----------|-------------|-----| | `--text-xs` | 0.75rem | ~12px | 1.5 | Códigos de datos, captions, badges | | `--text-sm` | 0.875rem | ~14px | 1.5 | Labels, helper text | | `--text-base` | 1rem | 16px | 1.6 | Body text principal (DM Sans) | | `--text-lg` | 1.125rem | ~18px | 1.55 | Intro paragraphs | | `--text-xl` | 1.25rem | ~20px | 1.3 | Subheadings de sección | | `--text-2xl` | 1.5rem | ~24px | 1.2 | Títulos de card (Urbanist Bold) | | `--text-3xl` | 1.875rem | ~30px | 1.15 | Encabezados de sección | | `--text-4xl` | 2.25rem | ~36px | 1.1 | H1 de contenido | | `--text-5xl` | 3.5rem | ~56px | 1.02 | Display / hero ("THE BOOK") | ### Pesos tipográficos ```css --font-light: 300; /* Urbanist/DM Sans Light — para statements amplios */ --font-normal: 400; /* Body text regular */ --font-medium: 500; /* DM Sans labels */ --font-bold: 700; /* Urbanist Bold — headings de impacto, mayúsculas */ ``` ### Letter spacing ```css --tracking-tight: -0.02em; /* Display Urbanist Bold */ --tracking-normal: 0em; /* Body DM Sans */ --tracking-wide: 0.16em; /* Eyebrow / section labels en mayúsculas */ ``` > Los títulos de marca van en **Urbanist Bold en mayúsculas** con tracking amplio cuando son etiquetas de sección (`BRAND STORY`, `LOGO SYSTEM`, `COLOR PALETTE`) y tracking ajustado cuando son display grande (`THE BOOK`, `CONSISTENCY IS KING`). --- ## 4. Estilos de Componentes ### Botones **Primario** ``` Background: var(--color-primary) /* #AF1917 */ Color de texto: var(--color-text-on-primary) /* #F5F1EA */ Padding: 14px 24px Border-radius: var(--radius-sm) /* 6px — sharp, industrial */ Font: Urbanist 700, uppercase, var(--text-sm), tracking 0.06em Transición: all 150ms ease Hover: Background var(--color-primary-hover) /* #C61E1B */ Active: Background var(--color-primary-active); transform translateY(1px) Disabled: opacity 0.5; cursor not-allowed Focus: outline 2px solid var(--color-primary); outline-offset 2px ``` **Secundario (outline sobre oscuro)** ``` Background: transparent Color de texto: var(--color-text) /* #F5F1EA */ Border: 1px solid var(--color-border) /* #2A2A2A */ Padding y radius iguales al primario Hover: border-color var(--color-text-secondary) ``` **Ghost / Link** ``` Background: transparent Color de texto: var(--color-primary) /* rojo de señal */ Border: none Hover: subrayado fino del color primario ``` ### Inputs de texto ``` Background: var(--color-surface) /* #1A1A1A */ Border: 1px solid var(--color-border) Border-radius: var(--radius-sm) /* 6px */ Padding: 12px 14px Color: var(--color-text) Placeholder: var(--color-text-muted) Focus: border-color var(--color-primary); box-shadow 0 0 0 3px rgba(175,25,23,0.25) Error: border-color var(--color-error) ``` ### Cards ``` Background: var(--color-surface) /* #1A1A1A */ Border: 1px solid var(--color-border) /* #2A2A2A */ Border-radius: var(--radius-md) /* 12px */ Padding: var(--space-6) /* 24px */ Box-shadow: 0 18px 40px -16px rgba(0,0,0,0.55) Las cards de estrategia ("01. PRECISION") llevan el número/título en rojo o gris, y body en DM Sans. Las cards de catálogo usan el oro para encabezados editoriales. ``` ### Badges / Chips ``` Padding: 4px 10px Border-radius: var(--radius-sm) Font: Space Mono o Urbanist, var(--text-xs), uppercase Default: background var(--color-surface-raised); color var(--color-text-secondary) Primary: background rgba(175,25,23,0.15); color var(--color-primary) Data code: background transparent; border 1px solid var(--color-primary); color var(--color-primary); font Space Mono ``` ### Navegación / Header ``` Background: var(--color-bg) Border-bottom: 1px solid var(--color-border) Logo: marca roja + wordmark "Gastro Sib" (Sib en rojo) Links: Urbanist 700, uppercase, var(--text-sm), tracking 0.12em Color: var(--color-text-secondary) Hover: var(--color-text) Active: var(--color-primary) ``` --- ## 5. Principios de Layout ### Escala de espaciado ```css --space-1: 4px; --space-2: 8px; /* base */ --space-3: 12px; --space-4: 16px; --space-5: 20px; --space-6: 24px; /* gap entre componentes / card padding */ --space-8: 32px; --space-10: 40px; --space-12: 48px; /* separación entre bloques */ --space-16: 64px; --space-24: 96px; /* separación entre secciones */ ``` ### Contenedores ```css --container-md: 768px; --container-lg: 1024px; --container-xl: 1280px; ``` ### Grid ``` Sistema: 12 columnas con gutter de 24px. Las secciones se introducen con un título en mayúsculas precedido por un filete rojo vertical (barra de acento a la izquierda del label). Las cards de estrategia/valores van en grid de 3 columnas. ``` ### Filosofía de espaciado Editorial y generosa. El aire negativo (sobre negro profundo) es un material de diseño en sí: aísla la fotografía de producto, deja respirar los grandes display y refuerza la lectura "premium". El contenido se alinea a rejillas estrictas; nada flota sin estructura. --- ## 6. Profundidad y Elevación ### Sistema de sombras ```css --shadow-none: none; --shadow-sm: 0 2px 6px rgba(0,0,0,0.4); --shadow-md: 0 10px 24px -10px rgba(0,0,0,0.5); --shadow-lg: 0 18px 40px -16px rgba(0,0,0,0.55); --shadow-xl: 0 30px 60px -20px rgba(0,0,0,0.65); ``` La profundidad es sobria: superficies casi-negras (`#1A1A1A`) sobre el fondo (`#111111`), separadas por un borde hairline (`#2A2A2A`) y una sombra profunda y suave. La fotografía de producto aporta la dramaturgia (alto contraste, sombras largas, reflejos especulares en vajilla negra mate). En piezas físicas, la elevación se traduce como **rojo foil emboss sobre stock graphite mate de 400gsm**. ### Niveles de elevación | Nivel | Token | Uso | |-------|-------|-----| | 0 — Base | `--shadow-none` | Página (#111111) | | 1 — Raised | `--shadow-sm` | Cards, tiles | | 2 — Floating | `--shadow-md` | Dropdowns, tooltips | | 3 — Overlay | `--shadow-lg` | Cards destacadas, popovers | | 4 — Modal | `--shadow-xl` | Modals, sheets | ### Radios de borde ```css --radius-sm: 6px; /* botones, inputs, chips — sharp/industrial */ --radius-md: 12px; /* cards, paneles */ --radius-lg: 16px; /* contenedores grandes, mock de app */ --radius-full: 9999px; /* la marca circular, badges pill */ ``` El radio predominante es **6–12px**: lo bastante suave para sentirse moderno y de producto, lo bastante contenido para leer como preciso e industrial. La única forma plenamente circular es la marca (botón de encendido), que ancla la geometría del sistema. --- ## 7. Lo que Sí y lo que No ### ✅ Hacer 1. **Usar el rojo como señal, no como relleno** — símbolo, números de paso, códigos de lote, un CTA. Su escasez es lo que lo hace potente. 2. **Mantener el fondo negro profundo como base** — autoridad y profundidad; el Dark Mode es funcional para zonas de almacén con poca luz. 3. **Componer sobre rejillas estrictas** — precisión nivel Michelin; cada bloque alineado, nada flotando. 4. **Reservar el oro para detalles editoriales** — encabezados de catálogo, filetes, momentos premium; con moderación. 5. **Usar Urbanist Bold en mayúsculas para impacto** y DM Sans para la comunicación técnica detallada. 6. **Tratar los datos como tipografía** — SKU, lotes y etiquetas logísticas en monoespaciado rojo, como un sistema operativo. ### ❌ No hacer 1. **No usar clichés decorativos de restaurante** — nada de caligrafías, manteles, tomates ilustrados o texturas rústicas; eso abarata la marca. 2. **No inundar de rojo** — grandes superficies rojas matan la señal y gritan en vez de indicar. 3. **No introducir gradientes blandos ni halos ambientales** — la marca es flat y precisa; la profundidad viene de superficie + sombra + foto, no de blobs. 4. **No proyectar imagen de almacén barato** — el posicionamiento es socio de servicio premium, no bodega. 5. **No mezclar fuentes ajenas al sistema** — solo Urbanist, DM Sans y el mono de datos. 6. **No dejar elementos sin rejilla** — el desorden contradice el mensaje de precisión y cero margen de error. --- ## 8. Comportamiento Responsive ### Breakpoints ```css @media (min-width: 640px) { } /* sm */ @media (min-width: 768px) { } /* md */ @media (min-width: 1024px) { } /* lg */ @media (min-width: 1280px) { } /* xl */ ``` ### Cambios por breakpoint **Mobile (< 640px)** — Nav: logo + menú; grid 1 columna; cards full-width; display H1 baja a `--text-4xl`; padding `--space-4`. La app cliente está pensada mobile-first en Dark Mode (portal y app de producto data-focused). **Tablet (640–1024px)** — grid de 2 columnas; H1 `--text-4xl`; padding `--space-6`. **Desktop (> 1024px)** — nav completa; grid de 3 columnas para valores/estrategia; display hasta `--text-5xl`; contenedor con max-width centrado. ### Touch targets (mobile) - Botones mínimo 44×44px · Links de nav mínimo 48px · Inputs mínimo 44px. ### Filosofía responsive El sistema escala de micro-portadores (tarjetas de visita) a macro-objetos (rotulación de furgonetas) conservando poder visual y carácter premium en cada touchpoint. En digital, mobile-first y Dark Mode por defecto, porque la operación real ocurre en cocinas y almacenes de baja luz. --- ## 9. Guía de Prompts para Agentes ### Prompt de inicialización de sesión ``` Estás trabajando con el sistema de diseño de GastroSib. PALETA: Brand Red #AF1917 como señal, sobre fondo Deep Black #111111, con texto Warm White #F5F1EA y Gold #B88D57 para detalles editoriales (con moderación). TIPOGRAFÍA: Headings con Urbanist (Bold, mayúsculas para impacto); body con DM Sans; códigos/datos en Space Mono. ESTILO: oscuro, industrial, editorial y preciso — "no parece un logo, parece un sistema operativo". Sin clichés de restaurante. TOKENS: usa siempre las variables CSS. Nunca hardcodees colores. El rojo es señal, nunca relleno. MODO: oscuro por defecto. ``` ### Prompt: Crear nueva pantalla ``` Crea una pantalla de [FUNCIONALIDAD] para GastroSib. - Sigue el DESIGN.md adjunto y sus tokens. - Dark Mode, rejilla estricta, rojo solo como señal. - Urbanist Bold para títulos, DM Sans para cuerpo, Space Mono para códigos. - Incluye estados de loading y empty state. Responsive mobile-first. ``` ### Prompt: Revisión de consistencia ``` Revisa esta interfaz y señala qué NO sigue el sistema GastroSib: [CÓDIGO O DESCRIPCIÓN] Para cada problema: el elemento, por qué viola el sistema (¿rojo como relleno?, ¿cliché decorativo?, ¿fuera de rejilla?), y la corrección con los tokens correctos. ``` --- ## 10. Movimiento (Motion) > La fuente es un brand board estático: no documenta motion. Lo que sigue es una escala mínima **propuesta**, coherente con la atmósfera precisa e industrial. Marcada como derivada, no observada. El movimiento debe sentirse controlado e interface-led, nunca expresivo ni físico: transiciones cortas y mecánicas que refuercen la idea de "sistema operativo". Micro-interacciones de acento (hover de botón/card, indicadores de estado), nada de parallax ni escenas scroll-driven. **Nivel de motion**: subtle. **Duraciones**: 120ms (micro), 200ms (estándar), 320ms (entradas de superficie). **Easings**: `cubic-bezier(0.4, 0, 0.2, 1)` (estándar), `ease-out` para entradas. **Propiedades animadas en hover**: color, border-color, background, transform (translateY 1px en press). **Patrones**: hover-lift sutil en cards, cambio de color en CTAs, fade-in escalonado de bloques al entrar en viewport. ```css --ease-standard: cubic-bezier(0.4, 0, 0.2, 1); --duration-fast: 120ms; --duration-base: 200ms; --duration-slow: 320ms; ``` > **Accesibilidad**: respeta siempre `@media (prefers-reduced-motion: reduce)`. --- ## Anexo: Stack técnico detectado > El board no expone tecnología de implementación (es una pieza de identidad gráfica). Inferencias de aplicación: - **Plataforma / builder**: no especificado en la fuente. - **Productos digitales documentados**: portal cliente web + app móvil de producto, data-focused, Dark Mode nativo. - **Animación**: no documentada (ver Sección 10, propuesta). - **3D / WebGL / ThreeJS**: no aplica (la fuente no usa gráficos 3D). Secciones 11 y 12 omitidas.