diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx index 548ef3b..dd577a9 100644 --- a/src/app/blog/page.tsx +++ b/src/app/blog/page.tsx @@ -130,7 +130,7 @@ export default function BlogPage() { {/* Hero */}
-

+

Blog & Resources

@@ -151,7 +151,7 @@ export default function BlogPage() { Featured -

+

Getting Started with Route Commerce

@@ -234,7 +234,7 @@ export default function BlogPage() { {/* Newsletter */}

-

+

Stay in the Loop

diff --git a/src/app/brands/page.tsx b/src/app/brands/page.tsx index 3f184cc..a563973 100644 --- a/src/app/brands/page.tsx +++ b/src/app/brands/page.tsx @@ -224,7 +224,7 @@ export default function BrandsPage() { - + {/* Fonts loaded via next/font in app/layout.tsx — no external @import needed */}

diff --git a/src/components/landing/TestimonialsAndCTA.tsx b/src/components/landing/TestimonialsAndCTA.tsx index 407a98e..a02ae8d 100644 --- a/src/components/landing/TestimonialsAndCTA.tsx +++ b/src/components/landing/TestimonialsAndCTA.tsx @@ -59,7 +59,7 @@ export default function TestimonialsAndCTA() {
{/* Decorative botanical accent */} @@ -132,7 +132,7 @@ export default function TestimonialsAndCTA() {

{/* Decorative gradient orbs */} @@ -422,7 +422,7 @@ export default function TestimonialsAndCTA() { {/* Headline */}

-
- {/* Logo */} + {/* Logo — uses Fraunces (loaded via next/font) for a refined serif wordmark */}
@@ -74,7 +69,7 @@ export default function SiteHeader() { - {/* Navigation */} + {/* Navigation — uses Manrope (loaded via next/font) for consistent small caps */}
-

+

You're on the list!

diff --git a/src/styles/admin-design-system.css b/src/styles/admin-design-system.css index 42fdc03..742cf66 100644 --- a/src/styles/admin-design-system.css +++ b/src/styles/admin-design-system.css @@ -381,10 +381,10 @@ font-feature-settings: "ss01", "ss02"; } .font-sans-ui { - font-family: var(--font-geist), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; + font-family: var(--font-manrope), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; } .font-mono-ui { - font-family: var(--font-jetbrains-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace; + font-family: var(--font-fragment-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-feature-settings: "ss01", "tnum"; } @@ -406,7 +406,7 @@ /* Eyebrow — small caps tracking label for editorial headers */ .ha-eyebrow { - font-family: var(--font-geist), ui-sans-serif, system-ui, sans-serif; + font-family: var(--font-manrope), ui-sans-serif, system-ui, sans-serif; font-size: 0.625rem; /* 10px */ font-weight: 600; letter-spacing: 0.18em; @@ -416,7 +416,7 @@ /* Tabular numerals for prices/dates */ .ha-num { - font-family: var(--font-jetbrains-mono), ui-monospace, monospace; + font-family: var(--font-fragment-mono), ui-monospace, monospace; font-variant-numeric: tabular-nums; font-feature-settings: "tnum", "ss01"; } @@ -465,7 +465,7 @@ height: 2.25rem; /* 36px */ padding: 0 0.75rem; font-size: 0.875rem; /* 14px */ - font-family: var(--font-geist), ui-sans-serif, system-ui, sans-serif; + font-family: var(--font-manrope), ui-sans-serif, system-ui, sans-serif; color: var(--admin-text-primary); background: rgba(0, 0, 0, 0.02); border: 1px solid var(--admin-border); @@ -488,11 +488,84 @@ opacity: 0.7; } .ha-field-input-mono { - font-family: var(--font-jetbrains-mono), ui-monospace, monospace; + font-family: var(--font-fragment-mono), ui-monospace, monospace; font-variant-numeric: tabular-nums; font-size: 0.8125rem; letter-spacing: -0.01em; } +.ha-field-textarea { + width: 100%; + min-height: 4.5rem; + padding: 0.625rem 0.75rem; + font-size: 0.875rem; + font-family: var(--font-manrope), ui-sans-serif, system-ui, sans-serif; + line-height: 1.5; + color: var(--admin-text-primary); + background: rgba(0, 0, 0, 0.02); + border: 1px solid var(--admin-border); + border-radius: 0.5rem; + outline: none; + resize: vertical; + transition: all 160ms cubic-bezier(0.4, 0, 0.2, 1); +} +.ha-field-textarea:hover { + border-color: rgba(22, 163, 74, 0.4); + background: rgba(22, 163, 74, 0.015); +} +.ha-field-textarea:focus, +.ha-field-textarea:focus-visible { + border-color: var(--admin-accent); + background: #ffffff; + box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.12); +} +.ha-field-textarea::placeholder { + color: var(--admin-text-muted); + opacity: 0.7; +} + +/* Subtle scrollbar inside admin scroll containers */ +.ha-scroll { + scrollbar-width: thin; + scrollbar-color: var(--admin-border) transparent; +} +.ha-scroll::-webkit-scrollbar { + width: 6px; + height: 6px; +} +.ha-scroll::-webkit-scrollbar-track { + background: transparent; +} +.ha-scroll::-webkit-scrollbar-thumb { + background: var(--admin-border); + border-radius: 3px; +} +.ha-scroll::-webkit-scrollbar-thumb:hover { + background: var(--admin-text-muted); +} + +/* Skeleton placeholder — soft pulse for loading rows in admin tables */ +.ha-skeleton { + display: block; + background: linear-gradient( + 90deg, + rgba(0, 0, 0, 0.04) 0%, + rgba(0, 0, 0, 0.07) 50%, + rgba(0, 0, 0, 0.04) 100% + ); + background-size: 200% 100%; + animation: ha-skeleton-pulse 1.4s ease-in-out infinite; + border-radius: 0.375rem; +} +@keyframes ha-skeleton-pulse { + 0% { background-position: 100% 0; } + 100% { background-position: -100% 0; } +} +@media (prefers-reduced-motion: reduce) { + .ha-skeleton { + animation: none; + background: rgba(0, 0, 0, 0.05); + } +} /* Segmented control for status (replaces giant buttons) */ .ha-segment { @@ -580,7 +653,7 @@ min-width: 1.125rem; height: 1.125rem; padding: 0 0.25rem; - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.625rem; font-weight: 600; color: var(--admin-text-secondary); @@ -599,7 +672,7 @@ padding: 0 1rem; font-size: 0.8125rem; font-weight: 600; - font-family: var(--font-geist), ui-sans-serif, system-ui, sans-serif; + font-family: var(--font-manrope), ui-sans-serif, system-ui, sans-serif; color: #ffffff; background: linear-gradient(180deg, #16a34a 0%, #15803d 100%); border: 1px solid #14532d; @@ -639,7 +712,7 @@ padding: 0 0.75rem; font-size: 0.8125rem; font-weight: 600; - font-family: var(--font-geist), ui-sans-serif, system-ui, sans-serif; + font-family: var(--font-manrope), ui-sans-serif, system-ui, sans-serif; color: var(--admin-text-secondary); background: transparent; border: 1px solid transparent; @@ -701,7 +774,7 @@ height: 2.25rem; padding: 0 0.75rem 0 2.25rem; font-size: 0.8125rem; - font-family: var(--font-geist), ui-sans-serif, system-ui, sans-serif; + font-family: var(--font-manrope), ui-sans-serif, system-ui, sans-serif; color: var(--admin-text-primary); background: rgba(0, 0, 0, 0.02); border: 1px solid var(--admin-border); @@ -764,7 +837,7 @@ border-color: var(--admin-accent); } .ha-picker-chip-count { - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.625rem; font-weight: 600; padding: 0.0625rem 0.3rem; @@ -898,7 +971,7 @@ border-radius: 0.25rem; } .ha-product-card-price { - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.6875rem; font-weight: 600; font-variant-numeric: tabular-nums; @@ -1061,7 +1134,7 @@ border-bottom: none; } .ha-row-num { - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.625rem; color: var(--admin-text-muted); font-variant-numeric: tabular-nums; @@ -1103,7 +1176,7 @@ display: inline-flex; align-items: center; gap: 0.5rem; - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.18em; @@ -1135,7 +1208,7 @@ font-weight: 500; } .ha-calendar-title-year { - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.875rem; font-weight: 500; color: var(--admin-text-muted); @@ -1179,7 +1252,7 @@ padding: 0 0.75rem; background: var(--admin-text-primary); color: var(--admin-bg); - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em; @@ -1201,7 +1274,7 @@ } .ha-calendar-dow-cell { padding: 0.625rem 0.75rem; - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.16em; @@ -1272,7 +1345,7 @@ } .ha-calendar-daynum { - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.75rem; font-weight: 600; color: var(--admin-text-secondary); @@ -1317,7 +1390,7 @@ width: 100%; min-width: 0; color: var(--admin-text-primary); - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; } .ha-calendar-event:hover { background: rgba(22, 163, 74, 0.14); @@ -1343,7 +1416,7 @@ background: rgba(0, 0, 0, 0.06); } .ha-calendar-event-time { - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.5625rem; font-weight: 600; color: var(--admin-text-secondary); @@ -1365,7 +1438,7 @@ font-size: 0.625rem; color: var(--admin-text-muted); font-weight: 600; - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-variant-numeric: tabular-nums; padding: 0.125rem 0.25rem; text-align: left; @@ -1431,7 +1504,7 @@ display: flex; align-items: center; gap: 0.5rem; - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.14em; @@ -1474,7 +1547,7 @@ color: var(--admin-text-muted); } .ha-event-popover-field-value { - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.75rem; font-weight: 600; color: var(--admin-text-primary); @@ -1498,7 +1571,7 @@ padding: 0 0.625rem; font-size: 0.75rem; font-weight: 600; - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; background: #ffffff; color: var(--admin-text-primary); border: 1px solid var(--admin-border); @@ -1569,7 +1642,7 @@ display: inline-flex; align-items: center; gap: 0.5rem; - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.18em; @@ -1688,7 +1761,7 @@ display: flex; align-items: center; justify-content: center; - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.6875rem; font-weight: 700; color: var(--admin-accent-text); @@ -1721,7 +1794,7 @@ padding-top: 0.125rem; } .ha-route-stop-time { - font-family: var(--font-jetbrains-mono), monospace; + font-family: var(--font-fragment-mono), monospace; font-size: 0.6875rem; font-weight: 600; color: var(--admin-text-muted); @@ -1778,7 +1851,7 @@ padding: 0 0.5rem; font-size: 0.6875rem; font-weight: 600; - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; background: transparent; color: var(--admin-text-secondary); border: 1px solid var(--admin-border); @@ -1844,7 +1917,7 @@ padding: 0 0.75rem; font-size: 0.8125rem; font-weight: 600; - font-family: var(--font-geist), sans-serif; + font-family: var(--font-manrope), sans-serif; color: var(--admin-text-secondary); background: transparent; border: none;