@deriv-com/dds-marketing 1.0.2 → 1.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.
Files changed (315) hide show
  1. package/.llm/components/awards.md +209 -0
  2. package/.llm/components/background.md +89 -40
  3. package/.llm/components/bottomsheet.md +5 -0
  4. package/.llm/components/comparisoncards.md +257 -0
  5. package/.llm/components/comparisontable.md +231 -0
  6. package/.llm/components/ctabanner.md +9 -12
  7. package/.llm/components/ctabannerslider.md +15 -2
  8. package/.llm/components/datatable.md +273 -0
  9. package/.llm/components/downloadbanner.md +283 -0
  10. package/.llm/components/featurecards.md +41 -3
  11. package/.llm/components/featurecardscarousel.md +311 -0
  12. package/.llm/components/featuresplit.md +5 -0
  13. package/.llm/components/featurestack.md +227 -0
  14. package/.llm/components/illustrationcard.md +2 -2
  15. package/.llm/components/illustrationscene.md +6 -10
  16. package/.llm/components/imagebanner.md +278 -0
  17. package/.llm/components/navbar.md +1 -1
  18. package/.llm/components/navbaritem.md +4 -0
  19. package/.llm/components/pageheader.md +4 -3
  20. package/.llm/components/paginationdots.md +6 -1
  21. package/.llm/components/producthero.md +35 -11
  22. package/.llm/components/resourcebanner.md +247 -0
  23. package/.llm/components/scenescroll.md +222 -0
  24. package/.llm/components/select.md +17 -0
  25. package/.llm/components/stats.md +219 -0
  26. package/.llm/components/steps.md +286 -0
  27. package/.llm/components/stickycards.md +251 -0
  28. package/.llm/components/tableheadercell.md +19 -0
  29. package/.llm/components/teamgrid.md +243 -0
  30. package/.llm/components/testimonialrow.md +5 -0
  31. package/.llm/components/testimonialslider.md +14 -1
  32. package/.llm/components/textarea.md +13 -0
  33. package/.llm/components/textinput.md +13 -0
  34. package/.llm/components/textscroll.md +187 -0
  35. package/.llm/components/tiers.md +227 -0
  36. package/.llm/digest/awards.md +45 -0
  37. package/.llm/digest/background.md +11 -10
  38. package/.llm/digest/bottomsheet.md +2 -0
  39. package/.llm/digest/comparisoncards.md +51 -0
  40. package/.llm/digest/comparisontable.md +53 -0
  41. package/.llm/digest/ctabanner.md +4 -4
  42. package/.llm/digest/ctabannerslider.md +4 -0
  43. package/.llm/digest/datatable.md +65 -0
  44. package/.llm/digest/downloadbanner.md +65 -0
  45. package/.llm/digest/featurecards.md +1 -1
  46. package/.llm/digest/featurecardscarousel.md +54 -0
  47. package/.llm/digest/featuresplit.md +1 -0
  48. package/.llm/digest/featurestack.md +48 -0
  49. package/.llm/digest/illustrationscene.md +2 -3
  50. package/.llm/digest/imagebanner.md +64 -0
  51. package/.llm/digest/navbaritem.md +1 -0
  52. package/.llm/digest/pageheader.md +2 -1
  53. package/.llm/digest/paginationdots.md +3 -1
  54. package/.llm/digest/producthero.md +4 -2
  55. package/.llm/digest/resourcebanner.md +53 -0
  56. package/.llm/digest/scenescroll.md +49 -0
  57. package/.llm/digest/select.md +5 -0
  58. package/.llm/digest/stats.md +46 -0
  59. package/.llm/digest/steps.md +55 -0
  60. package/.llm/digest/stickycards.md +52 -0
  61. package/.llm/digest/tableheadercell.md +4 -0
  62. package/.llm/digest/teamgrid.md +53 -0
  63. package/.llm/digest/testimonialrow.md +2 -0
  64. package/.llm/digest/testimonialslider.md +4 -0
  65. package/.llm/digest/textarea.md +4 -0
  66. package/.llm/digest/textinput.md +4 -0
  67. package/.llm/digest/textscroll.md +43 -0
  68. package/.llm/digest/tiers.md +50 -0
  69. package/.llm/index.md +19 -3
  70. package/.llm/tokens.md +26 -1
  71. package/AGENTS.md +17 -1
  72. package/dist/components/awards-data.d.ts +24 -0
  73. package/dist/components/awards-data.js +11 -0
  74. package/dist/components/block-image-data.d.ts +24 -0
  75. package/dist/components/block-image-data.js +9 -0
  76. package/dist/components/blocks/awards/Awards.css +134 -0
  77. package/dist/components/blocks/awards/Awards.d.ts +24 -0
  78. package/dist/components/blocks/awards/Awards.js +114 -0
  79. package/dist/components/blocks/awards/Awards.types.d.ts +31 -0
  80. package/dist/components/blocks/awards/Awards.types.js +16 -0
  81. package/dist/components/blocks/awards/awards-impl.css +222 -0
  82. package/dist/components/blocks/cards-of.d.ts +16 -0
  83. package/dist/components/blocks/cards-of.js +23 -0
  84. package/dist/components/blocks/comparison-cards/ComparisonCards.css +195 -0
  85. package/dist/components/blocks/comparison-cards/ComparisonCards.d.ts +24 -0
  86. package/dist/components/blocks/comparison-cards/ComparisonCards.js +75 -0
  87. package/dist/components/blocks/comparison-cards/ComparisonCards.types.d.ts +49 -0
  88. package/dist/components/blocks/comparison-cards/ComparisonCards.types.js +26 -0
  89. package/dist/components/blocks/comparison-cards/comparison-cards-impl.css +262 -0
  90. package/dist/components/blocks/comparison-table/ComparisonTable.css +111 -0
  91. package/dist/components/blocks/comparison-table/ComparisonTable.d.ts +25 -0
  92. package/dist/components/blocks/comparison-table/ComparisonTable.js +100 -0
  93. package/dist/components/blocks/comparison-table/ComparisonTable.types.d.ts +36 -0
  94. package/dist/components/blocks/comparison-table/ComparisonTable.types.js +15 -0
  95. package/dist/components/blocks/comparison-table/comparison-table-impl.css +143 -0
  96. package/dist/components/blocks/cta-banner/CtaBanner.css +1 -0
  97. package/dist/components/blocks/cta-banner/CtaBanner.js +2 -2
  98. package/dist/components/blocks/cta-banner/CtaBanner.types.d.ts +4 -3
  99. package/dist/components/blocks/cta-banner/CtaBanner.types.js +1 -1
  100. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.css +1 -0
  101. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.d.ts +1 -1
  102. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.js +6 -2
  103. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.d.ts +8 -0
  104. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.js +1 -1
  105. package/dist/components/blocks/data-table/DataTable.css +170 -0
  106. package/dist/components/blocks/data-table/DataTable.d.ts +29 -0
  107. package/dist/components/blocks/data-table/DataTable.js +84 -0
  108. package/dist/components/blocks/data-table/DataTable.types.d.ts +69 -0
  109. package/dist/components/blocks/data-table/DataTable.types.js +19 -0
  110. package/dist/components/blocks/data-table/data-table-impl.css +155 -0
  111. package/dist/components/blocks/download-banner/DownloadBanner.css +228 -0
  112. package/dist/components/blocks/download-banner/DownloadBanner.d.ts +28 -0
  113. package/dist/components/blocks/download-banner/DownloadBanner.js +75 -0
  114. package/dist/components/blocks/download-banner/DownloadBanner.types.d.ts +56 -0
  115. package/dist/components/blocks/download-banner/DownloadBanner.types.js +23 -0
  116. package/dist/components/blocks/download-banner/download-banner-impl.css +216 -0
  117. package/dist/components/blocks/faq-accordion/FaqAccordion.css +1 -0
  118. package/dist/components/blocks/faq-accordion/faq-accordion-impl.css +3 -7
  119. package/dist/components/blocks/feature-bullets/FeatureBullets.css +1 -0
  120. package/dist/components/blocks/feature-bullets/feature-bullets-impl.css +14 -1
  121. package/dist/components/blocks/feature-cards/FeatureCards.css +1 -0
  122. package/dist/components/blocks/feature-cards/FeatureCards.d.ts +2 -1
  123. package/dist/components/blocks/feature-cards/FeatureCards.js +4 -21
  124. package/dist/components/blocks/feature-cards/feature-cards-impl.css +10 -9
  125. package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.css +115 -0
  126. package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.d.ts +30 -0
  127. package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.js +160 -0
  128. package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.types.d.ts +52 -0
  129. package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.types.js +17 -0
  130. package/dist/components/blocks/feature-cards-carousel/feature-cards-carousel-impl.css +207 -0
  131. package/dist/components/blocks/feature-scroll/FeatureScroll.css +1 -0
  132. package/dist/components/blocks/feature-split/FeatureSplit.css +1 -0
  133. package/dist/components/blocks/feature-split/feature-split-impl.css +14 -1
  134. package/dist/components/blocks/feature-stack/FeatureStack.css +86 -0
  135. package/dist/components/blocks/feature-stack/FeatureStack.d.ts +19 -0
  136. package/dist/components/blocks/feature-stack/FeatureStack.js +27 -0
  137. package/dist/components/blocks/feature-stack/FeatureStack.types.d.ts +34 -0
  138. package/dist/components/blocks/feature-stack/FeatureStack.types.js +14 -0
  139. package/dist/components/blocks/feature-stack/feature-stack-impl.css +87 -0
  140. package/dist/components/blocks/image-banner/ImageBanner.css +133 -0
  141. package/dist/components/blocks/image-banner/ImageBanner.d.ts +32 -0
  142. package/dist/components/blocks/image-banner/ImageBanner.js +41 -0
  143. package/dist/components/blocks/image-banner/ImageBanner.types.d.ts +54 -0
  144. package/dist/components/blocks/image-banner/ImageBanner.types.js +14 -0
  145. package/dist/components/blocks/image-banner/image-banner-impl.css +281 -0
  146. package/dist/components/blocks/landing-hero/LandingHero.css +1 -0
  147. package/dist/components/blocks/logo-columns/LogoColumns.css +1 -0
  148. package/dist/components/blocks/logo-rows/LogoRows.css +1 -0
  149. package/dist/components/blocks/page-header/PageHeader.css +1 -0
  150. package/dist/components/blocks/page-header/PageHeader.js +2 -2
  151. package/dist/components/blocks/page-header/PageHeader.types.d.ts +4 -2
  152. package/dist/components/blocks/page-header/PageHeader.types.js +1 -1
  153. package/dist/components/blocks/page-header/page-header-impl.css +5 -3
  154. package/dist/components/blocks/product-hero/ProductHero.css +8 -3
  155. package/dist/components/blocks/product-hero/ProductHero.d.ts +1 -1
  156. package/dist/components/blocks/product-hero/ProductHero.js +5 -2
  157. package/dist/components/blocks/product-hero/ProductHero.types.d.ts +5 -1
  158. package/dist/components/blocks/product-hero/ProductHero.types.js +1 -0
  159. package/dist/components/blocks/product-hero/product-hero-impl.css +43 -12
  160. package/dist/components/blocks/resource-banner/ResourceBanner.css +106 -0
  161. package/dist/components/blocks/resource-banner/ResourceBanner.d.ts +32 -0
  162. package/dist/components/blocks/resource-banner/ResourceBanner.js +51 -0
  163. package/dist/components/blocks/resource-banner/ResourceBanner.types.d.ts +44 -0
  164. package/dist/components/blocks/resource-banner/ResourceBanner.types.js +14 -0
  165. package/dist/components/blocks/resource-banner/resource-banner-impl.css +69 -0
  166. package/dist/components/blocks/scene-scroll/SceneScroll.css +93 -0
  167. package/dist/components/blocks/scene-scroll/SceneScroll.d.ts +36 -0
  168. package/dist/components/blocks/scene-scroll/SceneScroll.js +54 -0
  169. package/dist/components/blocks/scene-scroll/SceneScroll.types.d.ts +32 -0
  170. package/dist/components/blocks/scene-scroll/SceneScroll.types.js +15 -0
  171. package/dist/components/blocks/scene-scroll/scene-scroll-impl.css +275 -0
  172. package/dist/components/blocks/stats/Stats.css +139 -0
  173. package/dist/components/blocks/stats/Stats.d.ts +24 -0
  174. package/dist/components/blocks/stats/Stats.js +120 -0
  175. package/dist/components/blocks/stats/Stats.types.d.ts +36 -0
  176. package/dist/components/blocks/stats/Stats.types.js +19 -0
  177. package/dist/components/blocks/stats/stats-count.d.ts +34 -0
  178. package/dist/components/blocks/stats/stats-count.js +61 -0
  179. package/dist/components/blocks/stats/stats-impl.css +284 -0
  180. package/dist/components/blocks/stats/use-wheel.d.ts +37 -0
  181. package/dist/components/blocks/stats/use-wheel.js +126 -0
  182. package/dist/components/blocks/steps/Steps.css +202 -0
  183. package/dist/components/blocks/steps/Steps.d.ts +32 -0
  184. package/dist/components/blocks/steps/Steps.js +65 -0
  185. package/dist/components/blocks/steps/Steps.types.d.ts +48 -0
  186. package/dist/components/blocks/steps/Steps.types.js +21 -0
  187. package/dist/components/blocks/steps/steps-impl.css +216 -0
  188. package/dist/components/blocks/steps/use-turn.d.ts +33 -0
  189. package/dist/components/blocks/steps/use-turn.js +75 -0
  190. package/dist/components/blocks/sticky-cards/StickyCards.css +154 -0
  191. package/dist/components/blocks/sticky-cards/StickyCards.d.ts +35 -0
  192. package/dist/components/blocks/sticky-cards/StickyCards.js +153 -0
  193. package/dist/components/blocks/sticky-cards/StickyCards.types.d.ts +43 -0
  194. package/dist/components/blocks/sticky-cards/StickyCards.types.js +18 -0
  195. package/dist/components/blocks/sticky-cards/sticky-cards-impl.css +393 -0
  196. package/dist/components/blocks/team-grid/TeamGrid.css +159 -0
  197. package/dist/components/blocks/team-grid/TeamGrid.d.ts +28 -0
  198. package/dist/components/blocks/team-grid/TeamGrid.js +74 -0
  199. package/dist/components/blocks/team-grid/TeamGrid.types.d.ts +51 -0
  200. package/dist/components/blocks/team-grid/TeamGrid.types.js +20 -0
  201. package/dist/components/blocks/team-grid/team-grid-impl.css +129 -0
  202. package/dist/components/blocks/testimonial-row/TestimonialRow.css +1 -0
  203. package/dist/components/blocks/testimonial-row/TestimonialRow.d.ts +1 -1
  204. package/dist/components/blocks/testimonial-row/TestimonialRow.js +4 -3
  205. package/dist/components/blocks/testimonial-row/TestimonialRow.types.d.ts +3 -0
  206. package/dist/components/blocks/testimonial-row/TestimonialRow.types.js +1 -1
  207. package/dist/components/blocks/testimonial-row/testimonial-row-impl.css +8 -0
  208. package/dist/components/blocks/testimonial-slider/TestimonialSlider.css +1 -0
  209. package/dist/components/blocks/testimonial-slider/TestimonialSlider.d.ts +1 -1
  210. package/dist/components/blocks/testimonial-slider/TestimonialSlider.js +2 -2
  211. package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.d.ts +8 -0
  212. package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.js +1 -1
  213. package/dist/components/blocks/text-scroll/TextScroll.css +53 -0
  214. package/dist/components/blocks/text-scroll/TextScroll.d.ts +5 -0
  215. package/dist/components/blocks/text-scroll/TextScroll.js +71 -0
  216. package/dist/components/blocks/text-scroll/TextScroll.types.d.ts +22 -0
  217. package/dist/components/blocks/text-scroll/TextScroll.types.js +10 -0
  218. package/dist/components/blocks/text-scroll/text-scroll-impl.css +115 -0
  219. package/dist/components/blocks/tiers/Tiers.css +233 -0
  220. package/dist/components/blocks/tiers/Tiers.d.ts +32 -0
  221. package/dist/components/blocks/tiers/Tiers.js +68 -0
  222. package/dist/components/blocks/tiers/Tiers.types.d.ts +45 -0
  223. package/dist/components/blocks/tiers/Tiers.types.js +25 -0
  224. package/dist/components/blocks/tiers/tiers-impl.css +185 -0
  225. package/dist/components/blocks/use-rotation.d.ts +12 -2
  226. package/dist/components/blocks/use-rotation.js +6 -28
  227. package/dist/components/comparison-cards-data.d.ts +59 -0
  228. package/dist/components/comparison-cards-data.js +12 -0
  229. package/dist/components/comparison-table-data.d.ts +39 -0
  230. package/dist/components/comparison-table-data.js +11 -0
  231. package/dist/components/core/accordion-item/AccordionItem.css +1 -5
  232. package/dist/components/core/background/Background.css +23 -0
  233. package/dist/components/core/background/Background.d.ts +10 -4
  234. package/dist/components/core/background/Background.js +16 -7
  235. package/dist/components/core/background/Background.types.d.ts +11 -8
  236. package/dist/components/core/background/Background.types.js +3 -1
  237. package/dist/components/core/background/background-impl.css +334 -1
  238. package/dist/components/core/background/halftone.d.ts +11 -0
  239. package/dist/components/core/background/halftone.js +43 -3
  240. package/dist/components/core/background/patterns.d.ts +66 -0
  241. package/dist/components/core/background/patterns.js +244 -0
  242. package/dist/components/core/background/shader.d.ts +44 -0
  243. package/dist/components/core/background/shader.js +307 -0
  244. package/dist/components/core/background/use-shader.d.ts +11 -0
  245. package/dist/components/core/background/use-shader.js +25 -0
  246. package/dist/components/core/background/use-spotlight.d.ts +2 -1
  247. package/dist/components/core/background/use-spotlight.js +9 -1
  248. package/dist/components/core/bottom-sheet/BottomSheet.js +2 -2
  249. package/dist/components/core/bottom-sheet/BottomSheet.types.d.ts +3 -1
  250. package/dist/components/core/breadcrumb/Breadcrumb.d.ts +1 -0
  251. package/dist/components/core/breadcrumb/Breadcrumb.js +1 -0
  252. package/dist/components/core/breadcrumb/breadcrumb-impl.css +11 -0
  253. package/dist/components/core/button/button-impl.css +14 -1
  254. package/dist/components/core/illustration-card/IllustrationCard.js +1 -1
  255. package/dist/components/core/illustration-card/illustration-card-impl.css +20 -0
  256. package/dist/components/core/illustration-scene/IllustrationScene.css +4 -7
  257. package/dist/components/core/illustration-scene/IllustrationScene.types.d.ts +2 -3
  258. package/dist/components/core/illustration-scene/illustration-scene-impl.css +7 -1
  259. package/dist/components/core/link/Link.js +7 -3
  260. package/dist/components/core/link/link-impl.css +29 -2
  261. package/dist/components/core/navbar/Navbar.css +2 -2
  262. package/dist/components/core/navbar/Navbar.types.d.ts +1 -1
  263. package/dist/components/core/navbar-item/NavbarItem.d.ts +2 -1
  264. package/dist/components/core/navbar-item/NavbarItem.js +3 -10
  265. package/dist/components/core/navbar-item/NavbarItem.types.d.ts +4 -1
  266. package/dist/components/core/navbar-item/NavbarItem.types.js +1 -1
  267. package/dist/components/core/navbar-item/navbar-item-impl.css +10 -0
  268. package/dist/components/core/navbar-menu/navbar-menu-impl.css +9 -0
  269. package/dist/components/core/navbar-switcher/navbar-switcher-impl.css +19 -0
  270. package/dist/components/core/pagination/Pagination.js +1 -1
  271. package/dist/components/core/pagination/pagination-impl.css +9 -0
  272. package/dist/components/core/pagination-dots/PaginationDots.d.ts +1 -1
  273. package/dist/components/core/pagination-dots/PaginationDots.js +3 -3
  274. package/dist/components/core/pagination-dots/PaginationDots.types.d.ts +3 -1
  275. package/dist/components/core/segmented-control/SegmentedControl.css +4 -3
  276. package/dist/components/core/segmented-control/SegmentedControl.js +17 -3
  277. package/dist/components/core/segmented-control-item/SegmentedControlItem.css +2 -1
  278. package/dist/components/core/select/Select.js +3 -3
  279. package/dist/components/core/select/Select.types.d.ts +11 -1
  280. package/dist/components/core/select/Select.types.js +1 -1
  281. package/dist/components/core/tab-list/TabList.js +9 -1
  282. package/dist/components/core/table-header-cell/TableHeaderCell.d.ts +1 -1
  283. package/dist/components/core/table-header-cell/TableHeaderCell.js +5 -2
  284. package/dist/components/core/table-header-cell/TableHeaderCell.types.d.ts +7 -1
  285. package/dist/components/core/table-header-cell/TableHeaderCell.types.js +1 -1
  286. package/dist/components/core/text-area/TextArea.d.ts +1 -1
  287. package/dist/components/core/text-area/TextArea.js +2 -2
  288. package/dist/components/core/text-area/TextArea.types.d.ts +9 -1
  289. package/dist/components/core/text-area/TextArea.types.js +1 -1
  290. package/dist/components/core/text-input/TextInput.d.ts +1 -1
  291. package/dist/components/core/text-input/TextInput.js +2 -2
  292. package/dist/components/core/text-input/TextInput.types.d.ts +9 -1
  293. package/dist/components/core/text-input/TextInput.types.js +1 -1
  294. package/dist/components/data-table-data.d.ts +33 -0
  295. package/dist/components/data-table-data.js +12 -0
  296. package/dist/components/download-banner-data.d.ts +52 -0
  297. package/dist/components/download-banner-data.js +11 -0
  298. package/dist/components/index.d.ts +45 -0
  299. package/dist/components/index.js +32 -0
  300. package/dist/components/resource-banner-data.d.ts +34 -0
  301. package/dist/components/resource-banner-data.js +13 -0
  302. package/dist/components/scene-scroll-data.d.ts +24 -0
  303. package/dist/components/scene-scroll-data.js +9 -0
  304. package/dist/components/stats-data.d.ts +28 -0
  305. package/dist/components/stats-data.js +11 -0
  306. package/dist/components/steps-data.d.ts +38 -0
  307. package/dist/components/steps-data.js +13 -0
  308. package/dist/components/sticky-cards-data.d.ts +43 -0
  309. package/dist/components/sticky-cards-data.js +12 -0
  310. package/dist/components/team-grid-data.d.ts +38 -0
  311. package/dist/components/team-grid-data.js +11 -0
  312. package/dist/components/tiers-data.d.ts +47 -0
  313. package/dist/components/tiers-data.js +13 -0
  314. package/dist/marketing.css +77 -28
  315. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The resources a ResourceBanner points at.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` and `banner-data.ts` are: a
5
+ * block whose content is a list is one whose consumer builds a value before passing it.
6
+ *
7
+ * Records rather than a Link per resource, because a resource is words and a destination — nothing
8
+ * in it is an element a page composes — and every one is drawn the same way. A stack whose rows
9
+ * could each bring their own variant, tone or mark is a stack that stops reading as one list, and
10
+ * what a link has to say about leaving the site or starting a download is the block's to say, in
11
+ * the same words on every row.
12
+ */
13
+ /** One resource in a ResourceBanner: what it is called, and where it is. */
14
+ export interface ResourceBannerLink {
15
+ /**
16
+ * The name of the guide, policy or page, as the reader would look for it: "Terms and
17
+ * conditions", "Risk disclosure". The stack is read as a list, so each label has to make sense
18
+ * on its own — never "Read more" or "Click here".
19
+ */
20
+ label: string;
21
+ /** Where it is, as a URL. */
22
+ href: string;
23
+ /**
24
+ * The destination is off this site. It opens in a new tab, carries Link's up-right mark, and its
25
+ * accessible name says so in the block's `externalLabel`. Absent, the link opens in place.
26
+ */
27
+ external?: boolean;
28
+ /**
29
+ * The destination is a file to save rather than a page to read — a PDF of a policy, a form. The
30
+ * anchor takes `download`, the row is marked with a file rather than an arrow, and its accessible
31
+ * name says so in the block's `downloadLabel`.
32
+ */
33
+ download?: boolean;
34
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The resources a ResourceBanner points at.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` and `banner-data.ts` are: a
5
+ * block whose content is a list is one whose consumer builds a value before passing it.
6
+ *
7
+ * Records rather than a Link per resource, because a resource is words and a destination — nothing
8
+ * in it is an element a page composes — and every one is drawn the same way. A stack whose rows
9
+ * could each bring their own variant, tone or mark is a stack that stops reading as one list, and
10
+ * what a link has to say about leaving the site or starting a download is the block's to say, in
11
+ * the same words on every row.
12
+ */
13
+ export {};
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The two scenes a SceneScroll changes between.
3
+ *
4
+ * Exported from the package for the reason the other data shapes are: the page builds the value and
5
+ * hands it over, and building it without the type means writing the shape out twice. A record
6
+ * rather than a node, because the block draws both the photograph and the words itself — it has to,
7
+ * to stack one scene over the other and change them over as the reader scrolls.
8
+ */
9
+ import type { BlockImage } from './block-image-data.js';
10
+ /** One scene: the photograph that fills the band, and the words set over it. */
11
+ export interface SceneScrollScene {
12
+ /**
13
+ * What the scene says, in a few words. Drawn as a heading: the first scene's names the section,
14
+ * and the second's sits one level under it.
15
+ */
16
+ title: string;
17
+ /** A line under the title saying what it means for the reader. A sentence or two, not a paragraph. */
18
+ description?: string;
19
+ /**
20
+ * The photograph filling the band behind the words, cropped to fill it. Usually decoration, so
21
+ * `alt` is empty; a photograph that shows something the words do not say is described.
22
+ */
23
+ image: BlockImage;
24
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The two scenes a SceneScroll changes between.
3
+ *
4
+ * Exported from the package for the reason the other data shapes are: the page builds the value and
5
+ * hands it over, and building it without the type means writing the shape out twice. A record
6
+ * rather than a node, because the block draws both the photograph and the words itself — it has to,
7
+ * to stack one scene over the other and change them over as the reader scrolls.
8
+ */
9
+ export {};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The key numbers a Stats section sets in a row.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` and `scroll-data.ts` are: a
5
+ * block whose content is a list is one whose consumer builds a value before passing it.
6
+ *
7
+ * A record rather than a component per figure, because a figure is a number and the words that say
8
+ * what it counts — nothing in it is an element a page composes — and a set of them is what a CMS
9
+ * or a facts sheet hands over.
10
+ */
11
+ /** One key number in a Stats section: the figure, and what it counts. */
12
+ export interface StatsFigure {
13
+ /**
14
+ * The figure, written exactly as it is to be read: '3M+', '$5', '250+', '24/7', '1.2B'.
15
+ *
16
+ * A string rather than a number, because the way it is written is the claim — the currency sign,
17
+ * the abbreviation, the plus that says "at least". It is drawn as given, in the page's first
18
+ * HTML and to assistive technology alike. Where it holds one number, that number counts up from
19
+ * nought as the section arrives, keeping whatever is written either side of it; where it holds
20
+ * none, or more than one — '24/7' is a phrase, not a quantity — it simply shows.
21
+ */
22
+ value: string;
23
+ /**
24
+ * What the figure counts, in a few words under it: 'Traders worldwide', 'Minimum deposit'.
25
+ * Sentence case, and short enough that a row of them reads as a row.
26
+ */
27
+ label: string;
28
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The key numbers a Stats section sets in a row.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` and `scroll-data.ts` are: a
5
+ * block whose content is a list is one whose consumer builds a value before passing it.
6
+ *
7
+ * A record rather than a component per figure, because a figure is a number and the words that say
8
+ * what it counts — nothing in it is an element a page composes — and a set of them is what a CMS
9
+ * or a facts sheet hands over.
10
+ */
11
+ export {};
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The steps a Steps section numbers down its list.
3
+ *
4
+ * Exported from the package for the reason `scroll-data.ts` and `testimonial-slider-data.ts` are: a
5
+ * block whose content is a list is one whose consumer builds a value before passing it, and building
6
+ * it without the type means writing the shape out a second time.
7
+ *
8
+ * A record rather than a component per step, because a step is a name and a sentence — nothing in it
9
+ * is an element a page composes — and the number in front of it is the section's to draw, not the
10
+ * page's. A set that arrives as data can be mapped from a CMS and reordered by the page that holds
11
+ * it, and the numbers follow the order without anybody retyping them.
12
+ */
13
+ import type { BlockImage } from './block-image-data.js';
14
+ /** One step in a Steps section: what the reader does, and what it involves. */
15
+ export interface StepsItem {
16
+ /**
17
+ * What the reader does at this step, as a short imperative — 'Open an account', 'Fund it'.
18
+ *
19
+ * It is what a reader scanning the list takes in, so a verb and its object beats a sentence. Drawn
20
+ * as a heading, which is what lets a screen reader move from one step to the next.
21
+ */
22
+ title: string;
23
+ /**
24
+ * What the step involves, in a sentence.
25
+ *
26
+ * Under about two hundred characters: past that a list of four runs longer than the square beside
27
+ * it and the two halves stop lining up, which is the one thing a split has to get right.
28
+ */
29
+ description: string;
30
+ /**
31
+ * A picture of this step — a screenshot of the screen it happens on.
32
+ *
33
+ * Given on every step, the picture beside the list is the current step's: the first while the
34
+ * list is still, and each in turn under `autoplay`. Decoration, as the section's one picture is:
35
+ * what the step says is its title and its line.
36
+ */
37
+ image?: BlockImage;
38
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The steps a Steps section numbers down its list.
3
+ *
4
+ * Exported from the package for the reason `scroll-data.ts` and `testimonial-slider-data.ts` are: a
5
+ * block whose content is a list is one whose consumer builds a value before passing it, and building
6
+ * it without the type means writing the shape out a second time.
7
+ *
8
+ * A record rather than a component per step, because a step is a name and a sentence — nothing in it
9
+ * is an element a page composes — and the number in front of it is the section's to draw, not the
10
+ * page's. A set that arrives as data can be mapped from a CMS and reordered by the page that holds
11
+ * it, and the numbers follow the order without anybody retyping them.
12
+ */
13
+ export {};
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The cards a StickyCards section piles up as the page scrolls.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` is: a block whose content is a
5
+ * list is one whose consumer builds a value before passing it.
6
+ *
7
+ * Records rather than a component per card, because a card here is words, a picture and a fill —
8
+ * nothing in it is an element a page composes — and a list of markets or steps is what a content
9
+ * system hands over. The one thing a record cannot carry, an animation the page plays itself, comes
10
+ * through the block's `media` callback instead, so the records stay plain data.
11
+ */
12
+ import type { BlockImage } from './block-image-data.js';
13
+ /** One card in a StickyCards pile: what it is called, what it says, and what it shows. */
14
+ export interface StickyCardsItem {
15
+ /** What the card is about, in a few words — "Forex", "Sign up". It is the card's heading. */
16
+ title: string;
17
+ /**
18
+ * What the title means, a sentence or two. Kept to about the same length across the set: the
19
+ * cards are drawn the height of the tallest, so one long description makes every card taller.
20
+ */
21
+ description: string;
22
+ /**
23
+ * The card's picture. In `compact` it fills the card's panel — a landscape container beside the
24
+ * words from the fold, under them on a phone — cropped to fill it. In `feature` it is half the
25
+ * card, running to the card's edges; give one to every card there. `alt` empty when the title already says what it
26
+ * shows. A picture the `media` callback replaces is not drawn.
27
+ */
28
+ image?: BlockImage;
29
+ /**
30
+ * A photograph behind the whole card, in the `compact` layout: drawn under an 72% wash of the
31
+ * card's own fill, so the words keep their contrast and the picture shows through as texture — the
32
+ * reference design's market cards. Not drawn in `feature`, where the picture is half the card.
33
+ * Usually decorative: `alt` empty.
34
+ */
35
+ background?: BlockImage;
36
+ /**
37
+ * The card's fill — Card's own variants, the three that are opaque and keep their colour in both
38
+ * themes, so a card laid over another hides it in either: `accent-strong` the dark card, the
39
+ * default; `accent` the coral one, for a title and a short sentence; `surface-light` the light
40
+ * one. Alternate them so each edge in the pile reads apart from the next.
41
+ */
42
+ variant?: 'accent-strong' | 'accent' | 'surface-light';
43
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The cards a StickyCards section piles up as the page scrolls.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` is: a block whose content is a
5
+ * list is one whose consumer builds a value before passing it.
6
+ *
7
+ * Records rather than a component per card, because a card here is words, a picture and a fill —
8
+ * nothing in it is an element a page composes — and a list of markets or steps is what a content
9
+ * system hands over. The one thing a record cannot carry, an animation the page plays itself, comes
10
+ * through the block's `media` callback instead, so the records stay plain data.
11
+ */
12
+ export {};
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The people a TeamGrid section sets out in its grid.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` is: a block whose content is a
5
+ * list is one whose consumer builds a value before passing it.
6
+ *
7
+ * Records rather than a component per person, because a person here is a picture, a name, a role
8
+ * and perhaps a link — nothing in it is an element a page composes — and a team page's list is
9
+ * what a content system hands over.
10
+ */
11
+ /** One person in a TeamGrid grid: who they are, what they do, and their picture. */
12
+ export interface TeamGridMember {
13
+ /** Their full name, as they would write it. It is the card's heading. */
14
+ name: string;
15
+ /**
16
+ * What they do, in a few words — "Chief Executive Officer". Kept short and in one style across the
17
+ * set: the roles are read down a column, and one that runs to a sentence breaks the line.
18
+ */
19
+ role: string;
20
+ /**
21
+ * Their picture. `alt` is what a screen reader hears for it, and an empty string is the usual
22
+ * answer: the name is the heading right under it, so a portrait alt-texted with the name is the
23
+ * name read twice. Describe the picture only when it shows something the name does not.
24
+ */
25
+ image: {
26
+ src: string;
27
+ alt: string;
28
+ };
29
+ /**
30
+ * A profile of theirs elsewhere — "LinkedIn" and its URL. `label` is the visible word; the link is
31
+ * named for the person as well, so a list of links heard on its own says whose each is. It opens in
32
+ * a new tab, the profile being on a site the page does not own.
33
+ */
34
+ profile?: {
35
+ href: string;
36
+ label: string;
37
+ };
38
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The people a TeamGrid section sets out in its grid.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` is: a block whose content is a
5
+ * list is one whose consumer builds a value before passing it.
6
+ *
7
+ * Records rather than a component per person, because a person here is a picture, a name, a role
8
+ * and perhaps a link — nothing in it is an element a page composes — and a team page's list is
9
+ * what a content system hands over.
10
+ */
11
+ export {};
@@ -0,0 +1,47 @@
1
+ /**
2
+ * The tiers a Tiers section lays out in order, lowest first.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` and `logo-data.ts` are: a block
5
+ * whose content is a list is one whose consumer builds a value before passing it, and building it
6
+ * without the type means writing the shape out a second time.
7
+ *
8
+ * A record rather than a component per tier, because a tier is a name, a stage, a benefit and the
9
+ * bar a partner clears to reach it — nothing in it is an element a page composes. The order is the
10
+ * argument, and it is the list's: a set that arrives as data can be mapped from a partner programme's
11
+ * own configuration, and the progression follows it without anybody restating which tier is higher.
12
+ */
13
+ /** One tier in a Tiers section: its medal, its name and stage, what it gives and what it asks. */
14
+ export interface TiersItem {
15
+ /**
16
+ * The tier's name, one word — 'Bronze', 'Gold'. Drawn as a heading, which is what lets a screen
17
+ * reader move from one tier to the next.
18
+ */
19
+ name: string;
20
+ /**
21
+ * The stage the tier stands for, as a single verb — 'Launch', 'Grow', 'Scale', 'Lead'. Read with
22
+ * the name as its second line, so a verb says what a partner at this tier is doing rather than
23
+ * restating the rank.
24
+ */
25
+ stage: string;
26
+ /**
27
+ * The medal drawn over the name, as a path or a URL. A square picture with a transparent ground —
28
+ * a matching set across the tiers, so the progression reads in the art as well as the words.
29
+ *
30
+ * Decoration: it is drawn with empty alternative text, because the name under it is the heading a
31
+ * reader hears, and a medal announced as 'Bronze' over a heading reading 'Bronze' says it twice.
32
+ */
33
+ medal: string;
34
+ /**
35
+ * The headline on the benefit card — 'Commission + 4% bonus'. What a partner at this tier gets, in
36
+ * the fewest words that state it.
37
+ */
38
+ benefit: string;
39
+ /** What the benefit means, in a sentence under the headline. */
40
+ description: string;
41
+ /**
42
+ * What it takes to reach the tier, under the card — '3-month average commission:\n$500+'. A line
43
+ * break in it is kept, so the measure and the amount can sit on lines of their own. Absent for the
44
+ * entry tier, which a partner holds from the day they join.
45
+ */
46
+ qualification?: string;
47
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The tiers a Tiers section lays out in order, lowest first.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` and `logo-data.ts` are: a block
5
+ * whose content is a list is one whose consumer builds a value before passing it, and building it
6
+ * without the type means writing the shape out a second time.
7
+ *
8
+ * A record rather than a component per tier, because a tier is a name, a stage, a benefit and the
9
+ * bar a partner clears to reach it — nothing in it is an element a page composes. The order is the
10
+ * argument, and it is the list's: a set that arrives as data can be mapped from a partner programme's
11
+ * own configuration, and the progression follows it without anybody restating which tier is higher.
12
+ */
13
+ export {};
@@ -25,6 +25,7 @@
25
25
  --color-bg-active: #00000014;
26
26
  --color-bg-band-subtle: #F4F5F6;
27
27
  --color-bg-brand-active: #D2002A;
28
+ --color-bg-brand-deep: #3F0000;
28
29
  --color-bg-brand-hover: #E82A3D;
29
30
  --color-bg-brand-strong: #0C0C0C;
30
31
  --color-bg-brand-subtle: #FFE4E1;
@@ -42,6 +43,7 @@
42
43
  --color-bg-page: #FFFFFF;
43
44
  --color-bg-readonly: #0000001A;
44
45
  --color-bg-selected: #00000014;
46
+ --color-bg-store-badge: #000000;
45
47
  --color-bg-strong-on-brand: #0C0C0C;
46
48
  --color-bg-strong: #0C0C0C;
47
49
  --color-bg-subtle-on-brand-strong: #FFFFFF0F;
@@ -147,6 +149,11 @@
147
149
  --font-field-label-md-weight: 500;
148
150
  --font-figure-family: var(--font-family-sans);
149
151
  --font-figure-letter-spacing: -0.015em;
152
+ --font-figure-lg-family: var(--font-family-sans);
153
+ --font-figure-lg-letter-spacing: -0.015em;
154
+ --font-figure-lg-line-height: 1.125;
155
+ --font-figure-lg-size: 64px;
156
+ --font-figure-lg-weight: 600;
150
157
  --font-figure-line-height: 1.125;
151
158
  --font-figure-size: 56px;
152
159
  --font-figure-weight: 600;
@@ -221,6 +228,7 @@
221
228
  --motion-duration-drift: 10000ms;
222
229
  --motion-duration-dwell: 5000ms;
223
230
  --motion-duration-fast: 100ms;
231
+ --motion-duration-hold: 1000ms;
224
232
  --motion-duration-instant: 0ms;
225
233
  --motion-duration-media-hover: 400ms;
226
234
  --motion-duration-normal: 200ms;
@@ -230,7 +238,9 @@
230
238
  --motion-duration-slow: 300ms;
231
239
  --motion-duration-spinner: 500ms;
232
240
  --motion-duration-stagger: 100ms;
241
+ --motion-duration-ticker: 4000ms;
233
242
  --motion-duration-trail: 500ms;
243
+ --motion-duration-turn: 700ms;
234
244
  --motion-easing-enter: cubic-bezier(0.33, 1, 0.68, 1);
235
245
  --motion-easing-exit: cubic-bezier(0.32, 0, 0.67, 0);
236
246
  --motion-easing-media-hover: cubic-bezier(0.65, 0, 0.35, 1);
@@ -242,6 +252,7 @@
242
252
  --motion-scale-enter: 0.96;
243
253
  --motion-scale-hover: 1.02;
244
254
  --motion-scale-media-hover: 1.04;
255
+ --motion-scale-pile-covered: 0.96;
245
256
  --motion-translate-enter: 0 100%;
246
257
  --motion-translate-hover: 0 -4px;
247
258
  --motion-translate-reveal: 0 24px;
@@ -276,14 +287,21 @@
276
287
  --size-control-lg: 48px;
277
288
  --size-control-md: 40px;
278
289
  --size-control-sm: 32px;
290
+ --size-data-table-search: 320px;
279
291
  --size-dot-current: 24px;
280
292
  --size-dot-diameter: 8px;
293
+ --size-download-banner-badge: 160px;
294
+ --size-download-banner-media: 320px;
295
+ --size-download-banner-qr: 128px;
296
+ --size-feature-cards-carousel-card: 400px;
297
+ --size-feature-stack-media: 960px;
281
298
  --size-grid-track-lg: 320px;
282
299
  --size-grid-track-md: 240px;
283
300
  --size-grid-track-sm: 160px;
284
301
  --size-halftone-dot: 6px;
285
302
  --size-halftone-pitch: 20px;
286
303
  --size-heading-group-max: 846px;
304
+ --size-image-banner-card: 480px;
287
305
  --size-logo-columns-height: 640px;
288
306
  --size-logo-rows-tile: 192px;
289
307
  --size-measure-description: 60ch;
@@ -295,6 +313,7 @@
295
313
  --size-menu-max: 224px;
296
314
  --size-menu-panel-max: 846px;
297
315
  --size-menu-panel-min: 320px;
316
+ --size-mesh-blur: 48px;
298
317
  --size-review-card-min: 320px;
299
318
  --size-rings-pitch: 64px;
300
319
  --size-rings-spotlight: 128px;
@@ -310,9 +329,13 @@
310
329
  --size-spinner-stroke-lg: 4px;
311
330
  --size-spinner-stroke-md: 3px;
312
331
  --size-spinner-stroke-sm: 2px;
332
+ --size-sticky-cards-compact-max: 846px;
333
+ --size-sticky-cards-compact-min: 240px;
334
+ --size-sticky-cards-feature-min: 560px;
313
335
  --size-switcher-panel-width: 640px;
314
336
  --size-target-min: 24px;
315
337
  --size-testimonial-art: 192px;
338
+ --size-tiers-medal: 64px;
316
339
  --size-tooltip-max: 224px;
317
340
  --space-actions-gap: 8px;
318
341
  --space-control-lg: 24px;
@@ -343,6 +366,7 @@
343
366
  --space-inset-sm: 12px;
344
367
  --space-inset-xl: 32px;
345
368
  --space-inset-xs: 8px;
369
+ --space-pile-peek: 16px;
346
370
  --space-section-compact: 48px;
347
371
  --space-section-default: 112px;
348
372
  }
@@ -368,6 +392,7 @@
368
392
  --color-bg-active: #FFFFFF14;
369
393
  --color-bg-band-subtle: #FFFFFF0F;
370
394
  --color-bg-brand-active: #D2002A;
395
+ --color-bg-brand-deep: #3F0000;
371
396
  --color-bg-brand-hover: #E82A3D;
372
397
  --color-bg-brand-strong: #0C0C0C;
373
398
  --color-bg-brand-subtle: #3F0000;
@@ -385,6 +410,7 @@
385
410
  --color-bg-page: #0C0C0C;
386
411
  --color-bg-readonly: #FFFFFF1A;
387
412
  --color-bg-selected: #FFFFFF14;
413
+ --color-bg-store-badge: #000000;
388
414
  --color-bg-strong-on-brand: #0C0C0C;
389
415
  --color-bg-strong: #FFFFFF;
390
416
  --color-bg-subtle-on-brand-strong: #FFFFFF0F;
@@ -471,7 +497,6 @@
471
497
  --font-eyebrow-lg-family: var(--font-family-sans);
472
498
  --font-eyebrow-lg-letter-spacing: 0em;
473
499
  --font-eyebrow-lg-line-height: 1.25;
474
- --font-eyebrow-lg-size: 24px;
475
500
  --font-eyebrow-lg-weight: 600;
476
501
  --font-eyebrow-sm-family: var(--font-family-sans);
477
502
  --font-eyebrow-sm-letter-spacing: 0.025em;
@@ -490,33 +515,25 @@
490
515
  --font-field-label-md-weight: 500;
491
516
  --font-figure-family: var(--font-family-sans);
492
517
  --font-figure-letter-spacing: -0.015em;
493
- --font-figure-line-height: 1.125;
494
- --font-figure-size: 56px;
518
+ --font-figure-lg-family: var(--font-family-sans);
519
+ --font-figure-lg-letter-spacing: -0.015em;
520
+ --font-figure-lg-line-height: 1.125;
521
+ --font-figure-lg-size: 64px;
522
+ --font-figure-lg-weight: 600;
495
523
  --font-figure-weight: 600;
496
524
  --font-h1-family: var(--font-family-sans);
497
- --font-h1-letter-spacing: -0.025em;
498
525
  --font-h1-line-height: 1.125;
499
- --font-h1-size: 80px;
500
526
  --font-h1-weight: 800;
501
527
  --font-h2-family: var(--font-family-sans);
502
528
  --font-h2-letter-spacing: -0.015em;
503
- --font-h2-line-height: 1.125;
504
- --font-h2-size: 56px;
505
529
  --font-h2-weight: 800;
506
530
  --font-h3-family: var(--font-family-sans);
507
- --font-h3-letter-spacing: -0.015em;
508
- --font-h3-line-height: 1.125;
509
- --font-h3-size: 48px;
510
531
  --font-h3-weight: 800;
511
532
  --font-h4-family: var(--font-family-sans);
512
- --font-h4-letter-spacing: -0.015em;
513
533
  --font-h4-line-height: 1.25;
514
- --font-h4-size: 36px;
515
534
  --font-h4-weight: 700;
516
535
  --font-h5-family: var(--font-family-sans);
517
536
  --font-h5-letter-spacing: -0.005em;
518
- --font-h5-line-height: 1.25;
519
- --font-h5-size: 24px;
520
537
  --font-h5-weight: 700;
521
538
  --font-label-lg-family: var(--font-family-sans);
522
539
  --font-label-lg-letter-spacing: 0em;
@@ -564,6 +581,7 @@
564
581
  --motion-duration-drift: 10000ms;
565
582
  --motion-duration-dwell: 5000ms;
566
583
  --motion-duration-fast: 100ms;
584
+ --motion-duration-hold: 1000ms;
567
585
  --motion-duration-instant: 0ms;
568
586
  --motion-duration-media-hover: 400ms;
569
587
  --motion-duration-normal: 200ms;
@@ -573,7 +591,9 @@
573
591
  --motion-duration-slow: 300ms;
574
592
  --motion-duration-spinner: 500ms;
575
593
  --motion-duration-stagger: 100ms;
594
+ --motion-duration-ticker: 4000ms;
576
595
  --motion-duration-trail: 500ms;
596
+ --motion-duration-turn: 700ms;
577
597
  --motion-easing-enter: cubic-bezier(0.33, 1, 0.68, 1);
578
598
  --motion-easing-exit: cubic-bezier(0.32, 0, 0.67, 0);
579
599
  --motion-easing-media-hover: cubic-bezier(0.65, 0, 0.35, 1);
@@ -585,6 +605,7 @@
585
605
  --motion-scale-enter: 0.96;
586
606
  --motion-scale-hover: 1.02;
587
607
  --motion-scale-media-hover: 1.04;
608
+ --motion-scale-pile-covered: 0.96;
588
609
  --motion-translate-enter: 0 100%;
589
610
  --motion-translate-hover: 0 -4px;
590
611
  --motion-translate-reveal: 0 24px;
@@ -619,14 +640,21 @@
619
640
  --size-control-lg: 48px;
620
641
  --size-control-md: 40px;
621
642
  --size-control-sm: 32px;
643
+ --size-data-table-search: 320px;
622
644
  --size-dot-current: 24px;
623
645
  --size-dot-diameter: 8px;
646
+ --size-download-banner-badge: 160px;
647
+ --size-download-banner-media: 320px;
648
+ --size-download-banner-qr: 128px;
649
+ --size-feature-cards-carousel-card: 400px;
650
+ --size-feature-stack-media: 960px;
624
651
  --size-grid-track-lg: 320px;
625
652
  --size-grid-track-md: 240px;
626
653
  --size-grid-track-sm: 160px;
627
654
  --size-halftone-dot: 6px;
628
655
  --size-halftone-pitch: 20px;
629
656
  --size-heading-group-max: 846px;
657
+ --size-image-banner-card: 480px;
630
658
  --size-logo-columns-height: 640px;
631
659
  --size-logo-rows-tile: 192px;
632
660
  --size-measure-description: 60ch;
@@ -638,6 +666,7 @@
638
666
  --size-menu-max: 224px;
639
667
  --size-menu-panel-max: 846px;
640
668
  --size-menu-panel-min: 320px;
669
+ --size-mesh-blur: 48px;
641
670
  --size-review-card-min: 320px;
642
671
  --size-rings-pitch: 64px;
643
672
  --size-rings-spotlight: 128px;
@@ -653,41 +682,32 @@
653
682
  --size-spinner-stroke-lg: 4px;
654
683
  --size-spinner-stroke-md: 3px;
655
684
  --size-spinner-stroke-sm: 2px;
685
+ --size-sticky-cards-compact-max: 846px;
686
+ --size-sticky-cards-compact-min: 240px;
687
+ --size-sticky-cards-feature-min: 560px;
656
688
  --size-switcher-panel-width: 640px;
657
689
  --size-target-min: 24px;
658
690
  --size-testimonial-art: 192px;
691
+ --size-tiers-medal: 64px;
659
692
  --size-tooltip-max: 224px;
660
693
  --space-actions-gap: 8px;
661
694
  --space-control-lg: 24px;
662
695
  --space-control-md: 20px;
663
696
  --space-control-sm: 16px;
664
- --space-gap-2xl: 48px;
665
- --space-gap-3xl: 72px;
666
697
  --space-gap-lg: 24px;
667
698
  --space-gap-md: 16px;
668
699
  --space-gap-none: 0px;
669
700
  --space-gap-sm: 8px;
670
- --space-gap-xl: 32px;
671
701
  --space-gap-xs: 4px;
672
- --space-grid-gutter: 20px;
673
- --space-heading-content: 48px;
674
702
  --space-heading-description-actions: 24px;
675
- --space-heading-eyebrow-title: 16px;
676
703
  --space-heading-title-description-compact: 8px;
677
704
  --space-heading-title-description: 16px;
678
- --space-inset-2xl: 48px;
679
705
  --space-inset-2xs: 4px;
680
- --space-inset-3xl: 72px;
681
- --space-inset-4xl: 112px;
682
- --space-inset-card: 32px;
683
706
  --space-inset-lg: 24px;
684
707
  --space-inset-md: 16px;
685
- --space-inset-page: 32px;
686
708
  --space-inset-sm: 12px;
687
- --space-inset-xl: 32px;
688
709
  --space-inset-xs: 8px;
689
- --space-section-compact: 48px;
690
- --space-section-default: 112px;
710
+ --space-pile-peek: 16px;
691
711
  }
692
712
 
693
713
  @media (max-width: 767px) {
@@ -785,3 +805,32 @@
785
805
  --space-section-default: 112px;
786
806
  }
787
807
 
808
+ [data-dds-context="marketing"]:lang(ar, fa, ur, ps, ckb, sd, ug, syr, hi, mr, ne, bn, as, pa, gu, or, ta, te, kn, ml, si, my, km, lo, th, bo), [data-dds-context="marketing"] :lang(ar, fa, ur, ps, ckb, sd, ug, syr, hi, mr, ne, bn, as, pa, gu, or, ta, te, kn, ml, si, my, km, lo, th, bo) {
809
+ --font-eyebrow-lg-line-height: 1.4;
810
+ --font-eyebrow-sm-letter-spacing: 0em;
811
+ --font-eyebrow-sm-line-height: 1.4;
812
+ --font-field-label-lg-line-height: 1.4;
813
+ --font-field-label-md-line-height: 1.4;
814
+ --font-figure-letter-spacing: 0em;
815
+ --font-figure-lg-letter-spacing: 0em;
816
+ --font-figure-lg-line-height: 1.4;
817
+ --font-figure-line-height: 1.4;
818
+ --font-h1-letter-spacing: 0em;
819
+ --font-h1-line-height: 1.4;
820
+ --font-h2-letter-spacing: 0em;
821
+ --font-h2-line-height: 1.4;
822
+ --font-h3-letter-spacing: 0em;
823
+ --font-h3-line-height: 1.4;
824
+ --font-h4-letter-spacing: 0em;
825
+ --font-h4-line-height: 1.4;
826
+ --font-h5-letter-spacing: 0em;
827
+ --font-h5-line-height: 1.4;
828
+ --font-label-lg-line-height: 1.4;
829
+ --font-label-md-line-height: 1.4;
830
+ --font-label-medium-sm-line-height: 1.4;
831
+ --font-label-sm-line-height: 1.4;
832
+ --font-subtitle-line-height: 1.4;
833
+ --font-title-letter-spacing: 0em;
834
+ --font-title-line-height: 1.4;
835
+ }
836
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deriv-com/dds-marketing",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "Deriv Design System — components and tokens for marketing sites (landing pages, pricing, sign-up).",
5
5
  "license": "MIT",
6
6
  "author": {