Arc
ComponentsBlocksScreensDocsPricingTry the demo
Get Pro
Saved

Docs

IntroductionInstallationThemingMotionAI and MCPChangelog

Components136

ButtonAction buttonSplit buttonButton groupFloating button groupExpanding button groupCopy buttonAction swapIcon morphConfirm morphTheme switcher

Hold to confirmSwipe actionsReactions

Dropdown menuContext menuUser menu

InputTextareaPassword fieldPassword strengthSearch fieldExpanding searchInline edit

Number fieldMoney inputPhone inputScrub inputTag inputMention inputShortcut recorder

SelectComboboxMulti-selectMorph selectChip group

Radio cardsBilling toggleCheckboxRadio groupSwitchSegmented controlRatingToggle group

SliderElastic sliderRange histogram sliderRuler sliderWindow rangeNewProLens rangeNewPro

CalendarDate pickerDate range pickerTime pickerColor pickerEmoji pickerPro

Rich text editorSignature padFile dropzoneAvatar uploadPro

TabsBreadcrumbPaginationMega menu morphProTable of contents progressPro

Scroll areaAccordionExpandable cardResizable panelsExpandable text

DialogDrawerBottom sheetPopoverHover cardTooltipShare accessProConfirm popoverPro

AlertToastToast stackAnnouncement barCookie consentUndo toastPro

ProgressSkeletonStepperCountdownUsage meterOnboarding checklist

AvatarAvatar groupBadgePresence stackPro

CardMetric cardEmpty stateMetric tickerPro

Line chartBar chartDonut chartStreamgraphBrush chartWaffle chartSlope chartSparklineGaugeActivity heatmapAnimated counterRidgelineTreemapSplit barPro

SunburstProSankey flowProFunnel chartProRadar chartProRealtime streamProRace bar chartProData gridPro

Sortable data tableTree tableTree viewReorderable listFilter toolbarCode blockJSON viewer

TimelineComment threadChat thread

Image compareCarouselCard stack

Text revealIn-view titleText morphText shimmer

Blocks122

KPI drilldownProMetric explorerProRevenue explorerProMRR waterfallProCohort retentionProUsage forecastProJourney flowProUptime statusProPivot builderProChoropleth explorerProConnected scatterProHorizon chartProAccount healthPro

Budget variancePro

Small multiplesProLine replayPro

AI chatProAI composerProAI answerProModel pickerProModel arenaProPrompt studioProDocument extractionProAgent memoryProAI side panelProAI inline editProResearch runProAI insight cardProCatch upProAI feature launchProAI search barProAI setup wizardProCall insightsProLead scoringPro

Agent runProAgent tasksProAgent approvalsProAgent routinesProAgent orchestratorProMCP serversProKnowledge baseProEval suiteProAgent builderProAgent galleryPro

SidebarPro4Page headerCommand paletteNotification centerSelection toolbarProEmpty statesSearch resultsPro

Login and sign up5, free and Pro variantsOnboarding illustrationProOTP inputMulti-step formProTwo-factor setupProMagic linkPro

Settings pageProSettings commandProSecurity settingsProBilling overviewProUsage billingProCancel flowProOnboarding surveyProSpend alertPro

Team membersProInvite peopleProRoles and permissionsProProfile pagePro

API keysProWebhooksProIntegrationsProImport wizardNewProEnvironment variablesProDomain verifyProWebhook testerPro

Plan comparisonPricing calculatorProUsage pricingProCart drawerProCheckout summaryProLive checkoutProSeat managerProCredit top-upPro

Wallet cardProDelivery trackerProSeat mapPro

Activity feedProSupport widgetProFeature votingPro

File uploadMedia playerPro

Availability pickerProRelease readinessProFeedback boardProSmart schedulerProTask breakdownProGoal trackerPro

Hero sectionHero signupPro

Scroll storyProSpotlight gridProFeature bentoProComparison table

Logo marqueeStudio perspectivesProStats band

Changelog feedFAQ sectionContact sectionTeam showcaseProBlog grid

Site headerSite footerCTA sectionNewsletter signup

Activity terrainProRevenue globeProCustomer galaxyProSemantic zoomProLayout morphProExploded viewPro

Screens14

Metrics dashboardProMarket terminalPro

