Skip to content

Marca y diseño

La identidad visual de Crow es el sistema de diseño Dark Editorial — superficies oscuras con acentos índigo iridiscentes, inspirado en el plumaje tornasolado de los córvidos.

Filosofía de diseño

Superficies oscuras. Acentos índigo. Calidez tecnológica. La estética evoca las plumas de un cuervo atrapando la luz — oscuras en reposo, iridiscentes en movimiento. El diseño es editorial (tipografía limpia, espacio en blanco generoso) pero no estéril (tonos piedra cálidos, textura sutil).

Paleta de colores

Tema oscuro (predeterminado)

TokenHexUso
--crow-bg-deep#0f0f17Fondo de página
--crow-bg-surface#1a1a2eFondos de tarjetas/paneles
--crow-bg-elevated#2d2d3dFondos de inputs, superficies elevadas
--crow-border#3d3d4dBordes y divisores
--crow-text-primary#fafaf9Texto principal
--crow-text-secondary#a8a29eTexto secundario
--crow-text-muted#78716cMetadatos, etiquetas, pistas
--crow-accent#6366f1Índigo primario — enlaces, botones, estados activos
--crow-accent-hover#818cf8Estado hover (índigo más claro)
--crow-accent-muted#2d2854Fondos de acento (etiquetas, insignias)
--crow-brand-gold#fbbf24Indicador de navegación activa
--crow-success#22c55eEstados de éxito, conectado
--crow-error#ef4444Estados de error, acciones destructivas
--crow-info#38bdf8Resaltados informativos

Tema claro

TokenHex
--crow-bg-deep#fafaf9
--crow-bg-surface#ffffff
--crow-bg-elevated#f5f5f4
--crow-border#e7e5e4
--crow-text-primary#1c1917
--crow-text-secondary#57534e
--crow-text-muted#a8a29e
--crow-accent#4f46e5
--crow-accent-hover#6366f1
--crow-accent-muted#e0e7ff

Tema serif (lectura del blog)

Sobrescribe la fuente del cuerpo a la serif Fraunces para una experiencia de lectura más literaria. Todos los demás tokens se heredan del tema base activo (oscuro o claro).

Tipografía

RolFuentePesosUso
DisplayFraunces400, 600, 700Encabezados, texto de hero, cifras de estadísticas
CuerpoDM Sans400, 500, 700Texto de cuerpo, etiquetas, botones
CódigoJetBrains Mono400, 500Bloques de código, Crow IDs, datos monoespaciados

Todas las fuentes se cargan desde Google Fonts.

Espaciado y radios

Escala de espaciado (basada en rem):

  • 0.25rem (4px) — separaciones estrechas
  • 0.5rem (8px) — espaciado compacto
  • 0.75rem (12px) — padding estándar
  • 1rem (16px) — espaciado de secciones
  • 1.5rem (24px) — padding de tarjetas
  • 2rem (32px) — separaciones grandes

Niveles de border radius:

  • 4px — pequeño (insignias, elementos en línea)
  • 8px — mediano (tarjetas, inputs, paneles)
  • 12px — grande (diálogos modales, secciones hero)

Sombras:

  • Tarjetas: 0 1px 3px rgba(0,0,0,0.2), 0 0 0 1px rgba(99,102,241,0.05)
  • Elevadas: 0 4px 12px rgba(0,0,0,0.3)

Temas

Crow soporta tres temas visuales:

  • Oscuro (predeterminado) — Dark Editorial con acentos índigo. Se usa en todas partes por defecto.
  • Claro — Paleta invertida para entornos luminosos. Fondos cálidos tono piedra.
  • Serif — Aplica la fuente serif Fraunces para la lectura del blog. Se combina con oscuro o claro.

El tema se alterna desde el encabezado del Crow's Nest o con el ajuste blog_theme.

Recursos SVG

RecursoUbicaciónUso
crow-hero.svgdocs/public/Ilustración hero del cuervo (gradientes: cuerpo #2d2d3d, brillos #6366f1)
grackle-pattern.svgdocs/public/Textura decorativa de fondo
icon-*.svgdocs/public/Iconos de funcionalidades (MCP, memoria, investigación, compartir, integraciones, despliegue, plataformas)
Logos de complementosservers/gateway/dashboard/shared/logos.jsLogos SVG para Ollama, Nextcloud, MinIO, Immich, Obsidian, Home Assistant, Podcast

Para desarrolladores

Todos los tokens de color están definidos en una única fuente de verdad:

servers/gateway/dashboard/shared/design-tokens.js

Tanto el dashboard del Crow's Nest (layout.js) como el blog público (blog-public.js) importan desde este archivo. Cuando agregues colores nuevos o modifiques la paleta, edita design-tokens.js — el cambio se propaga a ambas superficies automáticamente.

Consulta la guía de Personalización para ver cómo los usuarios pueden ajustar temas y apariencia.

Released under the MIT License.