卡片 Card

通用卡片容器。

组件特性

  • 🎨 多种变体:支持 defaultoutlinefilled 视觉变体。
  • 📏 多种尺寸:支持 smmdlg 尺寸规格。
  • 🔲 多种形状:支持 roundedsquarecircle 形状。
  • 📦 阴影样式:支持 nonesmbasemdlgxl 阴影样式。
  • 交互状态:支持悬停、激活和选中状态。
  • 🎨 主题定制:基于 BrConfigProvider 支持全局主题配置和 TailwindCSS 局部覆盖。

基础用法

<script setup lang="ts">
import { 
  BrCard, 
  BrCardHeader, 
  BrCardTitle, 
  BrCardDescription, 
  BrCardContent, 
  BrCardFooter, 
  BrButton,
  BrInput,
  BrLabel
} from '@breeze-ui/vue'
</script>

<template>
  <BrCard class="w-[350px]">
    <BrCardHeader>
      <BrCardTitle>Create project</BrCardTitle>
      <BrCardDescription>Deploy your new project in one-click.</BrCardDescription>
    </BrCardHeader>
    <BrCardContent>
      <form>
        <div class="grid w-full items-center gap-4">
          <div class="flex flex-col space-y-1.5">
            <BrLabel html-for="name">Name</BrLabel>
            <BrInput id="name" placeholder="Name of your project" />
          </div>
        </div>
      </form>
    </BrCardContent>
    <BrCardFooter class="flex justify-between">
      <BrButton variant="outline">Cancel</BrButton>
      <BrButton>Deploy</BrButton>
    </BrCardFooter>
  </BrCard>
</template>

样式变体

variant 属性控制卡片的样式风格。

<script setup lang="ts">
import { BrCard, BrCardContent, BrCardHeader, BrCardTitle } from '@breeze-ui/vue'
</script>

<template>
  <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
    <BrCard>
      <BrCardHeader>
        <BrCardTitle>Default</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>
        Standard card with border and shadow.
      </BrCardContent>
    </BrCard>

    <BrCard variant="outline">
      <BrCardHeader>
        <BrCardTitle>Outline</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>
        Card with a thicker border and no shadow.
      </BrCardContent>
    </BrCard>

    <BrCard variant="ghost">
      <BrCardHeader>
        <BrCardTitle>Ghost</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>
        Card with no border and no shadow.
      </BrCardContent>
    </BrCard>

    <BrCard variant="secondary">
      <BrCardHeader>
        <BrCardTitle>Secondary</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>
        Card with secondary background color.
      </BrCardContent>
    </BrCard>
  </div>
</template>

尺寸

size 属性控制卡片的内边距和字体大小。

<script setup lang="ts">
import { BrCard, BrCardContent, BrCardHeader, BrCardTitle } from '@breeze-ui/vue'
</script>

<template>
  <div class="flex flex-col gap-4">
    <BrCard size="xs" class="w-full max-w-sm">
      <BrCardHeader>
        <BrCardTitle>Size: XS</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>Extra small padding and text size.</BrCardContent>
    </BrCard>

    <BrCard size="sm" class="w-full max-w-sm">
      <BrCardHeader>
        <BrCardTitle>Size: SM</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>Small padding and text size.</BrCardContent>
    </BrCard>

    <BrCard size="md" class="w-full max-w-sm">
      <BrCardHeader>
        <BrCardTitle>Size: MD (Default)</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>Medium padding and text size.</BrCardContent>
    </BrCard>

    <BrCard size="lg" class="w-full max-w-sm">
      <BrCardHeader>
        <BrCardTitle>Size: LG</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>Large padding and text size.</BrCardContent>
    </BrCard>

    <BrCard size="xl" class="w-full max-w-sm">
      <BrCardHeader>
        <BrCardTitle>Size: XL</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>Extra large padding and text size.</BrCardContent>
    </BrCard>

    <BrCard size="2xl" class="w-full max-w-sm">
      <BrCardHeader>
        <BrCardTitle>Size: 2XL</BrCardTitle>
      </BrCardHeader>
      <BrCardContent>2X large padding and text size.</BrCardContent>
    </BrCard>
  </div>
</template>

交互状态

卡片支持悬停、点击和加载状态。

<script setup lang="ts">
import { BrCard, BrCardContent } from '@breeze-ui/vue'
</script>

<template>
  <div class="flex gap-4 flex-wrap">
    <BrCard hoverable class="w-[200px] cursor-pointer">
      <BrCardContent class="flex items-center justify-center h-[100px]">
        Hoverable Card
      </BrCardContent>
    </BrCard>

    <BrCard clickable class="w-[200px]">
      <BrCardContent class="flex items-center justify-center h-[100px]">
        Clickable Card
      </BrCardContent>
    </BrCard>

    <BrCard loading class="w-[200px]">
      <BrCardContent class="flex items-center justify-center h-[100px]">
        Loading Card
      </BrCardContent>
    </BrCard>
  </div>
</template>

API

BrCard

Props

属性名类型默认值说明
asstring'div'渲染的 HTML 标签或组件。
sizestring'default'尺寸变体:xs, sm, md, lg, xl, 2xl
shapestring'rounded'形状变体:rounded, square, circle
shadowstring'sm'阴影变体:none, sm, md, lg
variantstring'default'样式变体:default, outline, ghost, secondary
hoverablebooleanfalse是否开启悬停效果。
clickablebooleanfalse是否开启点击效果。
loadingbooleanfalse是否处于加载状态。
disabledbooleanfalse是否禁用。

BrCardHeader

Props

属性名类型默认值说明
asstring'div'渲染的 HTML 标签或组件。

BrCardTitle

Props

属性名类型默认值说明
asstring'h3'渲染的 HTML 标签或组件。

BrCardDescription

Props

属性名类型默认值说明
asstring'p'渲染的 HTML 标签或组件。

BrCardContent

Props

属性名类型默认值说明
asstring'div'渲染的 HTML 标签或组件。

BrCardFooter

Props

属性名类型默认值说明
asstring'div'渲染的 HTML 标签或组件。