Skip to content

Accessibility

Lukas Alexandre edited this page Oct 16, 2026 · 4 revisions

Accessibility

Railscasts balances historical fidelity with readable modern editing surfaces. Contrast measurements use the default #2B2B2B background and the WCAG relative-luminance formula.

Token Contrast Typical role
beige_grey 10.90:1 Primary text
white 12.86:1 Strong text
light_orange 9.14:1 Functions
purple 9.54:1 Properties, object keys, member fields, and labels
yellow 10.93:1 Search
moss 7.07:1 Numbers
light_green 5.61:1 Strings and additions
blue 4.83:1 Booleans and info
cyan 4.82:1 Changes and visual mode
dark_orange 4.25:1 Keywords and warnings
red 3.37:1 Types, constants, errors, and deletions
light_brown 3.32:1 Comments and metadata

Applied readability choices

  • Special syntax and diff additions use light_green rather than low-contrast dark_green.
  • Statements and warnings use dark_orange rather than lower-contrast brown or maroon shades.
  • Delimiters use primary text rather than the low-contrast separator gray.
  • Tabline and Lualine secondary surfaces use grey with beige_grey text.
  • Inactive Lualine primary segments use black text on warm light_grey; secondary segments use beige_grey on grey, and the fill uses beige_grey on the base background.
  • Properties and object keys use lavender instead of red to distinguish them from types and constants; Tree-sitter and LSP share the same property role.

Deliberate muted roles

Comments, some diagnostic colors, and legacy UI metadata retain muted tones to preserve the original Railscasts hierarchy. They should not be the sole carrier of meaning.

Enable high_contrast when muted text needs more separation. Diagnostics and diffs also use signs, underlines, or distinct groups so color is not their sole carrier of meaning. Supported UI integrations inherit the same semantic groups in high-contrast, transparent, and dimmed-inactive configurations.

Darker-background contrast

With darker_background = true, Railscasts uses #1F1F1F. Primary text reaches 12.69:1 contrast, strong text 14.97:1, functions 10.64:1, strings 6.54:1, booleans 5.62:1, and keywords 4.95:1. Muted comments rise to 3.86:1 and errors to 3.92:1. Enable high_contrast when muted text needs additional separation.

Lavender properties and object keys reach 11.11:1 against this darker surface. The darker background keeps syntax and UI roles unchanged and cannot be combined with transparent = true, which defers the surface to the terminal or GUI.

See Configuration for setup options and Properties and object keys for the color distinction's rationale.

Clone this wiki locally