Theming

Import @shopvento/ui/styles.css for booking and account, and add @shopvento/ui/shop.css for shop primitives. Selectors are scoped; the package ships no global reset or styling runtime. Use EventColors and eventStyle for per-event calendar colors.

Scope and precedence

The compact .sv-booking form reads inherited properties with inline CSS fallbacks. The calendar/flow .sv-redesign scope declares its own defaults, so override tokens on that same element, after the package CSS. Account and shop surfaces read inherited tokens; their selectors do not initialize a full theme.

A host wrapper can also carry .sv-redesign to initialize its tokens around account/shop surfaces. Put optional host-only tokens on that wrapper too. For an account or shop surface without that scope, define all properties that its styles read.

.storefront.sv-redesign {
  --sv-font: "Trebuchet MS", sans-serif;
  --sv-background: #fff;
  --sv-text: #351c45;
  --sv-primary: #351c45;
  --sv-primary-hover: #24122f;
  --sv-on-primary: #fff;
  --sv-accent: #b63b2b;
  --sv-accent-fill: #b63b2b;
  --sv-accent-soft: #fff0ed;
  --sv-accent-strong: #922d20;
  --sv-info: #225388;
  --sv-photo-overlay: #351c45cc;
  --sv-voucher-bg: #351c45;
  --sv-voucher-2-bg: #643c6a;
  --sv-voucher-3-bg: #54416c;
  --sv-voucher-ink: #fff;
  --sv-warm: #f7f3f5;
}

Typography and spacing

The defaults below are declared on .sv-redesign unless a scope is specified. A dash means the property is unset: supply it on the host, or its CSS declaration has no valid value.

Property Default Purpose
--sv-font system-ui, sans-serif Body and control family
--sv-font-display var(--sv-font) Display headings
--sv-font-label var(--sv-font) Labels and compact metadata
--sv-display-weight 600 Display heading weight
--sv-accent-style normal Emphasized heading font style
--sv-label-size 12px Small label size
--sv-label-spacing 0.08em Label tracking
--sv-label-case uppercase Label text transformation
--sv-space 1rem (compact fallback) Compact form section spacing
--sv-padding 1.25rem (compact fallback) Compact form outer padding
--sv-radius 4px; compact fallback 0.5rem Controls and small surfaces
--sv-radius-lg 6px Larger surfaces and dialogs
--sv-shadow none Card shadow
--sv-shadow-lg 0 18px 60px #0003 Modal shadow

Color

Property Default Purpose
--sv-background #fff Main background
--sv-surface #fff; compact fallback #f7f3f5 Raised/subtle surface
--sv-surface-2 #f5f5f5 Secondary surface
--sv-surface-3 #eee Tertiary surface
--sv-text #202020; compact fallback #241a20 Primary text
--sv-text-2 #505050 Secondary text
--sv-text-3 #767676 Muted metadata
--sv-primary #202020; compact fallback #752844 Primary action/background
--sv-primary-hover #000 Primary hover background
--sv-on-primary #fff Text on a primary fill
--sv-border #ddd; compact fallback #c9bdc3 Main borders
--sv-border-2 #eee Subtle separators
--sv-input-border var(--sv-border, #c9bdc3) (fallback) Account field border override
--sv-accent #202020 Links, labels and event accent
--sv-accent-fill #202020 Filled accent controls
--sv-accent-soft #eee Subtle accent backgrounds
--sv-accent-strong #202020 Strong accent text
--sv-success #35613d Success text and accents
--sv-success-soft #e9efdd Success background
--sv-warning #854418 Warning text and accents
--sv-warning-soft #fceadb Warning background
--sv-error #a51d32 Error text, fields and actions
--sv-error-soft #fbe6e9 Error background
--sv-info Unset Informational text; host must supply
--sv-info-soft #eee; shop fallback var(--sv-surface-2) Information background
--sv-focus #286ab2; compact fallback #155fc0 Visible keyboard focus
--sv-event Unset; calendar falls back to its current event color, then --sv-primary where applicable Per-event tile, dot and outline
--sv-voucher-accent var(--sv-accent) Voucher highlight
--sv-photo-overlay Unset Account event-photo overlay
--sv-voucher-bg Unset First account voucher card fill
--sv-voucher-2-bg Unset Second voucher card fill
--sv-voucher-3-bg Unset Third voucher card fill
--sv-voucher-ink Unset Voucher card text and code
--sv-warm Unset Account voucher supplemental surface
--sv-product-cap var(--sv-primary) (illustration fallback) Shop illustration cap fill
--sv-product-fill #3e4d29 (illustration fallback) Shop product illustration fill

eventStyle(color) sets the event color on a particular item. colors on date lists and calendars is keyed by the public event ID. The migration note explains compatibility names once.

Button state properties

Dashboard selectors write these properties on each button or action. They are component state values, rather than a global palette; a variant can override an ancestor value. All are included here because they use the public prefix.

Property Default Purpose
--sv-button-bg transparent on base buttons; primary, accent and surface variants set their own fill Button background
--sv-button-fg var(--sv-text) on base buttons; variants select primary, error or on-primary text Button text
--sv-button-bd var(--sv-text) on base buttons; variants select their border Button border
--sv-button-c Fallback var(--sv-accent-fill) for fills, var(--sv-accent) for text; status variants use error/success/warning Compact action color
--sv-button-soft Fallback var(--sv-accent-soft); status variants use their soft color Compact action background

Dark themes

The package does not switch themes automatically. Override the same tokens under the host dark-mode selector, including surfaces, text, borders, status backgrounds and focus. Check the contrast of host event colors and product images in both modes. Keep visible keyboard focus and readable disabled and error states.