Kanban boardProProject boardProGantt timelinePro

Week calendarProMonth calendarNewPro

Team directoryPro

Inbox triageProSupport conversationProHelp centerPro

Product listingProProduct detailProInvoice studioPro

Special components106

Share sheetProAction morphProMorph navProDockProLiquid tab barProOrbit menuPro

Glass menuProGlass segmentedProGlass cardProGlass tab barPro

Sheet stackProWallet stackProControl centerProHolo cardProCard to articleProLink unfurlPro

Product galleryProLightbox galleryProPhoto gridProCover flowPro

Voice orbProNow playingProVoice recorderPro

Booking pillProActivity ringsProTime dialProDate reelPro

Keycap keyboardProSlot textSand textProTypewriter terminalPro

Stretch refreshProMorph loaderProSkeleton morphProBlack holeProCharge sessionPro

Sticker peelProTicket tearProPage curlProOrbit logosProPrize wheelPro

Dot gridProImage trailProGravity wellProInk fluidProCursor trail drawPro

Agent statusProTool callProAgent planProAgent timelineProContext windowProReasoning blockProSource cardsProModel cardProAI workflowProCode suggestionProGhost textProImage generationProDictation buttonProSpeech playerProMeeting summaryProReply draftProAgent handoffProPII redactionProResponse feedbackProLLM cost calculatorProProvider keysProGeneration statsProAI translateProTL;DR toggleProConnector setupProSmart form fillProEnrich columnProTicket routerProAsk your dataProAgent cursorProProvider statusProTraining runProAI commandProStarter promptsProAI mascotProImage revealProAI sparkProPixel mascotProGhost mascotProCube mascotProTone tunerProUpgrade promptProReferral cardProTrial bannerProTeam switcherProLive visitorsProSocial proof toastProInstall snippetPro

Data flowProPayment flowProDNS resolutionProModel trainingProMulti-region failoverProVector searchProBranch graphProAgent loopProMixture of expertsProSpeculative decodingProPrompt cacheProReasoning treePro
What’s new4 new
BlocksHero section

Hero section

Three full screen SaaS heroes: a live dashboard rising from the bottom edge over a drifting mesh, a workflow graph that routes sample events node by node, and editorial type over a mesh gradient.

$pnpm dlx shadcn@latest add @uiarc/hero-section
Live block · sample data

When to use

  • The first section of a SaaS landing page, when the product screen is the pitch (Screenshot).
  • Developer tools, automation, and infrastructure products, where showing the product working is the pitch (Workflow).
  • A launch or download page that wants one confident line and a sense of atmosphere (Mesh).

When not to use

  • Use page-header for titles inside app screens.
  • Use hero-signup when the goal is collecting an email in the first section.

Installation

Add Hero section with the shadcn CLI, or copy the source by hand.

$pnpm dlx shadcn@latest add @uiarc/hero-sectionpnpm dlx shadcn@latest add @uiarc/hero-section

Adds the block and its local dependencies, and installs motion, lucide-react. First time? Add the @uiarc registry to components.json, or use the full URL:

Usage

Use this as the first section of a landing page and replace the sample copy and data with your own. Events in the workflow preview are simulated.

example.tsx
1import { HeroSection } from "@/components/arc/blocks/hero-section/hero-section";2 3export function Hero() {4  return (5    <HeroSection6      variant="centered"7      primaryAction={{ label: "Start free trial", href: "/sign-up" }}8      secondaryAction={{ label: "Book a demo", href: "/demo" }}9    />10  );11}
Built fromButtonLine chartSparklineSegmented controlAvatarGradient mesh

API reference

6 parts. The first is the root.

HeroSection

A SaaS landing hero in three designs, each exactly one full screen (100svh) and edge to edge. `centered` (Screenshot) sets a headline over a drifting mesh gradient that fills the screen, with a live revenue dashboard rising from the bottom edge: the window settles from a tilt as it enters and runs off the screen into a fade. `split` (Workflow) puts the copy beside a live workflow graph on a dotted canvas: sample Stripe events run node by node, data draws along each edge, the branch decides which actions run, and every step reports its time. `minimal` (Mesh) is large editorial type over a full mesh gradient with grain, with customer marks along the bottom edge. Pass `title` to render your own content in any layout instead.

