feat(ecommerce): ADR 0008 "Navy & Coral" - Sub-fase 3 (product card + grid de catalogo)

Reemplaza los alias de compatibilidad de ADR 0007 por los tokens
definitivos de ADR 0008 en product-card.tsx y catalog-client.tsx:
ari-ciruela -> ari-coral, ari-carbon(-oscuro) -> ari-marino,
ari-cobre -> ari-coral-claro, ari-terracota-oscuro -> ari-coral,
ari-hueso -> bg-white. Cambio puramente mecanico de nombre de clase,
sin cambio de comportamiento ni de jerarquia visual.

Fuera de alcance (confirmado contra ADR 0008 SS6): borde gradiente de
components/search/predictive-search.tsx (no encaja en ninguna de las
5 sub-fases documentadas) y bg-ari-ciruela/bg-ari-cobre en
components/ui/button.tsx (sub-fase 5, boton de carrito).

Validado con npm ci + tsc --noEmit + next lint + next build en
contenedor node:24.18.0-bookworm-slim (mismo runtime del Dockerfile);
CSS compilado inspeccionado: tokens nuevos presentes, cero clases
legacy generadas desde los dos archivos tocados.
This commit is contained in:
devops committed 2026-08-27 14:30:48 -05:00
1 parent f147f4c42c
commit b5c2c36749
2 files changed
+19 -19

No files matched your search

@@ -323,18 +323,18 @@ export function CatalogClient({
<div className="mb-8">
{breadcrumb.length > 0 && (
<nav aria-label="Breadcrumb" className="mb-4 flex flex-wrap items-center gap-1.5 text-xs font-bold text-slate-500">
<Link href="/catalog" prefetch={false} className="hover:text-ari-ciruela">
<Link href="/catalog" prefetch={false} className="hover:text-ari-coral">
Inicio
</Link>
{breadcrumb.map((node, index) => (
<span key={node.id} className="flex items-center gap-1.5">
<ChevronRight className="size-3" />
{index === breadcrumb.length - 1 ? (
<span aria-current="page" className="text-ari-carbon">
<span aria-current="page" className="text-ari-marino">
{node.name}
</span>
) : (
<Link href={`/catalog?category=${encodeURIComponent(node.name)}`} prefetch={false} className="hover:text-ari-ciruela">
<Link href={`/catalog?category=${encodeURIComponent(node.name)}`} prefetch={false} className="hover:text-ari-coral">
{node.name}
</Link>
)}
@@ -342,23 +342,23 @@ export function CatalogClient({
))}
</nav>
)}
<span className="text-xs font-black uppercase tracking-[.18em] text-ari-ciruela">
<span className="text-xs font-black uppercase tracking-[.18em] text-ari-coral">
Catálogo completo
</span>
<h1 className="font-display mt-2 text-5xl font-bold tracking-tight text-ari-carbon">Todos los tesoros</h1>
<h1 className="font-display mt-2 text-5xl font-bold tracking-tight text-ari-marino">Todos los tesoros</h1>
<p className="mt-3 text-slate-500">
Filtra por categoría, marca o edad sin recargar la página.
</p>
</div>
<div className="grid gap-8 lg:grid-cols-[260px_1fr]">
<aside className="h-fit space-y-6 rounded-lg border border-slate-100 bg-white p-6 shadow-lg shadow-ari-carbon-oscuro/5 lg:sticky lg:top-44">
<aside className="h-fit space-y-6 rounded-lg border border-slate-100 bg-white p-6 shadow-lg shadow-ari-marino/5 lg:sticky lg:top-44">
<div className="flex items-center justify-between">
<strong className="flex items-center gap-2 text-lg font-black">
<SlidersHorizontal className="size-5 text-ari-cobre" />
<SlidersHorizontal className="size-5 text-ari-coral-claro" />
Filtros
</strong>
<button onClick={reset} className="text-xs font-black text-ari-ciruela">
<button onClick={reset} className="text-xs font-black text-ari-coral">
<X className="mr-1 inline size-3" />
Limpiar
</button>
@@ -392,7 +392,7 @@ export function CatalogClient({
step={5000}
value={maxPrice}
onChange={(event) => setMaxPrice(Number(event.target.value))}
className="w-full accent-ari-ciruela"
className="w-full accent-ari-coral"
/>
<p className="mt-2 text-xs font-bold text-slate-500">
Hasta ${maxPrice.toLocaleString("es-CO")}
@@ -470,8 +470,8 @@ function Filter({
onClick={() => onChange(value)}
className={`rounded-md px-3 py-2 text-xs font-bold transition ${
selected === value
? "bg-ari-carbon-oscuro text-white"
: "bg-slate-100 text-slate-600 hover:bg-ari-cobre/10"
? "bg-ari-marino text-white"
: "bg-slate-100 text-slate-600 hover:bg-ari-coral-claro/10"
}`}
>
{value}