Theme vPOS

vPOS themes are CSS skins loaded after the core app styles. They should change presentation while leaving the HTML structure and JavaScript behavior alone.

Theme Selector

Scope a bundled theme with the body data attribute:

body[data-vpos-style="my-style-id"] {
  --bg: #10131b;
  --panel: #171c27;
  --text: #f7fbff;
  --accent: #22d3ee;
}

Core Tokens

Stable Targets

Guidelines

Keep touch targets at least 44px, preserve readable contrast, avoid hiding buttons or form fields, and test both desktop and narrow mobile widths. Prefer CSS variables first, then scoped component overrides.