Growth & Conversion
Dismissible Promo Bar
A top-of-page announcement strip for a sale, launch or policy notice, with one link and a close button whose dismissal is remembered across visits so it never nags a visitor who already closed it.
$ velocityx add dismissible-promo-bar
Built for react.
Needs react already installed
as a peer dependency.
An Astro-only project needs @astrojs/react wired up first — this won't run on its own in plain Astro.
Full docs for Dismissible Promo Bar →
Needs a licence key —
subscribe here, then
velocityx loginonce.
Props
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | ||
| message | string | Yes | ||
| linkText | string | No | ||
| linkHref | string | No | ||
| tone | 'neutral' | 'accent' | No | 'neutral' | |
| onDismiss | () => void | No | ||
| storageKey | string | null | No | 'velocity.promobar.dismissed' |
File this creates
The CLI writes this path into your project, relative to its root — nothing else moves.
components/velocity/dismissible-promo-bar/DismissiblePromoBar.tsx Using the Dismissible Promo Bar component
Install it with velocityx add dismissible-promo-bar.
The CLI writes the source straight into your project — no runtime dependency, no registry
lock-in, and it themes itself from the same primary-*/accent-* scale as the rest of the library.
Related components
More from Growth & Conversion.
A persistent top-docked bar that resurfaces a cart left behind on any route, showing item count and total with Resume and Clear actions — a cross-page return nudge, not a cart panel.
reactA bottom-docked banner that nudges mobile visitors to open or install the native app, with iOS/Android-aware copy and store links, and a dismissal that snoozes for two weeks instead of forever.
reactAn inline deadline banner for a sale or launch window that counts down and then degrades gracefully to a plain closing message the instant it ends — never a broken negative-time state. Dismissible and remembered for the session.
reactA claim-to-reveal discount code card with one-tap copy and an expiry note, so the offer reads as earned rather than just printed on the page.
react