@laser-ui/themes 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/_mixins.scss +5 -0
  4. package/_variables.scss +17 -0
  5. package/animations.scss +19 -0
  6. package/common.scss +9 -0
  7. package/components/accordion.scss +52 -0
  8. package/components/alert.scss +110 -0
  9. package/components/anchor.scss +69 -0
  10. package/components/avatar.scss +36 -0
  11. package/components/badge.scss +54 -0
  12. package/components/breadcrumb.scss +50 -0
  13. package/components/button.scss +245 -0
  14. package/components/card.scss +77 -0
  15. package/components/cascader.scss +313 -0
  16. package/components/checkbox.scss +194 -0
  17. package/components/circular-progress.scss +30 -0
  18. package/components/compose.scss +121 -0
  19. package/components/date-picker.scss +310 -0
  20. package/components/drawer.scss +113 -0
  21. package/components/dropdown.scss +156 -0
  22. package/components/empty.scss +27 -0
  23. package/components/fab.scss +293 -0
  24. package/components/form.scss +137 -0
  25. package/components/icon.scss +17 -0
  26. package/components/image.scss +213 -0
  27. package/components/input.scss +172 -0
  28. package/components/mask.scss +11 -0
  29. package/components/menu.scss +327 -0
  30. package/components/modal.scss +139 -0
  31. package/components/notification.scss +127 -0
  32. package/components/pagination.scss +134 -0
  33. package/components/popover.scss +197 -0
  34. package/components/progress.scss +125 -0
  35. package/components/radio.scss +203 -0
  36. package/components/rating.scss +75 -0
  37. package/components/select.scss +282 -0
  38. package/components/separator.scss +95 -0
  39. package/components/skeleton.scss +44 -0
  40. package/components/slider.scss +202 -0
  41. package/components/slides.scss +211 -0
  42. package/components/spinner.scss +43 -0
  43. package/components/stepper.scss +226 -0
  44. package/components/switch.scss +151 -0
  45. package/components/table.scss +297 -0
  46. package/components/tabs.scss +517 -0
  47. package/components/tag.scss +59 -0
  48. package/components/textarea.scss +69 -0
  49. package/components/time-picker.scss +212 -0
  50. package/components/timeline.scss +107 -0
  51. package/components/toast.scss +101 -0
  52. package/components/tooltip.scss +118 -0
  53. package/components/transfer.scss +122 -0
  54. package/components/tree-select.scss +218 -0
  55. package/components/tree.scss +169 -0
  56. package/components/upload.scss +367 -0
  57. package/components/wave.scss +36 -0
  58. package/index.scss +58 -0
  59. package/mixins/_polyfill.scss +34 -0
  60. package/mixins/_utils.scss +5 -0
  61. package/mixins/bem/_bem.scss +71 -0
  62. package/mixins/bem/_config.scss +4 -0
  63. package/mixins/bem/_function.scss +45 -0
  64. package/package.json +28 -0
  65. package/reboot.scss +5 -0
  66. package/root.scss +90 -0
  67. package/theme-dark.scss +62 -0