PropTypeDefaultDescription
variant"centered" | "split" | "minimal""centered"Which design to render.
animateInbooleantruePlays the entrance once on mount.
primaryActionHeroAction | null–The main call to action: { label, href?, onClick?, external?, doneLabel? }. With href it renders a link; without, a button that shows `doneLabel` for a moment after a press.
secondaryActionHeroAction | null–The second call to action, same shape.
titlestring–Your own headline. When set, the hero renders your content (HeroContent) in the chosen layout.
descriptionstring–Your own content: one or two sentences under the title.
announcementHeroAction | null–Your own content: a short link above the title for real news.
install{ label: string; command: string }[] | null–Your own content: the first command is shown with a copy button.
mediaReactNode–Your own content: a visual beside the copy in the split layout.
metastring[]–Your own content: small facts under the actions.
classNamestring–Extra class on the section.

HeroLumen

The Screenshot design on its own. The dashboard is real markup built from Arc LineChart, Sparkline, SegmentedControl, and Avatar; its range control changes every figure on screen, and the chart can be scrubbed.

PropTypeDefaultDescription
primaryActionHeroAction{ label: "Start free trial", doneLabel: "Trial started" }The main call to action.
secondaryActionHeroAction{ label: "Book a demo" }The second call to action.

HeroRelay

The Workflow design on its own: a Relay workflow (Stripe invoice paid, HubSpot lookup, an amount branch, then Slack, Linear, and warehouse actions) that runs sample events on its own while on screen. Send test event runs the next sample at once; a small invoice skips the Slack and Linear steps.

PropTypeDefaultDescription
primaryActionHeroAction{ label: "Start building", doneLabel: "Workspace created" }The main call to action.
secondaryActionHeroAction{ label: "Read the docs" }The second call to action.

HeroCadence

The Mesh design on its own: type over a mesh gradient, and customer marks drawn in the text color.

PropTypeDefaultDescription
primaryActionHeroAction{ label: "Download for Mac" }The main call to action.

HeroMesh

The background renderer: a lean, non-editing version of the Gradient mesh. Points use the editor's model (x, y, spread); colors come from the CSS variables `--mesh-base` and `--mesh-1` onward, so each theme authors its own palette.

PropTypeDefaultDescription
points{ x: number; y: number; spread: number }[]–Up to eight points, bottom to top.
grainnumber0.35Film grain, 0 to 1.
speednumber1Drift speed; 1 loops every 20 seconds, 0 holds still.

HeroSectionBlock

Default export: the hero full screen with a small glass design switch floating over its top edge; switching replays the entrance.

PropTypeDefaultDescription
variantHeroSectionVariant"centered"Initial design.

Accessibility

  • Each design has one h1, and the calls to action are real links or buttons with visible text.
  • The dashboard is a labelled group of sample data; its range control is a segmented control and the chart keeps its screen reader table.
  • The workflow graph is a labelled group; each step's state has a text label (waiting, running, done, skipped) and its result is written out, never shown by color alone.
  • The mesh and glow are decorative and hidden from assistive technology. Pointer focus draws no ring; keyboard focus shows Arc's shared focus ring.

Motion

  • Screenshot: the copy rises in reading order, then the window rises in behind it and settles flat from a tilt.
  • Workflow: each step turns to the accent while it runs, the data draws along the edge to the next one, and the result and time swap in with a small spring. The run pauses while the hero is off screen or the tab is hidden.
  • Mesh: the gradient drifts on the Gradient mesh editor's seamless 20 second loop.
  • Reduced motion removes every transform: no rise or tilt, the mesh draws one still frame, content fades in briefly, and the workflow shows each event as its finished run without playing; Send test event moves to the next one at once.

Responsive behavior

  • Every design is one full screen (100svh, full width) on desktop and phones. Container queries: the split layout stacks below 900px; below 560px padding tightens and actions fill the width.
  • The dashboard and the workflow graph are drawn at a fixed design size and scaled like a screenshot. The dashboard switches to a compact layout without the sidebar under 720px and runs off the bottom edge into a fade; the graph switches to compact action nodes on phones.
  • On phones the logo row of the Mesh design becomes a grid.

