init
This commit is contained in:
commit
6250d23297
53 changed files with 6381 additions and 0 deletions
96
app/globals.css
Normal file
96
app/globals.css
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
@import "tailwindcss";
|
||||
|
||||
/* ============================================================
|
||||
Wayfarer theme — Tailwind v4.
|
||||
Tokens here become utilities: bg-gold, text-stone, font-pixel…
|
||||
All styling lives as utility classes in the components.
|
||||
============================================================ */
|
||||
|
||||
/* `static` keeps every color as a CSS variable even if no class uses it,
|
||||
because the pixel sprites reference them directly (lib/pixel-art.ts). */
|
||||
@theme static {
|
||||
--color-black: #000000;
|
||||
--color-panel: #0a0905; /* faint warmth inside frames so gold reads as metal */
|
||||
--color-gold: #c9a54c;
|
||||
--color-gold-dim: #5c4a1f;
|
||||
--color-gold-bright: #f2d98b;
|
||||
--color-ink: #e8e0c9;
|
||||
--color-stone: #857e6c;
|
||||
--color-teal: #58cbbd;
|
||||
--color-teal-off: #1d2a28;
|
||||
--color-heart: #d64a3c;
|
||||
--color-heart-empty: #4a2420;
|
||||
}
|
||||
|
||||
@theme {
|
||||
--font-display: "Cinzel", Georgia, serif;
|
||||
--font-pixel: "Silkscreen", system-ui, sans-serif;
|
||||
--font-sans: "IBM Plex Sans", system-ui, sans-serif;
|
||||
|
||||
/* The one ambient motion: the hero sprite drifts like a held item. */
|
||||
--animate-float: float 3.2s ease-in-out infinite;
|
||||
@keyframes float {
|
||||
50% {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Cut-corner shape for every frame. Set the corner size per element
|
||||
with [--cut:22px]; it defaults to 14px. */
|
||||
@utility chamfer {
|
||||
clip-path: polygon(
|
||||
var(--cut, 14px) 0, calc(100% - var(--cut, 14px)) 0, 100% var(--cut, 14px),
|
||||
100% calc(100% - var(--cut, 14px)), calc(100% - var(--cut, 14px)) 100%,
|
||||
var(--cut, 14px) 100%, 0 calc(100% - var(--cut, 14px)), 0 var(--cut, 14px)
|
||||
);
|
||||
}
|
||||
|
||||
/* Leaflet builds its own controls, so they can't take utility classes.
|
||||
Two things make these overrides win over leaflet.css:
|
||||
- they are NOT in an @layer (unlayered CSS always beats layered CSS), and
|
||||
- each starts with .leaflet-container, so it is more specific than Leaflet's
|
||||
own rule even though leaflet.css loads later. */
|
||||
.leaflet-container {
|
||||
@apply bg-black font-sans;
|
||||
}
|
||||
.leaflet-container .leaflet-bar {
|
||||
@apply rounded-none border border-gold-dim shadow-none;
|
||||
}
|
||||
.leaflet-container .leaflet-bar a {
|
||||
@apply rounded-none border-gold-dim bg-black text-gold-bright;
|
||||
}
|
||||
.leaflet-container .leaflet-bar a:hover,
|
||||
.leaflet-container .leaflet-bar a:focus-visible {
|
||||
@apply bg-gold text-black;
|
||||
}
|
||||
.leaflet-container .leaflet-control.leaflet-control-attribution {
|
||||
@apply bg-black/70 text-[10px] text-stone;
|
||||
}
|
||||
.leaflet-container .leaflet-control-attribution a {
|
||||
@apply text-gold;
|
||||
}
|
||||
|
||||
@layer base {
|
||||
html {
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
body {
|
||||
@apply min-h-dvh bg-black font-sans text-ink antialiased;
|
||||
/* A single low ember of light behind the hero; the rest stays pure black. */
|
||||
background-image:
|
||||
radial-gradient(ellipse 65% 42% at 50% 10%, rgb(201 165 76 / 0.11), transparent 72%),
|
||||
radial-gradient(ellipse 40% 30% at 80% 24%, rgb(88 203 189 / 0.04), transparent 70%);
|
||||
}
|
||||
|
||||
/* Hide the browser's unstyled native clear button on search inputs; PlaceSearch renders its own. */
|
||||
input[type="search"]::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
@apply outline-2 outline-offset-3 outline-teal;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue