Icon buttons display an icon without accompanying text, ideal for toolbars, compact interfaces, and actions where space is limited.
Basic Usage
import { IconButton } from "@soft-ui/react/icon-button"
import { RiSettings4Fill } from "@soft-ui/icons"
function Example() {
return (
<IconButton aria-label="Settings">
<RiSettings4Fill />
</IconButton>
)
}
Always provide an aria-label for icon buttons to ensure accessibility.
Variants
Icon buttons support several variants:
- secondary - Default, medium emphasis (default)
- primary - High emphasis with accent background
- tertiary - Low emphasis with subtle shadow
- ghost - Minimal background, reveals on hover
- icon - Accent-colored icon style
- plain - Minimal with no background
- danger - For destructive actions
import { IconButton } from "@soft-ui/react/icon-button"
import { RiDeleteBinFill } from "@soft-ui/icons"
function Example() {
return (
<>
<IconButton variant="primary"><RiDeleteBinFill /></IconButton>
<IconButton variant="secondary"><RiDeleteBinFill /></IconButton>
<IconButton variant="ghost"><RiDeleteBinFill /></IconButton>
<IconButton variant="danger"><RiDeleteBinFill /></IconButton>
</>
)
}
Sizes
Six sizes from 3xs to l allow precise control:
import { IconButton } from "@soft-ui/react/icon-button"
import { RiStarFill } from "@soft-ui/icons"
function Example() {
return (
<>
<IconButton size="3xs"><RiStarFill /></IconButton>
<IconButton size="2xs"><RiStarFill /></IconButton>
<IconButton size="xs"><RiStarFill /></IconButton>
<IconButton size="s"><RiStarFill /></IconButton>
<IconButton size="m"><RiStarFill /></IconButton>
<IconButton size="l"><RiStarFill /></IconButton>
</>
)
}
Color Tones
Like Button, IconButton supports tone for feedback and decorative colors:
import { IconButton } from "@soft-ui/react/icon-button"
import { RiCheckFill } from "@soft-ui/icons"
function Example() {
return (
<>
<IconButton tone="success"><RiCheckFill /></IconButton>
<IconButton tone="warning"><RiCheckFill /></IconButton>
<IconButton tone="info"><RiCheckFill /></IconButton>
</>
)
}
API Reference
For complete prop documentation, see the IconButton API reference.