Skip to main content
Graphite UI

Radius

Eight corner steps in px, taken from the kit’s Radius collection. Carbon has no radius scale, so the kit is the only source these numbers have. The kit is also square-cornered: seven of the fifteen governed components that set a corner set it to zero.

Contract 1.1.08 stepspx

The scale

8 of 8 steps match the kit snapshot. Each swatch is drawn with the token it names.

  • --graphite-radius-none0
  • --graphite-radius-22px
  • --graphite-radius-44px
  • --graphite-radius-66px
  • --graphite-radius-88px
  • --graphite-radius-1616px
  • --graphite-radius-2020px
  • --graphite-radius-full999px

--graphite-radius-full is 999px, the kit’s own value rather than the more common 9999px. Either pills a box; this one stays faithful to the source so the drift check has nothing to forgive.

Reading the names

Here the suffix is the size. On the spacing scale it is not.

A square-cornered kit

Which governed components read which step, found by reading their stylesheets. A component moves between rows here by itself when its corner changes.

Radius steps and the components that use them
TokenValueUsed by
--graphite-radius-none0Button, Menu, Modal, Notification, Popover, Progress bar, Toast
--graphite-radius-22pxNavigation menu, Slider, Tooltip
--graphite-radius-full999pxTag, Toggle

Circles are not a step

A circle is a shape, not a point on this scale, so it is written as 50%. Five governed components draw one.

Components that draw a 50% circle
ComponentAlso usesWhy 50%
Data tablenothingThe box is square by construction, so radius-full would render the same. 50% says what is meant.
Radio button groupnothingThe box is square by construction, so radius-full would render the same. 50% says what is meant.
Sliderradius-2The box is square by construction, so radius-full would render the same. 50% says what is meant.
TabsnothingThe box is square by construction, so radius-full would render the same. 50% says what is meant.
Toggleradius-fullThe box is square by construction, so radius-full would render the same. 50% says what is meant.

Rounding in Create

The Create page has a Radius control. It does not change the scale, and it does not change the site.

Bind --graphite-radius-none to
Pill

The kit default. Every corner in this box is square except the tag.

This is what the control on Create does, reduced to its mechanism. The chosen step is bound to --graphite-radius-none on the preview root, so every component that takes its corners from the zero step rounds with no edit to the component. Components on another step (Tag, Toggle, Tooltip) keep it. The override is scoped to the preview: the site chrome around it stays square.

Usage rules

Quoted from the Radius contract (1.1.0).

Rules

  • The suffix is the pixel value and is left unpadded to keep it readable as one. Do not pad it to two digits to match --graphite-space-NN, where the number means the opposite thing.

Never

  • Never express a radius with a spacing token.
  • Do not "correct" --graphite-radius-full to 9999px. It is 999px because the kit says 999.
  • Do not treat 50% as a radius step. A circle is a shape, not a point on this scale.

Next steps

The other length scale, and the place to try a rounded theme.

  • Spacing

    The rem scale and the density steps components bind to.

  • Create

    Try a radius against the full set of examples.

  • Button

    The contract that settles square corners for the kit.