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,16 +1,26 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
@theme {
|
||||
/* ADR 0007 (Opcion 2, "Atelier calido") -- identidad premium propia,
|
||||
no derivada de ningun competidor. Ver
|
||||
docs-portal/docs/decisiones/0007-identidad-visual-propia.md */
|
||||
--color-ari-ciruela: #5B3256; /* CTA -- unico uso reservado a accion */
|
||||
--color-ari-carbon-oscuro: #221D1A; /* ancla oscura: header/footer, badge "Nuevo" */
|
||||
--color-ari-cobre: #B5723A; /* acento: links, badge "Top", foco */
|
||||
--color-ari-hueso: #F7F1E6; /* fondo general */
|
||||
--color-ari-carbon: #2A2420; /* texto principal */
|
||||
--color-ari-terracota-oscuro: #9C4A2E; /* badge de descuento */
|
||||
--font-display: var(--font-domine), ui-serif, Georgia, serif;
|
||||
/* ADR 0008 ("Navy & Coral") -- reemplaza ADR 0007 (Opcion 2, "Atelier
|
||||
calido"). Ver docs-portal/docs/decisiones/0008-identidad-navy-coral.md */
|
||||
--color-ari-marino: #122844; /* ancla: header, footer, badge "Nuevo", fondo de hero */
|
||||
--color-ari-coral: #D85A30; /* acento unico de accion: CTA, precio destacado */
|
||||
--color-ari-coral-claro: #F0997B; /* acento secundario: subtitulos sobre marino, ala inferior del isotipo */
|
||||
|
||||
/* Alias de compatibilidad -- ADR 0007 definio estos nombres y hoy los
|
||||
siguen consumiendo catalog-client.tsx, product-card.tsx y button.tsx
|
||||
(migracion pendiente en las sub-fases 3-5 del ADR 0008). Se resuelven
|
||||
ya contra la paleta nueva para que ningun uso existente quede sin
|
||||
estilo entre sub-fases; se eliminan por completo al cerrar la
|
||||
sub-fase 5. No usar estos alias en código nuevo. */
|
||||
--color-ari-ciruela: var(--color-ari-coral);
|
||||
--color-ari-carbon-oscuro: var(--color-ari-marino);
|
||||
--color-ari-cobre: var(--color-ari-coral-claro);
|
||||
--color-ari-carbon: var(--color-ari-marino);
|
||||
--color-ari-terracota-oscuro: var(--color-ari-coral);
|
||||
--color-ari-hueso: #FFFFFF;
|
||||
|
||||
--font-display: var(--font-poppins), ui-sans-serif, system-ui, sans-serif;
|
||||
--animate-accordion-down: accordion-down .2s ease-out;
|
||||
--animate-accordion-up: accordion-up .2s ease-out;
|
||||
}
|
||||
@@ -21,10 +31,10 @@
|
||||
:root { color-scheme: light; }
|
||||
* { border-color: rgb(226 232 240); }
|
||||
html { scroll-behavior: smooth; }
|
||||
body { margin: 0; background: var(--color-ari-hueso); color: var(--color-ari-carbon); font-family: var(--font-inter), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; text-rendering: optimizeLegibility; }
|
||||
body { margin: 0; background: #FFFFFF; color: var(--color-slate-900); font-family: var(--font-inter), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; text-rendering: optimizeLegibility; }
|
||||
button, a { -webkit-tap-highlight-color: transparent; }
|
||||
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgb(181 114 58 / .5); outline-offset: 3px; }
|
||||
::selection { background: rgb(91 50 86 / .2); color: var(--color-ari-carbon); }
|
||||
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgb(216 90 48 / .5); outline-offset: 3px; }
|
||||
::selection { background: rgb(216 90 48 / .15); color: var(--color-slate-900); }
|
||||
|
||||
.content-auto {
|
||||
content-visibility: auto;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<!-- ADR 0008 ("Navy & Coral"). Version reducida del isotipo para favicon/
|
||||
app icon: solo circulo marino + mariposa, sin wordmark (no cabe
|
||||
legible a este tamano). Convencion de Next.js App Router: este
|
||||
archivo se sirve automaticamente como favicon/app icon. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 34" role="img" aria-label="ARI shopping">
|
||||
<circle cx="17" cy="17" r="17" fill="#122844"/>
|
||||
<g transform="translate(0 5)">
|
||||
<ellipse cx="10" cy="8" rx="9" ry="7" transform="rotate(-18 10 8)" fill="#D85A30"/>
|
||||
<ellipse cx="24" cy="8" rx="9" ry="7" transform="rotate(18 24 8)" fill="#D85A30"/>
|
||||
<ellipse cx="12" cy="16" rx="6" ry="5" transform="rotate(-10 12 16)" fill="#F0997B"/>
|
||||
<ellipse cx="22" cy="16" rx="6" ry="5" transform="rotate(10 22 16)" fill="#F0997B"/>
|
||||
<rect x="16" y="3" width="2" height="18" rx="1" fill="#122844"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 895 B |
@@ -1,5 +1,5 @@
|
||||
import type { Metadata, Viewport } from "next";
|
||||
import { Domine, Inter } from "next/font/google";
|
||||
import { Inter, Poppins } from "next/font/google";
|
||||
import "./globals.css";
|
||||
import { CartDrawer } from "@/components/cart/cart-drawer";
|
||||
import { Footer } from "@/components/layout/footer";
|
||||
@@ -21,15 +21,15 @@ export const metadata: Metadata = {
|
||||
openGraph: { title: "ARI Shopping", description: "Tesoros para cada aventura.", type: "website", locale: "es_CO" },
|
||||
};
|
||||
|
||||
export const viewport: Viewport = { width: "device-width", initialScale: 1, themeColor: "#221D1A" };
|
||||
export const viewport: Viewport = { width: "device-width", initialScale: 1, themeColor: "#122844" };
|
||||
|
||||
// ADR 0007 (Opcion 2, "Atelier calido"): Domine (titulares/precio) + Inter
|
||||
// (UI/cuerpo) via next/font -- antes "Inter" era solo un nombre de fallback
|
||||
// en el CSS, sin garantia real de que el navegador tuviera esa fuente.
|
||||
// ADR 0008 ("Navy & Coral"): Poppins peso 700 para los "momentos de marca"
|
||||
// (wordmark, h1/h2, precio, CTA) + Inter para body/UI -- solo se carga el
|
||||
// peso 700, es el unico que usa --font-display.
|
||||
const inter = Inter({ subsets: ["latin"], variable: "--font-inter", display: "swap" });
|
||||
const domine = Domine({ subsets: ["latin"], variable: "--font-domine", display: "swap" });
|
||||
const poppins = Poppins({ subsets: ["latin"], weight: ["700"], variable: "--font-poppins", display: "swap" });
|
||||
|
||||
export default async function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) {
|
||||
const [products, categories] = await Promise.all([getProducts(), getCategories()]);
|
||||
return <html lang="es" className={`${inter.variable} ${domine.variable}`}><body><Navbar products={products} categories={categories} /><main>{children}</main><Footer /><CartDrawer /><WishlistDrawer /></body></html>;
|
||||
return <html lang="es" className={`${inter.variable} ${poppins.variable}`}><body><Navbar products={products} categories={categories} /><main>{children}</main><Footer /><CartDrawer /><WishlistDrawer /></body></html>;
|
||||
}
|
||||
Reference in new issue
Block a user