# `MingaEditor.State.Appearance`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/state/appearance.ex#L1)

Per-editor appearance configuration shared by render frontends.

Theme selection, native font override, and the cached semantic GUI settings
snapshot move together while parser highlight recoloring remains a root-wide
appearance/parser transition.

# `t`

```elixir
@type t() :: %MingaEditor.State.Appearance{
  font_size_override: pos_integer() | nil,
  gui_config_state: Minga.RenderModel.UI.ConfigState.t() | nil,
  theme: MingaEditor.UI.Theme.t()
}
```

# `cache_gui_config`

```elixir
@spec cache_gui_config(t(), Minga.RenderModel.UI.ConfigState.t() | nil) :: t()
```

Caches the semantic native settings snapshot emitted in-frame.

# `override_font_size`

```elixir
@spec override_font_size(t(), pos_integer() | nil) :: t()
```

Applies or clears the per-editor native font-size override.

# `select_theme`

```elixir
@spec select_theme(t(), MingaEditor.UI.Theme.t()) :: t()
```

Selects the active editor theme.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
