Chart

Bar, donut, pie, and line/area charts with neumorphic styling.

Vertical Bar

Monthly Revenue

Revenue by month in thousands

Jan
Feb
Mar
Apr
May
Jun
<div class="sui-chart">
  <p class="sui-chart-title">Monthly Revenue</p>
  <p class="sui-chart-subtitle">Revenue by month in thousands</p>
  <div class="sui-chart-bars" style="height:220px;">
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="65" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Jan</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="80" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Feb</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="45" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Mar</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="90" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Apr</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="72" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">May</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="55" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Jun</span>
    </div>
  </div>
</div>

Bar with Axes

Monthly Users

1000 750 500 250 0
Jan
Feb
Mar
Apr
May
Jun
<div class="sui-chart">
  <p class="sui-chart-title">Monthly Users</p>
  <div class="sui-chart-axis-wrap" style="height:220px;">
    <div class="sui-chart-y-labels">
      <span>1000</span>
      <span>750</span>
      <span>500</span>
      <span>250</span>
      <span>0</span>
    </div>
    <div class="sui-chart-axis-area">
      <div class="sui-chart-grid">
        <div class="sui-chart-grid-line"></div>
        <div class="sui-chart-grid-line"></div>
        <div class="sui-chart-grid-line"></div>
        <div class="sui-chart-grid-line"></div>
        <div class="sui-chart-grid-line"></div>
      </div>
      <div class="sui-chart-bars">
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-track">
            <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="650" data-max="1000"></div>
          </div>
          <span class="sui-chart-bar-label">Jan</span>
        </div>
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-track">
            <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="820" data-max="1000"></div>
          </div>
          <span class="sui-chart-bar-label">Feb</span>
        </div>
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-track">
            <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="480" data-max="1000"></div>
          </div>
          <span class="sui-chart-bar-label">Mar</span>
        </div>
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-track">
            <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="930" data-max="1000"></div>
          </div>
          <span class="sui-chart-bar-label">Apr</span>
        </div>
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-track">
            <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="710" data-max="1000"></div>
          </div>
          <span class="sui-chart-bar-label">May</span>
        </div>
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-track">
            <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="560" data-max="1000"></div>
          </div>
          <span class="sui-chart-bar-label">Jun</span>
        </div>
      </div>
    </div>
  </div>
</div>

Horizontal Bar

Browser Usage

Chrome
65%
Safari
19%
Firefox
8%
Edge
5%
Other
3%
<div class="sui-chart">
  <p class="sui-chart-title">Browser Usage</p>
  <div class="sui-chart-bars sui-chart-bars-horizontal">
    <div class="sui-chart-bar-row">
      <span class="sui-chart-bar-label">Chrome</span>
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="65" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-value">65%</span>
    </div>
    <div class="sui-chart-bar-row">
      <span class="sui-chart-bar-label">Safari</span>
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="19" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-value">19%</span>
    </div>
    <div class="sui-chart-bar-row">
      <span class="sui-chart-bar-label">Firefox</span>
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-warning" data-value="8" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-value">8%</span>
    </div>
    <div class="sui-chart-bar-row">
      <span class="sui-chart-bar-label">Edge</span>
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-info" data-value="5" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-value">5%</span>
    </div>
    <div class="sui-chart-bar-row">
      <span class="sui-chart-bar-label">Other</span>
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-muted" data-value="3" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-value">3%</span>
    </div>
  </div>
</div>

Stacked Bar

Quarterly Sales

Product A vs Product B

Q1
Q2
Q3
Q4
Product A Product B
<div class="sui-chart">
  <p class="sui-chart-title">Quarterly Sales</p>
  <p class="sui-chart-subtitle">Product A vs Product B</p>
  <div class="sui-chart-bars" style="height:220px;">
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track sui-chart-bar-track-stacked" data-max="100">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="40"></div>
        <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="25"></div>
      </div>
      <span class="sui-chart-bar-label">Q1</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track sui-chart-bar-track-stacked" data-max="100">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="55"></div>
        <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="30"></div>
      </div>
      <span class="sui-chart-bar-label">Q2</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track sui-chart-bar-track-stacked" data-max="100">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="35"></div>
        <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="45"></div>
      </div>
      <span class="sui-chart-bar-label">Q3</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track sui-chart-bar-track-stacked" data-max="100">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="60"></div>
        <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="35"></div>
      </div>
      <span class="sui-chart-bar-label">Q4</span>
    </div>
  </div>
  <div class="sui-chart-legend">
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-primary);"></span> Product A</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-success);"></span> Product B</span>
  </div>
</div>

Grouped Bar

Revenue vs Expenses

Quarterly comparison

