Skip to content

feat: add QuantityStepper, FilterChips and HoldToConfirm components - #4

Merged
Jettonn merged 1 commit into
mainfrom
feat/stepper-chips-hold-confirm
Jul 17, 2026
Merged

feat: add QuantityStepper, FilterChips and HoldToConfirm components#4
Jettonn merged 1 commit into
mainfrom
feat/stepper-chips-hold-confirm

Conversation

@Jettonn

@Jettonn Jettonn commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

Three new micro-interaction components for the Verve gallery, each following the existing repo idioms (spring-pop from PinInput, icon cross-fade from VolumeButton, v-model mirror + useReducedMotion fallback) and wired through every place the catalog fans out to: catalog.ts, components/index.ts, registry.json, the hand-authored Home.vue gallery grid, and the generated public/r/*.json + sitemap.xml.

QuantityStepper

/ + buttons around a number that clamps to [min, max]. Each change emits update:modelValue and pops the value — scale springs to 1.3 and settles on cubic-bezier(0.34, 1.56, 0.64, 1). The pressed button dips via CSS :active scale(0.9). tabular-nums + a fixed min width keep the digits from shifting. Buttons disable at the bounds.

FilterChips

A row of multi-select toggle chips. Clicking one fills it with the accent colour (bg-primary), flips its text to the background colour (text-primary-foreground), and pops it (scale 1.12, same back-eased curve). Any number of chips can be active; the value is the array of selected labels.

HoldToConfirm

A circular hold-to-delete button ringed by an SVG progress arc. pointerdown animates the ring's stroke-dashoffset from full to 0 over 800ms linear (pointer capture keeps the gesture alive if the finger drifts off). Held the whole way it fires confirm and flashes a green success state (trash → check cross-fade); released early it cancels and snaps the ring back on a quick ease. Red (destructive) while holding, green (primary) on success — both existing tokens.

Notes

  • Every component degrades to instant state changes under prefers-reduced-motion.
  • Registry rebuilt (node scripts/build-registry.mjs) → 19 items; sitemap regenerated.
  • Home gallery grid is hand-authored (not catalog-driven), so each card is added there explicitly.

Verification

  • pnpm type-check — clean
  • pnpm lint:check / eslint on touched files — clean
  • Registry + sitemap regenerated and in sync

Three new micro-interaction components, each wired through the catalog,
registry, home gallery and generated registry JSON/sitemap:

- QuantityStepper: - / + buttons around a clamped number, back-eased
  spring pop on change, tabular-nums to keep digits from shifting.
- FilterChips: multi-select toggle chips that fill with the accent
  colour and pop on toggle.
- HoldToConfirm: circular hold-to-delete button with an SVG progress
  ring that fills over 800ms; completes to a success flash or snaps
  back on early release.
@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
verve Ready Ready Preview, Comment Jul 17, 2026 3:45pm

@Jettonn
Jettonn merged commit cb88fa9 into main Jul 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant