Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第三章:基础组件

第三章:基础组件

3.1 按钮组件

基本用法

Shadcn的按钮组件(Button)是构建用户界面的核心元素之一,提供开箱即用的交互功能。通过简单的导入即可使用:

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

function MyComponent() {
  return <Button>点击我</Button>;
}

按钮变体

Shadcn预设了多种视觉变体,通过variant属性控制:

  • default: 默认中性风格
  • destructive: 警示性操作(红色系)
  • outline: 线框风格
  • ghost: 无背景的极简风格
  • link: 文本链接样式
<Button variant="destructive">删除数据</Button>
<Button variant="outline">导出文件</Button>

尺寸控制

通过size属性调整按钮尺寸:

  • sm: 小尺寸(32px高度)
  • default: 默认尺寸(40px高度)
  • lg: 大尺寸(48px高度)
<Button size="sm">紧凑按钮</Button>
<Button size="lg">突出按钮</Button>

状态处理

  1. 禁用状态:添加disabled属性
    <Button disabled>不可操作</Button>
    
  2. 加载状态:配合loading状态使用
    <Button isLoading={true}>提交中...</Button>
    

图标集成

支持通过icon插槽添加SVG图标:

<Button>
  <DownloadIcon className="mr-2" />
  下载
</Button>

高级特性

  • 组合按钮:使用ButtonGroup容器
  • 全宽按钮:添加fullWidth属性
  • 自定义事件:标准React事件绑定

最佳实践

  1. 主操作按钮使用variant="default"
  2. 次要操作使用outline变体
  3. 危险操作必须使用destructive
  4. 避免在同一视图中使用超过3种变体
Last Updated:: 7/25/25, 8:08 PM