Skip to content
SproutAceve · v3.19.2
Get started
Overview What is your role? Connect to Sprout Adopting Sprout
Foundations
Brand & logos Color Typography Spacing & layout Elevation Iconography Accessibility
Components
Overview Buttons Inputs & forms Numeric input Data grid Ribbon toolbar Navigation Cards Alert Dialog Tabs Menu
Practice
Interaction & motion Voice & content Product patterns
Artificial Intelligence
AI patterns AI transparency & disclosure AI disclosure label
People & ethics
Design principles Personas Trust and ethics Meet the makers
Playground
Build the systemplay Tower of tokensplay
Behind the system
How it works Changelogv3.19 Roadmap Contribute
Done
Components

Alert.

An Alert communicates important information, feedback, or status that requires the user's attention without necessarily interrupting their current task. Use it for success, information, warning and error messages, with the variant and emphasis reflecting how much the message matters. The key principle is: make important information visible and understandable without unnecessarily interrupting the user.

Variants

Sprout 3.18 is live
New alert and menu documentation is available.
Draft quotes are kept for 30 days.
Price list updated overnight
Nothing to do — this is for your information.
Quote sent
Anna Berg will receive it within a few minutes.
Price list expires in 3 days
Update it before 14 March to keep quoting from it.
Quote could not be sent
Add a cost category to line 4, then try again.
Figma variantWhen to useReact severity
PrimaryBrand-level message tied to the product itself. Use sparingly.—
NeutralContext with no urgency — a note or a state that needs no reaction.info
InformationSystem news the user did not trigger: an update, a scheduled change.info
SuccessConfirmation that something the user did worked.success
WarningA risk or a deadline. Something goes wrong if it is ignored.warning
DangerSomething failed or is blocked. The user has to act to continue.error

The Figma component pairs Variant with Filled. Filled=Yes is the higher-contrast treatment — reserve it for the single message on a screen that must not be missed; if everything is filled, nothing stands out. Colour never carries the meaning on its own: keep the leading icon and say the situation in the headline.

Styles & features

Four independent switches on top of severity — combine them as the message needs.

Price list expires in 3 days
Update it before 14 March to keep quoting from it.
Default — outlined. The everyday treatment.
Price list expires in 3 days
Update it before 14 March to keep quoting from it.
Coloured for more contrast (Filled) — one per screen, for the message that must not be missed.
Scheduled maintenance on Sunday
Quoting is unavailable between 02:00 and 04:00.
Only header and text — icon off. Use when the variant colour and wording are enough.
Draft quotes are kept for 30 days.
Minimal — no headline, single line. For quiet, standing context.

Anatomy

Price list expires in 3 days
Update it before 14 March to keep quoting from it.
Surface367px default width, stretching to its container. 12px bottom padding, 20px horizontal padding.
Variant bar4px, full width, carrying the variant colour. Always paired with the icon — never colour alone.
Leading icon24px, set per variant. Off only in the minimal style, where the wording carries the meaning.
HeadlineManrope 20px. Optional — omit it for a single-line message. Say the outcome, not the severity.
MessageManrope 16px. Plain language, and it says what to do next.
Close24px, trailing. Passive alerts only — an unresolved problem must not be dismissible.
Spacing20px between icon, text and close. Bar to content 8px.

Do & don't

Price list expires in 3 days
Update it before 14 March to keep quoting from it.
Do — the variant matches the consequence, and the icon carries it as well as the colour.
New feature
Try the improved cost calculator today.
Don't — Danger and Filled used for emphasis. Alerts that shout devalue the ones that matter.
Cost category missing, line 4
Add a cost category to line 4, then send the quote again.
Do — say what happened and what to do next, and name the object.
Error!
Error 500: invalid input in field costCategoryId. You entered something wrong.
Don't — a severity as a headline, an internal code, and blame.
Price list updated overnight
Nothing to do — this is for your information.
Do — closeable belongs on passive, informational alerts.
Quote could not be sent
Close this message to continue.
Don't — a dismissible error hides a problem that still exists.

Accessibility

role="alert"Assertive — announced immediately. Use for problems that block the user.
role="status"Polite — announced at the next pause. Use for confirmations and passive updates.
FocusAn alert never moves keyboard focus. If the user must answer before continuing, it is a Dialog.
No timersEssential alerts must not disappear on their own — timed messages exclude anyone who reads slowly.
ColourNever the only cue. The icon and the wording must carry the state as well.
ActionsAny control inside the alert must be reachable and operable by keyboard.
On loadAlerts already on the page when it loads are not announced — render them dynamically if they matter.

Props (React)

type AlertProps = {
  severity: "primary" | "neutral" | "info" | "success" | "warning" | "error";
  filled?: boolean;          // higher-contrast treatment — one per screen
  title?: string;            // headline; omit for a single-line message
  children: ReactNode;       // message — plain language, says what to do next
  icon?: IconName | false;   // defaults per severity; false only in the minimal style
  onClose?: () => void;      // renders the close control — passive alerts only
  action?: ReactNode;        // one control, e.g. "Update price list"
  role?: "alert" | "status"; // assertive for problems, polite for confirmations
};
← PreviousCardsNext →Dialog
Sprout · Aceve Design System · v3.19.2
Figma library GitLabReleases