Button
<div class="flex flex-wrap items-center justify-center gap-3">
<wc-shadcn-button>Default</wc-shadcn-button>
<wc-shadcn-button variant="secondary">Secondary</wc-shadcn-button>
<wc-shadcn-button variant="outline">Outline</wc-shadcn-button>
<wc-shadcn-button variant="ghost">Ghost</wc-shadcn-button>
<wc-shadcn-button variant="destructive">Destructive</wc-shadcn-button>
<wc-shadcn-button variant="link">Link</wc-shadcn-button>
</div>import { ShadcnButton } from '../proto-ui/components/react';
export function DemoButtonVariantsDemo() {
return (
<div className="flex flex-wrap items-center justify-center gap-3">
<ShadcnButton>Default</ShadcnButton>
<ShadcnButton variant="secondary">Secondary</ShadcnButton>
<ShadcnButton variant="outline">Outline</ShadcnButton>
<ShadcnButton variant="ghost">Ghost</ShadcnButton>
<ShadcnButton variant="destructive">Destructive</ShadcnButton>
<ShadcnButton variant="link">Link</ShadcnButton>
</div>
);
}<script setup lang="ts">
import { ShadcnButton } from '../proto-ui/components/vue';
</script>
<template>
<div class="flex flex-wrap items-center justify-center gap-3">
<ShadcnButton>Default</ShadcnButton>
<ShadcnButton variant="secondary">Secondary</ShadcnButton>
<ShadcnButton variant="outline">Outline</ShadcnButton>
<ShadcnButton variant="ghost">Ghost</ShadcnButton>
<ShadcnButton variant="destructive">Destructive</ShadcnButton>
<ShadcnButton variant="link">Link</ShadcnButton>
</div>
</template>npx @proto.ui/cli@0.2.0-rc.0 add wc shadcn-button npx @proto.ui/cli@0.2.0-rc.0 add react shadcn-button npx @proto.ui/cli@0.2.0-rc.0 add vue shadcn-button default 默认
Section titled “default 默认”<div class="flex flex-wrap items-center gap-3">
<wc-shadcn-button>Default</wc-shadcn-button>
</div>import { ShadcnButton } from '../proto-ui/components/react';
export function DemoButtonDefaultDemo() {
return (
<div className="flex flex-wrap items-center gap-3">
<ShadcnButton>Default</ShadcnButton>
</div>
);
}<script setup lang="ts">
import { ShadcnButton } from '../proto-ui/components/vue';
</script>
<template>
<div class="flex flex-wrap items-center gap-3">
<ShadcnButton>Default</ShadcnButton>
</div>
</template>secondary 次要
Section titled “secondary 次要”<div class="flex flex-wrap items-center gap-3">
<wc-shadcn-button variant="secondary">Secondary</wc-shadcn-button>
</div>import { ShadcnButton } from '../proto-ui/components/react';
export function DemoButtonSecondaryDemo() {
return (
<div className="flex flex-wrap items-center gap-3">
<ShadcnButton variant="secondary">Secondary</ShadcnButton>
</div>
);
}<script setup lang="ts">
import { ShadcnButton } from '../proto-ui/components/vue';
</script>
<template>
<div class="flex flex-wrap items-center gap-3">
<ShadcnButton variant="secondary">Secondary</ShadcnButton>
</div>
</template>outline 轮廓
Section titled “outline 轮廓”<div class="flex flex-wrap items-center gap-3">
<wc-shadcn-button variant="outline">Outline</wc-shadcn-button>
</div>import { ShadcnButton } from '../proto-ui/components/react';
export function DemoButtonOutlineDemo() {
return (
<div className="flex flex-wrap items-center gap-3">
<ShadcnButton variant="outline">Outline</ShadcnButton>
</div>
);
}<script setup lang="ts">
import { ShadcnButton } from '../proto-ui/components/vue';
</script>
<template>
<div class="flex flex-wrap items-center gap-3">
<ShadcnButton variant="outline">Outline</ShadcnButton>
</div>
</template>ghost 虚化
Section titled “ghost 虚化”<div class="flex flex-wrap items-center gap-3">
<wc-shadcn-button variant="ghost">Ghost</wc-shadcn-button>
</div>import { ShadcnButton } from '../proto-ui/components/react';
export function DemoButtonGhostDemo() {
return (
<div className="flex flex-wrap items-center gap-3">
<ShadcnButton variant="ghost">Ghost</ShadcnButton>
</div>
);
}<script setup lang="ts">
import { ShadcnButton } from '../proto-ui/components/vue';
</script>
<template>
<div class="flex flex-wrap items-center gap-3">
<ShadcnButton variant="ghost">Ghost</ShadcnButton>
</div>
</template>destructive 危险
Section titled “destructive 危险”<div class="flex flex-wrap items-center gap-3">
<wc-shadcn-button variant="destructive">Destructive</wc-shadcn-button>
</div>import { ShadcnButton } from '../proto-ui/components/react';
export function DemoButtonDestructiveDemo() {
return (
<div className="flex flex-wrap items-center gap-3">
<ShadcnButton variant="destructive">Destructive</ShadcnButton>
</div>
);
}<script setup lang="ts">
import { ShadcnButton } from '../proto-ui/components/vue';
</script>
<template>
<div class="flex flex-wrap items-center gap-3">
<ShadcnButton variant="destructive">Destructive</ShadcnButton>
</div>
</template>size 尺寸
Section titled “size 尺寸”<div class="flex flex-wrap items-center justify-center gap-3">
<wc-shadcn-button size="sm">Small</wc-shadcn-button>
<wc-shadcn-button>Default</wc-shadcn-button>
<wc-shadcn-button size="lg">Large</wc-shadcn-button>
<wc-shadcn-button size="icon" variant="outline">+</wc-shadcn-button>
</div>import { ShadcnButton } from '../proto-ui/components/react';
export function DemoButtonSizesDemo() {
return (
<div className="flex flex-wrap items-center justify-center gap-3">
<ShadcnButton size="sm">Small</ShadcnButton>
<ShadcnButton>Default</ShadcnButton>
<ShadcnButton size="lg">Large</ShadcnButton>
<ShadcnButton size="icon" variant="outline">
+
</ShadcnButton>
</div>
);
}<script setup lang="ts">
import { ShadcnButton } from '../proto-ui/components/vue';
</script>
<template>
<div class="flex flex-wrap items-center justify-center gap-3">
<ShadcnButton size="sm">Small</ShadcnButton>
<ShadcnButton>Default</ShadcnButton>
<ShadcnButton size="lg">Large</ShadcnButton>
<ShadcnButton size="icon" variant="outline">+</ShadcnButton>
</div>
</template>disabled 禁用
Section titled “disabled 禁用”<div class="flex flex-wrap items-center gap-3">
<wc-shadcn-button disabled>Disabled</wc-shadcn-button>
</div>import { ShadcnButton } from '../proto-ui/components/react';
export function DemoButtonDisabledDemo() {
return (
<div className="flex flex-wrap items-center gap-3">
<ShadcnButton disabled>Disabled</ShadcnButton>
</div>
);
}<script setup lang="ts">
import { ShadcnButton } from '../proto-ui/components/vue';
</script>
<template>
<div class="flex flex-wrap items-center gap-3">
<ShadcnButton disabled>Disabled</ShadcnButton>
</div>
</template>API 参考
Section titled “API 参考”| 字段 | 类型 | 默认值 |
|---|---|---|
variant | 'default'
|
'destructive'
|
'outline'
|
'secondary'
|
'ghost'
|
'link' | default |
size | 'default'
|
'sm'
|
'lg'
|
'icon' | default |
disabled | boolean | false |