Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
e7c5117
experimental theme: hunt69 (how amounts: one parser for every way an …
josephfarina Nov 13, 2026
63c4127
experimental theme: hunt68 (how: fills from the part's own at rest, e…
josephfarina Nov 13, 2026
9ebbee4
experimental theme: hunt70 (the app copy is said behind by every buil…
josephfarina Nov 13, 2026
e805d4d
experimental theme: hunt71 (path and camelCase names reach the theme …
josephfarina Nov 13, 2026
6aac8d6
fix(cli): experimental theme preview follows through (remove of a fil…
josephfarina Nov 13, 2026
23f45ce
experimental theme: hunt73 (a hand-edited headings value with no axis…
josephfarina Nov 13, 2026
ef6eab0
experimental theme: parts43 (one-mode colors per variant with each va…
josephfarina Nov 13, 2026
84d6f0c
fix(cli): experimental theme editor offers a saved French-quoted font…
josephfarina Nov 13, 2026
b67e27f
test(cli): experimental theme tests are named by what they check
josephfarina Nov 13, 2026
d19ec5d
experimental theme: a one-mode color on each variant keeps the other …
josephfarina Nov 13, 2026
879678c
experimental theme: how reads padding sides outside part names, bigge…
josephfarina Nov 13, 2026
ca8b99e
experimental theme: the appCopyStale description lists every reason i…
josephfarina Nov 13, 2026
0b8c4b3
experimental theme: a one-mode color per variant keeps a variant's ow…
josephfarina Nov 13, 2026
7e0c504
experimental theme: compile and check follow the app copy (check fail…
josephfarina Nov 13, 2026
3dd568e
experimental theme: a one-mode color per variant keeps the part's ear…
josephfarina Nov 13, 2026
304f4e3
experimental theme: no plain background is repeated after a variant's…
josephfarina Nov 13, 2026
2803f8c
experimental theme: a whole-part shorthand is copied to a variant unl…
josephfarina Nov 13, 2026
5ba4355
experimental theme: an --out at the app copy folder itself is refused…
josephfarina Nov 13, 2026
14e91e0
experimental theme: how reads inline, block, horizontal and vertical …
josephfarina Nov 13, 2026
6cc2a03
experimental theme: whether a whole-part property is copied to a vari…
josephfarina Nov 13, 2026
e0735a0
test: record the preview-safety suite's run time
josephfarina Nov 13, 2026
40932d0
Merge remote-tracking branch 'origin/main' into next9
josephfarina Nov 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/experimental-theme-app-copy-check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme compile`: `--check` of an editor theme also checks its app copy in `src/themes/<theme>/` and fails with `ERR_THEME_STALE`, saying why, when the copy is kept back, missing a file, gone, or not the current build. Each theme's copy follows its own build, so a later theme failing no longer leaves an earlier one's copy behind. The copy's files are not theme sources: compiling its descriptor, a copy build file or `src/astryx-themes.ts` names the theme to compile, the copy's source from a subfolder names the app root, and an `--out` into the copy folder is refused. A copy left with only its build outputs is still the editor's, a copy file that is gone is written back by the next `set`, and a folder the copy could not be made in is named. The compile help says it writes and checks the app copy.

@josephfarina
7 changes: 7 additions & 0 deletions .changeset/experimental-theme-how-sides-in-names.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme editor how`: padding side words are read with the part's name taken out, so "code block padding" and "top nav padding" set every side of that part. "Card padding bigger (or smaller) than button padding" gives a step past (or under) the button's padding, never a copy of it. A dimension pair such as "16 x 16" is a size, never an amount.

@josephfarina
7 changes: 7 additions & 0 deletions .changeset/experimental-theme-hunt68.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme editor how`: "lighter" or "darker" on a part's fill starts from the fill it shows at rest (its own setting first; never a pressed overlay), uses the amount asked and keeps a see-through color see-through. "except" keeps every excepted part or variant at the value it has now (its own shadow, its own weight) in one answer, says when a part reads none of what changes, and says when an excepted place is not a part. Sub-parts and catalog parts named in words go to that part ("dialog header", "dialog title", "code block header", "text inputs", "date pickers", "toggle buttons", "select boxes", "switches"); a sub-part Core lacks ("card header") is answered for the whole part, and the answer says so. "As round as", "the same padding as" and "match" copy the other part's value onto the first part only (an amount of it with "twice as round as"). Each clause keeps its own variant; a bare size in a list of text changes is the font size; "headings 20% bigger" scales every heading level from its own size; a font stack stays whole on the part; side words write only those padding sides; a part whose name has a state word ("hover card") is the part; "card text lighter" and "dialog text twice as big" get commands; a second part with an ask of its own keeps it; and a theme name near the one typed with `--theme` suggests the same question.

@josephfarina
7 changes: 7 additions & 0 deletions .changeset/experimental-theme-hunt69.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme editor how` reads every way an amount is said ("a quarter bigger", "half again", "2x", "×2", "x0", "4 times", "by a factor of 2", "+50%", "-25%", "50 percent", "½") as a factor of what is there now, never as a length and never with an extra dial step; keeps fractions of a pixel; scales a part's line height and opacity the asked way ("50% more transparent" lowers the opacity and leaves the fill); answers whole-theme radius and border width amounts with exact token values (a whole-theme spacing or text amount it can only step says so); says when a part has no width to scale instead of giving a fixed cap; scales an own side padding with the rest; keeps the state and variant of a "2px rounder on hover" move and of a padding step; reads a corner percent with an amount ("50% of now", "20% bigger") as an exact radius, never a CSS percent; says when a corner amount can only step; and reads "no inner spacing", "zero padding" and "no gap" as zero of that thing, in the state asked.

@josephfarina
7 changes: 7 additions & 0 deletions .changeset/experimental-theme-hunt70.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme`: every command that builds or checks an editor theme says when its app copy in `src/themes/<theme>/` is behind: `compile` warns, `compile --check` fails while the copy is kept back or gone, and a `set` that changes nothing still carries `appCopyStale`. A link or a folder of yours at a copy file name stops the copy like a file of yours does, and a copy that cannot be written says why (not writable, disk full, a file where the folder goes). A copy whose descriptor was deleted is still the editor's and is written back. Compiling the copy's source takes the theme's lock and writes the copy again; with the copy gone it names `editor show`. Fonts the copy's font stylesheet loads are not called unloaded. The editor and compile help say the copy rule.

@josephfarina
13 changes: 13 additions & 0 deletions .changeset/experimental-theme-hunt71.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme editor`: names, damaged themes and stops.

- A theme name typed as a path (`themes/brand`, `./t`, `t/`) names the theme it ends in, and says when that theme is here already; a typo of a theme name offers the nearest theme by spelling first (`brand-drak` is `brand-dark`, not `brand`), and a camelCase name is the dashed one (`brandDark` is `brand-dark`, `themePark` is `theme-park`), never a new theme.
- A refusal names a command that works: `undo` on a theme whose settings cannot be read and that has no history names `new <theme>`, not `show`; a damaged mode or base no longer sends each fix to the other (changing or removing a setting puts the field back to its default and says so); a settings entry with no thing or no source is damage `new` keeps aside, as the refusal says.
- A folder holding only `desktop.ini` is empty, like one holding only `Thumbs.db` or `.DS_Store`.
- An `undo` that switches the theme between one mode and both names the app's `<Theme mode>` to add or take out, as `set mode` does; `undo --help` says `--mode` removes a setting saved for one mode in a one-mode theme.
- Stopped (Ctrl-C) while the checks and pictures run after a change, the editor says the change is saved and built and that `show` runs the rest.

@josephfarina
7 changes: 7 additions & 0 deletions .changeset/experimental-theme-hunt72.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme editor` and `preview`: `preview remove --path` given a file is refused with the preview's folder (it reported an unknown error). Pictures are taken under a part name and moved into place, so a `--png` run stopped while the browser runs leaves nothing the next run reads as a file of yours. The `see` line names `preview add --theme <name>` when the project has several editor themes; gives no URL for a preview moved where Next does not serve it, saying why; says preview.html could not be written when a folder is in the way; says what blocked `--png` when a picture of yours did; names files by paths that work from a subfolder; and says when the in-app preview was changed by hand, as `previewStale` now does with what to move out. The show help says pictures change nothing in the app, except that show first brings the app copy up to date after a hand edit. A dial value labeled with another setting (`accent 'neutral: #64748b'`) is refused with that setting's line. The input cleanup reads corner brackets as quotes, keeps escaped quotes and brackets inside strings, reads a light and a dark color typed as a pair (offering `light-dark()` or two `--mode` lines, or one color for a dial), splits a JSON object of several settings into one line each, reads a JSON-escaped font stack, maps `--mode night` and `day` to dark and light, and reads `vibrancy 0.5` and `"50"` as 50; a saved value with paste debris or `!important` is offered cleaned.

@josephfarina
7 changes: 7 additions & 0 deletions .changeset/experimental-theme-hunt73.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme editor`: a hand-edited settings entry the editor refuses is offered only commands that unlock the theme. A `headings` value saved with no axis is its weight half, so `set <theme> headings <weight>` or `undo <theme> headings` replaces or removes it; a `mode` or `base` entry put in the settings list is removed by `undo <theme> mode` (or `base`), and no `set` line is offered for it (those set the theme's own mode and base).

@josephfarina
7 changes: 7 additions & 0 deletions .changeset/experimental-theme-hunt74.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme editor`: a saved font family in French quotes (`« Inter »`, with plain, no-break or narrow no-break spaces) is offered as `"Inter"`, the value set saves, not `" Inter "`.

@josephfarina
15 changes: 15 additions & 0 deletions .changeset/experimental-theme-parts43.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
'@astryxdesign/cli': patch
---

[experimental] `astryx experimental theme editor`: per-variant colors in one mode, hover on every variant, later longhands, nested cards and kept sizes.

- A one-mode color (`--mode`, or any color in a `light-only` or `dark-only` theme) on a part whose variants each have their own (a button or card background, a badge's text) goes to each variant's own rule, with the other mode's half exactly what that variant showed there (the base theme's value, else Core's; transparent stays transparent), so the other mode is unchanged for every variant; a variant's own hover still shows.
- A whole-part hover background (`--state hover`) reaches every variant, including ones the base theme gives their own hover or resting color.
- A longhand set after a shorthand wins even where the base theme holds that longhand (`padding-inline` after `padding`, `border-color` after `border`).
- A plain card inside a variant card keeps the card padding the editor gives it, in each text direction, and a variant's own padding (from the settings or your own source) no longer leaks into it; a variant your own source pads keeps its padding after an unequal editor padding on the plain card.
- The spacing dial keeps every exact control size the theme keeps (in px, rem or calc, from your own source, or set on the part) in order, on a part too; a size with no room between two kept ones takes the smaller one's size, and the result says so.
- `--mode` refused on a border names the variant in the per-mode color step; a gradient is offered as written for both modes.
- With your own source setting one corner, the corners note says the dial shows on the other corners after the undo.

@josephfarina
Loading
Loading