v1.6.0
    • Get started

      Install the package, load its styles and components, and build your first page.

    • Foundations

      The content guide, CSS utilities, tokens, and the principles behind every pattern.

    • Patterns

      Every pattern with a live example, when to use it, and where it's already in use.

    Tokens

    Design tokens are the CSS custom properties behind our color, spacing, type, and more. Reach for a token instead of a hand-picked value.

    Every token is a named CSS custom property, so anything you build with them stays consistent with the system and updates when it does.

    Use a token anywhere you would write a raw value:

    .card {
      padding: var(--pl-space-l);
      border-radius: var(--pl-border-radius);
      color: var(--pl-color-fg-default);
    }
    

    Color

    Color tokens come in two layers: a raw palette and the semantic roles built on top of it. Reach for the roles, like --pl-color-fg-default and --pl-color-bg-accent, rather than naming a specific color.

    See Color for the full palette, the foreground and background roles, and contrast guidance.

    Spacing

    Use spacing tokens for margin, padding, and gap so the rhythm of your layout matches the rest of the system. For the utility classes built on these tokens, see CSS utilities.

    Custom property Value
    --pl-space-3xs0.125rem
    --pl-space-2xs0.25rem
    --pl-space-xs0.5rem
    --pl-space-s0.75rem
    --pl-space-m1rem
    --pl-space-l1.5rem
    --pl-space-xl2rem
    --pl-space-2xl3rem
    --pl-space-3xl4rem

    Font size

    Set type from our scale so sizes stay consistent across spaces. To style a whole region's type at once, see Typeset.

    Custom property Value
    --pl-font-size-xs0.75rem
    --pl-font-size-s0.875rem
    --pl-font-size-m1rem
    --pl-font-size-l1.125rem
    --pl-font-size-xl1.25rem
    --pl-font-size-2xl1.5rem
    --pl-font-size-3xl2rem
    --pl-font-size-4xl2.5rem
    --pl-font-size-5xl3.5rem

    The base font size is set on the root:

    Custom property Value
    --pl-font-size16px

    Font family

    Custom property Value
    --pl-font-sans-serifproxima-nova, system-ui, sans-serif
    --pl-font-serif'Perpetua', serif
    --pl-font-familyThe default family applied to text. Set to --pl-font-sans-serif.

    These tokens style the underline on links so it stays consistent and legible.

    Custom property Value
    --pl-link-text-underline-offset0.2em
    --pl-link-text-decoration-thickness1px
    --pl-link-hover-text-decoration-thickness2px

    Border radius

    Round corners with a token so boxes, cards, and images share the same shape. For the utility classes, see CSS utilities.

    Custom property Value
    --pl-border-radius1rem
    --pl-border-radius-subtle0.25rem

    Focus

    Apply this token to a custom component's :focus-visible state so its focus ring matches everything else in the system.

    Custom property Value
    --pl-focus-box-shadow0 0 0 2px var(--pl-color-bg-accent), 0 0 0 4px var(--pl-color-fg-default)

    Page frame

    These tokens control the width and gutters of the centered page frame applied by .pl-viewport-margins. The gutter widens on larger screens.

    Custom property Value
    --pl-viewport-margins-max-width1440px
    --pl-viewport-margins-gutter1em, and 3em at 768px and wider

    Design System

    Get started Foundations Patterns Release notes · v1.6.0 Design notes