@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.
- package/.llm/components/awards.md +209 -0
- package/.llm/components/background.md +89 -40
- package/.llm/components/bottomsheet.md +5 -0
- package/.llm/components/comparisoncards.md +257 -0
- package/.llm/components/comparisontable.md +231 -0
- package/.llm/components/ctabanner.md +9 -12
- package/.llm/components/ctabannerslider.md +15 -2
- package/.llm/components/datatable.md +273 -0
- package/.llm/components/downloadbanner.md +283 -0
- package/.llm/components/featurecards.md +41 -3
- package/.llm/components/featurecardscarousel.md +311 -0
- package/.llm/components/featuresplit.md +5 -0
- package/.llm/components/featurestack.md +227 -0
- package/.llm/components/illustrationcard.md +2 -2
- package/.llm/components/illustrationscene.md +6 -10
- package/.llm/components/imagebanner.md +278 -0
- package/.llm/components/navbar.md +1 -1
- package/.llm/components/navbaritem.md +4 -0
- package/.llm/components/pageheader.md +4 -3
- package/.llm/components/paginationdots.md +6 -1
- package/.llm/components/producthero.md +35 -11
- package/.llm/components/resourcebanner.md +247 -0
- package/.llm/components/scenescroll.md +222 -0
- package/.llm/components/select.md +17 -0
- package/.llm/components/stats.md +219 -0
- package/.llm/components/steps.md +286 -0
- package/.llm/components/stickycards.md +251 -0
- package/.llm/components/tableheadercell.md +19 -0
- package/.llm/components/teamgrid.md +243 -0
- package/.llm/components/testimonialrow.md +5 -0
- package/.llm/components/testimonialslider.md +14 -1
- package/.llm/components/textarea.md +13 -0
- package/.llm/components/textinput.md +13 -0
- package/.llm/components/textscroll.md +187 -0
- package/.llm/components/tiers.md +227 -0
- package/.llm/digest/awards.md +45 -0
- package/.llm/digest/background.md +11 -10
- package/.llm/digest/bottomsheet.md +2 -0
- package/.llm/digest/comparisoncards.md +51 -0
- package/.llm/digest/comparisontable.md +53 -0
- package/.llm/digest/ctabanner.md +4 -4
- package/.llm/digest/ctabannerslider.md +4 -0
- package/.llm/digest/datatable.md +65 -0
- package/.llm/digest/downloadbanner.md +65 -0
- package/.llm/digest/featurecards.md +1 -1
- package/.llm/digest/featurecardscarousel.md +54 -0
- package/.llm/digest/featuresplit.md +1 -0
- package/.llm/digest/featurestack.md +48 -0
- package/.llm/digest/illustrationscene.md +2 -3
- package/.llm/digest/imagebanner.md +64 -0
- package/.llm/digest/navbaritem.md +1 -0
- package/.llm/digest/pageheader.md +2 -1
- package/.llm/digest/paginationdots.md +3 -1
- package/.llm/digest/producthero.md +4 -2
- package/.llm/digest/resourcebanner.md +53 -0
- package/.llm/digest/scenescroll.md +49 -0
- package/.llm/digest/select.md +5 -0
- package/.llm/digest/stats.md +46 -0
- package/.llm/digest/steps.md +55 -0
- package/.llm/digest/stickycards.md +52 -0
- package/.llm/digest/tableheadercell.md +4 -0
- package/.llm/digest/teamgrid.md +53 -0
- package/.llm/digest/testimonialrow.md +2 -0
- package/.llm/digest/testimonialslider.md +4 -0
- package/.llm/digest/textarea.md +4 -0
- package/.llm/digest/textinput.md +4 -0
- package/.llm/digest/textscroll.md +43 -0
- package/.llm/digest/tiers.md +50 -0
- package/.llm/index.md +19 -3
- package/.llm/tokens.md +26 -1
- package/AGENTS.md +17 -1
- package/dist/components/awards-data.d.ts +24 -0
- package/dist/components/awards-data.js +11 -0
- package/dist/components/block-image-data.d.ts +24 -0
- package/dist/components/block-image-data.js +9 -0
- package/dist/components/blocks/awards/Awards.css +134 -0
- package/dist/components/blocks/awards/Awards.d.ts +24 -0
- package/dist/components/blocks/awards/Awards.js +114 -0
- package/dist/components/blocks/awards/Awards.types.d.ts +31 -0
- package/dist/components/blocks/awards/Awards.types.js +16 -0
- package/dist/components/blocks/awards/awards-impl.css +222 -0
- package/dist/components/blocks/cards-of.d.ts +16 -0
- package/dist/components/blocks/cards-of.js +23 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.css +195 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.d.ts +24 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.js +75 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.types.d.ts +49 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.types.js +26 -0
- package/dist/components/blocks/comparison-cards/comparison-cards-impl.css +262 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.css +111 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.d.ts +25 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.js +100 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.types.d.ts +36 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.types.js +15 -0
- package/dist/components/blocks/comparison-table/comparison-table-impl.css +143 -0
- package/dist/components/blocks/cta-banner/CtaBanner.css +1 -0
- package/dist/components/blocks/cta-banner/CtaBanner.js +2 -2
- package/dist/components/blocks/cta-banner/CtaBanner.types.d.ts +4 -3
- package/dist/components/blocks/cta-banner/CtaBanner.types.js +1 -1
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.css +1 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.d.ts +1 -1
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.js +6 -2
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.d.ts +8 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.js +1 -1
- package/dist/components/blocks/data-table/DataTable.css +170 -0
- package/dist/components/blocks/data-table/DataTable.d.ts +29 -0
- package/dist/components/blocks/data-table/DataTable.js +84 -0
- package/dist/components/blocks/data-table/DataTable.types.d.ts +69 -0
- package/dist/components/blocks/data-table/DataTable.types.js +19 -0
- package/dist/components/blocks/data-table/data-table-impl.css +155 -0
- package/dist/components/blocks/download-banner/DownloadBanner.css +228 -0
- package/dist/components/blocks/download-banner/DownloadBanner.d.ts +28 -0
- package/dist/components/blocks/download-banner/DownloadBanner.js +75 -0
- package/dist/components/blocks/download-banner/DownloadBanner.types.d.ts +56 -0
- package/dist/components/blocks/download-banner/DownloadBanner.types.js +23 -0
- package/dist/components/blocks/download-banner/download-banner-impl.css +216 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.css +1 -0
- package/dist/components/blocks/faq-accordion/faq-accordion-impl.css +3 -7
- package/dist/components/blocks/feature-bullets/FeatureBullets.css +1 -0
- package/dist/components/blocks/feature-bullets/feature-bullets-impl.css +14 -1
- package/dist/components/blocks/feature-cards/FeatureCards.css +1 -0
- package/dist/components/blocks/feature-cards/FeatureCards.d.ts +2 -1
- package/dist/components/blocks/feature-cards/FeatureCards.js +4 -21
- package/dist/components/blocks/feature-cards/feature-cards-impl.css +10 -9
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.css +115 -0
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.d.ts +30 -0
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.js +160 -0
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.types.d.ts +52 -0
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.types.js +17 -0
- package/dist/components/blocks/feature-cards-carousel/feature-cards-carousel-impl.css +207 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.css +1 -0
- package/dist/components/blocks/feature-split/FeatureSplit.css +1 -0
- package/dist/components/blocks/feature-split/feature-split-impl.css +14 -1
- package/dist/components/blocks/feature-stack/FeatureStack.css +86 -0
- package/dist/components/blocks/feature-stack/FeatureStack.d.ts +19 -0
- package/dist/components/blocks/feature-stack/FeatureStack.js +27 -0
- package/dist/components/blocks/feature-stack/FeatureStack.types.d.ts +34 -0
- package/dist/components/blocks/feature-stack/FeatureStack.types.js +14 -0
- package/dist/components/blocks/feature-stack/feature-stack-impl.css +87 -0
- package/dist/components/blocks/image-banner/ImageBanner.css +133 -0
- package/dist/components/blocks/image-banner/ImageBanner.d.ts +32 -0
- package/dist/components/blocks/image-banner/ImageBanner.js +41 -0
- package/dist/components/blocks/image-banner/ImageBanner.types.d.ts +54 -0
- package/dist/components/blocks/image-banner/ImageBanner.types.js +14 -0
- package/dist/components/blocks/image-banner/image-banner-impl.css +281 -0
- package/dist/components/blocks/landing-hero/LandingHero.css +1 -0
- package/dist/components/blocks/logo-columns/LogoColumns.css +1 -0
- package/dist/components/blocks/logo-rows/LogoRows.css +1 -0
- package/dist/components/blocks/page-header/PageHeader.css +1 -0
- package/dist/components/blocks/page-header/PageHeader.js +2 -2
- package/dist/components/blocks/page-header/PageHeader.types.d.ts +4 -2
- package/dist/components/blocks/page-header/PageHeader.types.js +1 -1
- package/dist/components/blocks/page-header/page-header-impl.css +5 -3
- package/dist/components/blocks/product-hero/ProductHero.css +8 -3
- package/dist/components/blocks/product-hero/ProductHero.d.ts +1 -1
- package/dist/components/blocks/product-hero/ProductHero.js +5 -2
- package/dist/components/blocks/product-hero/ProductHero.types.d.ts +5 -1
- package/dist/components/blocks/product-hero/ProductHero.types.js +1 -0
- package/dist/components/blocks/product-hero/product-hero-impl.css +43 -12
- package/dist/components/blocks/resource-banner/ResourceBanner.css +106 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.d.ts +32 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.js +51 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.types.d.ts +44 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.types.js +14 -0
- package/dist/components/blocks/resource-banner/resource-banner-impl.css +69 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.css +93 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.d.ts +36 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.js +54 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.types.d.ts +32 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.types.js +15 -0
- package/dist/components/blocks/scene-scroll/scene-scroll-impl.css +275 -0
- package/dist/components/blocks/stats/Stats.css +139 -0
- package/dist/components/blocks/stats/Stats.d.ts +24 -0
- package/dist/components/blocks/stats/Stats.js +120 -0
- package/dist/components/blocks/stats/Stats.types.d.ts +36 -0
- package/dist/components/blocks/stats/Stats.types.js +19 -0
- package/dist/components/blocks/stats/stats-count.d.ts +34 -0
- package/dist/components/blocks/stats/stats-count.js +61 -0
- package/dist/components/blocks/stats/stats-impl.css +284 -0
- package/dist/components/blocks/stats/use-wheel.d.ts +37 -0
- package/dist/components/blocks/stats/use-wheel.js +126 -0
- package/dist/components/blocks/steps/Steps.css +202 -0
- package/dist/components/blocks/steps/Steps.d.ts +32 -0
- package/dist/components/blocks/steps/Steps.js +65 -0
- package/dist/components/blocks/steps/Steps.types.d.ts +48 -0
- package/dist/components/blocks/steps/Steps.types.js +21 -0
- package/dist/components/blocks/steps/steps-impl.css +216 -0
- package/dist/components/blocks/steps/use-turn.d.ts +33 -0
- package/dist/components/blocks/steps/use-turn.js +75 -0
- package/dist/components/blocks/sticky-cards/StickyCards.css +154 -0
- package/dist/components/blocks/sticky-cards/StickyCards.d.ts +35 -0
- package/dist/components/blocks/sticky-cards/StickyCards.js +153 -0
- package/dist/components/blocks/sticky-cards/StickyCards.types.d.ts +43 -0
- package/dist/components/blocks/sticky-cards/StickyCards.types.js +18 -0
- package/dist/components/blocks/sticky-cards/sticky-cards-impl.css +393 -0
- package/dist/components/blocks/team-grid/TeamGrid.css +159 -0
- package/dist/components/blocks/team-grid/TeamGrid.d.ts +28 -0
- package/dist/components/blocks/team-grid/TeamGrid.js +74 -0
- package/dist/components/blocks/team-grid/TeamGrid.types.d.ts +51 -0
- package/dist/components/blocks/team-grid/TeamGrid.types.js +20 -0
- package/dist/components/blocks/team-grid/team-grid-impl.css +129 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.css +1 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.d.ts +1 -1
- package/dist/components/blocks/testimonial-row/TestimonialRow.js +4 -3
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.d.ts +3 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.js +1 -1
- package/dist/components/blocks/testimonial-row/testimonial-row-impl.css +8 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.css +1 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.d.ts +1 -1
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.js +2 -2
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.d.ts +8 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.js +1 -1
- package/dist/components/blocks/text-scroll/TextScroll.css +53 -0
- package/dist/components/blocks/text-scroll/TextScroll.d.ts +5 -0
- package/dist/components/blocks/text-scroll/TextScroll.js +71 -0
- package/dist/components/blocks/text-scroll/TextScroll.types.d.ts +22 -0
- package/dist/components/blocks/text-scroll/TextScroll.types.js +10 -0
- package/dist/components/blocks/text-scroll/text-scroll-impl.css +115 -0
- package/dist/components/blocks/tiers/Tiers.css +233 -0
- package/dist/components/blocks/tiers/Tiers.d.ts +32 -0
- package/dist/components/blocks/tiers/Tiers.js +68 -0
- package/dist/components/blocks/tiers/Tiers.types.d.ts +45 -0
- package/dist/components/blocks/tiers/Tiers.types.js +25 -0
- package/dist/components/blocks/tiers/tiers-impl.css +185 -0
- package/dist/components/blocks/use-rotation.d.ts +12 -2
- package/dist/components/blocks/use-rotation.js +6 -28
- package/dist/components/comparison-cards-data.d.ts +59 -0
- package/dist/components/comparison-cards-data.js +12 -0
- package/dist/components/comparison-table-data.d.ts +39 -0
- package/dist/components/comparison-table-data.js +11 -0
- package/dist/components/core/accordion-item/AccordionItem.css +1 -5
- package/dist/components/core/background/Background.css +23 -0
- package/dist/components/core/background/Background.d.ts +10 -4
- package/dist/components/core/background/Background.js +16 -7
- package/dist/components/core/background/Background.types.d.ts +11 -8
- package/dist/components/core/background/Background.types.js +3 -1
- package/dist/components/core/background/background-impl.css +334 -1
- package/dist/components/core/background/halftone.d.ts +11 -0
- package/dist/components/core/background/halftone.js +43 -3
- package/dist/components/core/background/patterns.d.ts +66 -0
- package/dist/components/core/background/patterns.js +244 -0
- package/dist/components/core/background/shader.d.ts +44 -0
- package/dist/components/core/background/shader.js +307 -0
- package/dist/components/core/background/use-shader.d.ts +11 -0
- package/dist/components/core/background/use-shader.js +25 -0
- package/dist/components/core/background/use-spotlight.d.ts +2 -1
- package/dist/components/core/background/use-spotlight.js +9 -1
- package/dist/components/core/bottom-sheet/BottomSheet.js +2 -2
- package/dist/components/core/bottom-sheet/BottomSheet.types.d.ts +3 -1
- package/dist/components/core/breadcrumb/Breadcrumb.d.ts +1 -0
- package/dist/components/core/breadcrumb/Breadcrumb.js +1 -0
- package/dist/components/core/breadcrumb/breadcrumb-impl.css +11 -0
- package/dist/components/core/button/button-impl.css +14 -1
- package/dist/components/core/illustration-card/IllustrationCard.js +1 -1
- package/dist/components/core/illustration-card/illustration-card-impl.css +20 -0
- package/dist/components/core/illustration-scene/IllustrationScene.css +4 -7
- package/dist/components/core/illustration-scene/IllustrationScene.types.d.ts +2 -3
- package/dist/components/core/illustration-scene/illustration-scene-impl.css +7 -1
- package/dist/components/core/link/Link.js +7 -3
- package/dist/components/core/link/link-impl.css +29 -2
- package/dist/components/core/navbar/Navbar.css +2 -2
- package/dist/components/core/navbar/Navbar.types.d.ts +1 -1
- package/dist/components/core/navbar-item/NavbarItem.d.ts +2 -1
- package/dist/components/core/navbar-item/NavbarItem.js +3 -10
- package/dist/components/core/navbar-item/NavbarItem.types.d.ts +4 -1
- package/dist/components/core/navbar-item/NavbarItem.types.js +1 -1
- package/dist/components/core/navbar-item/navbar-item-impl.css +10 -0
- package/dist/components/core/navbar-menu/navbar-menu-impl.css +9 -0
- package/dist/components/core/navbar-switcher/navbar-switcher-impl.css +19 -0
- package/dist/components/core/pagination/Pagination.js +1 -1
- package/dist/components/core/pagination/pagination-impl.css +9 -0
- package/dist/components/core/pagination-dots/PaginationDots.d.ts +1 -1
- package/dist/components/core/pagination-dots/PaginationDots.js +3 -3
- package/dist/components/core/pagination-dots/PaginationDots.types.d.ts +3 -1
- package/dist/components/core/segmented-control/SegmentedControl.css +4 -3
- package/dist/components/core/segmented-control/SegmentedControl.js +17 -3
- package/dist/components/core/segmented-control-item/SegmentedControlItem.css +2 -1
- package/dist/components/core/select/Select.js +3 -3
- package/dist/components/core/select/Select.types.d.ts +11 -1
- package/dist/components/core/select/Select.types.js +1 -1
- package/dist/components/core/tab-list/TabList.js +9 -1
- package/dist/components/core/table-header-cell/TableHeaderCell.d.ts +1 -1
- package/dist/components/core/table-header-cell/TableHeaderCell.js +5 -2
- package/dist/components/core/table-header-cell/TableHeaderCell.types.d.ts +7 -1
- package/dist/components/core/table-header-cell/TableHeaderCell.types.js +1 -1
- package/dist/components/core/text-area/TextArea.d.ts +1 -1
- package/dist/components/core/text-area/TextArea.js +2 -2
- package/dist/components/core/text-area/TextArea.types.d.ts +9 -1
- package/dist/components/core/text-area/TextArea.types.js +1 -1
- package/dist/components/core/text-input/TextInput.d.ts +1 -1
- package/dist/components/core/text-input/TextInput.js +2 -2
- package/dist/components/core/text-input/TextInput.types.d.ts +9 -1
- package/dist/components/core/text-input/TextInput.types.js +1 -1
- package/dist/components/data-table-data.d.ts +33 -0
- package/dist/components/data-table-data.js +12 -0
- package/dist/components/download-banner-data.d.ts +52 -0
- package/dist/components/download-banner-data.js +11 -0
- package/dist/components/index.d.ts +45 -0
- package/dist/components/index.js +32 -0
- package/dist/components/resource-banner-data.d.ts +34 -0
- package/dist/components/resource-banner-data.js +13 -0
- package/dist/components/scene-scroll-data.d.ts +24 -0
- package/dist/components/scene-scroll-data.js +9 -0
- package/dist/components/stats-data.d.ts +28 -0
- package/dist/components/stats-data.js +11 -0
- package/dist/components/steps-data.d.ts +38 -0
- package/dist/components/steps-data.js +13 -0
- package/dist/components/sticky-cards-data.d.ts +43 -0
- package/dist/components/sticky-cards-data.js +12 -0
- package/dist/components/team-grid-data.d.ts +38 -0
- package/dist/components/team-grid-data.js +11 -0
- package/dist/components/tiers-data.d.ts +47 -0
- package/dist/components/tiers-data.js +13 -0
- package/dist/marketing.css +77 -28
- package/package.json +1 -1
|
@@ -38,7 +38,9 @@ The band that opens a product or a market page: the one thing the page is about,
|
|
|
38
38
|
- never: A paragraph. It is held to a readable measure and set at body size; past a couple of sentences a reader scrolls rather than reads, and the actions go under the fold
|
|
39
39
|
- **actions** `node` · optional — The one or two things the page wants a reader to do. Composed by the page rather than described to this component, so a call to action is the same Button here as anywhere else on the site
|
|
40
40
|
- never: A row of destinations. Three or more controls under a title is a menu, and a reader who has to choose between five things chooses none
|
|
41
|
-
- **
|
|
41
|
+
- **image** `data` · optional — The product itself, under the claim and the actions, drawn at the picture's own proportions — a square screenshot stays square, a tall phone stays tall — and only held to the screen's limit: no taller than aspect.portrait of the column on a phone, no taller than half the band from the fold. …
|
|
42
|
+
- never: The background — that is `backgroundImage`. And beside `media`: one product, one picture. Given both, `image` is drawn and `media` ignored
|
|
43
|
+
- **media** `node` · optional — A product picture in a shape the page fixes on purpose — an AspectRatio box, which keeps its ratio across the column. Prefer `image`, which keeps the picture's own shape and adapts to it
|
|
42
44
|
- never: The background. A photograph filling the band is `backgroundImage`; this sits in front of it, in the column, and is never cropped
|
|
43
45
|
- **backgroundImage** `string` · optional — A photograph filling the whole band. It is shown as it is — nothing is painted over it, so choose one already dark enough that the title reads on it
|
|
44
46
|
- never: A flat colour, or a bright photograph. The band already paints its ground, and nothing here darkens an image on the page's behalf — a pale one leaves the claim unreadable
|
|
@@ -46,7 +48,7 @@ The band that opens a product or a market page: the one thing the page is about,
|
|
|
46
48
|
## Inside it
|
|
47
49
|
|
|
48
50
|
- 8 components are refused inside it; the list and the reasons are in the long document.
|
|
49
|
-
- Renders
|
|
51
|
+
- Renders 10 parts: root, inner, content, text, eyebrow, title, description, actions, media, image.
|
|
50
52
|
|
|
51
53
|
---
|
|
52
54
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!-- GENERATED from resourcebanner.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# ResourceBanner
|
|
4
|
+
|
|
5
|
+
A dark panel at the end of an informational section that points readers at related guides, policies or reference pages — the "here's where to read more" block. …
|
|
6
|
+
|
|
7
|
+
`import { ResourceBanner } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- Pointing readers at related guides, policies, or reference pages at the end of an informational section — the 'here's where to read more' block
|
|
12
|
+
- A section of a legal, help or safety page has said what it has to and the detail lives elsewhere — the full terms, a risk disclosure, a help-centre article
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- The block asks the reader to do something — open an account, start trading → **CtaBanner**
|
|
17
|
+
- The resources are a set of destinations each worth a heading and a sentence → **FeatureCards**
|
|
18
|
+
- The reader's questions have short answers that can be given on the page → **FaqAccordion**
|
|
19
|
+
|
|
20
|
+
## Never
|
|
21
|
+
|
|
22
|
+
- A call to action. Nothing here is a button, and a resource the page wants pressed more than the others is not a resource
|
|
23
|
+
- More than four or five links. Past that the stack competes with the words beside it, and the set is a page of links of its own
|
|
24
|
+
- Links whose words only make sense beside the heading — "Read more", "Here". The stack is read as a list, and a screen reader lists links on their own
|
|
25
|
+
|
|
26
|
+
## Props
|
|
27
|
+
|
|
28
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds the section paints behind the panel. …
|
|
29
|
+
- `page` — The default, and the page's own white. A section that has nothing to separate itself from what is above it
|
|
30
|
+
- `subtle` — The reference design's arrangement: the dark panel on the light grey band. The one to reach for when the section ends a run of white ones and wants to read as its close. …
|
|
31
|
+
- `strong` — `color.bg.brand-strong`, the dark band. …
|
|
32
|
+
- never: Marking importance. A list of further reading is the quietest thing on a page, and painting the band dark to make it louder is a page with its emphasis in the wrong place. And never the brand's coral, `color.bg.brand`, which is not offered. …
|
|
33
|
+
- **title** `string` · required — Always. What the links are for, in a few words — "Learn more about staying safe", "Read more about trading risks"
|
|
34
|
+
- never: A sentence. The description is for the sentence; the title names what the reader will find
|
|
35
|
+
- **headingLevel** `enum` · default "h2" — Matching the outline of the page around the block, so the heading keeps its place in the hierarchy rather than skipping a level. …
|
|
36
|
+
- `h2` — The default: the block is a section of the page, under the page's own h1
|
|
37
|
+
- `h3` — The block closes a section that already carries the h2 it belongs to
|
|
38
|
+
- `h4` — The block closes a subsection under an h3, on a long legal or help page whose outline runs that deep
|
|
39
|
+
- **description** `string` · optional — One sentence introducing the links — what the reader will find there, or why it is worth reading
|
|
40
|
+
- never: A summary of the links. They say what they are; this says why they are together. A second sentence is copy the reader passes on the way to the list
|
|
41
|
+
- **links** `data` · required — Always. The resources, in the order they are read — one to four, each named for what is there: the guide, the policy, the page. …
|
|
42
|
+
- never: A link that is the page's call to action, or a label that only makes sense beside the heading. Each one is heard on its own in a screen reader's list of links
|
|
43
|
+
- **externalLabel** `string` · default "(opens in a new tab)" — What an external link's accessible name ends with, so a reader who cannot see the up-right mark is told before their tab changes. Never drawn — the mark says it to everyone else. Translate it with the page
|
|
44
|
+
- **downloadLabel** `string` · default "(downloads a file)" — What a download's accessible name ends with, so a reader who cannot see the file mark knows the link saves something rather than opening a page. Never drawn. …
|
|
45
|
+
|
|
46
|
+
## Inside it
|
|
47
|
+
|
|
48
|
+
- 9 components are refused inside it; the list and the reasons are in the long document.
|
|
49
|
+
- Renders 8 parts: root, inner, panel, content, title, description, list, item.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/resourcebanner.md`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!-- GENERATED from scenescroll.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# SceneScroll
|
|
4
|
+
|
|
5
|
+
A full-screen section of two scenes — each a photograph filling the band with a heading and a line over it — that change over as the reader scrolls: the screen holds still while the second photograph dissolves in over the first and the first scene's words give way to the second's. …
|
|
6
|
+
|
|
7
|
+
`import { SceneScroll } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- Two states of one thing a page wants felt rather than listed — the markets by day and by night, a trader's screen before and after, a market open around the clock …
|
|
12
|
+
- One immersive moment on a product or campaign page, between lighter sections, where two photographs carry the argument and the words are a heading and a line each …
|
|
13
|
+
- The opening band of a campaign page built around that change, at headingLevel h1
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- There is one photograph, not two states of something → **ImageBanner**
|
|
18
|
+
- Three or more things to show, each with a picture → **FeatureScroll**
|
|
19
|
+
- The page's opening band, with an action to take → **LandingHero**
|
|
20
|
+
- One statement on its own, revealed as the reader scrolls → **TextScroll**
|
|
21
|
+
|
|
22
|
+
## Never
|
|
23
|
+
|
|
24
|
+
- Words a reader must not miss — a price, a disclaimer, a legal line. Each scene's words are on screen for only part of the pass
|
|
25
|
+
- Two of these on one page, or one beside another pinned section. Each holds the screen for a screen and a half of scrolling, and two make the page feel stuck
|
|
26
|
+
- Photographs with words in them. The words are the headings and the lines, where a screen reader and a translation reach them; a photograph saying them is under a scrim and cropped to fill
|
|
27
|
+
- An action. There is no slot for one: a button that dissolves away as the reader scrolls is one they cannot rely on, so the page's next section carries it
|
|
28
|
+
|
|
29
|
+
## Props
|
|
30
|
+
|
|
31
|
+
- **headingLevel** `enum` · default "h2" — Where the first scene's title sits in the page's outline. The second scene's title takes the level under it — h2 under an h1, h3 under an h2 — because it is the second half of the section the first one names, not a section of its own. …
|
|
32
|
+
- `h2` — The default: the section sits under the page's own h1, and the scenes' titles are drawn at font.h2
|
|
33
|
+
- `h1` — The section opens a campaign page and the first scene's title is the page's heading — the reference design's hero use. Drawn at font.h1, the opening band's size
|
|
34
|
+
- never: Making a mid-page section look like a hero. h1 is the page's heading, and a page has one
|
|
35
|
+
- **first** `data` · required — Always. The scene the section opens on: a title in a few words, a line under it where the title needs one, and the photograph filling the band behind them. Its title names the section, so it is the one to write as the section's heading. …
|
|
36
|
+
- never: A scene that says the same as the second with a different picture. The change-over is the argument; two scenes that agree have nothing to change between
|
|
37
|
+
- **second** `data` · required — Always. The scene the section changes over to, in the same shape as the first. …
|
|
38
|
+
- never: A continuation of the first scene's sentence. A reader who arrives by heading, or who scrolls past fast, reads each title on its own
|
|
39
|
+
- **link** `node` · optional — A way on for the reader who wants more — "See trading hours", "Learn more". …
|
|
40
|
+
- never: A button, or a different link per scene. One way on for the section; something to press that changed under the pointer would be the one thing a reader could not rely on
|
|
41
|
+
|
|
42
|
+
## Inside it
|
|
43
|
+
|
|
44
|
+
- 7 components are refused inside it; the list and the reasons are in the long document.
|
|
45
|
+
- Renders 9 parts: root, stage, scene, media, image, content, title, description, link.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/scenescroll.md`.
|
package/.llm/digest/select.md
CHANGED
|
@@ -71,6 +71,11 @@ A control for choosing one answer from a set the reader scans. …
|
|
|
71
71
|
- never: Marking every optional control on a form where most are optional — a marker on almost every label is noise
|
|
72
72
|
- **statusMessage** `string` · optional — Saying what the status means: what is wrong and how to fix it, what to look at, or what was confirmed
|
|
73
73
|
- never: Restating the status. "Error" beside a red control says nothing the colour has not, and the colour is the part a colour-blind reader may not get
|
|
74
|
+
- **requiredLabel** `string` · default "required" — The word drawn beside the label when requiredMark is text. Translate it with the page: the mark exists to say what it means in the reader's own language, which an English default does not
|
|
75
|
+
- **optionalLabel** `string` · default "optional" — The word drawn beside the label of an optional field. Translate it with the page, as requiredLabel is
|
|
76
|
+
- **labelTooltipLabel** `string` · optional — The accessible name of the button that opens labelTooltip. Without it the button is named "About" and the label; pass it to translate that with the page
|
|
77
|
+
- never: Visible text. It names the button to assistive technology and is never drawn
|
|
78
|
+
- **searchLabel** `string` · optional — The name and placeholder of the search field a searchable list opens with. Without it the field reads "Search" and the label; pass it to translate that with the page
|
|
74
79
|
|
|
75
80
|
## The type refuses
|
|
76
81
|
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- GENERATED from stats.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# Stats
|
|
4
|
+
|
|
5
|
+
A trust and credibility section of key numbers: a heading, a line under it where the heading needs one, and the figures — each a number and the few words that say what it counts. …
|
|
6
|
+
|
|
7
|
+
`import { Stats } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- Three to five headline numbers that prove scale or credibility — traders, markets, years, the smallest deposit — where the set is the point — read along a row from the fold, turned through one at a time on a phone …
|
|
12
|
+
- A break between two heavier sections, when the numbers alone tell the story
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- Each item needs a sentence of its own, or a picture → **FeatureCards**
|
|
17
|
+
- The number is part of a claim the page is making in words → **FeatureSplit**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- Numbers that change while the page is open — a price, a live count. The figures are written once and counted once. The phone's wheel turns between them, but no figure changes once written — a value that does is a ticker this does not draw
|
|
22
|
+
- A number nobody can stand behind. The figures are claims in the company's name; keep each one in step with its source
|
|
23
|
+
- More than six figures. Past two rows the set stops being taken in at a glance
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints, FeatureCards' axis and its reason: a band that wants to be seen as a band takes one of the other two, and the page decides the rhythm. …
|
|
28
|
+
- `page` — The default, and the page's own white. A row of figures between two sections that need nothing to separate them
|
|
29
|
+
- `subtle` — The grey band, for a row of figures that should read as a section of its own without changing the page's voice. …
|
|
30
|
+
- `strong` — `color.bg.brand-strong`, the dark band, for a set of figures a reader should arrive at — a home page's "Trade with confidence". …
|
|
31
|
+
- never: Marking importance. Every section on a page painted a ground is a page with no emphasis left. And never the brand's own coral, which is not offered: that ground belongs to the band that asks a reader to do something
|
|
32
|
+
- **title** `string` · required — Always. What the numbers prove, in the fewest words — "Trade with confidence", "Deriv in numbers"
|
|
33
|
+
- never: A figure. The figures are the content; the heading says what they add up to
|
|
34
|
+
- **description** `string` · optional — A line under the heading, when the heading alone does not say whose numbers these are or since when — "For over 25 years, a trusted partner of traders worldwide."
|
|
35
|
+
- never: A paragraph, or the figures again in words
|
|
36
|
+
- **stats** `data` · required — Always. The figures, in the order they are read along the row — three to five, each a short `value` exactly as it is to be read and a `label` of a few words. …
|
|
37
|
+
- never: A long value. "2.5M+" holds a row; "over two and a half million" breaks it on a phone. And a label longer than one line on a phone: the wheel steps by one figure's height, measured with a one-line label, so a label that wraps runs into the figure beside it
|
|
38
|
+
|
|
39
|
+
## Inside it
|
|
40
|
+
|
|
41
|
+
- 6 components are refused inside it; the list and the reasons are in the long document.
|
|
42
|
+
- Renders 13 parts: root, inner, header, title, description, list, dots, dot, item, value, amount, count, label.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/stats.md`.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<!-- GENERATED from steps.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# Steps
|
|
4
|
+
|
|
5
|
+
A two-column how-it-works section pairing a supporting picture with a numbered, ordered list of steps, each a title and a line describing it. …
|
|
6
|
+
|
|
7
|
+
`import { Steps } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A page explains a get-started or onboarding flow — opening an account, funding it, starting to trade
|
|
12
|
+
- A process has three to six steps that a reader follows in one order, each a short imperative and a sentence
|
|
13
|
+
- A setup or a how-to page — a platform's install, a deposit or a withdrawal — needs its sequence shown beside one picture
|
|
14
|
+
- The same how-it-works list, walked through on its own: with `autoplay` each step takes its turn, its rule filling as it holds, and the picture changes to that step's — a sequence shown in sequence rather than all at once …
|
|
15
|
+
|
|
16
|
+
## Something else, when
|
|
17
|
+
|
|
18
|
+
- The items have no order a reader follows — they are things a product includes → **FeatureBullets**
|
|
19
|
+
- Three or four things side by side, each with its own picture → **FeatureCards**
|
|
20
|
+
- Each stage needs a screen and a picture of its own → **FeatureScroll**
|
|
21
|
+
|
|
22
|
+
## Never
|
|
23
|
+
|
|
24
|
+
- A list without an order. Numbers against items that could be read in any sequence claim a sequence the page does not have, and a reader follows them anyway
|
|
25
|
+
- A sequence longer than six steps. Past that the list runs well past the picture beside it, and a process that long wants a page of its own rather than a section
|
|
26
|
+
- An article or a guide's body. This is a section in the middle of a marketing page, and carries no navigation of its own
|
|
27
|
+
|
|
28
|
+
## Props
|
|
29
|
+
|
|
30
|
+
- **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. …
|
|
31
|
+
- `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
|
|
32
|
+
- `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 paints this section grey, and a page following it closely takes this. …
|
|
33
|
+
- `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
|
|
34
|
+
- never: Marking importance. Every section on a page painted dark is a page with no emphasis left. And never the brand's own coral, `color.bg.brand`, which is not offered here: that ground belongs to the band that asks a reader to do something, and a how-it-works section wearing it is a page with two calls to action, one of which does nothing
|
|
35
|
+
- **mediaPosition** `enum` · default "start" — Which side the picture takes at full width. Alternating it against the split sections around it is what stops two in a row reading as one long column, and it is the page's decision rather than this section's. …
|
|
36
|
+
- `start` — The default, and the reference design's: the picture first, then the steps it introduces
|
|
37
|
+
- `end` — The steps first, for a section sitting under a split whose picture is already at the start
|
|
38
|
+
- never: Moving the picture on a phone. There is one column there and the picture leads it
|
|
39
|
+
- **autoplay** `boolean` · default false — Whether the steps take their turn on their own: one step is current, its rule fills over motion.duration.dwell, then the next takes over, and back to the first after the last. …
|
|
40
|
+
- never: Steps whose descriptions take longer to read than motion.duration.dwell — leave it off rather than cut the copy to the timer. And a list with no picture per step, where the only thing that moves is a rule: the turn is worth it when the picture changes with it
|
|
41
|
+
- **title** `string` · required — Always. What the steps get a reader to, in the fewest words that say it — 'Get started in 3 steps'
|
|
42
|
+
- never: A sentence. The steps underneath are the argument; this only has to name where they lead
|
|
43
|
+
- **steps** `data` · required — Always. The steps, in the order a reader takes them — three or four is right, six the most. Each is a short imperative and a sentence under about two hundred characters. …
|
|
44
|
+
- never: Items that could be taken in any order, or a step that is two steps. Each number is a claim that this comes after the one above it and is one thing to do
|
|
45
|
+
- **media** `node` · optional — The one picture beside the steps, where they have no pictures of their own — a screenshot, a photograph. …
|
|
46
|
+
- 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
|
|
47
|
+
|
|
48
|
+
## Inside it
|
|
49
|
+
|
|
50
|
+
- 10 components are refused inside it; the list and the reasons are in the long document.
|
|
51
|
+
- Renders 15 parts: root, inner, split, media, image, content, title, list, step, number, body, step-title, trigger, step-description, progress.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/steps.md`.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!-- GENERATED from stickycards.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# StickyCards
|
|
4
|
+
|
|
5
|
+
A section whose cards pile up as the page scrolls: a heading, and under it a set of cards that each stop near the top of the window while the next one slides up over them, so the cards are read one at a time and the edges of the ones already read stay showing above the one being read. …
|
|
6
|
+
|
|
7
|
+
`import { StickyCards } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A set of markets, products or benefits a page wants read one at a time as the reader scrolls — the reference design's "What we offer" — where each is a title and a sentence, and a picture or an animation is optional …
|
|
12
|
+
- Three steps or benefits that each need a picture of their own — Sign up, Deposit, Trade — told as a sequence the reader scrolls through rather than a row they compare …
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- Three or four things a reader should compare side by side, at a glance → **FeatureCards**
|
|
17
|
+
- Several things of the same kind, each with a picture worth a screen and room for more than a sentence → **FeatureScroll**
|
|
18
|
+
- One or two items → **nothing in this system does this**
|
|
19
|
+
|
|
20
|
+
## Never
|
|
21
|
+
|
|
22
|
+
- Anything the reader must see at once — terms, prices compared across plans, a risk warning. A covered card is out of sight until the reader scrolls back to it
|
|
23
|
+
- Cards a reader presses. The pile covers each card as the next arrives, and a control under another card is one the eye cannot find; a card's way on belongs in the section after it
|
|
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, and with it the ink of the heading. The cards keep their own fills on every ground. …
|
|
29
|
+
- `page` — The default, and the page's own white. The reference design's sticky stacked cards sit on it
|
|
30
|
+
- `subtle` — A quiet step off the page — the reference design's slate band, which its market cards sit on. …
|
|
31
|
+
- `strong` — `color.bg.brand-strong`, the dark band, for a section a reader should arrive at. …
|
|
32
|
+
- never: Marking importance. Every section on a page painted a ground is a page with no emphasis left. And never the brand's coral, `color.bg.brand`, which is not offered: that ground belongs to the band that asks a reader to do something
|
|
33
|
+
- **layout** `enum` · default "compact" — Which pile this is: text-first cards in a narrow column, or a few large cards the width of the page with a picture each
|
|
34
|
+
- `compact` — The default — the reference design's StickyMarketCards and their animation sibling. …
|
|
35
|
+
- `feature` — The reference design's StickyStackedCards — about three large cards, each the width of the page and at least size.sticky-cards.feature-min tall, the title at the h3 step, its words beside a picture that runs to the card's edges and fills its half from the fold, under them on a phone. …
|
|
36
|
+
- **title** `string` · required — Always. What the set is, in the fewest words — "What we offer", "Start trading in minutes". It names the section as a region, so a screen reader can jump to it and past it
|
|
37
|
+
- never: A sentence. The line under it is for the sentence
|
|
38
|
+
- **description** `string` · optional — A line saying what the cards have in common, when the title alone does not
|
|
39
|
+
- never: A paragraph, or an introduction to each card. The cards say what each one is
|
|
40
|
+
- **cards** `data` · required — Always. The cards, in the order the reader meets them — the first is the first one covered, the last ends the pile on top. …
|
|
41
|
+
- never: A card a reader has to press, or one or two cards. See the block's own guidance. Mixing cards with and without a picture in one pile. Give every card one, or none
|
|
42
|
+
- **media** `callback` · optional — A card shows something the page plays itself — a Lottie animation, a video — in the place its picture would take, the reference design's StickyMarketCardsLottie. …
|
|
43
|
+
- never: A control that only works while its card is on top, or anything a reader must press to read the card. Whatever this returns is covered when the next card arrives; a focusable control in it brings its card to the top of the pile while it has focus, but a reader scrolling past never sees it. …
|
|
44
|
+
|
|
45
|
+
## Inside it
|
|
46
|
+
|
|
47
|
+
- 6 components are refused inside it; the list and the reasons are in the long document.
|
|
48
|
+
- Renders 12 parts: root, inner, header, title, description, list, item, backdrop, body, media, image, scrim.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/stickycards.md`.
|
|
@@ -46,6 +46,10 @@ The name of a column, announced before every value under it. …
|
|
|
46
46
|
- **headerCase** `enum` · default "upper"
|
|
47
47
|
- `upper` — The house setting. Column names in capitals at font.overline — eleven pixels with wide tracking — which reads as a different texture from the values rather than a louder version of them. …
|
|
48
48
|
- `title` — Names drawn as they were written, at font.label.sm — twelve pixels, medium, ordinary tracking. …
|
|
49
|
+
- **scope** `enum` · default "col" — Which way the cell names: down its column, the usual case, or across its row. …
|
|
50
|
+
- `col` — The default. A name in the header row, announced before every value beneath it
|
|
51
|
+
- `row` — The first cell of a data row when that cell is what the row is about — an instrument, a plan, a country — rather than one more value in it. …
|
|
52
|
+
- never: A row header that can be sorted. Sorting orders rows by a column, so the control belongs on the column's name in the header row, never on the name of one row
|
|
49
53
|
- **sortable** `boolean` · default false — The reader can order the table by this column. It draws the control and the mark; what pressing it does is the page's, reported through `onSort`
|
|
50
54
|
- never: A column that only looks orderable. There is no state where the control is drawn and inert — a header that could be pressed to no effect is worse than one that was never offered
|
|
51
55
|
- **onSort** `callback` · optional — Told the header was pressed. …
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!-- GENERATED from teamgrid.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# TeamGrid
|
|
4
|
+
|
|
5
|
+
A section that sets out the people behind a company: a heading, and a grid of people under it — each a square photograph, their name, what they do and, where they have one, a link to a profile of theirs elsewhere. …
|
|
6
|
+
|
|
7
|
+
`import { TeamGrid } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A leadership team, an advisory board or a regional management list on an about page
|
|
12
|
+
- A responsive grid of person/profile cards — photo, name, role, and an optional external profile link — with an optional line under its heading and a "View all" that shows the rest of a longer list …
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- One person, spotlit, in their own words → **TestimonialSlider**
|
|
17
|
+
- The items are not people — logos, features, figures → **FeatureCards**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- People who are not who the card says. A name, a face and a role are a claim about a real person — keep each in step with the person, and leave the profile link out unless it is theirs
|
|
22
|
+
- The page's opening band. This sits under the page's heading, never in place of it
|
|
23
|
+
|
|
24
|
+
## Props
|
|
25
|
+
|
|
26
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints, and with it the ink and the photographs' placeholder — the grey a picture sits on before it arrives, which follows the ground so it never vanishes into the band. …
|
|
27
|
+
- `page` — The default, and the page's own white. Most people sections have nothing to separate themselves from
|
|
28
|
+
- `subtle` — A quiet step off the page — the reference design's slate band — for a section that wants to read as its own. …
|
|
29
|
+
- `strong` — `color.bg.brand-strong`, the dark band, for a section a reader should arrive at. …
|
|
30
|
+
- never: Marking importance. Every section on a page painted a ground is a page with no emphasis left. And never the brand's coral, `color.bg.brand`, which is not offered: that ground belongs to the band that asks a reader to do something
|
|
31
|
+
- **title** `string` · required — Always. Who these people are, in the fewest words — "Meet our leadership team". It names the section as a region, so a screen reader can jump to it and past it
|
|
32
|
+
- never: A sentence. The line under it is for the sentence
|
|
33
|
+
- **description** `string` · optional — A line saying who the set is, when the title alone does not — "The people steering Deriv's products, markets and teams"
|
|
34
|
+
- never: A paragraph, or an introduction to each person. The cards say who each one is
|
|
35
|
+
- **people** `data` · required — Always. The people, in the order the page wants them read — by seniority or by relevance, the first `collapsedCount` of them showing at once. Each has a name, a role, a picture with its `alt`, and where there is one a `profile` link. …
|
|
36
|
+
- never: Anyone who has not agreed to be on the page, or a profile link that is not theirs
|
|
37
|
+
- **collapsedCount** `number` · default 4 — How many people show before the rest are asked for. Four, the default, is one row at full width, so the button sits under a complete row. A list no longer than this has no button at all — there is nothing more to show
|
|
38
|
+
- never: Hiding one or two people behind a button. A person more than a row is better shown than asked for: raise this to the length of the list
|
|
39
|
+
- **expandLabel** `string` · default "View all" — The button's words while the rest of the list is hidden. Translate it with the page, and keep it parallel to collapseLabel
|
|
40
|
+
- **collapseLabel** `string` · default "View less" — The button's words once the whole list is showing, for the reason expandLabel exists
|
|
41
|
+
- **profileName** `callback` · optional — The accessible name of a person's profile link, given the person. The visible word is the profile's own — "LinkedIn" — and it is the same on every card, so the link is named for its person too. …
|
|
42
|
+
- never: Visible text. It names the link to assistive technology and is never drawn
|
|
43
|
+
- **externalLabel** `string` · default "(opens in a new tab)" — Said after every profile link's name, because a profile opens in a new tab and a reader should know before they press it — ResourceBanner's words for the same thing. Translate it with the page
|
|
44
|
+
- never: Visible text. It is added to the link's name for assistive technology and never drawn
|
|
45
|
+
|
|
46
|
+
## Inside it
|
|
47
|
+
|
|
48
|
+
- 6 components are refused inside it; the list and the reasons are in the long document.
|
|
49
|
+
- Renders 14 parts: root, inner, header, title, description, people, list, item, media, text, name, role, profile, actions.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/teamgrid.md`.
|
|
@@ -40,6 +40,8 @@ A section that lets a review service's numbers back the page: a heading with the
|
|
|
40
40
|
- **label** `string` · default "Reviews" — The name the row is announced by. The row is a scrolling region a keyboard has to be able to reach, so it carries a tab stop and a name of its own — Scroller's rule. …
|
|
41
41
|
- **previousLabel** `string` · default "Previous reviews" — The accessible name of the arrow stepping the row back. A glyph announces nothing, so this is the whole of the control's name. Translate it with the page, and keep it parallel to nextLabel
|
|
42
42
|
- **nextLabel** `string` · default "Next reviews" — The accessible name of the arrow stepping the row on, for the reason previousLabel exists
|
|
43
|
+
- **externalLabel** `string` · default "(opens in a new tab)" — Said after the summary link and every linked review, because both open on a service the page does not own, in a new tab, and a reader should know before they press — TeamGrid's and ResourceBanner's words for the same thing. …
|
|
44
|
+
- never: Visible text. It is added to the link's name for assistive technology and never drawn
|
|
43
45
|
|
|
44
46
|
## Inside it
|
|
45
47
|
|
|
@@ -40,6 +40,10 @@ A section that lets the people who use the product say what it did for them: a h
|
|
|
40
40
|
- 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
|
|
41
41
|
- **controlsLabel** `string` · default "Testimonials" — The name the dots are announced by. Its own name rather than the section's, so a screen reader moving into the dots hears what they are. Translate it with the page
|
|
42
42
|
- **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
|
|
43
|
+
- **roleDescription** `string` · default "carousel" — What a screen reader calls the set while it rotates — announced in place of a region, as the word for this kind of thing. …
|
|
44
|
+
- **slideRoleDescription** `string` · default "slide" — What a screen reader calls each item while the set rotates, for the reason roleDescription exists. Translate it with the page
|
|
45
|
+
- **positionLabel** `callback` · optional — The accessible name of each item while the set rotates, given its place in the set counting from one — so a reader hears where they are. …
|
|
46
|
+
- never: Visible text. It names the item to assistive technology and is never drawn
|
|
43
47
|
|
|
44
48
|
## Inside it
|
|
45
49
|
|
package/.llm/digest/textarea.md
CHANGED
|
@@ -60,6 +60,10 @@ A field for what a visitor wants to say in their own words — the message on a
|
|
|
60
60
|
- never: Varying within one form. Whichever is chosen is a decision for the whole form: a page marking some labels with a word and others with a glyph reads as two conventions and teaches neither
|
|
61
61
|
- **optional** `boolean` · default false — Most fields on the form are required, so the few that are not are worth marking instead
|
|
62
62
|
- never: Marking every optional field on a form where most are optional — a marker on almost every label is noise, and the useful signal is whichever state is the exception
|
|
63
|
+
- **requiredLabel** `string` · default "required" — The word drawn beside the label when requiredMark is text. Translate it with the page: the mark exists to say what it means in the reader's own language, which an English default does not
|
|
64
|
+
- **optionalLabel** `string` · default "optional" — The word drawn beside the label of an optional field. Translate it with the page, as requiredLabel is
|
|
65
|
+
- **labelTooltipLabel** `string` · optional — The accessible name of the button that opens labelTooltip. Without it the button is named "About" and the label; pass it to translate that with the page
|
|
66
|
+
- never: Visible text. It names the button to assistive technology and is never drawn
|
|
63
67
|
|
|
64
68
|
## The type refuses
|
|
65
69
|
|
package/.llm/digest/textinput.md
CHANGED
|
@@ -78,6 +78,10 @@ One line of text a visitor types before they are a customer. …
|
|
|
78
78
|
- never: Carrying the requirement on its own. The mark is decorative either way — aria-required on the field is what says it to a screen reader
|
|
79
79
|
- **optional** `boolean` · default false — Most of the form is required and one field is not. Marking the exception is what tells the reader anything
|
|
80
80
|
- never: Every field on a form where nothing is required. Marking all of them says the same as marking none, and costs a word on each
|
|
81
|
+
- **requiredLabel** `string` · default "required" — The word drawn beside the label when requiredMark is text. Translate it with the page: the mark exists to say what it means in the reader's own language, which an English default does not
|
|
82
|
+
- **optionalLabel** `string` · default "optional" — The word drawn beside the label of an optional field. Translate it with the page, as requiredLabel is
|
|
83
|
+
- **labelTooltipLabel** `string` · optional — The accessible name of the button that opens labelTooltip. Without it the button is named "About" and the label; pass it to translate that with the page
|
|
84
|
+
- never: Visible text. It names the button to assistive technology and is never drawn
|
|
81
85
|
|
|
82
86
|
## The type refuses
|
|
83
87
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- GENERATED from textscroll.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# TextScroll
|
|
4
|
+
|
|
5
|
+
A full-width section holding one large statement — a mission, a brand message — whose words brighten one after another as the reader scrolls past, from dimmed to full strength, so the sentence is read at the pace the page is moved. …
|
|
6
|
+
|
|
7
|
+
`import { TextScroll } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A mission or vision statement, on an About or Who we are page
|
|
12
|
+
- One emphatic brand message between two heavier sections, where a moment of copy on its own gives the page room to breathe
|
|
13
|
+
- A campaign or partner programme's manifesto, in one sentence or two short ones
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- The statement needs a heading over it, a line under it or a way onward → **FeatureSplit**
|
|
18
|
+
- The message asks the reader to do something → **CtaBanner**
|
|
19
|
+
|
|
20
|
+
## Never
|
|
21
|
+
|
|
22
|
+
- Long-form copy, or more than one paragraph. Past about three hundred characters the reveal outlasts the section's pass and the last words are still dim as it leaves
|
|
23
|
+
- Copy that must be legible the moment it is on screen — a disclaimer, a legal line, a price. Words below the reveal's front are dimmed until the reader scrolls to them
|
|
24
|
+
- Two of these back to back. A second reveal straight after the first is the same moment twice, and the page loses the pause the first one made
|
|
25
|
+
|
|
26
|
+
## Props
|
|
27
|
+
|
|
28
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints, the axis every block shares: a statement that wants to be seen as a band takes one of the other two, and the page decides the rhythm. …
|
|
29
|
+
- `page` — The default, and the page's own white. A statement between two sections that need nothing to separate them
|
|
30
|
+
- `subtle` — The grey band, for a statement that should read as a section of its own without changing the page's voice. …
|
|
31
|
+
- `strong` — `color.bg.brand-strong`, the dark band, for the statement a page is built around — the mission on an About page. The words turn white and dim toward the band
|
|
32
|
+
- never: Marking importance. Every section on a page painted a ground is a page with no emphasis left. And never the brand's own coral, which is not offered: a paragraph on it misses the contrast running copy needs
|
|
33
|
+
- **text** `string` · required — Always. The statement, as plain text — one sentence or two short ones, under about three hundred characters. Split into words on its whitespace, so a run of spaces or a line break is one space in what is drawn. …
|
|
34
|
+
- never: Markup, emphasis or a link. The words are drawn as text and nothing in the string is interpreted; a statement that needs a word set apart or a way onward is a FeatureSplit
|
|
35
|
+
|
|
36
|
+
## Inside it
|
|
37
|
+
|
|
38
|
+
- 6 components are refused inside it; the list and the reasons are in the long document.
|
|
39
|
+
- Renders 4 parts: root, inner, text, word.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/textscroll.md`.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!-- GENERATED from tiers.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# Tiers
|
|
4
|
+
|
|
5
|
+
A partnership-tier section: a centred heading over an ordered row of tiers, each a medal, a name and the stage it stands for, a card stating what the tier gives, and the bar a partner clears to reach it — with an optional way on under the row. …
|
|
6
|
+
|
|
7
|
+
`import { Tiers } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A partner, affiliate or introducing-broker programme explains its tiers and what each one earns
|
|
12
|
+
- Rewards grow with performance in two to four steps — commission bonuses, loyalty levels, a VIP ladder — and each step has a bar to clear
|
|
13
|
+
- A partner landing page needs the progression shown at a glance, with a link on to the programme's full terms
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- The items have no order — they are things a product includes, or reasons to choose it → **FeatureCards**
|
|
18
|
+
- The items are things a reader does, one after another, to get started → **Steps**
|
|
19
|
+
- Plans a reader chooses between, each with the same rows of terms → **ComparisonCards**
|
|
20
|
+
|
|
21
|
+
## Never
|
|
22
|
+
|
|
23
|
+
- More than four tiers. The row holds four at full width and the track through the medals has nowhere to go past that; a longer ladder wants a table
|
|
24
|
+
- Plans or prices a reader picks between. A tier is reached, not bought, and a row that reads as a progression tells a reader the cheaper plan is a step on the way to the dearer one
|
|
25
|
+
- A tier promised without its bar. A benefit with no stated qualification on anything above the entry tier is a claim the page cannot stand behind
|
|
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. The benefit cards are Card's recessed grey on it
|
|
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 reference design paints this section grey, and a page following it closely takes this. …
|
|
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 never the brand's own coral, `color.bg.brand`, which is not offered here: that ground belongs to the band that asks a reader to do something, and a tier section wearing it is a page with two calls to action, one of which does nothing
|
|
34
|
+
- **title** `string` · required — Always. What the tiers add up to, in the fewest words that say it — 'Growing rewards as you scale'
|
|
35
|
+
- never: A sentence. The line under it is for the sentence
|
|
36
|
+
- **description** `string` · optional — A line saying how the tiers work, when the title alone does not — 'Our tiered partnership model rewards performance.'
|
|
37
|
+
- never: A paragraph, or a summary of every tier. The tiers say what they give; this only says why they are a ladder
|
|
38
|
+
- **tiers** `data` · required — Always. The tiers, lowest first — two to four, four for a partnership programme. …
|
|
39
|
+
- never: Tiers in any order but lowest to highest. The track through the medals reads start to end, and a ladder drawn out of order is one a reader climbs the wrong way
|
|
40
|
+
- **link** `node` · optional — A way on to the programme's full terms — 'Learn more about partner tiers'. A standalone Link, under the row
|
|
41
|
+
- never: A button, or the sign-up itself. The section explains the ladder; asking a reader to join is the job of the band that does nothing else
|
|
42
|
+
|
|
43
|
+
## Inside it
|
|
44
|
+
|
|
45
|
+
- 10 components are refused inside it; the list and the reasons are in the long document.
|
|
46
|
+
- Renders 19 parts: root, inner, header, title, description, list, tier, medal-row, line-start, medal, line-end, heading, name, stage, benefit, benefit-title, benefit-description, qualification, footer.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/tiers.md`.
|
package/.llm/index.md
CHANGED
|
@@ -9,7 +9,7 @@ need — loading all of them dilutes the relevant one.
|
|
|
9
9
|
Paths here are from the package root, so they resolve whether this file is read in place
|
|
10
10
|
or its content handed over on its own.
|
|
11
11
|
|
|
12
|
-
Sections: Core (54) · Layout (5) · Blocks (
|
|
12
|
+
Sections: Core (54) · Layout (5) · Blocks (30)
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
## Core
|
|
@@ -98,17 +98,33 @@ The sections a page is built from, and the rhythm between them.
|
|
|
98
98
|
|
|
99
99
|
| Component | Use when | Not for |
|
|
100
100
|
|---|---|---|
|
|
101
|
+
| Awards | Building credibility with the industry awards a company has won — a “Why choose us”, about-us or trust page · Six awards or more, enough that the phone's row reads as running on past the band's edge and the rows from the fold read as a field | One to three awards, or a few figures that make the case → `FeatureCards` · Partners, integrations or payment methods rather than awards → `LogoRows` · Reviews from customers rather than recognition from the industry → `TestimonialRow` |
|
|
102
|
+
| ComparisonCards | Two or three products, accounts or plans that answer the same few questions differently — what you hold, what it costs, how far you can lose — and the difference is the point of the section · A "What you can trade" band: Spot against Futures, Options against Multipliers, each with its own rows and its own risk note | Five or more options, or rows that are the same for every option and read down a column → `ComparisonTable` · The options are features rather than alternatives — each a heading and a sentence, with nothing to compare row by row → `FeatureCards` · One option and the list of what it includes → `FeatureBullets` |
|
|
103
|
+
| ComparisonTable | Comparing two or three options — platforms, plans, operating systems — on the same handful of features, where the reader reads across a row as often as down a column · A product page's "Web terminal, desktop or mobile": the same few features, each option's answer in a word or a short line · Schedule-style rows, where a cell may hold a short list of lines — a market's trading sessions, the days a rate applies | Each option has more to say than a cell holds — a sentence of its own, a footnote, a way on → `ComparisonCards` · A large dataset — many instruments, many columns — that a reader searches, sorts or pages through → `DataTable` · One option and the list of what it includes → `FeatureBullets` |
|
|
101
104
|
| CtaBanner | A short, high-contrast promotion with one clear action — open an account, start trading, download the app · The band that closes a page, or breaks a long one, on the action the page exists to produce | Two or three promotions to rotate between → `CtaBannerSlider` · The band that opens the page → `LandingHero` · A message that needs a picture beside it → `FeatureSplit` |
|
|
102
105
|
| CtaBannerSlider | Rotating between two or three genuinely different promotions without a hero's weight — open an account, try a tool, download the app | One promotion → `CtaBanner` · The band that opens the page → `LandingHero` · A message with more than a headline, a line and a button or two → `FeatureSplit` |
|
|
106
|
+
| DataTable | Trading instruments and their specifications — contract size, minimum size, volume limits — on a market page · Trading conditions a reader looks up rather than reads through: spreads, leverage, margin, swaps · An MT5 or Deriv X specification page, where the set runs to dozens of rows and a reader is hunting for the one they trade | Three or four plans or accounts compared feature by feature, where every row is read rather than searched → `ComparisonTable` · A handful of rows with no need to search or page — a fee schedule of four lines → `Table` |
|
|
107
|
+
| DownloadBanner | Promoting an app across the stores and platforms it ships on — App Store, Google Play, AppGallery, a desktop download, the web · A trading platform's page, near its end, once the product has been explained and the next thing a reader wants is to get it | One download, or the web alone → `Button` · A promotion that has to argue for the download in a headline and a sentence → `CtaBanner` |
|
|
103
108
|
| FaqAccordion | 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 · Objections a page has to answer without making every reader read every answer | The answers are short enough to read all at once → `FeatureBullets` · Each item is a feature, not a question → `FeatureCards` |
|
|
104
109
|
| FeatureBullets | A page has to list what a product or a plan includes, and the list is the argument · Several benefits are each one line long and are read by scanning rather than reading · A claim needs something beside it, and a picture is the only thing there is to put there | The items are two or three words and belong on one line → `Badge` · Each item needs a heading and a paragraph of its own → `Card` · The section opens the page → `ProductHero` |
|
|
105
|
-
| FeatureCards | Three or four things a product does, each a heading and a
|
|
110
|
+
| FeatureCards | Three or four things a product does, each a card with a heading, a line and a picture under them, read side by side and compared at a glance — the first choice for a set of three. The picture is CardBody's `src`, drawn below the words by default · A set of destinations — markets, platforms, tools — each a card a reader presses to go there · 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 | Each item is one line, and the list is the argument → `FeatureBullets` · One claim beside a picture, with no card around it → `FeatureSplit` · The items are read in order, one leading to the next → `FeatureScroll` |
|
|
111
|
+
| FeatureCardsCarousel | A "what you get" band of five or six authored cards, each a benefit with a line and a picture, too many for one row of a grid, where one card in focus with a peek of the next is the point. Three or four cards are FeatureCards, which shows the whole set at once · A platform or product page whose feature cards are too many for one row of a grid and too equal to be a sequence | Three or four cards — the set a grid shows in one row → `FeatureCards` · The cards are read in order, one leading to the next → `FeatureScroll` · Two or three promotions on the brand's coral, one at a time → `CtaBannerSlider` |
|
|
106
112
|
| FeatureScroll | 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 · The set is meant to be walked through rather than compared, and a reader is expected to scroll it · The set comes from somewhere — a CMS, a registry, a filtered list — rather than being written out by hand | There are three or four items a reader is meant to compare → `FeatureCards` · The set is lines rather than things — what an account includes → `FeatureBullets` · There is one point to make → `FeatureSplit` · The section opens the page → `LandingHero` |
|
|
107
|
-
| FeatureSplit | A page needs one more point about something it has already introduced, with a picture to carry it · The point is a sentence rather than a list, and does not earn a set of cards · A section needs a way onward that is not a call to action — a link to the page that says more | The point is several things the reader gets, each one line long → `FeatureBullets` · There are three or four points and each needs its own picture → `FeatureCards` · The section opens the page → `ProductHero` |
|
|
113
|
+
| FeatureSplit | A page needs one more point about something it has already introduced, with a picture to carry it · The point is a sentence rather than a list, and does not earn a set of cards · A section needs a way onward that is not a call to action — a link to the page that says more | The point is several things the reader gets, each one line long → `FeatureBullets` · There are three or four points and each needs its own picture → `FeatureCards` · The section opens the page → `ProductHero` · The picture is the section's weight, wide or tall enough to stand under the words rather than beside them → `FeatureStack` |
|
|
114
|
+
| FeatureStack | A statement with a picture that carries it — a global reach shown on a globe, a platform shown on a device — where the picture is the section's weight and the words introduce it · Closing a page or a stretch of one on an image, with a way on for the reader who wants more | The picture belongs beside the words, the two read side by side → `FeatureSplit` · The section is a set of figures read as a set → `Stats` · The section asks the reader to do one thing, now → `CtaBanner` |
|
|
115
|
+
| ImageBanner | Driving a single mid-page or end-of-page action with a photograph to carry it — a community, a hub, a platform · A dark, editorial break between lighter sections | The section opens the page → `ProductHero` · The point wants the page's own light ground rather than a dark card → `FeatureSplit` · There is no photograph, only a headline and an action → `CtaBanner` · The section says what a programme or a product comes with, as a list of features → `FeatureBullets` |
|
|
108
116
|
| LandingHero | A main landing page needs its opening band — the front page, or a campaign page under it · The claim has room to range to the reading edge with a subject beside it, which is what the landing tier is for · The steps between an eyebrow, a title, a description and the actions under them have to be the same on every landing page | The page is a product or a market page → `ProductHero` · The page is a company or a legal one — contact, about, terms → `PageHeader` · The band closes the page rather than opening it → `Footer` |
|
|
109
117
|
| LogoColumns | Showing the partners, integrations or payment methods behind a claim — the names a reader recognises, as evidence for what the words say · Eight or more logos, enough that each column reads as running on past both edges of the wall | A handful of logos a reader should be able to count and compare → `Grid` · One picture beside the claim → `FeatureSplit` · Each logo needs to be pressed — a partner directory → `FeatureCards` |
|
|
110
118
|
| LogoRows | Showing the partners, integrations or payment methods behind a claim under it, where the words lead and the logos follow · Eight or more logos, enough that each of the two rows reads as running on past both edges of the band | The logos should stand beside the claim, as a wall that is half the section → `LogoColumns` · A handful of logos a reader should be able to count and compare → `Grid` |
|
|
111
119
|
| PageHeader | A company, legal or support page needs its opening band — contact, about, terms, a regulatory notice · The page is read rather than acted on, so its opening should name it and then get out of the way · The steps between an eyebrow, a title and a description have to be the same on every such page | The page is the front page, or a campaign page under it → `LandingHero` · The page is a product or a market page → `ProductHero` · The band closes the page rather than opening it → `Footer` |
|
|
112
120
|
| ProductHero | A product or a market page needs its opening band — a platform, an instrument, an asset class · The thing the page is about is worth showing whole, under the claim rather than beside it · The steps between an eyebrow, a title, a description and the actions under them have to be the same on every product page | The page is the front page, or a campaign page under it → `LandingHero` · The page is a company or a legal one — contact, about, terms → `PageHeader` · The band closes the page rather than opening it → `Footer` |
|
|
121
|
+
| ResourceBanner | Pointing readers at related guides, policies, or reference pages at the end of an informational section — the 'here's where to read more' block · A section of a legal, help or safety page has said what it has to and the detail lives elsewhere — the full terms, a risk disclosure, a help-centre article | The block asks the reader to do something — open an account, start trading → `CtaBanner` · The resources are a set of destinations each worth a heading and a sentence → `FeatureCards` · The reader's questions have short answers that can be given on the page → `FaqAccordion` |
|
|
122
|
+
| SceneScroll | Two states of one thing a page wants felt rather than listed — the markets by day and by night, a trader's screen before and after, a market open around the clock · One immersive moment on a product or campaign page, between lighter sections, where two photographs carry the argument and the words are a heading and a line each · The opening band of a campaign page built around that change, at headingLevel h1 | There is one photograph, not two states of something → `ImageBanner` · Three or more things to show, each with a picture → `FeatureScroll` · The page's opening band, with an action to take → `LandingHero` · One statement on its own, revealed as the reader scrolls → `TextScroll` |
|
|
123
|
+
| Stats | Three to five headline numbers that prove scale or credibility — traders, markets, years, the smallest deposit — where the set is the point — read along a row from the fold, turned through one at a time on a phone · A break between two heavier sections, when the numbers alone tell the story | Each item needs a sentence of its own, or a picture → `FeatureCards` · The number is part of a claim the page is making in words → `FeatureSplit` |
|
|
124
|
+
| Steps | A page explains a get-started or onboarding flow — opening an account, funding it, starting to trade · A process has three to six steps that a reader follows in one order, each a short imperative and a sentence · A setup or a how-to page — a platform's install, a deposit or a withdrawal — needs its sequence shown beside one picture · The same how-it-works list, walked through on its own: with `autoplay` each step takes its turn, its rule filling as it holds, and the picture changes to that step's — a sequence shown in sequence rather than all at once | The items have no order a reader follows — they are things a product includes → `FeatureBullets` · Three or four things side by side, each with its own picture → `FeatureCards` · Each stage needs a screen and a picture of its own → `FeatureScroll` |
|
|
125
|
+
| StickyCards | A set of markets, products or benefits a page wants read one at a time as the reader scrolls — the reference design's "What we offer" — where each is a title and a sentence, and a picture or an animation is optional · Three steps or benefits that each need a picture of their own — Sign up, Deposit, Trade — told as a sequence the reader scrolls through rather than a row they compare | Three or four things a reader should compare side by side, at a glance → `FeatureCards` · Several things of the same kind, each with a picture worth a screen and room for more than a sentence → `FeatureScroll` · One or two items → nothing here |
|
|
126
|
+
| TeamGrid | A leadership team, an advisory board or a regional management list on an about page · A responsive grid of person/profile cards — photo, name, role, and an optional external profile link — with an optional line under its heading and a "View all" that shows the rest of a longer list | One person, spotlit, in their own words → `TestimonialSlider` · The items are not people — logos, features, figures → `FeatureCards` |
|
|
113
127
|
| TestimonialRow | Five to ten short, rated reviews collected by a review service, where seeing several at once is the point and the overall score is worth stating · A page that has made its claims and wants customers' own ratings to back them — a homepage's "What our customers say" | Two to five quotes the page chose, from partners or customers, each a few sentences and read one at a time → `TestimonialSlider` · A single review → `FeatureSplit` |
|
|
114
128
|
| TestimonialSlider | Two to five real quotes from partners or customers, each a few sentences, read one at a time · A page that has made its claims and wants someone other than the brand to back them | A single quote → `FeatureSplit` · Ratings and review counts from a review site → `TestimonialRow` |
|
|
129
|
+
| TextScroll | A mission or vision statement, on an About or Who we are page · One emphatic brand message between two heavier sections, where a moment of copy on its own gives the page room to breathe · A campaign or partner programme's manifesto, in one sentence or two short ones | The statement needs a heading over it, a line under it or a way onward → `FeatureSplit` · The message asks the reader to do something → `CtaBanner` |
|
|
130
|
+
| Tiers | A partner, affiliate or introducing-broker programme explains its tiers and what each one earns · Rewards grow with performance in two to four steps — commission bonuses, loyalty levels, a VIP ladder — and each step has a bar to clear · A partner landing page needs the progression shown at a glance, with a link on to the programme's full terms | The items have no order — they are things a product includes, or reasons to choose it → `FeatureCards` · The items are things a reader does, one after another, to get started → `Steps` · Plans a reader chooses between, each with the same rows of terms → `ComparisonCards` |
|