// Positioning & spacing — pin (the 9 named anchor points), translate (a
// post-placement nudge), and the 1/2/4-value padding & gap forms. Palette colours.
{
direction: row; gap: 24; padding: 24; align: start;
|dot::block| { font-size: 12; }
}
// pin: lift a child out of flow and centre it on a named point of the parent
|group#anchors| { 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| { 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| { 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;
}
]