Skip to content

Lexicon v0.10.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 21:47
· 25 commits to master since this release

v0.10.0 — Typography, Theme Presets, & Accessibility Additions

Quick Downloads:

  • 🪟 Windows x64 Setup: Standard installer for modern 64-bit Windows PCs (Intel / AMD).
  • 🍏 macOS Apple Silicon DMG: For modern Apple Silicon Macs (M1, M2, M3, M4 chips).
  • 🐧 Linux x64 DEB: Debian package (.deb) for 64-bit Linux distributions (Ubuntu, Debian, Mint, Pop!_OS).
  • 📦 View All Assets & Checksums: Complete list of installers including ARM64 Windows, x86 Windows, Intel macOS, and Linux x64 DEB.

What's New in v0.10.0:

  • Typography Preset Catalog: Switch between 4 curated font pairings in real time:

    • Default: System sans-serif body with serif headings (Newsreader / Georgia).
    • Editorial: Newsreader serif body and headings for classic literary writing.
    • Modern: Inter sans-serif body and headings for clean contemporary prose.
    • Monospace: JetBrains Mono body and headings for technical drafting.
  • 100% Local Bundled Fonts:

    • Bundled Newsreader.woff2, Inter.woff2, JetBrainsMono.woff2, and OpenDyslexic.woff2 locally under src/assets/fonts/.
    • Removed all external Google Fonts API network calls (fonts.googleapis.com / fonts.gstatic.com). All custom typefaces render 100% offline with zero external network connections or IP telemetry.
  • Bundled LanguageTool Engine (Out-of-the-Box Offline Proofreading):

    • The exact LanguageTool-6.8 Java engine is now pre-bundled directly into the application sidecar bundle (lt/).
    • Fresh installs on Windows, macOS, and Linux run grammar proofreading 100% offline from second zero without triggering background downloads.
  • Paper Texture Backgrounds: Customize the reading and writing canvas with 5 pre-tuned paper surface pairs:

    • Plain White (Default): Crisp #FFFFFF page with #F7F6F3 surround.
    • Warm Cream: Warm #FEFBF0 page with #F3EEE0 surround.
    • Linen: Textured #F5EFE0 page with #E2DACD surround.
    • Newsprint: Newspaper-style #F2F3F1 page with #E2E4E0 surround.
    • Dark Slate: Low-glare #242424 dark theme with #1B1B1B surround and inverted light ink.
    • Includes subtle procedural grain overlays and soft edge drop-shadows.
  • Reading Modes (Bionic & OpenDyslexic):

    • Bionic Reading: Non-destructive ProseMirror decoration plugin (.lex-bionic-prefix) that bolds the leading prefix (~50%) of every word. Code blocks, LaTeX math formulas, and inline code are automatically skipped. Document content and marks remain 100% byte-identical so undo/redo, saving, and grammar highlight offsets are completely untouched.
    • OpenDyslexic: Bundled local OpenDyslexic-Regular.woff2 and OpenDyslexic-Bold.woff2 fonts (Bitstream Vera license). Swaps the entire writing canvas (headings included) to OpenDyslexic while keeping code blocks monospaced.
  • Appearance Settings Panel & Rollback Access:

    • Dedicated Appearance controls in Settings modal with dropdown selectors for Typography Preset, Paper Texture, and Reading Mode.
    • Added expandable Previous Releases & Rollback section under Settings → About & Feedback, which dynamically fetches past releases directly from the GitHub Releases API so users can view release notes or download previous installer packages if they encounter regressions.
    • Full persistence across app reboots via localStorage with catalog-validated fallback protections.
  • WCAG AA Contrast & Accessibility Verification:

    • Upgraded secondary muted text (#787774#5F5E5B) to clear WCAG AA contrast requirements (≥ 4.5:1) across all light paper themes and surround shells (achieving 6.48:1 on white and 4.68:1 on Linen).
    • Re-lit Dark Slate placeholders (#8A8780#9A9791) and checked task-list items to guarantee high-contrast legibility on dark surfaces.
    • Light-theme placeholder hints and editor content (h6 headings, blockquotes, code comments, empty-draft prompt, pending-math hint) no longer use faded 60% opacity muted (≈ 2.2:1) and now render at full contrast.
    • Added automated math-based contrast assertions (typography.test.js) verifying body ink, muted text, surround shells, and placeholders pass WCAG AA contrast thresholds across all 5 themes.
  • Windows High Contrast (Forced-Colors) Support: Under Windows High Contrast or any forced-colors OS theme, the custom paper backgrounds (Dark Slate included) collapse to system colors automatically. The grain overlay and page shadows, which forced-colors does not strip, are removed, and every focus ring switches to the system Highlight outline so focus stays visible in High Contrast Black.

  • WCAG 2.1 Level A ARIA & Keyboard Navigation Upgrades:

    • Interactive Panel Rails: Converted left and right collapse/expand handles to keyboard-focusable <button type="button"> elements with dynamic tabIndex management (tabIndex={0} when collapsed), enabling full keyboard navigation (Tab, Enter, Space) and screen reader announcement.
    • Explicit Input Accessibility Labels: Added explicit aria-label attributes to 12 placeholder-only inputs across Editor.jsx (link URL, math LaTeX), FormatToolbar.jsx (image URL), Settings.jsx, DictionaryPanel.jsx, HistoryPanel.jsx, CustomToolsSettings.jsx, and DocxExportModal.jsx.
    • Modal Dialog Semantics & ARIA Landmarks: Configured role="dialog", aria-modal="true", and aria-labelledby pointing to modal titles directly on the inner window cards of all 11 modals across the application (TemplateGalleryModal, Settings, ExportOptionsModal, DocxExportModal, EpubMetadataModal, UpdateModal, ConfirmModal, OnboardingModal, DictionaryPanel, HistoryPanel, CustomToolsSettings).
  • WCAG 2.1 Level AA Accessibility Enhancements:

    • Toggle Track Non-Text Contrast (1.4.11): Added a crisp border border-neutral-300 to unchecked toggle switch tracks in Toggle.jsx so control boundaries are clearly demarcated against all paper canvas backgrounds ($\ge 3:1$ contrast).
    • Non-Color Error Category Indicators (1.4.1): Added visual text decorations to error match types in index.css (spelling: underline wavy, grammar: underline wavy, style: underline dashed, prose: underline dotted) so colorblind users can visually distinguish error categories without relying on color alone.
    • Voice Control & Speech Recognition Label Matching (2.5.3): Matched aria-label with visible text on ReviewPanel's "Accept all X suggestions" button (aria-label={Accept all ${count} suggestions}).
    • Identify Input Purpose Attributes (1.3.5): Added autoComplete="name" and autoComplete="organization" to author and publisher input fields across export modals (DocxExportModal.jsx, EpubMetadataModal.jsx).
  • Browser-Style Zoom (Accessibility): Full-page zoom is now enabled. Ctrl + Plus / Ctrl + Minus, Ctrl + 0 to reset, Ctrl + mouse wheel, and touchpad pinch gestures all scale the interface exactly like a browser.