Table of Contents

Class ThemeBase

Namespace
ItTiger.TigerCli.Tui.Themes
Assembly
ItTiger.TigerCli.dll
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

CliCellStyle

Alert

Markup alert foreground/background; composed from the alert surface when not overridden.
protected virtual CliCellStyle? Alert { get; }

Property Value

CliCellStyle

AlertSurface

Attention surface; defaults to Background.
protected virtual CliCellStyle? AlertSurface { get; }

Property Value

CliCellStyle

AlertSurfaceAlt

Alternate row style for the alert surface; null means no zebra style.
protected virtual CliCellStyle? AlertSurfaceAlt { get; }

Property Value

CliCellStyle

Background

Base output or application background style.
protected abstract CliCellStyle Background { get; }

Property Value

CliCellStyle

Button

Normal button style; defaults to Text.
protected virtual CliCellStyle? Button { get; }

Property Value

CliCellStyle

ButtonDisabled

Disabled button style; defaults to MutedText.
protected virtual CliCellStyle? ButtonDisabled { get; }

Property Value

CliCellStyle

ButtonFocused

Focused button style; defaults to Selected.
protected virtual CliCellStyle? ButtonFocused { get; }

Property Value

CliCellStyle

ButtonInactiveSelected

Selected button style when its group is unfocused; defaults to inactive selection.
protected virtual CliCellStyle? ButtonInactiveSelected { get; }

Property Value

CliCellStyle

ButtonMarker

Button marker ink; defaults to Accent.
protected virtual CliCellStyle? ButtonMarker { get; }

Property Value

CliCellStyle

DefaultSurfaceAlt

Alternate row style for the default surface; null means no zebra style.
protected virtual CliCellStyle? DefaultSurfaceAlt { get; }

Property Value

CliCellStyle

DialogSurface

Dialog/control surface; defaults to PanelSurface, then Background.
protected virtual CliCellStyle? DialogSurface { get; }

Property Value

CliCellStyle

DialogTitle

Dialog title ink; defaults to Accent.
protected virtual CliCellStyle? DialogTitle { get; }

Property Value

CliCellStyle

Error

Markup error foreground; defaults through warning to accent.
protected virtual CliCellStyle? Error { get; }

Property Value

CliCellStyle

ErrorSurface

Error message-box surface; composed from error/warning/accent ink when not overridden.
protected virtual CliCellStyle? ErrorSurface { get; }

Property Value

CliCellStyle

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

TigerThemeFamily

Frame

Frame/border ink.
protected abstract CliCellStyle Frame { get; }

Property Value

CliCellStyle

Heading

Section, list, or details heading foreground; defaults to bold accent.
protected virtual CliCellStyle? Heading { get; }

Property Value

CliCellStyle

InactiveSelectedListItem

Selected list item style when the list is unfocused; defaults to MutedText.
protected virtual CliCellStyle? InactiveSelectedListItem { get; }

Property Value

CliCellStyle

InactiveTextInput

Unfocused text-input style; defaults to MutedText.
protected virtual CliCellStyle? InactiveTextInput { get; }

Property Value

CliCellStyle

Key

Structured-output key or identity value foreground; defaults to accent.
protected virtual CliCellStyle? Key { get; }

Property Value

CliCellStyle
Structured-output link foreground; defaults to underlined accent.
protected virtual CliCellStyle? Link { get; }

Property Value

CliCellStyle

MutedText

Muted or secondary text ink.
protected abstract CliCellStyle MutedText { get; }

Property Value

CliCellStyle

Name

Unique theme name (see Name).
public abstract string Name { get; }

Property Value

string

PanelSurface

Elevated or panel surface; defaults to Background.
protected virtual CliCellStyle? PanelSurface { get; }

Property Value

CliCellStyle

PanelSurfaceAlt

Alternate row style for the panel surface; null means no zebra style.
protected virtual CliCellStyle? PanelSurfaceAlt { get; }

Property Value

CliCellStyle

Path

Structured-output path foreground; defaults to muted text.
protected virtual CliCellStyle? Path { get; }

Property Value

CliCellStyle

ProgressBarComplete

Complete-state progress-bar ink; defaults through success to accent.
protected virtual CliCellStyle? ProgressBarComplete { get; }

Property Value

CliCellStyle

ProgressBarDone

Done portion of a multi-colour progress bar; defaults to accent.
protected virtual CliCellStyle? ProgressBarDone { get; }

Property Value

CliCellStyle

ProgressBarRemaining

Remaining portion of a multi-colour progress bar; defaults to muted text.
protected virtual CliCellStyle? ProgressBarRemaining { get; }

Property Value

CliCellStyle

ScrollBar

Scrollbar ink; defaults to Frame.
protected virtual CliCellStyle? ScrollBar { get; }

Property Value

CliCellStyle

ScrollIndicator

Scroll indicator ink; defaults to Accent.
protected virtual CliCellStyle? ScrollIndicator { get; }

Property Value

CliCellStyle

Selected

Active selection style.
protected abstract CliCellStyle Selected { get; }

Property Value

CliCellStyle

SelectedListItem

Selected list item style; defaults to Selected.
protected virtual CliCellStyle? SelectedListItem { get; }

Property Value

CliCellStyle

SelectedMenuItem

Selected command-menu item style; defaults to Selected.
protected virtual CliCellStyle? SelectedMenuItem { get; }

Property Value

CliCellStyle

Status

Status or hint row style; defaults to MutedText.
protected virtual CliCellStyle? Status { get; }

Property Value

CliCellStyle

Success

Success foreground accent; defaults to accent.
protected virtual CliCellStyle? Success { get; }

Property Value

CliCellStyle

TableCell

Table body foreground; defaults to text.
protected virtual CliCellStyle? TableCell { get; }

Property Value

CliCellStyle

TableFrame

Table frame foreground; defaults to frame.
protected virtual CliCellStyle? TableFrame { get; }

Property Value

CliCellStyle

TableHeader

Table header foreground; defaults to accent.
protected virtual CliCellStyle? TableHeader { get; }

Property Value

CliCellStyle

TableTitle

Table title foreground; defaults to dialog title/accent.
protected virtual CliCellStyle? TableTitle { get; }

Property Value

CliCellStyle

Text

Default text ink.
protected abstract CliCellStyle Text { get; }

Property Value

CliCellStyle

TextInput

Focused text-input style; defaults to Text.
protected virtual CliCellStyle? TextInput { get; }

Property Value

CliCellStyle

Value

Structured-output normal value foreground; defaults to text.
protected virtual CliCellStyle? Value { get; }

Property Value

CliCellStyle

Warning

Warning foreground accent; defaults to accent.
protected virtual CliCellStyle? Warning { get; }

Property Value

CliCellStyle

WarningSurface

Warning message-box surface; composed from warning/accent ink when not overridden.
protected virtual CliCellStyle? WarningSurface { get; }

Property Value

CliCellStyle

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

style ThemeStyle

Returns

CliCellStyle

Exceptions

ArgumentOutOfRangeException
Thrown when style is 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

role SurfaceRole

Returns

SurfaceColors