AlimentIA · Design Bible & Project Reference
AlimentIA Pro · Design Bible & Project Reference
Todo lo que necesitas
para construir el ecosistema.
Fuentes, colores, URLs, logos, infraestructura, reglas de diseño y principios editoriales. Documento vivo — consulta aquí antes de empezar cualquier landing, componente o pantalla nueva.
v1.0 · Mayo 2026 AlimentIA Consulting Group LLC contact@alimentia.ai
01 Tipografía del sistema Tres fuentes. Roles estrictos. Sin mezclar.
Display · Títulos · Botones · Números grandes
family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,700;0,9..144,800;1,9..144,300;1,9..144,400
Seguridad alimentaria sin margen de error.
La ficha que el servicio necesitaba.
Light 300
subtítulos, italic
Bold 700
h2, cards
ExtraBold 800
h1, CTAs, logotipos
CSS: font-family:'Fraunces',serif;  ·  Variable: var(--ff-d)
Body · Descripciones · UI · Párrafos
family=Outfit:wght@300;400;500;600;700;800
Rutty convierte la ruta de reparto sociosanitaria en una operación guiada, trazable y segura. DALINA guía el alta nutricional de cada comensal en 7 pasos estructurados, con IA que interpreta informes médicos.
Light 300
subtextos
Regular 400
body base
SemiBold 600
énfasis
ExtraBold 800
UI labels
CSS: font-family:'Outfit',sans-serif;  ·  Variable: var(--ff-b)
Monospace · Labels · Badges · Eyebrows · Datos técnicos
family=JetBrains+Mono:wght@400;500;600;700
IA CONVERSACIONAL · UE 1169/2011 · PROTOCOLO P02 · V6 LIVE · SUPABASE + RLS
IA conversacional Síntesis de voz Supabase RLS Netlify Functions Protocolo P02 V6 Live
CSS: font-family:'JetBrains Mono',monospace;  ·  Variable: var(--ff-m)
Google Fonts · Import único completo
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,500;0,9..144,700;0,9..144,800;1,9..144,300;1,9..144,400&family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
Pegar siempre este link en el <head> de cualquier landing o componente nuevo del ecosistema AlimentIA.
02 Paleta de colores Dark-first. Azul marino + dorado.
Colores primarios del sistema
Deep
#07101f
Navy Dark
#0D1E3A
Navy
#152E54
Blue Mid
#2563A8
Blue Clear
#EEF4FB
Gold ⭐
#F0A800
Gold Dark
#D4920A
Gold Clear
#FFF8EC
Green ✅
#15C76A
Red ⚠️
#C93030
Gray BG
#F0F2F7
Border
#DDE3EC
Muted
#8A95A3
Dark Text
#5A6475
Text
#0D1825
CSS Variables · Copiar en :root de cada landing
:root {
  /* Azules */
  --navy:  #152E54;
  --navyd: #0D1E3A;
  --deep:  #07101f;
  --blue:  #2563A8;
  --bluec: #EEF4FB;

  /* Dorado */
  --gold:  #F0A800;
  --goldd: #D4920A;
  --goldc: #FFF8EC;

  /* Estado */
  --green: #15C76A; /* ok, confirmado */
  --red:   #C93030; /* alerta, alérgeno grave */

  /* Neutros */
  --gray:  #F0F2F7;
  --grayb: #E4E8F0;
  --muted: #8A95A3;
  --dark:  #5A6475;
  --text:  #0D1825;
  --border:#DDE3EC;
  --white: #ffffff;

  /* Tipografía */
  --ff-d: 'Fraunces', serif;
  --ff-b: 'Outfit', sans-serif;
  --ff-m: 'JetBrains Mono', monospace;

  /* Radios */
  --r:  14px;
  --r2: 22px;
  --r3: 32px;
}
Secciones oscuras (dark)
Fondo: #07101f o #0D1E3A
Títulos: #ffffff
Subtextos: rgba(255,255,255,.45)
Labels: var(--gold)
Líneas: rgba(255,255,255,.07)
Secciones claras (light)
Fondo: #ffffff o #f8f9fc
Títulos: var(--navy)
Subtextos: var(--dark)
Labels: var(--blue)
Líneas: var(--border)
03 Sistema de diseño UI Componentes, espaciado y animaciones
Radios de borde
🔵
--r: 14px — pills, inputs pequeños, badges
🟡
--r2: 22px — cards, secciones, paneles
--r3: 32px — botones principales CTA
40px — phone mockup, objetos flotantes
Sombras
🌑
0 4px 24px rgba(13,30,58,.1) — cards hover
🌒
0 12px 56px rgba(13,30,58,.2) — modales
🌓
0 24px 80px rgba(13,30,58,.3) — desktop mocks
0 0 40px rgba(240,168,0,.3) — glow dorado CTA
Anchura máxima y padding
📐
max-width: 1160px — contenedor principal de landing pages
📐
padding: 100px 2rem — secciones principales
📐
padding: 120px 2rem 80px — sección hero (cuenta la nav fija de 62px)
📱
Breakpoint móvil: 900px (grids a 1 col), 700px (hide nav links)
Animaciones estándar del ecosistema
🔄
Grid animado hero: background-size: 80px 80px, animation: gridMove 20s linear infinite — líneas gold 4% opacidad
💡
Scan line: línea horizontal dorada que recorre la pantalla verticalmente, animation: scan 4s ease-in-out infinite
🌐
Orbs: radiales de color azul/dorado en esquinas, animation: orbPulse 6s ease-in-out infinite
📱
Phone float: animation: phoneFloat 5s ease-in-out infinite — translateY(0→-14px) con ligera rotación (±1deg)
🟢
Live dot: animation: liveP 2s ease-in-out infinite — box-shadow pulsante verde sobre el punto
📜
Scroll reveal: IntersectionObserver en clase .reveal → añade clase .visible, opacity:0→1, translateY(28px→0), transition: .65s ease
🏷️
Ticker: animation: ticker 30s linear infinite — duplicar el contenido para el loop sin salto
💬
Typing dots: 3 spans con animation: typingB .9s ease-in-out infinite, delays 0 / .2s / .4s
Cursor personalizado
* { cursor: none; }
/* Punto dorado */ #cursor {
  position:fixed; width:14px; height:14px;
  background:var(--gold); border-radius:50%;
  pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%);
  mix-blend-mode:screen;
}
/* Anillo retrasado */ #cursor-ring {
  position:fixed; width:36px; height:36px;
  border:1.5px solid rgba(240,168,0,.4);
  border-radius:50%; pointer-events:none; z-index:9998;
  transform:translate(-50%,-50%);
  transition:all .18s ease;
}
/* JS: laggy follow */
let rx=0, ry=0;
(function anim(){
  rx += (mx-rx)*.12; ry += (my-ry)*.12;
  ring.style.left = rx+'px'; ring.style.top = ry+'px';
  requestAnimationFrame(anim);
})();
En hover de links/botones: punto se encoge a 8px, anillo crece a 54px, border-color sube a rgba(240,168,0,.6)
Badges de tecnología — Colores por tipo
IA conversacional bg rgba(240,168,0,.15) · color #D4920A
Síntesis de voz bg rgba(21,199,106,.12) · color #0e9050
Base de datos bg rgba(37,99,168,.15) · color #2563A8
Backend / infra bg #F0F2F7 · color #5A6475 · border #DDE3EC
Protocolo / alerta bg rgba(201,48,48,.1) · color #C93030
Version live bg #152E54 · color #F0A800 (navy+gold)
04 Apps del ecosistema URLs de landing + apps en producción
AlimentIA Pro
Hub central del ecosistema. Infraestructura modular de seguridad alimentaria asistida por IA. Página de inicio con acceso a todos los módulos.
DALINA
Alta nutricional inteligente. 7 pasos guiados. IA + OCR para interpretar informes médicos. 14 alérgenos UE 1169/2011. Firma digital RGPD. Origen de todo el ecosistema.
Rutty
Copiloto de reparto sociosanitario. IA conversacional (Claude Haiku + GPT-4o mini), voz ElevenLabs, QR por comensal, alérgenos de DALINA, gamificación y panel supervisor. V6 en producción.
Comensalia
Visibilidad familiar del comensal. La familia ve el estado de la entrega, el menú del día y los alérgenos activos en tiempo real. Cierra el ciclo DALINA → Rutty → familia.
ChefIA Safe
Planificación de menús por patología. APPCC digital. Etiquetado automático desde la ficha de DALINA. Módulo premium. Cocina recibe la dieta adaptada de cada comensal sin reintroducir datos.
SafeBite · AlérgenovPlus
Consulta de alérgenos. Herramienta de referencia para el equipo sobre los 14 alérgenos de declaración obligatoria, nivel de riesgo, trazas y protocolos de actuación.
Tabla de referencia rápida · Todas las URLs
AppLanding webApp en producción
AlimentIA Proalimentia.quintessencedigital.netalimentia-control-center.netlify.app
DALINA.../dalina/dalinaalimentia.netlify.app
Rutty.../rutty/ruttyv6.netlify.app
Comensalia.../comensalia/
ChefIA Safechefia-v2.netlify.app
SafeBite / AlérgenovPlusalergenosplus.netlify.app
05 Assets · Logos e imágenes CDN: Aka625.b-cdn.net/Alimentia26/
CDN base y convenciones de naming
📦
CDN base: https://Aka625.b-cdn.net/Alimentia26/ — todos los assets del proyecto aquí
🖼️
Formato preferido: PNG con fondo transparente para logos (removebg-preview)
Los logos se muestran sobre fondo navy (#152E54), siempre con border: 2px solid var(--gold) y border-radius: 50% en nav
📏
Tamaños en nav: 30×30px. En cards/heroes: 52×52px. Phone mockup: 25×25px
06 Infraestructura y accesos ⚠️ Guardar en lugar seguro. No compartir.
⚙️ Plataformas de despliegue y desarrollo
🐙 GitHub github.com/JotaEse68
📧 Email Supabase quintaesenciadigital@gmail.com
📦 CDN Assets Aka625.b-cdn.net/Alimentia26/
✉️ Email contacto contact@alimentia.ai
🤖 APIs de IA y servicios externos (Netlify Functions)
🤖 Claude Haiku claude-haiku-4-5-20251001 · Anthropic · Fallback IA
🧠 GPT-4o mini gpt-4o-mini · OpenAI · Primario IA chat
🔊 ElevenLabs TTS eleven_multilingual_v2 · Voz Matilda (XrExE9yKIg1WjnnlVkGX)
🔊 OpenAI TTS-HD tts-1-hd · Voz Shimmer · Speed 0.92x · Secundario
🔑 Env vars Netlify OPENAI_KEY / CLAUDE_KEY / ELEVEN_KEY — nunca al cliente
🗄️ Supabase Project ID: uwecrtssdtwubyzirirb · RLS activo por organización
Arquitectura de seguridad
🔐
Netlify Functions serverless — todas las llamadas a APIs externas (Claude, GPT, ElevenLabs) pasan por aquí. Las API keys nunca llegan al frontend.
🔒
Supabase RLS (Row-Level Security) — cada organización (residencia, SAD, catering) tiene acceso solo a sus propios datos. Aislamiento total a nivel de fila.
📱
PWA sin instalación — todas las apps funcionan desde el navegador. No requieren descarga en App Store / Play Store. Compatibles con cualquier móvil moderno.
📥
Importación UCALSA Connect — rutas via CSV. Rutty valida, asigna y publica en <30 segundos. Compatible con el flujo existente de los servicios.
07 Anatomía de una landing AlimentIA Estructura de secciones estándar
Orden de secciones en una landing tipo
SecciónElementoFondoPropósito
<nav> fijaLogo + links + CTA#07101f + blurNavegación persistente. CTA siempre visible.
#heroH1 + tech pills + phone mock#07101fPropuesta de valor + stack tecnológico visible desde el primer segundo.
.stats-tickerBanda animadavar(--gold)Stack tecnológico + stats en movimiento. Siempre debajo del hero.
#problemaStats + cita#07101fContextualizar el problema real. Datos concretos. Sin adornos.
#tecnologiaTabla de capas stack#ffffff6 filas: IA / voz / datos / infra / UI / integración. Nombres exactos de tecnología.
#funcionesFeature hero + grid 3×2#07101fFunción principal destacada (IA chat) + 6 funciones en grid.
#flujoTimeline 4 pasos#f8f9fcFlujo operativo: selección → briefing → entrega → cierre.
#supervisorDesktop mock + lista#07101fPanel del supervisor. Mock con dots macOS y datos en tiempo real.
#gamificacionLista + ranking widget#ffffffSistema de puntos, insignias, rangos y premios.
#comparativaTabla antes/después#07101f8 puntos por columna. Sin/Con. Diferencia tangible.
#normativaGrid 3×2 de normas#ffffffReglamentos y protocolos integrados (UE 1169/2011, P02-P06, RLS).
#ecosistemaDiagrama DALINA→RUTTY→COM#07101fPosición de la app dentro del ecosistema. Links cruzados.
#ctaH2 grande + botónvar(--gold)Fondo dorado. Grid sutil. Un solo botón. Un solo objetivo.
<footer>Logo + links + copyright#07101fTodos los links del ecosistema + email de contacto.
Estructura HTML base de una sección dark
<section id="nombre" style="background:var(--deep);">
  <div class="section">

    <div class="reveal">
      <div class="sec-label gold">Label en JetBrains Mono</div>
      <h2 class="dark-h">Título en Fraunces 800</h2>
      <p class="sub dark-sub">Descripción en Outfit 400</p>
    </div>

    <!-- Contenido con reveal y delays -->
    <div class="reveal d1">... (delay .1s)</div>
    <div class="reveal d2">... (delay .2s)</div>
    <div class="reveal d3">... (delay .3s)</div>

  </div>
</section>
Clases de layout estándar
📐
.section — max-width 1160px, padding 100px 2rem
📐
.grid2 — grid 2 columnas, gap 1rem
📐
.grid3 — grid 3 columnas, gap 1rem
📐
.reveal .d1 .d2 .d3 — scroll animation con delay
Escala tipográfica
1️⃣
h1: clamp(40px, 6vw, 72px) · Fraunces 800
2️⃣
h2: clamp(28px, 4vw, 50px) · Fraunces 800
🏷️
Labels: 11px · JetBrains Mono · 700 · uppercase · 0.1em spacing
📝
Body principal: 17px · Outfit 400 · line-height 1.65
📝
Cards/desc: 13-14px · Outfit 400 · line-height 1.6
08 Principios del proyecto Voz, tono y criterios de diseño
🎯 Problema real antes que función
Siempre empezar por el problema que se resuelve. No por la feature. "El repartidor sale con un post-it de alergias" antes que "Rutty muestra alérgenos en pantalla". El drama primero, la solución después.
🔬 Tecnología visible y específica
Nunca "IA avanzada". Siempre Claude Haiku + GPT-4o mini. Nunca "síntesis de voz". Siempre ElevenLabs Multilingual v2, voz Matilda. La especificidad construye confianza. Los nombres exactos de tecnología van en el hero desde el primer segundo.
⚡ Tono directo y sin relleno
La IA de Rutty responde en máximo 3 frases. Las landings tienen el mismo criterio: cada frase justifica su presencia. Sin "solución innovadora", sin "ecosistema revolucionario". Palabras concretas: "Cajas ROJAS = protocolo de doble verificación". "QR único por comensal". "30 segundos".
🌑 Dark-first con alternancia controlada
Las secciones de impacto (hero, problema, funciones, comparativa, ecosistema) van en dark #07101f. Las secciones de detalle y legitimidad (tecnología, flujo, normativa) van en claro #ffffff / #f8f9fc. El CTA final siempre en dorado (#F0A800) como ruptura.
🔗 El ecosistema siempre presente
Todas las landings terminan con el diagrama DALINA → [app] → Comensalia y los links cruzados. Cada app existe dentro del sistema, no sola. El footer siempre incluye links a AlimentIA Pro, DALINA, Comensalia y el email de contacto.
📐 Mockups como prueba, no decoración
El phone mock y el desktop mock muestran datos reales del producto: nombres de campo correctos, badges de alérgeno reales (DALINA), nombres de tecnología, estados de ruta de Supabase. Un mockup genérico no vende. Un mockup con "Lácteos severo · Sin gluten" sí.
✅ Normativa como argumento, no como aviso legal
UE 1169/2011, P02, P04, P05, P06, RLS — no son disclaimers al pie. Son argumentos de venta. "14 alérgenos de declaración obligatoria integrados en el flujo" es diferente a "cumplimos con la normativa". La normativa justifica la necesidad del producto.
09 Checklist · Nueva landing AlimentIA Antes de publicar cualquier página nueva
✅ Tipografía y fuentes
Google Fonts import con Fraunces + Outfit + JetBrains Mono en el <head>
Variables CSS: --ff-d (Fraunces), --ff-b (Outfit), --ff-m (JetBrains Mono)
h1/h2 en Fraunces 800, body en Outfit, labels/badges en JetBrains Mono
No usar Syne, Inter, Roboto, Arial ni ninguna otra fuente del sistema
✅ Colores y variables
Paleta completa definida en :root con todas las variables del sistema
Fondo hero: #07101f con grid animado dorado (4% opacidad)
CTA principal: fondo var(--gold), texto var(--navy)
Alternancia dark/light en secciones según estructura estándar
✅ Contenido obligatorio
Tech pills en el hero con nombres exactos de tecnologías usadas
Ticker animado con stack tecnológico y normativa clave
Sección "El problema real" con datos concretos antes de las funciones
Normativa con badges: UE 1169/2011, protocolos P0X relevantes, RLS/RGPD
Diagrama del ecosistema DALINA → [app] → Comensalia con links cruzados
Footer con todos los links del ecosistema + contact@alimentia.ai
✅ Componentes técnicos
Nav fija con backdrop-filter blur, altura 62px, logo con border dorado
Cursor personalizado (punto dorado + anillo retrasado)
Scroll reveal con IntersectionObserver en todas las secciones (.reveal)
Smooth scroll en links internos (scroll-behavior: smooth + JS para nav)
Logo AlimentIA en nav con la URL correcta del CDN
CTA principal apunta a la app en producción (netlify)
Meta description y title correctos con nombre de la app + AlimentIA Pro