Feature Deep Dive

Theme Studio

Theme Studio is the per-shop visual + voice customization editor on Storefront. Each operator visits /dashboard/[slug]/theme and gets a full-form + live-preview workbench. Pick a preset, swap colors, edit copy, toggle sections — everything saves to the Storefront row and the public shop reflects it instantly.

The 9 theme presets

Balanced (subtle changes)

PresetVibeFontDensityHero
MinimalBlack + white. Calm.SansCompactMinimal
StandardEverything on, balanced.SansComfortableStandard
CinematicDisplay type. Big.DisplaySpaciousImage-led
ClassicSerif elegance.SerifComfortableStandard
TerminalMono. Trader vibe.MonoCompactStandard
Auction HouseSotheby's premium.SerifSpaciousImage-led

Dramatic (bigger swings, signature palettes)

PresetVibeSignature palette
VaultGold + black. Premium tier.Gold #d4a574 + Black #1a1a1a
NeonCyber. Trading floor.Lime #a3e635 + Magenta #ec4899
EditorialMagazine. Storyteller.Red #dc2626 + Cream #fef3c7

Picking a dramatic preset stamps the matching colors automatically. Picking a balanced preset leaves colors alone (operator can pair any palette with any preset).

The 12 curated color palettes

PaletteVibeAccentSecondary
Emerald MintFresh, balanced#10b981#06b6d4
Royal PurplePremium, cinematic#8b5cf6#06b6d4
Vault GoldAuction house#d4a574#1a1a1a
SunsetWarm, inviting#f97316#ec4899
IceCool, technical#06b6d4#3b82f6
FireAggressive, bold#dc2626#f97316
Cyber NeonTrading-floor#a3e635#ec4899
ForestEarthy, classic#22c55e#a16207
PacificCalm, luxurious#0ea5e9#14b8a6
CherryEnergetic, retail#e11d48#fb923c
Mono AmberVintage, masculine#f59e0b#78716c
Editorial RedMagazine, classic#dc2626#fef3c7

Customization fields

Visual

Voice & copy

Section toggles

The Apply SlabTrack Showcase button

One-click brand stamp at the top of the form. Sets the full SlabTrack identity: purple #8b5cf6 + cyan #06b6d4 accents, display font, image-led hero, all sections on, the "SlabTrack · operator showcase" tagline, full announcement bar + about blurb. Use to show buyers what a maxed-out shop looks like, OR as a starting point for your own theme.

The live preview iframe

Right pane (desktop) / below the form (mobile) — embedded iframe of the public storefront. Reloads on save (key bump + router.refresh). Operator sees their changes in real time without leaving the studio.

How it persists

Save calls PUT /api/storefronts/[slug]/theme with the full state object. The endpoint:

How the storefront reads it

The public page (/[slug]/page.tsx):

  1. Fetches the Storefront row from Postgres on every request (dynamic = 'force-dynamic')
  2. Calls resolveStorefrontTheme(sf) which merges per-field overrides over the chosen preset's defaults
  3. Wraps the page in <StorefrontThemeProvider> with the resolved theme + CSS variables for the accent colors
  4. Every component reads useStorefrontTheme() for its visual decisions (no hardcoded colors)

Code references