@repobit/dex-system-design 0.11.0 → 0.14.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 (97) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/package.json +2 -2
  3. package/src/assets/icons/Identity_protection.png +0 -0
  4. package/src/assets/icons/device_protection.png +0 -0
  5. package/src/assets/icons/financial_insurance.png +0 -0
  6. package/src/assets/icons/privacy_protection.png +0 -0
  7. package/src/assets/icons/user_guide.png +0 -0
  8. package/src/components/Button/Button.js +19 -16
  9. package/src/components/Button/button.css.js +18 -16
  10. package/src/components/Button/icons.js +8 -8
  11. package/src/components/FAQ/faq.css.js +48 -49
  12. package/src/components/FAQ/faq.js +0 -86
  13. package/src/components/Input/Input.js +68 -6
  14. package/src/components/Input/custom-form.stories.js +88 -0
  15. package/src/components/Input/input-clipboard.css.js +168 -0
  16. package/src/components/Input/input-clipboard.js +137 -0
  17. package/src/components/Input/input.css.js +122 -42
  18. package/src/components/accordion/accordion-bg.css.js +117 -0
  19. package/src/components/accordion/accordion-bg.js +80 -0
  20. package/src/components/accordion/accordion-no-bg.css.js +114 -0
  21. package/src/components/accordion/accordion-no-bg.js +80 -0
  22. package/src/components/accordion/accordion.css.js +88 -0
  23. package/src/components/accordion/accordion.js +81 -0
  24. package/src/components/anchor/anchor-nav.css.js +15 -15
  25. package/src/components/anchor/anchor-nav.js +0 -1
  26. package/src/components/anchor/anchor.stories.js +10 -13
  27. package/src/components/badge/badge.css.js +6 -6
  28. package/src/components/badge/badge.js +1 -2
  29. package/src/components/badge/badge.stories.js +6 -6
  30. package/src/components/carousel/carousel.css.js +60 -60
  31. package/src/components/carousel/carousel.js +26 -30
  32. package/src/components/carousel/carousel.stories.js +55 -55
  33. package/src/components/checkbox/checkbox.css.js +14 -14
  34. package/src/components/divider/divider-horizontal.js +19 -14
  35. package/src/components/divider/divider-vertical.js +23 -14
  36. package/src/components/divider/divider.css.js +19 -0
  37. package/src/components/dropdown/dropdown.css.js +138 -0
  38. package/src/components/dropdown/dropdown.js +111 -0
  39. package/src/components/footer/footer-links-group.css.js +42 -0
  40. package/src/components/footer/footer-links-group.js +25 -0
  41. package/src/components/footer/footer-lp.css.js +625 -0
  42. package/src/components/footer/footer-lp.js +368 -0
  43. package/src/components/footer/footer-lp.stories.js +69 -0
  44. package/src/components/footer/footer-nav-menu.css.js +24 -0
  45. package/src/components/footer/footer-nav-menu.js +36 -0
  46. package/src/components/footer/footer.css.js +625 -0
  47. package/src/components/footer/footer.js +465 -0
  48. package/src/components/footer/footer.stories.js +60 -0
  49. package/src/components/footer/localeMap.js +1 -0
  50. package/src/components/grid/grid.css.js +38 -0
  51. package/src/components/grid/grid.js +55 -0
  52. package/src/components/header/header.css.js +81 -52
  53. package/src/components/header/header.js +19 -19
  54. package/src/components/highlight/highlight.css.js +32 -22
  55. package/src/components/highlight/highlight.js +15 -4
  56. package/src/components/highlight/highlight.stories.js +4 -4
  57. package/src/components/light-carousel/light-carousel-simple.css.js +183 -0
  58. package/src/components/light-carousel/light-carousel-simple.js +73 -0
  59. package/src/components/light-carousel/light-carousel.css.js +50 -31
  60. package/src/components/light-carousel/light-carousel.js +14 -57
  61. package/src/components/light-carousel/light-carousel.stories.js +51 -10
  62. package/src/components/link/link.css.js +41 -0
  63. package/src/components/link/link.js +54 -0
  64. package/src/components/modal/modal.css.js +75 -0
  65. package/src/components/modal/modal.js +41 -0
  66. package/src/components/modal/modal.stories.js +40 -0
  67. package/src/components/paragraph/paragraph.css.js +1 -3
  68. package/src/components/pricing-cards/new-pricing-card.js +30 -0
  69. package/src/components/pricing-cards/new-pricing.css.js +58 -0
  70. package/src/components/pricing-cards/pricing-card-actions.css.js +16 -0
  71. package/src/components/pricing-cards/pricing-card-actions.js +20 -0
  72. package/src/components/pricing-cards/pricing-card-container.css.js +41 -0
  73. package/src/components/pricing-cards/pricing-card-container.js +31 -0
  74. package/src/components/pricing-cards/pricing-card-header.css.js +70 -0
  75. package/src/components/pricing-cards/pricing-card-header.js +46 -0
  76. package/src/components/pricing-cards/pricing-card-pricing.css.js +63 -0
  77. package/src/components/pricing-cards/pricing-card-pricing.js +101 -0
  78. package/src/components/pricing-cards/pricing-card-show-more.css.js +22 -0
  79. package/src/components/pricing-cards/pricing-card-show-more.js +33 -0
  80. package/src/components/pricing-cards/pricing-card.css.js +91 -89
  81. package/src/components/pricing-cards/pricing-card.js +13 -16
  82. package/src/components/pricing-cards/pricing-feature-item.css.js +18 -0
  83. package/src/components/pricing-cards/pricing-feature-item.js +14 -0
  84. package/src/components/radio/radio.css.js +18 -18
  85. package/src/components/radio/radio.js +1 -0
  86. package/src/components/tabs/tabs.css.js +21 -11
  87. package/src/components/tabs/tabs.js +24 -18
  88. package/src/components/termsOfUse/terms.css.js +6 -6
  89. package/src/components/termsOfUse/terms.js +0 -1
  90. package/src/stories/demo.stories.js +270 -0
  91. package/src/tokens/layout.css +1 -0
  92. package/src/tokens/tokens.css +412 -0
  93. package/src/components/highlight/highlight-s.css.js +0 -88
  94. package/src/components/highlight/highlight-s.js +0 -35
  95. package/src/components/highlight/highlight-s.stories.js +0 -22
  96. package/src/tokens/fonts.css +0 -166
  97. package/src/tokens/tokens.js +0 -281
