Files
Moonbase/src/app/globals.css
tonym 8f77b7c453 v0.22.0 — Inventory search + Location/Label grouping; Suggestions styling fix
Adds a search box (matches name, location, and labels) and a Location/Label
grouping toggle to Inventory, and fixes the unstyled Suggestions page.
(Renumbered from 0.19.0 → 0.22.0: Pantry work took 0.19–0.21 in parallel.)

Hardening from a max-effort code review of the new grid:
- Contained items resolve to their container's effective location, so search
  finds them and the flat view groups them under the right place (not "No
  location").
- Location/label groups key on id, not name, so same-named places/labels stay
  separate; synthetic bucket renamed "No labels" to avoid colliding with a real
  label; fixed duplicate React keys and two empty-state regressions.
- deleteItem now reparents a deleted container's contents into its own spot
  (its place or parent item) instead of orphaning them; the grid also treats
  any still-orphaned child as top-level so nothing silently vanishes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 20:12:21 -05:00

109 lines
3.5 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
/*
* Moon Base palette — forest / earth / sky
*
* --soil warm dark brown for body text (like rich earth)
* --leaf fresh green accent
* --canopy deep forest green sidebar
* --dew pale sage background
* --ember warm red for warnings / destructive
*/
@layer base {
:root {
/* Force native form controls (input/textarea/select) to the light theme so
* they don't pick up the OS dark fill — otherwise an unstyled <input> renders
* with a dark system background in a dark-mode browser, hiding placeholder
* text. .dark overrides this below. */
color-scheme: light;
--dew: 120 18% 94%; /* #EEF3EE — pale sage background */
--dew-deep: 120 20% 97%; /* slightly lighter for cards */
--soil: 25 35% 18%; /* #3A2B1A — warm dark brown text */
--soil-muted: 25 20% 40%; /* softer brown for muted copy */
--leaf: 130 40% 38%; /* #3D7A48 — forest green accent */
--leaf-soft: 130 30% 72%; /* lighter green for hovers */
--canopy: 140 30% 16%; /* #1E3328 — dark forest green sidebar */
--canopy-foreground: 120 18% 88%;
--canopy-accent: 140 28% 22%;
--canopy-accent-foreground: 130 30% 72%;
--canopy-border: 140 30% 12%;
--ember: 5 55% 36%; /* #8C3528 — deep red for destructive */
--ember-foreground: 44 80% 95%;
/* shadcn token bindings */
--background: var(--dew);
--foreground: var(--soil);
--card: var(--dew-deep);
--card-foreground: var(--soil);
--popover: var(--dew-deep);
--popover-foreground: var(--soil);
--primary: 140 30% 16%;
--primary-foreground: 120 18% 88%;
--secondary: 120 15% 85%;
--secondary-foreground: var(--soil);
--muted: 120 12% 87%;
--muted-foreground: var(--soil-muted);
--accent: var(--leaf);
--accent-foreground: 120 18% 96%;
--destructive: var(--ember);
--destructive-foreground: var(--ember-foreground);
--border: 120 15% 82%;
--input: 120 15% 82%;
--ring: var(--leaf);
--radius: 0.625rem;
--sidebar: var(--canopy);
--sidebar-foreground: var(--canopy-foreground);
--sidebar-accent: var(--canopy-accent);
--sidebar-accent-foreground: var(--canopy-accent-foreground);
--sidebar-border: var(--canopy-border);
}
.dark {
color-scheme: dark;
--dew: 140 18% 10%;
--dew-deep: 140 18% 12%;
--soil: 120 18% 88%;
--soil-muted: 120 12% 65%;
--leaf: 130 40% 50%;
--leaf-soft: 130 30% 65%;
--canopy: 140 25% 8%;
--canopy-foreground: 120 15% 78%;
--canopy-accent: 140 25% 13%;
--canopy-accent-foreground: 130 25% 80%;
--canopy-border: 140 25% 6%;
--ember: 5 60% 50%;
--ember-foreground: 120 18% 92%;
--background: var(--dew);
--foreground: var(--soil);
--card: var(--dew-deep);
--card-foreground: var(--soil);
--popover: var(--dew-deep);
--popover-foreground: var(--soil);
--primary: 130 40% 50%;
--primary-foreground: 140 18% 10%;
--secondary: 140 18% 18%;
--secondary-foreground: var(--soil);
--muted: 140 18% 16%;
--muted-foreground: var(--soil-muted);
--accent: var(--leaf);
--accent-foreground: 140 18% 10%;
--destructive: var(--ember);
--destructive-foreground: var(--ember-foreground);
--border: 140 18% 20%;
--input: 140 18% 20%;
--ring: var(--leaf);
}
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}