@repobit/dex-system-design 0.19.2 → 0.21.0

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 (75) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/package.json +2 -3
  3. package/src/components/Button/button.stories.js +51 -51
  4. package/src/components/accordion/accordion-bg.css.js +168 -102
  5. package/src/components/accordion/accordion-bg.js +13 -5
  6. package/src/components/accordion/accordion-bg.stories.js +281 -0
  7. package/src/components/accordion/accordion-light.stories.js +241 -0
  8. package/src/components/anchor/anchor.stories.js +24 -22
  9. package/src/components/back/back.css.js +56 -0
  10. package/src/components/back/back.js +39 -0
  11. package/src/components/back/back.stories.js +184 -0
  12. package/src/components/badge/badge.css.js +44 -6
  13. package/src/components/badge/badge.js +40 -2
  14. package/src/components/badge/badge.stories.js +3 -10
  15. package/src/components/breadcrumb/breadcrumb.css.js +98 -0
  16. package/src/components/breadcrumb/breadcrumb.js +136 -0
  17. package/src/components/breadcrumb/breadcrumb.stories.js +109 -0
  18. package/src/components/cards/card.css.js +245 -0
  19. package/src/components/cards/card.js +80 -0
  20. package/src/components/cards/card.stories.js +512 -0
  21. package/src/components/carousel/carousel.css.js +51 -36
  22. package/src/components/carousel/carousel.js +0 -1
  23. package/src/components/carousel/carousel.stories.js +21 -17
  24. package/src/components/display/display.css.js +68 -0
  25. package/src/components/display/display.js +26 -0
  26. package/src/components/display/display.stories.js +339 -0
  27. package/src/components/divider/divider-horizontal.js +1 -1
  28. package/src/components/footer/footer-links-group.css.js +1 -1
  29. package/src/components/footer/footer-links-group.js +3 -3
  30. package/src/components/footer/footer-lp.stories.js +26 -61
  31. package/src/components/footer/footer-nav-menu.css.js +9 -10
  32. package/src/components/footer/footer.css.js +95 -8
  33. package/src/components/footer/footer.js +31 -65
  34. package/src/components/footer/footer.stories.js +165 -48
  35. package/src/components/header/header.js +11 -11
  36. package/src/components/header/header.stories.js +36 -4
  37. package/src/components/heading/heading.css.js +79 -0
  38. package/src/components/heading/heading.js +79 -0
  39. package/src/components/heading/heading.stories.js +260 -0
  40. package/src/components/highlight/highlight.stories.js +1 -1
  41. package/src/components/image/image.css.js +101 -0
  42. package/src/components/image/image.js +57 -0
  43. package/src/components/image/image.stories.js +245 -0
  44. package/src/components/light-carousel/light-carousel-simple.js +3 -2
  45. package/src/components/light-carousel/light-carousel.js +3 -7
  46. package/src/components/light-carousel/light-carousel.stories.js +15 -16
  47. package/src/components/link/link.css.js +107 -18
  48. package/src/components/link/link.js +16 -12
  49. package/src/components/link/link.stories.js +177 -0
  50. package/src/components/list/list-item/list-item.css.js +106 -0
  51. package/src/components/list/list-item/list-item.js +43 -0
  52. package/src/components/list/list-item/list-item.stories.js +79 -0
  53. package/src/components/list/list.css.js +175 -0
  54. package/src/components/list/list.js +44 -0
  55. package/src/components/modal/modal.js +6 -5
  56. package/src/components/paragraph/paragraph.css.js +41 -11
  57. package/src/components/paragraph/paragraph.js +7 -45
  58. package/src/components/paragraph/paragraph.stories.js +235 -0
  59. package/src/components/picture/picture.css.js +0 -0
  60. package/src/components/picture/picture.js +46 -0
  61. package/src/components/picture/picture.stories.js +275 -0
  62. package/src/components/pricing-cards/pricing-card-actions.js +1 -1
  63. package/src/components/pricing-cards/pricing-card-header.js +9 -7
  64. package/src/components/pricing-cards/pricing-card-pricing.js +11 -12
  65. package/src/components/pricing-cards/pricing-card.css.js +28 -3
  66. package/src/components/pricing-cards/pricing-card.js +38 -50
  67. package/src/components/tabs/tabs.js +44 -47
  68. package/src/components/termsOfUse/terms.js +77 -161
  69. package/src/components/termsOfUse/terms.stories.js +4 -3
  70. package/src/stories/Header.js +6 -6
  71. package/src/tokens/layout.css +3 -3
  72. package/src/tokens/tokens.css +0 -23
  73. package/src/tokens/tokens.stories.js +9 -8
  74. package/src/components/accordion/accordion-no-bg.css.js +0 -114
  75. package/src/components/accordion/accordion-no-bg.js +0 -80
