# Button: Smooth width

> The button eases to the width of each label instead of reserving space for the longest one, so nothing around it jumps.

Example: https://hextaui.com/docs/button/examples/smooth-width
Component docs: https://hextaui.com/docs/button.md

## Add this example

```bash
npx shadcn@latest add https://hextaui.com/r/button-smooth-width.json
```

This adds `components/examples/button/smooth-width.tsx` with the Button component and the HextaUI theme tokens.

## Source

```tsx title="components/examples/button/smooth-width.tsx"
"use client"

import { Button } from "@/components/ui/button"

function wait(ms: number) {
  return new Promise<void>((resolve) => setTimeout(resolve, ms))
}

export function ButtonSmoothWidth() {
  return (
    <Button
      feedback
      loadingLabel="Publishing to 3 regions…"
      successLabel="Live"
      onClick={() => wait(1600)}
    >
      Publish
    </Button>
  )
}
```

## Props in this example

### Button

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `feedback` | `boolean` | `false` | Track the promise returned from onClick and show its status. |
| `onClick` | `(event) => unknown` | – | Return a promise to drive feedback. |
| `loadingLabel` | `ReactNode` | – | Shown next to the spinner. Hidden on icon sizes. |
| `successLabel` | `ReactNode` | `"Done"` |  |

## More Button examples

- [Variants](https://hextaui.com/docs/button/examples/variants.md)
- [Sizes](https://hextaui.com/docs/button/examples/sizes.md)
- [Pill](https://hextaui.com/docs/button/examples/pill.md)
- [With icon](https://hextaui.com/docs/button/examples/with-icon.md)
- [Disabled](https://hextaui.com/docs/button/examples/disabled.md)
- [Custom labels](https://hextaui.com/docs/button/examples/custom-labels.md)
- [Error details](https://hextaui.com/docs/button/examples/error-details.md)
- [Forms](https://hextaui.com/docs/button/examples/form.md)
- [Icon buttons](https://hextaui.com/docs/button/examples/icon-feedback.md)
- [Feedback on every variant](https://hextaui.com/docs/button/examples/variants-feedback.md)
- [Controlled loading](https://hextaui.com/docs/button/examples/controlled-loading.md)
- [Controlled status](https://hextaui.com/docs/button/examples/controlled-status.md)
- [As a link](https://hextaui.com/docs/button/examples/link.md)
- [Right to left](https://hextaui.com/docs/button/examples/rtl.md)
