Propel

Borders, radius & rings

The edge scale — border widths, corner radii, and the focus ring Propel actually draws.

Borders do most of the structural work in Propel. With the shadow scale kept deliberately small, a 1px line is what separates a control from its surroundings.

Three scales cover it: width for the line itself, radius for the corner, and outline and ring for focus. Outline and ring alias onto the width scale, so an edge, an outline, and a focus ring at the same step are the same thickness.

Border width

border-sm

1px

border-md

1.5px

border-lg

2px

border-xl

2.5px

UtilityValueUsed byUsed for
border-sm1pxalert-dialog, avatar, combobox +17 moreEvery divider, container edge, and control outline in Propel.
border-md1.5pxNo component uses this step.
border-lg2pxavatar, workspace-avatarA deliberate ring around a surface — avatar and workspace rims.
border-xl2.5pxNo component uses this step.

Bare border is 1px, from --default-border-width, which is the same value as border-sm; the codebase prefers border-sm when it wants to be explicit about the scale. Tailwind’s numeric widths (border-0, border-2, border-4, border-8) survive the reset but sit outside the tokens entirely, so prefer the named steps and a width change stays a one-line token edit.

Corner radius

rounded-none

0

rounded-xs

2px

rounded-sm

4px

rounded-md

6px

rounded-lg

8px

rounded-xl

12px

rounded-2xl

16px

rounded-3xl

20px · propel

rounded-full

calc(infinity * 1px)

Propel leaves Tailwind’s radius scale nearly intact, overriding one step and removing one.

UtilityValueSourceUsed by
rounded-none0Static utility
rounded-xs0.125rem / 2pxTailwind defaultinternal/link-chrome
rounded-sm0.25rem / 4pxTailwind defaultalert-dialog, badge, checkbox +10 more
rounded-md0.375rem / 6pxTailwind defaultbreadcrumb, button-group, calendar +17 more
rounded-lg0.5rem / 8pxTailwind defaultalert-dialog, autocomplete, banner +13 more
rounded-xl0.75rem / 12pxTailwind defaultdialog, popover
rounded-2xl1rem / 16pxTailwind default
rounded-3xl1.25rem / 20pxPropel (Tailwind: 1.5rem)
rounded-4xlRemoved by Propel
rounded-fullcalc(infinity * 1px)Static utilityavatar, badge, calendar +6 more

rounded-4xl is set to initial, so it generates no CSS. Everything else on the scale is Tailwind's own value.

The usage column shows a consistent split worth following. rounded-md is the control radius for buttons, inputs, menu rows, and tabs, and is the most-used radius in the library by a wide margin. rounded-lg is the container radius for dialogs, popups, cards, and tables, rounded-sm covers small things inside a control such as a checkbox box or a badge, and rounded-full is for shapes meant to read as round.

A container sits one step rounder than the controls inside it, which is what keeps a button in a dialog from looking sharper-cornered than the dialog.

Outline and ring width

Both scales alias straight onto the border widths, so they are the same four values under different property names. Use outline-* for a real CSS outline, which does not affect layout and follows outline-offset, and ring-* for Tailwind’s box-shadow ring. Bare outline and bare ring both resolve to --default-border-width, or 1px.

UtilityValueAliases
outline-sm1px--border-width-sm
outline-md1.5px--border-width-md
outline-lg2px--border-width-lg
outline-xl2.5px--border-width-xl
ring-sm1px--border-width-sm
ring-md1.5px--border-width-md
ring-lg2px--border-width-lg
ring-xl2.5px--border-width-xl

Propel draws focus with ring-2, appearing 32 times across 21 component families, always as focus-visible:ring-2 focus-visible:ring-accent-strong. That is Tailwind's numeric utility rather than the named scale above: no component uses ring-sm, ring-md, ring-lg, or ring-xl, even though ring-lg is the same 2px and would tie the ring to the tokens. Match the surrounding code and use ring-2 rather than introducing a second spelling.

Guidelines

Mixing border-sm and border-lg on one container reads as a mistake rather than a hierarchy. If an edge needs more presence, change its color to border-strong before changing its width.

Radius follows size rather than emphasis. A bigger corner does not mean a more important element, so pick it from the box’s size using the convention above and let color and weight carry emphasis.

Never remove a focus ring without replacing it. outline-none and ring-0 are only safe when something else makes focus visible, which is why Propel’s own controls pair focus-visible:outline-none with a ring-2. Dropping the ring while keeping the outline-none leaves the control invisible to keyboard users and fails WCAG 2.4.7.

The scale on this page is geometry only. border-subtle, border-strong, border-accent-strong, and the rest of the semantic edge colors belong to the color system and are documented with it.