Saltar al contenido principal
Get Involved

Whether you are a developer, designer, writer, project builder, or just someone passionate about Cardano.

Overview

Overview​

Shared components are the default on cardano.org. Before you write a component or page markup, find your need in the table below and use the component it points to. If a component almost fits, extend it with an additive prop instead of copying it. The Component Guidelines explain when a page-specific component is fine and what a new shared component needs.

Find the right component​

Page structure​

I needUse
A page hero with title, text, and bannerSite Hero. The homepage uses Welcome Hero
An icon framed in a rounded tileIcon Hero
A complete explainer page with hero, sections, FAQ, and call to actionExplainer Page
A page shell for an /insights data pageInsights Layout, Insights Footer
Open Graph and Twitter card meta tagsOpen Graph Info
Content constrained to the page widthBoundary Box
A section background (zoom, plain, light)Background Wrapper
Vertical spacing between blocksSpacer Box
A labeled section divider with an anchorDivider
Decorative lines that connect sectionsConnection Line

Text and layout​

I needUse
A section title with text, list, and optional buttonTitle With Text
A large title on the left, text and button on the rightFeatured Title With Text
A chartEChart
Headline numbers, alone or in a row of equal columnsStat Figure
A responsive grid of cards or tiles that wraps by item widthGrid. For filterable app cards use App Grid
Plain paragraphs in one or two columnsOne Column Box, Two Column Box
Main content with a sidebarTwo Column Layout
A dotted icon illustration next to textDotted Image With Text
Alternating rows of icon, title, and textProof Points List
A highlighted note with icon and accent borderHighlight Callout
A call to action bandCTA One Column, CTA Two Column
A call to action band that closes a page on the normal backgroundPage CTA
A role or persona cardRole Card
A title with icon links to Cardano's social channelsFollow Cardano
A small status labelStatus Pill
A closing callout that invites readers to fix the page on GitHubEdit On GitHub Callout
A row of link cards to related pages at the end of a pageLink Card Row
A logo or avatar next to a name, with letters when the image is missingLogo Tile

Interaction​

I needUse
Tabs that switch between panels, as pills or in a layout of your ownTabs
An FAQ or other expandable questionsFAQ Section for an FAQ with its own "FAQ" heading, Accordion under a heading of your own
A dialog opened from a buttonModal
A copy button that says "Copied" for a momentThe useCopyToClipboard hook from src/utils/useCopyToClipboard.js, copyText for a plain copy, or shareOrCopy for a share button that copies where the browser cannot share
An image that shows something else when it fails to load, including images that failed before the page hydratedThe useImageFallback hook from src/utils/useImageFallback.js, or Logo Tile for a logo with letters as fallback
A deep link such as #faq-lose-ada that opens or scrolls to something, on load and when the hash changesThe useHashTarget hook from src/utils/useHashTarget.js, or useHashTab for Tabs
A contact or sign-up form managed in HubSpotHubSpot Form
A horizontal row of cards with scroll arrowsHorizontal Scroller
Previous and next buttons to step through epochsInsights Epoch Nav
A slider that selects a range of epochs and remembers itEpoch Range Slider
Two glossary terms from a categoryTerm Explainer

Topic widgets​

I needUse
App cards, rows, grids, lists, or iconsApp Tile, App Row, App Grid, App List, App Icon
A wallet picker, network warning, or transaction statusWallet Delegation
A quiz, its teaser card, modal, or share badgeQuiz, Quiz Card, Quiz Modal, Quiz Share
A layer 2 project cardLayer 2 Card
Funding program cards and statsFunding Programs
Treasury charts and figuresTreasury Sections

Nothing fits?​

  1. Check whether an existing component can take an additive prop that covers your case.
  2. If you need a page-specific tool or deliberate art direction, put it in src/components/<PageName>/ and explain in the pull request why nothing above fits.
  3. If you need a new shared component, ask in the issue or pull request first. It goes in src/components/Layout/ with JSDoc for its props, a doc page in this folder, and a row in the table above. Start the doc page from docs/get-involved/components/_template.md.