diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-18 21:24:25 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-18 21:24:25 -0500 |
| commit | f23e7de0b529482a2db726e1ffea5de7018b66a2 (patch) | |
| tree | 53bf1a752c9b8ffe5c27016a3681d3d6d2307602 /scripts/theme-studio/face_specs.py | |
| parent | 39f65e62f529ba522d73042e75c1faffcfa601cb (diff) | |
| download | dotemacs-f23e7de0b529482a2db726e1ffea5de7018b66a2.tar.gz dotemacs-f23e7de0b529482a2db726e1ffea5de7018b66a2.zip | |
feat(theme-studio): emit the full face-attribute model from build-theme
I extended build-theme's emitter to the full attribute set: family, distant-foreground, a weight and slant range, structured underline (color and wave), overline, strike color, inverse-video, extend, and inherit/height on every tier. It still reads the legacy boolean bold/italic/underline/strike fields, so every committed preset round-trips unchanged.
The emitter is the first piece of widening the studio to all face attributes; the model and UI that produce these fields come next. To keep the change clean I refactored --attrs from nine positional arguments to a single face-spec object and lifted the accessor helpers above their callers.
Added 40 ERT tests covering legacy compatibility, each new attribute, the coercion helpers' edge cases, and an end-to-end round-trip that loads a theme and reads the attributes back off the faces. They run in the theme-studio suite as a new stage.
Diffstat (limited to 'scripts/theme-studio/face_specs.py')
0 files changed, 0 insertions, 0 deletions
