app/(viewer)/ and share one route tree across all themes — only skins/templates change.
Primary routes
How look is applied
- Active theme
templateEntryselects the home template and chrome variant. ViewerShellwraps pages inStorefrontThemeProvider.getStorefrontSkinsuppliespageShell, gutter, button chrome.<html data-storefront-theme="…">scopes CSS isolation.