aboutsummaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* chore(theme-studio): remove dead code and clear a type warningCraig Jennings32 hours8-199/+7
| | | | | | | | | - ramp (app-core.js) and its test-ramp.mjs: superseded by regenColumn, no production caller. - optList (app-core.js) and its tests: superseded by paletteOptionList. - ITALIC in generate.py: computed, never read (ITALIC_MAP is the live one). - a stray empty string in MU4E_FACES that .split() silently dropped. - the dead #familytest alias in the columntest gate, which HASHES never listed. - widen face_rows to Sequence[str], clearing the list-invariance warnings on the APPS calls.
* fix(theme-studio): make broken browser gates fail instead of silently passingCraig Jennings32 hours3-9/+17
| | | | | | run-tests.sh scored each browser gate by grepping the dumped DOM for the gate name and taking the first match. A gate that throws before setting its verdict left its own inlined source as the first match, and that source, "GATENAME '+(ok?'PASS':'FAIL')", contains the literal PASS, so the run reported green for a gate that never produced a verdict. The matcher now requires a resolved "GATENAME PASS" or "GATENAME FAIL". That exposed two gates that had been throwing unnoticed. baseedittest still referenced fam after the variable was renamed to column, so it ReferenceError'd. columntest read getComputedStyle on a palette chip captured before a re-render detached it, so the match returned null and threw. baseedittest now uses column, and columntest re-queries the live chip by its selection index.
* fix(theme-studio): hold the package preview heightCraig Jennings32 hours2-2/+2
| | | | Selecting a compact package (auto-dim, with a 2-row face table and a short preview) collapsed the package section and shortened the page. A 60vh floor on the preview keeps the section sized to the largest of the columns, the preview, or that floor, so switching packages no longer shrinks the page.
* fix(theme-studio): name exported themes from the source filenameCraig Jennings32 hours2-5/+7
| | | | The converter took the theme name from the JSON's internal name field, so every draft whose field read "theme" overwrote theme-theme.el. It now uses the JSON file's basename, so WIP.json becomes WIP-theme.el and each draft lands under its own name. The reload target derives the load name from the basename too, and a regression test pins it: the filename wins over the internal field.
* feat(theme-studio): auto-dim split previewCraig Jennings35 hours8-5/+142
| | | | | | | | auto-dim-other-buffers is a package face, not a theme face, so build-inventory.el (it scans only elpa/straight packages) never listed it and the studio couldn't theme it. This adds it as a bespoke app. The preview is a vertical split: the focused window on the left in real syntax colors, the same code on the right collapsed to the single auto-dim-other-buffers face, the way Emacs renders a non-selected window. Both panes follow the language selector. A trailing row shows auto-dim-other-buffers-hide, whose foreground matches the background so it vanishes when dimmed. A #autodimtest gate covers the split, the uniform recolor, and language sync.
* fix(theme-studio): keep dropdown color names legibleCraig Jennings35 hours3-3/+32
| | | | | | The color-picker popup colored each row's name and hex for contrast against the swatch, but the rows sit on the popup's fixed dark background. A mid or dark swatch (the blues past blue-1) got near-black text that vanished on the dark popup. The text now inherits the popup foreground for every real palette color. Only the solid "default" row, whose background is the color itself, still contrasts against its own fill. I moved the decision into dropdownRowTextColor with unit coverage, including a dark-swatch regression case.
* chore(theme-studio): drop scratch theme JSONs, ignore working artifactsCraig Jennings35 hours5-43430/+0
| | | | Remove the distinguished-revised, distinguished-test, dupre-rebuild, dupre-revised, and sterling2 experiment snapshots, and ignore WIP.json and themes/theme-theme.el so working scratch stays out of the tree.
* feat(theme-studio): make targets for the build-theme converterCraig Jennings35 hours1-1/+34
| | | | theme-studio-theme converts a Theme Studio JSON export to themes/<name>-theme.el. theme-studio-theme-load disables the custom themes and loads one in the running Emacs. theme-studio-theme-reload chains the two. Each delegates to the scripts/theme-studio/Makefile and errors clearly when its required JSON or THEME argument is missing.
* feat(theme-studio): palette generator and preview fidelityCraig Jennings35 hours15-503/+2953
| | | | | | | | | | Two strands land together because the generated theme-studio.html bundles every source file into one page and can't be split cleanly. The palette generator is a preview-first panel: palette-generator-core.js plans the palette and palette-generator-ui.js draws it. Generated colors stay inspectable and tunable through the existing selector, and committing one creates a normal base column. It adds source-mode and scheme controls, a configurable accent count, and color names from color-names.json. For preview fidelity, syntax and UI colors now resolve through the real Emacs inherit chains, so the preview matches how Emacs renders the theme. resolveSyntaxFg pins dec to ty (Emacs has no decorator face) and otherwise follows comment-delimiter to comment, doc to string, property to variable, function-call to function-name. resolveUiAttr walks mode-line-inactive to mode-line and line-number-current-line to line-number. The decorator label now reads "decorator to type" to match the type face Emacs uses for it. Design recorded in the two theme-studio specs under docs/.
* Update theme studio palette workflowCraig Jennings2 days28-1792/+51998
|
* Add theme studio box color controlsCraig Jennings2 days5-32/+75
|
* Shorten theme studio reset erase labelsCraig Jennings2 days5-33/+32
|
* Clarify theme studio reset and erase actionsCraig Jennings2 days5-38/+83
|
* Add theme studio face color step arrowsCraig Jennings2 days7-30/+158
|
* Preview selected theme studio chip while pickingCraig Jennings2 days4-12/+40
|
* Change theme studio spans to endpoint divisionsCraig Jennings2 days6-35/+72
|
* Remove theme studio save buttonCraig Jennings2 days4-29/+10
|
* Fix theme studio span endpoint tilesCraig Jennings2 days7-31/+57
|
* Sort theme studio dropdown colors by lightnessCraig Jennings2 days4-8/+38
|
* Fix theme studio ground endpoint editCraig Jennings2 days3-6/+28
|
* Fix theme studio fg endpoint selectionCraig Jennings2 days3-6/+30
|
* Refine theme studio tile name editingCraig Jennings2 days5-8/+43
|
* Make theme studio column delete saferCraig Jennings3 days5-10/+31
|
* Add theme studio Rust and Zig samplesCraig Jennings3 days5-4/+95
|
* Add theme studio column deleteCraig Jennings3 days7-12/+103
|
* Refactor theme studio palette testsCraig Jennings3 days9-679/+835
|
* Add theme studio palette clear and lock togglesCraig Jennings3 days3-10/+112
|
* Fix theme studio ground column orderCraig Jennings3 days2-12/+34
|
* Fix theme studio bg-prefixed span inferenceCraig Jennings3 days4-12/+26
|
* Fix theme studio style button stateCraig Jennings3 days2-2/+26
|
* Fix theme studio bg-like imported colorsCraig Jennings3 days5-44/+111
|
* Add theme studio column selection and reorder controlsCraig Jennings3 days3-10/+120
|
* Set theme studio default picker colorCraig Jennings3 days3-12/+14
|
* Group numeric color names by stemCraig Jennings3 days5-4/+16
|
* Treat legacy color names as base columnsCraig Jennings3 days5-4/+28
|
* Split theme studio generator data and templateCraig Jennings3 days4-384/+394
|
* Add theme studio default face drift summaryCraig Jennings3 days3-1/+102
|
* Pin theme studio preview links and column exportsCraig Jennings3 days4-10/+58
|
* Add theme studio generated file checkCraig Jennings3 days2-1/+12
|
* Rename theme studio column browser gateCraig Jennings3 days4-10/+10
|
* Pin theme studio generated defaultsCraig Jennings3 days1-0/+32
|
* Refactor theme studio face assemblyCraig Jennings3 days8-61/+205
|
* Rename theme studio color model to columnsCraig Jennings3 days5-187/+187
|
* Guard theme studio package face coverageCraig Jennings3 days1-0/+35
|
* Extract theme studio default face adapterCraig Jennings3 days3-81/+203
|
* Update theme studio color columns and defaultsCraig Jennings3 days10-460/+30503
|
* chore(theme-studio): record verification passes, file preview-fix tasksCraig Jennings4 days1-415/+584
| | | | Five manual checks verified, closing the contrast-cell and preview-bg bugs. An audit of the bespoke previews found three face mislinks (org headline-todo, erc input/default swap, flycheck delimiter swap) — filed with picker-visibility and Rust+Zig sample tasks. WIP theme picks up the revised steel selections.
* chore(theme-studio): snapshot WIP palette filesCraig Jennings5 days6-431/+31817
|
* fix(theme-studio): derive box bevel colors from the face backgroundCraig Jennings6 days5-16/+150
| | | | The released/pressed bevel was a flat translucent white/black overlay, which reads weaker than the box Emacs draws. reliefColors in colormath.js now ports Emacs 30's x_alloc_lighter_color: highlight = bg x1.2, shadow = bg x0.6, an additive boost for dark backgrounds, and the same-color fallback for pure black and white. boxCss takes the face's effective bg and derives both edges from it. Pressed swaps the pair, and the translucent pair remains only when no bg is known. Width stays 1px because dupre's :line-width -1 draws 1px lines in Emacs too. The gap was color strength, not width. Five node tests pin hand-computed fixtures from the C source, and a new #beveltest gate pins the wiring.
* fix(theme-studio): re-rate fallback contrast cells on default-fg changeCraig Jennings6 days2-2/+30
| | | | A default-fg (p) change only re-rated the covered overlay faces. UI-face and package ratios that fall back to the default fg kept their old number until something else rebuilt the tables. The p branch now runs the same repaint as a ground-bg change. The new #contrasttest assertion drives the real syntax dropdown (unlocking a locked p row for the test) so the handler wiring is pinned, not just the repaint helper.