Skies.ui
元件 (Components)

Button 按鈕

Skies.ui Button:語意變體與尺寸、預設 type=button、焦點與無障礙;觸發器、asChild、API 與範例。

Button 按鈕

Button 以原生 <button> 為基礎,用 cva 管理 variantsize。預設 type="button",放在表單裡不會誤觸 submit。

預設用法

import { Button } from "@skies-ui/ui";

export function Example() {
  return (
    <>
      <Button>主要操作</Button>
      <Button variant="outline">次要操作</Button>
    </>
  );
}

變體(variant)

語意由 variant 表達;視覺與主題 token(primarydestructive 等)對齊。

<Button variant="default">default</Button>
<Button variant="secondary">secondary</Button>
<Button variant="destructive">destructive</Button>
<Button variant="outline">outline</Button>
<Button variant="ghost">ghost</Button>
<Button variant="link">link</Button>

尺寸(size)

import { Plus } from "lucide-react";
import { Button } from "@skies-ui/ui";

<Button size="sm">Small</Button>
<Button size="default">Default</Button>
<Button size="lg">Large</Button>
<Button size="icon" aria-label="新增">
  <Plus />
</Button>

size="icon" 時請務必加上 aria-label(或 title)描述用途,符合無障礙。

停用與表單

<Button disabled>停用</Button>
<Button type="submit">送出</Button>

與 Card 搭配

卡片底部操作列請搭配 Card.Actions,次要動作常用 outline、主要動作 default。詳見 Card

API 摘要

項目說明
variantdefault | secondary | destructive | outline | ghost | link
sizedefaulttext-sm)| smtext-xs)| lgtext-base)| icon
type預設 button;表單送出請設 submit
className傳入額外 class,會與 buttonVariants 合併(tailwind-merge 經由 cn

進階樣式可從套件匯出 buttonVariants,在非 <button> 節點上重用同一套語意(例如 asChild 模式可日後擴充)。

On this page