@axiapps/axi-design 1.22.0 → 1.23.1

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/README.md CHANGED
@@ -139,6 +139,7 @@ not "what does the system look like". Everything else is
139
139
  | `--axi-check-fill` | the fill a checked `.axi-check` takes, and the colour of a checked `.axi-radio`'s diamond | `var(--axi-accent)` | `<input type="checkbox" class="axi-check" style="--axi-check-fill: var(--axi-danger)">` |
140
140
  | `--axi-textarea-h` | the minimum height of a `<textarea class="axi-input">` | `90px` | `<textarea class="axi-input" style="--axi-textarea-h: 200px">` |
141
141
  | `--axi-well-pad` | the padding inside an `.axi-well` | `10px` | `<div class="axi-well" style="--axi-well-pad: 18px">` |
142
+ | `--axi-well-radius` | an `.axi-well`'s corner radius, for a well used at reading scale rather than page scale | `var(--axi-radius)` | `<div class="axi-well" style="--axi-well-radius: var(--axi-radius-sm)">` |
142
143
  | `--axi-rail-w` | an `.axi-rail`'s width, for labels longer than the default holds | `208px` | `<aside class="axi-rail" style="--axi-rail-w: 260px">` |
143
144
  | `--axi-rail-pad` | the padding inside an `.axi-rail` | `10px` | `<aside class="axi-rail" style="--axi-rail-pad: 6px">` |
144
145
  | `--axi-avatar-size` | the size of an `.axi-avatar` square | `40px` | `<span class="axi-avatar" style="--axi-avatar-size: 28px">MS</span>` |
package/dist/axi.css CHANGED
@@ -304,6 +304,43 @@ a { color: inherit; }
304
304
  on the other surface that needs it. */
305
305
  .axi-panel--float { background: var(--axi-surface-float); }
306
306
 
307
+ /* A panel that stands in a grid of its own kind rather than alone on the page.
308
+ Same surface, one form step down: the control border and the control block,
309
+ so a row of six tiles does not read as six page regions arguing with the
310
+ page that holds them.
311
+
312
+ This is the form ramp doing work a hue would otherwise be asked to do. A
313
+ tile beside a tile is level; a tile beside a plain .axi-panel is outranked -
314
+ which is how a grid of readings says "this one is first" without spending
315
+ the accent on it, and the accent is not available for that anyway (it means
316
+ the thing you picked, and nobody picks a winner, the data does).
317
+
318
+ Padding reads the panel's own knob so a consumer overriding --axi-panel-pad
319
+ does not have to know which of the two it is looking at, at the tighter
320
+ figure a tile wants. */
321
+ .axi-panel--tile {
322
+ border-width: var(--axi-border-control);
323
+ box-shadow: var(--axi-shadow-control);
324
+ /* The control radius, not the panel's. A tile has already said it is
325
+ control-sized by taking the control border and the control block, and
326
+ --axi-radius's own note says control-sized surfaces read the small step -
327
+ so inheriting .axi-panel's corner was the one place the tile disagreed
328
+ with itself. Both are 0 in this theme, which is exactly why it had to be
329
+ fixed by reading the token rather than by looking at it. */
330
+ border-radius: var(--axi-radius-sm);
331
+ padding: var(--axi-panel-pad, 12px);
332
+ }
333
+ /* A tile you can press moves under the press, the way every other control in
334
+ the language does. Keyed off what the tile already is rather than a second
335
+ class: a tile that is a button, a link, or a div wearing the button role has
336
+ said so once, and should not have to say it again for the shadow. The role
337
+ selector is there because it is what a pressable div in real markup actually
338
+ carries - the alternative is a consumer with a keyboard handler and no
339
+ hover, which is the worse half of the bargain. */
340
+ a.axi-panel--tile:hover,
341
+ button.axi-panel--tile:hover,
342
+ .axi-panel--tile[role='button']:hover { box-shadow: var(--axi-shadow-control-hover); }
343
+
307
344
  /* ---------- well ---------- */
