SVG shapes (animated)
Same wide viewBox geometry as the static set, with paths drawn via motion/react when each graphic scrolls into view. Respects prefers-reduced-motion.
Polygons and curves
Triangle
Circle
Ellipse
Semicircle (D panel)
Right triangle
Kite
Pennant
Quarter circle
Rounded and architectural
Rounded square
Rounded triangle
Squircle
Gothic arch panel
Inverted arch panel
Arrow pentagon
Primitives
Diamond
Trapezoid
Octagon
Parallelogram
Chevron
Cross
Pill
Panels
Ribbon banner
Hourglass / bowtie
Scalloped top
Corner bite
Double notch
Ogee onion dome
Sacred geometry
Vesica piscis
Seed of life
Flower of life
Metatron cube
Sri Yantra
Golden spiral
Torus tube
Platonic solids (wireframe)
Tetrahedron
Cube
Octahedron
Icosahedron
Dodecahedron
Flip prop
none
vertical
horizontal
both axes
Installation
pnpm dlx shadcn@latest add https://cult-ui.com/r/svg-shapes-animated.json
Usage
Each export is a client component ("use client") that wraps stroked paths in motion elements. Animations use whileInView with pathLength from 0 → 1 so lines draw when the SVG enters the viewport. useReducedMotion() skips the animation and shows finished paths immediately.
import { GothicArchPanelSvg } from "@/components/ui/svg-shapes-animated"
export function Hero() {
return (
<div className="text-foreground/50 w-full max-w-4xl">
<GothicArchPanelSvg />
</div>
)
}Props
| Prop | Type | Default |
|---|---|---|
className | string | — |
flip | "none" | "vertical" | "horizontal" | "both" | "none" |
Requires the motion package (motion/react), declared as a registry dependency when installing via CLI.
Compared to SVG Shapes
- Animated: scroll-draw strokes, slightly different default stroke emphasis, extra shapes (diamond, trapezoid, octagon, ribbon panels, wireframe naming
*WireframeSvg, etc.). - Static (
svg-shapes): no Motion dependency, passive SVGs suitable anywhere including server components.
Notes
- Sacred-geometry and multi-path shapes stagger short delays per sub-path for a sequential draw feel.
- Ensure the preview or page scrolls enough for elements to cross the in-view threshold; embed in a tall section or scroll container as needed.