$50k $37k $25k $12k $0
Q1
Q2
Q3
Q4
Revenue Expenses
<div class="sui-chart">
  <p class="sui-chart-title">Revenue vs Expenses</p>
  <div class="sui-chart-axis-wrap" style="height:220px;">
    <div class="sui-chart-y-labels">
      <span>$50k</span>
      <span>$37k</span>
      <span>$25k</span>
      <span>$12k</span>
      <span>$0</span>
    </div>
    <div class="sui-chart-axis-area">
      <div class="sui-chart-grid">
        <div class="sui-chart-grid-line"></div>
        <div class="sui-chart-grid-line"></div>
        <div class="sui-chart-grid-line"></div>
        <div class="sui-chart-grid-line"></div>
        <div class="sui-chart-grid-line"></div>
      </div>
      <div class="sui-chart-bars">
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-group">
            <div class="sui-chart-bar-track">
              <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="38" data-max="50"></div>
            </div>
            <div class="sui-chart-bar-track">
              <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="22" data-max="50"></div>
            </div>
          </div>
          <span class="sui-chart-bar-label">Q1</span>
        </div>
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-group">
            <div class="sui-chart-bar-track">
              <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="45" data-max="50"></div>
            </div>
            <div class="sui-chart-bar-track">
              <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="28" data-max="50"></div>
            </div>
          </div>
          <span class="sui-chart-bar-label">Q2</span>
        </div>
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-group">
            <div class="sui-chart-bar-track">
              <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="32" data-max="50"></div>
            </div>
            <div class="sui-chart-bar-track">
              <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="30" data-max="50"></div>
            </div>
          </div>
          <span class="sui-chart-bar-label">Q3</span>
        </div>
        <div class="sui-chart-bar-col">
          <div class="sui-chart-bar-group">
            <div class="sui-chart-bar-track">
              <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="48" data-max="50"></div>
            </div>
            <div class="sui-chart-bar-track">
              <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="35" data-max="50"></div>
            </div>
          </div>
          <span class="sui-chart-bar-label">Q4</span>
        </div>
      </div>
    </div>
  </div>
  <div class="sui-chart-legend">
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-primary);"></span> Revenue</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-success);"></span> Expenses</span>
  </div>
</div>

Donut

Storage Used

72% Used

Traffic Sources

4 Sources
Direct Organic Referral Social
<!-- Simple donut -->
<div class="sui-chart" style="align-items:center;">
  <p class="sui-chart-title">Storage Used</p>
  <div class="sui-chart-donut-wrap">
    <div class="sui-chart-donut" data-segments='[{"value":72,"color":"var(--sui-primary)"},{"value":28,"color":"var(--sui-bg-dark)"}]'>
      <div class="sui-chart-donut-hole">
        <span class="sui-chart-donut-hole-value">72%</span>
        <span class="sui-chart-donut-hole-label">Used</span>
      </div>
    </div>
  </div>
</div>

<!-- Multi-segment donut with legend -->
<div class="sui-chart" style="align-items:center;">
  <p class="sui-chart-title">Traffic Sources</p>
  <div class="sui-chart-donut-wrap">
    <div class="sui-chart-donut" data-segments='[{"value":45,"color":"var(--sui-primary)"},{"value":25,"color":"var(--sui-success)"},{"value":18,"color":"var(--sui-warning)"},{"value":12,"color":"#3b82f6"}]'>
      <div class="sui-chart-donut-hole">
        <span class="sui-chart-donut-hole-value">4</span>
        <span class="sui-chart-donut-hole-label">Sources</span>
      </div>
    </div>
  </div>
  <div class="sui-chart-legend">
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-primary);"></span> Direct</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-success);"></span> Organic</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-warning);"></span> Referral</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:#3b82f6;"></span> Social</span>
  </div>
</div>

Pie

Market Share

Us 40% Them 30% Others 20% New 10%
<div class="sui-chart" style="align-items:center;">
  <p class="sui-chart-title">Market Share</p>
  <div class="sui-chart-donut-wrap">
    <div class="sui-chart-donut sui-chart-pie" data-segments='[{"value":40,"color":"var(--sui-primary)"},{"value":30,"color":"var(--sui-success)"},{"value":20,"color":"var(--sui-warning)"},{"value":10,"color":"var(--sui-danger)"}]'>
      <div class="sui-chart-donut-hole"></div>
    </div>
  </div>
  <div class="sui-chart-legend">
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-primary);"></span> Us 40%</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-success);"></span> Them 30%</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-warning);"></span> Others 20%</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-danger);"></span> New 10%</span>
  </div>
</div>

Line

Weekly Active Users

