Site header
A sticky website header that turns solid on scroll, with a gliding active link, mega menu panels, and a mobile sheet.
A website footer with link columns and newsletter, a minimal layout, and a large fading Silicon mark.
npx shadcn@latest add @silicon-ui/site-footernpx shadcn@latest add @silicon-ui/site-footerInstall the dependencies.
npm install lucide-react motionCopy these files into your project. Shared files are skipped if you already have them.
components/silicon-ui/blocks/site-footer/site-footer.tsxcomponents/silicon-ui/blocks/site-footer/site-footer.module.csscomponents/silicon-ui/segmented-control/segmented-control.tsx sharedcomponents/silicon-ui/segmented-control/segmented-control.module.css sharedcomponents/silicon-ui/button/button.tsx sharedcomponents/silicon-ui/button/button.module.css sharedInstall the foundation once per app for the design and motion tokens: npx shadcn@latest add @silicon-ui/silicon-foundation
SiteFooter| Prop | Type | Default |
|---|---|---|
variant`columns` pairs a newsletter with link columns, `minimal` is one quiet row, `logo` ends in a large fading Silicon mark. | SiteFooterVariant
| "columns" |
brand | { name: string; href?: string; mark?: ReactNode } | { name: "Silicon" } |
taglineOne short line under the brand. | string | "Interface components that move with intent." |
columns | SiteFooterColumn[] | siteFooterExampleColumns |
linksLinks for the minimal variant. Defaults to the first link of each column. | SiteFooterLink[] | — |
legalSmall links beside the copyright, such as Privacy and Terms. | SiteFooterLink[] | exampleLegal |
socials | SiteFooterLink[] | exampleSocials |
newsletterNewsletter signup. Pass null to hide it. | SiteFooterNewsletter | null | { title: "Get the monthly release notes", description: "One email a month. Unsubscribe anytime." } |
statusA system status link. Pass null to hide it. | { label: string; tone?: "success" | "warning" | "danger"; href?: string } | null | { label: "All systems normal", tone: "success" } |
yearYear in the copyright line. | number | new Date().getFullYear() |
onNavigateCalled for every link that is pressed. Links without an href render as buttons and only call this. | (link: SiteFooterLink) => void | — |
className | string | — |
Also accepts the props of HTMLAttributes.
SiteFooterBlock| Prop | Type | Default |
|---|---|---|
variant | SiteFooterVariant
| "columns" |