diff options
Diffstat (limited to 'src/layouts')
-rw-r--r-- | src/layouts/_button-group.scss | 16 | ||||
-rw-r--r-- | src/layouts/_card-list.scss | 47 | ||||
-rw-r--r-- | src/layouts/_card-list.vars.scss | 22 |
3 files changed, 65 insertions, 20 deletions
diff --git a/src/layouts/_button-group.scss b/src/layouts/_button-group.scss index b0a3c8e..6c874e1 100644 --- a/src/layouts/_button-group.scss +++ b/src/layouts/_button-group.scss | |||
@@ -5,7 +5,7 @@ | |||
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 | @use '../objects/button.vars' as button; |
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')); |
@@ -22,26 +22,26 @@ | |||
22 | } | 22 | } |
23 | 23 | ||
24 | @include bem.modifier('align-block') { | 24 | @include bem.modifier('align-block') { |
25 | margin-inline: calc(-1 * props.get(action-button.$pad-i) - props.get(action-button.$border-width)); | 25 | margin-inline: calc(-1 * props.get(button.$pad-i) - props.get(button.$border-width)); |
26 | 26 | ||
27 | @include bem.modifier('pill') { | 27 | @include bem.modifier('pill') { |
28 | margin-inline: calc(-1 * props.get(action-button.$pad-i-pill) - props.get(action-button.$border-width)); | 28 | margin-inline: calc(-1 * props.get(button.$pad-i-pill) - props.get(button.$border-width)); |
29 | } | 29 | } |
30 | 30 | ||
31 | @include bem.modifier('icon') { | 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)); | 32 | margin-inline: calc(-1 * props.get(button.$pad-b) - props.get(button.$border-width) - .5em * (props.get(button.$line-height) - 1)); |
33 | } | 33 | } |
34 | 34 | ||
35 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in action-button.$fixed-sizes { | 35 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in button.$fixed-sizes { |
36 | @include bem.modifier('action-#{$mod}') { | 36 | @include bem.modifier('action-#{$mod}') { |
37 | margin-inline: calc(-1 * props.get($pad-i) - props.get(action-button.$border-width)); | 37 | margin-inline: calc(-1 * props.get($pad-i) - props.get(button.$border-width)); |
38 | 38 | ||
39 | @include bem.modifier('pill') { | 39 | @include bem.modifier('pill') { |
40 | margin-inline: calc(-1 * props.get($pad-i-pill) - props.get(action-button.$border-width)); | 40 | margin-inline: calc(-1 * props.get($pad-i-pill) - props.get(button.$border-width)); |
41 | } | 41 | } |
42 | 42 | ||
43 | @include bem.modifier('icon') { | 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)); | 44 | margin-inline: calc(-1 * props.get($pad-b) - props.get(button.$border-width) - .5em * (props.get(button.$line-height) - 1)); |
45 | } | 45 | } |
46 | } | 46 | } |
47 | } | 47 | } |
diff --git a/src/layouts/_card-list.scss b/src/layouts/_card-list.scss index c8c3d18..cca6e72 100644 --- a/src/layouts/_card-list.scss +++ b/src/layouts/_card-list.scss | |||
@@ -6,7 +6,6 @@ | |||
6 | 6 | ||
7 | @forward 'card-list.vars'; | 7 | @forward 'card-list.vars'; |
8 | @use 'card-list.vars' as vars; | 8 | @use 'card-list.vars' as vars; |
9 | @use '../objects/card.vars' as card; | ||
10 | 9 | ||
11 | @mixin styles { | 10 | @mixin styles { |
12 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
@@ -17,22 +16,33 @@ | |||
17 | gap: props.get(vars.$row-gap); | 16 | gap: props.get(vars.$row-gap); |
18 | 17 | ||
19 | @include bem.modifier('merge') { | 18 | @include bem.modifier('merge') { |
20 | position: relative; | 19 | position: relative; |
21 | gap: 0; | 20 | gap: calc(2 * props.get(vars.$merge-padding) + props.get(vars.$border-width)); |
21 | padding: props.get(vars.$merge-padding); | ||
22 | background-color: props.get(vars.$card-bg-color); | ||
23 | border: props.get(vars.$border-width) solid props.get(vars.$border-color); | ||
24 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$merge-padding)); | ||
22 | 25 | ||
23 | @include bem.elem('card') { | 26 | @include bem.elem('card') { |
24 | transition: none; | ||
25 | |||
26 | &:not(:last-child) { | 27 | &:not(:last-child) { |
27 | margin-bottom: calc(-1 * props.get(card.$border-width)); | 28 | position: relative; |
28 | border-end-start-radius: 0; | 29 | border-end-start-radius: 0; |
29 | border-end-end-radius: 0; | 30 | border-end-end-radius: 0; |
31 | |||
32 | &::after { | ||
33 | position: absolute; | ||
34 | inset-block-start: calc(100% + props.get(vars.$merge-padding) + props.get(vars.$border-width)); | ||
35 | inset-inline: calc(-1 * props.get(vars.$merge-padding) - props.get(vars.$border-width)); | ||
36 | content: ''; | ||
37 | display: block; | ||
38 | block-size: props.get(vars.$border-width); | ||
39 | background-color: props.get(vars.$border-color); | ||
40 | } | ||
30 | } | 41 | } |
31 | 42 | ||
32 | &:hover, | 43 | &:hover, |
33 | &:active, | 44 | &:active, |
34 | &:focus-visible { | 45 | &:focus-visible { |
35 | z-index: 10; | ||
36 | transform: none; | 46 | transform: none; |
37 | } | 47 | } |
38 | 48 | ||
@@ -41,6 +51,27 @@ | |||
41 | border-start-end-radius: 0; | 51 | border-start-end-radius: 0; |
42 | } | 52 | } |
43 | } | 53 | } |
54 | |||
55 | @include bem.modifier('borderless') { | ||
56 | border-color: props.get(vars.$card-bg-color); | ||
57 | |||
58 | @include bem.elem('card') { | ||
59 | &:not(:last-child) { | ||
60 | &::after { | ||
61 | inset-inline: calc(-1 * props.get(vars.$merge-padding) - 2 * props.get(vars.$border-width)); | ||
62 | } | ||
63 | } | ||
64 | } | ||
65 | } | ||
66 | |||
67 | @include bem.modifier('shadow') { | ||
68 | box-shadow: | ||
69 | props.get(vars.$shadow-x) | ||
70 | props.get(vars.$shadow-y) | ||
71 | props.get(vars.$shadow-blur) | ||
72 | props.get(vars.$shadow-grow) | ||
73 | props.get(vars.$shadow-color); | ||
74 | } | ||
44 | } | 75 | } |
45 | 76 | ||
46 | @include bem.modifier('quiet') { | 77 | @include bem.modifier('quiet') { |
@@ -63,7 +94,7 @@ | |||
63 | gap: props.get(vars.$grid-sm--row-gap) props.get(vars.$grid-sm--col-gap); | 94 | gap: props.get(vars.$grid-sm--row-gap) props.get(vars.$grid-sm--col-gap); |
64 | 95 | ||
65 | @include bem.modifier("grid-sm") { | 96 | @include bem.modifier("grid-sm") { |
66 | @include iro.media--media("<=md") { | 97 | @include media.media("<=md") { |
67 | display: flex; | 98 | display: flex; |
68 | gap: props.get(vars.$row-gap); | 99 | gap: props.get(vars.$row-gap); |
69 | } | 100 | } |
diff --git a/src/layouts/_card-list.vars.scss b/src/layouts/_card-list.vars.scss index 1c49c0f..75e72cc 100644 --- a/src/layouts/_card-list.vars.scss +++ b/src/layouts/_card-list.vars.scss | |||
@@ -1,7 +1,12 @@ | |||
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 | @use '../objects/card' as card; | ||
3 | 4 | ||
4 | $row-gap: props.def(--l-card-list--row-gap, props.get(core.$size--100)) !default; | 5 | $border-width: props.def(--l-card-list--border-width, props.get(card.$border-width)) !default; |
6 | $merge-padding: props.def(--l-card-list--merge-padding, props.get(core.$border-width--thick)) !default; | ||
7 | $rounding: props.def(--l-card-list--rounding, props.get(card.$rounding)) !default; | ||
8 | |||
9 | $row-gap: props.def(--l-card-list--row-gap, props.get(core.$size--200)) !default; | ||
5 | $quiet--row-gap: props.def(--l-card-list--quiet--row-gap, props.get(core.$size--800)) !default; | 10 | $quiet--row-gap: props.def(--l-card-list--quiet--row-gap, props.get(core.$size--800)) !default; |
6 | 11 | ||
7 | $grid--row-gap: props.def(--l-card-list--grid--row-gap, props.get(core.$size--400)) !default; | 12 | $grid--row-gap: props.def(--l-card-list--grid--row-gap, props.get(core.$size--400)) !default; |
@@ -9,8 +14,8 @@ $grid--col-gap: props.def(--l-card-list--grid--col-gap, props.get(core.$s | |||
9 | $grid--col-width: props.def(--l-card-list--grid--col-width, props.get(core.$size--3200)) !default; | 14 | $grid--col-width: props.def(--l-card-list--grid--col-width, props.get(core.$size--3200)) !default; |
10 | $grid--quiet--row-gap: props.def(--l-card-list--grid--quiet--row-gap, props.get(core.$size--800)) !default; | 15 | $grid--quiet--row-gap: props.def(--l-card-list--grid--quiet--row-gap, props.get(core.$size--800)) !default; |
11 | 16 | ||
12 | $grid-sm--row-gap: props.def(--l-card-list--grid-md--row-gap, props.get(core.$size--150)) !default; | 17 | $grid-sm--row-gap: props.def(--l-card-list--grid-md--row-gap, props.get(core.$size--200)) !default; |
13 | $grid-sm--col-gap: props.def(--l-card-list--grid-md--col-gap, props.get(core.$size--150)) !default; | 18 | $grid-sm--col-gap: props.def(--l-card-list--grid-md--col-gap, props.get(core.$size--200)) !default; |
14 | $grid-sm--col-width: props.def(--l-card-list--grid-md--col-width, props.get(core.$size--4600)) !default; | 19 | $grid-sm--col-width: props.def(--l-card-list--grid-md--col-width, props.get(core.$size--4600)) !default; |
15 | $grid-sm--quiet--row-gap: props.def(--l-card-list--grid-sm--quiet--row-gap, props.get(core.$size--800)) !default; | 20 | $grid-sm--quiet--row-gap: props.def(--l-card-list--grid-sm--quiet--row-gap, props.get(core.$size--800)) !default; |
16 | 21 | ||
@@ -24,4 +29,13 @@ $masonry-h--col-gap: props.def(--l-card-list--masonry-h--col-gap, props.g | |||
24 | $masonry-h--row-height: props.def(--l-card-list--masonry-h--row-height, props.get(core.$size--3200)) !default; | 29 | $masonry-h--row-height: props.def(--l-card-list--masonry-h--row-height, props.get(core.$size--3200)) !default; |
25 | $masonry-h--quiet--row-gap: props.def(--l-card-list--masonry-h--quiet--row-gap, props.get(core.$size--800)) !default; | 30 | $masonry-h--quiet--row-gap: props.def(--l-card-list--masonry-h--quiet--row-gap, props.get(core.$size--800)) !default; |
26 | 31 | ||
27 | $border-color: props.def(--l-card-list--border-color, props.get(core.$theme, --border), 'color') !default; | 32 | $shadow-x: props.def(--l-card-list--shadow-x, props.get(card.$shadow-x)) !default; |
33 | $shadow-y: props.def(--l-card-list--shadow-y, props.get(card.$shadow-y)) !default; | ||
34 | $shadow-blur: props.def(--l-card-list--shadow-blur, props.get(card.$shadow-blur)) !default; | ||
35 | $shadow-grow: props.def(--l-card-list--shadow-grow, props.get(card.$shadow-grow)) !default; | ||
36 | |||
37 | $card-bg-color: props.def(--l-card-list--bg-color, props.get(card.$bg-color), 'color') !default; | ||
38 | $border-color: props.def(--l-card-list--border-color, props.get(card.$border-color), 'color') !default; | ||
39 | $shadow-color: props.def(--l-card-list--shadow-color, props.get(card.$shadow-color), 'color') !default; | ||
40 | |||
41 | $border-color-dark: props.def(--l-card-list--border-color, props.get(core.$theme, --bg-l1), 'dark') !default; | ||