> ## Documentation Index
> Fetch the complete documentation index at: https://www.propeldata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Radius

> Choose the border radius for UI elements.

<div />

Theme `radius` setting manages the radius factor applied to the components:

```jsx theme={"system"}
<ThemeProvider
  radius="medium"
>
  <TimeSeries
    variant="bar"
    query={{
      accessToken: "<PROPEL_ACCESS_TOKEN>",
      metric: {
        count: {
          dataPool: { name: "TacoSoft Demo Data" }
        },
      },
      timeRange: { relative: RelativeTimeRange.LastNDays, n: 90 },
      granularity: "DAY",
    }}
  />
</ThemeProvider>
```

<div style={{ display: 'grid', gridTemplateColumns: '100px 1fr', gap: '16px' }}>
  <div style={{ display: 'flex', alignItems: 'center', fontSize: '14px', color: '#71717A' }}>none</div>

  <div style={{ padding: '16px', border: '1px solid #E4E4E7', borderRadius: '4px' }}>
    <div style={{ maxWidth: '320px' }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', borderRadius: '0px', border: '1px solid #E4E4E7', padding: '8px' }}>
        <input type="text" placeholder="Filter..." style={{ flex: 1, border: 'none', outline: 'none' }} />
      </div>
    </div>
  </div>

  <div style={{ display: 'flex', alignItems: 'center', fontSize: '14px', color: '#71717A' }}>small</div>

  <div style={{ padding: '16px', border: '1px solid #E4E4E7', borderRadius: '4px' }}>
    <div style={{ maxWidth: '320px' }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', borderRadius: '4px', border: '1px solid #E4E4E7', padding: '8px' }}>
        <input type="text" placeholder="Filter..." style={{ flex: 1, border: 'none', outline: 'none' }} />
      </div>
    </div>
  </div>

  <div style={{ display: 'flex', alignItems: 'center', fontSize: '14px', color: '#71717A' }}>medium</div>

  <div style={{ padding: '16px', border: '1px solid #E4E4E7', borderRadius: '4px' }}>
    <div style={{ maxWidth: '320px' }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', borderRadius: '6px', border: '1px solid #E4E4E7', padding: '8px' }}>
        <input type="text" placeholder="Filter..." style={{ flex: 1, border: 'none', outline: 'none' }} />
      </div>
    </div>
  </div>

  <div style={{ display: 'flex', alignItems: 'center', fontSize: '14px', color: '#71717A' }}>large</div>

  <div style={{ padding: '16px', border: '1px solid #E4E4E7', borderRadius: '4px' }}>
    <div style={{ maxWidth: '320px' }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', borderRadius: '8px', border: '1px solid #E4E4E7', padding: '8px' }}>
        <input type="text" placeholder="Filter..." style={{ flex: 1, border: 'none', outline: 'none' }} />
      </div>
    </div>
  </div>

  <div style={{ display: 'flex', alignItems: 'center', fontSize: '14px', color: '#71717A' }}>full</div>

  <div style={{ padding: '16px', border: '1px solid #E4E4E7', borderRadius: '4px' }}>
    <div style={{ maxWidth: '320px' }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', borderRadius: '9999px', border: '1px solid #E4E4E7', padding: '8px' }}>
        <input type="text" placeholder="Filter..." style={{ flex: 1, border: 'none', outline: 'none' }} />
      </div>
    </div>
  </div>
</div>

The resulting `border-radius` is contextual and differs depending on the component.

## Radius overrides

Certain components allow you to override the radius factor using their own `radius` prop.

```jsx theme={"system"}
<Flex align="center" gap="3">
	<Button radius="none">Save</Button>
	<Button radius="small">Save</Button>
	<Button radius="medium">Save</Button>
	<Button radius="large">Save</Button>
	<Button radius="full">Save</Button>
</Flex>
```

The card component won't have the `radius` prop, but will inherit the radius setting from the theme. The `radius` prop is also unavailable on most text-based components.

## Radius scale

Radius values used in the components are derived from a 6-step scale.

<div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>
  <div
    style={{
flexGrow: 1,
padding: '24px',
gap: '16px',
backgroundColor: '#F4F4F5',
boxShadow: 'inset 0 0 0 1px #E4E4E7',
borderRadius: '8px',
display: 'flex'
}}
  >
    <div style={{ flexGrow: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
      <div style={{ flexGrow: 1, height: '32px', borderRadius: '2px', backgroundColor: '#E4E4E7' }} />
    </div>

    <div style={{ flexGrow: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
      <div style={{ flexGrow: 1, height: '32px', borderRadius: '4px', backgroundColor: '#E4E4E7' }} />
    </div>

    <div style={{ flexGrow: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
      <div style={{ flexGrow: 1, height: '32px', borderRadius: '6px', backgroundColor: '#E4E4E7' }} />
    </div>

    <div style={{ flexGrow: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
      <div style={{ flexGrow: 1, height: '32px', borderRadius: '8px', backgroundColor: '#E4E4E7' }} />
    </div>

    <div style={{ flexGrow: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
      <div style={{ flexGrow: 1, height: '32px', borderRadius: '12px', backgroundColor: '#E4E4E7' }} />
    </div>

    <div style={{ flexGrow: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
      <div style={{ flexGrow: 1, height: '32px', borderRadius: '16px', backgroundColor: '#E4E4E7' }} />
    </div>
  </div>

  <div style={{ display: 'flex', alignItems: 'center', gap: '4px', paddingLeft: '16px', paddingRight: '16px' }}>
    <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%' }}>
      <p style={{ fontSize: '12px', color: '#71717A', margin: 0 }}>1</p>
    </div>

    <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%' }}>
      <p style={{ fontSize: '12px', color: '#71717A', margin: 0 }}>2</p>
    </div>

    <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%' }}>
      <p style={{ fontSize: '12px', color: '#71717A', margin: 0 }}>3</p>
    </div>

    <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%' }}>
      <p style={{ fontSize: '12px', color: '#71717A', margin: 0 }}>4</p>
    </div>

    <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%' }}>
      <p style={{ fontSize: '12px', color: '#71717A', margin: 0 }}>5</p>
    </div>

    <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%' }}>
      <p style={{ fontSize: '12px', color: '#71717A', margin: 0 }}>6</p>
    </div>
  </div>
</div>

While you can't use a specific step on a particular component directly—the `radius` prop is used to set just the radius factor—you can use the radius scale to style your own components.

Radius tokens are accessed using CSS variables. You can use these tokens to style your custom components, ensuring they are consistent with the rest of your theme.

```css theme={"system"}
/* Radius values that automatically respond to the radius factor */
var(--radius-1);
var(--radius-2);
var(--radius-3);
var(--radius-4);
var(--radius-5);
var(--radius-6);

/* A multiplier that controls the theme radius */
var(--radius-factor);

/*
 * A variable used to calculate a fully rounded radius.
 * Usually used within a CSS `max()` function.
 */
var(--radius-full);

/*
 * A variable used to calculate radius of a thumb element.
 * Usually used within a CSS `max()` function.
 */
var(--radius-thumb);
```
