Table of Contents

Namespace SharpConsoleUI.Themes

Classes

ModernGrayTheme

Modern dark theme with grayscale foundation and cyan accents. Inspired by modern developer tools like AgentStudio and ConsoleTop.

MutableTheme

A fully settable ITheme used as the working buffer and result of theme derivation (see From(ITheme)). Every theme member is mutable, so a derived theme can override any subset of colors after copying a base theme via CopyFrom(ITheme).

Palette

A small set of seed colors used to generate a complete theme via FromPalette(Palette). Every field is optional: unset fields are derived (secondary/tertiary from primary, foreground from background contrast, status colors from mode-tuned defaults, background from the mode).

Theme

Entry point for deriving a theme from an existing one. Copies every member of a base ITheme, lets you override any subset, and returns a mutable theme you can register and switch to.

ThemeBase

Abstract base for all themes: declares every ITheme member as a settable virtual property with neutral/transparent "blank canvas" defaults. Concrete themes derive from this and set the values they want; a member left unset is transparent/neutral, never a hidden inherited value.

ThemeBuilder

Fluent builder produced by From(ITheme). Mutates a working MutableTheme and returns it from Build() (no copy, no freeze — the result stays mutable by design).

ThemeInfo

Information about a registered theme including its name, description, and factory method.

Structs

ColorRoleSet

A coordinated set of colours derived from a single ColorRole: the foreground when the role colour is used as text on the window surface (Text), the role fill (Background), the readable text on that fill (TextOnBackground), and the border (Border). All values are concrete and contrast-checked.

Interfaces

ITheme

Defines the interface for SharpConsoleUI themes that control the visual appearance of all UI elements. Implement this interface to create custom themes for the console window system.

Enums

ColorRole

Semantic colour role a control can adopt. Default means the control uses its normal colour-resolution path (no role); the other values map to theme seed colours and are resolved to a coordinated colour set by ColorRoleResolver.

ColorRoleState

Interaction state used when resolving role colours.

ThemeMode

The declared light/dark mode of a theme. A label of the theme's identity (set by its author), not a computed value.