308
345
  /* The panel's inverse: a field sunk into the surface around it rather than
309
346
  raised off it. No block, because a recess casts nothing, and the rule rather
@@ -314,7 +351,13 @@ a { color: inherit; }
314
351
  .axi-well {
315
352
  background: var(--axi-well-fill);
316
353
  border: var(--axi-border-control) solid var(--axi-well-line);
317
- border-radius: var(--axi-radius);
354
+ /* A knob rather than a fixed radius, unlike the panel's, because a well is
355
+ the one form in the language that is used at two scales: a field the size
356
+ of a page column, and a recess the size of a single reading. At reading
357
+ scale the large radius is the wrong one - it is the radius everything else
358
+ that small already declines - so those instances say --axi-radius-sm here
359
+ rather than reaching for a modifier or a second class. */
360
+ border-radius: var(--axi-well-radius, var(--axi-radius));
318
361
  /* Tighter than a panel's 26px: a well is a container for objects that carry
319
362
  their own padding, not a page margin. */
320
363
  padding: var(--axi-well-pad, 10px);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiapps/axi-design",
3
- "version": "1.22.0",
3
+ "version": "1.23.1",
4
4
  "description": "The design language for the axi suite — flat and outlined, dark, drawn in saturated ink.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -38,6 +38,43 @@
38
38
  on the other surface that needs it. */
39
39
  .axi-panel--float { background: var(--axi-surface-float); }
40
40
 
41
+ /* A panel that stands in a grid of its own kind rather than alone on the page.
42
+ Same surface, one form step down: the control border and the control block,
43
+ so a row of six tiles does not read as six page regions arguing with the
44
+ page that holds them.
45
+
46
+ This is the form ramp doing work a hue would otherwise be asked to do. A
47
+ tile beside a tile is level; a tile beside a plain .axi-panel is outranked -
48
+ which is how a grid of readings says "this one is first" without spending
49
+ the accent on it, and the accent is not available for that anyway (it means
50
+ the thing you picked, and nobody picks a winner, the data does).
51
+
52
+ Padding reads the panel's own knob so a consumer overriding --axi-panel-pad
53
+ does not have to know which of the two it is looking at, at the tighter
54
+ figure a tile wants. */
55
+ .axi-panel--tile {
56
+ border-width: var(--axi-border-control);
57
+ box-shadow: var(--axi-shadow-control);
58
+ /* The control radius, not the panel's. A tile has already said it is
59
+ control-sized by taking the control border and the control block, and
60
+ --axi-radius's own note says control-sized surfaces read the small step -
61
+ so inheriting .axi-panel's corner was the one place the tile disagreed
62
+ with itself. Both are 0 in this theme, which is exactly why it had to be
63
+ fixed by reading the token rather than by looking at it. */
64
+ border-radius: var(--axi-radius-sm);
65
+ padding: var(--axi-panel-pad, 12px);
66
+ }
67
+ /* A tile you can press moves under the press, the way every other control in
68
+ the language does. Keyed off what the tile already is rather than a second
69
+ class: a tile that is a button, a link, or a div wearing the button role has
70
+ said so once, and should not have to say it again for the shadow. The role
71
+ selector is there because it is what a pressable div in real markup actually
72
+ carries - the alternative is a consumer with a keyboard handler and no
73
+ hover, which is the worse half of the bargain. */
74
+ a.axi-panel--tile:hover,
75
+ button.axi-panel--tile:hover,
76
+ .axi-panel--tile[role='button']:hover { box-shadow: var(--axi-shadow-control-hover); }
77
+
41
78
  /* ---------- well ---------- */
42
79
  /* The panel's inverse: a field sunk into the surface around it rather than
43
80
  raised off it. No block, because a recess casts nothing, and the rule rather
@@ -48,7 +85,13 @@
48
85
  .axi-well {
49
86
  background: var(--axi-well-fill);
50
87
  border: var(--axi-border-control) solid var(--axi-well-line);
51
- border-radius: var(--axi-radius);
88
+ /* A knob rather than a fixed radius, unlike the panel's, because a well is
89
+ the one form in the language that is used at two scales: a field the size
90
+ of a page column, and a recess the size of a single reading. At reading
91
+ scale the large radius is the wrong one - it is the radius everything else
92
+ that small already declines - so those instances say --axi-radius-sm here
93
+ rather than reaching for a modifier or a second class. */
94
+ border-radius: var(--axi-well-radius, var(--axi-radius));
52
95
  /* Tighter than a panel's 26px: a well is a container for objects that carry
53
96
  their own padding, not a page margin. */
54
97
  padding: var(--axi-well-pad, 10px);