Skip to content

Theme

theme

Defines the "Sumi & Shu" theme for the Flet GUI

Exposes a color palette, a Material ft.Theme + Font Registration, and themed subclasses for flet primitives

Fontend + CLI Design
  • Warm Sumi-Ink Surfaces
  • Washi Text
  • Single Vermilion (shu) Accent

ButtonProgressRing

Bases: ProgressRing

Builds a small leading progress ring to be shown while a button is loading

Parameters:

Name Type Description Default
color str

The ring colour

required

HelpIcon

Bases: IconButton

Builds a faint ? icon that reveals text as a hover tooltip

Parameters:

Name Type Description Default
text str

The tooltip text (typically a long field description)

required

NotificationBar

Bases: SnackBar

A floating, globally styled toast notification

PrimaryActionButton

Bases: ElevatedButton

A primary (shu) action button that can swap to a loading spinner

set_loading(is_loading)

Toggles a leading spinner without changing the button's footprint

Only the leading icon is swapped for a progress ring (the label is kept), so the button keeps its shape; it is disabled while loading to prevent double-clicks

Parameters:

Name Type Description Default
is_loading bool

Whether to show the spinner

required

SecondaryActionButton

Bases: OutlinedButton

A secondary (outlined) action button that can swap to a loading spinner

set_loading(is_loading)

Toggles a leading spinner without changing the button's footprint

Only the leading icon is swapped for a progress ring (the label is kept), so the button keeps its shape; it is disabled while loading to prevent double-clicks

Parameters:

Name Type Description Default
is_loading bool

Whether to show the spinner

required

Section

Bases: SurfaceCardContainer

Builds a SurfaceCardContainer (ft.Container) with a custom ft.Column as its content to be used as a section

Forwards all kwargs to the underlying ft.Container

SettingsDropdown

Bases: Column

A themed dropdown field following the same open layout as SettingsInput

Inherits from ft.Column and exposes all of its arguments

SettingsInput

Bases: Column

A labelled, full-width text input

Inherits from ft.Column and exposes all of its arguments

The label sits above a full-width field. An optional description is shown as a ? hover tooltip beside the label, and an optional helper line can sit below the field

Attributes:

Name Type Description
field TextField

The underlying text field

SurfaceCardContainer

Bases: Container

Wraps content in a surface card with a hairline border

Inherits from ft.Container, exposing all of its arguments

TerminalSurface

Bases: Container

The shared output surface for streamed command output

Inherits from ft.Container and exposes all of its arguments

Layout
  • Shows a monospace log list inside a bordered card with a status header

  • A header button clears the log list, leaving the status and any running operation untouched

  • A header toggle hides the log list (preserving its contents) and shrinks the card to its header bar.Toggling again restores it

  • In-progress status is shown in the header

  • final success / error outcomes are surfaced as toasts by the actions that drive the surface

Attributes:

Name Type Description
list_view ListView

The scrolling, monospace log list

status_text Text

The colour-coded header status label

copy_button IconButton

Copies the buffered output to the clipboard

clear_button IconButton

Clears the log list

logs_toggle IconButton

Hides / shows the log list

append_log(text)

Renders one monospace output line

Docker per-layer progress lines are collapsed by layer id, overwriting a single in-place row coloured by status, so a pull reads like a console instead of a flood of per-update lines. Every other line is appended as usual, with a leading key ↦ column dimmed

Parameters:

Name Type Description Default
text str

The output line to render

required

clear()

Clears all current log lines

set_status(text, kind='muted')

Updates the colour-coded header status label

Parameters:

Name Type Description Default
text str

The status message

required
kind str

A key fromt the status palette (success / danger / warning / info / muted)

'muted'

MirumojiTheme()

Builds the GUI's global theme

Defines a ft.ColorScheme based on the Sumi & Shu Color Palette

Fonts
  • Uses the Hanken Grotesk font for main UI + body text

  • Uses Newsreader for headlines and labels

Returns:

Type Description
Theme

The configured ft.Theme object

StatusPill(text, kind='muted', **kwargs)

A rounded, tinted status chip built from an ft.Container

Parameters:

Name Type Description Default
text str

The chip's label

required
kind str

A key fromt the status palette (success / danger / warning / info / muted)

'muted'
**kwargs Any

Additional arguments for the underlying ft.Container

{}

Returns:

Type Description
Container

The configured ft.Container