aboutsummaryrefslogtreecommitdiffstats
path: root/docs/config.md
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-16 00:38:17 +0200
committeruser <user@clank>2026-08-16 00:38:17 +0200
commit8079f982bb240d6594b060caee7a5ac6f89e39b3 (patch)
treee316fd3504360d1123774eb3a1a35459ef5ce725 /docs/config.md
parentsl0ppty: sl0ppty --check (diff)
downloadslosh-8079f982bb240d6594b060caee7a5ac6f89e39b3.tar.gz
slosh-8079f982bb240d6594b060caee7a5ac6f89e39b3.tar.xz
slosh-8079f982bb240d6594b060caee7a5ac6f89e39b3.zip
sl0ppty: padding, per side
padding 1 // every side padding 0 2 // vertical, horizontal padding 2 0 0 1 // top, right, bottom, left One value, two, or four in CSS order, because that is the order anybody who has written a stylesheet already knows. `pad` becomes four fields and the content rect is deflated per side rather than symmetrically, which is the only real change: everything downstream already worked off `n->content`. The units do not change with how many numbers you write. They are ROWS, like `gap`, and a horizontal one is multiplied by `gap_aspect` on the way out -- so `padding 1`, `padding 1 1` and `padding 1 1 1 1` are one padding rather than three, and a ring that looks square is still one number rather than an arithmetic problem. Anyone who wants plain cells sets `gap_aspect 1` and gets them everywhere, which is what that knob is for. Three values is refused with a line saying what it wanted. CSS reads it as top/horizontal/bottom, and a line whose meaning you have to look up is a line nobody can read -- and `sl0ppty --check` now has something to say about it, which is the difference between refusing and ignoring. The dump writes the shortest form that means what is in force, so `padding 0` stays `padding 0` and a dump of a dump is still the same dump. Checked by measuring both rects: a pane's insets from its own frame, four numbers, for every form -- including that `gap_aspect 1` turns the horizontal ones into cells, and that a refused padding leaves the rest of the file applied.
Diffstat (limited to 'docs/config.md')
-rw-r--r--docs/config.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/docs/config.md b/docs/config.md
index e18f91e..b504111 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -109,6 +109,25 @@ theme { frame_focus "#00ff88" } // ...but that one colour is mine
| effects | `shaders { }`, `states { }` — see [shaders](shaders.md) and [chrome](chrome.md) |
| keys | `keys { }` — see [keys](keys.md) |
+Two of those take more than one value. `gap` is in **rows**, and `gap_aspect`
+says how many columns a row is worth (2 by default, because a cell is about
+twice as tall as it is wide) — so both `gap` and `padding` are written in rows
+and come out looking square.
+
+`padding` is the space between a pane's frame and its contents, written the way
+CSS does it:
+
+```kdl
+padding 1 // every side
+padding 0 2 // vertical, horizontal
+padding 2 0 0 1 // top, right, bottom, left
+```
+
+A number means the same thing however many of them you write, so `padding 1`,
+`padding 1 1` and `padding 1 1 1 1` are one padding rather than three. Three
+values is refused — CSS reads it as top/horizontal/bottom, and a line whose
+meaning you have to look up is a line nobody can read.
+
## Pane states
A pane is tinted by what is *true* of it, which is the part you cannot discover