Theme Domain

NM Charts

24+ chart types · Zero dependency · Canvas 2D · Dark mode

Get Started Licence & Tarifs

Gratuit pour usage personnel · Usage commercial sur devis

Quick Install npm i @malinconico/nmcharts
<!-- From npm CDN -->
<script src="https://cdn.jsdelivr.net/npm/@malinconico/nmcharts@3.0.0/nmcharts.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@malinconico/nmcharts@3.0.0/nmcharts-categories.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@malinconico/nmcharts@3.0.0/nmcharts-extras.min.js"></script>

<!-- Or self-hosted -->
<script src="https://nmcharts.malinconico.lu/nmcharts.js"></script>
<script src="https://nmcharts.malinconico.lu/nmcharts-categories.js"></script>
<script src="https://nmcharts.malinconico.lu/nmcharts-extras.js"></script>
Pinned version (recommended for production)
npm install @malinconico/nmcharts

Tip: Use @latest for dev, pin version (e.g. @2.5.0) for production to avoid breaking changes.

Why NM Charts?

Built for developers who value simplicity, performance, and beautiful defaults

Zero Dependencies No jQuery, no D3, no React. Just drop the script tag and go. Under 30 KB gzipped for the full library.
Canvas 2D Rendering Hardware-accelerated Canvas 2D for silky 60fps animations and smooth interactions even with large datasets.
24+ Chart Types From time series to radar, waterfall to bullet charts. Everything you need in one lightweight package.
Beautiful by Default Gradients, shadows, smooth animations, and a modern color palette. No CSS tweaking needed.
Framework Agnostic Works with vanilla JS, Angular, React, Vue, or any framework. Just pass a DOM element or CSS selector.
Free for Personal Use Gratuit pour les projets personnels. Aucun watermark. Usage commercial sur devis.

Getting Started

Add NM Charts to your project in seconds

<!-- 1. Add script tags -->
<script src="https://cdn.jsdelivr.net/gh/malinconico/maquette@latest/demo/nmcharts.js"></script>
<script src="https://cdn.jsdelivr.net/gh/malinconico/maquette@latest/demo/nmcharts-categories.js"></script>

<!-- 2. Add a container -->
<div id="myChart"></div>

<!-- 3. Create your first chart -->
<script>
  NMCharts.create('#myChart', {
    title: 'My First Chart',
    series: [{
      name: 'Sales',
      type: 'area',
      color: '#4f46e5',
      data: [[1704067200000, 42], [1704153600000, 58], ...]
    }]
  });
</script>

Code Playground

Edit the config JSON and click Run to see your chart live

Performance

Designed to be tiny, fast, and self-contained

< 30 KB
Gzipped total size (core + categories)
24+
Chart types included
60 FPS
Smooth Canvas 2D animations
0
External dependencies

Compatibility

Use NM Charts with your favorite framework

Vanilla JS
Compatible
Angular
Compatible
React
Coming Soon
Vue
Coming Soon
Svelte
Coming Soon

Live Chart Demos

Interactive examples for every chart type. Try zooming, panning, and toggling series.

Time Series

Example 1 — Mixed Area + Line

Example 2 — Line Chart

Example 3 — Minimal Area

Example 4 — Line + Threshold Corridor (Upper / Lower)

Category Charts

Example 5 — Bar Chart (Horizontal)

Example 6 — Column Chart (Vertical)

Example 7 — Bar Stacked

Example 8 — Lollipop

Example 9 — Line + Lollipop Combo

Composite

Example 10 — LineBar (Bar + Line Overlay)

Example 11 — Waterfall

Example 12 — Bullet

Example 13 — Timeline / Progress Bar

Specialized

Example 14 — Donut Chart

Example 15 — Gauge

Example 16 — Heatmap

Example 17 — Radar / Spider

Example 18 — Treemap

Example 19 — Funnel

Example 20 — Polar / Rose (Nightingale)

Example 21 — Scatter / Bubble

Example 22 — Sankey Diagram

Example 23 — Boxplot

Example 24 — EOD Completion + MEP (LineBar with annotations & zoom/pan)

Example 25 — Sparklines (inline mini charts for tables)

Service Trend (30d) Volume Current

Example 26 — Crossfilter (click a bar to highlight across linked charts)

