summaryrefslogtreecommitdiffstats
path: root/src/layouts/_card-list.scss
diff options
context:
space:
mode:
Diffstat (limited to 'src/layouts/_card-list.scss')
-rw-r--r--src/layouts/_card-list.scss100
1 files changed, 43 insertions, 57 deletions
diff --git a/src/layouts/_card-list.scss b/src/layouts/_card-list.scss
index 65b6a66..8ef40c5 100644
--- a/src/layouts/_card-list.scss
+++ b/src/layouts/_card-list.scss
@@ -1,94 +1,80 @@
1@use 'iro-sass/src/index' as iro; 1@use 'sass:meta';
2@use '../functions' as fn;
3@use 'include-media/dist/include-media' as media; 2@use 'include-media/dist/include-media' as media;
3@use 'iro-sass/src/bem';
4@use 'iro-sass/src/props';
5@use '../props' as *;
4 6
5@include iro.props-namespace('card-list') { 7@forward 'card-list.vars';
6 @include iro.props-store(( 8@use 'card-list.vars' as vars;
7 --dims: (
8 --row-gap: fn.global-dim(--size --800),
9 --col-gap: fn.global-dim(--size --400),
10 9
11 --grid: ( 10@mixin styles {
12 --row-gap: fn.global-dim(--size --800), 11 @include materialize-at-root(meta.module-variables('vars'));
13 --col-gap: fn.global-dim(--size --400),
14 --col-width: fn.global-dim(--size --3200),
15 ),
16 --masonry: (
17 --row-gap: fn.global-dim(--size --800),
18 --col-gap: fn.global-dim(--size --400),
19 --col-width: fn.global-dim(--size --3200),
20 ),
21 --masonry-h: (
22 --row-gap: fn.global-dim(--size --800),
23 --col-gap: fn.global-dim(--size --400),
24 --row-height: fn.global-dim(--size --3200),
25 )
26 ),
27 --colors: (
28 --border: fn.global-color(--border),
29 ),
30 ));
31 12
32 @include iro.bem-layout(iro.props-namespace()) { 13 @include bem.layout('card-list') {
33 display: flex; 14 display: flex;
34 flex-direction: column; 15 flex-direction: column;
35 gap: fn.dim(--row-gap) fn.dim(--col-gap); 16 gap: props.get(vars.$row-gap);
36 17
37 @include iro.bem-modifier('grid') { 18 @include bem.modifier('quiet') {
19 row-gap: props.get(vars.$quiet--row-gap);
20 }
21
22 @include bem.modifier('grid') {
38 display: grid; 23 display: grid;
39 grid-template-columns: repeat(auto-fill, minmax(fn.dim(--grid --col-width), 1fr)); 24 grid-template-columns: repeat(auto-fill, minmax(props.get(vars.$grid--col-width), 1fr));
40 gap: fn.dim(--grid --col-gap); 25 gap: props.get(vars.$grid--row-gap) props.get(vars.$grid--col-gap);
41 26
42 @include iro.bem-modifier('quiet') { 27 @include bem.modifier('quiet') {
43 row-gap: fn.dim(--grid --row-gap); 28 row-gap: props.get(vars.$grid--quiet--row-gap);
44 } 29 }
45 } 30 }
46 31
47 @include iro.bem-modifier('masonry') { 32 @include bem.modifier('masonry') {
48 display: block; 33 display: block;
49 columns: auto fn.dim(--masonry --col-width); 34 columns: auto props.get(vars.$masonry--col-width);
50 column-gap: fn.dim(--masonry --col-gap); 35 column-gap: props.get(vars.$masonry--col-gap);
51 36
52 @include iro.bem-elem('card') { 37 @include bem.elem('card') {
53 margin-block-end: fn.dim(--masonry --col-gap); 38 margin-block-end: props.get(vars.$masonry--row-gap);
54 break-inside: avoid; 39 break-inside: avoid;
55 } 40 }
56 41
57 @include iro.bem-modifier('quiet') { 42 @include bem.modifier('quiet') {
58 @include iro.bem-elem('card') { 43 @include bem.elem('card') {
59 margin-block-end: fn.dim(--masonry --row-gap); 44 margin-block-end: props.get(vars.$masonry--quiet--row-gap);
60 } 45 }
61 } 46 }
62 } 47 }
63 48
64 @include iro.bem-modifier('masonry-h') { 49 @include bem.modifier('masonry-h') {
65 flex-flow: row wrap; 50 flex-flow: row wrap;
66 gap: fn.dim(--masonry-h --col-gap); 51 gap: props.get(vars.$masonry-h--row-gap) props.get(vars.$masonry-h--col-gap);
67 52
68 &::after { 53 @include bem.modifier('no-flush') {
69 content: ''; 54 &::after {
70 display: block; 55 display: block;
71 flex: 1 0 auto; 56 flex: 1 0 auto;
72 inline-size: fn.dim(--masonry-h --row-height); 57 inline-size: props.get(vars.$masonry-h--row-height);
73 block-size: 0; 58 content: '';
59 }
74 } 60 }
75 61
76 @include iro.bem-elem('card') { 62 @include bem.elem('card') {
77 flex: 1 0 auto; 63 flex: 1 0 auto;
78 max-inline-size: 100%; 64 max-inline-size: 100%;
79 } 65 }
80 66
81 @include iro.bem-elem('card-image') { 67 @include bem.elem('card-image') {
82 block-size: fn.dim(--masonry-h --row-height); 68 block-size: props.get(vars.$masonry-h--row-height);
83 } 69 }
84 70
85 @include iro.bem-modifier('quiet') { 71 @include bem.modifier('quiet') {
86 row-gap: fn.dim(--masonry-h --row-gap); 72 row-gap: props.get(vars.$masonry-h--quiet--row-gap);
87 } 73 }
88 } 74 }
89 75
90 @include iro.bem-modifier('aspect-5\\/4') { 76 @include bem.modifier('aspect-5\\/4') {
91 @include iro.bem-elem('card-image') { 77 @include bem.elem('card-image') {
92 aspect-ratio: 5 / 4; 78 aspect-ratio: 5 / 4;
93 } 79 }
94 } 80 }