@repobit/dex-system-design 0.2.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 (111) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +15 -0
  3. package/package.json +57 -0
  4. package/src/assets/fonts/IBMPlexMono-Bold.woff2 +0 -0
  5. package/src/assets/fonts/IBMPlexMono-BoldItalic.woff2 +0 -0
  6. package/src/assets/fonts/IBMPlexMono-Italic.woff2 +0 -0
  7. package/src/assets/fonts/IBMPlexMono-Light.woff2 +0 -0
  8. package/src/assets/fonts/IBMPlexMono-LightItalic.woff2 +0 -0
  9. package/src/assets/fonts/IBMPlexMono-Medium.woff2 +0 -0
  10. package/src/assets/fonts/IBMPlexMono-MediumItalic.woff2 +0 -0
  11. package/src/assets/fonts/IBMPlexMono-Regular.woff2 +0 -0
  12. package/src/assets/fonts/IBMPlexMono-SemiBold.woff2 +0 -0
  13. package/src/assets/fonts/IBMPlexMono-SemiBoldItalic.woff2 +0 -0
  14. package/src/assets/fonts/IBMPlexSans-Bold.woff2 +0 -0
  15. package/src/assets/fonts/IBMPlexSans-BoldItalic.woff2 +0 -0
  16. package/src/assets/fonts/IBMPlexSans-Italic.woff2 +0 -0
  17. package/src/assets/fonts/IBMPlexSans-Light.woff2 +0 -0
  18. package/src/assets/fonts/IBMPlexSans-LightItalic.woff2 +0 -0
  19. package/src/assets/fonts/IBMPlexSans-Medium.woff2 +0 -0
  20. package/src/assets/fonts/IBMPlexSans-MediumItalic.woff2 +0 -0
  21. package/src/assets/fonts/IBMPlexSans-Regular.woff2 +0 -0
  22. package/src/assets/fonts/IBMPlexSans-SemiBold.woff2 +0 -0
  23. package/src/assets/fonts/IBMPlexSans-SemiBoldItalic.woff2 +0 -0
  24. package/src/assets/fonts/bd-ibm-plex-mono.zip +0 -0
  25. package/src/assets/fonts/bd-ibm-plex-sans.zip +0 -0
  26. package/src/assets/icons/badge-icon-individual.png +0 -0
  27. package/src/assets/icons/bd-icon-family-white.png +0 -0
  28. package/src/assets/icons/bd-icon-family.png +0 -0
  29. package/src/assets/icons/bd-icon-user.png +0 -0
  30. package/src/assets/icons/left_clicked.png +0 -0
  31. package/src/assets/icons/left_disabled.png +0 -0
  32. package/src/assets/icons/left_hover.png +0 -0
  33. package/src/assets/icons/left_normal.png +0 -0
  34. package/src/assets/icons/light-carousel-img1.png +0 -0
  35. package/src/assets/icons/light-carousel-img2.png +0 -0
  36. package/src/assets/icons/light-carousel-img3.png +0 -0
  37. package/src/assets/icons/more_hover.png +0 -0
  38. package/src/assets/icons/more_normal.png +0 -0
  39. package/src/assets/icons/more_pressed.png +0 -0
  40. package/src/assets/icons/pic1.png +0 -0
  41. package/src/assets/icons/pic2.png +0 -0
  42. package/src/assets/icons/pic3.png +0 -0
  43. package/src/assets/icons/right_clicked.png +0 -0
  44. package/src/assets/icons/right_disabled.png +0 -0
  45. package/src/assets/icons/right_hover.png +0 -0
  46. package/src/assets/icons/right_normal.png +0 -0
  47. package/src/assets/icons/tabs-img1.png +0 -0
  48. package/src/assets/icons/tabs-img2.png +0 -0
  49. package/src/assets/icons/tabs-img3.png +0 -0
  50. package/src/assets/icons/verified_arrow.png +0 -0
  51. package/src/components/Button/Button.js +120 -0
  52. package/src/components/Button/button.css.js +137 -0
  53. package/src/components/Button/button.stories.js +56 -0
  54. package/src/components/Button/icons.css +5 -0
  55. package/src/components/Button/icons.js +24 -0
  56. package/src/components/Button/index.js +0 -0
  57. package/src/components/FAQ/faq.css.js +107 -0
  58. package/src/components/FAQ/faq.js +176 -0
  59. package/src/components/FAQ/faq.stories.js +45 -0
  60. package/src/components/Input/Input.js +27 -0
  61. package/src/components/Input/index.js +0 -0
  62. package/src/components/Input/input.css.js +68 -0
  63. package/src/components/carousel/carousel.css.js +304 -0
  64. package/src/components/carousel/carousel.js +226 -0
  65. package/src/components/carousel/carousel.stories.js +73 -0
  66. package/src/components/light-carousel/light-carousel.css.js +149 -0
  67. package/src/components/light-carousel/light-carousel.js +108 -0
  68. package/src/components/light-carousel/light-carousel.stories.js +43 -0
  69. package/src/components/paragraph/paragraph.css.js +16 -0
  70. package/src/components/paragraph/paragraph.js +59 -0
  71. package/src/components/pricing-cards/pricing-card.css.js +409 -0
  72. package/src/components/pricing-cards/pricing-card.js +764 -0
  73. package/src/components/pricing-cards/pricing-card.stories.js +12 -0
  74. package/src/components/tabs/tabs.css.js +239 -0
  75. package/src/components/tabs/tabs.js +183 -0
  76. package/src/components/tabs/tabs.stories.js +18 -0
  77. package/src/components/termsOfUse/terms.css.js +38 -0
  78. package/src/components/termsOfUse/terms.js +226 -0
  79. package/src/components/termsOfUse/terms.stories.js +14 -0
  80. package/src/index.js +0 -0
  81. package/src/stories/Button.js +20 -0
  82. package/src/stories/Button.stories.js +46 -0
  83. package/src/stories/Configure.mdx +364 -0
  84. package/src/stories/Header.js +45 -0
  85. package/src/stories/Header.stories.js +24 -0
  86. package/src/stories/Page.js +62 -0
  87. package/src/stories/Page.stories.js +20 -0
  88. package/src/stories/assets/accessibility.png +0 -0
  89. package/src/stories/assets/accessibility.svg +1 -0
  90. package/src/stories/assets/addon-library.png +0 -0
  91. package/src/stories/assets/assets.png +0 -0
  92. package/src/stories/assets/avif-test-image.avif +0 -0
  93. package/src/stories/assets/context.png +0 -0
  94. package/src/stories/assets/discord.svg +1 -0
  95. package/src/stories/assets/docs.png +0 -0
  96. package/src/stories/assets/figma-plugin.png +0 -0
  97. package/src/stories/assets/github.svg +1 -0
  98. package/src/stories/assets/share.png +0 -0
  99. package/src/stories/assets/styling.png +0 -0
  100. package/src/stories/assets/testing.png +0 -0
  101. package/src/stories/assets/theming.png +0 -0
  102. package/src/stories/assets/tutorials.svg +1 -0
  103. package/src/stories/assets/youtube.svg +1 -0
  104. package/src/stories/button.css +30 -0
  105. package/src/stories/header.css +32 -0
  106. package/src/stories/page.css +68 -0
  107. package/src/tokens/colors.js +121 -0
  108. package/src/tokens/layout.css +46 -0
  109. package/src/tokens/tokens.css +297 -0
  110. package/src/tokens/typography.css.js +207 -0
  111. package/src/tokens/typography.js +0 -0
