aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-21 10:26:54 -0700
committerAdam Soltys <[email protected]>2026-09-21 10:26:54 -0700
commit236c8a025347ca86c4a3041ed67062c29ded8bbe (patch)
treeff78a279fe3724d40341c3cf53bad61635cce775 /src
parent0761d901ed1f6468a5497e87efb2d21b1e222a02 (diff)
downloadcoinosv3-236c8a025347ca86c4a3041ed67062c29ded8bbe.tar.gz
coinosv3-236c8a025347ca86c4a3041ed67062c29ded8bbe.zip
Point of sale: the total on the tip screen reads at a glance.
Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01Tmfg8k5f3TbNJS34qiqHAp
Diffstat (limited to 'src')
-rw-r--r--src/features/pos.js2
-rw-r--r--src/style.css1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/features/pos.js b/src/features/pos.js
index e6a2abf..9780aa1 100644
--- a/src/features/pos.js
+++ b/src/features/pos.js
@@ -203,7 +203,7 @@ export function posFeature(ctx) {
p.tipMode === 'custom' ? h('div', { class: 'input-group', style: 'width:100%' },
h('input', { type: 'text', inputmode: 'decimal', placeholder: '0', value: p.tipCustom, autofocus: true, onInput: (e) => { p.tipCustom = e.target.value; render(); } }),
h('span', { class: 'small muted', style: 'align-self:center;padding:0 8px' }, unitLabel())) : null,
- p.tipMode != null ? h('div', { class: 'small muted' }, t('posTotalLine', { n: fmtAmount(bill + tip) + ' ' + unitLabel() })) : null,
+ p.tipMode != null ? h('div', { class: 'pos-total' }, t('posTotalLine', { n: fmtAmount(bill + tip) + ' ' + unitLabel() })) : null,
p.error ? h('div', { class: 'notice error small', style: 'width:100%' }, p.error) : null,
h('button', { class: 'btn-primary btn-block', disabled: p.tipMode == null || !!p.busy,
onClick: () => makeSale(bill, tip, p.tipMode === 'custom' || p.tipMode === 'none' ? 0 : p.tipMode) },
diff --git a/src/style.css b/src/style.css
index 2feab6e..d0d5103 100644
--- a/src/style.css
+++ b/src/style.css
@@ -598,6 +598,7 @@ hr.divider { margin: 16px 0; }
.pos-tip.on { border-color: var(--accent); background: var(--accent); color: var(--accent-fg); }
.pos-tip.on .muted { color: inherit; opacity: .8; }
.pos-tip-label { font-size: 20px; font-weight: 600; }
+.pos-total { font-size: 22px; font-weight: 600; margin-top: 4px; }
.pos-qr svg { width: min(260px, 70vw); height: auto; display: block; }
.pos-check { width: 64px; height: 64px; border-radius: 50%; background: var(--green, #2e7d32); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 34px; }
.pos-sale.faint { opacity: .55; }