RazorConsole v0.4.0

Released: February 7, 2026 | Milestone v0.4.0

RazorConsole v0.4.0 introduces a powerful Z-Index layout system enabling absolute positioning and modal windows, fixes critical focus management bugs, and includes a new multi-page routing example demonstrating Blazor's routing capabilities.

Highlights

  • Z-Index Layout System & Absolute Positioning: Implemented a sophisticated layout system with z-index support and absolute positioning for overlay components like modal windows (#287, fixes #286)
  • Modal Window Component: Added a new Modal component with automatic centering using the new overlay rendering system, complete with gallery examples and website preview (#295)
  • Focus Management Fixes: Resolved critical focus issues where button focus styles were not correctly applied when switching pages and focus remained on wrong button indices (#289, fixes #283, #284)
  • Website Preview Rendering Fix: Fixed race condition that prevented immediate state updates in website preview console, requiring secondary interactions to see changes (#291, fixes #290)
  • Multi-Page Application Example: Added comprehensive example demonstrating Blazor's routing for cleaner page navigation, including a custom slider component (#292)

Milestone Completion

All 7 items in the v0.4.0 milestone have been completed:

Issues

  • #283 - Button focus style not applied when switching pages
  • #284 - Focus on TextButton stays on button with the same index as button pressed on previous page
  • #286 - Z-Index layout system
  • #290 - StateHasChanged doesn't work immediately in website

Pull Requests

  • #287 - Add z-index and absolute positioning
  • #288 - Update version prefix to 0.4.0
  • #289 - Fixing the TextButton and TextInput focus issue
  • #291 - Fix race condition in web preview rendering
  • #292 - Multi-page app example
  • #293 - Fix Counter example
  • #295 - Add modal window component

Detailed Changes

Components & Rendering

  • New Modal Component:

    • Added Modal component with automatic centering calculated inside OverlayRenderable (#295)
    • Modal centering accounts for canvas size and modal window content size for precise positioning (#295)
    • Includes gallery examples and website preview integration (#295)
  • Z-Index Layout System:

    • Implemented AbsolutePositionMiddleware that collects positioned elements as OverlayItem and removes them from main flow (#287)
    • Elements are rendered in z-index order after main content rendering (#287)
    • Positioned elements rendered via OverlayRenderable with proper positioning and layering (#287)
  • Absolute Positioning:

    • Position is relative to main flow content by default (#287)
    • If element has a positioned ancestor, positioning is relative to that ancestor (#287)

Focus & Input Reliability

  • Focus Management Improvements:
    • Fixed button focus style not being applied when switching between pages in multi-page applications (#289)
    • Resolved issue where focus would remain on button at same index as previous page instead of first button (#289)
    • Fixed focus behavior when code blocks (loops, variable initialization) preceded buttons (#289)

Core Architecture

  • Website Preview Rendering:
    • Added Refreshed event to LiveDisplayCanvas that fires immediately after renderable is written to console (#291)
    • Updated RazorConsoleRenderer to subscribe to _canvas.Refreshed instead of raw ConsoleRenderer snapshot (#291)
    • Fixed race condition where renderer attempted to read output buffer before ConsoleLiveDisplayContext and LiveDisplayCanvas finished writing (#291)
    • Adjusted initialization order to correctly capture initial component render (#291)

Samples & Examples

  • Multi-Page Application Example:

    • Added comprehensive example demonstrating Blazor's routing for cleaner page navigation (#292)
    • Showcases alternative to switch statement approaches in App.razor (#292)
    • Includes custom slider component in settings page (credits to Skuzzle-UK) (#292)
  • Counter Example Fix:

    • Fixed dotnet_diagnostic.IDE0073 warning that was treated as error and failing the build (#293)
    • Added Counter example to solution file (slnx) (#293)

Build & Versioning

  • Updated version prefix to 0.4.0 (#288)

Acknowledgments

Special thanks to the contributors who made this release possible:

  • Skoreyko Misha (TeseySTD) for implementing the Z-Index layout system with absolute positioning, the Modal component, and fixing the critical website preview rendering race condition
  • Marcin Lach (Marcin-Lach) for fixing critical focus management bugs, adding the multi-page routing example with custom slider component, and fixing the Counter example build issue

Full Changelog: https://github.com/RazorConsole/RazorConsole/compare/v0.3.0...v0.4.0