enhanced-button
An enhanced version of the shadcn-button component
An enhanced version of the shadcn-button component
在 shadcn-button 基础上提供 10 种开箱即用的效果变体(如 Shine、Gooey、Gradient Slide Show)和 5 种尺寸,无需创建额外组件即可直接复用。
| 收费 | 免费开源,MIT协议 |
|---|---|
| 平台 | Web(React + Tailwind CSS) |
| 中文 | 文档为英文,无中文版 |
| 用途 | 为shadcn/ui按钮组件扩展动画效果与样式变体 |
enhanced-button 保留了 shadcn-button 的 variant(default/destructive/outline/secondary/ghost/link)与 size(default/sm/lg/icon)体系,额外增加 effect 属性,支持 expandIcon、ringHover、shine、shineHover、gooeyRight、gooeyLeft、underline、hoverUnderline、gradientSlideShow 共 10 种效果。所有效果通过 Tailwind CSS 类实现,不依赖额外 JS 运行时。
从 GitHub 仓库(jakobhoeg/enhanced-button)复制 src/components/ui/button.tsx 与 tailwind.config.ts 中的配置,粘贴到已有 shadcn/ui 项目中即可。无需安装额外依赖,所有效果依赖的 CSS 动画(如 animate-shine、animate-gradient-flow)已在 tailwind.config 中预设。
与 Element Plus 的 Button 相比,enhanced-button 专为 shadcn/ui 生态设计,不提供 type(primary/success/warning 等)语义色,而是复用 shadcn 的 variant 体系。Element Plus 按钮侧重于表单场景的 type/plain/round/circle 样式,而 enhanced-button 侧重 hover 动效与视觉反馈,且所有效果基于 Tailwind CSS 伪元素与 transition,无需 Vue 或额外 JS 库。
Q1:enhanced-button 是否兼容 shadcn/ui 的旧版本 button?
A1:兼容。enhanced-button 的 buttonVariants 在 shadcn 原有 variant/size 基础上新增 effect 字段,旧代码中未使用 effect 的按钮行为不变。
Q2:gradientSlideShow 效果需要自定义 CSS 变量吗?
A2:需要。该效果引用 --gradient-lime、--gradient-ocean、--gradient-wine、--gradient-rust 四个 CSS 变量,需在全局样式或 tailwind.config 中定义具体色值。
Q3:能否在 Next.js App Router 中使用 enhanced-button?
A3:可以。button.tsx 使用 'use client' 指令(因依赖 React state 与事件),在 App Router 中需确保 Button 组件在客户端组件中引用。
更多同类工具与网站,可在落地页组件分类继续挑选。
信息核实于 2026年7月,具体以官网为准。
评论
暂无评论