@deriv-com/dds-marketing 0.1.0 → 1.0.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.
- package/.llm/components/accordion.md +201 -0
- package/.llm/components/accordionitem.md +244 -0
- package/.llm/components/aspectratio.md +220 -0
- package/.llm/components/badge.md +239 -0
- package/.llm/components/bottomsheet.md +412 -0
- package/.llm/components/breadcrumb.md +205 -0
- package/.llm/components/breadcrumbitem.md +186 -0
- package/.llm/components/button.md +295 -0
- package/.llm/components/buttonicon.md +321 -0
- package/.llm/components/card.md +327 -0
- package/.llm/components/cardbody.md +435 -0
- package/.llm/components/cardbutton.md +273 -0
- package/.llm/components/checkbox.md +293 -0
- package/.llm/components/ctabanner.md +186 -0
- package/.llm/components/ctabannerslider.md +204 -0
- package/.llm/components/divider.md +238 -0
- package/.llm/components/dropdownmenu.md +461 -0
- package/.llm/components/faqaccordion.md +217 -0
- package/.llm/components/featurebullets.md +254 -0
- package/.llm/components/featurecards.md +313 -0
- package/.llm/components/featurescroll.md +284 -0
- package/.llm/components/featuresplit.md +249 -0
- package/.llm/components/filterchip.md +322 -0
- package/.llm/components/footer.md +416 -0
- package/.llm/components/footergroup.md +249 -0
- package/.llm/components/grid.md +667 -0
- package/.llm/components/icon.md +202 -0
- package/.llm/components/landinghero.md +254 -0
- package/.llm/components/link.md +362 -0
- package/.llm/components/logocolumns.md +235 -0
- package/.llm/components/logorows.md +212 -0
- package/.llm/components/menuitem.md +226 -0
- package/.llm/components/navbar.md +522 -0
- package/.llm/components/navbaritem.md +246 -0
- package/.llm/components/navbarmenu.md +327 -0
- package/.llm/components/navbarmenugroup.md +192 -0
- package/.llm/components/navbarpanel.md +263 -0
- package/.llm/components/navbarswitcher.md +351 -0
- package/.llm/components/navbarswitcheroption.md +164 -0
- package/.llm/components/option.md +276 -0
- package/.llm/components/pageheader.md +231 -0
- package/.llm/components/pagination.md +298 -0
- package/.llm/components/paginationdots.md +215 -0
- package/.llm/components/producthero.md +248 -0
- package/.llm/components/removablechip.md +255 -0
- package/.llm/components/row.md +389 -0
- package/.llm/components/scroller.md +478 -0
- package/.llm/components/searchinput.md +287 -0
- package/.llm/components/segmentedcontrol.md +366 -0
- package/.llm/components/segmentedcontrolitem.md +280 -0
- package/.llm/components/select.md +517 -0
- package/.llm/components/selectchip.md +375 -0
- package/.llm/components/spinner.md +230 -0
- package/.llm/components/stack.md +342 -0
- package/.llm/components/statusdot.md +213 -0
- package/.llm/components/subdomainnavbar.md +335 -0
- package/.llm/components/tab.md +299 -0
- package/.llm/components/table.md +668 -0
- package/.llm/components/tablebody.md +266 -0
- package/.llm/components/tablecell.md +256 -0
- package/.llm/components/tablehead.md +256 -0
- package/.llm/components/tableheadercell.md +306 -0
- package/.llm/components/tablerow.md +293 -0
- package/.llm/components/tablist.md +218 -0
- package/.llm/components/testimonialrow.md +235 -0
- package/.llm/components/testimonialslider.md +254 -0
- package/.llm/components/textarea.md +370 -0
- package/.llm/components/textinput.md +475 -0
- package/.llm/components/tooltip.md +275 -0
- package/.llm/components/typography.md +253 -0
- package/.llm/digest/accordion.md +43 -0
- package/.llm/digest/accordionitem.md +47 -0
- package/.llm/digest/aspectratio.md +47 -0
- package/.llm/digest/badge.md +45 -0
- package/.llm/digest/bottomsheet.md +69 -0
- package/.llm/digest/breadcrumb.md +38 -0
- package/.llm/digest/breadcrumbitem.md +43 -0
- package/.llm/digest/button.md +53 -0
- package/.llm/digest/buttonicon.md +61 -0
- package/.llm/digest/card.md +51 -0
- package/.llm/digest/cardbody.md +70 -0
- package/.llm/digest/cardbutton.md +50 -0
- package/.llm/digest/checkbox.md +63 -0
- package/.llm/digest/ctabanner.md +44 -0
- package/.llm/digest/ctabannerslider.md +45 -0
- package/.llm/digest/divider.md +52 -0
- package/.llm/digest/dropdownmenu.md +67 -0
- package/.llm/digest/faqaccordion.md +43 -0
- package/.llm/digest/featurebullets.md +52 -0
- package/.llm/digest/featurecards.md +49 -0
- package/.llm/digest/featurescroll.md +52 -0
- package/.llm/digest/featuresplit.md +54 -0
- package/.llm/digest/filterchip.md +68 -0
- package/.llm/digest/footer.md +57 -0
- package/.llm/digest/footergroup.md +42 -0
- package/.llm/digest/grid.md +62 -0
- package/.llm/digest/icon.md +45 -0
- package/.llm/digest/landinghero.md +53 -0
- package/.llm/digest/link.md +59 -0
- package/.llm/digest/logocolumns.md +55 -0
- package/.llm/digest/logorows.md +48 -0
- package/.llm/digest/menuitem.md +46 -0
- package/.llm/digest/navbar.md +75 -0
- package/.llm/digest/navbaritem.md +54 -0
- package/.llm/digest/navbarmenu.md +54 -0
- package/.llm/digest/navbarmenugroup.md +40 -0
- package/.llm/digest/navbarpanel.md +53 -0
- package/.llm/digest/navbarswitcher.md +51 -0
- package/.llm/digest/navbarswitcheroption.md +37 -0
- package/.llm/digest/option.md +54 -0
- package/.llm/digest/pageheader.md +49 -0
- package/.llm/digest/pagination.md +60 -0
- package/.llm/digest/paginationdots.md +43 -0
- package/.llm/digest/producthero.md +53 -0
- package/.llm/digest/removablechip.md +51 -0
- package/.llm/digest/row.md +60 -0
- package/.llm/digest/scroller.md +59 -0
- package/.llm/digest/searchinput.md +56 -0
- package/.llm/digest/segmentedcontrol.md +59 -0
- package/.llm/digest/segmentedcontrolitem.md +59 -0
- package/.llm/digest/select.md +92 -0
- package/.llm/digest/selectchip.md +73 -0
- package/.llm/digest/spinner.md +52 -0
- package/.llm/digest/stack.md +56 -0
- package/.llm/digest/statusdot.md +46 -0
- package/.llm/digest/subdomainnavbar.md +54 -0
- package/.llm/digest/tab.md +60 -0
- package/.llm/digest/table.md +71 -0
- package/.llm/digest/tablebody.md +49 -0
- package/.llm/digest/tablecell.md +55 -0
- package/.llm/digest/tablehead.md +50 -0
- package/.llm/digest/tableheadercell.md +65 -0
- package/.llm/digest/tablerow.md +56 -0
- package/.llm/digest/tablist.md +46 -0
- package/.llm/digest/testimonialrow.md +51 -0
- package/.llm/digest/testimonialslider.md +51 -0
- package/.llm/digest/textarea.md +78 -0
- package/.llm/digest/textinput.md +95 -0
- package/.llm/digest/tooltip.md +58 -0
- package/.llm/digest/typography.md +59 -0
- package/.llm/index.md +107 -0
- package/.llm/rules.md +146 -0
- package/.llm/tokens.md +385 -0
- package/AGENTS.md +189 -0
- package/LICENSE +21 -0
- package/README.md +78 -10
- package/dist/components/banner-data.d.ts +38 -0
- package/dist/components/banner-data.js +15 -0
- package/dist/components/blocks/block-reveal.css +90 -0
- package/dist/components/blocks/cta-banner/CtaBanner.css +66 -0
- package/dist/components/blocks/cta-banner/CtaBanner.d.ts +22 -0
- package/dist/components/blocks/cta-banner/CtaBanner.js +31 -0
- package/dist/components/blocks/cta-banner/CtaBanner.types.d.ts +29 -0
- package/dist/components/blocks/cta-banner/CtaBanner.types.js +13 -0
- package/dist/components/blocks/cta-banner/cta-banner-impl.css +29 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.css +90 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.d.ts +39 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.js +60 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.d.ts +41 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.js +15 -0
- package/dist/components/blocks/cta-banner-slider/cta-banner-slider-impl.css +73 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.css +54 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.d.ts +20 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.js +28 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.types.d.ts +25 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.types.js +10 -0
- package/dist/components/blocks/faq-accordion/faq-accordion-impl.css +54 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.css +139 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.d.ts +31 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.js +55 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.types.d.ts +39 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.types.js +16 -0
- package/dist/components/blocks/feature-bullets/feature-bullets-impl.css +104 -0
- package/dist/components/blocks/feature-cards/FeatureCards.css +84 -0
- package/dist/components/blocks/feature-cards/FeatureCards.d.ts +24 -0
- package/dist/components/blocks/feature-cards/FeatureCards.js +66 -0
- package/dist/components/blocks/feature-cards/FeatureCards.types.d.ts +33 -0
- package/dist/components/blocks/feature-cards/FeatureCards.types.js +14 -0
- package/dist/components/blocks/feature-cards/feature-cards-impl.css +245 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.css +137 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.d.ts +39 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.js +167 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.types.d.ts +40 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.types.js +17 -0
- package/dist/components/blocks/feature-scroll/feature-scroll-impl.css +292 -0
- package/dist/components/blocks/feature-split/FeatureSplit.css +95 -0
- package/dist/components/blocks/feature-split/FeatureSplit.d.ts +30 -0
- package/dist/components/blocks/feature-split/FeatureSplit.js +38 -0
- package/dist/components/blocks/feature-split/FeatureSplit.types.d.ts +39 -0
- package/dist/components/blocks/feature-split/FeatureSplit.types.js +14 -0
- package/dist/components/blocks/feature-split/feature-split-impl.css +83 -0
- package/dist/components/blocks/landing-hero/LandingHero.css +85 -0
- package/dist/components/blocks/landing-hero/LandingHero.d.ts +41 -0
- package/dist/components/blocks/landing-hero/LandingHero.js +54 -0
- package/dist/components/blocks/landing-hero/LandingHero.types.d.ts +37 -0
- package/dist/components/blocks/landing-hero/LandingHero.types.js +15 -0
- package/dist/components/blocks/landing-hero/landing-hero-impl.css +355 -0
- package/dist/components/blocks/logo-columns/LogoColumns.css +161 -0
- package/dist/components/blocks/logo-columns/LogoColumns.d.ts +23 -0
- package/dist/components/blocks/logo-columns/LogoColumns.js +46 -0
- package/dist/components/blocks/logo-columns/LogoColumns.types.d.ts +46 -0
- package/dist/components/blocks/logo-columns/LogoColumns.types.js +18 -0
- package/dist/components/blocks/logo-columns/logo-columns-impl.css +188 -0
- package/dist/components/blocks/logo-rows/LogoRows.css +122 -0
- package/dist/components/blocks/logo-rows/LogoRows.d.ts +20 -0
- package/dist/components/blocks/logo-rows/LogoRows.js +43 -0
- package/dist/components/blocks/logo-rows/LogoRows.types.d.ts +36 -0
- package/dist/components/blocks/logo-rows/LogoRows.types.js +16 -0
- package/dist/components/blocks/logo-rows/logo-rows-impl.css +179 -0
- package/dist/components/blocks/page-header/PageHeader.css +79 -0
- package/dist/components/blocks/page-header/PageHeader.d.ts +34 -0
- package/dist/components/blocks/page-header/PageHeader.js +43 -0
- package/dist/components/blocks/page-header/PageHeader.types.d.ts +32 -0
- package/dist/components/blocks/page-header/PageHeader.types.js +14 -0
- package/dist/components/blocks/page-header/page-header-impl.css +176 -0
- package/dist/components/blocks/product-hero/ProductHero.css +86 -0
- package/dist/components/blocks/product-hero/ProductHero.d.ts +35 -0
- package/dist/components/blocks/product-hero/ProductHero.js +48 -0
- package/dist/components/blocks/product-hero/ProductHero.types.d.ts +37 -0
- package/dist/components/blocks/product-hero/ProductHero.types.js +15 -0
- package/dist/components/blocks/product-hero/product-hero-impl.css +354 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.css +245 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.d.ts +20 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.js +128 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.d.ts +54 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.js +26 -0
- package/dist/components/blocks/testimonial-row/testimonial-row-impl.css +195 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.css +181 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.d.ts +22 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.js +36 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.d.ts +49 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.js +21 -0
- package/dist/components/blocks/testimonial-slider/testimonial-slider-impl.css +202 -0
- package/dist/components/blocks/use-reveal.d.ts +46 -0
- package/dist/components/blocks/use-reveal.js +120 -0
- package/dist/components/blocks/use-rotation.d.ts +62 -0
- package/dist/components/blocks/use-rotation.js +176 -0
- package/dist/components/core/accordion/Accordion.css +10 -0
- package/dist/components/core/accordion/Accordion.d.ts +20 -0
- package/dist/components/core/accordion/Accordion.js +69 -0
- package/dist/components/core/accordion/Accordion.types.d.ts +20 -0
- package/dist/components/core/accordion/Accordion.types.js +7 -0
- package/dist/components/core/accordion-item/AccordionItem.css +99 -0
- package/dist/components/core/accordion-item/AccordionItem.d.ts +44 -0
- package/dist/components/core/accordion-item/AccordionItem.js +63 -0
- package/dist/components/core/accordion-item/AccordionItem.types.d.ts +32 -0
- package/dist/components/core/accordion-item/AccordionItem.types.js +13 -0
- package/dist/components/core/accordion-item/accordion-item-impl.css +107 -0
- package/dist/components/core/badge/Badge.css +37 -0
- package/dist/components/core/badge/Badge.d.ts +37 -0
- package/dist/components/core/badge/Badge.js +40 -0
- package/dist/components/core/badge/Badge.types.d.ts +24 -0
- package/dist/components/core/badge/Badge.types.js +8 -0
- package/dist/components/core/badge/badge-impl.css +32 -0
- package/dist/components/core/bottom-sheet/BottomSheet.css +178 -0
- package/dist/components/core/bottom-sheet/BottomSheet.d.ts +22 -0
- package/dist/components/core/bottom-sheet/BottomSheet.js +359 -0
- package/dist/components/core/bottom-sheet/BottomSheet.types.d.ts +67 -0
- package/dist/components/core/bottom-sheet/BottomSheet.types.js +18 -0
- package/dist/components/core/bottom-sheet/bottom-sheet-impl.css +57 -0
- package/dist/components/core/breadcrumb/Breadcrumb.css +19 -0
- package/dist/components/core/breadcrumb/Breadcrumb.d.ts +16 -0
- package/dist/components/core/breadcrumb/Breadcrumb.js +22 -0
- package/dist/components/core/breadcrumb/Breadcrumb.types.d.ts +18 -0
- package/dist/components/core/breadcrumb/Breadcrumb.types.js +9 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.css +34 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.d.ts +12 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.js +15 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.types.d.ts +22 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.types.js +9 -0
- package/dist/components/core/button/Button.css +188 -0
- package/dist/components/core/button/Button.d.ts +27 -0
- package/dist/components/core/button/Button.js +57 -0
- package/dist/components/core/button/Button.types.d.ts +35 -0
- package/dist/components/core/button/Button.types.js +9 -0
- package/dist/components/core/button/button-impl.css +71 -0
- package/dist/components/core/button-icon/ButtonIcon.css +151 -0
- package/dist/components/core/button-icon/ButtonIcon.d.ts +34 -0
- package/dist/components/core/button-icon/ButtonIcon.js +117 -0
- package/dist/components/core/button-icon/ButtonIcon.types.d.ts +41 -0
- package/dist/components/core/button-icon/ButtonIcon.types.js +8 -0
- package/dist/components/core/card/Card.css +74 -0
- package/dist/components/core/card/Card.d.ts +24 -0
- package/dist/components/core/card/Card.js +26 -0
- package/dist/components/core/card/Card.types.d.ts +34 -0
- package/dist/components/core/card/Card.types.js +7 -0
- package/dist/components/core/card-body/CardBody.css +144 -0
- package/dist/components/core/card-body/CardBody.d.ts +62 -0
- package/dist/components/core/card-body/CardBody.js +97 -0
- package/dist/components/core/card-body/CardBody.types.d.ts +64 -0
- package/dist/components/core/card-body/CardBody.types.js +16 -0
- package/dist/components/core/card-body/card-body-impl.css +87 -0
- package/dist/components/core/card-button/CardButton.css +82 -0
- package/dist/components/core/card-button/CardButton.d.ts +27 -0
- package/dist/components/core/card-button/CardButton.js +37 -0
- package/dist/components/core/card-button/CardButton.types.d.ts +25 -0
- package/dist/components/core/card-button/CardButton.types.js +7 -0
- package/dist/components/core/card-button/card-button-impl.css +39 -0
- package/dist/components/core/checkbox/Checkbox.css +156 -0
- package/dist/components/core/checkbox/Checkbox.d.ts +21 -0
- package/dist/components/core/checkbox/Checkbox.js +97 -0
- package/dist/components/core/checkbox/Checkbox.types.d.ts +46 -0
- package/dist/components/core/checkbox/Checkbox.types.js +15 -0
- package/dist/components/core/checkbox/checkbox-impl.css +90 -0
- package/dist/components/core/divider/Divider.css +41 -0
- package/dist/components/core/divider/Divider.d.ts +46 -0
- package/dist/components/core/divider/Divider.js +51 -0
- package/dist/components/core/divider/Divider.types.d.ts +25 -0
- package/dist/components/core/divider/Divider.types.js +9 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.css +147 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.d.ts +24 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.js +311 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.types.d.ts +62 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.types.js +12 -0
- package/dist/components/core/dropdown-menu/dropdown-menu-impl.css +70 -0
- package/dist/components/core/filter-chip/FilterChip.css +150 -0
- package/dist/components/core/filter-chip/FilterChip.d.ts +23 -0
- package/dist/components/core/filter-chip/FilterChip.js +37 -0
- package/dist/components/core/filter-chip/FilterChip.types.d.ts +53 -0
- package/dist/components/core/filter-chip/FilterChip.types.js +12 -0
- package/dist/components/core/footer/Footer.css +104 -0
- package/dist/components/core/footer/Footer.d.ts +43 -0
- package/dist/components/core/footer/Footer.js +53 -0
- package/dist/components/core/footer/Footer.types.d.ts +47 -0
- package/dist/components/core/footer/Footer.types.js +18 -0
- package/dist/components/core/footer/footer-impl.css +218 -0
- package/dist/components/core/footer-group/FooterGroup.css +91 -0
- package/dist/components/core/footer-group/FooterGroup.d.ts +32 -0
- package/dist/components/core/footer-group/FooterGroup.js +64 -0
- package/dist/components/core/footer-group/FooterGroup.types.d.ts +25 -0
- package/dist/components/core/footer-group/FooterGroup.types.js +12 -0
- package/dist/components/core/footer-group/footer-group-impl.css +78 -0
- package/dist/components/core/icon/Icon.css +40 -0
- package/dist/components/core/icon/Icon.d.ts +23 -0
- package/dist/components/core/icon/Icon.js +79 -0
- package/dist/components/core/icon/Icon.types.d.ts +24 -0
- package/dist/components/core/icon/Icon.types.js +7 -0
- package/dist/components/core/link/Link.css +89 -0
- package/dist/components/core/link/Link.d.ts +37 -0
- package/dist/components/core/link/Link.js +141 -0
- package/dist/components/core/link/Link.types.d.ts +41 -0
- package/dist/components/core/link/Link.types.js +9 -0
- package/dist/components/core/link/link-impl.css +168 -0
- package/dist/components/core/menu-item/MenuItem.css +70 -0
- package/dist/components/core/menu-item/MenuItem.d.ts +11 -0
- package/dist/components/core/menu-item/MenuItem.js +26 -0
- package/dist/components/core/menu-item/MenuItem.types.d.ts +28 -0
- package/dist/components/core/menu-item/MenuItem.types.js +9 -0
- package/dist/components/core/navbar/Navbar.css +134 -0
- package/dist/components/core/navbar/Navbar.d.ts +52 -0
- package/dist/components/core/navbar/Navbar.js +498 -0
- package/dist/components/core/navbar/Navbar.types.d.ts +68 -0
- package/dist/components/core/navbar/Navbar.types.js +17 -0
- package/dist/components/core/navbar/navbar-impl.css +597 -0
- package/dist/components/core/navbar/navbar-material.css +96 -0
- package/dist/components/core/navbar-item/NavbarItem.css +75 -0
- package/dist/components/core/navbar-item/NavbarItem.d.ts +22 -0
- package/dist/components/core/navbar-item/NavbarItem.js +40 -0
- package/dist/components/core/navbar-item/NavbarItem.types.d.ts +34 -0
- package/dist/components/core/navbar-item/NavbarItem.types.js +10 -0
- package/dist/components/core/navbar-menu/NavbarMenu.css +130 -0
- package/dist/components/core/navbar-menu/NavbarMenu.d.ts +6 -0
- package/dist/components/core/navbar-menu/NavbarMenu.js +187 -0
- package/dist/components/core/navbar-menu/NavbarMenu.types.d.ts +45 -0
- package/dist/components/core/navbar-menu/NavbarMenu.types.js +12 -0
- package/dist/components/core/navbar-menu/navbar-menu-impl.css +186 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.css +26 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.d.ts +17 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.js +22 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.types.d.ts +14 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.types.js +7 -0
- package/dist/components/core/navbar-panel/NavbarPanel.css +87 -0
- package/dist/components/core/navbar-panel/NavbarPanel.d.ts +34 -0
- package/dist/components/core/navbar-panel/NavbarPanel.js +46 -0
- package/dist/components/core/navbar-panel/NavbarPanel.types.d.ts +29 -0
- package/dist/components/core/navbar-panel/NavbarPanel.types.js +12 -0
- package/dist/components/core/navbar-panel/navbar-panel-impl.css +104 -0
- package/dist/components/core/navbar-panel/use-navbar-panel.d.ts +26 -0
- package/dist/components/core/navbar-panel/use-navbar-panel.js +135 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.css +118 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.d.ts +21 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.js +91 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.types.d.ts +46 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.types.js +13 -0
- package/dist/components/core/navbar-switcher/navbar-switcher-impl.css +179 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.css +39 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.d.ts +16 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.js +19 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.types.d.ts +18 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.types.js +7 -0
- package/dist/components/core/option/Option.css +133 -0
- package/dist/components/core/option/Option.d.ts +25 -0
- package/dist/components/core/option/Option.js +31 -0
- package/dist/components/core/option/Option.types.d.ts +44 -0
- package/dist/components/core/option/Option.types.js +14 -0
- package/dist/components/core/pagination/Pagination.css +163 -0
- package/dist/components/core/pagination/Pagination.d.ts +30 -0
- package/dist/components/core/pagination/Pagination.js +366 -0
- package/dist/components/core/pagination/Pagination.types.d.ts +47 -0
- package/dist/components/core/pagination/Pagination.types.js +12 -0
- package/dist/components/core/pagination/pagination-impl.css +17 -0
- package/dist/components/core/pagination-dots/PaginationDots.css +60 -0
- package/dist/components/core/pagination-dots/PaginationDots.d.ts +25 -0
- package/dist/components/core/pagination-dots/PaginationDots.js +104 -0
- package/dist/components/core/pagination-dots/PaginationDots.types.d.ts +38 -0
- package/dist/components/core/pagination-dots/PaginationDots.types.js +9 -0
- package/dist/components/core/removable-chip/RemovableChip.css +125 -0
- package/dist/components/core/removable-chip/RemovableChip.d.ts +25 -0
- package/dist/components/core/removable-chip/RemovableChip.js +36 -0
- package/dist/components/core/removable-chip/RemovableChip.types.d.ts +38 -0
- package/dist/components/core/removable-chip/RemovableChip.types.js +13 -0
- package/dist/components/core/search-input/SearchInput.css +205 -0
- package/dist/components/core/search-input/SearchInput.d.ts +5 -0
- package/dist/components/core/search-input/SearchInput.js +81 -0
- package/dist/components/core/search-input/SearchInput.types.d.ts +43 -0
- package/dist/components/core/search-input/SearchInput.types.js +13 -0
- package/dist/components/core/search-input/search-input-impl.css +20 -0
- package/dist/components/core/segmented-control/SegmentedControl.css +57 -0
- package/dist/components/core/segmented-control/SegmentedControl.d.ts +37 -0
- package/dist/components/core/segmented-control/SegmentedControl.js +269 -0
- package/dist/components/core/segmented-control/SegmentedControl.types.d.ts +38 -0
- package/dist/components/core/segmented-control/SegmentedControl.types.js +8 -0
- package/dist/components/core/segmented-control/segmented-control-impl.css +57 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.css +151 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.d.ts +50 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.js +101 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.types.d.ts +37 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.types.js +10 -0
- package/dist/components/core/segmented-control-item/segmented-control-item-impl.css +69 -0
- package/dist/components/core/select/Select.css +401 -0
- package/dist/components/core/select/Select.d.ts +29 -0
- package/dist/components/core/select/Select.js +524 -0
- package/dist/components/core/select/Select.types.d.ts +96 -0
- package/dist/components/core/select/Select.types.js +26 -0
- package/dist/components/core/select/select-impl.css +114 -0
- package/dist/components/core/select-chip/SelectChip.css +162 -0
- package/dist/components/core/select-chip/SelectChip.d.ts +20 -0
- package/dist/components/core/select-chip/SelectChip.js +276 -0
- package/dist/components/core/select-chip/SelectChip.types.d.ts +62 -0
- package/dist/components/core/select-chip/SelectChip.types.js +14 -0
- package/dist/components/core/select-chip/select-chip-impl.css +49 -0
- package/dist/components/core/spinner/Spinner.css +76 -0
- package/dist/components/core/spinner/Spinner.d.ts +5 -0
- package/dist/components/core/spinner/Spinner.js +29 -0
- package/dist/components/core/spinner/Spinner.types.d.ts +37 -0
- package/dist/components/core/spinner/Spinner.types.js +10 -0
- package/dist/components/core/spinner/spinner-impl.css +27 -0
- package/dist/components/core/status-dot/StatusDot.css +43 -0
- package/dist/components/core/status-dot/StatusDot.d.ts +35 -0
- package/dist/components/core/status-dot/StatusDot.js +46 -0
- package/dist/components/core/status-dot/StatusDot.types.d.ts +29 -0
- package/dist/components/core/status-dot/StatusDot.types.js +7 -0
- package/dist/components/core/status-dot/status-dot-impl.css +42 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.css +89 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.d.ts +21 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.js +127 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.types.d.ts +43 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.types.js +13 -0
- package/dist/components/core/subdomain-navbar/subdomain-navbar-impl.css +147 -0
- package/dist/components/core/tab/Tab.css +113 -0
- package/dist/components/core/tab/Tab.d.ts +36 -0
- package/dist/components/core/tab/Tab.js +53 -0
- package/dist/components/core/tab/Tab.types.d.ts +42 -0
- package/dist/components/core/tab/Tab.types.js +13 -0
- package/dist/components/core/tab/tab-impl.css +49 -0
- package/dist/components/core/tab-list/TabList.css +40 -0
- package/dist/components/core/tab-list/TabList.d.ts +26 -0
- package/dist/components/core/tab-list/TabList.js +124 -0
- package/dist/components/core/tab-list/TabList.types.d.ts +20 -0
- package/dist/components/core/tab-list/TabList.types.js +7 -0
- package/dist/components/core/tab-list/tab-list-impl.css +56 -0
- package/dist/components/core/table/Table.css +40 -0
- package/dist/components/core/table/Table.d.ts +19 -0
- package/dist/components/core/table/Table.js +55 -0
- package/dist/components/core/table/Table.types.d.ts +59 -0
- package/dist/components/core/table/Table.types.js +9 -0
- package/dist/components/core/table/table-impl.css +97 -0
- package/dist/components/core/table/use-table-sort.d.ts +43 -0
- package/dist/components/core/table/use-table-sort.js +51 -0
- package/dist/components/core/table-body/TableBody.css +6 -0
- package/dist/components/core/table-body/TableBody.d.ts +12 -0
- package/dist/components/core/table-body/TableBody.js +26 -0
- package/dist/components/core/table-body/TableBody.types.d.ts +36 -0
- package/dist/components/core/table-body/TableBody.types.js +7 -0
- package/dist/components/core/table-cell/TableCell.css +76 -0
- package/dist/components/core/table-cell/TableCell.d.ts +21 -0
- package/dist/components/core/table-cell/TableCell.js +31 -0
- package/dist/components/core/table-cell/TableCell.types.d.ts +43 -0
- package/dist/components/core/table-cell/TableCell.types.js +7 -0
- package/dist/components/core/table-head/TableHead.css +6 -0
- package/dist/components/core/table-head/TableHead.d.ts +22 -0
- package/dist/components/core/table-head/TableHead.js +52 -0
- package/dist/components/core/table-head/TableHead.types.d.ts +39 -0
- package/dist/components/core/table-head/TableHead.types.js +7 -0
- package/dist/components/core/table-head/table-head-impl.css +51 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.css +126 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.d.ts +21 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.js +34 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.types.d.ts +56 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.types.js +9 -0
- package/dist/components/core/table-header-cell/table-header-cell-impl.css +74 -0
- package/dist/components/core/table-row/TableRow.css +18 -0
- package/dist/components/core/table-row/TableRow.d.ts +17 -0
- package/dist/components/core/table-row/TableRow.js +32 -0
- package/dist/components/core/table-row/TableRow.types.d.ts +45 -0
- package/dist/components/core/table-row/TableRow.types.js +7 -0
- package/dist/components/core/table-row/table-row-impl.css +31 -0
- package/dist/components/core/text-area/TextArea.css +325 -0
- package/dist/components/core/text-area/TextArea.d.ts +13 -0
- package/dist/components/core/text-area/TextArea.js +133 -0
- package/dist/components/core/text-area/TextArea.types.d.ts +67 -0
- package/dist/components/core/text-area/TextArea.types.js +19 -0
- package/dist/components/core/text-area/text-area-impl.css +36 -0
- package/dist/components/core/text-input/TextInput.css +400 -0
- package/dist/components/core/text-input/TextInput.d.ts +5 -0
- package/dist/components/core/text-input/TextInput.js +130 -0
- package/dist/components/core/text-input/TextInput.types.d.ts +96 -0
- package/dist/components/core/text-input/TextInput.types.js +24 -0
- package/dist/components/core/text-input/text-input-impl.css +36 -0
- package/dist/components/core/tooltip/Tooltip.css +101 -0
- package/dist/components/core/tooltip/Tooltip.d.ts +51 -0
- package/dist/components/core/tooltip/Tooltip.js +87 -0
- package/dist/components/core/tooltip/Tooltip.types.d.ts +38 -0
- package/dist/components/core/tooltip/Tooltip.types.js +9 -0
- package/dist/components/core/tooltip/TooltipAnchor.d.ts +52 -0
- package/dist/components/core/tooltip/TooltipAnchor.js +69 -0
- package/dist/components/core/tooltip/tooltip-anchor.css +145 -0
- package/dist/components/core/tooltip/tooltip-impl.css +54 -0
- package/dist/components/core/tooltip/use-tooltip.d.ts +111 -0
- package/dist/components/core/tooltip/use-tooltip.js +189 -0
- package/dist/components/core/typography/Typography.css +96 -0
- package/dist/components/core/typography/Typography.d.ts +297 -0
- package/dist/components/core/typography/Typography.js +28 -0
- package/dist/components/core/typography/Typography.types.d.ts +40 -0
- package/dist/components/core/typography/Typography.types.js +7 -0
- package/dist/components/css-time.d.ts +20 -0
- package/dist/components/css-time.js +30 -0
- package/dist/components/given.d.ts +7 -0
- package/dist/components/given.js +9 -0
- package/dist/components/hover-open.d.ts +34 -0
- package/dist/components/hover-open.js +90 -0
- package/dist/components/index.d.ts +149 -1
- package/dist/components/index.js +145 -2
- package/dist/components/layout/aspect-ratio/AspectRatio.css +29 -0
- package/dist/components/layout/aspect-ratio/AspectRatio.d.ts +24 -0
- package/dist/components/layout/aspect-ratio/AspectRatio.js +26 -0
- package/dist/components/layout/aspect-ratio/AspectRatio.types.d.ts +22 -0
- package/dist/components/layout/aspect-ratio/AspectRatio.types.js +7 -0
- package/dist/components/layout/aspect-ratio/aspect-ratio-impl.css +44 -0
- package/dist/components/layout/grid/Grid.css +76 -0
- package/dist/components/layout/grid/Grid.d.ts +31 -0
- package/dist/components/layout/grid/Grid.js +33 -0
- package/dist/components/layout/grid/Grid.types.d.ts +48 -0
- package/dist/components/layout/grid/Grid.types.js +7 -0
- package/dist/components/layout/grid/grid-impl.css +62 -0
- package/dist/components/layout/row/Row.css +85 -0
- package/dist/components/layout/row/Row.d.ts +32 -0
- package/dist/components/layout/row/Row.js +34 -0
- package/dist/components/layout/row/Row.types.d.ts +45 -0
- package/dist/components/layout/row/Row.types.js +7 -0
- package/dist/components/layout/scroller/Scroller.css +59 -0
- package/dist/components/layout/scroller/Scroller.d.ts +34 -0
- package/dist/components/layout/scroller/Scroller.js +36 -0
- package/dist/components/layout/scroller/Scroller.types.d.ts +38 -0
- package/dist/components/layout/scroller/Scroller.types.js +7 -0
- package/dist/components/layout/scroller/scroller-impl.css +45 -0
- package/dist/components/layout/stack/Stack.css +73 -0
- package/dist/components/layout/stack/Stack.d.ts +28 -0
- package/dist/components/layout/stack/Stack.js +30 -0
- package/dist/components/layout/stack/Stack.types.d.ts +41 -0
- package/dist/components/layout/stack/Stack.types.js +7 -0
- package/dist/components/logo-data.d.ts +24 -0
- package/dist/components/logo-data.js +11 -0
- package/dist/components/scroll-data.d.ts +64 -0
- package/dist/components/scroll-data.js +17 -0
- package/dist/components/testimonial-row-data.d.ts +51 -0
- package/dist/components/testimonial-row-data.js +11 -0
- package/dist/components/testimonial-slider-data.d.ts +26 -0
- package/dist/components/testimonial-slider-data.js +10 -0
- package/dist/components/visually-hidden.d.ts +22 -0
- package/dist/components/visually-hidden.js +31 -0
- package/dist/fonts/LICENSE-inter.txt +93 -0
- package/dist/fonts/LICENSE-red-hat-mono.txt +93 -0
- package/dist/fonts/fonts.css +111 -0
- package/dist/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
- package/dist/fonts/red-hat-mono-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/red-hat-mono-latin-wght-normal.woff2 +0 -0
- package/dist/marketing.css +581 -162
- package/package.json +13 -4
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- GENERATED from checkbox.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# Checkbox
|
|
4
|
+
|
|
5
|
+
Records a single on-or-off choice that is submitted with the form around it rather than applied the moment it is ticked
|
|
6
|
+
|
|
7
|
+
`import { Checkbox } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A choice the user makes now and confirms later — the form's Save or Continue is what applies it
|
|
12
|
+
- Agreeing to something before proceeding — terms, a risk disclosure, a confirmation the user must actively give
|
|
13
|
+
- One of several independent choices, each of which can be on or off without affecting the others
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- Choosing exactly one option from a short set, where picking one unpicks the others → **SegmentedControl**
|
|
18
|
+
- Performing an action rather than recording a choice → **Button**
|
|
19
|
+
|
|
20
|
+
## Never
|
|
21
|
+
|
|
22
|
+
- A setting that takes effect the moment it is ticked. A checkbox is a value the form around it submits, and one that applied immediately would misreport itself — the reader looks for Save, finds nothing waiting, and cannot tell whether the change took. Marketing has no immediate-apply toggle to send them to
|
|
23
|
+
- Destructive or irreversible changes — a checkbox is a value in a form, and a tick is not a confirmation step
|
|
24
|
+
- A choice the user cannot see the label of. The label is required and always rendered: a bare box states nothing about what ticking it agrees to
|
|
25
|
+
|
|
26
|
+
## Props
|
|
27
|
+
|
|
28
|
+
- **tone** `enum` · default "standard"
|
|
29
|
+
- `standard` — The default, and almost always right — the ticked box fills with the neutral that outranks everything around it, so the choice is legible before any colour is read and it is the fill every other chosen control in this package takes, which is what lets a form of them read as one set of answers …
|
|
30
|
+
- `accent` — The checkbox is the brand moment of the view — a single consent the design is deliberately drawing the eye to — and the surrounding design already carries brand red
|
|
31
|
+
- **checked** `enum` · default "unchecked"
|
|
32
|
+
- `unchecked` — The default — the choice has not been made, or has been made against
|
|
33
|
+
- `checked` — The user has made this choice, or it arrives pre-made and they may change it
|
|
34
|
+
- `indeterminate` — A box that summarises others, where some but not all of them are ticked — a Select all above a partly selected list
|
|
35
|
+
- never: A pending or loading state. Indeterminate means partly chosen, not not-yet-known, and a user who ticks it expects the group to follow
|
|
36
|
+
- **status** `enum` · default "none"
|
|
37
|
+
- `none` — The default — the choice has not been judged, or it passed and there is nothing to say
|
|
38
|
+
- `error` — The box had to be ticked and was not, or what ticking it asks for is not accepted
|
|
39
|
+
- `warning` — The choice is accepted but has a consequence the user should see before submitting
|
|
40
|
+
- `success` — The choice was checked against something and passed, and confirming that is worth the room
|
|
41
|
+
- never: A box in a set where something above it already asks the question and reports the error. The message answers for the whole set, and a box repeating it states the same failure twice. This prop is for the box that stands alone, which is the case a group cannot cover: a single consent has nothing above it to carry the error. …
|
|
42
|
+
- **label** `string` · required — Always — it states what ticking the box agrees to, and the box shows nothing on its own. A phrase the user can read as a claim they are agreeing with: "Send me trade confirmations", not "Confirmations". …
|
|
43
|
+
- never: The consequence or the rule, which belongs beside the form rather than inside the choice — a label that explains has stopped naming the thing being agreed to, and there is a description for what it was trying to say. …
|
|
44
|
+
- **showLabel** `boolean` · default true — Drawing the words, which is nearly always. A checkbox on its own is a question, and a question with no words is not one
|
|
45
|
+
- never: Deciding whether the box has a label. It always has one and it is always announced — this only says whether the label is drawn. Off is clipped, not removed, so a screen reader still reads it
|
|
46
|
+
- **description** `string` · optional — Ticking the box commits the user to something the label cannot carry without becoming a sentence — what it costs, how often it happens, what it applies to. …
|
|
47
|
+
- never: Guidance about the form as a whole, or the rule behind the choice, which belongs beside the form rather than under one of its controls. A note repeated under every box is describing the set, and putting it on one of them says it is true of that one only
|
|
48
|
+
- **statusMessage** `string` · optional — Whenever the status is an error or a warning — the words are what the user acts on, and the colour alone is not available to everyone
|
|
49
|
+
- never: Restating the label. The message says what happened and what to do, not what the choice was
|
|
50
|
+
|
|
51
|
+
## The type refuses
|
|
52
|
+
|
|
53
|
+
- status="error" with statusMessage=null — An error with no explanation leaves the user stuck
|
|
54
|
+
- status="warning" with statusMessage=null — A warning with no explanation is a choice the user cannot act on
|
|
55
|
+
|
|
56
|
+
## Inside it
|
|
57
|
+
|
|
58
|
+
- 2 components are refused inside it; the list and the reasons are in the long document.
|
|
59
|
+
- Renders 9 parts: root, control, box, field, indicator, text, label, description-text, message.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/checkbox.md`.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!-- GENERATED from ctabanner.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# CtaBanner
|
|
4
|
+
|
|
5
|
+
A full-bleed coral band carrying one short promotion and the action it asks for — the strip that breaks a long page with the one thing the page wants done, or closes it. …
|
|
6
|
+
|
|
7
|
+
`import { CtaBanner } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A short, high-contrast promotion with one clear action — open an account, start trading, download the app
|
|
12
|
+
- The band that closes a page, or breaks a long one, on the action the page exists to produce
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- Two or three promotions to rotate between → **CtaBannerSlider**
|
|
17
|
+
- The band that opens the page → **LandingHero**
|
|
18
|
+
- A message that needs a picture beside it → **FeatureSplit**
|
|
19
|
+
|
|
20
|
+
## Never
|
|
21
|
+
|
|
22
|
+
- Two banners in one view — two coral strips are two demands, and the second makes the first one ordinary
|
|
23
|
+
- More than a headline, a line and two buttons
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
- **title** `string` · required — Always — the message, in a few words. Short enough to take in at a glance; a line break goes where the words pause, not where the box runs out
|
|
28
|
+
- never: A sentence. The description is for the sentence; the title is what a reader takes in on the way past
|
|
29
|
+
- **headingLevel** `enum` · default "h2" — Matching the outline of the page around the banner. Size does not change with it — the headline is drawn at font.h1 at either level, the scale and the level being separate decisions
|
|
30
|
+
- `h2` — The default: a banner is a section of the page, under the page's own h1
|
|
31
|
+
- `h3` — A banner nested inside a section that already carries the h2 it belongs to
|
|
32
|
+
- **description** `string` · optional — A line saying why the action is worth taking — what the reader gets, or how little it costs them
|
|
33
|
+
- never: A paragraph. A banner is read at a glance, on the way down a page; copy a reader has to work through is copy they scroll past
|
|
34
|
+
- **actions** `node` · optional — The one action the message asks for, or two at most. …
|
|
35
|
+
- never: A third action, or a primary Button: coral on the coral ground is a button nobody can see
|
|
36
|
+
|
|
37
|
+
## Inside it
|
|
38
|
+
|
|
39
|
+
- 7 components are refused inside it; the list and the reasons are in the long document.
|
|
40
|
+
- Renders 7 parts: root, inner, content, text, title, description, actions.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/ctabanner.md`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!-- GENERATED from ctabannerslider.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# CtaBannerSlider
|
|
4
|
+
|
|
5
|
+
CtaBanner's layout with a slider in it: the same full-bleed coral band, rotating between two or three short promotions. …
|
|
6
|
+
|
|
7
|
+
`import { CtaBannerSlider } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- Rotating between two or three genuinely different promotions without a hero's weight — open an account, try a tool, download the app
|
|
12
|
+
|
|
13
|
+
## Something else, when
|
|
14
|
+
|
|
15
|
+
- One promotion → **CtaBanner**
|
|
16
|
+
- The band that opens the page → **LandingHero**
|
|
17
|
+
- A message with more than a headline, a line and a button or two → **FeatureSplit**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- A single message — that is CtaBanner
|
|
22
|
+
- Messages that say the same thing twice, rotated to look like more
|
|
23
|
+
- A slider beside a CtaBanner in the same view — two coral strips are two demands
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
- **slides** `data` · required — Always. The messages, in the order they rotate — two or three. …
|
|
28
|
+
- never: One message — that is CtaBanner — or a set padded out to rotate. Every slide is a few seconds of a reader's attention, and one that says what another said is a few seconds taken for nothing
|
|
29
|
+
- **headingLevel** `enum` · default "h2" — Matching the outline of the page around the banner, for every slide's headline at once. Size does not change with it — every headline is drawn at font.h1, the scale and the level being separate decisions
|
|
30
|
+
- `h2` — The default: a banner is a section of the page, under the page's own h1
|
|
31
|
+
- `h3` — A banner nested inside a section that already carries the h2 it belongs to
|
|
32
|
+
- **autoplay** `boolean` · default false — Whether it advances on its own, holding each slide for motion.duration.dwell. Off by default, so a slider nobody configured stays still. …
|
|
33
|
+
- never: A banner whose slides carry more than a reader can take in during motion.duration.dwell — turn it off rather than shorten the copy to fit the timer
|
|
34
|
+
- **label** `string` · default "Promotions" — The name the banner is announced by — a region a screen reader can jump to and skip. Name what it holds, not that it is a banner: 'Promotions', 'Offers'. Translate it with the page
|
|
35
|
+
- **controlsLabel** `string` · default "Slides" — The name the dots are announced by, as a group inside the banner. Its own name rather than the banner's, so a screen reader moving into the dots hears what they are rather than 'Promotions' a second time. …
|
|
36
|
+
- **slideLabel** `string` · default "Slide" — The word each dot is announced by, before its number — 'Slide 2'. Translate it with the page, as controlsLabel is; a page that translates only the group's name still has every dot announced in English
|
|
37
|
+
|
|
38
|
+
## Inside it
|
|
39
|
+
|
|
40
|
+
- 7 components are refused inside it; the list and the reasons are in the long document.
|
|
41
|
+
- Renders 9 parts: root, inner, track, slide, text, title, description, actions, controls.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/ctabannerslider.md`.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!-- GENERATED from divider.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# Divider
|
|
4
|
+
|
|
5
|
+
A rule between things, and the quietest way to say that what is on one side of it belongs to a different group from what is on the other. …
|
|
6
|
+
|
|
7
|
+
`import { Divider } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- Two groups inside one container that nothing else is separating — a footer's link columns, the tiers inside a pricing card, a card's summary above its detail. …
|
|
12
|
+
- A row of items holding one that belongs to a different set from its neighbours — the vertical case. …
|
|
13
|
+
- A word between two rules, where that word is the entire content of the divide: OR between two ways of signing up, and little else. …
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- The groups have names → **Typography**
|
|
18
|
+
- The space between the groups already separates them → **nothing in this system does this**
|
|
19
|
+
- The line wanted is the edge of a surface → **Card**
|
|
20
|
+
- The line wanted is the rail under a tab strip → **TabList**
|
|
21
|
+
|
|
22
|
+
## Never
|
|
23
|
+
|
|
24
|
+
- Room. It draws a line and owns no space around it, so the air either side is the layout's — only the thing holding the groups knows how much air they deserve. A rule that carried margins of its own would be a rule nobody could put anywhere, because every place it went would need them different
|
|
25
|
+
- A line under every heading. A page ruled off at each of its headings reads as a form to be filled rather than as prose to be read, and the rules stop meaning anything once they are everywhere — which is the state a divider cannot recover from, since it has only one thing to say. …
|
|
26
|
+
- Two rules with nothing between them, or a rule at the start or end of a set. A separator separates, so one with a group on only one side of it is a line drawn around nothing — and at the edge of a container it is the container's own border, moved inward by a pixel and drawn in the wrong ink
|
|
27
|
+
- Structure a reader navigates by. A screen reader announces a separator where it helps and skips it where it does not; what makes a group findable is a heading or a list, and a rule is neither. If a group has to be reachable, give it something with a name
|
|
28
|
+
- Carrying a status, a warning, or any other meaning through colour. There is one ink here and it is the quietest one this package has, deliberately: a red rule is a message nobody can read, and the message belongs in words on the surface the rule divides
|
|
29
|
+
|
|
30
|
+
## Props
|
|
31
|
+
|
|
32
|
+
- **orientation** `enum` · default "horizontal" — The axis the groups are arranged on. A rule across a stack is horizontal; a rule down a row is vertical
|
|
33
|
+
- `horizontal` — The default, and nearly every divider: a rule across a stack, separating what is above it from what is below. …
|
|
34
|
+
- `vertical` — A rule down a row, separating items beside one another. …
|
|
35
|
+
- never: Turning a rule to fit a layout that has not decided what it is. The orientation follows the axis the groups are arranged on — a vertical rule between two stacked groups says they sit side by side, which is a claim about the layout that the layout will contradict. …
|
|
36
|
+
- **label** `string` · optional — The divide has a word, and the word is short: OR between two ways of signing up, and very little else. …
|
|
37
|
+
- never: A sentence, or a heading. The word sits between two rules in the width of a container, so anything longer takes the rules with it: at a phrase there is little line left on either side, and at a sentence the divider has become a caption drawn in the wrong ink. …
|
|
38
|
+
- **decorative** `boolean` · default false — The grouping this rule draws is already announced some other way — the rows either side are list items, the sections either side have headings of their own. …
|
|
39
|
+
- never: A rule that is the only thing saying the groups are different. That is the ordinary case, which is why it is the default: where the line carries the grouping for the reader who can see it, the separator role is what carries the same grouping for the reader who cannot, and hiding it takes the structure away from exactly one audience
|
|
40
|
+
|
|
41
|
+
## The type refuses
|
|
42
|
+
|
|
43
|
+
- decorative=true with label="*" — A labelled divider is not a separator — the word is content, and content is why the role is given up. …
|
|
44
|
+
|
|
45
|
+
## Inside it
|
|
46
|
+
|
|
47
|
+
- 7 components are refused inside it; the list and the reasons are in the long document.
|
|
48
|
+
- Renders 3 parts: root, line, label.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/divider.md`.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<!-- GENERATED from dropdownmenu.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# DropdownMenu
|
|
4
|
+
|
|
5
|
+
A button that opens a short set of destinations. Pressing one goes somewhere and the menu shuts — it holds no value and reports no answer, so there is nothing about it to find on reopening. …
|
|
6
|
+
|
|
7
|
+
`import { DropdownMenu } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A set of destinations too long for the navigation bar and too short to be a page of its own — languages, regions, the parts of a long index
|
|
12
|
+
- The set is short enough to read at a glance, where a visitor is choosing rather than searching
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- The set reports a choice the visitor should find marked when they return → **nothing in this system does this**
|
|
17
|
+
- The destinations belong in the page's navigation → **nothing in this system does this**
|
|
18
|
+
- It is one destination rather than one of a set → **nothing in this system does this**
|
|
19
|
+
- The set is long enough that a visitor would rather type than read → **nothing in this system does this**
|
|
20
|
+
|
|
21
|
+
## Never
|
|
22
|
+
|
|
23
|
+
- Anything that destroys. Marketing has no destructive tone by decision — a page navigates a visitor toward a conversion and never deletes on their behalf
|
|
24
|
+
- The page's main action. A menu is a set of supporting destinations, and the one step a page was built to produce is a Button in the open where it can be seen without a press
|
|
25
|
+
- Carrying the words a visitor needs before choosing. A row is a short label; what a choice means belongs on the page, where it can be read without opening anything
|
|
26
|
+
|
|
27
|
+
## Props
|
|
28
|
+
|
|
29
|
+
- **variant** `enum` · default "outlined"
|
|
30
|
+
- `outlined` — The control stands on its own — a switcher in a toolbar, a filter above a table, anywhere a reader has to find it before they can use it. The edge is what says there is something here to press
|
|
31
|
+
- `plain` — The control sits among others that have already said what they are — a locale beside a row of sections in a navigation bar, where every neighbour is words and a mark and an edge around one of them would make it the loudest thing in the set. …
|
|
32
|
+
- **size** `enum` · default "md" — Match it to the controls it stands beside. Two steps and no third: this package's control ramp runs sm then md, and the step above them is being retired rather than offered here
|
|
33
|
+
- `sm` — Beside body copy rather than above it — a language picker in a navigation bar or a footer, where the trigger is one item in a row of links and should not outweigh them
|
|
34
|
+
- `md` — The default, and nearly every other page. The same height as a default Button, so the two line up when they sit in the same band
|
|
35
|
+
- never: Making the menu itself bigger. This sizes the trigger and the rows in it; how wide the panel runs is its longest destination's business, and how tall it gets before scrolling is size.menu.max at either step
|
|
36
|
+
- **alignment** `enum` · default "start"
|
|
37
|
+
- `start` — The menu's leading edge lines up with the trigger's. The default, because a visitor reads from that edge and the destinations begin where the button's own words began
|
|
38
|
+
- `end` — Its trailing edge lines up instead, which is what a trigger near the end of a row needs — a footer's language picker aligned to the start would run off the screen
|
|
39
|
+
- **tone** `enum` · default "default"
|
|
40
|
+
- `default` — The control is on a light ground, which is every surface this package paints by default
|
|
41
|
+
- `inverse` — The control is on a ground that runs against the mode — a navigation bar standing on a dark hero. …
|
|
42
|
+
- **label** `string` · required — Always — the words on the trigger, and the whole of what a visitor has to go on before they press it. "Language", "Region", "More pages". …
|
|
43
|
+
- never: A sentence. This sits in a row of other things and does not wrap — words long enough to need the room are words that belong on the page
|
|
44
|
+
- **icon** `node` · optional — A mark before the trigger's words, where the set is read by shape as much as by reading — a globe beside "Language", a flag beside the region a visitor is already in
|
|
45
|
+
- never: The chevron, which this component draws itself and is not a slot. And saying what the menu holds when the words already do: a mark beside "Language" is recognised faster, a mark beside "Choose where you are reading from" is decoration in front of a sentence
|
|
46
|
+
- **chevron** `boolean` · default true — A chevron in the trigger, pointing down while the menu is shut and up while it is open. …
|
|
47
|
+
- never: A trigger standing on its own. Without an edge or a chevron there is nothing left saying the control opens anything, and a reader finds out by pressing it. Turn it off only where the neighbours say it — a locale in a row of sections that each carry one, where a third chevron is the repetition rather than the signal
|
|
48
|
+
- **openOnHover** `boolean` · default false — The menu is one of several things on a bar that open, and the others open on hover — a switcher beside a row of navigation sections, where a reader who has learned that the sections open under the pointer meets one control that does not and reads it as broken. …
|
|
49
|
+
- never: A menu whose rows do something on the spot rather than go somewhere. Hover is an accident as often as it is an intention, and a set opened by accident is one a reader can act on by accident
|
|
50
|
+
- **trigger** `node` · optional — A control this component should open rather than draw — one whose mark is the whole of it, with no words to read. …
|
|
51
|
+
- never: Anything that is not a button. A menu opened by a div is a menu a keyboard cannot reach, and one opened by this package's Button with an href is a link that does not navigate — Button was an anchor always when this component drew its own trigger, which is why it did. …
|
|
52
|
+
- **open** `boolean` · optional — The page holds whether the menu is open, and this component stops holding it. For the case where something outside has to shut it — a navigation bar that closes its menu when another one opens. …
|
|
53
|
+
- never: Opening it on arrival. A menu that opens itself is a panel the visitor did not ask for, over content they came to read — and the browser scrolls whatever takes focus into view, so it moves the page as well
|
|
54
|
+
- **defaultOpen** `boolean` · optional — A specimen — a documentation page, the preview's own stage — where the menu has to be on screen to be looked at. This component still holds the state afterwards
|
|
55
|
+
- never: A real page. It is the same objection as open's, without even a prop the page could use to close it again
|
|
56
|
+
- **onOpenChange** `callback` · optional — Something outside has to know — a navigation bar shutting its other menus, a page that dims behind an open one. Required in practice alongside open, which is the only way a driven menu ever closes
|
|
57
|
+
- never: Running what the row does. That is the row's own onSelect, and a menu cannot tell you which one was pressed — it only knows that it shut
|
|
58
|
+
|
|
59
|
+
## Inside it
|
|
60
|
+
|
|
61
|
+
- Takes only MenuItem.
|
|
62
|
+
- 6 components are refused inside it; the list and the reasons are in the long document.
|
|
63
|
+
- Renders 6 parts: root, trigger, icon, label, chevron, surface.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/dropdownmenu.md`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- GENERATED from faqaccordion.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# FaqAccordion
|
|
4
|
+
|
|
5
|
+
A section of questions and answers: a heading over an Accordion, one question open at a time. …
|
|
6
|
+
|
|
7
|
+
`import { FaqAccordion } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- The questions a reader asks before acting — fees, limits, how long a withdrawal takes — near the end of a landing page or on a help page
|
|
12
|
+
- Objections a page has to answer without making every reader read every answer
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- The answers are short enough to read all at once → **FeatureBullets**
|
|
17
|
+
- Each item is a feature, not a question → **FeatureCards**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- Content a reader must see — terms, risk warnings, anything the page is obliged to show. A folded answer is one most readers never open
|
|
22
|
+
- Navigation. A row that opens to a list of links is a menu wearing a question
|
|
23
|
+
|
|
24
|
+
## Props
|
|
25
|
+
|
|
26
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints. A marketing page is white, and a band that wants to be seen as a band takes one of the other two — so this is how a page builds its rhythm: white, white, grey, white, dark. …
|
|
27
|
+
- `page` — The default, and the page's own white. A section that has nothing to separate itself from what is above it — most of them — and the ground a reader is already on
|
|
28
|
+
- `subtle` — A quiet step off the page, for a band that wants to read as its own section without changing the page's voice — the reference design's slate FAQ. …
|
|
29
|
+
- `strong` — `color.bg.brand-strong`, the dark band. It stops the page rather than dividing it, so it is for a section a reader should arrive at — and one per page is usually one more than enough. …
|
|
30
|
+
- never: Marking importance. Every section on a page painted a ground is a page with no emphasis left
|
|
31
|
+
- **title** `string` · required — Always. What the questions are about, in the fewest words — "Frequently asked questions", "Withdrawals"
|
|
32
|
+
- never: A question. The rows are the questions; the heading is what they share
|
|
33
|
+
|
|
34
|
+
## Inside it
|
|
35
|
+
|
|
36
|
+
- Takes only AccordionItem.
|
|
37
|
+
- At least 2, no ceiling — fewer is not this component and more is a different one.
|
|
38
|
+
- 7 components are refused inside it; the list and the reasons are in the long document.
|
|
39
|
+
- Renders 4 parts: root, inner, title, list.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/faqaccordion.md`.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!-- GENERATED from featurebullets.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# FeatureBullets
|
|
4
|
+
|
|
5
|
+
A section pairing a claim with a ruled list of what something includes, beside one picture. …
|
|
6
|
+
|
|
7
|
+
`import { FeatureBullets } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A page has to list what a product or a plan includes, and the list is the argument
|
|
12
|
+
- Several benefits are each one line long and are read by scanning rather than reading
|
|
13
|
+
- A claim needs something beside it, and a picture is the only thing there is to put there
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- The items are two or three words and belong on one line → **Badge**
|
|
18
|
+
- Each item needs a heading and a paragraph of its own → **Card**
|
|
19
|
+
- The section opens the page → **ProductHero**
|
|
20
|
+
|
|
21
|
+
## Never
|
|
22
|
+
|
|
23
|
+
- A comparison. Every line here is included and marked so; a list where some items are absent needs a mark for absence, which this has no way to say
|
|
24
|
+
- Running prose broken into lines. A check against a sentence claims the sentence is a feature
|
|
25
|
+
- The page's opening or closing band. This is a section in the middle of a page and carries no navigation of its own
|
|
26
|
+
|
|
27
|
+
## Props
|
|
28
|
+
|
|
29
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints. A marketing page is white, and a band that wants to be seen as a band takes one of the other two — so this is how a page builds its rhythm: white, white, grey, white, dark. …
|
|
30
|
+
- `page` — The default, and the page's own white. A section that has nothing to separate itself from what is above it — most of them — and the ground a reader is already on
|
|
31
|
+
- `subtle` — A quiet step off the page, for a band that wants to read as its own section without changing the page's voice. The one to reach for first when two sections need telling apart. …
|
|
32
|
+
- `strong` — `color.bg.brand-strong`, the dark band. It stops the page rather than dividing it, so it is for a section a reader should arrive at — and one per page is usually one more than enough
|
|
33
|
+
- never: Marking importance. Every section on a page painted dark is a page with no emphasis left, and a reader stops reading the grounds as meaning anything. Alternating for its own sake is the same mistake more slowly. And never the brand's own coral, `color.bg.brand`, which is not offered here. …
|
|
34
|
+
- **mediaPosition** `enum` · default "end" — Which side the picture takes at full width. Alternating it down a page is what stops three of these in a row reading as one long column, and it is the page's decision rather than this section's — which is why it is a prop and not a rule. …
|
|
35
|
+
- `end` — The default. The list is read first, which is the order the section argues in
|
|
36
|
+
- `start` — The second of two on a page, so the two do not read as one column with a picture stuck to one side
|
|
37
|
+
- never: Moving the picture on a phone. There is one column there and the list leads it
|
|
38
|
+
- **title** `string` · required — Always. What the list is a list of, in the fewest words that say it
|
|
39
|
+
- never: A sentence. The list underneath is the argument; this only has to name it
|
|
40
|
+
- **bullets** `data` · required — Always. One line per thing included, each short enough to take in at a glance. Strings rather than nodes, because every line is marked the same way and a line free to bring its own mark is a list that stops being one
|
|
41
|
+
- never: A sentence per line, or a line that is not included in what the title names. The mark against each one is a claim the page is making
|
|
42
|
+
- **media** `node` · required — Always. The picture that sits beside the list — a screenshot, a photograph, an illustration. …
|
|
43
|
+
- never: Anything a reader has to read or press. It is held to a square and cropped to fill it, so words in it are cropped too
|
|
44
|
+
|
|
45
|
+
## Inside it
|
|
46
|
+
|
|
47
|
+
- 8 components are refused inside it; the list and the reasons are in the long document.
|
|
48
|
+
- Renders 10 parts: root, inner, split, content, title, list, item, mark, text, media.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/featurebullets.md`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!-- GENERATED from featurecards.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# FeatureCards
|
|
4
|
+
|
|
5
|
+
A section that opens with a heading and sets a grid of cards under it — the shape a marketing page uses for “why choose us” and “what you get”. …
|
|
6
|
+
|
|
7
|
+
`import { FeatureCards } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- Three or four things a product does, each a heading and a sentence, read side by side and compared at a glance
|
|
12
|
+
- A set of destinations — markets, platforms, tools — each a card a reader presses to go there
|
|
13
|
+
- One feature that deserves the whole row in a card of its own — the words beside a large picture, carded on the section's ground
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- Each item is one line, and the list is the argument → **FeatureBullets**
|
|
18
|
+
- One claim beside a picture, with no card around it → **FeatureSplit**
|
|
19
|
+
- The items are read in order, one leading to the next → **FeatureScroll**
|
|
20
|
+
|
|
21
|
+
## Never
|
|
22
|
+
|
|
23
|
+
- More than eight cards. Past two rows a grid stops being compared and starts being scanned, and that is a page of its own
|
|
24
|
+
- The page's opening band. This sits under the page's heading, never in place of it
|
|
25
|
+
|
|
26
|
+
## Props
|
|
27
|
+
|
|
28
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints. A marketing page is white, and a band that wants to be seen as a band takes one of the other two — so this is how a page builds its rhythm: white, white, grey, white, dark. …
|
|
29
|
+
- `page` — The default, and the page's own white. A section that has nothing to separate itself from what is above it — most of them — and the ground a reader is already on
|
|
30
|
+
- `subtle` — A quiet step off the page, for a band that wants to read as its own section without changing the page's voice. The one to reach for first when two sections need telling apart. …
|
|
31
|
+
- `strong` — `color.bg.brand-strong`, the dark band. It stops the page rather than dividing it, so it is for a section a reader should arrive at — and one per page is usually one more than enough. …
|
|
32
|
+
- never: Marking importance. Every section on a page painted dark is a page with no emphasis left, and a reader stops reading the grounds as meaning anything. Alternating for its own sake is the same mistake more slowly. And never the brand's own coral, `color.bg.brand`, which is not offered here. …
|
|
33
|
+
- **title** `string` · required — Always. What the cards are, in the fewest words that name them — "Why trade with Deriv", "Markets you can trade"
|
|
34
|
+
- never: A sentence. The line under it is for the sentence
|
|
35
|
+
- **description** `string` · optional — A line saying what the set has in common, when the title alone does not
|
|
36
|
+
- never: A paragraph, or a summary of every card. The cards say what they are; this only says why they are together
|
|
37
|
+
- **link** `node` · optional — A way on to the page the whole set belongs to — "See all markets". A standalone Link, under the line
|
|
38
|
+
- never: A button. The cards are the actions here, and a Button over them would be a second, louder one
|
|
39
|
+
|
|
40
|
+
## Inside it
|
|
41
|
+
|
|
42
|
+
- Takes only Card, CardButton.
|
|
43
|
+
- At least 1, at most 8 — fewer is not this component and more is a different one.
|
|
44
|
+
- 6 components are refused inside it; the list and the reasons are in the long document.
|
|
45
|
+
- Renders 8 parts: root, inner, header, title, description, link, grid, item.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/featurecards.md`.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!-- GENERATED from featurescroll.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# FeatureScroll
|
|
4
|
+
|
|
5
|
+
A section that gives a set of things one screen each, with the picture pinned beside the words while a reader is on them. …
|
|
6
|
+
|
|
7
|
+
`import { FeatureScroll } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A page has three or more things of the same kind to explain, each with a picture worth a screen — the markets a broker offers, the platforms it runs, the steps of an account opening …
|
|
12
|
+
- The set is meant to be walked through rather than compared, and a reader is expected to scroll it
|
|
13
|
+
- The set comes from somewhere — a CMS, a registry, a filtered list — rather than being written out by hand
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- There are three or four items a reader is meant to compare → **FeatureCards**
|
|
18
|
+
- The set is lines rather than things — what an account includes → **FeatureBullets**
|
|
19
|
+
- There is one point to make → **FeatureSplit**
|
|
20
|
+
- The section opens the page → **LandingHero**
|
|
21
|
+
|
|
22
|
+
## Never
|
|
23
|
+
|
|
24
|
+
- Two items. A set given a screen each has to be worth the travel, and a pair is worth one screen with both on it
|
|
25
|
+
- A list of links. The stops are things with pictures and sentences; a set of destinations belongs in a navigation panel or a footer's columns
|
|
26
|
+
- Anything a reader has to act on. This is a walk through a set, and a form or a price in the middle of it is a decision asked at the point a reader is least ready to make one
|
|
27
|
+
- A set whose stops each need their own arrangement. Every stop here is the same shape by construction, which is what makes the set a set — a page wanting one stop to differ wants several FeatureSplits instead
|
|
28
|
+
|
|
29
|
+
## Props
|
|
30
|
+
|
|
31
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints. A marketing page is white, and a band that wants to be seen as a band takes one of the other two — so this is how a page builds its rhythm: white, white, grey, white, dark. …
|
|
32
|
+
- `page` — The default, and the page's own white. A section that has nothing to separate itself from what is above it — most of them — and the ground a reader is already on
|
|
33
|
+
- `subtle` — A quiet step off the page, for a band that wants to read as its own section without changing the page's voice. The one to reach for first when two sections need telling apart. …
|
|
34
|
+
- `strong` — `color.bg.brand-strong`, the dark band. It stops the page rather than dividing it, so it is for a section a reader should arrive at — and one per page is usually one more than enough
|
|
35
|
+
- never: Marking importance. Every section on a page painted dark is a page with no emphasis left, and a reader stops reading the grounds as meaning anything. Alternating for its own sake is the same mistake more slowly. And never the brand's own coral, `color.bg.brand`, which is not offered here. …
|
|
36
|
+
- **mediaPosition** `enum` · default "end" — Which side the pictures pin to, for every stop at once. …
|
|
37
|
+
- `end` — The default. The words are read first, which is the order a reader’s eye takes a two-up row in
|
|
38
|
+
- `start` — The pictures lead, for a section following one that put its own the other way — two scrolls facing the same way read as one very long column
|
|
39
|
+
- never: Moving the pictures on a phone. There is one column there, and the picture sits under each name whichever side this names
|
|
40
|
+
- **title** `string` · required — Always. What the set is a set of, in the fewest words that say it — 'All your markets in one place'. It is the only thing a reader sees before committing to several screens of scrolling, so it has to say what is coming
|
|
41
|
+
- never: A claim about the first stop. The heading is over the whole set; an argument belongs in the stop it argues for
|
|
42
|
+
- **steps** `data` · required — Always. The stops, in the order a reader meets them. Three at least — the section is built on each one having a screen, and a pair is worth one screen with both on it. …
|
|
43
|
+
- never: A set assembled to fill the section. Each stop costs a reader a screen of scrolling, so a stop that is there for symmetry is a screen nobody wanted
|
|
44
|
+
|
|
45
|
+
## Inside it
|
|
46
|
+
|
|
47
|
+
- 10 components are refused inside it; the list and the reasons are in the long document.
|
|
48
|
+
- Renders 11 parts: root, inner, heading, steps, step, content, title, description, link, media, picture.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/featurescroll.md`.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!-- GENERATED from featuresplit.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# FeatureSplit
|
|
4
|
+
|
|
5
|
+
A section putting one claim, a line explaining it and a way onward beside a single picture. …
|
|
6
|
+
|
|
7
|
+
`import { FeatureSplit } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A page needs one more point about something it has already introduced, with a picture to carry it
|
|
12
|
+
- The point is a sentence rather than a list, and does not earn a set of cards
|
|
13
|
+
- A section needs a way onward that is not a call to action — a link to the page that says more
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- The point is several things the reader gets, each one line long → **FeatureBullets**
|
|
18
|
+
- There are three or four points and each needs its own picture → **FeatureCards**
|
|
19
|
+
- The section opens the page → **ProductHero**
|
|
20
|
+
|
|
21
|
+
## Never
|
|
22
|
+
|
|
23
|
+
- A list. Two sentences separated by a full stop is not a list, and a reader scanning for several things will miss the second — that is what FeatureBullets is for
|
|
24
|
+
- The page's opening or closing band. This is a section in the middle of a page and carries no navigation of its own
|
|
25
|
+
- A call to action. The way onward here is a link to somewhere that says more, not the thing the page wants a reader to do
|
|
26
|
+
|
|
27
|
+
## Props
|
|
28
|
+
|
|
29
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints. A marketing page is white, and a band that wants to be seen as a band takes one of the other two — so this is how a page builds its rhythm: white, white, grey, white, dark. …
|
|
30
|
+
- `page` — The default, and the page's own white. A section that has nothing to separate itself from what is above it — most of them — and the ground a reader is already on
|
|
31
|
+
- `subtle` — A quiet step off the page, for a band that wants to read as its own section without changing the page's voice. The one to reach for first when two sections need telling apart. …
|
|
32
|
+
- `strong` — `color.bg.brand-strong`, the dark band. It stops the page rather than dividing it, so it is for a section a reader should arrive at — and one per page is usually one more than enough
|
|
33
|
+
- never: Marking importance. Every section on a page painted dark is a page with no emphasis left, and a reader stops reading the grounds as meaning anything. Alternating for its own sake is the same mistake more slowly. And never the brand's own coral, `color.bg.brand`, which is not offered here. …
|
|
34
|
+
- **mediaPosition** `enum` · default "end" — Which side the picture takes at full width. Alternating it down a page is what stops three of these in a row reading as one long column, and it is the page's decision rather than this section's — which is why it is a prop and not a rule. …
|
|
35
|
+
- `end` — The default. The claim is read first, which is the order the section argues in
|
|
36
|
+
- `start` — The second of two on a page, so the two do not read as one column with a picture stuck to one side
|
|
37
|
+
- never: Moving the picture on a phone. There is one column there and the words lead it
|
|
38
|
+
- **title** `string` · required — Always. The one claim the section makes, in the fewest words that say it
|
|
39
|
+
- never: A sentence. The description underneath carries the argument; this only has to name it
|
|
40
|
+
- **description** `string` · optional — The lines under the title that say what the claim above means, for a reader not convinced by the claim alone. …
|
|
41
|
+
- never: A paragraph. Past about two hundred characters the text column runs longer than the square beside it and the two halves stop lining up, which is the one thing a split has to get right. The reference design caps it at exactly that
|
|
42
|
+
- **link** `node` · optional — The section has somewhere to send a reader who wants more than it says — the page this one is a summary of. …
|
|
43
|
+
- never: The page's main call to action. This is a way onward from a supporting point, and a primary button here competes with the one the page actually wants pressed
|
|
44
|
+
- **media** `node` · required — Always. The picture that sits beside the claim — a screenshot, a photograph, an illustration. The section is a split and the picture is one half of it: without one the claim runs to a measure it was never sized for
|
|
45
|
+
- never: Anything a reader has to read or press. It is held to a square and cropped to fill it, so words in it are cropped too
|
|
46
|
+
|
|
47
|
+
## Inside it
|
|
48
|
+
|
|
49
|
+
- 9 components are refused inside it; the list and the reasons are in the long document.
|
|
50
|
+
- Renders 8 parts: root, inner, split, content, title, description, link, media.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/featuresplit.md`.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<!-- GENERATED from filterchip.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# FilterChip
|
|
4
|
+
|
|
5
|
+
A token the reader turns on and off in place, standing for one narrowing of the set shown beside it. …
|
|
6
|
+
|
|
7
|
+
`import { FilterChip } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- An index is long enough to be worth cutting down and its categories are few enough to show in full — a blog filtered by topic, a help centre filtered by product, a market list filtered by asset class …
|
|
12
|
+
- The choice is small enough that a form control would be more machinery than it deserves — turning one topic on is not a question worth a checkbox and a label
|
|
13
|
+
- What is chosen has to stay visible while the reader reads what it did, so the narrowing and the list it produced can be read together
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- The token stands for a narrowing already applied, which the reader drops rather than turns off → **RemovableChip**
|
|
18
|
+
- The thing named cannot be acted on and is there to be read — a tag on an article, a status on a card → **Badge**
|
|
19
|
+
- The chips are really the navigation of the page, and pressing one changes what the page is → **Tab**
|
|
20
|
+
- Pressing it goes somewhere — a category page with its own address → **Link**
|
|
21
|
+
|
|
22
|
+
## Never
|
|
23
|
+
|
|
24
|
+
- An action. It is pressed to say a thing applies, and nothing else — one that submits or navigates is a button wearing a token's shape, and a reader cannot tell which they have until they press it
|
|
25
|
+
- A set so long it wraps into several rows. Chips are read as a group at a glance, and past a handful the reading costs more than a list would
|
|
26
|
+
- Carrying the chosen state in hue alone. Two colours of the same lightness are no difference to a reader who cannot separate them, which is why the chosen ground travels the whole way from the page's ground to the darkest one this package has rather than to a tint of the same weight
|
|
27
|
+
|
|
28
|
+
## Props
|
|
29
|
+
|
|
30
|
+
- **selected** `boolean` · default false — The narrowing currently applies. It is the consumer's to hold, because the list and the chip are one fact — a chip keeping its own copy is how the two come to disagree
|
|
31
|
+
- never: Marking something as important, or as the default. Chosen means the reader chose it, and one that arrives already on implies an act nobody took
|
|
32
|
+
- **size** `enum` · default "sm" — How dense the row is, matched to whatever it sits beside. …
|
|
33
|
+
- `sm` — The default. A step under the button or field it stands beside rather than level with it, which is what keeps a row of narrowings from reading as a row of calls to action
|
|
34
|
+
- `md` — A touch-first layout, or a filter row in a hero band where the chips carry more weight. …
|
|
35
|
+
- never: Marking one chip in a row as more important. They are a set of equals and a row of mismatched heights reads as a mistake before it reads as emphasis
|
|
36
|
+
- **content** `enum` · default "none" — What the chip carries after its words, where it carries anything. It names the kind rather than being inferred from which node arrived, so exactly one thing can be in the slot and a leftover prop is inert rather than fighting for the space
|
|
37
|
+
- `none` — Nothing after the words. Most chips, and the one to reach for unless something earns the space in a row read at a glance
|
|
38
|
+
- `icon` — A glyph qualifying the narrowing rather than naming it — a mark that a topic is new, or that it came from somewhere else. …
|
|
39
|
+
- `badge` — How many entries the narrowing would leave, which is the fact a reader wants before they press. …
|
|
40
|
+
- `custom` — The row needs a mark neither of the named kinds is. …
|
|
41
|
+
- never: Repeating the label, or naming the narrowing twice. The slot qualifies what the words already said; a chip whose trailing mark restates them has spent the space for nothing
|
|
42
|
+
- **label** `string` · required — Always, and required on that account — it is the whole of what the chip says. Short enough to read at a glance: a token carrying a sentence has stopped being one
|
|
43
|
+
- never: Describing what pressing it does. The chip names the narrowing, and what happens is that the narrowing applies
|
|
44
|
+
- **leadingIcon** `node` · optional — A glyph makes the kind of narrowing faster to recognise than its name alone. It sits before the words and never replaces them. …
|
|
45
|
+
- never: Decoration, or a second copy of what the word says. A row where every chip carries a mark that adds nothing reads more slowly than plain words would
|
|
46
|
+
- **trailingIcon** `node` · optional — The glyph shown when content is icon. Sized and coloured with the chip rather than on its own terms, so a row of them reads as one set
|
|
47
|
+
- never: Filling the slot on its own. `content` decides what is shown, so this is inert until it names icon — which is what stops two marks arriving at once when a chip changes its mind about what it carries
|
|
48
|
+
- **badge** `node` · optional — The count shown when content is badge. A Badge rather than bare type, so the number reads as a fact of its own rather than as part of the label — and so it carries its own colour, which the chip does not decide
|
|
49
|
+
- never: Filling the slot on its own. `content` decides what is shown, so this is inert until it names badge
|
|
50
|
+
- **custom** `node` · optional — Whatever is shown when content is custom. Nothing here is described by the documentation or the library, which is the cost of the escape hatch
|
|
51
|
+
- never: Filling the slot on its own. `content` decides what is shown, so this is inert until it names custom
|
|
52
|
+
- **onSelect** `callback` · optional — What hears the press. It reports what the chip is about to become rather than that it was pressed, so a consumer writes the value back without working out which way it went
|
|
53
|
+
- never: Reading the event. The signature is the new state because that is the decision the reader made; a handler reaching for the event recomputes what it was handed
|
|
54
|
+
|
|
55
|
+
## The type refuses
|
|
56
|
+
|
|
57
|
+
- content="icon" with trailingIcon=null — content is icon and there is nothing to show, which renders a gap where something was promised
|
|
58
|
+
- content="badge" with badge=null — content is badge and there is nothing to show, which renders a gap where something was promised
|
|
59
|
+
- content="custom" with custom=null — content is custom and there is nothing to show, which renders a gap where something was promised
|
|
60
|
+
|
|
61
|
+
## Inside it
|
|
62
|
+
|
|
63
|
+
- 5 components are refused inside it; the list and the reasons are in the long document.
|
|
64
|
+
- Renders 4 parts: root, icon, label, trailing.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/filterchip.md`.
|