@@ -0,0 +1,412 @@
1
+ :root {
2
+
3
+ /* =====================
4
+ COLORS
5
+ ====================== */
6
+ --color-blue-50: #F0F7FF;
7
+ --color-blue-100: #D6E8FF;
8
+ --color-blue-200: #9EC8FF;
9
+ --color-blue-300: #6BABFF;
10
+ --color-blue-400: #338BFF;
11
+ --color-blue-500: #006dff;
12
+ --color-blue-600: #0059D6;
13
+ --color-blue-700: #0045AD;
14
+ --color-blue-800: #003385;
15
+ --color-blue-900: #00225C;
16
+ --color-blue-950: #001947;
17
+
18
+ --color-red-50: #FFF0F0;
19
+ --color-red-100: #FFD6D6;
20
+ --color-red-200: #FF9E9E;
21
+ --color-red-300: #FF6B6B;
22
+ --color-red-400: #FF3333;
23
+ --color-red-500: #FF0000;
24
+ --color-red-600: #D60000;
25
+ --color-red-700: #AD0000;
26
+ --color-red-800: #850000;
27
+ --color-red-900: #5C0000;
28
+ --color-red-950: #470000;
29
+
30
+ --color-green-50: #EDFDF1;
31
+ --color-green-100: #D1FADC;
32
+ --color-green-200: #9AF4B4;
33
+ --color-green-300: #63EE8D;
34
+ --color-green-400: #2CE767;
35
+ --color-green-500: #15C14F;
36
+ --color-green-600: #12A641;
37
+ --color-green-700: #0E8532;
38
+ --color-green-800: #0B6A26;
39
+ --color-green-900: #084A1A;
40
+ --color-green-950: #063C14;
41
+
42
+ --color-yellow-50: #FFFBF0;
43
+ --color-yellow-100: #FFF5D6;
44
+ --color-yellow-200: #FFE89E;
45
+ --color-yellow-300: #FFDC6B;
46
+ --color-yellow-400: #FFCF33;
47
+ --color-yellow-500: #FFC400;
48
+ --color-yellow-600: #D6A000;
49
+ --color-yellow-700: #AD7F00;
50
+ --color-yellow-800: #855F00;
51
+ --color-yellow-900: #5C4000;
52
+ --color-yellow-950: #473100;
53
+
54
+ --color-neutral-0: #FFFFFF;
55
+ --color-neutral-25: #FAFAFA;
56
+ --color-neutral-50: #f1f2f3;
57
+ --color-neutral-100: #e1e3e5;
58
+ --color-neutral-200: #c5c9ce;
59
+ --color-neutral-300: #a6adb4;
60
+ --color-neutral-400: #88909b;
61
+ --color-neutral-500: #6c7580;
62
+ --color-neutral-600: #565e66;
63
+ --color-neutral-700: #41474d;
64
+ --color-neutral-800: #2c3035;
65
+ --color-neutral-900: #151719;
66
+ --color-neutral-950: #0c0d0e;
67
+ --color-neutral-1000: #000000;
68
+
69
+
70
+ /* =====================
71
+ DISPLAY FONT SIZES
72
+ ====================== */
73
+
74
+ /* Display default */
75
+ --display-xxsmall: 44px; /* 58.652px = 3.666rem */
76
+ --display-xsmall: 48px; /* 63.984px = 3.999rem */
77
+ --display-small: 52px; /* 69.316px = 4.332rem */
78
+ --display-medium: 56px; /* 74.648px = 4.666rem */
79
+ --display-large: 60px; /* 79.98px = 5rem */
80
+ --display-xlarge: 64px; /* 85.312px = 5.333rem */
81
+
82
+ /* Display mobile */
83
+ --display-xxsmall-mobile: 34px; /* 45.322px = 2.833rem */
84
+ --display-xsmall-mobile: 36px; /* 47.988px = 2.999rem */
85
+ --display-small-mobile: 38px; /* 50.654px = 3.167rem */
86
+ --display-medium-mobile: 40px; /* 53.32px = 3.333rem */
87
+ --display-large-mobile: 44px; /* 58.652px = 3.666rem */
88
+ --display-xlarge-mobile: 48px; /* 63.984px = 3.999rem */
89
+
90
+ /* Heading default */
91
+ --heading-xxsmall: 18px; /* 23.994px = 1.5rem */
92
+ --heading-xsmall: 20px; /* 26.66px = 1.667rem */
93
+ --heading-small: 24px; /* 31.992px = 2rem */
94
+ --heading-medium: 28px; /* 37.324px = 2.333rem */
95
+ --heading-large: 32px; /* 42.656px = 2.667rem */
96
+ --heading-xlarge: 36px; /* 47.988px = 2.999rem */
97
+ --heading-xxlarge: 40px; /* 53.32px = 3.333rem */
98
+
99
+ /* Body default */
100
+ --body-small: 13px; /* 17.329px = 1.083rem */
101
+ --body-medium: 14px; /* 18.662px = 1.167rem */
102
+ --body-large: 16px; /* 21.328px = 1.333rem */
103
+ --body-xlarge: 18px; /* 23.994px = 1.5rem */
104
+
105
+ /* Caption default */
106
+ --caption-small: 11px; /* 14.663px = 0.917rem */
107
+ --caption-large: 12px; /* 15.996px = 1rem */
108
+
109
+
110
+
111
+
112
+ /* Display Default */
113
+ --display-xlarge-line-height: 1.1; /* For 60px */
114
+ --display-medium-line-height: 1.15; /* For 52px */
115
+
116
+ /* Display Mobile */
117
+ --display-xlarge-mobile-line-height: 1.15; /* For 44px */
118
+ --display-medium-mobile-line-height: 1.2; /* For 38px */
119
+
120
+ /* Heading */
121
+ --heading-xlarge-line-height: 1.2; /* For 36px */
122
+ --heading-small-line-height: 1.3; /* For 24px */
123
+
124
+ /* Body */
125
+ --body-large-line-height: 1.5; /* For 16px */
126
+
127
+ /* Caption */
128
+ --caption-large-line-height: 1.35; /* For 12px */
129
+ /* =====================
130
+ PADDING SIZES
131
+ ====================== */
132
+
133
+ /* PADDING VALUES */
134
+ --size-0: 0;
135
+ --size-1: 1px;
136
+ --size-2: 2px;
137
+ --size-4: 4px;
138
+ --size-6: 6px;
139
+ --size-8: 8px;
140
+ --size-10: 10px;
141
+ --size-12: 12px;
142
+ --size-14: 14px;
143
+ --size-16: 16px;
144
+ --size-18: 18px;
145
+ --size-20: 20px;
146
+ --size-22: 22px;
147
+ --size-24: 24px;
148
+ --size-32: 32px;
149
+ --size-36: 36px;
150
+ --size-40: 40px;
151
+ --size-44: 44px;
152
+ --size-52: 52px;
153
+ --size-64: 64px;
154
+ --size-full: 99999999999999999999;
155
+
156
+
157
+ /* Spacing Tokens
158
+ -----------------------------------------------*/
159
+ /* Base spacing tokens - Based on 4px grid */
160
+ --space-none: 0;
161
+ --space-4xs: 0.125rem; /* 2px */
162
+ --space-3xs: 0.25rem; /* 4px */
163
+ --space-2xs: 0.5rem; /* 8px */
164
+ --space-xs: 0.75rem; /* 12px */
165
+ --space-sm: 1rem; /* 16px */
166
+ --space-md: 1.5rem; /* 24px */
167
+ --space-lg: 2rem; /* 32px */
168
+ --space-xl: 2.5rem; /* 40px */
169
+ --space-2xl: 3rem; /* 48px */
170
+ --space-3xl: 4rem; /* 64px */
171
+ --space-4xl: 6rem; /* 96px */
172
+ --space-5xl: 8rem; /* 128px */
173
+
174
+ /* Semantic Padding Tokens */
175
+ --padding-button: var(--space-xs) var(--space-md);
176
+ --padding-input: var(--space-xs);
177
+ --padding-card: var(--space-md);
178
+ --padding-card-sm: var(--space-sm);
179
+ --padding-card-lg: var(--space-lg);
180
+
181
+ --padding-section: var(--space-3xl) 0;
182
+ --padding-section-sm: var(--space-2xl) 0;
183
+ --padding-section-lg: var(--space-4xl) 0;
184
+
185
+ /* Container and Layout Tokens */
186
+ --container-padding: var(--space-md);
187
+ --container-padding-sm: var(--space-sm);
188
+ --container-padding-lg: var(--space-lg);
189
+
190
+ /* Inset (Padding All Sides) Tokens */
191
+ --inset-xs: var(--space-xs);
192
+ --inset-sm: var(--space-sm);
193
+ --inset-md: var(--space-md);
194
+ --inset-lg: var(--space-lg);
195
+
196
+ /* Stack (Vertical Spacing) Tokens */
197
+ --stack-xs: var(--space-xs);
198
+ --stack-sm: var(--space-sm);
199
+ --stack-md: var(--space-md);
200
+ --stack-lg: var(--space-lg);
201
+ --stack-xl: var(--space-xl);
202
+
203
+ /* Inline (Horizontal Spacing) Tokens */
204
+ --inline-xs: var(--space-xs);
205
+ --inline-sm: var(--space-sm);
206
+ --inline-md: var(--space-md);
207
+ --inline-lg: var(--space-lg);
208
+
209
+ /* Accessibility Spacing Tokens
210
+ -----------------------------------------------*/
211
+ /* Touch Target Sizes - WCAG 2.1 Success Criterion 2.5.5 (AAA) and 2.5.8 (AA) */
212
+ --touch-target-size: 44px; /* Minimum touch target size (44px × 44px) */
213
+ --touch-target-spacing: 8px; /* Minimum space between touch targets */
214
+
215
+ /* Readable Line Lengths - For optimal readability */
216
+ --content-width-readable: 70ch; /* Approximately 70 characters per line */
217
+ --content-width-max: 1200px; /* Maximum overall content width */
218
+
219
+
220
+ /** GRID TOKENS
221
+ */
222
+ /* Grid container max widths */
223
+ --grid-container-max-xs: 100%; /* mobile full width */
224
+ --grid-container-max-sm: 540px;
225
+ --grid-container-max-md: 720px;
226
+ --grid-container-max-lg: 960px;
227
+ --grid-container-max-xl: 1140px;
228
+ --grid-container-max-xxl: 1320px;
229
+
230
+ /* Column count (usually 12) */
231
+ --grid-columns: 12;
232
+
233
+ /* Gutter spacing between columns */
234
+ --grid-gutter-xs: 16px;
235
+ --grid-gutter-sm: 24px;
236
+ --grid-gutter-md: 32px;
237
+ --grid-gutter-lg: 40px;
238
+
239
+ /* Container padding (horizontal spacing) */
240
+ --grid-padding-xs: 16px;
241
+ --grid-padding-sm: 24px;
242
+ --grid-padding-md: 32px;
243
+ --grid-padding-lg: 40px;
244
+
245
+ /* Breakpoints */
246
+ --breakpoint-xs: 0px;
247
+ --breakpoint-sm: 576px;
248
+ --breakpoint-md: 768px;
249
+ --breakpoint-lg: 992px;
250
+ --breakpoint-xl: 1200px;
251
+ --breakpoint-xxl: 1400px;
252
+ /* =====================
253
+ FONT-FACE DEFINITIONS
254
+ ====================== */
255
+
256
+ @font-face {
257
+ font-family: 'IBM Plex Mono';
258
+ font-style: normal;
259
+ font-weight: 700;
260
+ src: url('/assets/fonts/IBMPlexMono-Bold.woff2') format('woff2');
261
+ }
262
+ @font-face {
263
+ font-family: 'IBM Plex Mono';
264
+ font-style: normal;
265
+ font-weight: 700;
266
+ src: url('/assets/fonts/IBMPlexMono-BoldItalic.woff2') format('woff2');
267
+ }
268
+
269
+ @font-face {
270
+ font-family: 'IBM Plex Mono';
271
+ font-style: italic;
272
+ font-weight: 300;
273
+ src: url('/assets/fonts/IBMPlexMono-Italic.woff2') format('woff2');
274
+ }
275
+ @font-face {
276
+ font-family: 'IBM Plex Mono';
277
+ font-style: normal;
278
+ font-weight: 300;
279
+ src: url('/assets/fonts/IBMPlexMono-Light.woff2') format('woff2');
280
+ }
281
+ @font-face {
282
+ font-family: 'IBM Plex Mono';
283
+ font-style: italic;
284
+ font-weight: 300;
285
+ src: url('/assets/fonts/IBMPlexMono-LightItalic.woff2') format('woff2');
286
+ }
287
+
288
+ @font-face {
289
+ font-family: 'IBM Plex Mono';
290
+ font-style: italic;
291
+ font-weight: 500;
292
+ src: url('/assets/fonts/IBMPlexMono-Medium.woff2') format('woff2');
293
+ }
294
+ @font-face {
295
+ font-family: 'IBM Plex Mono';
296
+ font-style: italic;
297
+ font-weight: 500;
298
+ src: url('/assets/fonts/IBMPlexMono-MediumItalic.woff2') format('woff2');
299
+ }
300
+ @font-face {
301
+ font-family: 'IBM Plex Mono';
302
+ font-style: italic;
303
+ font-weight: 400;
304
+ src: url('/assets/fonts/IBMPlexMono-Regular.woff2') format('woff2');
305
+ }
306
+ @font-face {
307
+ font-family: 'IBM Plex Mono';
308
+ font-style: italic;
309
+ font-weight: 600;
310
+ src: url('/assets/fonts/IBMPlexMono-SemiBold.woff2') format('woff2');
311
+ }
312
+ @font-face {
313
+ font-family: 'IBM Plex Mono';
314
+ font-style: italic;
315
+ font-weight: 600;
316
+ src: url('/assets/fonts/IBMPlexMono-SemiBoldItalic.woff2') format('woff2');
317
+ }
318
+
319
+ /*
320
+ IBM PLEX SANS
321
+ */
322
+
323
+ @font-face {
324
+ font-family: 'IBMPlexSans';
325
+ font-style: normal;
326
+ font-weight: 700;
327
+ src: url('/assets/fonts/IBMPlexSans-Bold.woff2') format('woff2');
328
+ }
329
+ @font-face {
330
+ font-family: 'IBMPlexSans';
331
+ font-style: normal;
332
+ font-weight: 700;
333
+ src: url('/assets/fonts/IBMPlexSans-BoldItalic.woff2') format('woff2');
334
+ }
335
+
336
+ @font-face {
337
+ font-family: 'IBMPlexSans';
338
+ font-style: italic;
339
+ font-weight: 300;
340
+ src: url('/assets/fonts/IBMPlexSans-Italic.woff2') format('woff2');
341
+ }
342
+ @font-face {
343
+ font-family: 'IBMPlexSans';
344
+ font-style: normal;
345
+ font-weight: 300;
346
+ src: url('/assets/fonts/IBMPlexSans-Light.woff2') format('woff2');
347
+ }
348
+ @font-face {
349
+ font-family: 'IBMPlexSans';
350
+ font-style: italic;
351
+ font-weight: 300;
352
+ src: url('/assets/fonts/IBMPlexSans-LightItalic.woff2') format('woff2');
353
+ }
354
+
355
+ @font-face {
356
+ font-family: 'IBMPlexSans';
357
+ font-style: italic;
358
+ font-weight: 500;
359
+ src: url('/assets/fonts/IBMPlexSans-Medium.woff2') format('woff2');
360
+ }
361
+ @font-face {
362
+ font-family: 'IBMPlexSans';
363
+ font-style: italic;
364
+ font-weight: 500;
365
+ src: url('/assets/fonts/IBMPlexSans-MediumItalic.woff2') format('woff2');
366
+ }
367
+ @font-face {
368
+ font-family: 'IBMPlexSans';
369
+ font-style: italic;
370
+ font-weight: 400;
371
+ src: url('/assets/fonts/IBMPlexSans-Regular.woff2') format('woff2');
372
+ }
373
+ @font-face {
374
+ font-family: 'IBMPlexSans';
375
+ font-style: italic;
376
+ font-weight: 600;
377
+ src: url('/assets/fonts/IBMPlexSans-SemiBold.woff2') format('woff2');
378
+ }
379
+ @font-face {
380
+ font-family: 'IBMPlexSans';
381
+ font-style: italic;
382
+ font-weight: 600;
383
+ src: url('/assets/fonts/IBMPlexSans-SemiBoldItalic.woff2') format('woff2');
384
+ }
385
+
386
+ /* =====================
387
+ FONT TOKENS
388
+ ====================== */
389
+ /* IBM Plex Mono */
390
+ --font-family-mono: 'IBM Plex Mono', monospace;
391
+ --font-weight-mono-light: 300;
392
+ --font-weight-mono-regular: 400;
393
+ --font-weight-mono-medium: 500;
394
+ --font-weight-mono-semibold: 600;
395
+ --font-weight-mono-bold: 700;
396
+
397
+ --font-style-mono-normal: normal;
398
+ --font-style-mono-italic: italic;
399
+
400
+ /* IBMPlexSans */
401
+ --font-family-sans: 'IBM Plex Sans', sans-serif;
402
+ --font-weight-sans-light: 300;
403
+ --font-weight-sans-regular: 400;
404
+ --font-weight-sans-medium: 500;
405
+ --font-weight-sans-semibold: 600;
406
+ --font-weight-sans-bold: 700;
407
+
408
+ --font-style-sans-normal: normal;
409
+ --font-style-sans-italic: italic;
410
+
411
+
412
+ }
@@ -1,88 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export const highlightTextStyles = css`
4
- :host {
5
- --base-font-size: 32px;
6
- --deco-height-multiplier: 1.4375; /* 46px / 32px */
7
- --rect-height-multiplier: 1.1875; /* 38px / 32px */
8
- --ellipse-size-multiplier: 0.25; /* 8px / 32px */
9
-
10
- --deco-height: calc(var(--base-font-size) * var(--deco-height-multiplier));
11
- --rect-height: calc(var(--base-font-size) * var(--rect-height-multiplier));
12
- --ellipse-size: calc(var(--base-font-size) * var(--ellipse-size-multiplier));
13
-
14
- display: inline-block;
15
- font-family: 'IBM Plex Sans', sans-serif;
16
- font-weight: 700;
17
- font-size: var(--base-font-size);
18
- line-height: 1.3;
19
- color: #000;
20
- text-align: center;
21
- }
22
-
23
- .highlight {
24
- background: none;
25
- color: #000;
26
- display: inline-block;
27
- font: inherit;
28
- font-weight: inherit;
29
- font-size: inherit;
30
- line-height: inherit;
31
- position: relative;
32
- vertical-align: middle;
33
- top: -4px;
34
- }
35
-
36
- .highlight-bg {
37
- background: #F1F7FE;
38
- display: inline-block;
39
- position: relative;
40
- padding: 0 4px;
41
- margin-left: 4px;
42
- margin-right: 4px;
43
- z-index: 1;
44
- }
45
-
46
- .highlight-deco {
47
- position: absolute;
48
- top: 0;
49
- width: var(--ellipse-size);
50
- height: var(--deco-height);
51
- display: flex;
52
- flex-direction: column;
53
- align-items: center;
54
- justify-content: flex-start;
55
- pointer-events: none;
56
- z-index: 2;
57
- }
58
-
59
- .highlight-deco.left {
60
- left: -3px;
61
- top: -4px;
62
- }
63
-
64
- .highlight-deco.right {
65
- right: -3px;
66
- }
67
-
68
- .highlight-svg-ellipse-top,
69
- .highlight-svg-ellipse-bottom {
70
- width: var(--ellipse-size);
71
- height: var(--ellipse-size);
72
- fill: #006DFF;
73
- display: block;
74
- }
75
-
76
- .highlight-svg-rect {
77
- width: calc(var(--ellipse-size) * 0.25); /* 2px when ellipse is 8px */
78
- height: var(--rect-height);
79
- fill: #006DFF;
80
- display: block;
81
- }
82
-
83
- @media (max-width: 600px) {
84
- :host {
85
- --base-font-size: 20px;
86
- }
87
- }
88
- `;
@@ -1,35 +0,0 @@
1
- import { LitElement, html } from 'lit';
2
- import { highlightTextStyles } from './highlight-s.css.js';
3
-
4
- export class HighlightText extends LitElement {
5
- static styles = highlightTextStyles;
6
-
7
- render() {
8
- return html`
9
- <span class="highlight">
10
- <span class="highlight-bg">
11
- <span class="highlight-deco left">
12
- <svg class="highlight-svg-ellipse-top" viewBox="0 0 8 8">
13
- <ellipse cx="4" cy="4" rx="4" ry="4" />
14
- </svg>
15
- <svg class="highlight-svg-rect" viewBox="0 0 2 42">
16
- <rect x="0" y="0" width="2" height="42" />
17
- </svg>
18
- </span>
19
- <slot></slot>
20
- <span class="highlight-deco right">
21
- <svg class="highlight-svg-rect" viewBox="0 0 2 42">
22
- <rect x="0" y="0" width="2" height="42" />
23
- </svg>
24
- <svg class="highlight-svg-ellipse-bottom" viewBox="0 0 8 8">
25
- <ellipse cx="4" cy="4" rx="4" ry="4" />
26
- </svg>
27
- </span>
28
- </span>
29
- </span>
30
- `;
31
- }
32
-
33
- }
34
-
35
- customElements.define('highlight-text-s', HighlightText);
@@ -1,22 +0,0 @@
1
- import { html } from 'lit';
2
- import './highlight-s.js';
3
-
4
- export default {
5
- title: 'Components/HighlightText',
6
- component: 'highlight-text-s',
7
- };
8
-
9
- const Template = ({ beforeText, highlightText, afterText }) => html`
10
- <h1>
11
- ${beforeText}
12
- <highlight-text-s>${highlightText}</highlight-text-s>
13
- ${afterText}
14
- </h1>
15
- `;
16
-
17
- export const InlineText = Template.bind({});
18
- InlineText.args = {
19
- beforeText: 'Introducing ',
20
- highlightText: 'the next generation',
21
- afterText: ' of digital security: your personalized shield for a worry-free online experience.',
22
- };