SVG bands
Wide (2400-based) section ornaments: battlement and zigzag trims, steep hero headers, and frame panels. Styling follows currentColor with light fill tints — pair with your background and type color.
Profile bands
Flat single angle
Castle wall (12 merlons)
Symmetric V
Twin top notches
Zigzag (12 teeth)
Zigzag (8 teeth)
Center tab
Diagonal slash
Arrow chevron
Staircase
Stepped left, steep right
Panels and frames
Stepped inset frame
Angled corner panel
Dual side notch frame
Tall angled hero
Steep tops, bottom trims
Top steep right
Top steep both
Top steep left
Bottom steep right (mirrored)
Wavy bottom
Center tab top (wide grid)
Pyramid steps
Four steps
Twelve steps
Generic BandShape + path builders
BandShape · castleWallBandPath(6)
BandShape · zigzagSawtoothBandPath(10)
BandShape flip prop
none
vertical
horizontal
both axes
Installation
pnpm dlx shadcn@latest add https://cult-ui.com/r/svg-bands.json
Usage
Use preset components for common silhouettes, or BandShape with your own closed path and viewBox. Several exports expose path builder functions (castleWallBandPath, zigzagSawtoothBandPath) if you need different merlon or tooth counts without duplicating geometry.
import {
TopBandSteepRightSvg,
BandShape,
castleWallBandPath,
} from "@/components/ui/svg-bands"
export function SectionDivider() {
return (
<div className="text-foreground/30 w-full">
<TopBandSteepRightSvg />
</div>
)
}
export function CustomBattlement() {
return (
<BandShape
viewBox="0 0 2400 180"
path={castleWallBandPath(8)}
title="Eight-tooth battlement"
/>
)
}BandShape props
| Prop | Type | Default |
|---|---|---|
path | string | (required) |
viewBox | string | (required) |
flip | "none" | "vertical" | "horizontal" | "both" | "none" |
className | string | — |
title | string | "Decorative section shape" |
Preset components are mostly className only; ZigzagSawtoothBandSvg accepts optional teeth (default 12, must be ≥ 2).
Path helpers
| Export | Notes |
|---|---|
castleWallBandPath(n) | n ≥ 1 merlons along the 2400-wide grid |
zigzagSawtoothBandPath(n) | n ≥ 2 teeth; pairs with default zigzag viewBox height |
Notes
- Ornamental exports (
DualSideNotchFrameSvg,WavyBottomEdgeSvg,CenterTabTopBandSvg) bundle responsive Tailwind classes for small breakpoints; override withclassNameif needed. BottomBandSteepRightSvgalready applies a vertical flip so the steep geometry reads as a footer trim.