@axiapps/axi-design 1.26.0 → 1.27.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 +2 -0
- package/dist/axi.css +67 -0
- package/docs/RULES.md +1 -0
- package/package.json +1 -1
- package/src/shells.css +67 -0
package/README.md
CHANGED
|
@@ -156,6 +156,8 @@ not "what does the system look like". Everything else is
|
|
|
156
156
|
| `--axi-palette-top` | how far down the screen an `.axi-palette` opens | `12vh` | `<div class="axi-scrim axi-palette" style="--axi-palette-top: 6vh">` |
|
|
157
157
|
| `--axi-menu-width` | width of `.axi-menu__pop` | `310px` | `<div class="axi-menu__pop" style="--axi-menu-width: 380px">` |
|
|
158
158
|
| `--axi-drawer-width` | width of `.axi-drawer` (capped at `100vw`) | `560px` | `<aside class="axi-drawer" style="--axi-drawer-width: 720px">` |
|
|
159
|
+
| `--axi-sheet-top` | where an `.axi-sheet`'s top edge sits, for an app whose own chrome starts above it | `0` | `<div class="axi-sheet" style="--axi-sheet-top: 2.5rem">` |
|
|
160
|
+
| `--axi-sheet-pad` | the padding inside an `.axi-sheet` | `12px 16px` | `<div class="axi-sheet" style="--axi-sheet-pad: 0">` |
|
|
159
161
|
| `--axi-series` | the ink a meter fill, bar, plot line or `.axi-diamond--series` is drawn in | `var(--axi-accent)` | `<span class="axi-meter__fill" style="--axi-series: var(--axi-ok)">` |
|
|
160
162
|
| `--axi-meter-v` | how full one `.axi-meter__fill` is | `0%` | `<span class="axi-meter__fill" style="--axi-meter-v: 62%">` |
|
|
161
163
|
| `--axi-meter-h` | height of a `.axi-meter` | `12px` | `<div class="axi-meter" style="--axi-meter-h: 18px">` |
|
package/dist/axi.css
CHANGED
|
@@ -1649,6 +1649,73 @@ textarea.axi-input {
|
|
|
1649
1649
|
}
|
|
1650
1650
|
.axi-drawer__body { overflow-y: auto; padding: 18px 24px 30px; }
|
|
1651
1651
|
|
|
1652
|
+
/* ---------- sheet ---------- */
|
|
1653
|
+
/* A pane that covers the whole of its containing block: one thing blown up to
|
|
1654
|
+
fill the app, with a way back out. Three names were already close and all
|
|
1655
|
+
three are wrong, so this one is worth its own word.
|
|
1656
|
+
|
|
1657
|
+
Not .axi-modal. A modal is a <dialog> in the top layer with a scrim and the
|
|
1658
|
+
page inert behind it; a sheet is in the page, and the thing it replaces is
|
|
1659
|
+
the view, not the reader's attention.
|
|
1660
|
+
|
|
1661
|
+
Not .axi-drawer--full. A drawer is pinned to three edges with the page live
|
|
1662
|
+
beside it - that live strip is what makes it a drawer, and it is what pays
|
|
1663
|
+
for the float fill, the leading outline and the scrim. Widen a drawer to the
|
|
1664
|
+
fourth edge and every one of those three goes away, which is a different
|
|
1665
|
+
object wearing a modifier, not a wider drawer.
|
|
1666
|
+
|
|
1667
|
+
Not .axi-panel. Rule 3 outlines a raised element and rule 5 gives it a
|
|
1668
|
+
block, and both are claims about an edge: an element pinned to all four
|
|
1669
|
+
sides has no edge on screen to outline, and nothing behind it this language
|
|
1670
|
+
is entitled to cast a shadow on. So a sheet carries no outline, no block and
|
|
1671
|
+
no radius, and nothing raises it - it is the ground with one thing on it.
|
|
1672
|
+
|
|
1673
|
+
Which is why it paints the ground's IMAGE as well as the ground's colour. A
|
|
1674
|
+
sheet is the page for as long as it is open, and a theme that lights the
|
|
1675
|
+
page from a few directions would otherwise have that light blink off every
|
|
1676
|
+
time a reader opened one, then back on when they closed it.
|
|
1677
|
+
|
|
1678
|
+
The two longhands, the same pair `body` uses, and NOT the `background`
|
|
1679
|
+
shorthand: --axi-ground-image is a comma-separated list of three gradients
|
|
1680
|
+
under the glass theme, and the shorthand only accepts a colour in its final
|
|
1681
|
+
layer. `background: <colour> <three gradients>` puts the colour in the first
|
|
1682
|
+
layer, which makes the whole declaration invalid and drops it - a sheet with
|
|
1683
|
+
no fill at all, over a live page. It is exactly the trap the token block
|
|
1684
|
+
warns about two tokens up, in the other direction.
|
|
1685
|
+
|
|
1686
|
+
No filter either, for the same reason the window has none: there is nothing
|
|
1687
|
+
to see through to. The two knobs are the only things a consumer genuinely
|
|
1688
|
+
cannot know from here - where its top edge is (an app with its own titlebar
|
|
1689
|
+
starts below it) and how much padding its content wants. */
|
|
1690
|
+
.axi-sheet {
|
|
1691
|
+
position: fixed;
|
|
1692
|
+
inset: var(--axi-sheet-top, 0) 0 0;
|
|
1693
|
+
/* Its own rung, between the page's sticky chrome and the scrim. Above 40 and
|
|
1694
|
+
41 because a sheet covers the view, and the masthead and the popovers are
|
|
1695
|
+
part of the view; below 50 because a modal or a drawer opened FROM a sheet
|
|
1696
|
+
has to land on top of it, and a sheet is not the kind of thing that gets
|
|
1697
|
+
to win that. */
|
|
1698
|
+
z-index: 45;
|
|
1699
|
+
display: flex;
|
|
1700
|
+
flex-direction: column;
|
|
1701
|
+
overflow-x: hidden;
|
|
1702
|
+
overflow-y: auto;
|
|
1703
|
+
background-color: var(--axi-ground);
|
|
1704
|
+
background-image: var(--axi-ground-image);
|
|
1705
|
+
padding: var(--axi-sheet-pad, 12px 16px);
|
|
1706
|
+
}
|
|
1707
|
+
/* The heading the sheet opened with, divided from the body by a rule. Rule 8:
|
|
1708
|
+
a line inside a surface separates its parts rather than raising them - and
|
|
1709
|
+
here it is doing the job the outline a sheet does not have would have done,
|
|
1710
|
+
which is to say where the pane's own chrome stops and its content starts. */
|
|
1711
|
+
.axi-sheet__head {
|
|
1712
|
+
flex: none;
|
|
1713
|
+
padding-bottom: 10px;
|
|
1714
|
+
border-bottom: var(--axi-border-control) solid var(--axi-ink-line);
|
|
1715
|
+
}
|
|
1716
|
+
/* The scrolling region under the head. */
|
|
1717
|
+
.axi-sheet__body { flex: 1 1 auto; min-height: 0; }
|
|
1718
|
+
|
|
1652
1719
|
/* ---------- pull-quote ---------- */
|
|
1653
1720
|
/* A cited quotation. The accent rule down the left is the only place in the
|
|
1654
1721
|
language where colour marks a block rather than filling a chip - a quote is
|
package/docs/RULES.md
CHANGED
|
@@ -490,6 +490,7 @@ instead of joining it.
|
|
|
490
490
|
| Table corner | 3 | where the two cross |
|
|
491
491
|
| Sticky chrome | 40 | `.axi-mast` |
|
|
492
492
|
| Popovers | 41 | `.axi-menu__pop`, `.axi-picker__pop` |
|
|
493
|
+
| Sheet | 45 | `.axi-sheet` |
|
|
493
494
|
| Scrim | 50 | `.axi-scrim` |
|
|
494
495
|
| Drawer | 51 | `.axi-drawer` |
|
|
495
496
|
| Toasts | 60 | `.axi-toasts` |
|
package/package.json
CHANGED
package/src/shells.css
CHANGED
|
@@ -677,6 +677,73 @@
|
|
|
677
677
|
}
|
|
678
678
|
.axi-drawer__body { overflow-y: auto; padding: 18px 24px 30px; }
|
|
679
679
|
|
|
680
|
+
/* ---------- sheet ---------- */
|
|
681
|
+
/* A pane that covers the whole of its containing block: one thing blown up to
|
|
682
|
+
fill the app, with a way back out. Three names were already close and all
|
|
683
|
+
three are wrong, so this one is worth its own word.
|
|
684
|
+
|
|
685
|
+
Not .axi-modal. A modal is a <dialog> in the top layer with a scrim and the
|
|
686
|
+
page inert behind it; a sheet is in the page, and the thing it replaces is
|
|
687
|
+
the view, not the reader's attention.
|
|
688
|
+
|
|
689
|
+
Not .axi-drawer--full. A drawer is pinned to three edges with the page live
|
|
690
|
+
beside it - that live strip is what makes it a drawer, and it is what pays
|
|
691
|
+
for the float fill, the leading outline and the scrim. Widen a drawer to the
|
|
692
|
+
fourth edge and every one of those three goes away, which is a different
|
|
693
|
+
object wearing a modifier, not a wider drawer.
|
|
694
|
+
|
|
695
|
+
Not .axi-panel. Rule 3 outlines a raised element and rule 5 gives it a
|
|
696
|
+
block, and both are claims about an edge: an element pinned to all four
|
|
697
|
+
sides has no edge on screen to outline, and nothing behind it this language
|
|
698
|
+
is entitled to cast a shadow on. So a sheet carries no outline, no block and
|
|
699
|
+
no radius, and nothing raises it - it is the ground with one thing on it.
|
|
700
|
+
|
|
701
|
+
Which is why it paints the ground's IMAGE as well as the ground's colour. A
|
|
702
|
+
sheet is the page for as long as it is open, and a theme that lights the
|
|
703
|
+
page from a few directions would otherwise have that light blink off every
|
|
704
|
+
time a reader opened one, then back on when they closed it.
|
|
705
|
+
|
|
706
|
+
The two longhands, the same pair `body` uses, and NOT the `background`
|
|
707
|
+
shorthand: --axi-ground-image is a comma-separated list of three gradients
|
|
708
|
+
under the glass theme, and the shorthand only accepts a colour in its final
|
|
709
|
+
layer. `background: <colour> <three gradients>` puts the colour in the first
|
|
710
|
+
layer, which makes the whole declaration invalid and drops it - a sheet with
|
|
711
|
+
no fill at all, over a live page. It is exactly the trap the token block
|
|
712
|
+
warns about two tokens up, in the other direction.
|
|
713
|
+
|
|
714
|
+
No filter either, for the same reason the window has none: there is nothing
|
|
715
|
+
to see through to. The two knobs are the only things a consumer genuinely
|
|
716
|
+
cannot know from here - where its top edge is (an app with its own titlebar
|
|
717
|
+
starts below it) and how much padding its content wants. */
|
|
718
|
+
.axi-sheet {
|
|
719
|
+
position: fixed;
|
|
720
|
+
inset: var(--axi-sheet-top, 0) 0 0;
|
|
721
|
+
/* Its own rung, between the page's sticky chrome and the scrim. Above 40 and
|
|
722
|
+
41 because a sheet covers the view, and the masthead and the popovers are
|
|
723
|
+
part of the view; below 50 because a modal or a drawer opened FROM a sheet
|
|
724
|
+
has to land on top of it, and a sheet is not the kind of thing that gets
|
|
725
|
+
to win that. */
|
|
726
|
+
z-index: 45;
|
|
727
|
+
display: flex;
|
|
728
|
+
flex-direction: column;
|
|
729
|
+
overflow-x: hidden;
|
|
730
|
+
overflow-y: auto;
|
|
731
|
+
background-color: var(--axi-ground);
|
|
732
|
+
background-image: var(--axi-ground-image);
|
|
733
|
+
padding: var(--axi-sheet-pad, 12px 16px);
|
|
734
|
+
}
|
|
735
|
+
/* The heading the sheet opened with, divided from the body by a rule. Rule 8:
|
|
736
|
+
a line inside a surface separates its parts rather than raising them - and
|
|
737
|
+
here it is doing the job the outline a sheet does not have would have done,
|
|
738
|
+
which is to say where the pane's own chrome stops and its content starts. */
|
|
739
|
+
.axi-sheet__head {
|
|
740
|
+
flex: none;
|
|
741
|
+
padding-bottom: 10px;
|
|
742
|
+
border-bottom: var(--axi-border-control) solid var(--axi-ink-line);
|
|
743
|
+
}
|
|
744
|
+
/* The scrolling region under the head. */
|
|
745
|
+
.axi-sheet__body { flex: 1 1 auto; min-height: 0; }
|
|
746
|
+
|
|
680
747
|
/* ---------- pull-quote ---------- */
|
|
681
748
|
/* A cited quotation. The accent rule down the left is the only place in the
|
|
682
749
|
language where colour marks a block rather than filling a chip - a quote is
|