Files
fuel-price/resources/css/app.css
Ovidiu U d822b77fb0
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
feat: redesign homepage with responsive hero, verdict card preview, and modular landing components
- Extract LandingNav, LiveTicker, StatsRow, VerdictCard, and HeroSearch into reusable landing components
- Implement responsive two-layout strategy: mobile stacked (hero search + verdict card + CTA) vs desktop inline pill input with verdict card sidebar
- Add serif/mono font tokens and live-dot pulse animation to CSS
- Move verdict card above search input on mobile, to right sidebar on desktop
- Replace hero "fill up now" mockup with dynamic VerdictCard showing top stations, pricing, and recommendation
- Simplify navigation with uppercase tracking, add Fleet anchor, and gate CTA by auth state
- Lazy-load LeafletMap with defineAsyncComponent to reduce initial bundle
- Relocate SearchBar below hero on search attempt for persistent filter UI
- Add meta description for SEO
2026-04-20 20:27:02 +01:00

127 lines
3.6 KiB
CSS

@import 'tailwindcss';
@import '../../vendor/livewire/flux/dist/flux.css';
@source '../views';
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
@source '../../vendor/livewire/flux-pro/stubs/**/*.blade.php';
@source '../../vendor/livewire/flux/stubs/**/*.blade.php';
@custom-variant dark (&:where(.dark-mode-disabled));
@theme {
--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
--color-zinc-50: #faf6f3; /* surface */
--color-zinc-100: #f5ede5; /* surface-page */
--color-zinc-200: #eeeae5; /* surface-subtle */
--color-zinc-300: #e5ded7; /* border */
--color-zinc-400: #c8b8b0;
--color-zinc-500: #89726c; /* text-muted */
--color-zinc-600: #6b5a55; /* text-dim */
--color-zinc-700: #5a4a45;
--color-zinc-800: #4a3f3b; /* text-base */
--color-zinc-900: #3a302c;
--color-zinc-950: #2a2220;
/* Brand accent — burnt sienna */
--color-accent: #bb5b3e;
--color-accent-content: #a34a31;
--color-accent-foreground: #ffffff;
/* Named semantic tokens */
--color-primary: #bb5b3e;
--color-primary-dark: #a34a31;
--color-surface: #faf6f3;
--color-surface-page: #f5ede5;
--color-surface-subtle: #eeeae5;
--color-border: #e5ded7;
--color-text-base: #4a3f3b;
--color-text-muted: #89726c;
--color-text-dim: #6b5a55;
/* Accent palette */
--color-teal: #4a7c7e;
--color-mauve: #8b4860;
--color-tan: #9b8b6b;
/* Status */
--color-status-good: #22c55e;
--color-status-warn: #f59e0b;
--color-status-bad: #ef4444;
/* Display font */
--font-display: 'Manrope', ui-sans-serif, system-ui, sans-serif;
/* Hero type pairing — swap these tokens to upgrade to Instrument Serif / Geist Mono later */
--font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
@layer utilities {
.hero-gradient {
background:
radial-gradient(circle at top right, color-mix(in oklch, var(--color-primary) 8%, transparent), transparent 50%),
radial-gradient(circle at bottom left, color-mix(in oklch, var(--color-primary) 5%, transparent), transparent 40%);
}
.glass-card {
background: color-mix(in oklch, var(--color-surface) 90%, transparent);
backdrop-filter: blur(12px);
border: 1px solid color-mix(in oklch, var(--color-border) 60%, transparent);
}
.live-dot {
animation: live-pulse 2s ease-in-out infinite;
}
@keyframes live-pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}
}
@layer base {
body {
color: var(--color-zinc-800);
}
:root {
--primary: #bb5b3e;
--bg-main: #f5ede5;
--bg-card: #faf6f3;
--text-main: #4a3f3b;
--neutral: #89726c;
--rec-now: #8B4860;
--rec-wait: #4A7C7E;
--rec-hold: #9B8B6B;
}
*,
::after,
::before,
::backdrop,
::file-selector-button {
border-color: var(--color-gray-200, currentColor);
}
}
[data-flux-field]:not(ui-radio, ui-checkbox) {
@apply grid gap-2;
}
[data-flux-label] {
@apply !mb-0 !leading-tight;
}
input:focus[data-flux-control],
textarea:focus[data-flux-control],
select:focus[data-flux-control] {
@apply outline-hidden ring-2 ring-accent ring-offset-2 ring-offset-accent-foreground;
}
/* \[:where(&)\]:size-4 {
@apply size-4;
} */