lini 0.11.2

Pretty diagrams from plain text, with fine-grained control. Compiles to clean, themeable SVG.
Documentation
// Positioning & spacing — pin (the 9 named anchor points), translate (a
// post-placement nudge), and the 1/2/4-value padding & gap forms. Palette colours.
{
  layout: row; gap: 24; padding: 24; align: start; font-weight: normal;
  |dot::block| { font-size: 12; }
}

// pin: lift a child out of flow and centre it on a named point of the parent
|group#anchors| { layout: column; gap: 8; } [
  |caption| "pin"
  |box#pins| {
    width: 210; height: 150; fill: --sky-wash; stroke: --sky-ink; radius: 8;
  } [
    |dot| "center" { pin: center; color: --teal-ink; }
    |dot| "TL" { pin: top left; color: --rose-ink; }
    |dot| "T" { pin: top; color: --rose-ink; }
    |dot| "TR" { pin: top right; color: --rose-ink; }
    |dot| "L" { pin: left; color: --rose-ink; }
    |dot| "R" { pin: right; color: --rose-ink; }
    |dot| "BL" { pin: bottom left; color: --sky-ink; }
    |dot| "B" { pin: bottom; color: --sky-ink; }
    |dot| "BR" { pin: bottom right; color: --sky-ink; }
  ]
]

// translate: a flow nudge, a tucked-in badge, and exact centre placement
|group#moves| { layout: column; gap: 14; } [
  |caption| "translate"
  |row| { gap: 14; align: center; } [
    |box#a| "A" { fill: --amber-soft; stroke: --amber-ink; color: --amber-ink; }
    |box#b| "nudged" {
      fill: --amber-soft; stroke: --amber-ink; color: --amber-ink; translate: 0 12;
    }
    |box#c| "C" { fill: --amber-soft; stroke: --amber-ink; color: --amber-ink; }
  ]
  |box#card| {
    width: 140; height: 74; fill: --purple-wash; stroke: --purple-ink; color: --purple-ink;
  } [
    "Card"
    |badge| "9" { translate: -4 4; }
    |block| "id 42" { pin: center; translate: 0 24; color: --muted; }
  ]
]

// padding & gap take 1-, 2-, or 4-value forms
|group#spacing| { layout: column; gap: 10; } [
  |caption| "padding"
  |box| "scalar" {
    fill: --green-soft; stroke: --green-ink; color: --green-ink;
  }
  |box| "v h" {
    padding: 4 14; fill: --green-soft; stroke: --green-ink; color: --green-ink;
  }
  |box| "t r b l" {
    padding: 2 8 16 24; fill: --green-soft; stroke: --green-ink; color: --green-ink;
  }
  |box| "radius 12" {
    radius: 12; fill: --green-soft; stroke: --green-ink; color: --green-ink;
  }
]