Browse Components
Progress
Compact, labeled bars with native meters.
Theme color
The selected accent fills each bar. A neutral track shows the shared scale.
View Code
<figure class="stack">
<figcaption>
Example weekly signups
</figcaption>
<dl class="bar-chart">
<div>
<dt>
Mon
</dt>
<dd>
<meter min="0" max="100" value="42" aria-label="Mon: 42 signups">
42 of 100
</meter>
</dd>
<dd>
42
</dd>
</div>
<div>
<dt>
Tue
</dt>
<dd>
<meter min="0" max="100" value="68" aria-label="Tue: 68 signups">
68 of 100
</meter>
</dd>
<dd>
68
</dd>
</div>
<div>
<dt>
Wed
</dt>
<dd>
<meter min="0" max="100" value="55" aria-label="Wed: 55 signups">
55 of 100
</meter>
</dd>
<dd>
55
</dd>
</div>
<div>
<dt>
Thu
</dt>
<dd>
<meter min="0" max="100" value="91" aria-label="Thu: 91 signups">
91 of 100
</meter>
</dd>
<dd>
91
</dd>
</div>
</dl>
</figure>Status colors
Use color to reinforce visible status labels, never as the only way to tell them apart.
View Code
<figure class="stack">
<figcaption>
Review progress
</figcaption>
<dl class="bar-chart">
<div style="--bar-color:#26845b">
<dt>
Approved
</dt>
<dd>
<meter min="0" max="100" value="80" aria-label="Approved: 80 percent">
80%
</meter>
</dd>
<dd>
80%
</dd>
</div>
<div style="--bar-color:#b98118">
<dt>
Pending
</dt>
<dd>
<meter min="0" max="100" value="45" aria-label="Pending: 45 percent">
45%
</meter>
</dd>
<dd>
45%
</dd>
</div>
<div style="--bar-color:#c44859">
<dt>
Blocked
</dt>
<dd>
<meter min="0" max="100" value="15" aria-label="Blocked: 15 percent">
15%
</meter>
</dd>
<dd>
15%
</dd>
</div>
</dl>
</figure>Category colors
Set --bar-color on each row for distinct categories. Keep labels and a common scale.
View Code
<figure class="stack">
<figcaption>
Storage by team
</figcaption>
<dl class="bar-chart">
<div style="--bar-color:var(--accent)">
<dt>
Design
</dt>
<dd>
<meter min="0" max="100" value="70" aria-label="Design: 70 percent">
70%
</meter>
</dd>
<dd>
70%
</dd>
</div>
<div style="--bar-color:color-mix(in srgb,var(--accent) 65%,var(--ink))">
<dt>
Product
</dt>
<dd>
<meter min="0" max="100" value="55" aria-label="Product: 55 percent">
55%
</meter>
</dd>
<dd>
55%
</dd>
</div>
<div style="--bar-color:var(--muted)">
<dt>
Support
</dt>
<dd>
<meter min="0" max="100" value="35" aria-label="Support: 35 percent">
35%
</meter>
</dd>
<dd>
35%
</dd>
</div>
</dl>
</figure>Installation
Download these files into the matching paths in your project, or use Create to assemble a kit. Include each dependency once. Do not also load app.css.
<link rel="stylesheet" href="/library/assets/base.css">
<link rel="stylesheet" href="/library/assets/chart.css">8,988 bytes CSS including base · 0 bytes runtime JavaScript
Usage
Choose a fill
Bars use the theme accent by default. Set --bar-color on the chart or a row for another color. Keep visible labels and values; color must not carry meaning alone.
Show a small comparison
Use these bars for a small set of nonnegative values. Give every meter the same maximum.
Keep values readable
Show a label and number for each bar, with an accessible name. This is a compact summary, not a full charting engine.
Building with AI? The AI Manifest has these notes and the full contract. See the AI Guide.