#640
Neutral tone
One brand filled Button beside secondary actions drawn with tone="neutral": an outlined Button, a small ghost Button and an outlined IconButton.
Hand this to your AI. It names the exact library parts, timings and accessibility promises of this demo.
Build the "Neutral tone" pattern (@codeatlasdev/ui demo #640, inputs/button) in my app.
Call get_demo({ ids: ["#640"] }) first and keep its structure. It needs @codeatlasdev/[email protected].
Use: Dense work screens (queues, inboxes, CRMs) with one primary action and several secondary ones that must not compete with it.
Keep these library parts, with the props and tokens the demo uses:
- Button, IconButton from "@codeatlasdev/ui"
Behaviour to keep:
- `<Button variant="filled">` labelled Send reply is the only brand-coloured control
- `<Button variant="outlined" tone="neutral">` labelled Edit message
- `<Button variant="ghost" tone="neutral" size="sm">` labelled Snooze
- `<IconButton variant="outlined" tone="neutral" aria-label="More actions">` with a MoreHorizontal icon
- Wrapping flex `.row` with `gap: var(--ca-space-3)`
Reduced motion: the demo handles it; keep that branch.
Keyboard: operable; keep the focus order and key handling.
Change only the copy and the data. Use the theme tokens (--ca-*), never raw colours. Library parts
- Button
@codeatlasdev/ui - IconButton
@codeatlasdev/ui
How it is built
- `<Button variant="filled">` labelled Send reply is the only brand-coloured control
- `<Button variant="outlined" tone="neutral">` labelled Edit message
- `<Button variant="ghost" tone="neutral" size="sm">` labelled Snooze
- `<IconButton variant="outlined" tone="neutral" aria-label="More actions">` with a MoreHorizontal icon
- Wrapping flex `.row` with `gap: var(--ca-space-3)`
Related
Loading source.