Use semantic roles.
Flyology_TUI.Themes maps body, muted, focus, selection, success, danger, and control roles to styles. Convert a theme into a component appearance or pass an explicit appearance to rendering.
Keep ordinary text neutral. Use color, weight, underline, brackets, borders, and glyphs to establish hierarchy.
Skins change component structure.
Flyology_TUI.Skins can change window frames, button markers, tab cues, menu frames and fills, scrollbar glyphs, and other visual structure.
Charm uses light single-line frames and compact control markers. Turbo Vision uses double-line frames, hard shadow cells, filled menus, and block control markers. A skin remains a borrowed render-time value.
Adapt to terminal capability.
Flyology_TUI.Color_Profiles resolves monochrome, ANSI 16, ANSI 256, or truecolor output. An explicit policy can override automatic detection.
Do not rely on color alone. Keep the active state visible after color reduction.
Add gradients when the terminal supports color.
Flyology_TUI.Components.Gradients applies semantic RGB ramps to complete surface cells. The renderer reduces them for the selected profile.
Use ramps for charts, gauges, heatmaps, and bounded telemetry. Keep text and control labels readable without the ramp.