800 600 400 200 Mon Tue Wed Thu Fri Sat
<div class="sui-chart">
  <p class="sui-chart-title">Weekly Active Users</p>
  <div class="sui-chart-line-wrap">
    <svg viewBox="0 0 500 200" preserveAspectRatio="xMidYMid meet">
      <line class="chart-grid-line" x1="50" y1="20" x2="480" y2="20"/>
      <line class="chart-grid-line" x1="50" y1="65" x2="480" y2="65"/>
      <line class="chart-grid-line" x1="50" y1="110" x2="480" y2="110"/>
      <line class="chart-grid-line" x1="50" y1="155" x2="480" y2="155"/>
      <text class="chart-axis-label" x="45" y="24" text-anchor="end">800</text>
      <text class="chart-axis-label" x="45" y="69" text-anchor="end">600</text>
      <text class="chart-axis-label" x="45" y="114" text-anchor="end">400</text>
      <text class="chart-axis-label" x="45" y="159" text-anchor="end">200</text>
      <text class="chart-axis-label" x="80" y="180" text-anchor="middle">Mon</text>
      <text class="chart-axis-label" x="150" y="180" text-anchor="middle">Tue</text>
      <text class="chart-axis-label" x="220" y="180" text-anchor="middle">Wed</text>
      <text class="chart-axis-label" x="290" y="180" text-anchor="middle">Thu</text>
      <text class="chart-axis-label" x="360" y="180" text-anchor="middle">Fri</text>
      <text class="chart-axis-label" x="430" y="180" text-anchor="middle">Sat</text>
      <polyline class="chart-line" points="80,110 150,65 220,88 290,42 360,55 430,25"/>
      <circle class="chart-dot" cx="80" cy="110" r="4" data-value="400"/>
      <circle class="chart-dot" cx="150" cy="65" r="4" data-value="600"/>
      <circle class="chart-dot" cx="220" cy="88" r="4" data-value="490"/>
      <circle class="chart-dot" cx="290" cy="42" r="4" data-value="710"/>
      <circle class="chart-dot" cx="360" cy="55" r="4" data-value="650"/>
      <circle class="chart-dot" cx="430" cy="25" r="4" data-value="780"/>
    </svg>
  </div>
</div>

Area

Revenue Trend

$40k $30k $20k $10k Jan Feb Mar Apr May Jun
<div class="sui-chart">
  <p class="sui-chart-title">Revenue Trend</p>
  <div class="sui-chart-line-wrap">
    <svg viewBox="0 0 500 200" preserveAspectRatio="xMidYMid meet">
      <line class="chart-grid-line" x1="50" y1="20" x2="480" y2="20"/>
      <line class="chart-grid-line" x1="50" y1="65" x2="480" y2="65"/>
      <line class="chart-grid-line" x1="50" y1="110" x2="480" y2="110"/>
      <line class="chart-grid-line" x1="50" y1="155" x2="480" y2="155"/>
      <text class="chart-axis-label" x="45" y="24" text-anchor="end">$40k</text>
      <text class="chart-axis-label" x="45" y="69" text-anchor="end">$30k</text>
      <text class="chart-axis-label" x="45" y="114" text-anchor="end">$20k</text>
      <text class="chart-axis-label" x="45" y="159" text-anchor="end">$10k</text>
      <text class="chart-axis-label" x="80" y="180" text-anchor="middle">Jan</text>
      <text class="chart-axis-label" x="150" y="180" text-anchor="middle">Feb</text>
      <text class="chart-axis-label" x="220" y="180" text-anchor="middle">Mar</text>
      <text class="chart-axis-label" x="290" y="180" text-anchor="middle">Apr</text>
      <text class="chart-axis-label" x="360" y="180" text-anchor="middle">May</text>
      <text class="chart-axis-label" x="430" y="180" text-anchor="middle">Jun</text>
      <polygon class="chart-area" points="80,130 150,95 220,110 290,55 360,40 430,20 430,165 80,165" fill="var(--sui-primary)"/>
      <polyline class="chart-line" points="80,130 150,95 220,110 290,55 360,40 430,20"/>
      <circle class="chart-dot" cx="80" cy="130" r="4" data-value="$15k"/>
      <circle class="chart-dot" cx="150" cy="95" r="4" data-value="$22k"/>
      <circle class="chart-dot" cx="220" cy="110" r="4" data-value="$18k"/>
      <circle class="chart-dot" cx="290" cy="55" r="4" data-value="$32k"/>
      <circle class="chart-dot" cx="360" cy="40" r="4" data-value="$36k"/>
      <circle class="chart-dot" cx="430" cy="20" r="4" data-value="$42k"/>
    </svg>
  </div>
</div>

Colors & Legend

Department Budget

Eng
Design
Mktg
Sales
Ops
Engineering Design Marketing Sales Operations
<div class="sui-chart">
  <p class="sui-chart-title">Department Budget</p>
  <div class="sui-chart-bars" style="height:180px;">
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-primary" data-value="85" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Eng</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-success" data-value="62" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Design</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-warning" data-value="45" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Mktg</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-danger" data-value="30" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Sales</span>
    </div>
    <div class="sui-chart-bar-col">
      <div class="sui-chart-bar-track">
        <div class="sui-chart-bar-fill sui-chart-bar-info" data-value="55" data-max="100"></div>
      </div>
      <span class="sui-chart-bar-label">Ops</span>
    </div>
  </div>
  <div class="sui-chart-legend">
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-primary);"></span> Engineering</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-success);"></span> Design</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-warning);"></span> Marketing</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:var(--sui-danger);"></span> Sales</span>
    <span class="sui-chart-legend-item"><span class="sui-chart-legend-dot" style="background:#3b82f6;"></span> Operations</span>
  </div>
</div>

Delete this item?

This action cannot be undone. This will permanently delete the item and remove all associated data.