summaryrefslogtreecommitdiffstats
path: root/src/layouts
diff options
context:
space:
mode:
Diffstat (limited to 'src/layouts')
-rw-r--r--src/layouts/_button-group.scss37
-rw-r--r--src/layouts/_button-group.vars.scss14
-rw-r--r--src/layouts/_container.vars.scss12
-rw-r--r--src/layouts/_split-view.scss38
-rw-r--r--src/layouts/_split-view.vars.scss5
5 files changed, 87 insertions, 19 deletions
diff --git a/src/layouts/_button-group.scss b/src/layouts/_button-group.scss
index c51ae7e..b0a3c8e 100644
--- a/src/layouts/_button-group.scss
+++ b/src/layouts/_button-group.scss
@@ -5,13 +5,46 @@
5 5
6@forward 'button-group.vars'; 6@forward 'button-group.vars';
7@use 'button-group.vars' as vars; 7@use 'button-group.vars' as vars;
8@use '../objects/action-button.vars' as action-button;
8 9
9@mixin styles { 10@mixin styles {
10 @include materialize-at-root(meta.module-variables('vars')); 11 @include materialize-at-root(meta.module-variables('vars'));
11 12
12 @include bem.layout('button-group') { 13 @include bem.layout('button-group') {
13 display: flex; 14 display: inline-flex;
14 flex-wrap: wrap; 15 flex-wrap: wrap;
15 gap: props.get(vars.$spacing); 16 gap: props.get(vars.$gap);
17
18 @each $mod, $size in vars.$sizes {
19 @include bem.modifier($mod) {
20 gap: props.get($size);
21 }
22 }
23
24 @include bem.modifier('align-block') {
25 margin-inline: calc(-1 * props.get(action-button.$pad-i) - props.get(action-button.$border-width));
26
27 @include bem.modifier('pill') {
28 margin-inline: calc(-1 * props.get(action-button.$pad-i-pill) - props.get(action-button.$border-width));
29 }
30
31 @include bem.modifier('icon') {
32 margin-inline: calc(-1 * props.get(action-button.$pad-b) - props.get(action-button.$border-width) - .5em * (props.get(action-button.$line-height) - 1));
33 }
34
35 @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in action-button.$fixed-sizes {
36 @include bem.modifier('action-#{$mod}') {
37 margin-inline: calc(-1 * props.get($pad-i) - props.get(action-button.$border-width));
38
39 @include bem.modifier('pill') {
40 margin-inline: calc(-1 * props.get($pad-i-pill) - props.get(action-button.$border-width));
41 }
42
43 @include bem.modifier('icon') {
44 margin-inline: calc(-1 * props.get($pad-b) - props.get(action-button.$border-width) - .5em * (props.get(action-button.$line-height) - 1));
45 }
46 }
47 }
48 }
16 } 49 }
17} 50}
diff --git a/src/layouts/_button-group.vars.scss b/src/layouts/_button-group.vars.scss
index 95ac8f8..50c1b53 100644
--- a/src/layouts/_button-group.vars.scss
+++ b/src/layouts/_button-group.vars.scss
@@ -1,4 +1,16 @@
1@use 'iro-sass/src/props'; 1@use 'iro-sass/src/props';
2@use '../core.vars' as core; 2@use '../core.vars' as core;
3 3
4$spacing: props.def(--l-button-group--spacing, props.get(core.$size--150)) !default; 4$gap: props.def(--l-button-group--gap, props.get(core.$size--150)) !default;
5
6$gapless: props.def(--l-button-group--gapless, 0) !default;
7$sm: props.def(--l-button-group--sm, props.get(core.$size--100)) !default;
8$lg: props.def(--l-button-group--lg, props.get(core.$size--300)) !default;
9$xl: props.def(--l-button-group--xl, props.get(core.$size--450)) !default;
10
11$sizes: (
12 'gapless': $gapless,
13 'sm': $sm,
14 'lg': $lg,
15 'xl': $xl,
16) !default;
diff --git a/src/layouts/_container.vars.scss b/src/layouts/_container.vars.scss
index cba7574..56b6c89 100644
--- a/src/layouts/_container.vars.scss
+++ b/src/layouts/_container.vars.scss
@@ -2,14 +2,14 @@
2@use 'iro-sass/src/props'; 2@use 'iro-sass/src/props';
3@use '../core.vars' as core; 3@use '../core.vars' as core;
4 4
5$fixed-125: props.def(--l-container--fixed-125, fn.px-to-rem(720px)) !default; 5$fixed-200: props.def(--l-container--fixed-200, fn.px-to-rem(1300px)) !default;
6$fixed: props.def(--l-container--fixed, fn.px-to-rem(610px)) !default; 6$fixed-150: props.def(--l-container--fixed-150, fn.px-to-rem(860px)) !default;
7$fixed-75: props.def(--l-container--fixed-75, fn.px-to-rem(500px)) !default; 7$fixed: props.def(--l-container--fixed, fn.px-to-rem(680px)) !default;
8 8
9$fixed-sizes: ( 9$fixed-sizes: (
10 'fixed-125': $fixed-125, 10 'fixed-200': $fixed-200,
11 'fixed': $fixed, 11 'fixed-150': $fixed-150,
12 'fixed-75': $fixed-75 12 'fixed': $fixed
13) !default; 13) !default;
14 14
15$pad-i: props.def(--l-container--pad-i, props.get(core.$size--400)) !default; 15$pad-i: props.def(--l-container--pad-i, props.get(core.$size--400)) !default;
diff --git a/src/layouts/_split-view.scss b/src/layouts/_split-view.scss
index a76f6e8..f522254 100644
--- a/src/layouts/_split-view.scss
+++ b/src/layouts/_split-view.scss
@@ -15,10 +15,6 @@
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') {
19 gap: props.get(vars.$gapless);
20 }
21
22 @include bem.elem('panel') { 18 @include bem.elem('panel') {
23 flex: 1 1 auto; 19 flex: 1 1 auto;
24 inline-size: 100%; 20 inline-size: 100%;
@@ -30,14 +26,34 @@
30 min-inline-size: props.get(vars.$panel--side-25--min); 26 min-inline-size: props.get(vars.$panel--side-25--min);
31 } 27 }
32 28
33 @include bem.modifier('sticky') { 29 @include bem.modifier('sticky-0') {
34 position: sticky; 30 position: sticky;
35 inset-block-start: 0; 31 inset-block-start: 0;
36 } 32 }
37 33
34 @include bem.modifier('sticky') {
35 position: sticky;
36 inset-block-start: props.get(vars.$panel--sticky-offset);
37 }
38
38 @include bem.modifier('sticky-400') { 39 @include bem.modifier('sticky-400') {
39 position: sticky; 40 position: sticky;
40 inset-block-start: props.get(vars.$panel--sticky-400--inset); 41 inset-block-start: calc(props.get(vars.$panel--sticky-400--inset) + props.get(vars.$panel--sticky-offset));
42 }
43
44 @include bem.modifier('sticky-1200') {
45 position: sticky;
46 inset-block-start: calc(props.get(vars.$panel--sticky-1200--inset) + props.get(vars.$panel--sticky-offset));
47 }
48 }
49
50 @include bem.modifier('gapless') {
51 gap: props.get(vars.$gapless);
52
53 @include bem.elem('panel') {
54 @include bem.modifier('side-25') {
55 min-inline-size: calc(props.get(vars.$panel--side-25--min) + props.get(vars.$col-gap) - props.get(vars.$gapless));
56 }
41 } 57 }
42 } 58 }
43 59
@@ -50,19 +66,23 @@
50 gap: props.get(vars.$row-gap); 66 gap: props.get(vars.$row-gap);
51 align-items: stretch; 67 align-items: stretch;
52 68
69 @include bem.modifier('gapless') {
70 gap: props.get(vars.$gapless);
71 }
72
53 @include bem.modifier('wrap-reverse') { 73 @include bem.modifier('wrap-reverse') {
54 flex-direction: column-reverse; 74 flex-direction: column-reverse;
55 } 75 }
56 76
57 @include bem.elem('panel') { 77 @include bem.elem('panel') {
58 flex: 1 1 auto; 78 inline-size: auto;
59 79
60 @include bem.modifier('side-25') { 80 @include bem.modifier('side-25') {
61 inline-size: auto; 81 inline-size: auto;
62 min-inline-size: 0; 82 min-inline-size: 0;
63 } 83 }
64 84
65 @include bem.modifier('sticky', 'sticky-400') { 85 @include bem.modifier('sticky', 'sticky-400', 'sticky-1200') {
66 position: static; 86 position: static;
67 } 87 }
68 } 88 }
diff --git a/src/layouts/_split-view.vars.scss b/src/layouts/_split-view.vars.scss
index 8f6bf93..d519939 100644
--- a/src/layouts/_split-view.vars.scss
+++ b/src/layouts/_split-view.vars.scss
@@ -4,7 +4,10 @@
4$col-gap: props.def(--l-split-view--col-gap, props.get(core.$size--800)) !default; 4$col-gap: props.def(--l-split-view--col-gap, props.get(core.$size--800)) !default;
5$row-gap: props.def(--l-split-view--row-gap, props.get(core.$size--600)) !default; 5$row-gap: props.def(--l-split-view--row-gap, props.get(core.$size--600)) !default;
6 6
7$gapless: props.def(--l-split-view--gapless, 0) !default; 7$gapless: props.def(--l-split-view--gapless, 0rem) !default;
8 8
9$panel--side-25--min: props.def(--l-split-view--panel--side-25--min, props.get(core.$size--3200)) !default; 9$panel--side-25--min: props.def(--l-split-view--panel--side-25--min, props.get(core.$size--3200)) !default;
10$panel--sticky-400--inset: props.def(--l-split-view--panel--sticky-400--inset, props.get(core.$size--400)) !default; 10$panel--sticky-400--inset: props.def(--l-split-view--panel--sticky-400--inset, props.get(core.$size--400)) !default;
11$panel--sticky-1200--inset: props.def(--l-split-view--panel--sticky-1200--inset, props.get(core.$size--1200)) !default;
12
13$panel--sticky-offset: props.def(--l-split-view--panel--sticky-offset, props.get(core.$sticky-top-offset)) !default;