summaryrefslogtreecommitdiffstats
path: root/src/layouts/_split-view.scss
diff options
context:
space:
mode:
Diffstat (limited to 'src/layouts/_split-view.scss')
-rw-r--r--src/layouts/_split-view.scss119
1 files changed, 67 insertions, 52 deletions
diff --git a/src/layouts/_split-view.scss b/src/layouts/_split-view.scss
index 2744510..6469a7d 100644
--- a/src/layouts/_split-view.scss
+++ b/src/layouts/_split-view.scss
@@ -8,69 +8,84 @@
8@use 'split-view.vars' as vars; 8@use 'split-view.vars' as vars;
9 9
10@mixin styles { 10@mixin styles {
11 @include materialize-at-root(meta.module-variables('vars')); 11 @include materialize-at-root(meta.module-variables('vars'));
12 12
13 @include bem.layout('split-view') { 13 @include bem.layout('split-view') {
14 display: flex; 14 display: flex;
15 gap: props.get(vars.$col-gap); 15 gap: props.get(vars.$col-gap);
16 align-items: start; 16 align-items: start;
17 17
18 @include bem.modifier('gapless') { 18 @include bem.elem('panel') {
19 gap: props.get(vars.$gapless); 19 flex: 1 1 auto;
20 } 20 inline-size: 100%;
21 min-inline-size: 0;
21 22
22 @include bem.elem('panel') { 23 @include bem.modifier('side-25') {
23 flex: 1 1 auto; 24 flex: 0 0 auto;
24 inline-size: 100%; 25 inline-size: 25%;
25 min-inline-size: 0; 26 min-inline-size: props.get(vars.$panel--side-25--min);
27 }
26 28
27 @include bem.modifier('side-25') { 29 @include bem.modifier('sticky-0') {
28 flex: 0 0 auto; 30 position: sticky;
29 inline-size: 25%; 31 inset-block-start: 0;
30 min-inline-size: props.get(vars.$panel--side-25--min); 32 }
31 }
32 33
33 @include bem.modifier('sticky-0') { 34 @include bem.modifier('sticky') {
34 position: sticky; 35 position: sticky;
35 inset-block-start: 0; 36 inset-block-start: props.get(vars.$panel--sticky-offset);
36 } 37 }
37 38
38 @include bem.modifier('sticky') { 39 @include bem.modifier('sticky-400') {
39 position: sticky; 40 position: sticky;
40 inset-block-start: props.get(vars.$panel--sticky-offset); 41 inset-block-start: calc(props.get(vars.$panel--sticky-400--inset) + props.get(vars.$panel--sticky-offset));
41 } 42 }
42 43
43 @include bem.modifier('sticky-400') { 44 @include bem.modifier('sticky-1200') {
44 position: sticky; 45 position: sticky;
45 inset-block-start: calc(props.get(vars.$panel--sticky-400--inset) + props.get(vars.$panel--sticky-offset)); 46 inset-block-start: calc(props.get(vars.$panel--sticky-1200--inset) + props.get(vars.$panel--sticky-offset));
46 } 47 }
47 } 48 }
48 49
49 @include bem.elem('content') { 50 @include bem.modifier('gapless') {
50 inline-size: 100%; 51 gap: props.get(vars.$gapless);
51 }
52 52
53 @include media.media('<=md') { 53 @include bem.elem('panel') {
54 flex-direction: column; 54 @include bem.modifier('side-25') {
55 gap: props.get(vars.$row-gap); 55 min-inline-size: calc(props.get(vars.$panel--side-25--min) + props.get(vars.$col-gap) - props.get(vars.$gapless));
56 align-items: stretch; 56 }
57 }
58 }
57 59
58 @include bem.modifier('wrap-reverse') { 60 @include bem.elem('content') {
59 flex-direction: column-reverse; 61 inline-size: 100%;
60 } 62 }
61 63
62 @include bem.elem('panel') { 64 @include media.media('<=md') {
63 flex: 1 1 auto; 65 flex-direction: column;
66 gap: props.get(vars.$row-gap);
67 align-items: stretch;
64 68
65 @include bem.modifier('side-25') { 69 @include bem.modifier('gapless') {
66 inline-size: auto; 70 gap: props.get(vars.$gapless);
67 min-inline-size: 0; 71 }
68 }
69 72
70 @include bem.modifier('sticky', 'sticky-400') { 73 @include bem.modifier('wrap-reverse') {
71 position: static; 74 flex-direction: column-reverse;
72 } 75 }
73 } 76
74 } 77 @include bem.elem('panel') {
75 } 78 inline-size: auto;
79
80 @include bem.modifier('side-25') {
81 inline-size: auto;
82 min-inline-size: 0;
83 }
84
85 @include bem.modifier('sticky', 'sticky-400', 'sticky-1200') {
86 position: static;
87 }
88 }
89 }
90 }
76} 91}