Example 27 — Booking Timeline (Airbnb / Booking style)

Features

24+ chart typesArea, line, bar, column, stacked, lollipop, combo, donut, gauge, radar, heatmap, treemap, funnel, polar, scatter, sankey, boxplot, waterfall, bullet, timeline…
Zoom, pan & navigateDrag-to-zoom, scroll-zoom, shift+drag pan, minimap navigator, keyboard & touch
AnnotationsThreshold lines, bands, vertical markers & point markers on any chart
Live dataappendData() streaming, updateData() batch, LTTB downsampling for 10k+ points
Themes & dark mode5 built-in palettes + CSS custom properties, one-click dark toggle
ExportPNG & SVG download, fullscreen mode, responsive auto-resize
Rich tooltipsCrosshair, hover dots, backdrop blur, accent color bar, formatted values
AnimationsEase-out cubic entry, spring-back (easeOutBack), smooth transitions
AccessibilityARIA labels, keyboard navigation, hidden data tables, colorblind palette
Dual-axis & compositesLineBar, waterfall, bullet, combo — mix series types on shared or dual axes
Zero dependenciesPure Canvas 2D, no frameworks, ~45 KB min. Works with Angular, React, Vue or vanilla
Gradient fills & glowBar/area gradients, shadow glow on hover, radial dot gradients, highlight strips

Quick start — copy & paste

<!-- 1. Add a container -->
<div id="myChart"></div>

<!-- 2. Load the libs -->
<script src="nmcharts.js"></script>
<script src="nmcharts-categories.js"></script>

<!-- 3. Create a chart -->
<script>
  // Time series
  NMCharts.create('#myChart', {
    title: 'Daily Metrics',
    series: [
      { name: 'Revenue', color: '#4f46e5', data: [[Date.UTC(2025,0,1), 120], ...] }
    ]
  });

  // Category chart
  NMCharts.bar('#barChart', {
    title: 'Top Teams',
    categories: ['Team A', 'Team B'],
    series: [{ name: 'Q1', color: '#4f46e5', data: [420, 380] }]
  });

  // Donut
  NMCharts.donut('#donutChart', {
    title: 'Distribution',
    segments: [{ label: 'A', value: 40, color: '#4f46e5' }, ...]
  });
</script>

Changelog

v3.0 — Gauge single-color gradient, premium donut/heatmap/radar/scatter hover effects, booking timeline v2 (search, filters, dark mode, i18n), fade-in animation, compact sizing, banking-grade security
v2.5 — SSR compatibility, memory leak fixes, debug logging, IntersectionObserver for hidden containers, XSS hardening, sparklines, crossfilter linking, 6 domain datasets
v2.3 — 6 new chart types (treemap, funnel, polar, scatter/bubble, sankey, boxplot), annotations API, zoom/pan on category charts, live data streaming (appendData/updateData), LTTB downsampling, per-chart randomizer
v2.2 — Themes (corporate, pastel, vibrant, mono, colorblind), SVG export, accessibility (ARIA + hidden data tables), ResizeObserver, dark mode CSS variables
v2.1 — 5 category chart types (bar, column, stacked, lollipop, combo), Angular integration guide
v2.0 — Specialized charts (donut, gauge, heatmap, radar), composite charts (lineBar, waterfall, bullet, timeline)
v1.0 — Core time series engine with area, line, threshold bands, zoom, pan, navigator, dark mode

Licence & Tarifs

Gratuit pour les projets personnels. Contactez-moi pour un usage professionnel.

Personnel
Gratuit
Pour toujours
✓ Tous les 24+ types de charts
✓ Projets personnels & portfolio
✓ Prototypes & expérimentations
✓ Open-source & éducation
✓ Aucun watermark
✓ Mises à jour incluses
Populaire
Entreprise
Sur devis
Licence annuelle
✓ Tout du plan gratuit
✓ Usage commercial & SaaS
✓ Dashboards internes
✓ Applications client
✓ Support par email
✓ Mises à jour prioritaires
Contactez-moi
Sur mesure
Custom
Prestation personnalisée
✓ Intégration Angular/React/Vue
✓ Charts types sur mesure
✓ Formation équipe
✓ Support prioritaire dédié
✓ Consulting data viz
✓ SLA garanti
Discutons