Repository navigation
Releases
Releases · andreabedini/lipstick
v0.1.0.0
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, andmaxWidth/maxHeight
on every kind butInlinetext. - Blocks: rendering to a structured block of styled spans, joining, placing,
framing and measuring; ANSI only on output. - Inline text with nested styles,
fromAnsifor text with escape sequences,
breakAfterfor extra break characters,styleRangesandstyleIndices. - Blocks are laid out in the width they are given: text wraps to fit,
fillWidth/growshare out spare columns,stretchHeightmatches the
height of a row, and theRenderEnvcarries the output's width. - Unicode 16.0.0 grapheme clusters (UAX #29) and East Asian Width, from
tables generated byscripts/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,
transparentlayers, 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
fromCOLORFGBGor by asking the terminal, hyperlinks.