@@ -0,0 +1,409 @@
1
+ import { css } from "../../../node_modules/lit-element/lit-element";
2
+
3
+ export default css`
4
+ :host {
5
+ --background-card-grey: var(--color-neutral-25);
6
+ --border-card-grey: var(--color-neutral-50);
7
+ --border-card-green: var(--color-green-700);
8
+ --badge-background: var(--color-blue-500);
9
+ --text-color-white: var(--color-neutral-0);
10
+ }
11
+ body {
12
+ font-family: "IBM Plex Mono", monospace;
13
+ }
14
+ .card {
15
+ background: var(--background-card-grey);
16
+ border: var(--size-2) solid var(--border-card-grey);
17
+ border-radius: var(--size-20);
18
+ padding: var(--size-32);
19
+ text-align: center;
20
+ max-width: 360px;
21
+ position: relative;
22
+ height: 100%;
23
+ }
24
+
25
+ .highlight {
26
+ border: var(--size-2) solid var(--border-card-green);
27
+ }
28
+
29
+ .highlight-banner {
30
+ background: var(--border-card-green);
31
+ color: white;
32
+ font-size: 18px;
33
+ padding: var(--size-16) var(--size-8);
34
+ border-top-left-radius: var(--size-20);
35
+ border-top-right-radius: var(--size-20);
36
+ position: absolute;
37
+ top: -47px;
38
+ left: 50%;
39
+ transform: translateX(-50%);
40
+ width: 85%;
41
+ font-family: var(--font-family-sans);
42
+ font-weight: 600;
43
+ line-height: 14px;
44
+ }
45
+
46
+ .card-header {
47
+ text-align: start;
48
+ }
49
+
50
+ .card-title {
51
+ font-size: 2em;
52
+ font-weight: 700;
53
+ font-family: var(--font-family-sans);
54
+ line-height: 34px;
55
+ text-align: start;
56
+ margin: 0px;
57
+ max-width: 300px;
58
+ }
59
+ .hr-line {
60
+ color: var(--color-neutral-200);
61
+ }
62
+
63
+ .pricing-info {
64
+ display: inline-flex;
65
+ align-items: center;
66
+ gap: var(--size-8);
67
+ }
68
+ .badge-subtitle {
69
+ font-size: 16px !important;
70
+ font-weight: 500;
71
+ font-family: var(--font-family-sans);
72
+ color: var(--color-neutral-950);
73
+ margin: var(--size-0);
74
+ margin-top: var(--size-8);
75
+ }
76
+ .badge {
77
+ display: inline-block;
78
+ background: var(--badge-background);
79
+ color: var(--text-color-white);
80
+ font-size: 14px;
81
+ padding: var(--size-6) 9px var(--size-6) var(--size-8);
82
+ border-radius: var(--size-16);
83
+ margin: var(--size-20) var(--size-0) 5px var(--size-0);
84
+ text-align: left;
85
+ font-family: var(--font-family-sans);
86
+ font-weight: 500;
87
+ line-height: var(--size-14);
88
+ gap: var(--size-10);
89
+ }
90
+ .badge img {
91
+ position: relative;
92
+ top: var(--size-1);
93
+ width: 11px;
94
+ height: var(--size-14);
95
+ }
96
+
97
+ .badge p {
98
+ font-size: 16px;
99
+ }
100
+ .pricing {
101
+ display: flex;
102
+ flex-direction: column;
103
+ align-items: start;
104
+ text-align: start;
105
+ margin: var(--size-16) 0;
106
+ }
107
+ .pricing > * {
108
+ margin: 0;
109
+ }
110
+ .original-price {
111
+ font-family: var(--font-family-sans);
112
+ font-weight: 500;
113
+ line-height: var(--size-18);
114
+ font-size: 16px;
115
+ text-decoration: line-through;
116
+ color: var(--color-neutral-950);
117
+ }
118
+
119
+ .discount {
120
+ background: var(--color-green-100);
121
+ font-family: var(--font-family-sans);
122
+ font-weight: 600;
123
+ font-size: 16px;
124
+ font-weight: bold;
125
+ border-radius: 22px;
126
+ padding: var(--size-6) var(--size-12) var(--size-8) var(--size-12);
127
+ gap: var(--size-10);
128
+ color: var(--color-green-800);
129
+ margin: var(--size-0);
130
+ }
131
+
132
+ .price {
133
+ font-size: 40px;
134
+ font-weight: 700;
135
+ color: var(--color-neutral-950);
136
+ font-family: var(--font-family-sans);
137
+ line-height: 34px;
138
+ }
139
+
140
+ .terms {
141
+ font-family: var(--font-family-sans);
142
+ font-weight: 400;
143
+ font-size: 12px;
144
+ color: var(--color-neutral-950);
145
+ line-height: var(--size-14);
146
+ margin-top: 15px;
147
+ max-width: 80%;
148
+ }
149
+
150
+ .terms a {
151
+ color: var(--color-blue-700);
152
+ text-decoration: underline;
153
+ }
154
+ .actions {
155
+ display: flex;
156
+ flex-direction: column;
157
+ gap: var(--size-12);
158
+ align-items: stretch;
159
+ margin-bottom: var(--size-20);
160
+ }
161
+
162
+ .features h4 {
163
+ font-size: 16px;
164
+ font-weight: 700;
165
+ color: var(--color-neutral-900);
166
+ font-family: var(--font-family-sans);
167
+ line-height: var(--size-18);
168
+ }
169
+
170
+ .features ul {
171
+ padding-left: var(--size-0);
172
+ }
173
+
174
+ .pricing-card {
175
+ position: relative;
176
+ }
177
+ .additional-info {
178
+ list-style-type: none;
179
+ padding: 0;
180
+ margin: 0;
181
+ text-align: start;
182
+ }
183
+ .additional-info li {
184
+ font-family: var(--font-family-sans);
185
+ font-weight: 400;
186
+ font-size: 14px;
187
+ color: var(--color-neutral-950);
188
+ margin-bottom: var(--size-10);
189
+ display: flex;
190
+ align-items: center;
191
+ gap: var(--size-8);
192
+ white-space: normal;
193
+ overflow: visible;
194
+ }
195
+
196
+ .card .features {
197
+ max-width: 400px !important;
198
+ }
199
+ .features {
200
+ padding: var(--size-10);
201
+ }
202
+
203
+ .badge-icon {
204
+ margin-right: var(--size-8);
205
+ }
206
+ .features h4 {
207
+ text-align: start;
208
+ }
209
+
210
+ .pricing-container {
211
+ display: flex;
212
+ flex-direction: column;
213
+ align-items: center;
214
+ gap: var(--size-16);
215
+ margin-bottom: 100px;
216
+ }
217
+
218
+ .plan-switch {
219
+ margin-bottom: var(--size-24);
220
+ }
221
+
222
+ .pricing-cards {
223
+ display: flex;
224
+ justify-content: center;
225
+ flex-wrap: wrap;
226
+ gap: var(--size-24);
227
+ align-items: stretch;
228
+ }
229
+
230
+ .pricing-card {
231
+ display: flex;
232
+ flex-direction: column;
233
+ flex: 1 1 calc(33.333% - var(--size-16));
234
+ max-width: 300px;
235
+ min-height: 100%;
236
+ }
237
+ .card-content {
238
+ flex-grow: 1;
239
+ }
240
+ .switchBox {
241
+ text-align: center;
242
+ padding-bottom: 60px;
243
+ }
244
+
245
+ .switchBox .switch {
246
+ position: relative;
247
+ display: inline-flex;
248
+ align-items: center;
249
+ width: 302px;
250
+ height: 44px;
251
+ background-color: #016dff;
252
+ border-radius: 22px;
253
+ }
254
+
255
+ .switchBox .switch input {
256
+ display: none;
257
+ }
258
+
259
+ .switchBox .slider {
260
+ position: absolute;
261
+ content: "";
262
+ height: var(--size-40);
263
+ width: 150px;
264
+ left: var(--size-2);
265
+ bottom: var(--size-2);
266
+ background-color: white;
267
+ border-radius: var(--size-20);
268
+ transition: all 0.4s;
269
+ }
270
+
271
+ .switchBox .switch input:checked + .slider {
272
+ transform: translateX(149px);
273
+ }
274
+
275
+ .switchBox .label {
276
+ font-family: Arial, Helvetica, sans-serif;
277
+ width: 50%;
278
+ text-align: center;
279
+ font-weight: bold;
280
+ line-height: 34px;
281
+ font-size: var(--size-16);
282
+ color: white;
283
+ transition: color 0.4s;
284
+ cursor: pointer;
285
+ }
286
+
287
+ .switchBox .label.right {
288
+ z-index: 10;
289
+ color: black;
290
+ }
291
+
292
+ .switchBox .label.left {
293
+ z-index: 10;
294
+ }
295
+
296
+ .switchBox .switch input:checked ~ .label.right {
297
+ transition: color 0.4s;
298
+ color: white !important;
299
+ }
300
+
301
+ .switchBox .switch input ~ .label .icon {
302
+ position: relative;
303
+ margin-right: var(--size-10);
304
+ top: var(--size-2);
305
+ }
306
+
307
+ .switchBox .switch input ~ .label .icon svg {
308
+ width: var(--size-24);
309
+ height: var(--size-20);
310
+ }
311
+ .badge-icon-family {
312
+ top: var(--size-4) !important;
313
+ position: relative;
314
+ }
315
+ .badge-icon-user {
316
+ top: var(--size-4) !important;
317
+ position: relative;
318
+ }
319
+ .switchBox .switch input ~ .label.right .icon svg {
320
+ fill: #026dff;
321
+ }
322
+
323
+ .switchBox .switch input:checked ~ .label.right .icon svg {
324
+ fill: white;
325
+ }
326
+
327
+ .switchBox .switch input:checked ~ .label.left {
328
+ transition: color 0.4s;
329
+ color: black;
330
+ }
331
+
332
+ .switchBox .switch input:checked ~ .label.left .icon svg {
333
+ fill: #026dff;
334
+ }
335
+
336
+ .prod-box.individual-box {
337
+ transition: all 0.4s;
338
+ }
339
+
340
+ .prod_box.family-box {
341
+ display: none;
342
+ transition: all 0.4s;
343
+ }
344
+ .feature-item {
345
+ position: relative;
346
+ display: flex;
347
+ align-items: center;
348
+ cursor: pointer;
349
+ }
350
+
351
+ .feature-item .tooltip {
352
+ display: none;
353
+ position: absolute;
354
+ top: -70px;
355
+ left: 0;
356
+ background-color: #f8f8f8;
357
+ color: #333;
358
+ padding: var(--size-8) var(--size-12);
359
+ border-radius: 5px;
360
+ font-size: 12px;
361
+ max-width: 250px;
362
+ border: var(--size-1) solid #ccc;
363
+ box-shadow: 0 0 var(--size-10) rgba(0, 0, 0, 0.1);
364
+ z-index: 10;
365
+ }
366
+
367
+ .feature-item .tooltip::after {
368
+ content: "";
369
+ position: absolute;
370
+ bottom: -8px;
371
+ left: 20%;
372
+ transform: translateX(-50%);
373
+ border-left: var(--size-8) solid transparent;
374
+ border-right: var(--size-8) solid transparent;
375
+ border-top: var(--size-8) solid #ccc;
376
+ }
377
+
378
+ .feature-item:hover .tooltip {
379
+ display: block;
380
+ }
381
+ .badge-feature {
382
+ background-color: #007bff;
383
+ color: white;
384
+ border-radius: var(--size-16);
385
+ width: var(--size-36);
386
+ height: var(--size-20);
387
+ display: inline-flex;
388
+ align-items: center;
389
+ justify-content: center;
390
+ font-size: 12px;
391
+ margin-left: var(--size-8);
392
+ text-align: center;
393
+ padding: var(--size-2);
394
+ }
395
+ .badge-feature-icon {
396
+ height: var(--size-14);
397
+ padding: var(--size-2);
398
+ }
399
+ .badge-icon-family-subtitle {
400
+ width: var(--size-20) !important;
401
+ height: var(--size-20) !important;
402
+ top: var(--size-2);
403
+ padding-right: var(--size-4);
404
+ }
405
+ .family-text {
406
+ position: relative;
407
+ bottom: var(--size-4);
408
+ }
409
+ `;