Skip to content
    Style: Wireframe

    Style

    79 items · free

    Every piece of UI, set in black and white

    Components and page sections for React, Astro and plain HTML. One source, one style, dark mode included. Install them with the shadcn CLI or copy the code.

    npx shadcn@latest add https://www.themes.dev/ui/r/button.json

    Components

    56 so far, in React, Astro and plain HTML, each with every state and checked for WCAG 2.2 AA.

    Blocks

    Whole page sections, built from the components. Their structure comes from the patterns we measured on thousands of real sites in The UI Index.

    • MarketingHero

      The opening section: h1, one sentence, two actions and an install command; compact for an inner page.

    • MarketingPricing

      Plans side by side; the featured plan inverts, an enterprise plan can run as a wide row under them.

    • MarketingFAQ

      Questions as native details: keyboard, find-in-page and no JavaScript.

    • NavigationSite header

      Brand, links and actions, sticky; below 1024px they fold into a Menu panel. Inline or centred.

    • NavigationSite footer

      Brand, link columns and a legal row; on the page or as an inverted band that closes it.

    • FormsNewsletter signup

      A heading, an email field with its button attached and a note on how often you send.

    • FormsContact form

      Name, email, topic and message with visible labels and native validation.

    • MarketingLogo strip

      One line on who uses it, then the logos at one height and one colour, in rows that wrap evenly.

    • FormsLogin form

      Email and password with autocomplete hints, a show/hide toggle, keep me signed in, reset and sign-up links. The full auth flow is in Flightdeck.

    • NavigationBreadcrumb trail

      A home icon and the levels on one line with chevrons; a long current page truncates instead of wrapping.

    • DisplayCard carousel

      A row of image cards with a title, a line and a link that scrolls sideways; Previous and Next turn off at the ends.

    • MarketingComparison table

      Your product against its alternatives, one column each with ticks; your column drawn out, the head held while the rows scroll, in a scroll box of its own.

    • DataData table

      A simple table: caption, header held while the rows scroll, sideways scroll in its own box on a narrow screen; person and link columns.

    • NavigationHeader bar

      Brand, a row of links and one primary button; under 672px of its own width the links fold into a Menu disclosure (Escape closes it).

    • NavigationIcon sidebar

      An app sidebar: product mark, links with icons, the current one marked with aria-current, settings pinned at the bottom.

    • MarketingLift cards

      Two or three cards with icon, title and text; on hover and focus the card lifts and the arrow slides; the whole card is one link.

    • MarketingLink cards

      Cards that each lead to a collection: icon, title, one line and an arrow that moves on hover; the whole card is one link.

    • OverlaysModal

      A confirm dialog behind a trigger button: title, one paragraph, Cancel and the confirm button. Destructive actions get the destructive button.

    • NavigationNavigation links

      A row of text links with the current page marked (aria-current, underlined); in a narrow block it scrolls sideways instead of wrapping.

    • NavigationNumbered pagination

      Previous and next with icons, page numbers with a gap, the current page marked and the ends disabled, with a line about what is shown.

    • MarketingPlain tiles

      A heading and two lines of text on a quiet surface, nothing else; three across, stacked on narrow widths.

    • MarketingSearch bar

      A short heading and one line in a centred panel, then the search field with its clear button and / shortcut.

    • DisplaySplit card

      A card with a photo on one side and a heading, a short text and a primary button on the other; the photo goes on top on a narrow card.

    Your colours in one file

    themes.dev UI uses the CSS variable names of shadcn/ui. Change them and every component follows, in light and dark. Any shadcn theme works on themes.dev UI, and the themes.dev UI theme works on shadcn components.

    Two things are stricter than the usual default: field borders have 3:1 contrast and focus is a solid ring, so WCAG 2.2 AA holds out of the box.

    npx shadcn@latest add https://www.themes.dev/ui/r/theme.json
    • --background
    • --foreground
    • --primary
    • --secondary
    • --muted
    • --accent
    • --border
    • --input
    • --ring
    • --destructive

    One accent, if you want it

    Black and white is the default. The Ink preset adds one colour, ink blue, to what you act on: primary buttons, checked controls and the focus ring. Grounds, borders and the red for errors stay as they are.

    npx shadcn@latest add https://www.themes.dev/ui/r/theme-ink.json