Foundation

Data visualization

Inline charts count activity: drafts, runs, weeks, courses, with mono numbers, flat geometry, and no judgment about a student anywhere in the data. Four categorical series at most, held to one lightness pair and one chroma band. In the product every chart is a Bklit UI component styled by these tokens; the specimens on this page are static token references, not chart implementations.

Roles, not a rainbow

Chart color is four series at most: the brand pair opened to chart chroma, plus the two hues at right angles to it. Hue does the identifying, a two-step lightness stagger keeps every pair apart for dichromatic readers, and one chroma band keeps the four reading as one family. Butter stays the one emphasis, and past four categories the answer is a split chart or a table, never a fifth color.

series-1 3F529C
series-2 8E7000
series-3 008776
series-4 90382D
emphasis brand-500
neutral ink-300
Chart color roles, their tokens, values, and jobs
RoleTokenValueJob
Series 1 to 4chart.series-1 to chart.series-4#3F529C · #8E7000 · #008776 · #90382DIndigo, ochre, teal, rust; assign in token order, cap at four
Emphasischart.emphasisbrand-500 · #E9CB62The one series or datum the chart is about
Neutralchart.neutralink-300 · #BAC0CCContext series and de-emphasized comparisons
Gridchart.gridline-soft · #ECEDEAGridlines behind the data
Axis textchart.axis-textink-500 · #707B8DAxis labels and tick text

Series 1 and 4 sit at OKLCH L 0.46, series 2 and 3 at L 0.56, and all four between C 0.10 and C 0.12: one lightness pair and one chroma band, the same discipline the question taxonomy uses. Butter Yellow stays reserved for the emphasis role and nothing in the set comes near it. Both halves of the construction are load-bearing: held at a single lightness these hues collapse to a ΔE near 1 under deuteranopia, and separated by lightness alone they read as one navy and one gold at two darknesses each.

Series 4 is a rust, not a red.

It sits ΔE 4.5 from danger-600, so a chart series and a status indicator never share a tile without both written labels, and series 3 and 4 never stand alone as a pair, which would read teal against red. A two-series chart uses series 1 and 2, which is the brand pair itself.

Chart colors chart.

The series, emphasis, and neutral roles exist only inside a plot. They never tint buttons, badges, or cards, and question-type or status colors never stand in as series.

Sequential data

Magnitude uses the ink ramp, light to dark. There is no diverging palette on purpose: Inline does not render judgment gradients. When two things need comparing, use paired series side by side, never a red-to-green axis.

One chart, one point

Default to fewer colors: one ink series, or ink plus a butter emphasis on the datum the chart is about. Open the categorical set only past three real categories, and never identify a series by color alone.

Seriesink-800
Emphasischart.emphasis
Gridchart.grid
NumbersGeist Mono, tabular
Do keep one measure in one ink series and let butter mark the single datum the chart is about, with its label emphasized too.
Don't recolor a single measure by category. Cycling the series steps across one measure says nothing, spends the categorical set for free, and forces a repeat at the fifth bar.

Meters and progress

Two progress surfaces ship today. Both reuse the status families from Color, because they report application state: how much of a plan is used, how far a draft has come.

Usage meters
Runs today 6 / 15
Under 70 percent · success-600
Runs this week 34 / 45
70 percent or more · warn-600
Runs this week 45 / 45
At the cap · danger-600
Draft maturity
This draft 2 / 4
Four 6px segments · success-600 fill

The track is 6px, full-round, in ink-100. Maturity is formative and belongs to the student who owns the draft; it never appears in a faculty view.

Dashboards

PlannedProfessor and institution dashboards are planned, not shipped: stat tiles, trend lines over time windows, mode mix, and completion by course, all Bklit UI components styled by the chart tokens. Cohorts under 10 students suppress totals by design.

Drafts with feedback 128 Past 30 days
Completion rate Hidden Fewer than 10 students; totals hidden

Four designed states

Every dashboard tile and chart designs loading, empty, error, and privacy-suppressed. Suppression keeps normal chrome and quiet ink text; it is never an error style.

Loading
Loading placeholder
Empty
No runs yet.
Error
Couldn't load activity.
Suppressed
Fewer than 10 students; totals hidden
Planned dashboard surfaces and their shapes
SurfaceShape
Stat tileGeist Mono tabular number, caption label, caption time window
Trend lineOne ink series over a time window; emphasis only for the window in question
Mode mixFeedback versus Brainstorming runs as paired series
Completion by coursePer-course adoption; categorical set only past three courses

What Inline never charts

A palette is not permission. Some charts are excluded from Inline no matter how they are colored.

Inline charts activity, never judgment.

No risk scores, no gauges, no red-to-green scales, no authenticity or AI-detection meters, no per-student surveillance charts. Dashboards show activity and adoption; they never rank, grade, or suspect a writer.

This is why no diverging palette exists: there is no "good end" to chart toward. If a requested view needs one, the view is wrong, not the palette.

Rules

Ten rules keep every chart one system.

  1. Chart colors chart. The series, emphasis, and neutral roles never appear in UI chrome, and question-type or status colors never join a series set. No series is an alias of an ink step.
  2. One lightness pair, one chroma band, four hues. Series 1 and 4 at L 0.46, series 2 and 3 at L 0.56, all four between C 0.10 and C 0.12. Changing a series means re-running the categorical check on white and on paper, adjacent and all pairs, not picking a nicer hex.
  3. Start with one color. A lone ink series, or ink plus one butter emphasis; open the categorical set only past three real categories, assigned in token order.
  4. Never color alone, never a fifth color. Every series carries a direct label or a legend entry, the emphasized datum gets an emphasized written label, and past four categories the chart splits or becomes a table.
  5. Sequential is ink, and nothing diverges. Magnitude uses the ink ramp; comparisons are paired series, never a judgment gradient.
  6. Numbers are mono. Labels are Geist at caption size; every figure is Geist Mono with tabular figures in ink, never in the series color.
  7. Flat and quiet. Bars, lines, areas, dots; no 3D, gradients, or decorative animation, and at most one entrance fade.
  8. Suppression is a designed state. Under 10 students, show the suppressed presentation with normal chrome and quiet ink text, never an error style.
  9. Rust is not red. Series 4 never stands alone against series 3, and a chart series never sits beside a status indicator without both written labels.
  10. Activity, never judgment. No risk scores, gauges, red-to-green scales, AI-detection meters, or per-student surveillance charts, ever.