Button

用于保存、打开对话框或改变状态等操作。跳转到其他页面时使用链接。

预览

样式与尺寸

比较 primary、soft、ghost、destructive,以及小号、大号、图标和禁用按钮。

安装

首次使用此 Registry?请先完成 基础配置与共享样式安装 。

npx shadcn@latest add @neumorphism-ui/button

先安装一次共享 base,然后使用 CLI 添加组件及其依赖。

Registry JSON

用法

先提供明确的文字,再通过 variant 选择强调程度、size 选择尺寸。表单内明确指定 type,仅有图标的按钮也需提供可访问名称。

"use client";

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

export default function Example() {
  const [saved, setSaved] = useState(false);
  return (
    <div>
      <Button variant="primary" onClick={() => setSaved(true)}>Save changes</Button>
      <p role="status">{saved ? "Changes saved." : "Unsaved changes."}</p>
    </div>
  );
}

API 参考

使用原生 button,保留表单与键盘行为。提供五种 variant 和四种 size,active 状态通过 inset shadow 表现按下效果。

组件属性类型默认值说明
Buttonvariant"default" | "primary" | "soft" | "ghost" | "destructive""default"选择按钮的语义和表面强调方式。
Buttonsize"sm" | "default" | "lg" | "icon""default"选择按钮高度和水平内边距。
Buttontype"button" | "submit" | "reset""button"决定原生按钮的行为。
Buttondisabledbooleanfalse禁用点击和键盘操作。

无障碍

  • 01

    由于使用原生 button,会保留 Space、Enter 键行为以及 disabled 语义。

  • 02

    icon 尺寸的按钮必须提供描述操作的 aria-label。

  • 03

    页面跳转应使用语义正确的 anchor 或 Link,不要用 Button 的点击处理器代替。