Components › States & feedback › Status › Status banner

Status banner

canon

One sentence about the state of a page or a record, with an optional glyph, actions and dismiss; tones neutral, accent, positive, critical (no warning tone).

Owner approved wave A on 4 Oct 2026 (acrm !4579) and wave B on 6 Oct 2026 (acrm !4794, prototype proto/status-banner-b@83b789cc6). Wave A replaced .resv*, .fin-gap-banner, .zav-bez-smlouvy, .imp-reserved, .sr-rep-banner. Wave B replaced the dialog and accounting boxes .acc-fail (4 copies), .acc-warn, .acc-inv-warn, .pay-item-detail__warn, .aichat-warn, .ppf-conflict-title, .tl-log-fail; added title (tone only on glyph + title, body --fg) and actionsPlacement=below (RULES §15.6). No warning tone (RULES §15). Out of scope: .acrm-imp-banner, .dg-strip, .deal-cta; import K ověření / Konflikty still on .imp-reserved CSS until the owner decides. Dev checks: 4 Oct Závazky critical 1:1 with real data; 6 Oct Nová analytika rejected save = critical compact in the dialog, 1440/390 light/dark, brown 0, old classes 0. Other wave-B states not reachable with dev data (verified on fixtures in !4794, 46/52 pairs 0 px). Registry repaired 17 Oct 2026 (review F5): GoogleConnectBanner, RelationshipStatusBanner, RepBanner live in apps/web (see files), not exported by @acrm/ui; dropped from react[].

Used in 40 files · 26 areas · 69× — components/accounting, components/ai-employees, components/assistant, components/callwrapup, components/clen-tymu, components/decisions …

Import

import { StatusBanner } from '@acrm/ui'

Props

StatusBanner packages/ui/src/components/StatusBanner.tsx

NameTypeDefaultDescription
tone'neutral' | 'accent' | 'positive' | 'critical''neutral'Tón stavu. warning ZÁMĚRNĚ není (RULES §15, zadavatel 3. 10. 2026: hnědá nikdy) — varování je critical s alert-square-rounded, informace o tom, co se nestalo, je neutral + dot.
density'default' | 'compact''default'default = pruh na stránce nebo v detailu (sp-3 sp-4, radius-lg, linka) — vzhled dnešního rezervačního pruhu. compact = v dialogu a ve formuláři (sp-3, radius-sm, bez linky), ať dialog nebobtná (AD 4. 10. 2026).
iconstring—Glyf před větou (DS sada).
dotboolean—Oranžová tečka místo glyfu — informace, ne poplach (náhrada tónu warning).
titleReactNode—Krátký titulek v tónu (critical = jediné červené vedle glyfu). Tělo (children) je pak neutrální --fg / --fg-secondary a glyf stojí u titulku nahoře. Pro víceřádkový obsah — odstavec červeně je přesně „vše červené" (zadavatel 4. 10. 2026, RULES §15.6).
childrenReactNode—Věta stavu; <b> v ní nese jméno nebo číslo. Může nést i krátký výčet pod větou.
actionsReactNode—Akce vpravo (DS Button); na úzké ploše se samy zalomí pod text.
actionsPlacement'end' | 'below''end'below = akce vždy pod textem (rozhodnutí s delším vysvětlením, např. konflikt návrhu AI).
onDismiss() => void—Křížek „Skrýt" — jen u pruhu, který jde zavřít (výzva, ne stav).
dismissLabelstring'Skrýt'—
role'status' | 'alert''status'status (výchozí) · alert u chyby, která právě nastala.
classNamestring——

CSS classes

.acrm-statusbanner.acrm-statusbanner.compact.acrm-statusbanner.is-neutral.acrm-statusbanner.is-accent.acrm-statusbanner.is-positive.acrm-statusbanner.is-critical.acrm-statusbanner.has-title.acrm-statusbanner.acts-below

Files