Kumo Svelte
  • Home
  • Installation
  • Colors
  • Accessibility
  • Changelog
  • Autocomplete
  • Badge
  • Banner
  • Breadcrumbs
  • Button
  • Checkbox
  • Clipboard Text
  • Cloudflare Logo
  • CodeHighlighted
  • Collapsible
  • Combobox
  • Command Palette
  • Date Picker
  • Dialog
  • Dropdown
  • Empty
  • Flow
  • Grid
  • Input
  • InputArea
  • InputGroup
  • Label
  • Layer Card
  • Link
  • Loader
  • MenuBar
  • Meter
  • Pagination
  • Popover
  • Radio
  • Select
  • Sensitive Input
  • Sidebar
  • Skeleton Line
  • Switch
  • Table
  • Table of Contents
  • Tabs
  • Text
  • Toast
  • Toolbar
  • Tooltip
  • Charts
  • Colors
  • Timeseries
  • Maps
  • Sankey
  • Custom Chart
  • Page Header
  • Resource List
  • Delete Resource
Banner
kumo-svelte

Banner

Displays contextual inline messages for informational, alert, or error states.

Update available

A new version is ready to install.

Session expiring

Your session will expire in 5 minutes.

Save failed

We couldn't save your changes. Please try again.

Maintenance scheduled

This service will be unavailable for 10 minutes.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import InfoIcon from "phosphor-svelte/lib/InfoIcon";
  import WarningIcon from "phosphor-svelte/lib/WarningIcon";
  import WarningCircleIcon from "phosphor-svelte/lib/WarningCircleIcon";
</script>

<div class="w-full space-y-3">
  <Banner title="Update available" description="A new version is ready to install.">
    {#snippet icon()}
      <InfoIcon weight="fill" />
    {/snippet}
  </Banner>

  <Banner
    variant="alert"
    title="Session expiring"
    description="Your session will expire in 5 minutes."
  >
    {#snippet icon()}
      <WarningIcon weight="fill" />
    {/snippet}
  </Banner>

  <Banner
    variant="error"
    title="Save failed"
    description="We couldn't save your changes. Please try again."
  >
    {#snippet icon()}
      <WarningCircleIcon weight="fill" />
    {/snippet}
  </Banner>

  <Banner
    variant="secondary"
    title="Maintenance scheduled"
    description="This service will be unavailable for 10 minutes."
  >
    {#snippet icon()}
      <InfoIcon weight="fill" />
    {/snippet}
  </Banner>
</div>

Import

import { Banner } from "kumo-svelte/components/banner";

Usage

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import InfoIcon from "phosphor-svelte/lib/InfoIcon";
</script>

<Banner title="Update available" description="A new version is ready to install.">
  {#snippet icon()}
    <InfoIcon weight="fill" />
  {/snippet}
</Banner>

Examples

Variants

Default

Update available

A new version is ready to install.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import InfoIcon from "phosphor-svelte/lib/InfoIcon";
</script>

<Banner title="Update available" description="A new version is ready to install.">
  {#snippet icon()}
    <InfoIcon weight="fill" />
  {/snippet}
</Banner>

Alert

Session expiring

Your session will expire in 5 minutes.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import WarningIcon from "phosphor-svelte/lib/WarningIcon";
</script>

<Banner
  variant="alert"
  title="Session expiring"
  description="Your session will expire in 5 minutes."
>
  {#snippet icon()}
    <WarningIcon weight="fill" />
  {/snippet}
</Banner>

Error

Save failed

We couldn't save your changes. Please try again.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import WarningCircleIcon from "phosphor-svelte/lib/WarningCircleIcon";
</script>

<Banner
  variant="error"
  title="Save failed"
  description="We couldn't save your changes. Please try again."
>
  {#snippet icon()}
    <WarningCircleIcon weight="fill" />
  {/snippet}
</Banner>

Secondary

Maintenance scheduled

This service will be unavailable for 10 minutes.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import InfoIcon from "phosphor-svelte/lib/InfoIcon";
</script>

<Banner
  variant="secondary"
  title="Maintenance scheduled"
  description="This service will be unavailable for 10 minutes."
>
  {#snippet icon()}
    <InfoIcon weight="fill" />
  {/snippet}
</Banner>

With icon

Review required

Please review your billing information before proceeding.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import WarningIcon from "phosphor-svelte/lib/WarningIcon";
</script>

<Banner
  variant="alert"
  title="Review required"
  description="Please review your billing information before proceeding."
>
  {#snippet icon()}
    <WarningIcon weight="fill" />
  {/snippet}
</Banner>

With action

Update available

A new version is ready to install.

Update available

A new version is ready to install.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import { Button } from "kumo-svelte/components/button";
  import InfoIcon from "phosphor-svelte/lib/InfoIcon";
  import XIcon from "phosphor-svelte/lib/XIcon";
</script>

<div class="w-full space-y-3">
  <Banner title="Update available" description="A new version is ready to install.">
    {#snippet icon()}
      <InfoIcon weight="fill" />
    {/snippet}

    {#snippet action()}
      <Button size="sm">Update now</Button>
    {/snippet}
  </Banner>

  <Banner title="Update available" description="A new version is ready to install.">
    {#snippet icon()}
      <InfoIcon weight="fill" />
    {/snippet}

    {#snippet action()}
      <Button size="sm" variant="ghost" shape="square" icon={XIcon} aria-label="Dismiss" />
    {/snippet}
  </Banner>
</div>

With multiple actions

Session expiring

Your session will expire in 5 minutes.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import { Button } from "kumo-svelte/components/button";
  import WarningIcon from "phosphor-svelte/lib/WarningIcon";
</script>

<Banner
  variant="alert"
  title="Session expiring"
  description="Your session will expire in 5 minutes."
>
  {#snippet icon()}
    <WarningIcon weight="fill" />
  {/snippet}

  {#snippet action()}
    <Button size="sm" variant="secondary">Dismiss</Button>
    <Button size="sm">Extend session</Button>
  {/snippet}
</Banner>

Custom content

Use a named description snippet for custom description content.

Custom content supported

This banner supports custom content with Text.

<script lang="ts">
  import { Banner } from "kumo-svelte/components/banner";
  import { Text } from "kumo-svelte/components/text";
  import InfoIcon from "phosphor-svelte/lib/InfoIcon";
</script>

<Banner title="Custom content supported">
  {#snippet icon()}
    <InfoIcon weight="fill" />
  {/snippet}

  {#snippet description()}
    <Text class="text-inherit">
      This banner supports <strong>custom content</strong> with Text.
    </Text>
  {/snippet}
</Banner>

API Reference

Banner

PropTypeDefault
actionSnippet—
childrenSnippet—
classstring—
descriptionSnippet | string—
iconSnippet—
titlestring—
variantKumoBannerVariantKUMO_BANNER_DEFAULT_VARIANTS.variant

On this page

  • Import
  • Usage
  • Examples
    • Variants
    • With icon
    • With action
    • With multiple actions
    • Custom content
  • API Reference
    • Banner