@@ -0,0 +1,27 @@
1
+ @use '../variables';
2
+ @use '../mixins';
3
+
4
+ @include mixins.b(empty) {
5
+ $selector: &;
6
+
7
+ display: flex;
8
+ flex-direction: column;
9
+ align-items: center;
10
+
11
+ @include mixins.e(img) {
12
+ opacity: var(--#{variables.$prefix}empty-img-opacity);
13
+
14
+ & + #{$selector}__description {
15
+ margin-top: 4px;
16
+ }
17
+ }
18
+
19
+ @include mixins.e(description) {
20
+ font-size: var(--#{variables.$prefix}font-size-subtitle);
21
+ color: var(--#{variables.$prefix}color-disabled);
22
+
23
+ & + #{$selector}__footer {
24
+ margin-top: 10px;
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,293 @@
1
+ @use 'sass:map';
2
+ @use '../variables';
3
+ @use '../mixins';
4
+
5
+ @keyframes #{variables.$prefix}fab-popup {
6
+ 0% {
7
+ opacity: 0;
8
+ }
9
+
10
+ 100% {
11
+ opacity: 1;
12
+ }
13
+ }
14
+
15
+ @include mixins.b(fab) {
16
+ position: relative;
17
+ display: inline-block;
18
+ vertical-align: top;
19
+
20
+ @include mixins.e(actions) {
21
+ position: absolute;
22
+ z-index: 5;
23
+ display: flex;
24
+ align-items: center;
25
+
26
+ @include mixins.m(top) {
27
+ top: -11px;
28
+ left: 0;
29
+ flex-direction: column-reverse;
30
+ width: 100%;
31
+ transform: translateY(-100%);
32
+ }
33
+
34
+ @include mixins.m(right) {
35
+ top: 0;
36
+ right: -11px;
37
+ flex-direction: row;
38
+ height: 100%;
39
+ transform: translateX(100%);
40
+ }
41
+
42
+ @include mixins.m(bottom) {
43
+ bottom: -11px;
44
+ left: 0;
45
+ flex-direction: column;
46
+ width: 100%;
47
+ transform: translateY(100%);
48
+ }
49
+
50
+ @include mixins.m(left) {
51
+ top: 0;
52
+ left: -11px;
53
+ flex-direction: row-reverse;
54
+ height: 100%;
55
+ transform: translateX(-100%);
56
+ }
57
+ }
58
+ }
59
+
60
+ @include mixins.b(fab-button) {
61
+ $selector: &;
62
+
63
+ --size: var(--#{variables.$prefix}fab-button-size, 56px);
64
+
65
+ position: relative;
66
+ display: inline-flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ min-width: var(--size);
70
+ height: var(--size);
71
+ padding: 0;
72
+ margin: 0;
73
+ font: inherit;
74
+ /* stylelint-disable-next-line declaration-property-value-allowed-list */
75
+ font-size: 24px;
76
+ white-space: nowrap;
77
+ vertical-align: top;
78
+ appearance: none;
79
+ cursor: pointer;
80
+ border-radius: var(--#{variables.$prefix}border-radius-large);
81
+ outline: none;
82
+ box-shadow: var(--#{variables.$prefix}fab-shadow);
83
+ transition:
84
+ color var(--#{variables.$prefix}animation-duration-base) linear,
85
+ background-color var(--#{variables.$prefix}animation-duration-base) linear,
86
+ border-color var(--#{variables.$prefix}animation-duration-base) linear;
87
+
88
+ &:disabled {
89
+ pointer-events: none;
90
+ }
91
+
92
+ svg {
93
+ font-size: 1.25em;
94
+ }
95
+
96
+ @each $theme, $rgb in variables.$themes {
97
+ @include mixins.theme(#{$theme}) {
98
+ --color-light: var(--#{variables.$prefix}fab-button-color-light, var(--#{variables.$prefix}color-light-#{$theme}));
99
+ --color: var(--#{variables.$prefix}fab-button-color, var(--#{variables.$prefix}color-#{$theme}));
100
+ --color-dark: var(--#{variables.$prefix}fab-button-color-dark, var(--#{variables.$prefix}color-dark-#{$theme}));
101
+ --background-color-light: var(
102
+ --#{variables.$prefix}fab-button-background-color-light,
103
+ var(--#{variables.$prefix}background-color-light-#{$theme})
104
+ );
105
+ --background-color: var(--#{variables.$prefix}fab-button-background-color, var(--#{variables.$prefix}background-color-#{$theme}));
106
+ }
107
+ }
108
+
109
+ @include mixins.when(expand) {
110
+ @include mixins.e(icon) {
111
+ opacity: 1;
112
+ transform: rotate(90deg);
113
+ }
114
+
115
+ @include mixins.e(content) {
116
+ opacity: 0;
117
+ }
118
+ }
119
+
120
+ @include mixins.when(loading) {
121
+ pointer-events: none;
122
+ }
123
+
124
+ @include mixins.m(in-actions) {
125
+ --size: var(--#{variables.$prefix}fab-button-size, 40px);
126
+
127
+ margin: 5px;
128
+ /* stylelint-disable-next-line declaration-property-value-allowed-list */
129
+ font-size: 18px;
130
+ /* stylelint-disable-next-line declaration-empty-line-before */
131
+ animation: #{variables.$prefix}fab-popup 133ms linear;
132
+ animation-fill-mode: both;
133
+ }
134
+
135
+ @include mixins.m(primary) {
136
+ color: map.get(variables.$colors, 'white');
137
+ background-color: var(--color);
138
+ border: 1px solid var(--color);
139
+
140
+ &:hover,
141
+ &:focus,
142
+ &.is-loading {
143
+ background-color: var(--color-light);
144
+ border-color: var(--color-light);
145
+ }
146
+
147
+ &:active {
148
+ background-color: var(--color-dark);
149
+ border-color: var(--color-dark);
150
+ }
151
+
152
+ &:disabled:not(.is-loading) {
153
+ filter: saturate(50%) grayscale(50%);
154
+ }
155
+ }
156
+
157
+ @include mixins.m(secondary) {
158
+ color: var(--#{variables.$prefix}color-text);
159
+ background-color: transparent;
160
+ border: 1px solid var(--#{variables.$prefix}color-border);
161
+
162
+ &:hover,
163
+ &:focus,
164
+ &.is-loading {
165
+ color: var(--color-light);
166
+ border-color: var(--color-light);
167
+ }
168
+
169
+ &:active {
170
+ color: var(--color-dark);
171
+ border-color: var(--color-dark);
172
+ }
173
+
174
+ &:disabled:not(.is-loading) {
175
+ color: var(--#{variables.$prefix}color-disabled);
176
+ background-color: var(--#{variables.$prefix}background-color-disabled);
177
+ }
178
+ }
179
+
180
+ @include mixins.m(outline) {
181
+ color: var(--color);
182
+ background-color: transparent;
183
+ border: 1px solid var(--color);
184
+
185
+ &:hover,
186
+ &:focus,
187
+ &.is-loading {
188
+ color: var(--color-light);
189
+ border-color: var(--color-light);
190
+ }
191
+
192
+ &:active {
193
+ color: var(--color-dark);
194
+ border-color: var(--color-dark);
195
+ }
196
+
197
+ &:disabled:not(.is-loading) {
198
+ color: var(--#{variables.$prefix}color-disabled);
199
+ border-color: var(--#{variables.$prefix}color-border);
200
+ }
201
+ }
202
+
203
+ @include mixins.m(dashed) {
204
+ color: var(--color);
205
+ background-color: transparent;
206
+ border: 1px dashed var(--color);
207
+
208
+ &:hover,
209
+ &:focus,
210
+ &.is-loading {
211
+ color: var(--color-light);
212
+ border-color: var(--color-light);
213
+ }
214
+
215
+ &:active {
216
+ color: var(--color-dark);
217
+ border-color: var(--color-dark);
218
+ }
219
+
220
+ &:disabled:not(.is-loading) {
221
+ color: var(--#{variables.$prefix}color-disabled);
222
+ border-color: var(--#{variables.$prefix}color-border);
223
+ }
224
+ }
225
+
226
+ @include mixins.m(text) {
227
+ color: var(--#{variables.$prefix}color-text);
228
+ background-color: transparent;
229
+ border: none;
230
+
231
+ &:hover,
232
+ &:focus,
233
+ &.is-loading {
234
+ color: var(--color-light);
235
+ background-color: var(--background-color-light);
236
+ }
237
+
238
+ &:active {
239
+ color: var(--color-dark);
240
+ background-color: var(--background-color);
241
+ }
242
+
243
+ &:disabled:not(.is-loading) {
244
+ color: var(--#{variables.$prefix}color-disabled);
245
+ pointer-events: none;
246
+ background-color: var(--#{variables.$prefix}background-color-disabled);
247
+ }
248
+ }
249
+
250
+ @include mixins.m(link) {
251
+ min-width: unset;
252
+ height: auto;
253
+ padding: 0;
254
+ color: var(--color);
255
+ background-color: transparent;
256
+ border: none;
257
+
258
+ &:hover,
259
+ &:focus,
260
+ &.is-loading {
261
+ color: var(--color-light);
262
+ }
263
+
264
+ &:active {
265
+ color: var(--color-dark);
266
+ }
267
+
268
+ &:disabled:not(.is-loading) {
269
+ color: var(--#{variables.$prefix}color-disabled);
270
+ }
271
+ }
272
+
273
+ @include mixins.m(circle) {
274
+ border-radius: 50%;
275
+ }
276
+
277
+ @include mixins.m(round) {
278
+ border-radius: calc(var(--size) / 2);
279
+ }
280
+
281
+ @include mixins.e(icon) {
282
+ position: absolute;
283
+ opacity: 0;
284
+ transition:
285
+ opacity var(--#{variables.$prefix}animation-duration-base) linear,
286
+ transform var(--#{variables.$prefix}animation-duration-base) linear;
287
+ }
288
+
289
+ @include mixins.e(button-content) {
290
+ opacity: 1;
291
+ transition: opacity var(--#{variables.$prefix}animation-duration-base) linear;
292
+ }
293
+ }
@@ -0,0 +1,137 @@
1
+ @use '../variables';
2
+ @use '../mixins';
3
+
4
+ @include mixins.b(form) {
5
+ --gutter-x: var(--#{variables.$prefix}form-gutter-x, 8px);
6
+ --gutter-y: var(--#{variables.$prefix}form-gutter-y, 0px);
7
+
8
+ @include mixins.m(small) {
9
+ --size: var(--#{variables.$prefix}input-size, var(--#{variables.$prefix}size-small));
10
+ --font-size: var(--#{variables.$prefix}input-font-size, var(--#{variables.$prefix}font-size-small));
11
+ }
12
+
13
+ @include mixins.m(medium) {
14
+ --size: var(--#{variables.$prefix}input-size, var(--#{variables.$prefix}size-medium));
15
+ --font-size: var(--#{variables.$prefix}input-font-size, var(--#{variables.$prefix}font-size-medium));
16
+ }
17
+
18
+ @include mixins.m(large) {
19
+ --size: var(--#{variables.$prefix}input-size, var(--#{variables.$prefix}size-large));
20
+ --font-size: var(--#{variables.$prefix}input-font-size, var(--#{variables.$prefix}font-size-large));
21
+ }
22
+
23
+ @include mixins.e(row) {
24
+ display: flex;
25
+ flex-wrap: wrap;
26
+ margin: calc(-1 * var(--gutter-y)) calc(-0.5 * var(--gutter-x)) 0 calc(-0.5 * var(--gutter-x));
27
+
28
+ & > * {
29
+ padding-right: calc(var(--gutter-x) * 0.5);
30
+ padding-left: calc(var(--gutter-x) * 0.5);
31
+ margin-top: var(--gutter-y);
32
+ }
33
+ }
34
+
35
+ @include mixins.e(item) {
36
+ position: relative;
37
+ width: 100%;
38
+ }
39
+
40
+ @include mixins.e(item-container) {
41
+ position: relative;
42
+ width: 100%;
43
+ }
44
+
45
+ @include mixins.e(item-label-wrapper) {
46
+ position: relative;
47
+ display: inline-block;
48
+ min-height: var(--size);
49
+ vertical-align: top;
50
+ }
51
+
52
+ @include mixins.e(item-label) {
53
+ display: inline-flex;
54
+ flex-wrap: wrap;
55
+ align-items: center;
56
+ justify-content: flex-end;
57
+ min-height: var(--size);
58
+ padding-right: 8px;
59
+ font-size: var(--font-size);
60
+ overflow-wrap: break-word;
61
+
62
+ @include mixins.m(auto) {
63
+ position: absolute;
64
+ top: 0;
65
+ right: 0;
66
+ flex-wrap: nowrap;
67
+ }
68
+
69
+ @include mixins.m(required) {
70
+ &::before {
71
+ display: inline-block;
72
+ margin-right: 4px;
73
+ color: var(--#{variables.$prefix}color-danger);
74
+ content: '*';
75
+ }
76
+ }
77
+
78
+ @include mixins.m(colon) {
79
+ &::after {
80
+ margin-left: 2px;
81
+ content: ':';
82
+ }
83
+ }
84
+ }
85
+
86
+ @include mixins.e(item-label-extra) {
87
+ @include mixins.polyfill-column-gap(4px);
88
+
89
+ display: inline-flex;
90
+ align-items: center;
91
+ margin-left: 4px;
92
+ color: var(--#{variables.$prefix}color-text-sub);
93
+ }
94
+
95
+ @include mixins.e(item-content) {
96
+ display: inline-block;
97
+ vertical-align: top;
98
+ }
99
+
100
+ @include mixins.e(item-control) {
101
+ position: relative;
102
+ display: flex;
103
+ flex-wrap: wrap;
104
+ align-items: center;
105
+ width: 100%;
106
+ min-height: var(--size);
107
+ }
108
+
109
+ @include mixins.e(item-feedback-icon) {
110
+ display: inline-flex;
111
+ flex-shrink: 0;
112
+ align-items: center;
113
+ justify-content: center;
114
+ width: 2em;
115
+ height: var(--size);
116
+ }
117
+
118
+ @include mixins.e(error-container) {
119
+ width: 100%;
120
+ min-height: calc(1.5em + 5px);
121
+ padding: 2px 0;
122
+ font-size: calc(var(--font-size) - 2px);
123
+ line-height: 1.5;
124
+ }
125
+
126
+ @include mixins.e(error) {
127
+ @include mixins.utils-ellipsis;
128
+
129
+ @include mixins.m(error) {
130
+ color: var(--#{variables.$prefix}color-danger);
131
+ }
132
+
133
+ @include mixins.m(warning) {
134
+ color: var(--#{variables.$prefix}color-warning);
135
+ }
136
+ }
137
+ }
@@ -0,0 +1,17 @@
1
+ @use '../variables';
2
+ @use '../mixins';
3
+
4
+ @include mixins.b(icon) {
5
+ display: inline;
6
+ vertical-align: top;
7
+
8
+ @each $theme, $rgb in variables.$themes {
9
+ @include mixins.theme(#{$theme}) {
10
+ color: var(--#{variables.$prefix}color-#{$theme});
11
+ }
12
+ }
13
+
14
+ svg {
15
+ display: block;
16
+ }
17
+ }
@@ -0,0 +1,213 @@
1
+ @use 'sass:map';
2
+ @use '../variables';
3
+ @use '../mixins';
4
+
5
+ @include mixins.b(image) {
6
+ position: relative;
7
+ display: inline-flex;
8
+ vertical-align: top;
9
+
10
+ &:hover {
11
+ @include mixins.e(actions) {
12
+ opacity: 1;
13
+ }
14
+ }
15
+
16
+ @include mixins.e(img) {
17
+ display: block;
18
+ }
19
+
20
+ @include mixins.e(actions) {
21
+ position: absolute;
22
+ top: 0;
23
+ right: 0;
24
+ bottom: 0;
25
+ left: 0;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ background-color: var(--#{variables.$prefix}background-color-mask);
30
+ opacity: 0;
31
+ transition: opacity var(--#{variables.$prefix}animation-duration-base) linear;
32
+ }
33
+
34
+ @include mixins.e(action) {
35
+ display: inline-flex;
36
+ align-items: center;
37
+ justify-content: center;
38
+ min-width: 24px;
39
+ height: 24px;
40
+ padding: 0;
41
+ margin: 0;
42
+ font: inherit;
43
+ color: map.get(variables.$colors, 'white');
44
+ vertical-align: top;
45
+ appearance: none;
46
+ cursor: pointer;
47
+ background-color: transparent;
48
+ border: none;
49
+ outline: none;
50
+ transition: background-color var(--#{variables.$prefix}animation-duration-base) linear;
51
+
52
+ &:hover,
53
+ &:focus {
54
+ background-color: var(--#{variables.$prefix}background-color-light-hover);
55
+ }
56
+
57
+ &:disabled {
58
+ pointer-events: none;
59
+ filter: opacity(50%);
60
+ }
61
+ }
62
+ }
63
+
64
+ @include mixins.b(image-preview) {
65
+ position: absolute;
66
+ top: 0;
67
+ right: 0;
68
+ bottom: 0;
69
+ left: 0;
70
+ display: flex;
71
+ padding: 68px 68px 98px;
72
+ overflow: hidden;
73
+ outline: none;
74
+
75
+ @include mixins.e(navigation-button) {
76
+ position: absolute;
77
+ z-index: 5;
78
+ display: inline-flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ width: 36px;
82
+ height: 36px;
83
+ padding: 0;
84
+ margin: 0;
85
+ font: inherit;
86
+ /* stylelint-disable-next-line declaration-property-value-allowed-list */
87
+ font-size: 18px;
88
+ color: var(--#{variables.$prefix}color-text);
89
+ white-space: nowrap;
90
+ vertical-align: top;
91
+ appearance: none;
92
+ cursor: pointer;
93
+ background-color: var(--#{variables.$prefix}background-color);
94
+ border: none;
95
+ border-radius: 50%;
96
+ outline: none;
97
+ box-shadow: 0 1px 4px 0 var(--#{variables.$prefix}box-shadow-color);
98
+ transition:
99
+ color var(--#{variables.$prefix}animation-duration-base) linear,
100
+ background-color var(--#{variables.$prefix}animation-duration-base) linear;
101
+
102
+ &:hover {
103
+ color: var(--#{variables.$prefix}color-primary);
104
+ background-color: var(--#{variables.$prefix}background-color-primary-gray);
105
+ }
106
+
107
+ @include mixins.m(prev) {
108
+ top: 50%;
109
+ left: 12px;
110
+ transform: translateY(-50%);
111
+ }
112
+
113
+ @include mixins.m(next) {
114
+ top: 50%;
115
+ right: 12px;
116
+ transform: translateY(-50%);
117
+ }
118
+
119
+ @include mixins.e(toolbar) {
120
+ position: absolute;
121
+ top: 0;
122
+ left: 0;
123
+ z-index: 5;
124
+ display: flex;
125
+ align-items: center;
126
+ justify-content: flex-end;
127
+ width: 100%;
128
+ height: 48px;
129
+ padding: 0 10px;
130
+ margin: 0;
131
+ list-style: none;
132
+ background-color: var(--#{variables.$prefix}background-color);
133
+ }
134
+
135
+ @include mixins.e(toolbar-page) {
136
+ @include mixins.polyfill-column-gap(8px);
137
+
138
+ display: inline-flex;
139
+ align-items: center;
140
+ margin-right: auto;
141
+ }
142
+
143
+ @include mixins.e(toolbar-page-input) {
144
+ width: 60px;
145
+ }
146
+
147
+ @include mixins.e(toolbar-rotate) {
148
+ margin-right: 10px;
149
+ }
150
+
151
+ @include mixins.e(toolbar-zoom-input) {
152
+ width: 80px;
153
+ margin: 0 4px;
154
+ }
155
+
156
+ @include mixins.e(toolbar-close) {
157
+ margin-left: 10px;
158
+ }
159
+
160
+ @include mixins.e(img) {
161
+ z-index: 1;
162
+ width: 100%;
163
+ height: 100%;
164
+ touch-action: none;
165
+ cursor: move;
166
+ user-select: none;
167
+ outline: none;
168
+ object-fit: contain;
169
+ }
170
+
171
+ @include mixins.e(thumbnail-list) {
172
+ position: absolute;
173
+ bottom: 10px;
174
+ left: 50%;
175
+ z-index: 5;
176
+ display: flex;
177
+ padding: 8px;
178
+ margin: 0;
179
+ list-style: none;
180
+ background-color: var(--#{variables.$prefix}background-color);
181
+ /* stylelint-disable-next-line declaration-property-value-allowed-list */
182
+ border-radius: 8px;
183
+ transform: translateX(-50%);
184
+ }
185
+
186
+ @include mixins.e(thumbnail) {
187
+ width: 52px;
188
+ height: 52px;
189
+ cursor: pointer;
190
+ background-color: var(--#{variables.$prefix}background-color-hover);
191
+ border: 1px solid transparent;
192
+ transition: border-color var(--#{variables.$prefix}animation-duration-base) linear;
193
+
194
+ & + & {
195
+ margin-left: 8px;
196
+ }
197
+
198
+ &:hover {
199
+ border-color: var(--#{variables.$prefix}color-light-primary);
200
+ }
201
+
202
+ @include mixins.when(active) {
203
+ border-color: var(--#{variables.$prefix}color-primary);
204
+ }
205
+ }
206
+
207
+ @include mixins.e(thumbnail-img) {
208
+ width: 100%;
209
+ height: 100%;
210
+ object-fit: contain;
211
+ }
212
+ }
213
+ }