From ce11b60ca0ca6d4288a51ffce915ce95261ed63a Mon Sep 17 00:00:00 2001 From: Patrick Mulligan Date: Fri, 31 Jul 2026 21:47:14 +0200 Subject: [PATCH] feat(deck): light/dark mode via semantic tokens + toggle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refactor the deck off the bespoke ink/sand palette and literal white/x overlays onto flipping semantic tokens (fg, fg-muted, surface[-2..4], line[-2..3], and mode-aware accent text) defined once under the shadcn :root/.dark blocks in style.css. A single `.dark` class on the deck root now flips the entire theme. Add a Sun/Moon toggle in the top bar — dark by default, persisted to localStorage. Accent TEXT darkens in light mode for contrast; solid accent fills (bars/dots/badges) stay saturated for both. The lightbox stays an always-dark overlay with fixed light chrome. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/deck/Deck.vue | 39 ++++++++--- src/deck/components/EntityDetail.vue | 16 ++--- src/deck/components/Lightbox.vue | 10 +-- src/deck/components/MyceliumNetwork.vue | 12 ++-- src/deck/components/PlaceholderBadge.vue | 2 +- src/deck/components/SlideFrame.vue | 6 +- src/deck/slides/AskSlide.vue | 26 ++++---- src/deck/slides/EcosystemSlide.vue | 12 ++-- src/deck/slides/EntitiesSlide.vue | 18 ++--- src/deck/slides/GallerySlide.vue | 18 ++--- src/deck/slides/MembershipSlide.vue | 22 +++---- src/deck/slides/PartnershipSlide.vue | 18 ++--- src/deck/slides/PnlSlide.vue | 54 +++++++-------- src/deck/slides/RoadmapSlide.vue | 12 ++-- src/deck/slides/SpacesSlide.vue | 10 +-- src/deck/slides/TechSlide.vue | 8 +-- src/deck/slides/TenantsSlide.vue | 12 ++-- src/deck/slides/TitleSlide.vue | 20 +++--- src/deck/slides/VisionSlide.vue | 10 +-- src/style.css | 83 +++++++++++++++++++----- 20 files changed, 239 insertions(+), 169 deletions(-) diff --git a/src/deck/Deck.vue b/src/deck/Deck.vue index bd36b45..cdb5270 100644 --- a/src/deck/Deck.vue +++ b/src/deck/Deck.vue @@ -1,9 +1,17 @@