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

Night Desk line chart, dark theme: A late-night live chart with one tomato-red line over gray context lines.

Night Desk

DarkLine

A late-night live chart with one tomato-red line over gray context lines.

  • Charcoal#131416
  • Off-white#ECEAE4
  • Tomato#FF5A43
  • Context gray#595C62
  • Gridline#26282C

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 "Night Desk" 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 newsroom's live chart at two in the morning. A near-black screen, calm off-white type, and one red line that is the story, updating while you watch.

Colors (use these exact values):
- Background: #131416 (charcoal) for the whole canvas.
- Main text: #ECEAE4 (off-white). Secondary text (timestamp, subtitle, axis labels): #8C8F95. Source line: #6A6D73.
- Live series: #FF5A43 (tomato red). Lighter red for text set on dark: #FF8A78.
- Context series: #595C62 (muted gray), all the same color.
- Gridlines: #26282C.
- Threshold band: #FF5A43 at 9% opacity, bounded by a 1px #FF5A43 dashed (6 4) line at 70% opacity.

Typography (Google Fonts):
- Libre Franklin throughout, with tabular figures (font-variant-numeric: tabular-nums).
- Headline 700 31px, -0.5px letter-spacing, #ECEAE4. Subtitle 16px #8C8F95 naming measure, unit and period. Legend 13.5px (600 #ECEAE4 for the live series, 400 #8C8F95 otherwise). Axis labels 12.5px #8C8F95. Band label italic 13px #FF8A78. Current value 700 18px #ECEAE4 with a 12.5px note under it. Source 12px #6A6D73.

Layout:
- 48px margins. Header row: a "LATEST" pill (96 x 24px, 12px radius, #FF5A43 at 16% fill with a 1px #FF5A43 stroke, a 3.5px red dot inside a 7px red halo at 25% opacity, then "LATEST" in 700 12px with 1.4px letter-spacing in #FF5A43) followed by "Updated 02:14" in 13px #8C8F95.
- Headline about 50px below the pill, subtitle under it, a one-line legend row, then the plot from y 214 to 516, then time labels and a footer with "Source: ..." at left and a method note at right.

Axes and grid:
- Horizontal gridlines only, 1px #26282C. Y labels right-aligned left of the plot with the unit on the top label ("20 ft"). X labels as clock times.
- A dotted (2 3) 1px #8C8F95 vertical "now" line at 55% opacity at the latest observation, with "FORECAST" in 600 11px, 1.3px letter-spacing, placed at the bottom of the plot just right of it.

Marks:
- Line chart: smooth monotone curves. Context lines 1.75px #595C62. The live line 3.25px #FF5A43 with round caps, drawn last; any forecast continues it as a 2px dashed (4 4) #FF5A43 line at 75% opacity. The latest point: a 5px red dot with a 1.5px charcoal ring, a 1.5px red ring at r 11 (35% opacity) and a soft red glow (r 14, blur 4) so it looks like it is pulsing. Label it with the value above-left.
- Bar chart: square-cornered bars at about 60% of the band, past periods #595C62, the latest or live bar #FF5A43 with the same pulse halo at its top; the threshold band crosses the bars behind them.
- Threshold: shade the region beyond the threshold as the translucent red band, with its italic label just inside the plot's left edge.

Avoid: more than one bright color, legends in boxes, light backgrounds, heavy gridlines, drop shadows on text, and labeling every context line.

When you're done, render the chart and check that the red line is unmistakably the story, the pulse glow is not clipped, the timestamp and every number quoted in labels match the data, and no label sits on top of a context line.