summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolpeon <git@volpeon.ink>2025-07-22 19:18:29 +0200
committerVolpeon <git@volpeon.ink>2025-07-22 19:18:29 +0200
commit15b7d391046151ae0ca8dadce8b973b80edacc1f (patch)
tree290edbc282fbd7a4ac30583c17064bfd62b91962
parentFix (diff)
downloadiro-design-15b7d391046151ae0ca8dadce8b973b80edacc1f.tar.gz
iro-design-15b7d391046151ae0ca8dadce8b973b80edacc1f.tar.bz2
iro-design-15b7d391046151ae0ca8dadce8b973b80edacc1f.zip
Improved card
-rw-r--r--src/objects/_card.scss18
-rw-r--r--src/objects/_card.vars.scss8
-rw-r--r--tpl/objects/card.pug1
-rw-r--r--tpl/views/card.pug8
4 files changed, 27 insertions, 8 deletions
diff --git a/src/objects/_card.scss b/src/objects/_card.scss
index 932007e..b1386e4 100644
--- a/src/objects/_card.scss
+++ b/src/objects/_card.scss
@@ -43,6 +43,16 @@
43 43
44 @include bem.modifier('borderless') { 44 @include bem.modifier('borderless') {
45 border-color: props.get(vars.$bg-color); 45 border-color: props.get(vars.$bg-color);
46 box-shadow:
47 props.get(vars.$shadow-x)
48 props.get(vars.$shadow-y)
49 props.get(vars.$shadow-blur)
50 props.get(vars.$shadow-grow)
51 props.get(vars.$shadow-color);
52 }
53
54 @include bem.modifier('merge') {
55 border-color: props.get(vars.$bg-color);
46 } 56 }
47 57
48 @include bem.elem('avatar') { 58 @include bem.elem('avatar') {
@@ -125,6 +135,7 @@
125 margin-inline: 0; 135 margin-inline: 0;
126 background-color: transparent; 136 background-color: transparent;
127 border: 0; 137 border: 0;
138 box-shadow: none;
128 139
129 @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive') { 140 @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive') {
130 &:hover, 141 &:hover,
@@ -144,6 +155,7 @@
144 margin: 0; 155 margin: 0;
145 outline: none; 156 outline: none;
146 border: 0; 157 border: 0;
158 box-shadow: none;
147 159
148 @include bem.elem('image') { 160 @include bem.elem('image') {
149 margin: calc(-1 * props.get(vars.$key-focus--border-width)); 161 margin: calc(-1 * props.get(vars.$key-focus--border-width));
@@ -167,6 +179,12 @@
167 background-color: props.get(vars.$quiet--image-color); 179 background-color: props.get(vars.$quiet--image-color);
168 background-clip: padding-box; 180 background-clip: padding-box;
169 border-radius: props.get(vars.$rounding); 181 border-radius: props.get(vars.$rounding);
182 box-shadow:
183 props.get(vars.$shadow-x)
184 props.get(vars.$shadow-y)
185 props.get(vars.$shadow-blur)
186 props.get(vars.$shadow-grow)
187 props.get(vars.$shadow-color);
170 } 188 }
171 189
172 @include bem.elem('body') { 190 @include bem.elem('body') {
diff --git a/src/objects/_card.vars.scss b/src/objects/_card.vars.scss
index 592182e..ebfba10 100644
--- a/src/objects/_card.vars.scss
+++ b/src/objects/_card.vars.scss
@@ -14,10 +14,10 @@ $image-overlay--pad-b: props.def(--o-card--image-overlay--pad-b, props.get($pad-
14 14
15$hover--offset-b: props.def(--o-card--hover--offset-b, calc(-1 * props.get(core.$size--65))) !default; 15$hover--offset-b: props.def(--o-card--hover--offset-b, calc(-1 * props.get(core.$size--65))) !default;
16 16
17$shadow-x: props.def(--o-card--shadow-x, props.get(core.$shadow--l2--x)) !default; 17$shadow-x: props.def(--o-card--shadow-x, props.get(core.$shadow--l1--x)) !default;
18$shadow-y: props.def(--o-card--shadow-y, props.get(core.$shadow--l2--y)) !default; 18$shadow-y: props.def(--o-card--shadow-y, props.get(core.$shadow--l1--y)) !default;
19$shadow-blur: props.def(--o-card--shadow-blur, props.get(core.$shadow--l2--blur)) !default; 19$shadow-blur: props.def(--o-card--shadow-blur, props.get(core.$shadow--l1--blur)) !default;
20$shadow-grow: props.def(--o-card--shadow-grow, props.get(core.$shadow--l2--grow)) !default; 20$shadow-grow: props.def(--o-card--shadow-grow, props.get(core.$shadow--l1--grow)) !default;
21 21
22$key-focus--border-width: props.def(--o-card--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; 22$key-focus--border-width: props.def(--o-card--key-focus--border-width, props.get(core.$key-focus--border-width)) !default;
23$key-focus--border-offset: props.def(--o-card--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; 23$key-focus--border-offset: props.def(--o-card--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default;
diff --git a/tpl/objects/card.pug b/tpl/objects/card.pug
index 514b9d3..cd4f75c 100644
--- a/tpl/objects/card.pug
+++ b/tpl/objects/card.pug
@@ -3,6 +3,7 @@ mixin card
3 let classes = { 3 let classes = {
4 'o-card': true, 4 'o-card': true,
5 'o-card--borderless': !!attributes.borderless, 5 'o-card--borderless': !!attributes.borderless,
6 'o-card--merge': !!attributes.merge,
6 'o-card--quiet': !!attributes.quiet, 7 'o-card--quiet': !!attributes.quiet,
7 'o-card--thumbnail': !!attributes.thumbnail, 8 'o-card--thumbnail': !!attributes.thumbnail,
8 } 9 }
diff --git a/tpl/views/card.pug b/tpl/views/card.pug
index 64e3504..57eab8f 100644
--- a/tpl/views/card.pug
+++ b/tpl/views/card.pug
@@ -9,7 +9,7 @@ mixin view-card
9 +card-body 9 +card-body
10 strong= 'Lorem ipsum dolor' 10 strong= 'Lorem ipsum dolor'
11 = 'sit amet' 11 = 'sit amet'
12 +card(href='#' class='l-card-list__card') 12 +card(href='#' class='l-card-list__card' borderless=true)
13 +card-body 13 +card-body
14 strong= 'Lorem ipsum dolor' 14 strong= 'Lorem ipsum dolor'
15 = 'sit amet' 15 = 'sit amet'
@@ -17,15 +17,15 @@ mixin view-card
17 +divider('faint')(class='u-mb-700') 17 +divider('faint')(class='u-mb-700')
18 18
19 .l-card-list.l-card-list--merge 19 .l-card-list.l-card-list--merge
20 +card(href='#' class='l-card-list__card' borderless=true) 20 +card(href='#' class='l-card-list__card' merge=true)
21 +card-body 21 +card-body
22 strong= 'Lorem ipsum dolor' 22 strong= 'Lorem ipsum dolor'
23 = 'sit amet' 23 = 'sit amet'
24 +card(href='#' class='l-card-list__card' borderless=true) 24 +card(href='#' class='l-card-list__card' merge=true)
25 +card-body 25 +card-body
26 strong= 'Lorem ipsum dolor' 26 strong= 'Lorem ipsum dolor'
27 = 'sit amet' 27 = 'sit amet'
28 +card(href='#' class='l-card-list__card' borderless=true) 28 +card(href='#' class='l-card-list__card' merge=true)
29 +card-body 29 +card-body
30 strong= 'Lorem ipsum dolor' 30 strong= 'Lorem ipsum dolor'
31 = 'sit amet' 31 = 'sit amet'