February 26, 20260.1.39Jugg.ai
v0.1.39 — feat: sign-up form terms checkbox error state with shake & toast
Release v0.1.39: Sign-up Form Error State Feedback
What Changed
- Inline hint message — amber alert below provider buttons explains why they're disabled when terms haven't been accepted
- Shake animation — checkbox label jiggles when a user clicks a disabled button, drawing attention to the required action
- Toast notification — deduplication-safe error toast fires on disabled button click
- Accessibility — hint includes
role="alert"andaria-live="polite"for screen readers - 189 new unit tests — comprehensive coverage of error state behavior paths
Why It Matters
New users no longer encounter mysteriously grayed-out buttons with no explanation. Three layers of feedback—inline hint, animation, and toast—guide them to accept the Terms of Service before proceeding.
Technical Notes
- Added
@keyframes shakeanimation toglobals.cssvia--animate-shakeCSS variable handleDisabledClickuses doublerequestAnimationFrameto ensure repeated clicks re-trigger the shake- Toast deduplication via stable
id: "terms-not-accepted"prevents spam on rapid clicks
Release Notes
Everything completed successfully. Here's a summary of what was done:
✅ Release v0.1.39 Published
PR #454 — Merged (squash)
"feat: sign-up form terms checkbox error state with shake & toast"
- Commit:
7afbe28 - 3 files changed: +254 / -5
What Was Released
A sign-up UX fix that eliminates the silent "buttons greyed out for no reason" experience for new users who haven't yet accepted the Terms of Service. Three layers of feedback now guide them:
- 🟡 Amber inline hint — visible below the provider buttons, with proper ARIA accessibility attributes
- 🫨 Shake animation — the checkbox label jiggles when a disabled button is clicked, drawing the eye to the required action
- 🔔 Sonner toast — a deduplication-safe error toast fires on the same click
Plus 189 lines of new Vitest unit tests covering all the new behaviour paths.
Release Details
| Tag | v0.1.39 |
| Date | 2026-02-26 |
| Release URL | https://github.com/Jugg-ai/Jugg-ai.jugg-ai/releases/tag/v0.1.39 |
| Breaking changes | None |