Skip to content

v1.1.0 — Visual Redesign & Theme Tokenization

Latest

Choose a tag to compare

@MarkusNeusinger MarkusNeusinger released this 10 Apr 22:27
· 47 commits to main since this release

What's New

Design System & Theme Tokenization

  • Centralized all 80+ hardcoded hex colors and font strings into app/src/theme/index.ts
  • New theme tokens: fontSize.micro/xxs, colors.primaryDark/accentBg/codeBlock/highlight/tooltipLight
  • Shared style constants: headingStyle, subheadingStyle, textStyle, codeBlockStyle, tableStyle
  • LIB_ABBREV map centralized in constants

WCAG AA Accessibility

  • Fixed 15+ contrast violations where gray.400 (#9ca3af, 2.9:1 ratio) was used for text
  • All text now meets 4.5:1 minimum contrast ratio
  • Added keyboard accessibility to zoom container (role, tabIndex, Enter/Space, focus-visible)
  • Added aria-labels to interactive elements

Plot of the Day Redesign

  • Terminal-style frame with $ python plots/… prompt (links to GitHub source)
  • Split layout: image left, info panel right
  • Fade-in animation on load
  • Real library and Python versions from API
  • >>> plot.png saved │ Library · Python 3.x.x status bar

Responsive Improvements

  • Breadcrumb abbreviations on mobile: pyplots.aipp, matplotlibmpl
  • RelatedSpecs grid: smoother column progression (2→3→4→6)
  • Better icon spacing in mobile breadcrumb

Code Quality

  • Fixed 3 pre-existing lint errors (setState in useEffect → render-time ref pattern)
  • Fixed useCallback missing dependency warning
  • Added AbortController for fetch cleanup on unmount
  • Added setTimeout cleanup via ref on unmount
  • Removed unused ImageLightbox component
  • Updated test suite for new API fields and endpoints
  • Complete style guide documentation (docs/reference/style-guide.md)

Full Changelog: v1.0.0...v1.1.0