A muted announcement bar with its own link, sitting above a brand and links header pinned to the top of the page.
header, navbar, announcement, banner, sticky
npx shadcn@latest add https://ner.sh/r/header-announcement.json{
"registries": {
"@nertia": "https://ner.sh/r/{name}.json"
}
}npx shadcn@latest add @nertia/header-announcementnpm create nersh@latest my-site -- --site https://nertia.ai/components/headers/header-announcement/site.json scaffolds a project from it.{
"slug": "header-announcement",
"mode": "builder",
"status": "draft",
"skinId": "zinc",
"composition": {
"id": "header-announcement",
"sections": [
{
"id": "layout-section",
"instanceId": "announcement-band-r1",
"layout": "centered",
"fullBleed": true,
"children": [
{
"id": "layout-container",
"instanceId": "announcement-row-r1",
"layout": "cluster",
"children": [
{
"id": "block-text",
"instanceId": "announcement-text-r1"
},
{
"id": "block-button",
"instanceId": "announcement-cta-r1"
}
]
}
],
"component": "header-announcement@1"
},
{
"id": "layout-section",
"instanceId": "header-band-r2",
"layout": "stack",
"children": [
{
"id": "layout-container",
"instanceId": "header-row-r2",
"layout": "cluster",
"align": "center",
"justify": "between",
"children": [
{
"id": "layout-column",
"instanceId": "header-brand-col-r2",
"children": [
{
"id": "block-brand",
"instanceId": "header-brand-r2"
}
]
},
{
"id": "layout-column",
"instanceId": "header-nav-col-r2",
"children": [
{
"id": "block-nav",
"instanceId": "header-nav-r2"
}
]
}
]
}
],
"component": "header-announcement@1"
}
]
},
"copy": {
"announcement-band-r1.coverImage": "",
"announcement-band-r1.coverStyle": "",
"announcement-band-r1.coverScrim": "",
"announcement-band-r1.anchor": "",
"announcement-band-r1.navLabel": "",
"announcement-band-r1.navHref": "",
"announcement-band-r1.navSkip": "true",
"announcement-band-r1.landmark": "section",
"announcement-band-r1.tone": "muted",
"announcement-band-r1.gutter": "",
"announcement-band-r1.shape": "",
"announcement-band-r1.padding": "compact",
"announcement-band-r1.sticky": "",
"announcement-band-r1.reveal": "",
"announcement-band-r1.dismissible": "",
"announcement-band-r1.width": "",
"announcement-band-r1.gradient": "",
"announcement-row-r1.align": "",
"announcement-row-r1.phone": "",
"announcement-text-r1.text": "A short announcement goes here.",
"announcement-text-r1.textStyle": "",
"announcement-cta-r1.label": "Learn more",
"announcement-cta-r1.href": "#contact",
"announcement-cta-r1.variant": "ghost",
"announcement-cta-r1.size": "",
"announcement-cta-r1.tone": "",
"announcement-cta-r1.width": "",
"announcement-cta-r1.icon": "",
"announcement-cta-r1.iconOnly": "",
"header-band-r2.coverImage": "",
"header-band-r2.coverStyle": "",
"header-band-r2.coverScrim": "",
"header-band-r2.anchor": "",
"header-band-r2.navLabel": "",
"header-band-r2.navHref": "",
"header-band-r2.navSkip": "true",
"header-band-r2.landmark": "header",
"header-band-r2.tone": "default",
"header-band-r2.gutter": "",
"header-band-r2.shape": "",
"header-band-r2.padding": "compact",
"header-band-r2.sticky": "true",
"header-band-r2.reveal": "",
"header-band-r2.dismissible": "",
"header-band-r2.width": "",
"header-band-r2.gradient": "",
"header-row-r2.align": "",
"header-row-r2.phone": "row",
"header-brand-col-r2.pad": "",
"header-brand-col-r2.sticky": "",
"header-brand-r2.wordmark": "Your Company",
"header-brand-r2.wordmarkAccent": "",
"header-brand-r2.logoImage": "",
"header-brand-r2.tagline": "",
"header-brand-r2.href": "#",
"header-nav-col-r2.pad": "",
"header-nav-col-r2.sticky": "",
"header-nav-r2.links": "[{\"label\":\"Home\",\"href\":\"#\"},{\"label\":\"About\",\"href\":\"#about\"},{\"label\":\"Services\",\"href\":\"#services\"},{\"label\":\"Contact\",\"href\":\"#contact\"}]",
"header-nav-r2.ctaLabel": "Get started",
"header-nav-r2.ctaHref": "#contact",
"header-nav-r2.ctaTone": "",
"header-nav-r2.ctaIcon": "",
"header-nav-r2.phoneMenu": "",
"header-nav-r2.align": "end"
}
}
{
"slug": "header-announcement",
"mode": "builder",
"status": "draft",
"skinId": "zinc",
"composition": {
"id": "header-announcement",
"sections": [
{
"id": "layout-section",
"instanceId": "announcement-band-r1",
"layout": "centered",
"fullBleed": true,
"children": [
{
"id": "layout-container",
"instanceId": "announcement-row-r1",
"layout": "cluster",
"children": [
{
"id": "block-text",
"instanceId": "announcement-text-r1"
},
{
"id": "block-button",
"instanceId": "announcement-cta-r1"
}
]
}
],
"component": "header-announcement@1"
},
{
"id": "layout-section",
"instanceId": "header-band-r2",
"layout": "stack",
"children": [
{
"id": "layout-container",
"instanceId": "header-row-r2",
"layout": "cluster",
"align": "center",
"justify": "between",
"children": [
{
"id": "layout-column",
"instanceId": "header-brand-col-r2",
"children": [
{
"id": "block-brand",
"instanceId": "header-brand-r2"
}
]
},
{
"id": "layout-column",
"instanceId": "header-nav-col-r2",
"children": [
{
"id": "block-nav",
"instanceId": "header-nav-r2"
}
]
}
]
}
],
"component": "header-announcement@1"
}
]
},
"copy": {
"announcement-band-r1.coverImage": "",
"announcement-band-r1.coverStyle": "",
"announcement-band-r1.coverScrim": "",
"announcement-band-r1.anchor": "",
"announcement-band-r1.navLabel": "",
"announcement-band-r1.navHref": "",
"announcement-band-r1.navSkip": "true",
"announcement-band-r1.landmark": "section",
"announcement-band-r1.tone": "muted",
"announcement-band-r1.gutter": "",
"announcement-band-r1.shape": "",
"announcement-band-r1.padding": "compact",
"announcement-band-r1.sticky": "",
"announcement-band-r1.reveal": "",
"announcement-band-r1.dismissible": "",
"announcement-band-r1.width": "",
"announcement-band-r1.gradient": "",
"announcement-row-r1.align": "",
"announcement-row-r1.phone": "",
"announcement-text-r1.text": "A short announcement goes here.",
"announcement-text-r1.textStyle": "",
"announcement-cta-r1.label": "Learn more",
"announcement-cta-r1.href": "#contact",
"announcement-cta-r1.variant": "ghost",
"announcement-cta-r1.size": "",
"announcement-cta-r1.tone": "",
"announcement-cta-r1.width": "",
"announcement-cta-r1.icon": "",
"announcement-cta-r1.iconOnly": "",
"header-band-r2.coverImage": "",
"header-band-r2.coverStyle": "",
"header-band-r2.coverScrim": "",
"header-band-r2.anchor": "",
"header-band-r2.navLabel": "",
"header-band-r2.navHref": "",
"header-band-r2.navSkip": "true",
"header-band-r2.landmark": "header",
"header-band-r2.tone": "default",
"header-band-r2.gutter": "",
"header-band-r2.shape": "",
"header-band-r2.padding": "compact",
"header-band-r2.sticky": "true",
"header-band-r2.reveal": "",
"header-band-r2.dismissible": "",
"header-band-r2.width": "",
"header-band-r2.gradient": "",
"header-row-r2.align": "",
"header-row-r2.phone": "row",
"header-brand-col-r2.pad": "",
"header-brand-col-r2.sticky": "",
"header-brand-r2.wordmark": "Your Company",
"header-brand-r2.wordmarkAccent": "",
"header-brand-r2.logoImage": "",
"header-brand-r2.tagline": "",
"header-brand-r2.href": "#",
"header-nav-col-r2.pad": "",
"header-nav-col-r2.sticky": "",
"header-nav-r2.links": "[{\"label\":\"Home\",\"href\":\"#\"},{\"label\":\"About\",\"href\":\"#about\"},{\"label\":\"Services\",\"href\":\"#services\"},{\"label\":\"Contact\",\"href\":\"#contact\"}]",
"header-nav-r2.ctaLabel": "Get started",
"header-nav-r2.ctaHref": "#contact",
"header-nav-r2.ctaTone": "",
"header-nav-r2.ctaIcon": "",
"header-nav-r2.phoneMenu": "",
"header-nav-r2.align": "end"
},
"ds": {}
}
import type { SectionRegistry } from '@nersh/render';
import { Component as BlockBrand } from '@/sections/block-brand/Component';
import { Component as BlockButton } from '@/sections/block-button/Component';
import { Component as BlockNav } from '@/sections/block-nav/Component';
import { Component as BlockText } from '@/sections/block-text/Component';
import { Component as LayoutColumn } from '@/sections/layout-column/Component';
import { Component as LayoutContainer } from '@/sections/layout-container/Component';
import { Component as LayoutSection } from '@/sections/layout-section/Component';
export const registry: SectionRegistry = {
'block-brand': BlockBrand,
'block-button': BlockButton,
'block-nav': BlockNav,
'block-text': BlockText,
'layout-column': LayoutColumn,
'layout-container': LayoutContainer,
'layout-section': LayoutSection,
};
"use client";
import { SiteRenderer } from "@nersh/render";
import { registry } from "./header-announcement.registry";
import siteJson from "./header-announcement.site.json";
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const site = siteJson as any;
export default function HeaderAnnouncement() {
return <SiteRenderer site={site} registry={registry} />;
}