@stacknav/core 0.2.0 → 0.3.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 +72 -17
- package/dist/animate.d.ts +36 -3
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +78 -15
- package/dist/animate.js.map +1 -1
- package/dist/edge-pan-gesture.d.ts +3 -0
- package/dist/edge-pan-gesture.d.ts.map +1 -1
- package/dist/edge-pan-gesture.js +35 -8
- package/dist/edge-pan-gesture.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ios-transition.d.ts +13 -2
- package/dist/ios-transition.d.ts.map +1 -1
- package/dist/ios-transition.js +35 -22
- package/dist/ios-transition.js.map +1 -1
- package/dist/navigation-stack.d.ts +29 -1
- package/dist/navigation-stack.d.ts.map +1 -1
- package/dist/navigation-stack.js +53 -11
- package/dist/navigation-stack.js.map +1 -1
- package/dist/stacknav.css +38 -1
- package/dist/styles.d.ts +33 -7
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +42 -9
- package/dist/styles.js.map +1 -1
- package/package.json +1 -1
- package/src/animate.ts +85 -16
- package/src/edge-pan-gesture.ts +36 -8
- package/src/index.ts +1 -1
- package/src/ios-transition.ts +42 -25
- package/src/navigation-stack.ts +63 -10
- package/src/styles.ts +42 -9
package/dist/ios-transition.js
CHANGED
|
@@ -14,7 +14,6 @@ export const IOS_TRANSITION_CSS_VARS = /*#__PURE__*/ Object.freeze({
|
|
|
14
14
|
settleVelocityFloor: '--sn-settle-velocity-floor',
|
|
15
15
|
timeScale: '--sn-time-scale',
|
|
16
16
|
});
|
|
17
|
-
const DIM = /*#__PURE__*/ Symbol('dim');
|
|
18
17
|
/**
|
|
19
18
|
* The iOS navigation transition: the upper page slides in from the trailing
|
|
20
19
|
* edge with a shadow on its leading edge, while the lower page parallaxes
|
|
@@ -24,6 +23,11 @@ const DIM = /*#__PURE__*/ Symbol('dim');
|
|
|
24
23
|
* `IOS_TRANSITION_CSS_VARS`), read when a transition starts. A variable that
|
|
25
24
|
* is set wins over the JS option, so a stylesheet can slow the animation down
|
|
26
25
|
* or restyle it per theme without the app rebuilding the transition.
|
|
26
|
+
*
|
|
27
|
+
* p is only ever written at the ends of a phase. The stack puts that phase's
|
|
28
|
+
* duration and curve in `--sn-t` / `--sn-e` and CSS interpolates between the
|
|
29
|
+
* two writes, so the animation costs a handful of style writes rather than one
|
|
30
|
+
* per page per frame, and runs on the compositor rather than the main thread.
|
|
27
31
|
*/
|
|
28
32
|
export function createIOSTransition(options = {}) {
|
|
29
33
|
const o = {
|
|
@@ -60,20 +64,27 @@ export function createIOSTransition(options = {}) {
|
|
|
60
64
|
settleVelocityFloor: parseNumber(read(v.settleVelocityFloor)) ?? o.settleVelocityFloor,
|
|
61
65
|
timeScale: parseNumber(read(v.timeScale)) ?? o.timeScale,
|
|
62
66
|
};
|
|
67
|
+
if (dim?.parentElement)
|
|
68
|
+
dim.style.setProperty('--sn-dim-fallback', o.dimColor);
|
|
63
69
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
// One overlay, moved to whichever page is underneath. Everything about it
|
|
71
|
+
// except its opacity is a rule in the stylesheet; JS supplies the fallback colour.
|
|
72
|
+
let dim = null;
|
|
73
|
+
const dimOf = (lower) => {
|
|
74
|
+
if (!dim) {
|
|
75
|
+
dim = document.createElement('div');
|
|
76
|
+
dim.className = 'sn-dim';
|
|
77
|
+
dim.setAttribute('aria-hidden', 'true');
|
|
71
78
|
}
|
|
72
|
-
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
return
|
|
79
|
+
dim.style.setProperty('--sn-dim-fallback', o.dimColor);
|
|
80
|
+
if (dim.parentElement !== lower.el)
|
|
81
|
+
lower.el.append(dim);
|
|
82
|
+
return dim;
|
|
76
83
|
};
|
|
84
|
+
/** Four decimals is well past a subpixel, and keeps the style strings short. */
|
|
85
|
+
const round = (n) => Math.round(n * 1e4) / 1e4 || 0;
|
|
86
|
+
/** A share of the page's own width, signed by the stylesheet's reading direction. */
|
|
87
|
+
const shift = (fraction) => `translate3d(calc(${round(fraction * 100)}% * var(--sn-dir,1)),0,0)`;
|
|
77
88
|
return {
|
|
78
89
|
options: o,
|
|
79
90
|
get resolved() {
|
|
@@ -95,27 +106,29 @@ export function createIOSTransition(options = {}) {
|
|
|
95
106
|
},
|
|
96
107
|
begin(lower, upper) {
|
|
97
108
|
refresh(upper.el.parentElement);
|
|
98
|
-
upper.el.style.boxShadow =
|
|
109
|
+
upper.el.style.boxShadow = `var(--sn-shadow, ${o.shadow})`;
|
|
99
110
|
if (lower)
|
|
100
111
|
dimOf(lower);
|
|
101
112
|
},
|
|
113
|
+
/**
|
|
114
|
+
* The state at p, written declaratively. Two calls with `--sn-t` set to a
|
|
115
|
+
* duration make an animation; a call per pointer move with `--sn-t: 0s`
|
|
116
|
+
* makes a drag. Nothing here measures layout: the travel is a share of the
|
|
117
|
+
* page, so a resize mid-transition stays honest.
|
|
118
|
+
*/
|
|
102
119
|
apply(lower, upper, p) {
|
|
103
|
-
|
|
104
|
-
upper.el.style.transform = `translate3d(${(1 - p) * w}px,0,0)`;
|
|
120
|
+
upper.el.style.transform = shift(1 - p);
|
|
105
121
|
if (lower) {
|
|
106
|
-
lower.el.style.transform =
|
|
107
|
-
|
|
122
|
+
lower.el.style.transform = shift(-p * r.parallax);
|
|
123
|
+
dim.style.opacity = String(p * r.dimMax);
|
|
108
124
|
}
|
|
109
125
|
},
|
|
110
126
|
end(lower, upper) {
|
|
111
127
|
upper.el.style.boxShadow = '';
|
|
112
128
|
upper.el.style.transform = '';
|
|
113
|
-
if (lower)
|
|
129
|
+
if (lower)
|
|
114
130
|
lower.el.style.transform = '';
|
|
115
|
-
|
|
116
|
-
if (d)
|
|
117
|
-
d.remove();
|
|
118
|
-
}
|
|
131
|
+
dim?.remove();
|
|
119
132
|
},
|
|
120
133
|
};
|
|
121
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios-transition.js","sourceRoot":"","sources":["../src/ios-transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAe,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ios-transition.js","sourceRoot":"","sources":["../src/ios-transition.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,17 @@ export interface SettleInput {
|
|
|
14
14
|
* Describes what the pages look like at any progress p (1 = upper page fully
|
|
15
15
|
* open, 0 = upper page fully off-screen). Push runs p from 0 to 1, pop from
|
|
16
16
|
* 1 to 0.
|
|
17
|
+
*
|
|
18
|
+
* `apply` is a declarative write, not a frame. For a timed phase the stack
|
|
19
|
+
* calls it twice, once at each end, and CSS interpolates between them: the
|
|
20
|
+
* stack puts that phase's duration and curve in `--sn-t` / `--sn-e` on the
|
|
21
|
+
* container, which the stylesheet's `transition` rules read. During a drag
|
|
22
|
+
* `--sn-t` is `0s`, so the same write lands instantly. Keep `apply` to
|
|
23
|
+
* `transform` and `opacity` and the browser keeps it off the main thread.
|
|
17
24
|
*/
|
|
18
25
|
export interface Transition {
|
|
19
26
|
readonly duration: number;
|
|
27
|
+
/** Sampled to report `progress`; its `css` spelling is what drives the pixels. */
|
|
20
28
|
readonly ease: Easing;
|
|
21
29
|
settle(input: SettleInput): {
|
|
22
30
|
duration: number;
|
|
@@ -166,11 +174,31 @@ export declare class NavigationStack {
|
|
|
166
174
|
private _unmount;
|
|
167
175
|
/** Drops `el` from the entries if it is mounted. Returns its old entry. */
|
|
168
176
|
private _forget;
|
|
177
|
+
/**
|
|
178
|
+
* The duration and curve of the phase in flight, as CSS reads them. `0s`
|
|
179
|
+
* means land where you are told, now, which is what a drag wants and what
|
|
180
|
+
* `prefers-reduced-motion` reduces every phase to.
|
|
181
|
+
*/
|
|
182
|
+
private _timing;
|
|
169
183
|
private _begin;
|
|
170
184
|
private _apply;
|
|
171
185
|
private _end;
|
|
186
|
+
/**
|
|
187
|
+
* Hands the run from `from` to `to` over to the browser: commit where the
|
|
188
|
+
* pages are, say how long and on what curve, write where they are going,
|
|
189
|
+
* then wait to be told they arrived. No frame of it is ours.
|
|
190
|
+
*/
|
|
191
|
+
private _animate;
|
|
192
|
+
/**
|
|
193
|
+
* `progress` used to be a by-product of animating in JS. Now that CSS
|
|
194
|
+
* animates, reporting it costs a frame loop, so one only runs while someone
|
|
195
|
+
* is subscribed. Chrome that just has to move with the pages is better off
|
|
196
|
+
* reading `--sn-t` / `--sn-e` and the `sn-page-upper` / `sn-page-lower`
|
|
197
|
+
* classes in CSS, which keeps it on the compositor too.
|
|
198
|
+
*/
|
|
199
|
+
private _ticker;
|
|
172
200
|
private _transition;
|
|
173
|
-
/** Makes only the top page visible,
|
|
201
|
+
/** Makes only the top page visible, returns every page to its resting state, renumbers the indexes. */
|
|
174
202
|
private _settle;
|
|
175
203
|
}
|
|
176
204
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-stack.d.ts","sourceRoot":"","sources":["../src/navigation-stack.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"navigation-stack.d.ts","sourceRoot":"","sources":["../src/navigation-stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0F,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAEnI,4FAA4F;AAC5F,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,KAAK,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1D,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpE,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACzD;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC;AAE5D,8FAA8F;AAC9F,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE7E,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IAAG,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE;AACjG,MAAM,WAAW,QAAQ;IAAG,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE;AACvH,MAAM,WAAW,YAAY;IAAG,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE;AAC3H,MAAM,WAAW,UAAU;IAAG,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE;AACtG,MAAM,WAAW,eAAe;IAAG,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE;AACtG,MAAM,WAAW,aAAa;IAAG,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;AAEzF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,EAAE,eAAe,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,+CAA+C;IAC/C,MAAM,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;AAEvC;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAM;IAC3B,IAAI,UAAS;IACb,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAA6C;gBAEnD,EAAE,SAAS,EAAE,UAAU,EAAE,SAAqB,EAAE,EAAE,sBAAsB;IASpF,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,GAAG,IAAI,UAAU,GAAG,IAAI,CAE3B;IACD,KAAK,IAAI,MAAM;IAGf,MAAM,IAAI,OAAO;IAGjB,6EAA6E;IAC7E,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI;IAIzD,EAAE,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAQnF,OAAO,CAAC,KAAK;IAMb;;;;OAIG;IACH,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,QAAe,EAAE,IAAW,EAAE,GAAU,EAAE,MAAc,EAAE,GAAE,YAAY,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAc1K,+FAA+F;IAC/F,GAAG,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI7F,iGAAiG;IACjG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAe,EAAE,MAAc,EAAE,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAO7I;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,QAAe,EAAE,IAAW,EAAE,GAAU,EAAE,MAAc,EAAE,GAAE,YAAY,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAmBrJ,gFAAgF;IAChF,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAW,EAAE,GAAU,EAAE,MAAc,EAAE,GAAE,YAAY,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAcpI;;;OAGG;IACH,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,EAAE,IAAI,GAAE,YAAY,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMpI,8FAA8F;IAC9F,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,MAAc,EAAE,GAAE;QAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAU3G,+EAA+E;IAC/E,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,MAAc,EAAE,GAAE;QAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAW7G,mFAAmF;IACnF,mBAAmB,IAAI,oBAAoB,GAAG,IAAI;IA6BlD,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,QAAQ;IAKhB,mFAAmF;IACnF,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,MAAM;YAIA,aAAa;IAY3B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,QAAQ;IAMhB,2EAA2E;IAC3E,OAAO,CAAC,OAAO;IAOf;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,IAAI;IAQZ;;;;OAIG;YACW,QAAQ;IAYtB;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;YAKD,WAAW;IAOzB,uGAAuG;IACvG,OAAO,CAAC,OAAO;CAQhB"}
|
package/dist/navigation-stack.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { tween } from "./animate.js";
|
|
1
|
+
import { animationsFinished, commitStyles, cssDuration, cssEasing, tween } from "./animate.js";
|
|
2
2
|
/**
|
|
3
3
|
* A stack of page elements inside one container. The stack owns mounting,
|
|
4
4
|
* ordering, visibility and the transition lifecycle. A `Transition` decides
|
|
@@ -177,7 +177,7 @@ export class NavigationStack {
|
|
|
177
177
|
finish: async ({ complete, velocity = 0 }) => {
|
|
178
178
|
const remainingPx = (complete ? p : 1 - p) * this.width();
|
|
179
179
|
const { duration, ease } = this.transition.settle({ remainingPx, velocity });
|
|
180
|
-
await
|
|
180
|
+
await this._animate(lower, upper, p, complete ? 0 : 1, duration, ease);
|
|
181
181
|
this._end(lower, upper, 'interactive');
|
|
182
182
|
if (complete) {
|
|
183
183
|
this.entries.pop();
|
|
@@ -194,7 +194,9 @@ export class NavigationStack {
|
|
|
194
194
|
destroy() {
|
|
195
195
|
while (this.entries.length)
|
|
196
196
|
this._unmount(this.entries.pop());
|
|
197
|
-
this.container.classList.remove('sn-container');
|
|
197
|
+
this.container.classList.remove('sn-container', 'sn-busy');
|
|
198
|
+
this.container.style.removeProperty('--sn-t');
|
|
199
|
+
this.container.style.removeProperty('--sn-e');
|
|
198
200
|
}
|
|
199
201
|
// -------------------------------------------------------------- internals
|
|
200
202
|
_setBusy(v) {
|
|
@@ -248,7 +250,7 @@ export class NavigationStack {
|
|
|
248
250
|
return { el, index, key, data };
|
|
249
251
|
}
|
|
250
252
|
_unmount(entry) {
|
|
251
|
-
entry.el.classList.remove(this.pageClass, 'sn-page-visible');
|
|
253
|
+
entry.el.classList.remove(this.pageClass, 'sn-page-visible', 'sn-page-upper', 'sn-page-lower');
|
|
252
254
|
entry.el.style.transform = '';
|
|
253
255
|
entry.el.remove();
|
|
254
256
|
return entry;
|
|
@@ -261,10 +263,19 @@ export class NavigationStack {
|
|
|
261
263
|
const [entry] = this.entries.splice(i, 1);
|
|
262
264
|
return this._unmount(entry);
|
|
263
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* The duration and curve of the phase in flight, as CSS reads them. `0s`
|
|
268
|
+
* means land where you are told, now, which is what a drag wants and what
|
|
269
|
+
* `prefers-reduced-motion` reduces every phase to.
|
|
270
|
+
*/
|
|
271
|
+
_timing(duration, ease) {
|
|
272
|
+
this.container.style.setProperty('--sn-t', cssDuration(duration));
|
|
273
|
+
this.container.style.setProperty('--sn-e', cssEasing(ease));
|
|
274
|
+
}
|
|
264
275
|
_begin(lower, upper, kind) {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
upper.el.classList.add('sn-page-visible');
|
|
276
|
+
this._timing(0);
|
|
277
|
+
lower?.el.classList.add('sn-page-visible', 'sn-page-lower');
|
|
278
|
+
upper.el.classList.add('sn-page-visible', 'sn-page-upper');
|
|
268
279
|
this.transition.begin?.(lower, upper);
|
|
269
280
|
this._emit('transitionstart', { lower, upper, kind });
|
|
270
281
|
}
|
|
@@ -273,23 +284,54 @@ export class NavigationStack {
|
|
|
273
284
|
this._emit('progress', { lower, upper, p });
|
|
274
285
|
}
|
|
275
286
|
_end(lower, upper, kind) {
|
|
287
|
+
this._timing(0);
|
|
288
|
+
upper.el.classList.remove('sn-page-upper');
|
|
289
|
+
lower?.el.classList.remove('sn-page-lower');
|
|
276
290
|
this.transition.end?.(lower, upper);
|
|
277
291
|
this._emit('transitionend', { lower, upper, kind });
|
|
278
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* Hands the run from `from` to `to` over to the browser: commit where the
|
|
295
|
+
* pages are, say how long and on what curve, write where they are going,
|
|
296
|
+
* then wait to be told they arrived. No frame of it is ours.
|
|
297
|
+
*/
|
|
298
|
+
async _animate(lower, upper, from, to, duration, ease) {
|
|
299
|
+
if (duration <= 0 || from === to)
|
|
300
|
+
return this._apply(lower, upper, to);
|
|
301
|
+
commitStyles(upper.el);
|
|
302
|
+
this._timing(duration, ease);
|
|
303
|
+
this.transition.apply(lower, upper, to);
|
|
304
|
+
const ticker = this._ticker(lower, upper, from, to, duration, ease);
|
|
305
|
+
await animationsFinished([upper.el, lower?.el]);
|
|
306
|
+
ticker?.cancel();
|
|
307
|
+
this._timing(0);
|
|
308
|
+
this._emit('progress', { lower, upper, p: to });
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* `progress` used to be a by-product of animating in JS. Now that CSS
|
|
312
|
+
* animates, reporting it costs a frame loop, so one only runs while someone
|
|
313
|
+
* is subscribed. Chrome that just has to move with the pages is better off
|
|
314
|
+
* reading `--sn-t` / `--sn-e` and the `sn-page-upper` / `sn-page-lower`
|
|
315
|
+
* classes in CSS, which keeps it on the compositor too.
|
|
316
|
+
*/
|
|
317
|
+
_ticker(lower, upper, from, to, duration, ease) {
|
|
318
|
+
if (!this._listeners.get('progress')?.size)
|
|
319
|
+
return null;
|
|
320
|
+
return tween({ from, to, duration, ease, onUpdate: (p) => this._emit('progress', { lower, upper, p }) });
|
|
321
|
+
}
|
|
279
322
|
async _transition(lower, upper, from, to, animated, kind) {
|
|
280
323
|
this._begin(lower, upper, kind);
|
|
281
324
|
this._apply(lower, upper, from);
|
|
282
|
-
|
|
283
|
-
await tween({ from, to, duration, ease: this.transition.ease, onUpdate: (p) => this._apply(lower, upper, p) });
|
|
325
|
+
await this._animate(lower, upper, from, to, animated ? this.transition.duration : 0, this.transition.ease);
|
|
284
326
|
this._end(lower, upper, kind);
|
|
285
327
|
}
|
|
286
|
-
/** Makes only the top page visible,
|
|
328
|
+
/** Makes only the top page visible, returns every page to its resting state, renumbers the indexes. */
|
|
287
329
|
_settle() {
|
|
288
330
|
const top = this.top;
|
|
289
331
|
this.entries.forEach((e, i) => {
|
|
290
332
|
e.index = i;
|
|
291
333
|
e.el.classList.toggle('sn-page-visible', e === top);
|
|
292
|
-
e.el.style.transform =
|
|
334
|
+
e.el.style.transform = '';
|
|
293
335
|
});
|
|
294
336
|
}
|
|
295
337
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-stack.js","sourceRoot":"","sources":["../src/navigation-stack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation-stack.js","sourceRoot":"","sources":["../src/navigation-stack.ts"],"names":[],"mappings":"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"}
|
package/dist/stacknav.css
CHANGED
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
position: relative;
|
|
15
15
|
overflow: hidden;
|
|
16
16
|
}
|
|
17
|
+
.sn-container:dir(rtl) {
|
|
18
|
+
--sn-dir: -1;
|
|
19
|
+
}
|
|
17
20
|
.sn-page {
|
|
18
21
|
position: absolute;
|
|
19
22
|
inset: 0;
|
|
@@ -23,11 +26,45 @@
|
|
|
23
26
|
overscroll-behavior-y: contain;
|
|
24
27
|
touch-action: pan-y;
|
|
25
28
|
visibility: hidden;
|
|
26
|
-
|
|
29
|
+
transform: translate3d(0,0,0);
|
|
27
30
|
}
|
|
28
31
|
.sn-page-visible {
|
|
29
32
|
visibility: visible;
|
|
30
33
|
}
|
|
34
|
+
.sn-page-upper,.sn-page-lower {
|
|
35
|
+
will-change: transform;
|
|
36
|
+
transition-property: transform,opacity;
|
|
37
|
+
transition-duration: var(--sn-t,0s);
|
|
38
|
+
transition-timing-function: var(--sn-e,linear);
|
|
39
|
+
}
|
|
40
|
+
.sn-dim {
|
|
41
|
+
position: fixed;
|
|
42
|
+
inset: 0;
|
|
43
|
+
z-index: 2147483647;
|
|
44
|
+
pointer-events: none;
|
|
45
|
+
background: var(--sn-dim-color,var(--sn-dim-fallback,#000));
|
|
46
|
+
opacity: 0;
|
|
47
|
+
transition: opacity var(--sn-t,0s) var(--sn-e,linear);
|
|
48
|
+
}
|
|
49
|
+
.sn-edge {
|
|
50
|
+
position: absolute;
|
|
51
|
+
inset-block: 0;
|
|
52
|
+
inset-inline-start: 0;
|
|
53
|
+
z-index: 10;
|
|
54
|
+
touch-action: none;
|
|
55
|
+
}
|
|
56
|
+
.sn-container:not(.sn-can-pop) .sn-edge,.sn-container.sn-anywhere .sn-edge {
|
|
57
|
+
display: none;
|
|
58
|
+
}
|
|
59
|
+
.sn-busy {
|
|
60
|
+
user-select: none;
|
|
61
|
+
-webkit-user-select: none;
|
|
62
|
+
}
|
|
31
63
|
.sn-busy .sn-page {
|
|
32
64
|
pointer-events: none;
|
|
33
65
|
}
|
|
66
|
+
@media(prefers-reduced-motion:reduce) {
|
|
67
|
+
.sn-container {
|
|
68
|
+
--sn-t: 0s!important;
|
|
69
|
+
}
|
|
70
|
+
}
|
package/dist/styles.d.ts
CHANGED
|
@@ -1,22 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The only styles the engine needs. These cover layout
|
|
3
|
-
* look lives in the transition and is tuned through the
|
|
4
|
-
* properties (see `IOS_TRANSITION_CSS_VARS` and the README).
|
|
5
|
-
* are documented but deliberately not declared, because
|
|
6
|
-
* what makes its JS default apply.
|
|
2
|
+
* The only styles the engine needs. These cover layout and the motion itself,
|
|
3
|
+
* not appearance: the look lives in the transition and is tuned through the
|
|
4
|
+
* `--sn-*` custom properties (see `IOS_TRANSITION_CSS_VARS` and the README).
|
|
5
|
+
* Those properties are documented but deliberately not declared, because
|
|
6
|
+
* leaving one unset is what makes its JS default apply.
|
|
7
|
+
*
|
|
8
|
+
* The engine does not animate the pages; the browser does. Each phase it
|
|
9
|
+
* writes `--sn-t` and `--sn-e` on the container — the duration and curve in
|
|
10
|
+
* force right now — and then writes where the pages should end up. While a
|
|
11
|
+
* pointer is down `--sn-t` is `0s`, so the page lands exactly where the
|
|
12
|
+
* pointer puts it; for a push, a pop or the settle after a release it is that
|
|
13
|
+
* phase's length and `transition` runs it out, on the compositor.
|
|
7
14
|
*
|
|
8
15
|
* The string is kept minified because it ships inside every consumer's JS
|
|
9
16
|
* bundle (`injectStyles()` is the default path); `scripts/write-css.mjs`
|
|
10
17
|
* expands it into the readable `dist/stacknav.css`. What each rule is for:
|
|
11
18
|
*
|
|
12
19
|
* - `.sn-container`: the stack's scroll-clipping frame.
|
|
20
|
+
* - `.sn-container:dir(rtl)`: reading direction is a CSS question, so the
|
|
21
|
+
* transform the engine writes is signed by `--sn-dir` rather than by JS.
|
|
13
22
|
* - `.sn-page`: absolutely fills the container and is its own scroll container.
|
|
14
23
|
* `touch-action: pan-y` keeps vertical scrolling native while horizontal
|
|
15
24
|
* drags reach the gesture; `visibility: hidden` keeps pages beneath the top
|
|
16
25
|
* mounted (scroll position, form state) but out of sight and out of the
|
|
17
|
-
* accessibility tree.
|
|
26
|
+
* accessibility tree. The identity transform is the resting state, and the
|
|
27
|
+
* containing block the dim overlay is positioned against.
|
|
18
28
|
* - `.sn-page-visible`: the top page, and both pages during a transition.
|
|
19
|
-
* - `.sn-
|
|
29
|
+
* - `.sn-page-upper` / `.sn-page-lower`: the two pages taking part in the
|
|
30
|
+
* transition in flight. Only these transition, and only these are promoted,
|
|
31
|
+
* so a deep stack costs nothing at rest. Both `transform` and `opacity` are
|
|
32
|
+
* listed, so a transition of your own can fade a page as well as move it and
|
|
33
|
+
* still be run by the browser; the iOS look only ever changes `transform`,
|
|
34
|
+
* and a property that does not change starts no transition.
|
|
35
|
+
* - `.sn-dim`: the overlay the lower page dims behind. CSS resolves its colour;
|
|
36
|
+
* the transition supplies a fallback colour and writes its opacity.
|
|
37
|
+
* - `.sn-edge`: the strip the swipe-back gesture listens on. `inset-inline-start`
|
|
38
|
+
* puts it on the leading edge in either reading direction; its width is the
|
|
39
|
+
* gesture's `edgeWidth` option, and whether it is shown at all follows from
|
|
40
|
+
* the container's classes.
|
|
41
|
+
* - `.sn-busy`: no clicks land on a page that is mid-transition, and a drag
|
|
42
|
+
* does not select the text under it.
|
|
43
|
+
* - `prefers-reduced-motion`: forces the phase duration to zero in CSS. The
|
|
44
|
+
* `!important` is intentional: it must override the inline `--sn-t` written
|
|
45
|
+
* by the engine, including when the preference changes during a transition.
|
|
20
46
|
*/
|
|
21
47
|
export declare const STACKNAV_CSS: string;
|
|
22
48
|
export declare const STACKNAV_STYLE_ID = "stacknav-styles";
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,YAAY,QAWoD,CAAC;AAE9E,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,QAAQ,GAAG,IAAwD,GAAG,IAAI,CAM3G"}
|
package/dist/styles.js
CHANGED
|
@@ -1,27 +1,60 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The only styles the engine needs. These cover layout
|
|
3
|
-
* look lives in the transition and is tuned through the
|
|
4
|
-
* properties (see `IOS_TRANSITION_CSS_VARS` and the README).
|
|
5
|
-
* are documented but deliberately not declared, because
|
|
6
|
-
* what makes its JS default apply.
|
|
2
|
+
* The only styles the engine needs. These cover layout and the motion itself,
|
|
3
|
+
* not appearance: the look lives in the transition and is tuned through the
|
|
4
|
+
* `--sn-*` custom properties (see `IOS_TRANSITION_CSS_VARS` and the README).
|
|
5
|
+
* Those properties are documented but deliberately not declared, because
|
|
6
|
+
* leaving one unset is what makes its JS default apply.
|
|
7
|
+
*
|
|
8
|
+
* The engine does not animate the pages; the browser does. Each phase it
|
|
9
|
+
* writes `--sn-t` and `--sn-e` on the container — the duration and curve in
|
|
10
|
+
* force right now — and then writes where the pages should end up. While a
|
|
11
|
+
* pointer is down `--sn-t` is `0s`, so the page lands exactly where the
|
|
12
|
+
* pointer puts it; for a push, a pop or the settle after a release it is that
|
|
13
|
+
* phase's length and `transition` runs it out, on the compositor.
|
|
7
14
|
*
|
|
8
15
|
* The string is kept minified because it ships inside every consumer's JS
|
|
9
16
|
* bundle (`injectStyles()` is the default path); `scripts/write-css.mjs`
|
|
10
17
|
* expands it into the readable `dist/stacknav.css`. What each rule is for:
|
|
11
18
|
*
|
|
12
19
|
* - `.sn-container`: the stack's scroll-clipping frame.
|
|
20
|
+
* - `.sn-container:dir(rtl)`: reading direction is a CSS question, so the
|
|
21
|
+
* transform the engine writes is signed by `--sn-dir` rather than by JS.
|
|
13
22
|
* - `.sn-page`: absolutely fills the container and is its own scroll container.
|
|
14
23
|
* `touch-action: pan-y` keeps vertical scrolling native while horizontal
|
|
15
24
|
* drags reach the gesture; `visibility: hidden` keeps pages beneath the top
|
|
16
25
|
* mounted (scroll position, form state) but out of sight and out of the
|
|
17
|
-
* accessibility tree.
|
|
26
|
+
* accessibility tree. The identity transform is the resting state, and the
|
|
27
|
+
* containing block the dim overlay is positioned against.
|
|
18
28
|
* - `.sn-page-visible`: the top page, and both pages during a transition.
|
|
19
|
-
* - `.sn-
|
|
29
|
+
* - `.sn-page-upper` / `.sn-page-lower`: the two pages taking part in the
|
|
30
|
+
* transition in flight. Only these transition, and only these are promoted,
|
|
31
|
+
* so a deep stack costs nothing at rest. Both `transform` and `opacity` are
|
|
32
|
+
* listed, so a transition of your own can fade a page as well as move it and
|
|
33
|
+
* still be run by the browser; the iOS look only ever changes `transform`,
|
|
34
|
+
* and a property that does not change starts no transition.
|
|
35
|
+
* - `.sn-dim`: the overlay the lower page dims behind. CSS resolves its colour;
|
|
36
|
+
* the transition supplies a fallback colour and writes its opacity.
|
|
37
|
+
* - `.sn-edge`: the strip the swipe-back gesture listens on. `inset-inline-start`
|
|
38
|
+
* puts it on the leading edge in either reading direction; its width is the
|
|
39
|
+
* gesture's `edgeWidth` option, and whether it is shown at all follows from
|
|
40
|
+
* the container's classes.
|
|
41
|
+
* - `.sn-busy`: no clicks land on a page that is mid-transition, and a drag
|
|
42
|
+
* does not select the text under it.
|
|
43
|
+
* - `prefers-reduced-motion`: forces the phase duration to zero in CSS. The
|
|
44
|
+
* `!important` is intentional: it must override the inline `--sn-t` written
|
|
45
|
+
* by the engine, including when the preference changes during a transition.
|
|
20
46
|
*/
|
|
21
47
|
export const STACKNAV_CSS = '.sn-container{position:relative;overflow:hidden}' +
|
|
22
|
-
'.sn-
|
|
48
|
+
'.sn-container:dir(rtl){--sn-dir:-1}' +
|
|
49
|
+
'.sn-page{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;visibility:hidden;transform:translate3d(0,0,0)}' +
|
|
23
50
|
'.sn-page-visible{visibility:visible}' +
|
|
24
|
-
'.sn-
|
|
51
|
+
'.sn-page-upper,.sn-page-lower{will-change:transform;transition-property:transform,opacity;transition-duration:var(--sn-t,0s);transition-timing-function:var(--sn-e,linear)}' +
|
|
52
|
+
'.sn-dim{position:fixed;inset:0;z-index:2147483647;pointer-events:none;background:var(--sn-dim-color,var(--sn-dim-fallback,#000));opacity:0;transition:opacity var(--sn-t,0s) var(--sn-e,linear)}' +
|
|
53
|
+
'.sn-edge{position:absolute;inset-block:0;inset-inline-start:0;z-index:10;touch-action:none}' +
|
|
54
|
+
'.sn-container:not(.sn-can-pop) .sn-edge,.sn-container.sn-anywhere .sn-edge{display:none}' +
|
|
55
|
+
'.sn-busy{user-select:none;-webkit-user-select:none}' +
|
|
56
|
+
'.sn-busy .sn-page{pointer-events:none}' +
|
|
57
|
+
'@media(prefers-reduced-motion:reduce){.sn-container{--sn-t:0s!important}}';
|
|
25
58
|
export const STACKNAV_STYLE_ID = 'stacknav-styles';
|
|
26
59
|
/**
|
|
27
60
|
* Inserts the engine's stylesheet into `doc` once. Framework ports call this so
|
package/dist/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,MAAM,YAAY,GACvB,kDAAkD;IAClD,qCAAqC;IACrC,wMAAwM;IACxM,sCAAsC;IACtC,6KAA6K;IAC7K,kMAAkM;IAClM,6FAA6F;IAC7F,0FAA0F;IAC1F,qDAAqD;IACrD,wCAAwC;IACxC,2EAA2E,CAAC;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAuB,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;IACnG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC;QAAE,OAAO;IAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,GAAG,iBAAiB,CAAC;IAC7B,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC;IACjC,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC"}
|
package/package.json
CHANGED