StealThis .dev
الصفحات متوسط

Salon — POS Checkout

A luxe, editorial point-of-sale checkout for a boutique salon. Tab between Services and Retail, tap to add items, and adjust quantities with inline steppers while an itemized ticket tallies live. Set an adjustable tip from percent presets or a custom amount, apply a promo code, and pick a payment method — Card, Cash, or Gift card. The Charge button confirms with an approval overlay, change due for cash, and a toast. Vanilla HTML, CSS and JS, fully responsive and keyboard accessible.

فتح في المختبر
html css vanilla-js
الأهداف: JS HTML

الكود

POS Checkout

A full point-of-sale checkout for Maison Lumière Salon, built to feel like a real boutique till rather than a placeholder. The left panel splits the menu into Services and Retail tabs with a live search; tap any card and it lands in the ticket, the in-cart badge counts up, and the card flashes gold. The right panel is the till — an itemized ticket with quantity steppers, per-line removal, and totals that recompute on every interaction.

Tipping is generous and effortless: choose 15 / 18 / 20 / 25% presets calculated on the discounted subtotal, or type a custom dollar amount. A promo field validates seeded codes — try LUMIERE10, WELCOME20, or ROSE15 — and folds the discount into the running totals with tax applied at 8.5%. Payment method chips switch between Card, Cash, and Gift card; selecting Cash reveals a tendered field with Exact, $100 and $200 quick-fills.

Pressing Charge validates the tender, shows a brief processing state, then unfurls an approval overlay with the final total, the masked payment method, and — for cash — the precise change due, all confirmed by a toast. Gold hairlines, Cormorant Garamond display type and calm whitespace carry the maison aesthetic. Interactions are keyboard-friendly with aria-live feedback and proper roles, contrast meets WCAG AA, and the layout reflows cleanly down to 360px. No frameworks, no build step — drop in three files and it works.