# Countdown brand

> A centred offer with the time left until it ends, as a floating card on the brand colour.

URL: https://apogee.avaui.dev/docs/banner-sections/countdown-brand
Last updated: 2026-10-20

A centred offer with the time left until it ends, as a floating card on the brand colour.

Last updated October 20, 2026

Live example: https://apogee.avaui.dev/examples/banner/countdown-brand

```astro
---
/**
 * Countdown brand: A centred offer with the time left until it ends, as a floating card on the brand colour.
 *
 * @block banner
 * @order 18
 */
import Banner from '@/components/apogee/sections/Banner/Banner.astro'
import Countdown from '@/components/apogee/Countdown/Countdown.astro'
import { plain } from '@/components/apogee/sections/_shared/spine.ts'
import type { BannerContent } from '@/components/apogee/sections/_shared/banner.ts'

/** @composable */
interface Props extends BannerContent {
  /** When the offer ends, as an ISO date-time. @category content */
  endsAt?: string
}

const {
  heading = '30% off annual plans ends soon',
  description = 'Lock in your price today.',
  endsAt = '2026-12-31T23:59:59Z',
  closeLabel,
} = Astro.props
---

<Banner background="primary" align="center" inline heading={plain(heading)} description={description ? plain(description) : undefined} closeLabel={closeLabel}>
  <Countdown slot="actions" to={endsAt} />
</Banner>
```

## Add

```sh
npx @ava-ui/apogee add banner/countdown-brand
```

Every piece of copy is a prop, with the sample copy as its default. Pass yours, or `null` to hide a part; see [copy is props](https://apogee.avaui.dev/docs/banner-sections#copy-is-props).

This copies the block to `src/components/apogee/blocks/banner/` with everything it uses: Banner, Countdown. Place it at the top of a page, or pass `fixed` to a floating banner to pin it to the bottom of the viewport. Use **Copy code** above to paste it instead.

## Accessibility

-   The banner is a region named by its message, so it shows up in a screen reader’s landmark list.
-   The close button removes the banner; it needs JS, so it hides without it and the banner stays.
-   Screen readers and no-JS visitors read the end date (“Ends Dec 31, 2026, 11:59 PM UTC”); the ticking numbers are hidden from them, so nothing is announced every second.

## Related

[

BannerA one-line announcement as a floating card or a full-width bar, with an icon, actions and a close button.

](https://apogee.avaui.dev/docs/sections/banner)
