Hero sections for React and Tailwind
The first screen of a page in sixteen layouts, from a centered statement to video, app, tabs, form and terminal.
Switch category
Marketing
- Hero17
- Features15
- Logo clouds8
- Stats8
- Pricing11
- Testimonials11
- Call to action11
- FAQ7
- Newsletter12
- Banners9
- Popups and consent7
- Services7
- Use cases6
- Security and trust7
- Changelog and roadmap6
- Launch and waitlist6
- Product tour6
- Press and awards10
- AI features6
- App download5
- Donations and support4
- Problem and solution5
- Objections5
- Calculators10
- Quiz and product finder5
- Free trial5
- Referral and partners10
- Community5
- Open source5
- Manifesto5
- Offer5
- Lead magnet4
- Scroll stories20
- Scroll journeys13
- Scroll effects13
- Scroll reveals and transitions15
Content
- Blog16
- Gallery7
- Team8
- About11
- Content8
- Process7
- Contact8
- Comparison5
- Integrations5
- Error pages5
- Careers7
- Case studies6
- Portfolio6
- Events and webinars6
- Help center6
- Legal pages5
- Documentation4
- Search results5
- Resources and downloads4
- Podcast4
- Editorial15
- Authors and interviews10
- Glossary5
- Recipes5
- Data stories10
- Long reads5
- Surveys and feedback14
- Form states12
- Request forms16
- Applications and sign-ups13
- Address, payment and consent12
App
- Authentication9
- Dashboards6
- Tables6
- Settings5
- AI and chat16
- Calendar5
- Inbox and messages5
- Notifications6
- Files6
- Projects6
- Profiles6
- Onboarding6
- Billing and usage10
- Developer settings15
- Security and access10
- Import, export and history15
- Automation and builders14
- AI answers18
- AI writing and creation13
- AI setup14
- AI assistants9
E-Commerce
Industries
- Menus7
- Appointments6
- Listings6
- Courses6
- Rooms and stays5
- Classes and schedules6
- Medical practice5
- Law firm5
- Salon and spa5
- Automotive5
- Travel5
- Sports club5
- Coworking5
- Museum5
- Cinema5
- School5
- Trades5
- Insurance5
- Banking5
- Personal brand15
- Speakers and media kits10
- Creators15
- Coaching and consulting10
- Artists and musicians15
- Dental practice5
- Veterinary practice5
- Therapy practice5
- Weddings and events5
- Architecture studio5
- Tax advisor5
- Estate agent5
- Florist5
- Winery5
- Daycare5
- Driving school5
- Care services5
- Festival5
Elements
- Buttons20
- Forms and inputs22
- Pickers and selections21
- Special input fields20
- Cards10
- Overlays21
- Navigation elements15
- Menu bars and switchers14
- Data display15
- Progress and states13
- Lists, trees and timelines17
- Charts22
- Comparison charts22
- Statistical charts20
- KPI, live and map charts22
- Text effects15
- Text accents16
- Backgrounds19
- Beams, particles and motion18
- Media19
- Code and JSON8
- Panels and splitters4
Which hero fits your page
The hero is the first screen a visitor sees, and it has one job. It says what the page offers and points to the next step. Every hero here takes its headline, text, buttons and media through props, so the same component works for a SaaS launch, a dental practice or a portfolio.
Start with Centered or Split when the message carries the page. Split puts a screenshot or photo next to the copy and suits products with something to show. With email form fits a waitlist or newsletter launch, With stats and With logos add proof right away, and With terminal speaks to developers. Image background and With video work for places and events, where the picture sells.
Keep the headline under ten words and the lead under two lines on a phone. Pick one primary button and at most one secondary. Every variant has its own phone layout, so check the preview at phone width before you decide, the order of image and text changes there.
Hero
Details
What Hero brings along, read from the registry and the source.
- Area
- Marketing
- Variants
- 17
- Version
- 1.0.2 · since 1.0.0
- File
- components/ui/hero.tsx
- Brings along
- utilskitbuttoniconmotionnumber-tickerrotating-words
- npm packages
- None
- Languages
- English and German, 16 texts of its own
- Studio
- All 17 variants editable
- In collections
- SaaS landing pageLocal business
- Build with AI
- Over MCP in Claude, Cursor, Copilot and Codex
Props
The HeroProps interface from components/ui/hero.tsx, with the comments from the code.
variantoptionalHeroVariantcenteredsplitleftwith-formwith-videoappwith-logoswith-statswith-testimonialimage-backgroundproduct-tabsrotating-wordgradient-meshminimaleditorialwith-codecarousel
announcementoptional{ tag?: string; label: string; href: string }Small announcement above the title, links somewhere
eyebrowoptionalReact.ReactNodeShort line above the title (minimal, editorial and others without announcement)
titlerequiredReact.ReactNodeThe headline. Pass a node to highlight a part, e.g. <span className="kit-accent-text">…</span>
descriptionoptionalReact.ReactNodeprimaryActionoptionalHeroActionsecondaryActionoptionalHeroActionnotesoptionalstring[]Short reassurances under the buttons, each with a check mark
mediaoptionalReact.ReactNodeImage, screenshot, frame or any component
logosoptionalReact.ReactNode[]with-logos: customer logos
logosLabeloptionalstringstatsoptionalHeroStat[]with-stats
testimonialoptionalHeroTestimonialwith-testimonial
tabsoptionalHeroTab[]product-tabs: each tab swaps the media
formoptionalHeroFormwith-form: email sign-up
proofoptionalHeroProofwith-form: avatars and a line of social proof
videooptionalHeroVideowith-video: poster and dialog player
cardsoptionalHeroFloatingCard[]app: small cards floating around the phone
rotatingWordsoptionalstring[]rotating-word: words that take turns at the end of the title
backgroundoptionalReact.ReactNodeimage-background: an image or drawn motif that fills the section
terminaloptional{ title?: string; lines: HeroTerminalLine[] }with-code: the terminal on the right
commandoptionalstringwith-code: a command with a copy button
metaoptionalHeroMeta[]minimal and editorial: small facts in a row
slidesoptionalHeroSlide[]carousel: the slides. Without it the hero props make a single slide with `background`.
intervaloptionalnumbercarousel: milliseconds per slide, 0 turns autoplay off. Default 7000.
Built-in texts
Hero writes these texts itself. The language follows the KitProvider, the labels prop replaces single ones.
Show all 16 texts
| Key | English | German |
|---|---|---|
| English Email address | German E-Mail-Adresse | |
| emailPlaceholder | English you@company.com | German du@firma.de |
| invalid | English Please enter a valid email address. | German Bitte gib eine gültige E-Mail-Adresse ein. |
| thanks | English Thanks. Check your inbox to confirm. | German Danke. Bitte bestätige die Mail in deinem Postfach. |
| play | English Play video | German Video abspielen |
| close | English Close | German Schließen |
| copy | English Copy command | German Befehl kopieren |
| copied | English Copied | German Kopiert |
| views | English Product views | German Produktansichten |
| rating | English out of 5 stars | German von 5 Sternen |
| slides | English Slides | German Folien |
| slide | English Slide {n} of {total} | German Folie {n} von {total} |
| previous | English Previous slide | German Vorherige Folie |
| next | English Next slide | German Nächste Folie |
| pause | English Pause slideshow | German Diashow anhalten |
| playSlides | English Play slideshow | German Diashow abspielen |
Accessibility
Read from the source of the component.
- Hero handles the keys Arrow left, Arrow right, Home, End and Space itself.
- Built on the native dialog element. The browser keeps focus inside and closes it with Escape.
- Sets aria-controls, aria-describedby, aria-haspopup, aria-invalid, aria-label, aria-labelledby, aria-live, aria-roledescription and aria-selected, so screen readers announce purpose and state.
- Uses the roles img, status, tab, tablist and tabpanel.
- Announces changes through a live region without moving focus.
- Every field has a label, visible or for screen readers.
- Adds text for screen readers where icons and graphics stand alone.
- Shows a visible focus ring when used with the keyboard.
- The server renders the starting state in full, JavaScript only adds the interaction.
Motion
- Rises in briefly the first time it comes into view (kit-rise, useInView).
- Brings animations of its own, calmly timed and without wobble.
- With reduced motion (prefers-reduced-motion) it stays still. 18 places in the code switch motion off then.
Frequent questions
How do I install Hero?
With aiw add @ai-website/hero. The command puts components/ui/hero.tsx into your project, the code is yours from then on. It brings along button, icon, motion, number-ticker and rotating-words. It needs no further npm packages.
Which variants does Hero have?
17 variants, Centered, Split, Left with a big line, With email form, With video, App with phone, With logos, With stats, With testimonial, Image background, Product tabs, Rotating word, Gradient mesh, Minimal, Editorial, With terminal and Carousel. You pick one with the variant prop, for example variant="split".
Can I translate the texts of Hero?
Yes. Hero carries 16 texts of its own in English and German, such as “Email address”, “you@company.com” and “Please enter a valid email address.”. The language follows the KitProvider, single texts change through the labels prop.
Can an AI assistant build with Hero?
Yes. Through the MCP server of the aiw CLI, Claude, Cursor, GitHub Copilot, Windsurf, Codex and Gemini find Hero with aiw_components and install it with aiw_add @ai-website/hero. Name the variant in your prompt, for example variant="centered", and the assistant writes your content straight into the props.
Can I adjust Hero without code?
Yes, in the Studio. All 17 variants are editable there, texts, lists and switches. The Studio writes the matching Hero code to copy.
Similar components, Often combined with
Similar components
More from Marketing, the same area of the kit.
Often combined with
Sections that usually sit next to Hero on a page.
Loading the source