Chart Prompts

1,337 ways to dress a line or bar chart, 669 light and 668 dark. Open any chart to see it full size and copy a prompt that gives your own chart the same look.

Every chart uses illustrative data. The prompts work with any coding agent and any charting library; they describe colors, type, spacing and marks precisely enough to reproduce each look.

← More from Emergent Mind Labs

Snowpack line chart, light theme: This season's snow depth in deep blue over a pale historical percentile band.

Snowpack

LightLine

This season's snow depth in deep blue over a pale historical percentile band.

  • Season blue#1B4F8C
  • Storm blue#5E8FC7
  • History band#E4E9EF
  • Median gray#6F7E8F
  • Snow white#FDFEFF

Prompt for your coding agent

Paste it with your chart's code. It restyles your data to match this chart.

Restyle my chart in the "Snowpack" style described below. Keep my data, chart type, title meaning and units; change only the presentation. Use the charting library this project already uses (plain SVG if there is none). If the library can't express a detail, draw it in a custom layer instead of dropping it. Measurements assume a 960 x 600 chart; scale them proportionally.

Mood: a snow and avalanche center's station page. Crisp, cold and trustworthy: a white page, one heavy deep blue line for this season set against a quiet gray band of history, so a forecaster sees at a glance whether the season runs above or below normal.

Colors (use these exact values):
- Page: #FDFEFF (crisp blue-white) for the whole canvas, with a 6px #1B4F8C strip across the very top edge.
- Current series: #1B4F8C (deep blue). The main line, the latest-value dot and label, and the eyebrow text.
- Event markers: #5E8FC7 (lighter storm blue) for the small triangles and their totals.
- Historical band fill: #E4E9EF with 1px #C9D2DC edges. Median: #6F7E8F dashed.
- Title ink: #16263A. Secondary text: #5B6878. Gridlines: #E1E6EC.

Typography (Google Fonts):
- Bitter for the title (700, 30px, #16263A, sentence case stating the finding, e.g. "Snowpack is 143 cm, 89% of the median for mid-February") and the latest-value label (700, 22px, #1B4F8C).
- Nunito Sans for everything else: eyebrow 12px 800 uppercase with 2.2px letter-spacing in #1B4F8C (station name, id, elevation separated by " | "); timestamp 12px 600 right-aligned; subtitle 16px 400 #5B6878 with measure, unit and the reference period; legend 13px; axis labels 12px; month labels 13px 600; storm totals 12px 800; notes 12px italic.

Layout:
- 56px side margins. Eyebrow at y 48 with the update time on the right, title at y 92, subtitle at y 120, a one-line legend at y 152, plot from about y 190 to 498 and x 76 to 868, leaving room on the right for band edge labels.
- Legend row, left to right: a 26 x 14 band swatch (rx 2) "10th–90th percentile", a dashed median sample "Median", a 4px round-capped blue sample "2025–26" in 700 ink, and a small down-pointing triangle "Storm, new snow (cm)".
- Footer: 1px #E1E6EC rule at y 544, "Source: ..." left at y 568 in 12px #5B6878, and a 12px 700 ink summary on the right (e.g. "7 storms, 229 cm of new snow to date").

Axes and grid:
- Horizontal gridlines only, 1px #E1E6EC; y labels 12px right-aligned 10px left of the plot with the unit ("cm") above the top label. No y-axis line.
- A 1.2px #16263A baseline with 6px month ticks; month names 6px right of each tick.
- A "TODAY" marker: a 1px #16263A vertical dotted line (2 on, 3 off) from just above the plot to the baseline, labeled "TODAY" in 11px 800 with 1.6px letter-spacing above it. The history continues to the right of it; the current series stops there.

Marks:
- Line chart: the historical 10th to 90th percentile as a filled #E4E9EF band with 1px #C9D2DC edges, the median as a 1.4px #6F7E8F dashed line (5 on, 4 off), each labeled at the right end ("90th", "Median", "10th", 11px #5B6878). The current series is a 4px #1B4F8C line with round joins and caps, drawn over an 8px #FDFEFF halo so it cuts cleanly through the dashes. End it at today with a 6.5px-radius #1B4F8C dot with a 2.5px #FDFEFF ring, the value ("143 cm") 14px right of it in Bitter, and the median for that date under it in 12px 600 #5B6878.
- Bar chart: slender #1B4F8C bars (about 55% of the band, square corners) for the current period, with the historical range for each category drawn behind as a wider #E4E9EF box (10th to 90th percentile, 1px #C9D2DC edge) and a 1.4px #6F7E8F dashed tick at the median. Value labels in Nunito Sans 12px 700 above each bar; the latest bar labeled in Bitter 22px.
- Event markers: small down-pointing #5E8FC7 triangles, 11px wide and 9px tall, about 16px above the local peak of the line, with the event total ("+48") centered 5px above in 12px 800 #5E8FC7 with a 4px #FDFEFF text halo (paint-order stroke) so it stays legible over the dashed median.

Labels and annotation:
- One or two short italic notes (Nunito Sans 12px italic, #5B6878) for quiet stretches, e.g. "Dry spell: no storm for 38 days", placed under the line.

Avoid: gradients, drop shadows, area fills under the current line, colored bands other than the gray history, a boxed legend, more than one blue line, and rounded corners on anything except the legend swatch.

When you're done, render the chart and check that the current line reads first, the storm labels never collide with each other or the dashed median, the percentage in the title matches today's value divided by today's median, and nothing on the right edge is clipped.