Component

Buttons are interactive elements used to trigger actions, submit forms, and navigate users through an application.

preview
React
import Button from "@radui/ui/Button" const ButtonExample = () => ( <div> <Button color="green">Click Me!</Button> </div> )
  • Multiple style variants: solid, soft, outline, ghost
  • Different size options for various contexts
  • Customizable with different color themes
  • Support for icons and text content
  • Follows accessibility best practices
  • Can be used as buttons, links, or form submitters
preview

solid

soft

outline

ghost

React
import Text from '@radui/ui/Text'; import Separator from '@radui/ui/Separator'; import { ArrowRight } from 'lucide-react'; import Button from '@radui/ui/Button'; import TooltipWrapper from '@/components/ui/Tooltip'; const ButtonVariants = () => { const buttonVariants = ['solid', 'soft', 'outline', 'ghost']; const buttonStyleDescription = { solid: 'Solid buttons are the most common type of button. They have a solid background color and a border.', soft: 'Soft buttons have a soft background color and a border.', outline: 'Outline buttons have a border and a background color.', ghost: 'Ghost buttons have a border and a background color.', }; return ( <div> <div className="flex items-center gap-4"> {buttonVariants.map((variant) => ( <span key={variant}> <Button variant={variant} className="space-x-2"> <span >Button</span> <ArrowRight size={15} strokeWidth={2} /> </Button> <Separator orientation="horizontal" style={{ marginTop: 20 }} /> <TooltipWrapper label={buttonStyleDescription[variant]} placement="bottom"> <Text className="text-gray-800 font-light inline-block cursor-help"> {variant} </Text> </TooltipWrapper> </span> ))} </div> </div> ); }; export default ButtonVariants;
preview
React
import Button from '@radui/ui/Button'; const ButtonSizes = () => { const sizes = ['small', 'medium', 'large', 'x-large']; const variants = ['solid', 'soft', 'outline', 'ghost']; return <div className='flex flex-col gap-4'> {variants.map((variant, index) => { return <div key={index} className='flex items-center gap-4'> {sizes.map((size, index) => { return <Button key={index} size={size} variant={variant}> <span>Button</span> </Button> })} </div> })} </div> } export default ButtonSizes;
preview
React
import Button from '@radui/ui/Button'; const ButtonColor = () => { const sizes = ['small', 'medium', 'large', 'x-large']; const variants = ['solid', 'soft', 'outline', 'ghost']; return <div className='flex flex-col gap-4'> {variants.map((variant, index) => { return <div key={index} className='flex items-center gap-4'> {sizes.map((size, index) => { return <Button key={index} size={size} variant={variant} color='pink'>Button</Button> })} </div> })} </div> } export default ButtonColor;
ShortcutDescription
Tab

Moves focus to the next focusable element in document focus order.

Space

Activates the focused button.

Enter

Activates the focused button.

ReferenceWhat Rad UI follows

Uses native button semantics by default, supports disabled state, and keeps activation behavior aligned with keyboard and pointer input.

An interactive component used to trigger an action or event, such as submitting a form, opening a dialog, or performing a delete operation.

PropTypeDefault
children
ReactNode
--
type
enum
'button'
className
string
''
customRootClass
string
''
variant
string
''
size
string
''
color
string
''
disabled
boolean
false