shaderscn

Search shaders

Jump to a shader or run an action.

All shaders

Mesh Gradient Announcement Bar

Section

A thin, dismissible announcement strip over a slowly flowing mesh gradient.

Installation

npx shadcn@latest add https://shaderscn.com/r/mesh-gradient-announcement-bar.json

Usage

// app/layout.tsx
import { cookies } from "next/headers"

import { MeshGradientAnnouncementBar } from "@/components/mesh-gradient-announcement-bar"

import { dismissAnnouncement } from "./actions"

export default async function Layout({ children }: { children: React.ReactNode }) {
  const dismissed = (await cookies()).has("series-a-dismissed")

  return (
    <>
      {!dismissed && (
        <MeshGradientAnnouncementBar
          message="We raised our Series A"
          action={{ label: "Read the post", href: "/blog/series-a" }}
          onDismiss={dismissAnnouncement}
        />
      )}
      {children}
    </>
  )
}

// app/actions.ts
"use server"

import { cookies } from "next/headers"

export async function dismissAnnouncement() {
  const cookieStore = await cookies()
  cookieStore.set("series-a-dismissed", "1", { maxAge: 60 * 60 * 24 * 90 })
}