Pipe

Components

12 primitives, each drawn live below with the code that makes it. Every one ships in src/components/ui and keeps the same API in every Pipe theme.

Updated 5 sections

12 components

Actions

  • Button

    A capsule at every size. One filled button per form marks the next action; the rest step back.

    2 parts · 5 propsAPI reference for Button
  • Toggle group

    Showing one week

    A set of pressed-state buttons for choosing a view or a filter. Spacing 0 joins them into one segmented control.

Forms

  • Input

    Shown to everyone you invite.

    A 44px field with an 8px corner. Invalid is a border state, and the focus ring is painted once, globally.

    1 part · 4 propsAPI reference for Input
  • Switch

    An immediate on/off. Its hit box reaches 44px on coarse pointers without the track growing.

    1 part · 5 propsAPI reference for Switch
  • Checkbox

    A 4px-corner box for one of many choices. Indeterminate is a state of its own, never a styling trick.

Display

  • Badge

    PublishedNeeds reviewDraftEssays

    A compact label. Status variants carry meaning and always travel with words; the brand tint marks a category.

    3 parts · 3 propsAPI reference for Badge
  • Avatar

    IMTORA
    +4

    7 collaborators

    A round portrait with initials as the fallback. A hairline keeps pale photos from dissolving into the card.

    5 parts · 2 propsAPI reference for Avatar
  • Kbd

    Press⌘Kto search, or/anywhere.

    A key in the running text. Monospaced, quiet, and never a target of its own.

    2 parts · 2 propsAPI reference for Kbd

Feedback

  • Alert

    Fonts are self-hosted
    No request leaves the build.

    A tinted block for something the reader should know before going on. The icon partners the colour.

    4 parts · 3 propsAPI reference for Alert
  • Progress

    Importing notes
    x
    x

    A measured bar with an optional label and value. Omit the value for indeterminate.

    5 parts · 3 propsAPI reference for Progress
  • Tabs

    12 notes, 3 unread.

    Pill tabs by default, a line variant for page sections. The list owns its own sideways scroll.

    4 parts · 5 propsAPI reference for Tabs

Was this page helpful?

Answers stay in this browser session. This demo sends nothing.