RAW STUDIO
Sistema de diseño para plataforma SaaS B2B de gestión de producción audiovisual. Anti-corporate. Pro-craft. Implementable en React 18 + CSS custom properties.
Intención de Diseño
RAWSTUDIO usa el brutalismo no como ornamento, sino como lenguaje de honestidad funcional: cada elemento debe ser legible, reconocible y eficiente bajo uso intensivo de 6-8h/día. El diseño no compite con el contenido; lo sirve.
Los bordes, sombras y tipografía pesada comunican jerarquía, no decoración.
Sin gradientes, sin border-radius decorativos, sin sombras difuminadas.
Todos los estados interactivos son visibles sin puntero. Focus rings obligatorios.
Paleta de Color
| Combinación | Ratio | Nivel | Uso |
|---|---|---|---|
| #fff sobre #111827 | 16.8:1 | AAA | Texto principal sobre fondo oscuro |
| #fff sobre #DD614C | 3.9:1 | AA (texto grande) | Solo en botones ≥18px/700 o ≥14px/700 |
| #111827 sobre #fff | 16.8:1 | AAA | Texto body, labels, inputs |
| #111827 sobre #DAA144 | 5.9:1 | AA | Badges warning, botón secondary |
| #fff sobre #16A34A | 4.6:1 | AA | Badges success |
Escala Tipográfica
| Rol | Familia | Uso |
|---|---|---|
| Primary | Darker Grotesque | UI, headings, labels, botones |
| Mono | JetBrains Mono | Código, tokens, timestamps, IDs |
Weight 900 / Display RAWSTUDIO
Weight 900 / H1 Gestión de Proyectos
Weight 800 / H2 Dashboard de Producción
Weight 800 / H3 Estado de Proyectos
Weight 700 / H4 Equipo de producción asignado
Weight 400 / Body Texto de cuerpo para descripciones y contenido extendido de la plataforma.
Weight 500 / UI Etiquetas de interfaz, celdas de tabla, texto de navegación
Weight 700 / Micro LABELS • CATEGORÍAS • METADATOS DE PROYECTO
Escala de Espaciado
Inputs y Formularios
Intención: Los inputs deben ser inconfundiblemente editables. El borde negro 2px delimita el área de entrada; el estado focus revela el color primario + sombra offset. Los labels en mayúsculas tiny-caps identifican los campos sin ambigüedad para usuarios de power-user.
Tarjetas
Badges y Etiquetas
Tablas de datos
Intención: Las tablas son el corazón del dashboard de RAWSTUDIO. Cabecera negra con tipografía blanca en mayúsculas, borde 2px exterior, bordes 1px interiores. Hover sobre filas debe ser sutil (surface-raised), nunca colorido.
| Proyecto / Cliente | Directora | Presupuesto | Estado | Entrega | Acciones |
|---|---|---|---|---|---|
|
Nike — Spot TV Q3 2026
Ref. PRJ-2026-041
|
Sara Gómez | €124,000 | En edición | 18 Jul 2026 |
|
|
Mahou — Documental Craft
Ref. PRJ-2026-038
|
Luis Herrera | €67,500 | En producción | 02 Ago 2026 |
|
|
Samsung — Galaxy Launch
Ref. PRJ-2026-035
|
Ana Prieto | €210,000 | Revisión cliente | 10 Jul 2026 |
|
|
BBVA — Spots Digitales Q2
Ref. PRJ-2026-029
|
Sara Gómez | €89,200 | Entregado | 30 Jun 2026 |
|
|
Inditex — Campaña FW26
Ref. PRJ-2026-044
|
Marc Torres | €340,000 | Bloqueado | 15 Sep 2026 |
|
Tokens CSS (implementación)
Anti-Patrones y Reglas Prohibidas
Usar --color-primary (#DD614C) como color de texto en body normal (<18px regular) sobre fondo blanco — ratio 3.9:1, no cumple AA para texto pequeño.
Usar --color-primary solo en texto grande (≥18px) o en negrita (≥14px/700), o sobre fondo oscuro. Para texto de body, usar siempre --color-text (#111827).
Añadir gradientes (background: linear-gradient(...)) en botones, cards o fondos. Rompe la estética brutalista y puede reducir el contraste.
Usar únicamente colores planos de los tokens definidos. La jerarquía visual se construye con bordes, peso tipográfico y sombras offset — no con gradientes.
Usar border-radius mayor de 0px en botones, inputs, cards o badges. El sistema brutalista prohibe esquinas redondeadas en todos los elementos de UI.
Mantener border-radius: 0 en todos los componentes. Si se necesita diferenciar visualmente un chip informativo, hacerlo con borde o color, no con radio.
Usar sombras con blur (box-shadow: 0 4px 12px rgba(0,0,0,0.15)). Las sombras difuminadas no corresponden al vocabulario visual brutalista.
Usar exclusivamente sombras offset sin blur: --shadow-sm, --shadow-md, --shadow-lg. Simulan profundidad física, no luminosa.
Omitir :focus-visible styles en elementos interactivos. En un dashboard keyboard-first, la ausencia de focus ring hace la interfaz inutilizable sin ratón.
Todo elemento interactivo (botón, input, link, select) debe tener outline: var(--focus-ring) en :focus-visible. Testeable con Tab key en QA.
Checklist de QA para Code Review
Este checklist debe ser ejecutado por el reviewer en cada PR que afecte a componentes de UI. Cada item es testeable mecánicamente, sin ambiguedad subjetiva.
-
Tokens Ningún valor de color hardcodeado (hex/rgb) fuera de tokens.css. Grep:
color: #ybackground: #deben ser 0 resultados. -
Sombras Todas las sombras usan
--shadow-sm/md/lg/xl. No existebluren ningún box-shadow del componente. -
Border-radius
border-radiuses 0 o no está declarado. Grep:border-radius: [^0]debe ser 0 resultados. -
Tipografía Font-family usa solo
--font-primaryo--font-mono. No se usa ninguna fuente externa no definida en el sistema. -
Espaciado Padding y margin usan tokens de espaciado (
--space-*). Se admiten valores derivados de tokens (ej.calc(var(--space-4) * 2)).
-
Focus-visible Tabular por todos los elementos interactivos: el focus ring (
3px solid --color-primary) es visible en todos. No se usaoutline: nonesin alternativa. -
ARIA Inputs con error tienen
aria-invalid="true"yaria-describedbyapuntando al mensaje de error. Verificar con axe DevTools. -
Contraste Ejecutar axe-core o Lighthouse Accessibility. Ratio mínimo 4.5:1 para texto ≤18px regular; 3:1 para texto ≥18px o ≥14px/700.
-
Disabled Botones deshabilitados tienen
disablednativo Oaria-disabled="true"+pointer-events: none. Nunca solo estilos visuales. -
Teclado Flujo de acciones principales (crear/editar/eliminar proyecto) completable 100% con teclado. Tab, Enter, Escape deben funcionar sin ratón.