Files
supabase/apps/design-system
kemal.earth 06ac401181 feat(design-system): add <MetricsCard /> component (#40355)
* feat: add metrics block setup

* feat: base block and props for metrics block

* chore: add to do

* feat: simplify metric block component further

* feat: basic layout done

* feat: metrics card orientation

* feat: add variant for differential number

* feat: basic sparkline for my metrics card

* feat: some polish for the sparkline

* feat: with xaxis for the sparkline

* feat: remove the xaxis line

* feat: add loading states

* feat: rename to metricscard

* fix: hydration issues

* feat: add tooltip to sparkline

* feat: add examples to docs

* fix: remove hasLink and hasTooltip props

* fix: re-add accidental removal of timestamps

* fix: add timestamps in correct location

* fix: add screen reader only and aria

* fix: text contrast on label in light mode

* fix: correct icon size

* chore: smol copy update

* chore: de-pluralize naming of component

* chore: rebuild packages
2025-11-14 11:40:57 +00:00
..
2025-11-11 04:02:30 +00:00
2024-10-01 11:29:37 +02:00
2025-11-11 04:02:30 +00:00
2024-05-23 17:39:56 +08:00
2024-05-23 17:39:56 +08:00
2025-11-11 04:02:30 +00:00

Supabase Design System

Design resources for building consistent user experiences at Supabase.

Getting started

First, make a copy of .env.local.example and name it env.local. Then install any required packages and start the development server:

cd apps/design-system
pnpm i
pnpm dev:full

The dev:full command runs both the Next.js development server and Contentlayer concurrently, which is recommended for most development workflows.

Alternative commands

You can also run the development server and content watcher separately:

# Run only the Next.js development server
pnpm dev

# Run only the content watcher (in a separate terminal shell)
pnpm content:dev

Or run the development server from the root directory:

pnpm dev:design-system

To run both the development server and content watcher from the root directory, you can use:

# Run the development server
pnpm dev:design-system

# Run the content watcher (in a separate terminal shell)
pnpm --filter=design-system content:dev

Open http://localhost:3003 in your browser to see the result.

Watching for MDX changes

The dev:full command automatically watches for changes to MDX files with hot reload. If you're running the pnpm dev separately, you'll need to run pnpm content:dev in a separate terminal shell to watch for content changes.

Adding components

The design system references components rather than housing them. That’s an important distinction to make, as everything that follows here is about the documentation of components. You can add or edit components in one of these two places:

With that out of the way, there are several parts of this design system that need to be manually updated after components have been added or removed (from documentation). These include:

  • config/docs.ts: list of components in the sidebar
  • content/docs: the actual component documentation
  • registry/examples.ts: list of example components
  • registry/default/example: the actual example components
  • registry/charts.ts: chart components
  • registry/fragments.ts: fragment components

You will probably need to rebuild the design system’s registry after making new additions. You can do that via:

cd apps/design-system
pnpm build:registry