Button
Button primitive, color policy and interaction states for MVP order, partner and admin workflows.
Button
MVP button primitive for order, partner and admin workflows, with color usage kept separate from meal-accent decoration.
Button color policy
Color contractUse Action Red for the highest-value action in a view. Brand Red remains the logo and identity signal; Action Red carries interaction contrast.
--12pm-sys-color-action-primaryUse for normal saved-work, navigation and review actions so dense operational screens do not become overly saturated.
--12pm-sys-color-action-secondaryUse Red soft with an explicit selected border, icon, or label. Do not use Red soft as the default muted surface.
--12pm-sys-color-surface-selected / border-selectedPrimary uses Action Red rather than Brand Red. This keeps the logo red recognizable while giving CTA, focus and selected states their own stronger interaction value.
Button states
Interaction contractEnabled pointer state only; deepen the current variant without shifting layout.
Keyboard-visible ring uses the shared focus token and keeps the button color intact.
Unavailable actions become neutral and do not use brand color as a promise of progress.
In-flight actions stay on their variant, show progress, set aria-busy and block repeat taps.