@deriv-web-design/ui 0.0.28 → 0.1.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.
@@ -0,0 +1,1406 @@
1
+ {
2
+ "article-hero": {
3
+ "id": "article-hero",
4
+ "name": "Article Hero",
5
+ "component": "ArticleHero",
6
+ "category": "article",
7
+ "description": "Editorial hub hero with one featured article, two labeled sidebar columns of article listings, and optional footer cards.",
8
+ "purpose": "Editorial hub hero used to open an articles or blog homepage with one prominently featured story flanked by two labeled sidebar columns of smaller article listings, plus up to two small footer cards below the featured article. This block is designed to be the first visible section of a news, blog, or market-commentary hub page.",
9
+ "keywords": [
10
+ "article",
11
+ "news",
12
+ "blog",
13
+ "editorial",
14
+ "hero",
15
+ "featured",
16
+ "trending",
17
+ "markets",
18
+ "trading",
19
+ "deriv"
20
+ ],
21
+ "sectionType": "article-hero",
22
+ "requiredFields": [
23
+ "featured",
24
+ "leftColumn",
25
+ "rightColumn"
26
+ ],
27
+ "optionalFields": [
28
+ "featuredFooter"
29
+ ],
30
+ "variants": [
31
+ "default"
32
+ ],
33
+ "recommendedPosition": 1,
34
+ "layout": {
35
+ "alignment": "three-column",
36
+ "buttonLayout": "none",
37
+ "contentWidth": "wide",
38
+ "background": false,
39
+ "overlay": false
40
+ },
41
+ "supports": {
42
+ "backgroundImage": false,
43
+ "backgroundVideo": false,
44
+ "foregroundImage": true,
45
+ "primaryButton": false,
46
+ "secondaryButton": false,
47
+ "thumbnails": true,
48
+ "tags": true,
49
+ "columnLabels": true
50
+ },
51
+ "imageRoles": [
52
+ "featured-thumbnail",
53
+ "article-thumbnail"
54
+ ],
55
+ "defaultValues": {
56
+ "featuredFooter": []
57
+ }
58
+ },
59
+ "article-section-featured": {
60
+ "id": "article-section-featured",
61
+ "name": "Article Section Featured",
62
+ "component": "ArticleSection",
63
+ "category": "article",
64
+ "description": "Article listing section with a heading, view-all link, and featured, showcase, or grid card layouts.",
65
+ "purpose": "Mid-page article listing section with a heading, a \"view all\" link, and one of three ready-made card layouts: a featured article followed by a text-only grid, a showcase with side columns, or a plain 4-column card grid. This block is designed to surface a collection of articles or videos further down a page.",
66
+ "keywords": [
67
+ "article",
68
+ "news",
69
+ "blog",
70
+ "listing",
71
+ "grid",
72
+ "showcase",
73
+ "featured",
74
+ "videos",
75
+ "markets",
76
+ "trading",
77
+ "deriv"
78
+ ],
79
+ "sectionType": "article-list",
80
+ "requiredFields": [
81
+ "sectionTitle",
82
+ "articles"
83
+ ],
84
+ "optionalFields": [
85
+ "variant",
86
+ "linkText",
87
+ "featured"
88
+ ],
89
+ "variants": [
90
+ "featured",
91
+ "showcase",
92
+ "grid"
93
+ ],
94
+ "recommendedPosition": 4,
95
+ "layout": {
96
+ "alignment": "left",
97
+ "buttonLayout": "none",
98
+ "contentWidth": "wide",
99
+ "background": false,
100
+ "overlay": false
101
+ },
102
+ "supports": {
103
+ "backgroundImage": false,
104
+ "backgroundVideo": false,
105
+ "foregroundImage": true,
106
+ "primaryButton": false,
107
+ "secondaryButton": false,
108
+ "thumbnails": true,
109
+ "tags": true,
110
+ "viewAllLink": true
111
+ },
112
+ "imageRoles": [
113
+ "featured-thumbnail",
114
+ "article-thumbnail"
115
+ ],
116
+ "defaultValues": {
117
+ "variant": "featured",
118
+ "linkText": "View all articles"
119
+ }
120
+ },
121
+ "cta-banner-standard": {
122
+ "id": "cta-banner-standard",
123
+ "name": "CTA Banner Standard",
124
+ "component": "CTABanner",
125
+ "category": "cta",
126
+ "description": "Full-bleed coral CTA banner with centered headline, single button, and scroll-driven parallax avatar field.",
127
+ "purpose": "Full-bleed coral conversion banner with a centered headline and CTA button, surrounded by a scroll-driven parallax field of floating avatar images on a background grid. This block is designed to be a dramatic, high-impact conversion moment near the end of a landing page.",
128
+ "keywords": [
129
+ "cta",
130
+ "banner",
131
+ "conversion",
132
+ "sign-up",
133
+ "open-account",
134
+ "avatars",
135
+ "community",
136
+ "trading",
137
+ "forex",
138
+ "mt5",
139
+ "deriv"
140
+ ],
141
+ "sectionType": "cta",
142
+ "requiredFields": [],
143
+ "optionalFields": [
144
+ "headline",
145
+ "ctaLabel",
146
+ "ctaHref",
147
+ "avatars",
148
+ "variant"
149
+ ],
150
+ "variants": [
151
+ "standard",
152
+ "compact"
153
+ ],
154
+ "recommendedPosition": 9,
155
+ "layout": {
156
+ "alignment": "center",
157
+ "buttonLayout": "single",
158
+ "contentWidth": "wide",
159
+ "background": true,
160
+ "overlay": false
161
+ },
162
+ "supports": {
163
+ "backgroundImage": false,
164
+ "backgroundVideo": false,
165
+ "foregroundImage": true,
166
+ "primaryButton": true,
167
+ "secondaryButton": false,
168
+ "avatars": true,
169
+ "scrollAnimation": true
170
+ },
171
+ "imageRoles": [
172
+ "avatar"
173
+ ],
174
+ "defaultValues": {
175
+ "headline": "Short section title goes here",
176
+ "ctaLabel": "Open account",
177
+ "ctaHref": "#",
178
+ "variant": "standard"
179
+ }
180
+ },
181
+ "day-night-transition": {
182
+ "id": "day-night-transition",
183
+ "name": "Day Night Transition",
184
+ "component": "DayNightTransition",
185
+ "category": "feature",
186
+ "description": "Sticky-scroll section crossfading between day and night background images with day/night copy and text color states.",
187
+ "purpose": "Full-viewport sticky-scroll section that crossfades between a day and a night background image as the user scrolls, with headline, description, and text color interpolating between a day state and a night state. This block is designed as a dramatic, scroll-driven narrative moment tying two visual states together.",
188
+ "keywords": [
189
+ "day",
190
+ "night",
191
+ "transition",
192
+ "crossfade",
193
+ "scroll",
194
+ "sticky",
195
+ "immersive",
196
+ "24/7",
197
+ "markets",
198
+ "trading",
199
+ "deriv"
200
+ ],
201
+ "sectionType": "scroll-transition",
202
+ "requiredFields": [
203
+ "dayImageUrl",
204
+ "nightImageUrl"
205
+ ],
206
+ "optionalFields": [
207
+ "dayHeadline",
208
+ "nightHeadline",
209
+ "dayDescription",
210
+ "nightDescription",
211
+ "ctaLabel",
212
+ "ctaHref",
213
+ "hideCta",
214
+ "headlineLevel",
215
+ "descriptionLevel",
216
+ "inlineDayNightHeadline",
217
+ "scrollPreset"
218
+ ],
219
+ "variants": [
220
+ "default",
221
+ "webflow-day-night-v2"
222
+ ],
223
+ "recommendedPosition": 3,
224
+ "layout": {
225
+ "alignment": "left",
226
+ "buttonLayout": "single",
227
+ "contentWidth": "medium",
228
+ "background": true,
229
+ "overlay": false
230
+ },
231
+ "supports": {
232
+ "backgroundImage": true,
233
+ "backgroundVideo": false,
234
+ "foregroundImage": false,
235
+ "primaryButton": true,
236
+ "secondaryButton": false,
237
+ "dayNightStates": true,
238
+ "scrollAnimation": true
239
+ },
240
+ "imageRoles": [
241
+ "day-background",
242
+ "night-background"
243
+ ],
244
+ "defaultValues": {
245
+ "dayHeadline": "Medium length section title goes here",
246
+ "nightHeadline": "Medium length section title goes here",
247
+ "dayDescription": "Description goes here. Description goes here. Description goes here.",
248
+ "nightDescription": "Description goes here. Description goes here. Description goes here.",
249
+ "ctaLabel": "Get started",
250
+ "ctaHref": "#",
251
+ "hideCta": false,
252
+ "headlineLevel": "h2",
253
+ "descriptionLevel": "body-md",
254
+ "scrollPreset": "default"
255
+ }
256
+ },
257
+ "download-banner-light-2": {
258
+ "id": "download-banner-light-2",
259
+ "name": "Download Banner Light 2",
260
+ "component": "DownloadBanner",
261
+ "category": "banner",
262
+ "description": "App download section with a desktop QR code block and platform badges for mobile stores, desktop platforms, and web.",
263
+ "purpose": "Full-width section promoting app downloads: on desktop a QR code with descriptive text sits beside a row of platform download badges; on mobile a heading replaces the QR code above a two-column badge grid. This block is designed to convert visitors into app installs across mobile stores, desktop platforms, and the web.",
264
+ "keywords": [
265
+ "download",
266
+ "app",
267
+ "qr-code",
268
+ "badges",
269
+ "app-store",
270
+ "google-play",
271
+ "appgallery",
272
+ "windows",
273
+ "macos",
274
+ "linux",
275
+ "mt5",
276
+ "trading",
277
+ "deriv"
278
+ ],
279
+ "sectionType": "download",
280
+ "requiredFields": [],
281
+ "optionalFields": [
282
+ "style",
283
+ "qrCodeImage",
284
+ "qrCodeAlt",
285
+ "qrTitle",
286
+ "qrSubtitle",
287
+ "mobileTitle",
288
+ "disclaimer",
289
+ "showAppStore",
290
+ "showGooglePlay",
291
+ "showAppGallery",
292
+ "showWindows",
293
+ "showMacOS",
294
+ "showLinux",
295
+ "showWeb",
296
+ "appStoreHref",
297
+ "googlePlayHref",
298
+ "appGalleryHref",
299
+ "windowsHref",
300
+ "macOSHref",
301
+ "linuxHref",
302
+ "webHref"
303
+ ],
304
+ "variants": [
305
+ "light",
306
+ "light-2",
307
+ "dark"
308
+ ],
309
+ "recommendedPosition": 8,
310
+ "layout": {
311
+ "alignment": "split",
312
+ "buttonLayout": "badge-row",
313
+ "contentWidth": "wide",
314
+ "background": true,
315
+ "overlay": false
316
+ },
317
+ "supports": {
318
+ "backgroundImage": false,
319
+ "backgroundVideo": false,
320
+ "foregroundImage": true,
321
+ "primaryButton": false,
322
+ "secondaryButton": false,
323
+ "qrCode": true,
324
+ "platformBadges": true,
325
+ "disclaimer": true
326
+ },
327
+ "imageRoles": [
328
+ "qr-code"
329
+ ],
330
+ "defaultValues": {
331
+ "style": "light-2",
332
+ "qrCodeAlt": "QR code to download the app",
333
+ "qrTitle": "Scan to download",
334
+ "qrSubtitle": "Android & iOS",
335
+ "mobileTitle": "Available on",
336
+ "showAppStore": true,
337
+ "showGooglePlay": true,
338
+ "showAppGallery": true,
339
+ "showWindows": true,
340
+ "showMacOS": true,
341
+ "showLinux": true,
342
+ "showWeb": true
343
+ }
344
+ },
345
+ "faq-accordion-white": {
346
+ "id": "faq-accordion-white",
347
+ "name": "FAQ Accordion White",
348
+ "component": "FaqAccordion",
349
+ "category": "faq",
350
+ "description": "Centered FAQ section with an H2 title and a single-open accordion list of question/answer items.",
351
+ "purpose": "Centered FAQ section with an H2 title and a vertical list of expandable question/answer items. Only one item can be open at a time — opening an item closes the previously open one. This block is designed to answer common questions and handle objections near the end of a page.",
352
+ "keywords": [
353
+ "faq",
354
+ "questions",
355
+ "answers",
356
+ "accordion",
357
+ "help",
358
+ "support",
359
+ "trading",
360
+ "forex",
361
+ "mt5",
362
+ "deriv"
363
+ ],
364
+ "sectionType": "faq",
365
+ "requiredFields": [
366
+ "title",
367
+ "items"
368
+ ],
369
+ "optionalFields": [
370
+ "colorScheme"
371
+ ],
372
+ "variants": [
373
+ "white",
374
+ "slate"
375
+ ],
376
+ "recommendedPosition": 8,
377
+ "layout": {
378
+ "alignment": "center",
379
+ "buttonLayout": "none",
380
+ "contentWidth": "medium",
381
+ "background": true,
382
+ "overlay": false
383
+ },
384
+ "supports": {
385
+ "backgroundImage": false,
386
+ "backgroundVideo": false,
387
+ "foregroundImage": false,
388
+ "primaryButton": false,
389
+ "secondaryButton": false,
390
+ "accordionItems": true,
391
+ "singleOpen": true
392
+ },
393
+ "imageRoles": [],
394
+ "defaultValues": {
395
+ "colorScheme": "white"
396
+ }
397
+ },
398
+ "feature-bullets-image-right": {
399
+ "id": "feature-bullets-image-right",
400
+ "name": "Feature Bullets Image Right",
401
+ "component": "FeatureBullets",
402
+ "category": "feature",
403
+ "description": "Split feature section with a checkmarked bullet list beside a supporting image.",
404
+ "purpose": "A 50/50 split feature section that pairs a section title and a vertical list of checkmarked bullet points with a single supporting image. This block is designed to make several benefits or included features scannable at a glance.",
405
+ "keywords": [
406
+ "feature",
407
+ "bullets",
408
+ "checklist",
409
+ "benefits",
410
+ "checkmarks",
411
+ "split",
412
+ "advantages",
413
+ "trading",
414
+ "mt5",
415
+ "deriv"
416
+ ],
417
+ "sectionType": "feature",
418
+ "requiredFields": [
419
+ "title",
420
+ "bullets",
421
+ "image"
422
+ ],
423
+ "optionalFields": [
424
+ "imageAlt",
425
+ "imagePosition"
426
+ ],
427
+ "variants": [
428
+ "image-right",
429
+ "image-left"
430
+ ],
431
+ "recommendedPosition": 4,
432
+ "layout": {
433
+ "alignment": "left",
434
+ "imagePosition": "right",
435
+ "contentWidth": "large",
436
+ "background": false,
437
+ "overlay": false
438
+ },
439
+ "supports": {
440
+ "backgroundImage": false,
441
+ "backgroundVideo": false,
442
+ "foregroundImage": true,
443
+ "primaryButton": false,
444
+ "secondaryButton": false,
445
+ "icons": true,
446
+ "bullets": true
447
+ },
448
+ "imageRoles": [
449
+ "feature-image"
450
+ ],
451
+ "defaultValues": {
452
+ "imageAlt": "",
453
+ "imagePosition": "right"
454
+ }
455
+ },
456
+ "feature-cards": {
457
+ "id": "feature-cards",
458
+ "name": "Feature Cards",
459
+ "component": "FeatureCards",
460
+ "category": "feature",
461
+ "description": "Centred section header above a responsive grid of image-led feature cards, with large one-card and two-card panel variants.",
462
+ "purpose": "A feature section with a centred header (title, optional description, optional link) above a responsive grid of image-led feature cards. Two additional layout variants swap the grid for one or two large feature panels with platform shortcut links. This block is designed to present 1 to 4 features, products, or platforms with supporting imagery.",
463
+ "keywords": [
464
+ "feature",
465
+ "cards",
466
+ "grid",
467
+ "benefits",
468
+ "products",
469
+ "platforms",
470
+ "comparison",
471
+ "trading",
472
+ "cfd",
473
+ "mt5",
474
+ "deriv"
475
+ ],
476
+ "sectionType": "feature",
477
+ "requiredFields": [
478
+ "sectionTitle",
479
+ "cards"
480
+ ],
481
+ "optionalFields": [
482
+ "variant",
483
+ "sectionDescription",
484
+ "showLink",
485
+ "linkText",
486
+ "cardColorScheme"
487
+ ],
488
+ "variants": [
489
+ "default",
490
+ "two-cards",
491
+ "one-card"
492
+ ],
493
+ "recommendedPosition": 3,
494
+ "layout": {
495
+ "alignment": "center",
496
+ "gridColumns": "3-4",
497
+ "contentWidth": "large",
498
+ "background": false,
499
+ "overlay": false
500
+ },
501
+ "supports": {
502
+ "backgroundImage": false,
503
+ "backgroundVideo": false,
504
+ "foregroundImage": true,
505
+ "primaryButton": false,
506
+ "secondaryButton": false,
507
+ "sectionLink": true,
508
+ "cardLink": true,
509
+ "platformLinks": true,
510
+ "icons": true
511
+ },
512
+ "imageRoles": [
513
+ "card-image",
514
+ "platform-icon"
515
+ ],
516
+ "defaultValues": {
517
+ "variant": "default",
518
+ "showLink": false,
519
+ "linkText": "Learn more",
520
+ "cardColorScheme": "image"
521
+ }
522
+ },
523
+ "feature-cards-icon": {
524
+ "id": "feature-cards-icon",
525
+ "name": "Feature Cards Icon",
526
+ "component": "FeatureCardsIcon",
527
+ "category": "feature",
528
+ "description": "Centred section header above a responsive grid of icon-led feature cards.",
529
+ "purpose": "A feature section with a centred header (title, optional description, optional link) above a responsive grid of icon-led feature cards. Each card shows an icon, title, description, and an optional \"Learn more\" link. This block is designed for benefit or trust sections built around abstract icons rather than photography.",
530
+ "keywords": [
531
+ "feature",
532
+ "icons",
533
+ "cards",
534
+ "grid",
535
+ "benefits",
536
+ "trust",
537
+ "value",
538
+ "why-choose",
539
+ "trading",
540
+ "deriv"
541
+ ],
542
+ "sectionType": "feature",
543
+ "requiredFields": [
544
+ "sectionTitle",
545
+ "cards"
546
+ ],
547
+ "optionalFields": [
548
+ "sectionDescription",
549
+ "showLink",
550
+ "linkText"
551
+ ],
552
+ "variants": [
553
+ "default"
554
+ ],
555
+ "recommendedPosition": 4,
556
+ "layout": {
557
+ "alignment": "center",
558
+ "gridColumns": "3-4",
559
+ "contentWidth": "large",
560
+ "background": false,
561
+ "overlay": false
562
+ },
563
+ "supports": {
564
+ "backgroundImage": false,
565
+ "backgroundVideo": false,
566
+ "foregroundImage": false,
567
+ "primaryButton": false,
568
+ "secondaryButton": false,
569
+ "sectionLink": true,
570
+ "cardLink": true,
571
+ "icons": true
572
+ },
573
+ "imageRoles": [
574
+ "card-icon"
575
+ ],
576
+ "defaultValues": {
577
+ "showLink": false,
578
+ "linkText": "Learn more"
579
+ }
580
+ },
581
+ "feature-scroll-media-right": {
582
+ "id": "feature-scroll-media-right",
583
+ "name": "Feature Scroll Media Right",
584
+ "component": "FeatureScroll",
585
+ "category": "feature",
586
+ "description": "Scroll-driven feature list with a sticky Lottie or image panel that crossfades as titled steps scroll past.",
587
+ "purpose": "A scroll-driven feature-list section. On desktop, a sticky media panel (Lottie animation or image) sits on one side while a list of titled steps scrolls past on the other; the visible media crossfades to match the step at the top of the sticky band. On mobile it becomes a simple stacked list per item. This block is designed for multi-item showcases where each item deserves its own scroll-triggered visual moment.",
588
+ "keywords": [
589
+ "feature",
590
+ "scroll",
591
+ "sticky",
592
+ "animation",
593
+ "lottie",
594
+ "markets",
595
+ "forex",
596
+ "stocks",
597
+ "crypto",
598
+ "trading",
599
+ "deriv"
600
+ ],
601
+ "sectionType": "feature",
602
+ "requiredFields": [
603
+ "header",
604
+ "items"
605
+ ],
606
+ "optionalFields": [
607
+ "variant"
608
+ ],
609
+ "variants": [
610
+ "media-right",
611
+ "media-left"
612
+ ],
613
+ "recommendedPosition": 3,
614
+ "layout": {
615
+ "alignment": "left",
616
+ "mediaPosition": "right",
617
+ "contentWidth": "large",
618
+ "background": false,
619
+ "overlay": false
620
+ },
621
+ "supports": {
622
+ "backgroundImage": false,
623
+ "backgroundVideo": false,
624
+ "foregroundImage": true,
625
+ "lottieAnimation": true,
626
+ "primaryButton": false,
627
+ "secondaryButton": false,
628
+ "itemLinks": true
629
+ },
630
+ "imageRoles": [
631
+ "item-media"
632
+ ],
633
+ "defaultValues": {
634
+ "variant": "media-right"
635
+ }
636
+ },
637
+ "feature-split-image-right": {
638
+ "id": "feature-split-image-right",
639
+ "name": "Feature Split Image Right",
640
+ "component": "FeatureSplit",
641
+ "category": "feature",
642
+ "description": "Two-column feature callout with title, description and link beside a single focal image.",
643
+ "purpose": "A two-column feature callout section: a title, optional description, and optional \"Learn more\" link on one side, a single focal image on the other. This block is designed for single-focus feature or product callouts with one supporting visual.",
644
+ "keywords": [
645
+ "feature",
646
+ "split",
647
+ "two-column",
648
+ "callout",
649
+ "highlight",
650
+ "image",
651
+ "trading",
652
+ "cfd",
653
+ "deriv"
654
+ ],
655
+ "sectionType": "feature",
656
+ "requiredFields": [
657
+ "title"
658
+ ],
659
+ "optionalFields": [
660
+ "description",
661
+ "showDescription",
662
+ "linkText",
663
+ "showLink",
664
+ "image",
665
+ "imageAlt",
666
+ "imagePosition"
667
+ ],
668
+ "variants": [
669
+ "image-right",
670
+ "image-left"
671
+ ],
672
+ "recommendedPosition": 5,
673
+ "layout": {
674
+ "alignment": "left",
675
+ "imagePosition": "right",
676
+ "contentWidth": "large",
677
+ "background": false,
678
+ "overlay": false
679
+ },
680
+ "supports": {
681
+ "backgroundImage": false,
682
+ "backgroundVideo": false,
683
+ "foregroundImage": true,
684
+ "primaryButton": false,
685
+ "secondaryButton": false,
686
+ "link": true
687
+ },
688
+ "imageRoles": [
689
+ "feature-image"
690
+ ],
691
+ "defaultValues": {
692
+ "showDescription": true,
693
+ "linkText": "Learn more",
694
+ "showLink": true,
695
+ "imageAlt": "",
696
+ "imagePosition": "right"
697
+ }
698
+ },
699
+ "header-visuals": {
700
+ "id": "header-visuals",
701
+ "name": "Header Visuals",
702
+ "component": "Header",
703
+ "category": "header",
704
+ "description": "Light-grey sub-page header with centred title, CTA buttons and optional floating parallax visuals.",
705
+ "purpose": "A lightweight, light-grey page header for sub-pages: an optional eyebrow subtitle, a large title, optional description, and up to two CTA buttons over a faint SVG grid background. The Visuals variant adds floating parallax images in the top-left and bottom-right corners. This block is designed as a lower-weight alternative to the full-viewport Hero — it sits above content without dominating the first viewport (min-height 540px).",
706
+ "keywords": [
707
+ "header",
708
+ "page-header",
709
+ "sub-page",
710
+ "hero",
711
+ "title",
712
+ "intro",
713
+ "parallax",
714
+ "cta",
715
+ "trading",
716
+ "deriv"
717
+ ],
718
+ "sectionType": "header",
719
+ "requiredFields": [
720
+ "variant",
721
+ "title"
722
+ ],
723
+ "optionalFields": [
724
+ "subtitle",
725
+ "description",
726
+ "primaryButtonText",
727
+ "primaryButtonUrl",
728
+ "secondaryButtonText",
729
+ "secondaryButtonUrl",
730
+ "leftVisual",
731
+ "rightVisual"
732
+ ],
733
+ "variants": [
734
+ "visuals",
735
+ "minimal"
736
+ ],
737
+ "recommendedPosition": 1,
738
+ "layout": {
739
+ "alignment": "center",
740
+ "buttonLayout": "horizontal",
741
+ "contentWidth": "medium",
742
+ "background": false,
743
+ "overlay": true
744
+ },
745
+ "supports": {
746
+ "backgroundImage": false,
747
+ "backgroundVideo": false,
748
+ "foregroundImage": true,
749
+ "primaryButton": true,
750
+ "secondaryButton": true,
751
+ "eyebrow": true,
752
+ "parallax": true
753
+ },
754
+ "imageRoles": [
755
+ "left-visual",
756
+ "right-visual"
757
+ ],
758
+ "defaultValues": {
759
+ "variant": "visuals"
760
+ }
761
+ },
762
+ "hero-centered": {
763
+ "id": "hero-centered",
764
+ "name": "Hero Centered",
765
+ "component": "Hero.Centered",
766
+ "category": "hero",
767
+ "description": "Centered landing hero with headline, description and CTA buttons.",
768
+ "purpose": "The primary hero section used to introduce a page with a strong headline, supporting description, primary call-to-action, and optional secondary action. This block is designed to be the first visible section of a landing page.",
769
+ "keywords": [
770
+ "hero",
771
+ "landing",
772
+ "banner",
773
+ "headline",
774
+ "intro",
775
+ "forex",
776
+ "mt5",
777
+ "cfd",
778
+ "trading",
779
+ "deriv"
780
+ ],
781
+ "sectionType": "hero",
782
+ "requiredFields": [
783
+ "headline",
784
+ "description",
785
+ "primaryButtonText",
786
+ "primaryButtonUrl"
787
+ ],
788
+ "optionalFields": [
789
+ "eyebrow",
790
+ "secondaryButtonText",
791
+ "secondaryButtonUrl",
792
+ "backgroundImage",
793
+ "backgroundVideo",
794
+ "badge",
795
+ "trustIndicators"
796
+ ],
797
+ "variants": [
798
+ "centered",
799
+ "left",
800
+ "image-right",
801
+ "video"
802
+ ],
803
+ "recommendedPosition": 1,
804
+ "layout": {
805
+ "alignment": "center",
806
+ "buttonLayout": "horizontal",
807
+ "contentWidth": "medium",
808
+ "background": true,
809
+ "overlay": true
810
+ },
811
+ "supports": {
812
+ "backgroundImage": true,
813
+ "backgroundVideo": true,
814
+ "foregroundImage": false,
815
+ "primaryButton": true,
816
+ "secondaryButton": true,
817
+ "badge": true,
818
+ "trustIndicators": true
819
+ },
820
+ "imageRoles": [
821
+ "hero-background"
822
+ ],
823
+ "defaultValues": {
824
+ "layout": "centered",
825
+ "overlay": true,
826
+ "buttonLayout": "horizontal"
827
+ }
828
+ },
829
+ "image-banner-split": {
830
+ "id": "image-banner-split",
831
+ "name": "Image Banner Split",
832
+ "component": "ImageBanner",
833
+ "category": "banner",
834
+ "description": "Dark full-bleed banner card with headline, supporting copy, one CTA link, and a photo in a split panel or as a full background.",
835
+ "purpose": "A full-bleed, dark-background conversion banner pairing a headline, supporting copy, and a single CTA link with a photo — either in a right-hand panel (split) or as the card's full background with a gradient overlay (full-bg). This block is designed as a mid-page or bottom-of-page conversion moment, not a page-opening hero.",
836
+ "keywords": [
837
+ "banner",
838
+ "image",
839
+ "photo",
840
+ "cta",
841
+ "conversion",
842
+ "promotion",
843
+ "community",
844
+ "callout",
845
+ "trading",
846
+ "deriv"
847
+ ],
848
+ "sectionType": "banner",
849
+ "requiredFields": [],
850
+ "optionalFields": [
851
+ "variant",
852
+ "title",
853
+ "description",
854
+ "ctaLabel",
855
+ "ctaHref",
856
+ "imageUrl",
857
+ "imageAlt"
858
+ ],
859
+ "variants": [
860
+ "split",
861
+ "full-bg"
862
+ ],
863
+ "recommendedPosition": 7,
864
+ "layout": {
865
+ "alignment": "left",
866
+ "buttonLayout": "single",
867
+ "contentWidth": "wide",
868
+ "background": true,
869
+ "overlay": true
870
+ },
871
+ "supports": {
872
+ "backgroundImage": true,
873
+ "backgroundVideo": false,
874
+ "foregroundImage": true,
875
+ "primaryButton": false,
876
+ "secondaryButton": false,
877
+ "ctaLink": true,
878
+ "badge": false
879
+ },
880
+ "imageRoles": [
881
+ "split-panel",
882
+ "card-background"
883
+ ],
884
+ "defaultValues": {
885
+ "variant": "split",
886
+ "title": "Join our global community",
887
+ "description": "Connect with traders around the world to exchange insights, explore portfolios, and gain valuable expertise.",
888
+ "ctaLabel": "Trader's Hub",
889
+ "imageAlt": ""
890
+ }
891
+ },
892
+ "leaders": {
893
+ "id": "leaders",
894
+ "name": "Leaders",
895
+ "component": "AvatarGrid",
896
+ "category": "team",
897
+ "description": "Responsive grid of person profile cards with photo, name, role, optional profile link, and expand/collapse for longer lists.",
898
+ "purpose": "A responsive grid of person/profile cards — photo, name, role, and an optional external profile link — with an optional title/description header and built-in expand/collapse (\"View all\") behaviour for longer lists. This block is designed for people listings such as leadership teams, advisors, or contributors.",
899
+ "keywords": [
900
+ "leaders",
901
+ "team",
902
+ "people",
903
+ "avatars",
904
+ "profiles",
905
+ "executives",
906
+ "leadership",
907
+ "advisors",
908
+ "about",
909
+ "deriv"
910
+ ],
911
+ "sectionType": "team",
912
+ "requiredFields": [
913
+ "items"
914
+ ],
915
+ "optionalFields": [
916
+ "title",
917
+ "description",
918
+ "initialVisibleCount",
919
+ "expandText",
920
+ "collapseText"
921
+ ],
922
+ "variants": [
923
+ "default"
924
+ ],
925
+ "recommendedPosition": 6,
926
+ "layout": {
927
+ "alignment": "center",
928
+ "buttonLayout": "single",
929
+ "contentWidth": "wide",
930
+ "background": false,
931
+ "overlay": false
932
+ },
933
+ "supports": {
934
+ "backgroundImage": false,
935
+ "backgroundVideo": false,
936
+ "avatars": true,
937
+ "primaryButton": false,
938
+ "secondaryButton": false,
939
+ "profileLinks": true,
940
+ "expandCollapse": true
941
+ },
942
+ "imageRoles": [
943
+ "profile-photo"
944
+ ],
945
+ "defaultValues": {
946
+ "initialVisibleCount": 4,
947
+ "expandText": "View all",
948
+ "collapseText": "View less"
949
+ }
950
+ },
951
+ "logo-marquee": {
952
+ "id": "logo-marquee",
953
+ "name": "Logo Marquee",
954
+ "component": "LogoMarquee",
955
+ "category": "social-proof",
956
+ "description": "Dark section with two counter-scrolling columns of logo cards driven by scroll velocity, beside a headline, body, disclaimer, and CTA link.",
957
+ "purpose": "A dark-background social-proof section pairing a headline, body copy, disclaimer, and CTA link with two vertical columns of logo cards that scroll in opposite directions, driven by page-scroll velocity. This block is designed to showcase partners, integrations, or payment methods as an ambient, scroll-reactive logo wall.",
958
+ "keywords": [
959
+ "logos",
960
+ "marquee",
961
+ "partners",
962
+ "integrations",
963
+ "social-proof",
964
+ "trust",
965
+ "brands",
966
+ "payment-methods",
967
+ "trading",
968
+ "deriv"
969
+ ],
970
+ "sectionType": "social-proof",
971
+ "requiredFields": [],
972
+ "optionalFields": [
973
+ "headline",
974
+ "body",
975
+ "disclaimer",
976
+ "ctaLabel",
977
+ "ctaHref",
978
+ "col1Logos",
979
+ "col2Logos"
980
+ ],
981
+ "variants": [
982
+ "default"
983
+ ],
984
+ "recommendedPosition": 2,
985
+ "layout": {
986
+ "alignment": "split",
987
+ "buttonLayout": "single",
988
+ "contentWidth": "wide",
989
+ "background": true,
990
+ "overlay": false
991
+ },
992
+ "supports": {
993
+ "backgroundImage": false,
994
+ "backgroundVideo": false,
995
+ "logos": true,
996
+ "primaryButton": false,
997
+ "secondaryButton": false,
998
+ "ctaLink": true,
999
+ "disclaimer": true,
1000
+ "scrollAnimation": true
1001
+ },
1002
+ "imageRoles": [
1003
+ "logo-card"
1004
+ ],
1005
+ "defaultValues": {
1006
+ "headline": "Section title goes here",
1007
+ "body": "Explain how this specific feature helps your user.",
1008
+ "disclaimer": "*Add any relevant disclaimers or legal copy here.",
1009
+ "ctaLabel": "Learn more",
1010
+ "ctaHref": "#"
1011
+ }
1012
+ },
1013
+ "stats-carousel": {
1014
+ "id": "stats-carousel",
1015
+ "name": "Stats Carousel",
1016
+ "component": "Stats",
1017
+ "category": "stats",
1018
+ "description": "Auto-rotating carousel of key numbers with optional laurel-wrapped award badges; a StatsSimple variant renders a static count-up grid.",
1019
+ "purpose": "A trust and credibility section that cycles through a list of key numbers (value + label) one at a time in an auto-rotating carousel card, optionally flanked by laurel-wrapped award badges with a scroll-driven parallax. A second component in this folder, StatsSimple, renders the same value/label items as a static grid with a count-up-on-scroll reveal instead of a carousel.",
1020
+ "keywords": [
1021
+ "stats",
1022
+ "statistics",
1023
+ "numbers",
1024
+ "metrics",
1025
+ "awards",
1026
+ "trust",
1027
+ "credibility",
1028
+ "trading",
1029
+ "forex",
1030
+ "deriv"
1031
+ ],
1032
+ "sectionType": "stats",
1033
+ "requiredFields": [
1034
+ "title",
1035
+ "stats"
1036
+ ],
1037
+ "optionalFields": [
1038
+ "description",
1039
+ "leftAwards",
1040
+ "rightAwards"
1041
+ ],
1042
+ "variants": [
1043
+ "carousel",
1044
+ "simple"
1045
+ ],
1046
+ "recommendedPosition": 3,
1047
+ "layout": {
1048
+ "alignment": "center",
1049
+ "buttonLayout": "none",
1050
+ "contentWidth": "wide",
1051
+ "background": false,
1052
+ "overlay": false
1053
+ },
1054
+ "supports": {
1055
+ "backgroundImage": false,
1056
+ "backgroundVideo": false,
1057
+ "primaryButton": false,
1058
+ "secondaryButton": false,
1059
+ "awards": true,
1060
+ "countUpAnimation": true,
1061
+ "carouselAnimation": true
1062
+ },
1063
+ "imageRoles": [],
1064
+ "defaultValues": {
1065
+ "leftAwards": [],
1066
+ "rightAwards": []
1067
+ }
1068
+ },
1069
+ "steps-image-left": {
1070
+ "id": "steps-image-left",
1071
+ "name": "Steps Image Left",
1072
+ "component": "Steps",
1073
+ "category": "steps",
1074
+ "description": "Two-column how-it-works section with a numbered step list and an optional supporting image on the left or right.",
1075
+ "purpose": "A two-column how-it-works section pairing a supporting image with a numbered, ordered list of steps, each with a title and description. This block is designed to walk visitors through a clear, ordered sequence such as onboarding or account setup.",
1076
+ "keywords": [
1077
+ "steps",
1078
+ "how-it-works",
1079
+ "process",
1080
+ "onboarding",
1081
+ "get-started",
1082
+ "guide",
1083
+ "numbered",
1084
+ "trading",
1085
+ "mt5",
1086
+ "deriv"
1087
+ ],
1088
+ "sectionType": "steps",
1089
+ "requiredFields": [
1090
+ "title",
1091
+ "steps"
1092
+ ],
1093
+ "optionalFields": [
1094
+ "image",
1095
+ "imageAlt",
1096
+ "imagePosition"
1097
+ ],
1098
+ "variants": [
1099
+ "image-left",
1100
+ "image-right"
1101
+ ],
1102
+ "recommendedPosition": 5,
1103
+ "layout": {
1104
+ "alignment": "left",
1105
+ "buttonLayout": "none",
1106
+ "contentWidth": "wide",
1107
+ "background": false,
1108
+ "overlay": false
1109
+ },
1110
+ "supports": {
1111
+ "backgroundImage": false,
1112
+ "backgroundVideo": false,
1113
+ "foregroundImage": true,
1114
+ "primaryButton": false,
1115
+ "secondaryButton": false,
1116
+ "numberedList": true
1117
+ },
1118
+ "imageRoles": [
1119
+ "supporting-image"
1120
+ ],
1121
+ "defaultValues": {
1122
+ "imagePosition": "left",
1123
+ "imageAlt": ""
1124
+ }
1125
+ },
1126
+ "sticky-market-cards": {
1127
+ "id": "sticky-market-cards",
1128
+ "name": "Sticky Market Cards",
1129
+ "component": "StickyMarketCards",
1130
+ "category": "cards",
1131
+ "description": "Scroll-driven stack of overlapping, text-first market cards that pile up via position sticky, scaling and dimming as each card slides over the previous one.",
1132
+ "purpose": "A scroll-driven stack of overlapping, text-first market cards. Each card piles on top of the previous one via `position: sticky` as the user scrolls, scaling down and dimming the card underneath for a layered depth effect. This block is designed to showcase a list of markets, products, or benefits one at a time as the user scrolls, with a maximum of 4 cards visibly stacked at once regardless of total count.",
1133
+ "keywords": [
1134
+ "sticky",
1135
+ "cards",
1136
+ "stack",
1137
+ "scroll",
1138
+ "markets",
1139
+ "showcase",
1140
+ "forex",
1141
+ "cfd",
1142
+ "trading",
1143
+ "deriv"
1144
+ ],
1145
+ "sectionType": "sticky-cards",
1146
+ "requiredFields": [
1147
+ "sectionTitle",
1148
+ "items"
1149
+ ],
1150
+ "optionalFields": [
1151
+ "sectionDescription"
1152
+ ],
1153
+ "variants": [
1154
+ "default"
1155
+ ],
1156
+ "recommendedPosition": 3,
1157
+ "layout": {
1158
+ "alignment": "left",
1159
+ "cardLayout": "sticky-stack",
1160
+ "contentWidth": "medium",
1161
+ "maxVisibleStack": 4,
1162
+ "background": true,
1163
+ "overlay": true
1164
+ },
1165
+ "supports": {
1166
+ "backgroundImage": false,
1167
+ "cardImage": true,
1168
+ "cardThemes": true,
1169
+ "scrollAnimation": true,
1170
+ "primaryButton": false,
1171
+ "secondaryButton": false,
1172
+ "badge": false,
1173
+ "avatar": false
1174
+ },
1175
+ "imageRoles": [
1176
+ "card-background"
1177
+ ],
1178
+ "defaultValues": {
1179
+ "itemTheme": "dark",
1180
+ "maxVisibleStack": 4
1181
+ }
1182
+ },
1183
+ "sticky-stacked-cards": {
1184
+ "id": "sticky-stacked-cards",
1185
+ "name": "Sticky Stacked Cards",
1186
+ "component": "StickyStackedCards",
1187
+ "category": "cards",
1188
+ "description": "Vertically stacked image-and-text cards that slide over each other via position sticky as the user scrolls, with covered cards scaling down for depth.",
1189
+ "purpose": "A vertically stacked set of full image-and-text cards that use `position: sticky` so each subsequent card slides over the previous one as the user scrolls, with covered cards scaling down slightly for a layered depth effect. This block is designed for a small, fixed set of steps or benefits (typically 3) where every card needs its own full-height hero image.",
1190
+ "keywords": [
1191
+ "sticky",
1192
+ "stacked",
1193
+ "cards",
1194
+ "scroll",
1195
+ "steps",
1196
+ "journey",
1197
+ "onboarding",
1198
+ "trading",
1199
+ "deriv"
1200
+ ],
1201
+ "sectionType": "sticky-cards",
1202
+ "requiredFields": [
1203
+ "header",
1204
+ "items"
1205
+ ],
1206
+ "optionalFields": [],
1207
+ "variants": [
1208
+ "default"
1209
+ ],
1210
+ "recommendedPosition": 3,
1211
+ "layout": {
1212
+ "alignment": "left",
1213
+ "cardLayout": "sticky-stack",
1214
+ "contentWidth": "medium",
1215
+ "cardColumns": 2,
1216
+ "background": false,
1217
+ "overlay": false
1218
+ },
1219
+ "supports": {
1220
+ "backgroundImage": false,
1221
+ "cardImage": true,
1222
+ "cardThemes": true,
1223
+ "scrollAnimation": true,
1224
+ "primaryButton": false,
1225
+ "secondaryButton": false,
1226
+ "badge": false,
1227
+ "avatar": false
1228
+ },
1229
+ "imageRoles": [
1230
+ "card-hero"
1231
+ ],
1232
+ "defaultValues": {
1233
+ "itemTheme": "light"
1234
+ }
1235
+ },
1236
+ "table": {
1237
+ "id": "table",
1238
+ "name": "Table",
1239
+ "component": "Table",
1240
+ "category": "table",
1241
+ "description": "Data-table section with search, client-side pagination, header tooltips, and a sticky first column for instrument and market specification listings.",
1242
+ "purpose": "A full-width data-table section for instrument and market-style listings. It renders a search bar, a native table with a sticky first column and sticky header inside a horizontally scrollable wrapper, optional per-header tooltips, client-side pagination, and an optional footnote below the table. This block is designed for large, column-heavy datasets — any API or CSV-shaped data can be dropped in via the columns and rows props.",
1243
+ "keywords": [
1244
+ "table",
1245
+ "data",
1246
+ "instruments",
1247
+ "specifications",
1248
+ "spreads",
1249
+ "leverage",
1250
+ "markets",
1251
+ "forex",
1252
+ "mt5",
1253
+ "cfd",
1254
+ "trading",
1255
+ "deriv"
1256
+ ],
1257
+ "sectionType": "table",
1258
+ "requiredFields": [
1259
+ "columns",
1260
+ "rows"
1261
+ ],
1262
+ "optionalFields": [
1263
+ "sectionTitle",
1264
+ "mainColumnKey",
1265
+ "pageSize",
1266
+ "searchPlaceholder",
1267
+ "infoText"
1268
+ ],
1269
+ "variants": [
1270
+ "default"
1271
+ ],
1272
+ "recommendedPosition": 4,
1273
+ "layout": {
1274
+ "alignment": "center",
1275
+ "contentWidth": "wide",
1276
+ "stickyMainColumn": true,
1277
+ "horizontalScroll": true,
1278
+ "background": false,
1279
+ "overlay": false
1280
+ },
1281
+ "supports": {
1282
+ "backgroundImage": false,
1283
+ "rowIcons": true,
1284
+ "search": true,
1285
+ "pagination": true,
1286
+ "headerTooltips": true,
1287
+ "infoText": true,
1288
+ "primaryButton": false,
1289
+ "secondaryButton": false,
1290
+ "badge": false
1291
+ },
1292
+ "imageRoles": [
1293
+ "row-icon"
1294
+ ],
1295
+ "defaultValues": {
1296
+ "pageSize": 10,
1297
+ "searchPlaceholder": "Search",
1298
+ "columnWidth": "normal"
1299
+ }
1300
+ },
1301
+ "testimonial": {
1302
+ "id": "testimonial",
1303
+ "name": "Testimonial",
1304
+ "component": "Testimonial",
1305
+ "category": "testimonial",
1306
+ "description": "Auto-advancing testimonial carousel showing one quote card at a time with decorative quote marks, author details, and dot pagination.",
1307
+ "purpose": "A full-width testimonial carousel section that displays one quote card at a time — with decorative quote marks, the quote text, an optional author avatar, name, and location — and auto-advances through the slides every 5 seconds, with dot pagination for manual navigation. This block is designed to build trust with partner or customer voices, giving each quote full visual focus.",
1308
+ "keywords": [
1309
+ "testimonial",
1310
+ "quote",
1311
+ "review",
1312
+ "social proof",
1313
+ "trust",
1314
+ "carousel",
1315
+ "partner",
1316
+ "trading",
1317
+ "deriv"
1318
+ ],
1319
+ "sectionType": "testimonial",
1320
+ "requiredFields": [
1321
+ "items"
1322
+ ],
1323
+ "optionalFields": [
1324
+ "title"
1325
+ ],
1326
+ "variants": [
1327
+ "default"
1328
+ ],
1329
+ "recommendedPosition": 6,
1330
+ "layout": {
1331
+ "alignment": "center",
1332
+ "carousel": true,
1333
+ "contentWidth": "medium",
1334
+ "background": true,
1335
+ "overlay": false
1336
+ },
1337
+ "supports": {
1338
+ "backgroundImage": false,
1339
+ "avatar": true,
1340
+ "autoAdvance": true,
1341
+ "dotPagination": true,
1342
+ "quoteMarks": true,
1343
+ "primaryButton": false,
1344
+ "secondaryButton": false,
1345
+ "badge": false
1346
+ },
1347
+ "imageRoles": [
1348
+ "author-avatar"
1349
+ ],
1350
+ "defaultValues": {
1351
+ "autoAdvance": true,
1352
+ "autoAdvanceIntervalMs": 5000
1353
+ }
1354
+ },
1355
+ "text-scroll": {
1356
+ "id": "text-scroll",
1357
+ "name": "Text Scroll",
1358
+ "component": "TextScroll",
1359
+ "category": "scroll-animation",
1360
+ "description": "Large headline paragraph whose words fade in one by one on scroll, a scrubbed word-reveal effect for mission statements and brand messages.",
1361
+ "purpose": "A full-width section rendering a single large headline paragraph whose words individually fade from dimmed (20% opacity) to fully opaque as the user scrolls past, producing a scrubbed word-reveal effect powered by GSAP ScrollTrigger. This block is designed for one emphatic block of copy — a mission statement or brand message — that earns attention through the scroll-tied reveal.",
1362
+ "keywords": [
1363
+ "text",
1364
+ "scroll",
1365
+ "reveal",
1366
+ "animation",
1367
+ "statement",
1368
+ "mission",
1369
+ "brand",
1370
+ "manifesto",
1371
+ "trading",
1372
+ "deriv"
1373
+ ],
1374
+ "sectionType": "scroll-animation",
1375
+ "requiredFields": [
1376
+ "text"
1377
+ ],
1378
+ "optionalFields": [],
1379
+ "variants": [
1380
+ "default"
1381
+ ],
1382
+ "recommendedPosition": 2,
1383
+ "layout": {
1384
+ "alignment": "center",
1385
+ "contentWidth": "medium",
1386
+ "background": false,
1387
+ "overlay": false
1388
+ },
1389
+ "supports": {
1390
+ "backgroundImage": false,
1391
+ "backgroundVideo": false,
1392
+ "foregroundImage": false,
1393
+ "scrollAnimation": true,
1394
+ "primaryButton": false,
1395
+ "secondaryButton": false,
1396
+ "badge": false,
1397
+ "avatar": false
1398
+ },
1399
+ "imageRoles": [],
1400
+ "defaultValues": {
1401
+ "initialWordOpacity": 0.2,
1402
+ "scrub": 2,
1403
+ "stagger": 0.1
1404
+ }
1405
+ }
1406
+ }