revert: Sub-fase 1 ADR 0007 (tokens+smoke test) fuera de produccion
El smoke test en aislamiento (boton CTA terracota + precio en Fraunces) no se puede juzgar de forma justa rodeado del resto de la pagina, que sigue en la paleta anterior (badges NUEVO/TOP en fucsia/ amarillo, fondo blanco) -- choque visual real, no una direccion de marca evaluable. Ademas la direccion terracota/artesanal en si no era lo que se buscaba (se quiere premium/serio, no rustico). Vuelve product-card.tsx y button.tsx a su estado anterior a Sub-fase 1. globals.css/layout.tsx quedan con los tokens y next/font ya integrados (nadie los consume todavia, cero impacto visual) para no rehacer ese trabajo de infraestructura -- la proxima iteracion de diseno se construye y aprueba en una preview aislada (fuera del storefront real) antes de volver a tocar produccion.
This commit is contained in:
1 parent
9c11e16779
commit
ef16858d35
4 files changed
+11
-32
No files matched your search
@@ -1,17 +1,10 @@
|
|||||||
@import "tailwindcss";
|
@import "tailwindcss";
|
||||||
|
|
||||||
@theme {
|
@theme {
|
||||||
/* ADR 0007 -- identidad visual propia (no derivada de ningun
|
--color-ari-cyan: #06b6d4;
|
||||||
competidor). Cada token tiene un rol unico y deliberado, ver
|
--color-ari-magenta: #ec4899;
|
||||||
docs-portal/docs/decisiones/0007-identidad-visual-propia.md */
|
--color-ari-yellow: #fde047;
|
||||||
--color-ari-terracota: #C1502E; /* CTA -- unico uso reservado a accion */
|
--color-ari-blue: #0f172a;
|
||||||
--color-ari-espresso: #2B1B13; /* ancla oscura: header/footer */
|
|
||||||
--color-ari-pino: #2F6F62; /* links / senales de confianza */
|
|
||||||
--color-ari-crema: #FBF3E7; /* fondo general */
|
|
||||||
--color-ari-carbon: #2E2620; /* texto principal */
|
|
||||||
--color-ari-oro: #E3A008; /* badge "destacado" */
|
|
||||||
--color-ari-ladrillo: #A83232; /* badge de descuento */
|
|
||||||
--font-display: var(--font-fraunces), ui-serif, Georgia, serif;
|
|
||||||
--animate-accordion-down: accordion-down .2s ease-out;
|
--animate-accordion-down: accordion-down .2s ease-out;
|
||||||
--animate-accordion-up: accordion-up .2s ease-out;
|
--animate-accordion-up: accordion-up .2s ease-out;
|
||||||
}
|
}
|
||||||
@@ -22,10 +15,10 @@
|
|||||||
:root { color-scheme: light; }
|
:root { color-scheme: light; }
|
||||||
* { border-color: rgb(226 232 240); }
|
* { border-color: rgb(226 232 240); }
|
||||||
html { scroll-behavior: smooth; }
|
html { scroll-behavior: smooth; }
|
||||||
body { margin: 0; background: var(--color-ari-crema); 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: #fff; color: #0f172a; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; text-rendering: optimizeLegibility; }
|
||||||
button, a { -webkit-tap-highlight-color: transparent; }
|
button, a { -webkit-tap-highlight-color: transparent; }
|
||||||
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgb(47 111 98 / .45); outline-offset: 3px; }
|
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgb(167 139 250 / .55); outline-offset: 3px; }
|
||||||
::selection { background: rgb(193 80 46 / .25); color: var(--color-ari-carbon); }
|
::selection { background: #fde047; color: #0f172a; }
|
||||||
|
|
||||||
.content-auto {
|
.content-auto {
|
||||||
content-visibility: auto;
|
content-visibility: auto;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import type { Metadata, Viewport } from "next";
|
import type { Metadata, Viewport } from "next";
|
||||||
import { Fraunces, Inter } from "next/font/google";
|
|
||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
import { CartDrawer } from "@/components/cart/cart-drawer";
|
import { CartDrawer } from "@/components/cart/cart-drawer";
|
||||||
import { Footer } from "@/components/layout/footer";
|
import { Footer } from "@/components/layout/footer";
|
||||||
@@ -21,15 +20,9 @@ export const metadata: Metadata = {
|
|||||||
openGraph: { title: "ARI Shopping", description: "Tesoros para cada aventura.", type: "website", locale: "es_CO" },
|
openGraph: { title: "ARI Shopping", description: "Tesoros para cada aventura.", type: "website", locale: "es_CO" },
|
||||||
};
|
};
|
||||||
|
|
||||||
export const viewport: Viewport = { width: "device-width", initialScale: 1, themeColor: "#2B1B13" };
|
export const viewport: Viewport = { width: "device-width", initialScale: 1, themeColor: "#0f172a" };
|
||||||
|
|
||||||
// ADR 0007: Fraunces (titulares/precio) + Inter (UI/cuerpo) cargadas via
|
|
||||||
// next/font -- antes "Inter" era solo un nombre de fallback en el CSS, sin
|
|
||||||
// garantia real de que el navegador tuviera esa fuente instalada.
|
|
||||||
const inter = Inter({ subsets: ["latin"], variable: "--font-inter", display: "swap" });
|
|
||||||
const fraunces = Fraunces({ subsets: ["latin"], variable: "--font-fraunces", display: "swap" });
|
|
||||||
|
|
||||||
export default async function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) {
|
export default async function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) {
|
||||||
const [products, categories] = await Promise.all([getProducts(), getCategories()]);
|
const [products, categories] = await Promise.all([getProducts(), getCategories()]);
|
||||||
return <html lang="es" className={`${inter.variable} ${fraunces.variable}`}><body><Navbar products={products} categories={categories} /><main>{children}</main><Footer /><CartDrawer /><WishlistDrawer /></body></html>;
|
return <html lang="es"><body><Navbar products={products} categories={categories} /><main>{children}</main><Footer /><CartDrawer /><WishlistDrawer /></body></html>;
|
||||||
}
|
}
|
||||||
@@ -70,11 +70,9 @@ export function ProductCard({ product, priority = false }: { product: Product; p
|
|||||||
<div className="mt-auto flex items-center justify-between gap-3 pt-1">
|
<div className="mt-auto flex items-center justify-between gap-3 pt-1">
|
||||||
<div className="flex flex-col">
|
<div className="flex flex-col">
|
||||||
{product.compareAtPrice && <span className="text-xs font-bold text-slate-400 line-through">{formatMoney(product.compareAtPrice, product.currency)}</span>}
|
{product.compareAtPrice && <span className="text-xs font-bold text-slate-400 line-through">{formatMoney(product.compareAtPrice, product.currency)}</span>}
|
||||||
{/* ADR 0007: smoke test de font-display (Fraunces) en el precio -- si se aprueba visualmente, se propaga al resto de precios en Sub-fase 3. */}
|
<strong className="text-sm font-black">{formatMoney(product.price, product.currency)}</strong>
|
||||||
<strong className="font-display text-base font-bold text-ari-carbon">{formatMoney(product.price, product.currency)}</strong>
|
|
||||||
</div>
|
</div>
|
||||||
{/* ADR 0007: smoke test de la variant "primary" (terracota) -- si se aprueba visualmente, reemplaza "magenta" en el resto del sitio en Sub-fases 2-5. */}
|
<Button variant="magenta" size="sm" onClick={() => addItem(product, selectedVariantId)}><ShoppingBag className="size-4" />Agregar</Button>
|
||||||
<Button variant="primary" size="sm" onClick={() => addItem(product, selectedVariantId)}><ShoppingBag className="size-4" />Agregar</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
@@ -9,11 +9,6 @@ const buttonVariants = cva(
|
|||||||
variants: {
|
variants: {
|
||||||
variant: {
|
variant: {
|
||||||
default: "bg-slate-950 text-white shadow-lg hover:-translate-y-0.5 hover:bg-slate-800",
|
default: "bg-slate-950 text-white shadow-lg hover:-translate-y-0.5 hover:bg-slate-800",
|
||||||
// ADR 0007: unico color reservado a accion (nunca decorativo) --
|
|
||||||
// reemplaza gradualmente a "magenta" component por component
|
|
||||||
// (sub-fases 2-5), empezando por el CTA de ProductCard como
|
|
||||||
// smoke test visual antes de propagar al resto del sistema.
|
|
||||||
primary: "bg-ari-terracota text-white shadow-lg shadow-ari-terracota/25 hover:brightness-95",
|
|
||||||
magenta: "bg-gradient-to-r from-fuchsia-500 to-pink-500 text-white shadow-lg shadow-pink-500/25 hover:-translate-y-0.5",
|
magenta: "bg-gradient-to-r from-fuchsia-500 to-pink-500 text-white shadow-lg shadow-pink-500/25 hover:-translate-y-0.5",
|
||||||
yellow: "bg-yellow-300 text-slate-950 shadow-lg shadow-yellow-400/25 hover:-translate-y-0.5 hover:bg-yellow-200",
|
yellow: "bg-yellow-300 text-slate-950 shadow-lg shadow-yellow-400/25 hover:-translate-y-0.5 hover:bg-yellow-200",
|
||||||
outline: "border border-slate-200 bg-white text-slate-950 hover:border-cyan-400 hover:bg-cyan-50",
|
outline: "border border-slate-200 bg-white text-slate-950 hover:border-cyan-400 hover:bg-cyan-50",
|
||||||
|
|||||||
Reference in new issue
Block a user