Skip to content

Releases

v0.1.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 09:31

First version: a port of lipgloss v2.

  • Styles as optparse-applicative-style modifiers (Mod): text attributes,
    padding and margins (with fill characters), borders (presets, per-side
    colours, gradients), width and height, alignment, wrapping or truncation,
    inline rendering, tab width, transform, unset modifiers and getters.
    Text attributes work on every kind of thing, and maxWidth/maxHeight
    on every kind but Inline text.
  • Blocks: rendering to a structured block of styled spans, joining, placing,
    framing and measuring; ANSI only on output.
  • Inline text with nested styles, fromAnsi for text with escape sequences,
    breakAfter for extra break characters, styleRanges and styleIndices.
  • Blocks are laid out in the width they are given: text wraps to fit,
    fillWidth / grow share out spare columns, stretchHeight matches the
    height of a row, and the RenderEnv carries the output's width.
  • Unicode 16.0.0 grapheme clusters (UAX #29) and East Asian Width, from
    tables generated by scripts/GenUnicodeTable.hs.
  • Tables: cells are blocks; header, column and row rules, cell styles by
    position, fitting a width, height with scrolling, truncation.
  • Text settings (alignment, wrapping, break characters, tab width,
    transform, inline) are inherited by the text inside a framed block.
  • Lists and trees (Outline): enumerators, indenters, item, enumerator and
    indenter styles, width, item offsets.
  • Layers: offsets, z-order, transparent layers, sublayers, hit testing.
  • Lipstick.Grid: the laid-out lines, cells and styled spans of a block,
    for other outputs.
  • Colours: hex and palette literals, light/dark and per-profile colours,
    downsampling, blend, blend2D, darken, lighten, complementary.
  • Output: colour profile detection (NO_COLOR, CLICOLOR_FORCE,
    COLORTERM, TERM), ANSI processing on Windows, background detection
    from COLORFGBG or by asking the terminal, hyperlinks.