@@ -0,0 +1,46 @@
1
+ import { LitElement, html } from "lit";
2
+
3
+ export class BdPicture extends LitElement {
4
+ static properties = {
5
+ sources : { type: Array },
6
+ alt : { type: String },
7
+ fallbackSrc: { type: String },
8
+ width : { type: Number },
9
+ height : { type: Number },
10
+ loading : { type: String }
11
+ };
12
+
13
+ constructor() {
14
+ super();
15
+ this.sources = [];
16
+ this.alt = "";
17
+ this.fallbackSrc = "";
18
+ this.width = null;
19
+ this.height = null;
20
+ this.loading = "lazy";
21
+ }
22
+
23
+ render() {
24
+ return html`
25
+ <picture>
26
+ ${this.sources.map(source => html`
27
+ <source
28
+ type="${source.type}"
29
+ srcset="${source.srcset}"
30
+ media="${source.media || ''}"
31
+ sizes="${source.sizes || ''}"
32
+ >
33
+ `)}
34
+ <img
35
+ loading="${this.loading}"
36
+ alt="${this.alt}"
37
+ src="${this.fallbackSrc}"
38
+ width="${this.width}"
39
+ height="${this.height}"
40
+ >
41
+ </picture>
42
+ `;
43
+ }
44
+ }
45
+
46
+ customElements.define("bd-picture", BdPicture);
@@ -0,0 +1,275 @@
1
+ import { html } from 'lit';
2
+ import '../heading/heading.js';
3
+ import './picture.js';
4
+
5
+ export default {
6
+ title : 'Atoms/Picture',
7
+ component: 'bd-picture',
8
+ argTypes : {
9
+ sources: {
10
+ control : 'object',
11
+ description: 'Array of source objects for responsive images'
12
+ },
13
+ alt: {
14
+ control : 'text',
15
+ description: 'Alt text for accessibility'
16
+ },
17
+ fallbackSrc: {
18
+ control : 'text',
19
+ description: 'Fallback image source for older browsers'
20
+ },
21
+ width: {
22
+ control : 'number',
23
+ description: 'Image width attribute'
24
+ },
25
+ height: {
26
+ control : 'number',
27
+ description: 'Image height attribute'
28
+ },
29
+ loading: {
30
+ control : { type: 'select' },
31
+ options : ['lazy', 'eager'],
32
+ description: 'Image loading strategy'
33
+ }
34
+ },
35
+ parameters: {
36
+ docs: {
37
+ description: {
38
+ component: 'A responsive picture component that supports multiple image formats and breakpoints.'
39
+ }
40
+ }
41
+ }
42
+ };
43
+
44
+ const Template = (args) => html`
45
+ <bd-picture
46
+ .sources="${args.sources}"
47
+ alt="${args.alt}"
48
+ fallback-src="${args.fallbackSrc}"
49
+ width="${args.width}"
50
+ height="${args.height}"
51
+ loading="${args.loading}"
52
+ ></bd-picture>
53
+ `;
54
+
55
+ export const Default = Template.bind({});
56
+ Default.args = {
57
+ sources: [
58
+ {
59
+ type : 'image/webp',
60
+ srcset: '/assets/bd-header-us-2000.webp',
61
+ media : '(min-width: 1200px)'
62
+ },
63
+ {
64
+ type : 'image/webp',
65
+ srcset: '/assets/bd-header-us-1000.webp',
66
+ media : '(min-width: 768px)'
67
+ },
68
+ {
69
+ type : 'image/webp',
70
+ srcset: '/assets/bd-header-us-750.webp'
71
+ }
72
+ ],
73
+ alt : 'Bitdefender Security Illustration',
74
+ fallbackSrc: '/assets/bd-header-us.jpg',
75
+ width : 750,
76
+ height : 500,
77
+ loading : 'lazy'
78
+ };
79
+
80
+ export const SimplePicture = Template.bind({});
81
+ SimplePicture.args = {
82
+ sources: [
83
+ {
84
+ type : 'image/jpeg',
85
+ srcset: '/assets/bd-header-us.jpg'
86
+ }
87
+ ],
88
+ alt : 'Simple Bitdefender Security Image',
89
+ fallbackSrc: '/assets/bd-header-us.jpg',
90
+ width : 750,
91
+ height : 500,
92
+ loading : 'eager'
93
+ };
94
+
95
+ export const WebPWithJPEGFallback = () => html`
96
+ <div style="max-width: 800px; margin: 0 auto;">
97
+ <bd-h as="h4">WebP with JPEG Fallback</bd-h>
98
+ <bd-picture
99
+ .sources="${[
100
+ {
101
+ type : 'image/webp',
102
+ srcset: '/assets/bd-header-us-2000.webp',
103
+ media : '(min-width: 1200px)'
104
+ },
105
+ {
106
+ type : 'image/webp',
107
+ srcset: '/assets/bd-header-us-1000.webp',
108
+ media : '(min-width: 768px)'
109
+ },
110
+ {
111
+ type : 'image/webp',
112
+ srcset: '/assets/bd-header-us-750.webp'
113
+ },
114
+ {
115
+ type : 'image/jpeg',
116
+ srcset: '/assets/bd-header-us-2000.jpg',
117
+ media : '(min-width: 1200px)'
118
+ },
119
+ {
120
+ type : 'image/jpeg',
121
+ srcset: '/assets/bd-header-us-1000.jpg',
122
+ media : '(min-width: 768px)'
123
+ }
124
+ ]}"
125
+ alt="Bitdefender Security with WebP and JPEG fallback"
126
+ fallback-src="/assets/bd-header-us.jpg"
127
+ width="750"
128
+ height="500"
129
+ loading="eager"
130
+ ></bd-picture>
131
+ <p style="margin-top: 1rem; font-size: 0.875rem; color: #666;">
132
+ Modern WebP format with JPEG fallback for maximum browser compatibility.
133
+ </p>
134
+ </div>
135
+ `;
136
+
137
+ export const DifferentBreakpoints = () => html`
138
+ <div style="max-width: 1000px; margin: 0 auto;">
139
+ <bd-h as="h4">Multiple Breakpoints</bd-h>
140
+ <bd-picture
141
+ .sources="${[
142
+ {
143
+ type : 'image/webp',
144
+ srcset: '/assets/bd-header-us-2000.webp',
145
+ media : '(min-width: 1440px)'
146
+ },
147
+ {
148
+ type : 'image/webp',
149
+ srcset: '/assets/bd-header-us-1200.webp',
150
+ media : '(min-width: 1024px)'
151
+ },
152
+ {
153
+ type : 'image/webp',
154
+ srcset: '/assets/bd-header-us-800.webp',
155
+ media : '(min-width: 768px)'
156
+ },
157
+ {
158
+ type : 'image/webp',
159
+ srcset: '/assets/bd-header-us-600.webp',
160
+ media : '(min-width: 480px)'
161
+ },
162
+ {
163
+ type : 'image/webp',
164
+ srcset: '/assets/bd-header-us-400.webp'
165
+ }
166
+ ]}"
167
+ alt="Bitdefender Security with multiple breakpoints"
168
+ fallback-src="/assets/bd-header-us.jpg"
169
+ width="750"
170
+ height="500"
171
+ ></bd-picture>
172
+ <p style="margin-top: 1rem; font-size: 0.875rem; color: #666;">
173
+ This image loads different sizes at: 1440px+, 1024px+, 768px+, 480px+, and mobile.
174
+ </p>
175
+ </div>
176
+ `;
177
+
178
+ export const HeaderImageExample = () => html`
179
+ <div style="background: #f8fafc; padding: 2rem; border-radius: 8px; border: 1px solid #e2e8f0;">
180
+ <bd-h as="h4">Header Image Example</bd-h>
181
+ <bd-picture
182
+ .sources="${[
183
+ {
184
+ type : 'image/webp',
185
+ srcset: '/assets/bd-header-us-2000.webp',
186
+ media : '(min-width: 1200px)'
187
+ },
188
+ {
189
+ type : 'image/webp',
190
+ srcset: '/assets/bd-header-us-1000.webp',
191
+ media : '(min-width: 768px)'
192
+ },
193
+ {
194
+ type : 'image/webp',
195
+ srcset: '/assets/bd-header-us-750.webp'
196
+ }
197
+ ]}"
198
+ alt="Bitdefender Security Header Illustration"
199
+ fallback-src="/assets/bd-header-us.jpg"
200
+ width="800"
201
+ height="400"
202
+ loading="eager"
203
+ ></bd-picture>
204
+ <div style="margin-top: 1rem; padding: 1rem; background: white; border-radius: 4px;">
205
+ <bd-h as="h4" style="margin: 0 0 0.5rem 0;">Bitdefender Ultimate Security</bd-h>
206
+ <p style="margin: 0; color: #666;">Complete protection for your digital life</p>
207
+ </div>
208
+ </div>
209
+ `;
210
+
211
+ export const SingleSourceExample = () => html`
212
+ <div style="max-width: 600px; margin: 0 auto;">
213
+ <bd-h as="h4">Single Source Picture</bd-h>
214
+ <bd-picture
215
+ .sources="${[
216
+ {
217
+ type : 'image/jpeg',
218
+ srcset: '/assets/bd-header-us.jpg'
219
+ }
220
+ ]}"
221
+ alt="Simple Bitdefender Security Image"
222
+ fallback-src="/assets/bd-header-us.jpg"
223
+ width="600"
224
+ height="400"
225
+ loading="lazy"
226
+ ></bd-picture>
227
+ <p style="margin-top: 1rem; font-size: 0.875rem; color: #666;">
228
+ Simple picture with single JPEG source - perfect when you don't need multiple formats.
229
+ </p>
230
+ </div>
231
+ `;
232
+
233
+ export const WithFixedDimensions = () => html`
234
+ <div>
235
+ <bd-h as="h4">Fixed Dimensions</bd-h>
236
+ <bd-picture
237
+ .sources="${[
238
+ {
239
+ type : 'image/jpeg',
240
+ srcset: '/assets/bd-header-us.jpg'
241
+ }
242
+ ]}"
243
+ alt="Bitdefender Security with fixed dimensions"
244
+ fallback-src="/assets/bd-header-us.jpg"
245
+ width="400"
246
+ height="300"
247
+ loading="lazy"
248
+ ></bd-picture>
249
+ <p style="margin-top: 1rem; font-size: 0.875rem; color: #666;">
250
+ Fixed 400x300 dimensions prevent layout shifts during loading.
251
+ </p>
252
+ </div>
253
+ `;
254
+
255
+ export const AccessibilityExample = () => html`
256
+ <div style="max-width: 600px; margin: 0 auto;">
257
+ <bd-h as="h4">Accessible Picture</bd-h>
258
+ <bd-picture
259
+ .sources="${[
260
+ {
261
+ type : 'image/jpeg',
262
+ srcset: '/assets/bd-header-us.jpg'
263
+ }
264
+ ]}"
265
+ alt="Bitdefender Security Suite showing advanced protection features including real-time scanning, firewall protection, and privacy tools for comprehensive digital security"
266
+ fallback-src="/assets/bd-header-us.jpg"
267
+ width="600"
268
+ height="400"
269
+ loading="lazy"
270
+ ></bd-picture>
271
+ <p style="margin-top: 1rem; font-size: 0.875rem; color: #666;">
272
+ Always provide meaningful alt text for screen readers and SEO.
273
+ </p>
274
+ </div>
275
+ `;
@@ -8,7 +8,7 @@ class PricingCardActions extends LitElement {
8
8
  render() {
9
9
  return html`
10
10
  <div class="actions">
11
- <bd-button label="Buy Now" kind="danger" size="md" fullWidth strong>
11
+ <bd-button kind="danger" size="md" fullWidth strong>
12
12
  Buy Now
13
13
  </bd-button>
14
14
  </div>
@@ -1,5 +1,7 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
+ import "../heading/heading.js";
4
+ import "../paragraph/paragraph.js";
3
5
  import newHeaderPricingCSS from "../pricing-cards/pricing-card-header.css.js";
4
6
 
5
7
  class PricingCardHeader extends LitElement {
@@ -10,7 +12,6 @@ class PricingCardHeader extends LitElement {
10
12
  plus : { type: Boolean }
11
13
  };
12
14
 
13
-
14
15
  get parsedBadges() {
15
16
  return this.badges ? this.badges.split("|").map((b) => b.trim()) : [];
16
17
  }
@@ -21,13 +22,13 @@ class PricingCardHeader extends LitElement {
21
22
 
22
23
  return html`
23
24
  <div class="card-header">
24
- <p class="card-title">
25
+ <bd-h as="h4" class="card-title">
25
26
  <span class="card-title-brand">${brand}</span>
26
- </p>
27
- <p class="card-title">
27
+ </bd-h>
28
+ <bd-h as="h4" class="card-title">
28
29
  ${restOfTitle}
29
30
  ${this.plus ? html` <span class="plus">Plus</span>` : ""}
30
- </p>
31
+ </bd-h>
31
32
  ${this.parsedBadges.length
32
33
  ? html`
33
34
  <div class="badge-wrapper multiple">
@@ -35,12 +36,13 @@ class PricingCardHeader extends LitElement {
35
36
  </div>
36
37
  `
37
38
  : ""}
38
- <p class="badge-subtitle">${this.subtitle}</p>
39
+ <bd-p kind="small" class="badge-subtitle">${this.subtitle}</bd-p>
39
40
  <bd-divider-horizontal></bd-divider-horizontal>
40
41
  </div>
41
42
  `;
42
43
  }
43
44
  }
45
+
44
46
  PricingCardHeader.styles = [tokens, newHeaderPricingCSS];
45
47
 
46
- customElements.define("pricing-card-header", PricingCardHeader);
48
+ customElements.define("pricing-card-header", PricingCardHeader);
@@ -1,5 +1,7 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
+ import "../heading/heading.js";
4
+ import "../paragraph/paragraph.js";
3
5
  import newPricingPricingCSS from "../pricing-cards/pricing-card-pricing.css.js";
4
6
 
5
7
  class PricingCardPricing extends LitElement {
@@ -15,18 +17,15 @@ class PricingCardPricing extends LitElement {
15
17
  this.billingPeriod = "monthly";
16
18
  }
17
19
 
18
-
19
20
  formatCurrency(value) {
20
21
  if (!value || isNaN(value)) return "";
21
22
  return `$${parseFloat(value).toFixed(2)}`;
22
23
  }
23
24
 
24
- // Calculează valorile pentru yearly
25
25
  get yearlyPrice() {
26
- // Exemplu: 12 luni * price lunar cu 10% discount anual dummy
27
26
  const monthlyPrice = parseFloat(this.price);
28
27
  if (isNaN(monthlyPrice)) return "";
29
- const yearly = monthlyPrice * 12 * 0.9; // 10% discount la anual
28
+ const yearly = monthlyPrice * 12 * 0.9;
30
29
  return yearly.toFixed(2);
31
30
  }
32
31
 
@@ -38,7 +37,6 @@ class PricingCardPricing extends LitElement {
38
37
  }
39
38
 
40
39
  get yearlyDiscount() {
41
- // Exemplu text dummy pentru anual
42
40
  return "Save 25%";
43
41
  }
44
42
 
@@ -72,19 +70,19 @@ class PricingCardPricing extends LitElement {
72
70
 
73
71
  <div class="pricing-info">
74
72
  ${originalPrice
75
- ? html`<p class="original-price">
73
+ ? html`<bd-p kind="small" class="original-price">
76
74
  ${this.formatCurrency(originalPrice)}
77
- </p>`
75
+ </bd-p>`
78
76
  : null}
79
- <p class="discount">${discount}</p>
77
+ <bd-p kind="small" class="discount">${discount}</bd-p>
80
78
  </div>
81
79
 
82
- <p class="price">${this.formatCurrency(price)}</p>
80
+ <bd-h as="h3" class="price">${this.formatCurrency(price)}</bd-h>
83
81
 
84
- <p class="terms">
82
+ <bd-p kind="small" class="terms">
85
83
  First year price. Plus applicable sales tax. See
86
84
  <a href="#">terms of use</a> below.
87
- </p>
85
+ </bd-p>
88
86
  </div>
89
87
  `;
90
88
  }
@@ -96,6 +94,7 @@ class PricingCardPricing extends LitElement {
96
94
  }
97
95
  }
