Components · Feedback & Status
Toast
A brief message that confirms something happened, then goes away.
Component Workbench
Switch between the live interactive preview, syntax-highlighted implementation code, copyable AI coding agent prompt, and designer anatomy blueprint.
Toast · Canonical Spec
import { showToast } from '/dist/js/aster.js';
// Spawn accessible notification with Shade-DS 12px red dot close button
showToast({
title: 'Cluster Rebalanced',
message: 'Workloads distributed across 3 availability zones.',
variant: 'success', // 'success' | 'warning' | 'critical' | 'info'
duration: 4000
}); # Aster Component Implementation Prompt — Toast
## 1. Component Purpose & Canonical Role
- **Component:** Toast (`toast`)
- **Category:** Feedback & Status
- **Native Element:** `showToast() + <div role="status">`
- **Summary:** A brief message that confirms something happened, then goes away.
- **When to Use:** Confirming saved settings, queued deployments, or background syncs.
- **When Not to Use:** Blocking errors requiring immediate user input (use Dialog).
## 2. Authoritative Repository Files
- **Component CSS:** `components/toast/toast.css`
- **Component Spec:** `docs/components/toast.md`
- **Agent Contract:** `skills/using-aster-components/SKILL.md`
- **Compiled Bundle:** `dist/css/aster.css` and `dist/js/aster.js`
## 3. Canonical HTML Structure & Classes
```html
import { showToast } from '/dist/js/aster.js';
// Spawn accessible notification with Shade-DS 12px red dot close button
showToast({
title: 'Cluster Rebalanced',
message: 'Workloads distributed across 3 availability zones.',
variant: 'success', // 'success' | 'warning' | 'critical' | 'info'
duration: 4000
});
```
## 4. Measured Geometry
Measured from the rendered component when this page loads.
## 5. Non-Negotiable Aster Constraints
1. **Zero Primitive Color Leaks:** Bind colors strictly to `--as-semantic-color-*` custom properties. Never use `--as-color-primitive-*` or hardcoded hex values in component usage.
2. **Minimum 4px Radius Policy:** Never use `2px` border-radius. Use `--as-radius-sm` (`4px`), `--as-radius-md` (`8px`), `--as-radius-lg` (`12px`), or `--as-radius-full` (`9999px`).
3. **Single Standard Density Mode:** Compact mode (`data-density="compact"` / `.as-*--compact`) is permanently retired. Do not emit compact classes or attributes.
4. **WCAG 2.2 AA Accessibility:** Maintain >= 4.5:1 text contrast, >= 3:1 UI/border contrast, >= 24x24px interactive hit targets, and full keyboard operability (`Tab`, `Enter`, `Space`, `Escape`, Arrow keys).
## 6. Verification Commands
```bash
npm run test:components
npm run test:contrast
npm run test:browser
``` When to use it
Do
- Keep it to one short sentence.
- Use it to confirm completed actions.
Don't
- Put essential information only in a toast.
- Use it for errors that need action. Use Alert or Dialog instead.
Variants & States
Every option, rendered live with real styles.
Accessibility & Keyboard Interaction
Requirements for using this component accessibly, following the W3C ARIA Authoring Practices Guide.
| Interaction / Key | Behavior & Compliance Requirement |
|---|---|
| Polite Live Region | Injected into .as-toast-container without stealing keyboard focus. |
| Red Dot Close | Includes 12px solid .as-toast__close red dot button with focus ring. |
Tokens
Values update with the current theme.
| Role | Token | Current value |
|---|---|---|
| Surface | --as-semantic-color-surface-card | |
| Corner Radius | --as-radius-md | |
| Shadow | --as-elevation-shadow-overlay |