@axiapps/axi-design 1.46.0 → 1.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/axi.css +13 -0
- package/dist/themes/flat.css +4 -0
- package/dist/themes/glass.css +5 -1
- package/docs/RULES.md +13 -4
- package/package.json +1 -1
- package/src/shells.css +13 -0
package/dist/axi.css
CHANGED
|
@@ -2516,6 +2516,12 @@ textarea.axi-input {
|
|
|
2516
2516
|
display: flex; align-items: center; gap: 12px;
|
|
2517
2517
|
height: 38px; padding-left: 14px;
|
|
2518
2518
|
background: var(--axi-ground-deep);
|
|
2519
|
+
/* The chrome takes the surface filter for the same reason a panel does: on a
|
|
2520
|
+
theme that makes its surfaces translucent, the one strip a reader never
|
|
2521
|
+
scrolls away is the one that has to agree. --axi-surface-filter is none on
|
|
2522
|
+
every opaque surface, so this is inert there - the same inert-by-default
|
|
2523
|
+
shape the panels already use. */
|
|
2524
|
+
backdrop-filter: var(--axi-surface-filter);
|
|
2519
2525
|
border-bottom: var(--axi-border-control) solid var(--axi-ink-line);
|
|
2520
2526
|
font: var(--axi-t-micro);
|
|
2521
2527
|
letter-spacing: var(--axi-ls-micro);
|
|
@@ -2540,6 +2546,13 @@ textarea.axi-input {
|
|
|
2540
2546
|
/* Close is the one destructive control in the chrome, and the one place a
|
|
2541
2547
|
status ink belongs in a titlebar. */
|
|
2542
2548
|
.axi-titlebar__btns :where(button:last-child:hover) { background: var(--axi-danger); color: var(--axi-ink-on-fill); }
|
|
2549
|
+
/* The page-wide ring sits 2px OUTSIDE its element, which a window button
|
|
2550
|
+
cannot afford: it is flush to the top of the frame and flush to its
|
|
2551
|
+
neighbours, so an outward ring spills past the window edge and reads as a
|
|
2552
|
+
loud accent box across the corner of the chrome. Pull it inward, the same
|
|
2553
|
+
way a picker option and a select option already do inside their own tight
|
|
2554
|
+
containers. */
|
|
2555
|
+
.axi-titlebar__btns :where(button:focus-visible) { outline-offset: -3px; }
|
|
2543
2556
|
/* The scrolling region under the chrome. */
|
|
2544
2557
|
.axi-window__body { flex: 1; overflow-y: auto; }
|
|
2545
2558
|
|
package/dist/themes/flat.css
CHANGED
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
--axi-text-dim: #8b929e;
|
|
18
18
|
--axi-text-faint: #5d6577;
|
|
19
19
|
--axi-scrim: rgba(4, 5, 8, .72);
|
|
20
|
+
--axi-offset-panel: 0;
|
|
21
|
+
--axi-offset-control: 0;
|
|
22
|
+
--axi-offset-panel-hover: 0;
|
|
23
|
+
--axi-offset-control-hover: 0;
|
|
20
24
|
--axi-shadow-panel: 0 2px 8px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .05);
|
|
21
25
|
--axi-shadow-control: 0 1px 4px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .045);
|
|
22
26
|
--axi-shadow-panel-hover: 0 6px 18px rgba(0, 0, 0, .5), 0 2px 5px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .07);
|
package/dist/themes/glass.css
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
--axi-surface-filter: blur(18px) saturate(140%);
|
|
14
14
|
--axi-ink-line: rgba(180, 200, 255, .16);
|
|
15
15
|
--axi-rule: rgba(180, 200, 255, .14);
|
|
16
|
-
--axi-ground-deep:
|
|
16
|
+
--axi-ground-deep: rgba(12, 14, 18, .72);
|
|
17
17
|
--axi-well-fill: rgba(6, 8, 14, .32);
|
|
18
18
|
--axi-accent-ink: #0c0e12;
|
|
19
19
|
--axi-ink-on-fill: #0c0e12;
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
--axi-text-dim: #b3bdd0;
|
|
22
22
|
--axi-text-faint: #7f8aa0;
|
|
23
23
|
--axi-scrim: rgba(4, 6, 12, .66);
|
|
24
|
+
--axi-offset-panel: 0;
|
|
25
|
+
--axi-offset-control: 0;
|
|
26
|
+
--axi-offset-panel-hover: 0;
|
|
27
|
+
--axi-offset-control-hover: 0;
|
|
24
28
|
--axi-shadow-panel: 0 18px 44px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .14);
|
|
25
29
|
--axi-shadow-control: 0 6px 16px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .12);
|
|
26
30
|
--axi-shadow-panel-hover: 0 26px 60px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .2);
|
package/docs/RULES.md
CHANGED
|
@@ -830,10 +830,19 @@ What is **not** a theme's to restate, and each for its own reason:
|
|
|
830
830
|
companions are not on this list: `--axi-accent-ink` and `--axi-ink-on-fill`
|
|
831
831
|
are the colour a word is written in when it sits on a fill, and a theme that
|
|
832
832
|
lightens the outline has to be able to hold them dark.
|
|
833
|
-
- **The offset scale.** `--axi-offset-*` is what the
|
|
834
|
-
composed *from
|
|
835
|
-
|
|
836
|
-
|
|
833
|
+
- **The offset scale, except to switch it off.** `--axi-offset-*` is what the
|
|
834
|
+
main theme's block is composed *from*, and retuning it underneath a restated
|
|
835
|
+
`--axi-shadow-*` would leave the two spellings of "the block" disagreeing.
|
|
836
|
+
A theme may set the offsets to `0` and may do nothing else to them. Zero is
|
|
837
|
+
not a retune — it is the same sentence the restated `--axi-shadow-*` is
|
|
838
|
+
already saying. This started out as a flat prohibition and shipped a bug:
|
|
839
|
+
the tokens are public, consumers compose blocks from them directly rather
|
|
840
|
+
than asking for `--axi-shadow-panel`, and a theme whose relief is a soft drop
|
|
841
|
+
was leaving a 6px near-black step standing behind every one of those cards.
|
|
842
|
+
On a square corner it read as a stray backdrop; on a rounded one it read as
|
|
843
|
+
broken rounding. A consumer still composing from the offsets now gets no
|
|
844
|
+
relief on a theme rather than the wrong one, which is a visible prompt to ask
|
|
845
|
+
for the composed block instead.
|
|
837
846
|
- **The measure.** `--axi-page`, `--axi-gutter`. Where the text wraps is not a
|
|
838
847
|
look, and moving it would reflow every page rather than repaint it.
|
|
839
848
|
- **The type.** `--axi-sans`, `--axi-mono`, `--axi-t-*`, `--axi-ls-*`. The same
|
package/package.json
CHANGED
package/src/shells.css
CHANGED
|
@@ -947,6 +947,12 @@
|
|
|
947
947
|
display: flex; align-items: center; gap: 12px;
|
|
948
948
|
height: 38px; padding-left: 14px;
|
|
949
949
|
background: var(--axi-ground-deep);
|
|
950
|
+
/* The chrome takes the surface filter for the same reason a panel does: on a
|
|
951
|
+
theme that makes its surfaces translucent, the one strip a reader never
|
|
952
|
+
scrolls away is the one that has to agree. --axi-surface-filter is none on
|
|
953
|
+
every opaque surface, so this is inert there - the same inert-by-default
|
|
954
|
+
shape the panels already use. */
|
|
955
|
+
backdrop-filter: var(--axi-surface-filter);
|
|
950
956
|
border-bottom: var(--axi-border-control) solid var(--axi-ink-line);
|
|
951
957
|
font: var(--axi-t-micro);
|
|
952
958
|
letter-spacing: var(--axi-ls-micro);
|
|
@@ -971,6 +977,13 @@
|
|
|
971
977
|
/* Close is the one destructive control in the chrome, and the one place a
|
|
972
978
|
status ink belongs in a titlebar. */
|
|
973
979
|
.axi-titlebar__btns :where(button:last-child:hover) { background: var(--axi-danger); color: var(--axi-ink-on-fill); }
|
|
980
|
+
/* The page-wide ring sits 2px OUTSIDE its element, which a window button
|
|
981
|
+
cannot afford: it is flush to the top of the frame and flush to its
|
|
982
|
+
neighbours, so an outward ring spills past the window edge and reads as a
|
|
983
|
+
loud accent box across the corner of the chrome. Pull it inward, the same
|
|
984
|
+
way a picker option and a select option already do inside their own tight
|
|
985
|
+
containers. */
|
|
986
|
+
.axi-titlebar__btns :where(button:focus-visible) { outline-offset: -3px; }
|
|
974
987
|
/* The scrolling region under the chrome. */
|
|
975
988
|
.axi-window__body { flex: 1; overflow-y: auto; }
|
|
976
989
|
|