Skip to content

[FEAT] - Custom window chrome for modern UI aesthetic #12

@dylanlangston

Description

@dylanlangston

Is your feature request related to a problem? Please describe.

The application currently uses default OS window chrome (title bar and borders), which doesn't provide a cohesive, modern aesthetic that matches the app's comic-inspired personality. Custom window chrome would give AvaloniaXKCD a more polished, distinctive appearance.

Describe the solution you'd like

Design and implement custom window chrome for AvaloniaXKCD following modern Avalonia best practices:

  • Follow the Avalonia UI tutorial on creating a modern-looking window
  • Research Avalonia's WindowChrome and ExtendClientArea APIs
  • Design and implement a custom title bar and window frame in XAML that aligns with the application's aesthetic
  • Create a reusable custom title bar control (buttons, drag region, app name/logo)
  • Ensure all standard window controls (minimize, maximize, close) are correctly wired to host OS logic
  • Add animations or visual polish where appropriate (hover, active states)
  • Ensure window behavior (drag, resize, minimize/maximize/close) works correctly on all desktop platforms
  • Test under dark/light modes and different DPI settings
  • Verify custom chrome behaves correctly across all desktop targets (AvaloniaXKCD.Desktop, potential macOS/Linux ports)
  • Document the structure and styling for future customization

References:

Describe alternatives you've considered

  • Keeping default OS chrome, but this provides less visual distinctiveness.

Additional context

Acceptance Criteria:

  • Default OS chrome is replaced by custom Avalonia layout
  • All window interactions work as expected (drag, resize, min/max/close)
  • Visual design is consistent, modern, and cross-platform
  • Chrome works correctly in both dark and light modes
  • High DPI displays are properly supported
  • Code and styling are well-documented for future customization

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions