diff options
Diffstat (limited to 'src/objects/_card.scss')
-rw-r--r-- | src/objects/_card.scss | 115 |
1 files changed, 60 insertions, 55 deletions
diff --git a/src/objects/_card.scss b/src/objects/_card.scss index 4f8c7fb..6b80e2f 100644 --- a/src/objects/_card.scss +++ b/src/objects/_card.scss | |||
@@ -14,34 +14,26 @@ | |||
14 | position: relative; | 14 | position: relative; |
15 | display: flex; | 15 | display: flex; |
16 | flex-direction: column; | 16 | flex-direction: column; |
17 | background-color: props.get(vars.$bg-color); | ||
18 | background-clip: content-box; | 17 | background-clip: content-box; |
19 | border: 1px solid transparent; | 18 | background-color: props.get(vars.$bg-color); |
19 | border: props.get(vars.$border-width) solid transparent; | ||
20 | border-color: props.get(vars.$border-color); | 20 | border-color: props.get(vars.$border-color); |
21 | border-radius: props.get(vars.$rounding); | 21 | border-radius: props.get(vars.$rounding); |
22 | transition: transform .2s; | 22 | transition: transform .2s, background-color .2s, border-color .2s; |
23 | 23 | ||
24 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive') { | 24 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive') { |
25 | &:hover, | 25 | &:hover, |
26 | &:active, | 26 | &:active, |
27 | &:focus-visible { | 27 | &:focus-visible { |
28 | transform: translateY(props.get(vars.$hover--offset-b)); | 28 | transform: translateY(props.get(vars.$hover--offset-b)); |
29 | 29 | background-color: props.get(vars.$hover--bg-color); | |
30 | @include bem.elem('body') { | 30 | border-color: props.get(vars.$hover--border-color); |
31 | @include bem.modifier('hidden') { | ||
32 | visibility: visible; | ||
33 | opacity: 1; | ||
34 | transition: | ||
35 | opacity .2s ease, | ||
36 | visibility .2s linear; | ||
37 | } | ||
38 | } | ||
39 | } | 31 | } |
40 | 32 | ||
41 | &:focus-visible { | 33 | &:focus-visible { |
42 | margin: calc(-1 * props.get(vars.$key-focus--border-width) + 1px); | 34 | margin: calc(-1 * props.get(vars.$key-focus--border-width)); |
43 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 35 | border: calc(props.get(vars.$key-focus--border-offset) + props.get(vars.$border-width)) solid transparent; |
44 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) - 1px); | 36 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); |
45 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 37 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
46 | box-shadow: | 38 | box-shadow: |
47 | 0 0 0 | 39 | 0 0 0 |
@@ -65,13 +57,13 @@ | |||
65 | transition: background-color .2s, transform .2s, opacity .2s; | 57 | transition: background-color .2s, transform .2s, opacity .2s; |
66 | 58 | ||
67 | &:first-child { | 59 | &:first-child { |
68 | border-start-start-radius: calc(props.get(vars.$rounding) - 1px); | 60 | border-start-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
69 | border-start-end-radius: calc(props.get(vars.$rounding) - 1px); | 61 | border-start-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
70 | } | 62 | } |
71 | 63 | ||
72 | &:last-child { | 64 | &:last-child { |
73 | border-end-start-radius: calc(props.get(vars.$rounding) - 1px); | 65 | border-end-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
74 | border-end-end-radius: calc(props.get(vars.$rounding) - 1px); | 66 | border-end-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
75 | } | 67 | } |
76 | 68 | ||
77 | @include bem.next-elem('avatar') { | 69 | @include bem.next-elem('avatar') { |
@@ -104,26 +96,6 @@ | |||
104 | margin-block: -100em 100em; | 96 | margin-block: -100em 100em; |
105 | content: ''; | 97 | content: ''; |
106 | } | 98 | } |
107 | |||
108 | @include bem.modifier('hidden') { | ||
109 | position: absolute; | ||
110 | inset-block-end: 0; | ||
111 | inset-inline: 0; | ||
112 | z-index: 10; | ||
113 | visibility: hidden; | ||
114 | background-color: props.get(vars.$bg-color); | ||
115 | //border-end-start-radius: props.get(vars.$rounding); | ||
116 | //border-end-end-radius: props.get(vars.$rounding); | ||
117 | opacity: 0; | ||
118 | transition: | ||
119 | opacity .2s ease, | ||
120 | visibility 0s .2s linear; | ||
121 | |||
122 | @include bem.next-elem('image') { | ||
123 | border-start-start-radius: calc(props.get(vars.$rounding) - 1px); | ||
124 | border-start-end-radius: calc(props.get(vars.$rounding) - 1px); | ||
125 | } | ||
126 | } | ||
127 | } | 99 | } |
128 | 100 | ||
129 | @include bem.elem('content') { | 101 | @include bem.elem('content') { |
@@ -155,19 +127,14 @@ | |||
155 | &:hover, | 127 | &:hover, |
156 | &:active, | 128 | &:active, |
157 | &:focus-visible { | 129 | &:focus-visible { |
158 | transform: none; | 130 | transform: none; |
131 | background-color: transparent; | ||
159 | 132 | ||
160 | @include bem.elem('image') { | 133 | @include bem.elem('image') { |
161 | background-color: props.get(vars.$quiet--hover--image-color); | 134 | background-color: props.get(vars.$quiet--hover--image-color); |
162 | opacity: .75; | 135 | opacity: .75; |
163 | transform: translateY(props.get(vars.$hover--offset-b)); | 136 | transform: translateY(props.get(vars.$hover--offset-b)); |
164 | } | 137 | } |
165 | |||
166 | @include bem.elem('body') { | ||
167 | @include bem.modifier('hidden') { | ||
168 | transform: translateY(props.get(vars.$hover--offset-b)); | ||
169 | } | ||
170 | } | ||
171 | } | 138 | } |
172 | 139 | ||
173 | &:focus-visible { | 140 | &:focus-visible { |
@@ -203,11 +170,6 @@ | |||
203 | @include bem.elem('body') { | 170 | @include bem.elem('body') { |
204 | padding: 0; | 171 | padding: 0; |
205 | padding-block-start: props.get(vars.$spacing); | 172 | padding-block-start: props.get(vars.$spacing); |
206 | |||
207 | @include bem.modifier('hidden') { | ||
208 | padding-block: props.get(vars.$pad-b); | ||
209 | padding-inline: props.get(vars.$pad-i); | ||
210 | } | ||
211 | } | 173 | } |
212 | 174 | ||
213 | @include bem.elem('footer') { | 175 | @include bem.elem('footer') { |
@@ -215,6 +177,49 @@ | |||
215 | } | 177 | } |
216 | } | 178 | } |
217 | 179 | ||
180 | @include bem.modifier('thumbnail') { | ||
181 | @include bem.elem('image') { | ||
182 | inline-size: calc(100% + 2 * props.get(vars.$border-width)); | ||
183 | margin: calc(-1 * props.get(vars.$border-width)); | ||
184 | border-radius: props.get(vars.$rounding); | ||
185 | } | ||
186 | |||
187 | @include bem.elem('body') { | ||
188 | position: absolute; | ||
189 | inset-block-end: calc(-1 * props.get(vars.$border-width)); | ||
190 | inset-inline: calc(-1 * props.get(vars.$border-width)); | ||
191 | z-index: 10; | ||
192 | visibility: hidden; | ||
193 | background-color: props.get(vars.$hover--bg-color); | ||
194 | border-width: 0 props.get(vars.$border-width) props.get(vars.$border-width); | ||
195 | border-color: transparent; | ||
196 | border-style: solid; | ||
197 | border-end-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | ||
198 | border-end-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | ||
199 | opacity: 0; | ||
200 | transition: | ||
201 | border-color .2s ease, | ||
202 | opacity .2s ease, | ||
203 | visibility 0s .2s linear; | ||
204 | } | ||
205 | |||
206 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive') { | ||
207 | &:hover, | ||
208 | &:active, | ||
209 | &:focus-visible { | ||
210 | @include bem.elem('body') { | ||
211 | border-color: props.get(vars.$hover--border-color); | ||
212 | visibility: visible; | ||
213 | opacity: 1; | ||
214 | transition: | ||
215 | border-color .2s ease, | ||
216 | opacity .2s ease, | ||
217 | visibility .2s linear; | ||
218 | } | ||
219 | } | ||
220 | } | ||
221 | } | ||
222 | |||
218 | @include bem.modifier('horizontal') { | 223 | @include bem.modifier('horizontal') { |
219 | flex-direction: row; | 224 | flex-direction: row; |
220 | align-items: center; | 225 | align-items: center; |
@@ -225,11 +230,11 @@ | |||
225 | 230 | ||
226 | &:first-child { | 231 | &:first-child { |
227 | border-start-end-radius: 0; | 232 | border-start-end-radius: 0; |
228 | border-end-start-radius: calc(props.get(vars.$rounding) - 1px); | 233 | border-end-start-radius: props.get(vars.$rounding); |
229 | } | 234 | } |
230 | 235 | ||
231 | &:last-child { | 236 | &:last-child { |
232 | border-start-end-radius: calc(props.get(vars.$rounding) - 1px); | 237 | border-start-end-radius: props.get(vars.$rounding); |
233 | border-end-start-radius: 0; | 238 | border-end-start-radius: 0; |
234 | } | 239 | } |
235 | } | 240 | } |