Preview Updated 2026-05-10

100% stacked bar

Horizontal 100% stacked bar — well suited to share-of-total breakdowns.

Basic usage

Data is passed via props and rendered as pure SVG, with no third-party charting dependency. Colors are drawn from the --viz-1..8 tokens and are colorblind-friendly.

背景
<script setup lang="ts">
import { CfStackedBar100 } from '@chufix-design/vue';
const segments = [
  { name: 'Chrome', value: 65 },
  { name: 'Safari', value: 18 },
  { name: 'Firefox', value: 9 },
  { name: 'Edge', value: 5 },
  { name: 'Other', value: 3 },
];
</script>

<template>
  <CfStackedBar100 :segments="segments" />
</template>
<CfStackedBar100 ... />

Trend comparison

Stacking bars from multiple years makes share migration easy to read.

背景
2024 浏览器份额
2025 浏览器份额
<script setup lang="ts">
import { CfStackedBar100 } from '@chufix-design/vue';
const browsers2024 = [
  { name: 'Chrome', value: 65 },
  { name: 'Safari', value: 18 },
  { name: 'Firefox', value: 9 },
  { name: 'Edge', value: 5 },
  { name: 'Other', value: 3 },
];
const browsers2025 = [
  { name: 'Chrome', value: 62 },
  { name: 'Safari', value: 20 },
  { name: 'Firefox', value: 7 },
  { name: 'Edge', value: 8 },
  { name: 'Other', value: 3 },
];
</script>

<template>
  <div style="display: flex; flex-direction: column; gap: 14px;">
    <div>
      <div style="font-size: 12px; color: var(--fg-2); margin-bottom: 4px;">2024 浏览器份额</div>
      <CfStackedBar100 :segments="browsers2024" />
    </div>
    <div>
      <div style="font-size: 12px; color: var(--fg-2); margin-bottom: 4px;">2025 浏览器份额</div>
      <CfStackedBar100 :segments="browsers2025" />
    </div>
  </div>
</template>
<CfStackedBar100 segments={seg2024} />
<CfStackedBar100 segments={seg2025} />

API

PropTypeDefaultDescription
segmentsStackedBar100Series[]{ name, value, colorIndex? }[]
heightnumber24
showLegendbooleantrue

反馈与讨论

100% stacked bar · Discussion

0
0 / 600
一键发送
正在加载评论...