Skip to content

v0.10.0

Choose a tag to compare

@unixsuperhero unixsuperhero released this 27 Oct 01:18
· 416 commits to main since this release

An unfocused list keeps its selected row, faded; the dims are settings. A list can clear its filter when enter picks a row.

Unfocused lists and dims

  • A page list without the focus keeps its selected row in reverse video and is drawn faded as a whole, so the row an unfocused list is on (a tree beside a live terminal) stays visible and the focused row is the one highlight at full strength. A list in a modal stays plain until focused; a tree editing a line is not faded. Replaces the old rule "an unfocused list draws every row plain" (UX rule R5.1). Stories lists/unfocused-dimmed, lists/beside-terminal-keeps-row.
  • Two framework settings, declared by EnsureConfigSettings: dim-unfocused (percent an unfocused list fades toward the background, default 20) and modal-dim (the page behind a modal, default 35, the backdrop's look until now). Both 0 to 90 (MaxDim); 0 is off.
  • Styles.Fade(percent) blends the scheme's text colour toward its surface (lipgloss.Blend1D, perceptual); in mono or NO_COLOR any fade is the faint attribute. Styles.WithDims(modal, unfocused) sets the new Styles.Backdrop and Styles.Unfocused; Model.Styles() applies the settings. NewStyles uses the defaults.
  • o-story: highlighted counts full-strength highlights only; the new dimmed counts highlights under faint; goldens mark a dimmed-only row r|.

Lists

  • ClearFilterOnEnter() (an InstanceOption for AddList and AddTree): enter in the list's filter line chooses the selected match (list.filter-choose, guard list-chooses): the filter clears, the selection stays on that row and on screen, the mode is normal. With no match enter keeps the filter, as on every list; other lists are unchanged. Story lists/filter-enter-clears.

Fixes

  • Custom components' explicit Block.Cursor now reaches Model.View().Cursor without a focused input, using the normal block or visual underline shape. Blocks without a cursor remain hidden; input and terminal cursor shapes are unchanged.