Class ThemeBase
Base class for TigerCli themes. Derived themes provide the required base palette and can override
semantic role hooks for controls, markup, tables, surfaces, buttons, and progress bars.
public abstract class ThemeBase : ITheme
- Inheritance
-
ThemeBase
- Implements
- Derived
- Inherited Members
Remarks
Resolve(ThemeStyle) returns cloned styles and applies fallback rules so a theme can
override only the roles that differ. Required roles are text, muted text, accent, frame, selected,
and background; optional roles fall back to related base roles or composed defaults.
Properties
Accent
Primary accent ink.
protected abstract CliCellStyle Accent { get; }
Property Value
Alert
Markup alert foreground/background; composed from the alert surface when not overridden.
protected virtual CliCellStyle? Alert { get; }
Property Value
AlertSurface
Attention surface; defaults to Background.
protected virtual CliCellStyle? AlertSurface { get; }
Property Value
AlertSurfaceAlt
Alternate row style for the alert surface;
null means no zebra style.protected virtual CliCellStyle? AlertSurfaceAlt { get; }
Property Value
Background
Base output or application background style.
protected abstract CliCellStyle Background { get; }
Property Value
Button
Normal button style; defaults to Text.
protected virtual CliCellStyle? Button { get; }
Property Value
ButtonDisabled
Disabled button style; defaults to MutedText.
protected virtual CliCellStyle? ButtonDisabled { get; }
Property Value
ButtonFocused
Focused button style; defaults to Selected.
protected virtual CliCellStyle? ButtonFocused { get; }
Property Value
ButtonInactiveSelected
Selected button style when its group is unfocused; defaults to inactive selection.
protected virtual CliCellStyle? ButtonInactiveSelected { get; }
Property Value
ButtonMarker
Button marker ink; defaults to Accent.
protected virtual CliCellStyle? ButtonMarker { get; }
Property Value
DefaultSurfaceAlt
Alternate row style for the default surface;
null means no zebra style.protected virtual CliCellStyle? DefaultSurfaceAlt { get; }
Property Value
DialogSurface
Dialog/control surface; defaults to PanelSurface, then Background.
protected virtual CliCellStyle? DialogSurface { get; }
Property Value
DialogTitle
Dialog title ink; defaults to Accent.
protected virtual CliCellStyle? DialogTitle { get; }
Property Value
Error
Markup error foreground; defaults through warning to accent.
protected virtual CliCellStyle? Error { get; }
Property Value
ErrorSurface
Error message-box surface; composed from error/warning/accent ink when not overridden.
protected virtual CliCellStyle? ErrorSurface { get; }
Property Value
Family
The theme's contrast family (see Family). Defaults to
Dark; light-background themes override this to return
Light.
public virtual TigerThemeFamily Family { get; }
Property Value
Frame
Frame/border ink.
protected abstract CliCellStyle Frame { get; }
Property Value
Heading
Section, list, or details heading foreground; defaults to bold accent.
protected virtual CliCellStyle? Heading { get; }
Property Value
InactiveSelectedListItem
Selected list item style when the list is unfocused; defaults to MutedText.
protected virtual CliCellStyle? InactiveSelectedListItem { get; }
Property Value
InactiveTextInput
Unfocused text-input style; defaults to MutedText.
protected virtual CliCellStyle? InactiveTextInput { get; }
Property Value
Key
Structured-output key or identity value foreground; defaults to accent.
protected virtual CliCellStyle? Key { get; }
Property Value
Link
Structured-output link foreground; defaults to underlined accent.
protected virtual CliCellStyle? Link { get; }
Property Value
MutedText
Muted or secondary text ink.
protected abstract CliCellStyle MutedText { get; }
Property Value
Name
Unique theme name (see Name).
public abstract string Name { get; }
Property Value
PanelSurface
Elevated or panel surface; defaults to Background.
protected virtual CliCellStyle? PanelSurface { get; }
Property Value
PanelSurfaceAlt
Alternate row style for the panel surface;
null means no zebra style.protected virtual CliCellStyle? PanelSurfaceAlt { get; }
Property Value
Path
Structured-output path foreground; defaults to muted text.
protected virtual CliCellStyle? Path { get; }
Property Value
ProgressBarComplete
Complete-state progress-bar ink; defaults through success to accent.
protected virtual CliCellStyle? ProgressBarComplete { get; }
Property Value
ProgressBarDone
Done portion of a multi-colour progress bar; defaults to accent.
protected virtual CliCellStyle? ProgressBarDone { get; }
Property Value
ProgressBarRemaining
Remaining portion of a multi-colour progress bar; defaults to muted text.
protected virtual CliCellStyle? ProgressBarRemaining { get; }
Property Value
ScrollBar
Scrollbar ink; defaults to Frame.
protected virtual CliCellStyle? ScrollBar { get; }
Property Value
ScrollIndicator
Scroll indicator ink; defaults to Accent.
protected virtual CliCellStyle? ScrollIndicator { get; }
Property Value
Selected
Active selection style.
protected abstract CliCellStyle Selected { get; }
Property Value
SelectedListItem
Selected list item style; defaults to Selected.
protected virtual CliCellStyle? SelectedListItem { get; }
Property Value
SelectedMenuItem
Selected command-menu item style; defaults to Selected.
protected virtual CliCellStyle? SelectedMenuItem { get; }
Property Value
Status
Status or hint row style; defaults to MutedText.
protected virtual CliCellStyle? Status { get; }
Property Value
Success
Success foreground accent; defaults to accent.
protected virtual CliCellStyle? Success { get; }
Property Value
TableCell
Table body foreground; defaults to text.
protected virtual CliCellStyle? TableCell { get; }
Property Value
TableFrame
Table frame foreground; defaults to frame.
protected virtual CliCellStyle? TableFrame { get; }
Property Value
TableHeader
Table header foreground; defaults to accent.
protected virtual CliCellStyle? TableHeader { get; }
Property Value
TableTitle
Table title foreground; defaults to dialog title/accent.
protected virtual CliCellStyle? TableTitle { get; }
Property Value
Text
Default text ink.
protected abstract CliCellStyle Text { get; }
Property Value
TextInput
Focused text-input style; defaults to Text.
protected virtual CliCellStyle? TextInput { get; }
Property Value
Value
Structured-output normal value foreground; defaults to text.
protected virtual CliCellStyle? Value { get; }
Property Value
Warning
Warning foreground accent; defaults to accent.
protected virtual CliCellStyle? Warning { get; }
Property Value
WarningSurface
Warning message-box surface; composed from warning/accent ink when not overridden.
protected virtual CliCellStyle? WarningSurface { get; }
Property Value
Methods
Resolve(ThemeStyle)
Resolves a semantic style role to a concrete cell style, applying ThemeBase fallback rules and
returning a clone so callers can safely mutate the result for a single render operation.
public CliCellStyle Resolve(ThemeStyle style)
Parameters
styleThemeStyle
Returns
Exceptions
- ArgumentOutOfRangeException
- Thrown when
styleis not a known role.
ResolveSurface(SurfaceRole)
Resolves a reusable surface family into concrete colours. The surface background and its
optional alternate-record (zebra) colours come from this theme's surface hooks (which fall
back to the base background / no-zebra). Override to fully customize per theme.
public virtual SurfaceColors ResolveSurface(SurfaceRole role)
Parameters
roleSurfaceRole