按钮
安装
npx
npx hb-design-cli add button
预览
使用示例
组件
import { Button } from '@/components/ui/button'代码片段
组件
import * as React from "react"
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
variant?: 'primary' | 'secondary';
size?: 'sm' | 'md' | 'lg';
}
export const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
({ className, variant = 'primary', size = 'md', ...props }, ref) => {
const baseClasses = "cursor-pointer inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50"
const variantClasses = {
primary: "bg-black text-white hover:bg-gray-800",
secondary: "bg-gray-200 text-gray-800 hover:bg-gray-300"
}
const sizeClasses = {
sm: "h-8 px-3 text-sm",
md: "h-10 px-4 py-2",
lg: "h-12 px-6 text-lg"
}
const classes = [
baseClasses,
variantClasses[variant],
sizeClasses[size],
className
].filter(Boolean).join(' ')
return (
<button
className={classes}
ref={ref}
{...props}
/>
)
}
)
Button.displayName = "Button"
属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| variant | primary | secondary | primary | 按钮深浅切换 |
| size | sm | md | lg | md | 按钮尺寸 |