Design System
Quota Warning UX
Progressive disclosure patterns for recipe generation limits — warn early, gate softly, never surprise the user mid-flow.
Three-tier escalation
Users move through three states as they approach their monthly recipe cap. Each tier adds one visual signal without removing functionality.
Subtle badge
At 70% usage a small pill appears below the generate button: “7 of 10 free recipes used this month.” No interruption.
Inline banner
At 90% a dismissible banner slides in above the input. “Almost out — upgrade to keep generating.” Links to pricing.
Soft gate
At 100% the generate button is replaced with an upgrade CTA. Past recipes remain viewable. No data loss.
Visual language
You’ve used 9 of 10 free recipes. Upgrade for unlimited
Free limit reached
Colors stay within the brand palette — violet for neutral info, pink for urgency, red only at the hard gate.
Implementation notes
- Quota state lives in a React context hydrated from the session. No per-request fetch.
- Banner dismissals persist in localStorage with a 24-hour TTL so returning users aren’t re-nagged.
- The soft gate still renders the input (disabled) so the UI doesn’t jump. Cursor: not-allowed on hover.