Line Chart

An SVG <polyline> per series inside a .casca-line, stretched edge-to-edge with preserveAspectRatio="none" and a non-scaling stroke. Each line's color comes from --color; multiple <polyline>s auto-cycle the palette. Line-only by default (markers distort under the stretch). For an interactive no-JS series toggle, see series-toggle.html.

Single series

Website Traffic
Visitors per month
Website traffic — visitors per month
MonthVisitors
Jan2,000
Feb3,500
Mar2,800
Apr4,200
May3,900
Jun5,000

Multi-series

Product Comparison
Sales over 6 months
Product sales comparison over six months
MonthProduct AProduct BProduct C
Jan3,0002,5002,000
Feb3,2002,7002,300
Mar2,9003,0002,500
Apr3,5003,2002,800
May3,8003,1003,200
Jun4,0003,4003,500
Product A
Product B
Product C

Markup

<div class="casca">
  <div class="casca-title">Website Traffic</div>
  <table class="casca-data"><!-- accessible rows --></table>

  <div class="casca-line" aria-hidden="true">
    <svg viewBox="0 0 100 100" class="casca-line-svg" preserveAspectRatio="none">
      <!-- one <polyline> per series; extra series auto-cycle the palette -->
      <polyline points="0,80 20,65 40,72 60,58 80,61 100,50"
                style="--color: var(--casca-color-1)" />
    </svg>
    <div class="casca-line-labels">
      <span class="casca-line-label">Jan</span> <!-- ... -->
    </div>
  </div>
</div>