## Feature Examples

### Size
- description: Control progress bar size with `size` prop: - `large` is best for places where progress bar is the only element present. - `medium` is for common use cases. - `small` fits into smaller UI elements like cards and widgets. - `tiny` is used for dense layouts.
- example:
```jsx
<StorybookComponents.Stack>
  <CircularProgressBar size="large" label="Large" value={20} />
  <CircularProgressBar size="medium" label="Medium" value={20} />
  <CircularProgressBar size="small" label="Small" value={20} />
  <CircularProgressBar size="tiny" label="Tiny" value={20} />
</StorybookComponents.Stack>;
```

### Skin
- description: Control the appearance with `skin` prop. It supports 3 styles: - `standard` is for common cases. - `success` is best for highligthing the positive effect of the process. - `premium` is to prompt users to upgrade their plans to premium subscription.
- example:
```jsx
<StorybookComponents.Background skin="light">
  <StorybookComponents.Stack padding="24px">
    <CircularProgressBar skin="standard" label="Standard" value="20" />
    <CircularProgressBar skin="success" label="Success" value="20" />
    <CircularProgressBar skin="premium" label="Premium" value="20" />
  </StorybookComponents.Stack>
</StorybookComponents.Background>;
```

### Light
- description: Invert the skin of a progress bar with the `light` prop. Use this skin on backgrounds with colors or images.
- example:
```jsx
<StorybookComponents.Stack flexDirection="column">
  <StorybookComponents.Background skin="light">
    <StorybookComponents.Stack padding="24px">
      <CircularProgressBar value={20} skin="standard" label="20%" />
      <CircularProgressBar value={20} skin="success" label="20%" />
      <CircularProgressBar value={20} skin="premium" label="20%" />
    </StorybookComponents.Stack>
  </StorybookComponents.Background>
  <StorybookComponents.Background skin="dark">
    <StorybookComponents.Stack padding="24px">
      <CircularProgressBar value={20} skin="standard" light label="20%" />
      <CircularProgressBar value={20} skin="success" light label="20%" />
      <CircularProgressBar value={20} skin="premium" light label="20%" />
    </StorybookComponents.Stack>
  </StorybookComponents.Background>
</StorybookComponents.Stack>;
```

### Progress indication
- description: Add a label that indicates current progress in percentage with `showProgressIndication` prop.
- example:
```jsx
<StorybookComponents.Stack>
  <CircularProgressBar value={20} />
  <CircularProgressBar showProgressIndication value={20} />
</StorybookComponents.Stack>;
```

### Error status
- description: Let users now if process failed using `error` property. Add text that explains what went wrong or what action the user should take with the `errorMessage` prop. Message will be revealed on hover over.
- example:
```jsx
<StorybookComponents.Stack flexDirection="column">
  <StorybookComponents.Background skin="light">
    <StorybookComponents.Stack padding="24px">
      <CircularProgressBar value="0" label="0%" />
      <CircularProgressBar value="20" label="20%" />
      <CircularProgressBar value="100" label="100%" />
      <CircularProgressBar
        value="20"
        label="Error"
        error
        errorMessage="This is the message that explains what went wrong."
      />
    </StorybookComponents.Stack>
  </StorybookComponents.Background>
  <StorybookComponents.Background skin="light">
    <StorybookComponents.Stack padding="24px">
      <CircularProgressBar value="0" skin="success" label="0%" />
      <CircularProgressBar value="20" skin="success" label="20%" />
      <CircularProgressBar value="100" skin="success" label="100%" />
      <CircularProgressBar
        value="20"
        skin="success"
        label="Error"
        error
        errorMessage="This is the message that explains what went wrong."
      />
    </StorybookComponents.Stack>
  </StorybookComponents.Background>
  <StorybookComponents.Background skin="light">
    <StorybookComponents.Stack padding="24px">
      <CircularProgressBar value="0" skin="premium" label="0%" />
      <CircularProgressBar value="20" skin="premium" label="20%" />
      <CircularProgressBar value="100" skin="premium" label="100%" />
      <CircularProgressBar
        value="20"
        skin="premium"
        label="Error"
        error
        errorMessage="This is the message that explains what went wrong."
      />
    </StorybookComponents.Stack>
  </StorybookComponents.Background>
</StorybookComponents.Stack>;
```

### Label
- description: Add custom label for the progress bar using `label` prop.
- example:
```jsx
<StorybookComponents.Stack>
  <CircularProgressBar value={20} />
  <CircularProgressBar label="1/5" value={20} />
</StorybookComponents.Stack>;
```

### Label placement
- description: Control custom label position using `labelPlacement` prop: - `bottom` (default) - `center`
- example:
```jsx
<StorybookComponents.Stack flexDirection="column">
  <StorybookComponents.Background skin="light">
    <StorybookComponents.Stack padding="24px">
      <CircularProgressBar value="20" label="1/5" />
      <CircularProgressBar value="20" skin="success" label="1/5" />
      <CircularProgressBar value="20" skin="premium" label="1/5" />
    </StorybookComponents.Stack>
  </StorybookComponents.Background>
  <StorybookComponents.Background skin="light">
    <StorybookComponents.Stack padding="24px">
      <CircularProgressBar value="20" label="1/5" labelPlacement="center" />
      <CircularProgressBar
        value="20"
        skin="success"
        label="1/5"
        labelPlacement="center"
      />
      <CircularProgressBar
        value="20"
        skin="premium"
        label="1/5"
        labelPlacement="center"
      />
    </StorybookComponents.Stack>
  </StorybookComponents.Background>
</StorybookComponents.Stack>;
```

## Common Use Case Examples

### Setup progress
- description: Use circular progress bar to indicate users where they are in the feature or tool setup process.
- example:
```jsx
<Layout>
  <Cell span={5}>
    <Card>
      <Card.Header title="SEO assistant" />
      <Card.Divider />
      <Card.Content>
        <Box direction="vertical" gap="SP2" paddingBottom="SP4">
          <CircularProgressBar
            size="medium"
            value="20"
            label="1/5"
            labelPlacement="center"
          />
          <Text weight="normal">SEO setup checklist</Text>
          <Text size="small" secondary>
            Fix current issues and follow recommendations to improve this site’s
            performance in search results.
          </Text>
        </Box>
        <Button priority="secondary" size="small">
          Continue Setup
        </Button>
      </Card.Content>
    </Card>
  </Cell>
</Layout>;
```