98
96
  }
97
+
99
98
  PricingCardPricing.styles = [tokens, newPricingPricingCSS];
100
99
 
101
- customElements.define("pricing-card-pricing", PricingCardPricing);
100
+ customElements.define("pricing-card-pricing", PricingCardPricing);
@@ -41,6 +41,22 @@ export default css`
41
41
  font-family: var(--typography-fontFamily-sans);
42
42
  font-weight: var(--typography-fontWeight-semibold);
43
43
  }
44
+ .icon-user-sharp-regular {
45
+ display: inline-block;
46
+ width: 22px;
47
+ height: 22px;
48
+ background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none'><path d='M11 11C13.2091 11 15 9.20914 15 7C15 4.79086 13.2091 3 11 3C8.79086 3 7 4.79086 7 7C7 9.20914 8.79086 11 11 11Z' fill='%23000'/><path d='M4 19C4 15.6863 6.68629 13 10 13H12C15.3137 13 18 15.6863 18 19V20H4V19Z' fill='%23000'/></svg>")
49
+ no-repeat center center;
50
+ background-size: contain;
51
+ }
52
+ .icon-family-pants-sharp-regular {
53
+ display: inline-block;
54
+ width: 24px; /* dimensiunea dorită */
55
+ height: 24px;
56
+ background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'><path d='M24 25.1591V27H8V25.1591C8 23.3048 9.20796 21.6667 10.9795 21.1187L11.8455 20.8509C12.2644 20.7213 12.55 20.334 12.55 19.8955V19.7449C10.8538 18.295 10.1 16.0583 10.1 13.2778C10.1 10.8447 11.1289 9.23277 12.423 8.25708C13.6668 7.3193 15.1097 7 16 7C16.8903 7 18.3332 7.3193 19.577 8.25708C20.8711 9.23277 21.9 10.8447 21.9 13.2778C21.9 16.0583 21.1462 18.295 19.45 19.7449V19.8955C19.45 20.334 19.7356 20.7213 20.1545 20.8509L21.0205 21.1187C22.792 21.6667 24 23.3048 24 25.1591Z' fill='%23000'/><path d='M7.4663 23C8.03861 21.7386 9.10189 20.7276 10.4549 20.2401C10.103 19.7558 9.59938 19.382 8.99905 19.1939L8.86534 19.152C8.71342 19.1044 8.58812 19.0057 8.50596 18.8783C9.41844 17.937 9.8 16.5994 9.8 15.0556C9.8 13.5167 9.1507 12.4609 8.30704 11.8164C7.51308 11.2099 6.59336 11 6 11C5.40664 11 4.48692 11.2099 3.69296 11.8164C2.8493 12.4609 2.2 13.5167 2.2 15.0556C2.2 16.5845 2.57424 17.9112 3.46779 18.851L3.46121 18.8574L3.48918 18.8858C3.40698 19.0095 3.28362 19.1053 3.13466 19.152L3.00095 19.1939C1.81034 19.567 1 20.6702 1 21.9179V23C3.57036 23 7.4663 23 7.4663 23Z' fill='%23000'/><path d='M21.5451 20.2401C22.8981 20.7276 23.9614 21.7386 24.5337 23C24.5337 23 28.2313 23 31 23V21.9179C31 20.6702 30.1897 19.567 28.9991 19.1939L28.8653 19.152C28.7134 19.1044 28.5881 19.0057 28.506 18.8783C29.4184 17.937 29.8 16.5994 29.8 15.0556C29.8 13.5167 29.1507 12.4609 28.307 11.8164C27.5131 11.2099 26.5934 11 26 11C25.4066 11 24.4869 11.2099 23.693 11.8164C22.8493 12.4609 22.2 13.5167 22.2 15.0556C22.2 16.5845 22.5742 17.9112 23.4678 18.851L23.4612 18.8574L23.4892 18.8858C23.407 19.0095 23.2836 19.1053 23.1347 19.152L23.0009 19.1939C22.4006 19.382 21.897 19.7558 21.5451 20.2401Z' fill='%23000'/></svg>") no-repeat center center;
57
+ background-size: contain;
58
+ }
59
+
44
60
 
45
61
  .highlight {
46
62
  border: var(--spacing-2) solid var(--border-card-green);
@@ -309,7 +325,17 @@ export default css`
309
325
  transition: color 0.4s;
310
326
  cursor: pointer;
311
327
  }
312
-
328
+ .switchBox .label .icon {
329
+ vertical-align: middle;
330
+ position: relative;
331
+ }
332
+
333
+ .icon-user-sharp-regular,
334
+ .icon-family-pants-sharp-regular {
335
+ vertical-align: middle;
336
+ position: relative;
337
+ top: -2px;
338
+ }
313
339
  .switchBox .label.right {
314
340
  z-index: 10;
315
341
  color: black;
@@ -327,8 +353,7 @@ export default css`
327
353
  .switchBox .switch input ~ .label .icon {
328
354
  position: relative;
329
355
  margin-right: var(--spacing-10);
330
- top: var(--spacing-2);
331
- }
356
+ }
332
357
 
333
358
  .switchBox .switch input ~ .label .icon svg {
334
359
  width: var(--spacing-24);