Performance

  • One WebGL canvas at most per hero, drawn at one pixel per CSS pixel and thirty frames a second, only while on screen and the tab is visible. A static CSS render of the same mesh shows first.
  • The workflow advances one React state step every few hundred milliseconds only while the hero is on screen and the tab is visible; nothing else loops at rest.

Notes for AI

Give your coding assistant the Markdown reference instead of screenshots.

  • The three designs carry sample products (Lumen, Relay, Cadence). Replace the copy in hero-lumen.tsx, hero-relay.tsx, and hero-cadence.tsx, the dashboard data in hero-lumen-data.ts, and the sample events at the top of hero-relay.tsx, or pass title and friends for a plain content hero.
  • Mesh colors live in CSS per theme (hero-lumen.module.css and hero-cadence.module.css), in the variables --mesh-base and --mesh-1 onward.
  • Brand marks are sample customers from public/block-logos, not endorsements.
  • Composes Arc Button, LineChart, Sparkline, SegmentedControl, and Avatar.
/components/blocks/hero-section/markdown

The full library index for assistants is at /llms.txt.

Related

Site headerBlockA sticky website header that turns solid on scroll, with a gliding active link, mega menu panels, and a mobile sheet.Logo marqueeBlockA quiet, continuously moving row of brand marks with a pause control.Hero signupProBlockA full screen waitlist hero on a soft, drifting mesh gradient: the email field validates as you type and its button grows into the confirmation with your place in line.

More like this in Pro

Explore Pro
IntegrationsProBlockAn integrations directory where Connect morphs to Connected and the filters recount as you go.Billing overviewProBlockA billing page where the plan card morphs into a picker and usage, invoices, and card follow.API keysProBlockAPI key management where Create key unfolds into its form and each secret is shown once.
PreviousSite footerNextFAQ section
Arc · 122 block pagesllms.txt

On this page

  • Preview
  • When to use
  • When not to use
  • Installation
  • Usage
  • API reference
  • Accessibility
  • Motion
  • Responsive behavior
  • Performance
  • Notes for AI
  • Related
View as Markdown

See every dollar of revenue move

Lumen connects Stripe, HubSpot and your warehouse, then explains each change in MRR the moment it happens. No SQL, no stale spreadsheets.

Free for 14 days. Connects in about four minutes.

app.lumen.so/acme/overview
AAcme Cloud
Search⌘K
Overview
Revenue
Customers
Cohorts
Forecasts
Reports
Saved views
Enterprise expansion
Churn risk
EU customers
Chloe NguyenData analyst

Revenue overview

Synced with Stripe 2 minutes ago

MRR$482.9K$482.9K+8.2%+8.2%
Net retention118%118%+3 pts+3 pts
New customers214214+12%+12%
Churned MRR$6.1K$6.1K−14%−14%

MRR grew $36.4K this month. 62% came from 14 expansions on the Scale plan, led by Linear.

This periodLast period

Sep 24

This period$2,109

Last period$1,336

$0$1K$2K$3K

Net new MRR, Aug 26 to Sep 24. This period, latest $2,109. Last period, latest $1,336.

Net new MRR
DateThis periodLast period
Aug 26$562$454
Aug 27$718$631
Aug 28$789$710
Aug 29$891$690
Aug 30$1,001$762
Aug 31$1,073$789
Sep 1$1,041$820
Sep 2$1,058$878
Sep 3$1,077$883
Sep 4$1,202$796
Sep 5$1,094$779
Sep 6$1,142$744
Sep 7$1,112$717
Sep 8$1,030$672
Sep 9$1,021$713
Sep 10$1,075$662
Sep 11$984$658
Sep 12$996$619
Sep 13$1,043$611
Sep 14$1,094$738
Sep 15$1,162$662
Sep 16$1,209$816
Sep 17$1,412$765
Sep 18$1,520$954
Sep 19$1,595$973
Sep 20$1,722$1,021
Sep 21$1,796$1,155
Sep 22$2,023$1,275
Sep 23$2,026$1,233
Sep 24$2,109$1,336

Biggest moversMRR change
  • LinearMoved to Enterprise+$4,200
  • RaycastAdded 120 seats+$2,850
  • VercelAnnual prepay+$1,900
  • LoomRemoved 40 seats−$1,240
  • SupabaseAdded forecasting+$980
  • FramerUpgraded to Scale+$760