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.