a reactive (signals based) hypermedia web framework (wip) stormlightlabs.github.io/volt
hypermedia frontend signals
voltx docs css semantics.md
6.5 kB · 331 lines
Markdown
at main


version: 1.0 updated: 2025-10-18 #

Volt CSS Semantics #

Auto-generated documentation from base.css

CSS Custom Properties #

All design tokens defined in the stylesheet.

Typography #

  • --font-size-base: 18px
  • --font-size-sm: 0.889rem
  • --font-size-lg: 1.125rem
  • --font-size-xl: 1.266rem
  • --font-size-2xl: 1.424rem
  • --font-size-3xl: 1.802rem
  • --font-size-4xl: 2.027rem
  • --font-size-5xl: 2.566rem
  • --font-sans: "Inter", sans-serif
  • --font-serif: "Libre Baskerville", serif
  • --font-mono: "Google Sans Code", monospace
  • --line-height-tight: 1.25
  • --line-height-base: 1.6
  • --line-height-relaxed: 1.8
  • --font-size-base: 16px
  • --font-size-base: 15px

Spacing #

  • --space-xs: 0.25rem
  • --space-sm: 0.5rem
  • --space-md: 1rem
  • --space-lg: 1.5rem
  • --space-xl: 2rem
  • --space-2xl: 3rem
  • --space-3xl: 4rem
  • --space-2xl: 2rem
  • --space-3xl: 3rem

Layout #

  • --content-width: 70ch
  • --sidenote-width: 18rem
  • --sidenote-gap: 2rem

Colors #

  • --color-bg: #fefefe
  • --color-bg-alt: #f5f5f5
  • --color-text: #1a1a1a
  • --color-text-muted: #666666
  • --color-accent: #0066cc
  • --color-accent-hover: #0052a3
  • --color-border: #d4d4d4
  • --color-code-bg: #f8f8f8
  • --color-mark: #fff3cd
  • --color-success: #22863a
  • --color-warning: #bf8700
  • --color-error: #cb2431
  • --color-bg: #1a1a1a
  • --color-bg-alt: #2a2a2a
  • --color-text: #e6e6e6
  • --color-text-muted: #a0a0a0
  • --color-accent: #4da6ff
  • --color-accent-hover: #66b3ff
  • --color-border: #404040
  • --color-code-bg: #2a2a2a
  • --color-mark: #4a4a00
  • --color-success: #34d058
  • --color-warning: #ffdf5d
  • --color-error: #f97583

Effects #

  • --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05)
  • --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07)
  • --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)
  • --radius-sm: 3px
  • --radius-md: 6px
  • --radius-lg: 8px
  • --transition-fast: 150ms ease-in-out
  • --transition-base: 250ms ease-in-out
  • --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3)
  • --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4)
  • --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.5)

Element Coverage #

HTML elements with defined styling in the stylesheet.

Coverage: 58/60 elements

Styled Elements #

Document Structure: html, body Typography: h1, h2, h3, h4, h5, h6, p, a, em, strong, mark, small, sub, sup, hr Lists: ul, ol, li, dl, dt, dd Semantic: blockquote, cite, article, section, aside, header, footer, nav, details, summary Forms: form, fieldset, legend, label, input, select, textarea, button Tables: table, thead, th, td Media: img, figure, figcaption, video, audio, canvas, svg, iframe Code: code, pre, kbd, samp, var

Unstyled Elements #

tbody, tr

Documentation Comments #

Inline documentation extracted from CSS comments.

:root #

Root-level CSS variables define the design system. Light theme is default, dark theme overrides via media query.

@media (prefers-color-scheme: dark) #

Dark Theme Overrides Automatically applied when user prefers dark color scheme

*, *::before, *::after #

CSS reset

html #

Document root configuration Sets base font size for rem calculations

body #

Body element - Primary container Sets default typography and colors for the entire document

h1, h2, h3, h4, h5, h6 #

Headings hierarchy Uses modular scale for harmonious sizing Tighter line-height for larger text improves readability

h1 #

Individual heading sizes h1-h3 use slightly larger weights for emphasis

p #

Paragraph spacing Generous spacing between paragraphs aids scanning

h1 + p, h2 + p, h3 + p, h4 + p, h5 + p, h6 + p #

First paragraph after headings - No top margin Inspired by tufte.css

a #

Links Uses accent color with underline for clarity

em #

Emphasis and strong elements

mark #

Marked/highlighted text

sub, sup #

Subscript and superscript Prevents them from affecting line height

small #

Small text Also used for Tufte-style sidenotes (see sidenotes section)

ul, ol #

List spacing and indentation Nested lists inherit spacing

li #

List items

li > ul, li > ol #

Nested lists - Reduced spacing

dl #

Description lists - For key-value pairs

p:has(small) #

Parent paragraph must be positioned for absolute children

p small #

Pull small elements into the right margin Creates classic Tufte-style sidenote layout

@media (max-width: 767px) #

Mobile sidenotes - Inline with subtle styling

blockquote #

Blockquote styling Left border for visual distinction, italic for emphasis

cite #

Citation element

code #

Inline code Monospace font with subtle background

kbd #

Keyboard input Styled like keys on a keyboard

samp #

Sample output

var #

Variable

pre #

Preformatted code blocks Horizontal scrolling for overflow, no word wrap

hr #

Section dividers Centered decorative element

table #

Table container for horizontal scrolling on small screens

thead #

Table header styling Bold text with bottom border

td #

Table cells

tbody tr:nth-child(even) #

Zebra striping for easier row scanning

tbody tr:hover #

Hover state for interactive tables

form #

Form container spacing

fieldset #

Fieldset grouping

label #

Labels Block display for better touch targets

textarea #

Textarea specific

input[type="checkbox"], #

Checkboxes and radio buttons

input[type="file"] #

File input

input[type="range"] #

Range input

progress, meter #

Progress and meter

input[type="reset"] #

Reset button - Subdued styling

img #

Images Responsive by default, maintains aspect ratio

figure #

Figures with captions Common in academic and technical writing

video, audio #

Video and audio

article, section #

Article and Section Spacing between major content blocks

aside #

Aside Complementary content, styled distinctly

Header and Footer

details #

Details and Summary Disclosure widget for expandable content

.sr-only #

Screen reader only Hides content visually but keeps it accessible to assistive technology

@media print #

Print-specific optimizations

@media (max-width: 768px) #

Tablet and below - Reduce spacing

@media (max-width: 480px) #

Mobile - Further reduced spacing and sizing