Default
AI SDK Agents
AI SDK Agents
Copy and Paste
Full-stack vercel ai sdk patterns for workflows, tool calling, and agent orchestration. Built with ai sdk v6 and shadcn/ui. Headless, themable, practical.
Next.jsv16
AI SDKv6
Configured Via Props
Composable hero
Cursor for
Marketing
Human-in-the-loop marketing copy software that helps teams draft, review, and ship high-converting campaigns with confidence.
Next.jsv16
AI SDKv6
Installation
pnpm dlx shadcn@latest add https://cult-ui.com/r/hero-static-radial-gradient.json
Usage
import {
HeroStaticRadialGradientRoot,
HeroStaticRadialGradientContainer,
HeroStaticRadialGradientContent,
HeroStaticRadialGradientHeading,
HeroStaticRadialGradientDescription,
HeroStaticRadialGradientActions,
HeroStaticRadialGradientBadges,
HeroStaticRadialGradientVisual,
HeroStaticRadialGradientMobileVisual,
} from "@/components/ui/hero-static-radial-gradient"export default function Page() {
return (
<main className="min-h-screen">
<HeroStaticRadialGradientRoot>
<HeroStaticRadialGradientContainer>
<HeroStaticRadialGradientContent>
<HeroStaticRadialGradientHeading />
<HeroStaticRadialGradientDescription />
<HeroStaticRadialGradientActions />
<div
className="flex justify-center lg:justify-start"
data-slot="hero-static-radial-gradient-badges-wrap"
>
<HeroStaticRadialGradientBadges />
</div>
</HeroStaticRadialGradientContent>
<HeroStaticRadialGradientVisual />
</HeroStaticRadialGradientContainer>
<HeroStaticRadialGradientMobileVisual />
</HeroStaticRadialGradientRoot>
</main>
)
}What You Get
- Split hero layout with copy and CTA on the left and StaticRadialGradient shader visual on the right.
- Memoized
StaticRadialGradientrender path for stable re-renders. - Desktop and mobile shader variants with configurable colors, radius, focal point, falloff, distortion, and grain.
- Built-in badge row for highlighting stack metadata.
- Works as a full-width section and can be dropped into landing pages directly.
API Reference
Exports
| Export | Type | Description |
|---|---|---|
HeroStaticRadialGradientRoot | HeroStaticRadialGradientRootProps | Context provider and root section primitive |
HeroStaticRadialGradientContainer | div primitive | Main hero grid wrapper |
HeroStaticRadialGradientContent | div primitive | Left-side content column primitive |
HeroStaticRadialGradientHeading | HeroStaticRadialGradientHeadingProps | Heading block primitive (title + subtitle) |
HeroStaticRadialGradientDescription | HeroStaticRadialGradientDescriptionProps | Description block primitive |
HeroStaticRadialGradientActions | HeroStaticRadialGradientActionsProps | CTA wrapper primitive |
HeroStaticRadialGradientCTA | HeroStaticRadialGradientCTAProps | Reusable CTA slot component |
HeroStaticRadialGradientBadges | HeroStaticRadialGradientBadgesProps | Reusable badge row primitive |
HeroStaticRadialGradientVisual | HeroStaticRadialGradientVisualProps | Desktop visual shader wrapper primitive |
HeroStaticRadialGradientMobileVisual | HeroStaticRadialGradientMobileVisualProps | Mobile visual shader wrapper primitive |
HeroStaticRadialGradient / default | HeroStaticRadialGradientProps | Convenience assembled version built from primitives |
useHeroStaticRadialGradient | () => HeroStaticRadialGradientContextValue | Hook for context-driven custom composition |
Props
HeroStaticRadialGradientRoot owns shared defaults, normalized shader props, and composition state.
| Prop | Type | Default | Description |
|---|---|---|---|
srTitle | string | "AI SDK Agents" | Screen-reader-only heading text |
title | ReactNode | "AI SDK Agents" | First line of visible heading |
subtitle | ReactNode | "Copy and Paste" | Second line of visible heading |
description | ReactNode | built-in marketing copy | Supporting paragraph content |
showCta | boolean | true | Toggle CTA rendering |
ctaProps | Partial<HeroStaticRadialGradientCTAProps> | built-in CTA | Override CTA label/link/target/rel/click handler |
renderCta | (defaultCta) => ReactNode | undefined | Wrap or replace default CTA node |
showBadges | boolean | true | Toggle tech badges |
techStack | HeroStaticRadialGradientTechItem[] | Next.js + AI SDK | Badge data source |
renderBadge | (tech, index, defaultBadge) => ReactNode | undefined | Custom badge rendering hook |
desktopShaderProps | Partial<StaticRadialGradientProps> | built-in desktop shader settings | Override desktop shader values |
mobileShaderProps | Partial<StaticRadialGradientProps> | built-in mobile shader settings | Override mobile shader values |
className | string | undefined | Root section class override |
Shader props (StaticRadialGradient)
Passed via desktopShaderProps and mobileShaderProps. Common options:
| Prop | Type | Description |
|---|---|---|
width | number | Canvas width (e.g. 1280) |
height | number | Canvas height (e.g. 720) |
colors | string[] | Array of hex colors (e.g. ["#ed40b3", "#adfa1e", "#6ef7cc"]) |
colorBack | string | Background color (e.g. "#ffffff00" for transparent) |
radius | number | Gradient radius (e.g. 0.98) |
focalDistance | number | Focal distance (e.g. 0) |
focalAngle | number | Focal angle (e.g. 0) |
falloff | number | Falloff (e.g. 0.9) |
mixing | number | Color mixing (e.g. 0.7) |
distortion | number | Distortion amount (e.g. 0) |
distortionShift | number | Distortion shift (e.g. 0) |
distortionFreq | number | Distortion frequency (e.g. 12) |
grainMixer | number | Grain mix (e.g. 1) |
grainOverlay | number | Grain overlay (e.g. 0.5) |
Customization Patterns
Tune radial gradient colors and shape
Use shader override props without forking the component:
<HeroStaticRadialGradientRoot
desktopShaderProps={{
width: 1280,
height: 720,
colors: ["#ed40b3", "#adfa1e", "#6ef7cc"],
colorBack: "#ffffff00",
radius: 0.98,
focalDistance: 0,
focalAngle: 0,
falloff: 0.9,
mixing: 0.7,
distortion: 0,
distortionShift: 0,
distortionFreq: 12,
grainMixer: 1,
grainOverlay: 0.5,
}}
mobileShaderProps={{
colors: ["#ed40b3", "#adfa1e", "#6ef7cc"],
radius: 0.98,
falloff: 0.9,
mixing: 0.7,
}}
>
{/* compose primitives */}
</HeroStaticRadialGradientRoot>Swap hero copy and CTA
Replace copy and CTA target via props:
<HeroStaticRadialGradientRoot
title="Your Product"
subtitle="Ship faster"
description="Reusable hero primitive with configurable radial gradient visuals."
ctaProps={{
label: "Get started",
href: "/signup",
target: "_self",
}}
>
{/* compose primitives */}
</HeroStaticRadialGradientRoot>Compose with slot primitives
Use primitive exports for custom layout composition:
<HeroStaticRadialGradientRoot>
<HeroStaticRadialGradientContainer>
<HeroStaticRadialGradientContent>
<HeroStaticRadialGradientHeading />
<HeroStaticRadialGradientDescription />
<HeroStaticRadialGradientActions />
<HeroStaticRadialGradientBadges />
</HeroStaticRadialGradientContent>
<HeroStaticRadialGradientVisual desktopShaderProps={{ colors: ["#006CFF", "#00d2ff", "#7c3aed"] }} />
</HeroStaticRadialGradientContainer>
<HeroStaticRadialGradientMobileVisual />
</HeroStaticRadialGradientRoot>Performance Notes
StaticRadialGradientis wrapped withmemoto avoid unnecessary rerenders.- Mobile and desktop effects are rendered as separate sections so each layout can be tuned independently.
- Keep the hero in client-rendered regions only (
"use client"is required).
Accessibility Notes
- Includes a screen-reader-only heading (
sr-only) so page structure remains meaningful. - CTA link includes
rel="noopener noreferrer"when opened in a new tab. - Ensure visible contrast remains sufficient if you change shader colors or text opacity.
Troubleshooting
Shader does not render
- Confirm
@paper-design/shaders-reactis installed. - Verify this component runs in a client context.
- Confirm parent containers are not clipping to zero height.
Layout looks crowded on small screens
- Increase the mobile shader container height.
- Reduce heading size classes or copy length.
- Move badges under the fold for dense hero content.
On this page
- Installation
- Usage
- What You Get
- API Reference
- Exports
- Props
- Shader props (StaticRadialGradient)
- Customization Patterns
- Tune radial gradient colors and shape
- Swap hero copy and CTA
- Compose with slot primitives
- Performance Notes
- Accessibility Notes
- Troubleshooting
- Shader does not render
- Layout looks crowded on small screens
AI SDK Agents
100+ AI Patterns
Real world AI SDK v6 patterns. Copy and paste.
Complex AI Agents
Workflow Patterns
Tools + Artifacts
Browse Patterns