feat(ecommerce): ADR 0008 "Navy & Coral" - Sub-fase 1 (tokens + logo)
Reemplaza ADR 0007 (Atelier calido, ciruela/carbon/cobre) tras dos ciclos de implementar-y-descartar en produccion. Esta vez la direccion se valido con mockups fuera de este entorno antes de tocar codigo. - globals.css: paleta marino/coral/coral-claro + alias temporales de los tokens de ADR 0007 (se resuelven ya contra la paleta nueva para no dejar catalog-client/product-card/button.tsx sin estilo hasta que cada sub-fase migre el nombre de clase; se eliminan en la sub-fase 5). - layout.tsx: Poppins peso 700 reemplaza a Domine en --font-display. - Nuevo isotipo (mariposa de 4 elipses) como logo-ari.svg (lockup) y app/icon.svg (favicon reducido, convencion Next.js App Router); favicon.png anterior eliminado por no estar referenciado. - docs: ADR 0008 con la cronologia completa y el hallazgo de los gradientes arcoiris nunca actualizados en navbar.tsx; ADR 0007 marcado como superseded sin borrar su contenido. Validado con npm ci + typecheck + lint + build de produccion via Docker (no hay node/npm en este shell) y verificando el CSS compilado: los alias resuelven a la paleta nueva y las utilities bg-ari-ciruela/text-ari-carbon/bg-ari-hueso se siguen generando. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01F8c83sjFBP7c4m4UVN5d3d
This commit is contained in:
1 parent
6d065709c1
commit
814df2af53
8 files changed
+239
-21
No files matched your search
@@ -1,8 +1,16 @@
|
||||
# ADR 0007 — Identidad visual propia para ARI Shopping
|
||||
|
||||
**Estado:** aceptada (revisión 2, 2026-08-27 — el usuario delegó la elección final entre las 3 opciones de §4)
|
||||
**Estado:** reemplazada por [ADR 0008](0008-identidad-navy-coral.md) (2026-08-27)
|
||||
**Fecha:** 2026-08-27
|
||||
|
||||
> **Superseded (2026-08-27):** la Opción 2 "Atelier cálido" (ciruela/
|
||||
> carbón/cobre + Domine) descrita en este ADR se descartó — no
|
||||
> convenció combinada con el resto del sitio sin cambiar (header,
|
||||
> footer, home y producto seguían con la paleta anterior, ver §7). El
|
||||
> ADR 0008 documenta la dirección final ("Navy & Coral") y su
|
||||
> cronología completa. Este documento se conserva como registro
|
||||
> histórico, sin editar el resto de su contenido.
|
||||
|
||||
> **Corrección de dirección #1 (2026-08-27):** la primera versión de
|
||||
> este ADR proponía clonar la estética visual de Amazon. Se corrigió a
|
||||
> adoptar *principios* de UX, no la estética de un competidor —
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
# ADR 0008 — Identidad visual "Navy & Coral" para ARI Shopping
|
||||
|
||||
**Estado:** aceptada (implementación en curso, por sub-fases)
|
||||
**Fecha:** 2026-08-27
|
||||
**Reemplaza a:** [ADR 0007](0007-identidad-visual-propia.md) (Opción 2, "Atelier cálido")
|
||||
|
||||
## 1. Contexto
|
||||
|
||||
Este es el tercer intento de identidad visual propia para ARI Shopping,
|
||||
después de dos ciclos de implementar-y-descartar en producción (ver
|
||||
cronología en §2). El costo real de esos dos ciclos no fue el tiempo
|
||||
de escribir el código, fue el tiempo de verlo mal en producción antes
|
||||
de poder juzgarlo — y en ambos casos el veredicto real no era sobre la
|
||||
paleta en sí, sino sobre verla mezclada con partes del sitio que
|
||||
todavía no se habían tocado.
|
||||
|
||||
## 2. Cronología completa
|
||||
|
||||
1. **Arcoíris original** — la identidad "juguetería" con la que arrancó
|
||||
el storefront: paleta de alta saturación (cian/violeta/fucsia/ámbar/
|
||||
amarillo/lima), `rounded-full` en casi todo, `font-black` como
|
||||
default. Nunca fue una decisión de marca, era el estado por defecto
|
||||
del scaffold inicial.
|
||||
2. **Intento de clon de Amazon** (descartado antes de implementarse) —
|
||||
la primera versión de ADR 0007 proponía clonar la estética visual de
|
||||
un competidor directamente. Se corrigió a adoptar *principios* de UX
|
||||
(jerarquía, densidad, señales de confianza), no la estética de nadie
|
||||
— ver la memoria de este cambio de dirección.
|
||||
3. **Terracota/espresso/pino/crema + Fraunces** ("cálido, confiable,
|
||||
ligeramente lúdico") — se implementó como *smoke test* aislado en
|
||||
producción (v1.0.176: solo el botón CTA de `ProductCard` en
|
||||
terracota + precio en Fraunces, todo lo demás sin tocar) y se
|
||||
revirtió. Dos motivos reales: (a) un token aislado rodeado del resto
|
||||
del esquema viejo (badges fucsia/amarillo neón) no es evaluable — el
|
||||
choque visual no era "la dirección de marca", era la mezcla
|
||||
incompleta; (b) terracota + serif cálida leía como *rústico/
|
||||
artesanal*, y el objetivo era premium/serio.
|
||||
4. **Ciruela/carbón/cobre "Atelier cálido"** (ADR 0007, Opción 2 de 3) —
|
||||
esta vez la implementación cubrió un conjunto completo de
|
||||
componentes que se ven juntos en la misma pantalla (tokens base,
|
||||
`button.tsx`, `badge.tsx`, `product-card.tsx`,
|
||||
`catalog-client.tsx`), evitando el error de proceso del punto
|
||||
anterior. Aun así, header, footer, home y página de producto/drawers
|
||||
quedaron deliberadamente pendientes de una siguiente pasada (ADR
|
||||
0007 §7). Resultado: se descartó — no convenció combinada con el
|
||||
resto del sitio sin cambiar. El catálogo aislado se veía coherente,
|
||||
pero el sitio completo (con el header/footer viejos alrededor)
|
||||
seguía sin leerse como una marca terminada.
|
||||
5. **"Navy & Coral"** (esta dirección, final) — marino/coral/coral
|
||||
claro + Poppins para momentos de marca. Ver especificación completa
|
||||
en §4.
|
||||
|
||||
## 3. Mejora de proceso: validar barato antes de implementar
|
||||
|
||||
A diferencia de los dos intentos anteriores, esta dirección se validó
|
||||
visualmente con el usuario mediante mockups de referencia simulados
|
||||
**fuera de este entorno, antes de tocar código real**. Ningún ciclo de
|
||||
implementación se gastó en generar opciones que después se
|
||||
descartarían por gusto — el código de esta ADR se escribe ya sobre una
|
||||
dirección aprobada.
|
||||
|
||||
Esto vale la pena dejarlo como práctica para el playbook de diseño de
|
||||
este proyecto: cuando el costo de deshacer una implementación en
|
||||
producción es alto (como pasó en los puntos 3 y 4 de §2), vale la pena
|
||||
invertir primero en una validación visual barata y rápida (mockup,
|
||||
preview, captura) antes de comprometer ciclos de implementación real,
|
||||
en vez de decidir la dirección *mientras* se implementa.
|
||||
|
||||
## 4. Especificación de marca
|
||||
|
||||
### Paleta
|
||||
|
||||
| Rol | Token | Valor |
|
||||
|---|---|---|
|
||||
| Ancla (header, footer, badge "Nuevo", fondo de hero) | `--color-ari-marino` | `#122844` |
|
||||
| Acento único de acción (CTA "Agregar al carrito", precio destacado) | `--color-ari-coral` | `#D85A30` |
|
||||
| Acento secundario (subtítulos sobre marino, ala inferior del isotipo) | `--color-ari-coral-claro` | `#F0997B` |
|
||||
| Fondo general | — | `#FFFFFF` (blanco puro; reemplaza `--color-ari-hueso`) |
|
||||
| Texto secundario / bordes | escala `slate-*` ya usada en el proyecto | sin token nuevo |
|
||||
|
||||
### Tipografía
|
||||
|
||||
- **Poppins, peso 700** — solo para los "momentos de marca": wordmark
|
||||
del logo, títulos de sección (`h1`/`h2`), precio de producto, texto
|
||||
de CTA. Es el único peso que se carga.
|
||||
- **Inter** (ya integrada) se mantiene para body/UI/navegación — no
|
||||
todo el sitio pasa a Poppins.
|
||||
- Domine (Opción 2 de ADR 0007) se elimina por completo, incluida su
|
||||
carga vía `next/font`.
|
||||
|
||||
### Isotipo
|
||||
|
||||
Mariposa geométrica simplificada, construida con 4 elipses (no el
|
||||
filigrana intrincado del logo original, que se perdía en tamaños
|
||||
chicos):
|
||||
|
||||
| Elemento | Parámetros | Color |
|
||||
|---|---|---|
|
||||
| Ala superior izquierda | elipse `rx=9 ry=7`, `cx=10 cy=8`, rotada -18° | `#D85A30` |
|
||||
| Ala superior derecha | elipse `rx=9 ry=7`, `cx=24 cy=8`, rotada 18° | `#D85A30` |
|
||||
| Ala inferior izquierda | elipse `rx=6 ry=5`, `cx=12 cy=16`, rotada -10° | `#F0997B` |
|
||||
| Ala inferior derecha | elipse `rx=6 ry=5`, `cx=22 cy=16`, rotada 10° | `#F0997B` |
|
||||
| Cuerpo | rectángulo `x=16 y=3 width=2 height=18`, redondeado | `#122844` |
|
||||
|
||||
Coordenadas base sobre `viewBox 34x24`, sobre fondo circular marino.
|
||||
Wordmark "ARI" (Poppins 700, blanco) + "shopping" debajo (Poppins 700,
|
||||
`#F0997B`, más chico, letter-spacing amplio).
|
||||
|
||||
Assets: `public/images/brand/logo-ari.svg` (lockup completo,
|
||||
reemplaza `logo-ari.png`) y `app/icon.svg` (versión reducida — solo
|
||||
círculo + mariposa, sin wordmark — favicon/app icon vía la convención
|
||||
de Next.js App Router).
|
||||
|
||||
## 5. Hallazgo: causa raíz del estado mixto anterior
|
||||
|
||||
Al auditar `navbar.tsx` para esta implementación se encontró que,
|
||||
desde el arranque de este proyecto de reskin, nunca se había tocado:
|
||||
una barra superior con gradiente `from-amber-300 via-yellow-200
|
||||
to-lime-200` y una línea decorativa `from-cyan-400 via-violet-500
|
||||
to-fuchsia-500`, ambas del esquema arcoíris original (punto 1 de §2).
|
||||
Esto confirma que el "estado mixto" visto en producción durante ADR
|
||||
0007 no era solo "header pendiente de una pasada futura" en abstracto
|
||||
— eran restos concretos y nunca inventariados del esquema anterior,
|
||||
conviviendo con cada iteración de paleta desde entonces sin que nadie
|
||||
los marcara como deuda. Se eliminan en la sub-fase 2 de esta
|
||||
implementación.
|
||||
|
||||
## 6. Plan de implementación
|
||||
|
||||
Por sub-fases, cada una con rama `fix/*`, diff mostrado y PR sin
|
||||
mergear hasta confirmación explícita del usuario. Cada sub-fase debe
|
||||
dejar el sitio en un estado internamente coherente (no fragmentos
|
||||
aislados en producción — la lección de los puntos 3 y 4 de §2) y debe
|
||||
confirmar con evidencia real (no supuesta) que el flujo de
|
||||
auto-refresh desde Medusa Admin (precio/descripción/imagen) sigue
|
||||
funcionando.
|
||||
|
||||
1. Tokens base + logo (`globals.css`, `logo-ari.svg`, favicon).
|
||||
2. Header + footer (`navbar.tsx` — incluida la limpieza de §5 —,
|
||||
`footer.tsx`, logo aplicado).
|
||||
3. Product card + grid de catálogo + badges.
|
||||
4. Home (hero, tiles de categoría, secciones).
|
||||
5. Página de producto + drawers de carrito/wishlist.
|
||||
|
||||
### Nota de implementación: alias de compatibilidad de tokens
|
||||
|
||||
La sub-fase 1 solo toca `globals.css`/`layout.tsx`/assets — no
|
||||
`catalog-client.tsx`, `product-card.tsx` ni `button.tsx`, que hoy
|
||||
siguen usando los nombres de token de ADR 0007
|
||||
(`ari-ciruela`, `ari-carbon-oscuro`, `ari-cobre`, `ari-carbon`,
|
||||
`ari-terracota-oscuro`, `ari-hueso`). Para no dejar esos usos sin
|
||||
estilo entre sub-fases, `globals.css` define esos nombres como alias
|
||||
temporales resueltos ya contra la paleta nueva. Cada sub-fase que
|
||||
toque esos archivos reemplaza el nombre de clase por el token
|
||||
definitivo; los alias se eliminan por completo al cerrar la sub-fase
|
||||
5.
|
||||
|
||||
## 7. Consecuencias
|
||||
|
||||
- El sitio completo adopta la paleta nueva en un solo despliegue desde
|
||||
la sub-fase 1 (vía los alias de §6), incluso antes de que cada
|
||||
componente migre al nombre de token definitivo — evita repetir el
|
||||
error de "token aislado rodeado del esquema viejo" de los puntos 3 y
|
||||
4 de §2.
|
||||
- Domine y su carga de fuente se eliminan; Poppins se agrega mínimo
|
||||
(solo peso 700).
|
||||
- Trabajo puramente de frontend: no requiere cambios en
|
||||
`commerce-backend`, `platform-infra`, ni CI nuevo.
|
||||
- `docs-portal` se actualiza con capturas/descripción del resultado
|
||||
final una vez cada sub-fase esté validada en producción, no antes.
|
||||
Reference in new issue
Block a user