@deriv-com/dds-marketing 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.llm/components/accordion.md +6 -0
- package/.llm/components/accordionitem.md +6 -0
- package/.llm/components/aspectratio.md +6 -0
- package/.llm/components/awards.md +6 -0
- package/.llm/components/background.md +49 -10
- package/.llm/components/badge.md +6 -0
- package/.llm/components/bottomsheet.md +6 -0
- package/.llm/components/breadcrumb.md +6 -0
- package/.llm/components/breadcrumbitem.md +6 -0
- package/.llm/components/button.md +9 -3
- package/.llm/components/buttonicon.md +7 -1
- package/.llm/components/card.md +6 -0
- package/.llm/components/cardbody.md +7 -1
- package/.llm/components/cardbutton.md +6 -0
- package/.llm/components/checkbox.md +6 -0
- package/.llm/components/comparisoncards.md +9 -3
- package/.llm/components/comparisontable.md +6 -0
- package/.llm/components/ctabanner.md +6 -0
- package/.llm/components/ctabannerslider.md +6 -0
- package/.llm/components/datatable.md +6 -0
- package/.llm/components/divider.md +6 -0
- package/.llm/components/documentlink.md +237 -0
- package/.llm/components/documents.md +268 -0
- package/.llm/components/downloadbanner.md +7 -1
- package/.llm/components/dropdownmenu.md +6 -0
- package/.llm/components/estimator.md +6 -0
- package/.llm/components/faqaccordion.md +6 -0
- package/.llm/components/featurebullets.md +6 -0
- package/.llm/components/featurecards.md +42 -2
- package/.llm/components/featurecardscarousel.md +7 -1
- package/.llm/components/featurescroll.md +6 -0
- package/.llm/components/featuresplit.md +6 -0
- package/.llm/components/featurestack.md +6 -0
- package/.llm/components/featuretabs.md +369 -0
- package/.llm/components/filterchip.md +6 -0
- package/.llm/components/footer.md +6 -0
- package/.llm/components/footergroup.md +6 -0
- package/.llm/components/grid.md +30 -1
- package/.llm/components/icon.md +6 -0
- package/.llm/components/illustrationcard.md +52 -2
- package/.llm/components/illustrationcheck.md +193 -0
- package/.llm/components/illustrationchoice.md +187 -0
- package/.llm/components/illustrationcode.md +192 -0
- package/.llm/components/illustrationlist.md +175 -0
- package/.llm/components/illustrationscene.md +29 -3
- package/.llm/components/imagebanner.md +30 -5
- package/.llm/components/landinghero.md +6 -0
- package/.llm/components/link.md +7 -1
- package/.llm/components/logocolumns.md +7 -1
- package/.llm/components/logorows.md +42 -2
- package/.llm/components/menuitem.md +6 -0
- package/.llm/components/navbar.md +6 -0
- package/.llm/components/navbaritem.md +6 -0
- package/.llm/components/navbarmenu.md +6 -0
- package/.llm/components/navbarmenugroup.md +6 -0
- package/.llm/components/navbarpanel.md +6 -0
- package/.llm/components/navbarswitcher.md +6 -0
- package/.llm/components/navbarswitcheroption.md +6 -0
- package/.llm/components/option.md +6 -0
- package/.llm/components/pageheader.md +6 -0
- package/.llm/components/pagination.md +6 -0
- package/.llm/components/paginationdots.md +6 -0
- package/.llm/components/producthero.md +29 -4
- package/.llm/components/progressbar.md +305 -0
- package/.llm/components/removablechip.md +6 -0
- package/.llm/components/resourcebanner.md +6 -0
- package/.llm/components/row.md +6 -0
- package/.llm/components/scenescroll.md +38 -24
- package/.llm/components/scenescrollword.md +267 -0
- package/.llm/components/scroller.md +6 -0
- package/.llm/components/searchinput.md +6 -0
- package/.llm/components/segmentedcontrol.md +28 -1
- package/.llm/components/segmentedcontrolitem.md +6 -0
- package/.llm/components/select.md +6 -0
- package/.llm/components/selectchip.md +6 -0
- package/.llm/components/spinner.md +6 -0
- package/.llm/components/stack.md +6 -0
- package/.llm/components/stats.md +46 -1
- package/.llm/components/statscarousel.md +227 -0
- package/.llm/components/statusdot.md +41 -1
- package/.llm/components/steps.md +6 -0
- package/.llm/components/stickycards.md +6 -0
- package/.llm/components/subdomainnavbar.md +6 -0
- package/.llm/components/tab.md +6 -0
- package/.llm/components/table.md +6 -0
- package/.llm/components/tablebody.md +6 -0
- package/.llm/components/tablecell.md +6 -0
- package/.llm/components/tablehead.md +6 -0
- package/.llm/components/tableheadercell.md +6 -0
- package/.llm/components/tablerow.md +6 -0
- package/.llm/components/tablist.md +6 -0
- package/.llm/components/teamgrid.md +6 -0
- package/.llm/components/testimonialrow.md +43 -3
- package/.llm/components/testimonialslider.md +8 -2
- package/.llm/components/textarea.md +6 -0
- package/.llm/components/textinput.md +6 -0
- package/.llm/components/textscroll.md +6 -0
- package/.llm/components/tiers.md +13 -7
- package/.llm/components/tooltip.md +6 -0
- package/.llm/components/typography.md +63 -1
- package/.llm/digest/background.md +14 -6
- package/.llm/digest/button.md +1 -1
- package/.llm/digest/buttonicon.md +1 -1
- package/.llm/digest/documentlink.md +52 -0
- package/.llm/digest/documents.md +51 -0
- package/.llm/digest/downloadbanner.md +1 -1
- package/.llm/digest/featurecards.md +7 -0
- package/.llm/digest/featuretabs.md +50 -0
- package/.llm/digest/grid.md +1 -0
- package/.llm/digest/illustrationcard.md +6 -1
- package/.llm/digest/illustrationcheck.md +42 -0
- package/.llm/digest/illustrationchoice.md +43 -0
- package/.llm/digest/illustrationcode.md +41 -0
- package/.llm/digest/illustrationlist.md +38 -0
- package/.llm/digest/illustrationscene.md +4 -2
- package/.llm/digest/imagebanner.md +9 -3
- package/.llm/digest/logocolumns.md +1 -1
- package/.llm/digest/logorows.md +8 -1
- package/.llm/digest/producthero.md +8 -2
- package/.llm/digest/progressbar.md +56 -0
- package/.llm/digest/scenescroll.md +6 -5
- package/.llm/digest/scenescrollword.md +56 -0
- package/.llm/digest/segmentedcontrol.md +3 -0
- package/.llm/digest/stats.md +8 -0
- package/.llm/digest/statscarousel.md +48 -0
- package/.llm/digest/statusdot.md +7 -0
- package/.llm/digest/testimonialrow.md +8 -1
- package/.llm/digest/testimonialslider.md +1 -1
- package/.llm/digest/typography.md +18 -0
- package/.llm/index.md +14 -4
- package/.llm/rules.md +10 -0
- package/.llm/tokens.md +12 -3
- package/AGENTS.md +13 -2
- package/dist/components/arrival.d.ts +32 -0
- package/dist/components/arrival.js +140 -0
- package/dist/components/arrives.d.ts +17 -0
- package/dist/components/arrives.js +14 -0
- package/dist/components/blocks/awards/Awards.js +2 -27
- package/dist/components/blocks/block-pattern.css +23 -0
- package/dist/components/blocks/comparison-cards/comparison-cards-impl.css +29 -0
- package/dist/components/blocks/documents/Documents.css +90 -0
- package/dist/components/blocks/documents/Documents.d.ts +22 -0
- package/dist/components/blocks/documents/Documents.js +30 -0
- package/dist/components/blocks/documents/Documents.types.d.ts +37 -0
- package/dist/components/blocks/documents/Documents.types.js +14 -0
- package/dist/components/blocks/documents/documents-impl.css +103 -0
- package/dist/components/blocks/download-banner/DownloadBanner.css +1 -1
- package/dist/components/blocks/download-banner/DownloadBanner.types.d.ts +1 -1
- package/dist/components/blocks/feature-cards/FeatureCards.d.ts +2 -1
- package/dist/components/blocks/feature-cards/FeatureCards.js +10 -7
- package/dist/components/blocks/feature-cards/FeatureCards.types.d.ts +9 -1
- package/dist/components/blocks/feature-cards/feature-cards-impl.css +15 -3
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.types.d.ts +1 -1
- package/dist/components/blocks/feature-cards-carousel/feature-cards-carousel-impl.css +12 -0
- package/dist/components/blocks/feature-tabs/FeatureTabs.css +100 -0
- package/dist/components/blocks/feature-tabs/FeatureTabs.d.ts +23 -0
- package/dist/components/blocks/feature-tabs/FeatureTabs.js +38 -0
- package/dist/components/blocks/feature-tabs/FeatureTabs.types.d.ts +35 -0
- package/dist/components/blocks/feature-tabs/FeatureTabs.types.js +14 -0
- package/dist/components/blocks/feature-tabs/feature-tabs-impl.css +53 -0
- package/dist/components/blocks/image-banner/ImageBanner.css +1 -1
- package/dist/components/blocks/image-banner/ImageBanner.d.ts +1 -1
- package/dist/components/blocks/image-banner/ImageBanner.js +2 -2
- package/dist/components/blocks/image-banner/ImageBanner.types.d.ts +9 -7
- package/dist/components/blocks/image-banner/ImageBanner.types.js +1 -1
- package/dist/components/blocks/image-banner/image-banner-impl.css +77 -26
- package/dist/components/blocks/laurel.d.ts +16 -0
- package/dist/components/blocks/laurel.js +28 -0
- package/dist/components/blocks/logo-columns/LogoColumns.css +1 -1
- package/dist/components/blocks/logo-columns/LogoColumns.types.d.ts +1 -1
- package/dist/components/blocks/logo-rows/LogoRows.css +1 -1
- package/dist/components/blocks/logo-rows/LogoRows.d.ts +2 -1
- package/dist/components/blocks/logo-rows/LogoRows.js +7 -4
- package/dist/components/blocks/logo-rows/LogoRows.types.d.ts +9 -1
- package/dist/components/blocks/pattern-tone.d.ts +11 -0
- package/dist/components/blocks/pattern-tone.js +7 -0
- package/dist/components/blocks/product-hero/ProductHero.d.ts +1 -1
- package/dist/components/blocks/product-hero/ProductHero.js +2 -2
- package/dist/components/blocks/product-hero/ProductHero.types.d.ts +8 -3
- package/dist/components/blocks/product-hero/ProductHero.types.js +1 -1
- package/dist/components/blocks/product-hero/product-hero-impl.css +54 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.css +1 -1
- package/dist/components/blocks/scene-scroll/SceneScroll.css +1 -1
- package/dist/components/blocks/scene-scroll/SceneScroll.d.ts +6 -5
- package/dist/components/blocks/scene-scroll/SceneScroll.js +8 -7
- package/dist/components/blocks/scene-scroll/SceneScroll.types.d.ts +5 -5
- package/dist/components/blocks/scene-scroll/SceneScroll.types.js +1 -1
- package/dist/components/blocks/scene-scroll/scene-scroll-impl.css +61 -44
- package/dist/components/blocks/scene-scroll-word/SceneScrollWord.css +105 -0
- package/dist/components/blocks/scene-scroll-word/SceneScrollWord.d.ts +31 -0
- package/dist/components/blocks/scene-scroll-word/SceneScrollWord.js +67 -0
- package/dist/components/blocks/scene-scroll-word/SceneScrollWord.types.d.ts +39 -0
- package/dist/components/blocks/scene-scroll-word/SceneScrollWord.types.js +18 -0
- package/dist/components/blocks/scene-scroll-word/scene-scroll-word-impl.css +370 -0
- package/dist/components/blocks/stats/Stats.d.ts +2 -1
- package/dist/components/blocks/stats/Stats.js +17 -14
- package/dist/components/blocks/stats/Stats.types.d.ts +8 -0
- package/dist/components/blocks/stats/stats-impl.css +4 -1
- package/dist/components/blocks/stats/use-wheel.d.ts +1 -1
- package/dist/components/blocks/stats/use-wheel.js +8 -4
- package/dist/components/blocks/stats-carousel/StatsCarousel.css +209 -0
- package/dist/components/blocks/stats-carousel/StatsCarousel.d.ts +20 -0
- package/dist/components/blocks/stats-carousel/StatsCarousel.js +48 -0
- package/dist/components/blocks/stats-carousel/StatsCarousel.types.d.ts +43 -0
- package/dist/components/blocks/stats-carousel/StatsCarousel.types.js +23 -0
- package/dist/components/blocks/stats-carousel/stats-carousel-impl.css +233 -0
- package/dist/components/blocks/sticky-cards/sticky-cards-impl.css +8 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.css +1 -1
- package/dist/components/blocks/testimonial-row/TestimonialRow.d.ts +2 -1
- package/dist/components/blocks/testimonial-row/TestimonialRow.js +16 -13
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.d.ts +9 -1
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.css +1 -1
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.d.ts +1 -1
- package/dist/components/blocks/tiers/Tiers.types.d.ts +1 -1
- package/dist/components/core/background/Background.css +19 -0
- package/dist/components/core/background/Background.types.d.ts +2 -1
- package/dist/components/core/background/background-impl.css +47 -15
- package/dist/components/core/background/halftone.js +1 -1
- package/dist/components/core/button/Button.css +5 -5
- package/dist/components/core/button-icon/ButtonIcon.types.d.ts +1 -1
- package/dist/components/core/card-body/CardBody.css +5 -0
- package/dist/components/core/card-body/CardBody.types.d.ts +1 -1
- package/dist/components/core/document-link/DocumentLink.css +59 -0
- package/dist/components/core/document-link/DocumentLink.d.ts +19 -0
- package/dist/components/core/document-link/DocumentLink.js +21 -0
- package/dist/components/core/document-link/DocumentLink.types.d.ts +41 -0
- package/dist/components/core/document-link/DocumentLink.types.js +11 -0
- package/dist/components/core/document-link/document-link-impl.css +23 -0
- package/dist/components/core/illustration-card/IllustrationCard.css +7 -0
- package/dist/components/core/illustration-card/IllustrationCard.d.ts +5 -1
- package/dist/components/core/illustration-card/IllustrationCard.js +34 -8
- package/dist/components/core/illustration-card/IllustrationCard.types.d.ts +8 -1
- package/dist/components/core/illustration-card/IllustrationCard.types.js +1 -0
- package/dist/components/core/illustration-card/illustration-card-impl.css +113 -0
- package/dist/components/core/illustration-check/IllustrationCheck.css +25 -0
- package/dist/components/core/illustration-check/IllustrationCheck.d.ts +16 -0
- package/dist/components/core/illustration-check/IllustrationCheck.js +22 -0
- package/dist/components/core/illustration-check/IllustrationCheck.types.d.ts +25 -0
- package/dist/components/core/illustration-check/IllustrationCheck.types.js +9 -0
- package/dist/components/core/illustration-check/illustration-check-impl.css +76 -0
- package/dist/components/core/illustration-choice/IllustrationChoice.css +62 -0
- package/dist/components/core/illustration-choice/IllustrationChoice.d.ts +16 -0
- package/dist/components/core/illustration-choice/IllustrationChoice.js +31 -0
- package/dist/components/core/illustration-choice/IllustrationChoice.types.d.ts +25 -0
- package/dist/components/core/illustration-choice/IllustrationChoice.types.js +11 -0
- package/dist/components/core/illustration-choice/illustration-choice-impl.css +103 -0
- package/dist/components/core/illustration-code/IllustrationCode.css +25 -0
- package/dist/components/core/illustration-code/IllustrationCode.d.ts +12 -0
- package/dist/components/core/illustration-code/IllustrationCode.js +20 -0
- package/dist/components/core/illustration-code/IllustrationCode.types.d.ts +23 -0
- package/dist/components/core/illustration-code/IllustrationCode.types.js +8 -0
- package/dist/components/core/illustration-code/illustration-code-impl.css +42 -0
- package/dist/components/core/illustration-list/IllustrationList.css +19 -0
- package/dist/components/core/illustration-list/IllustrationList.d.ts +16 -0
- package/dist/components/core/illustration-list/IllustrationList.js +18 -0
- package/dist/components/core/illustration-list/IllustrationList.types.d.ts +15 -0
- package/dist/components/core/illustration-list/IllustrationList.types.js +6 -0
- package/dist/components/core/illustration-list/illustration-list-impl.css +52 -0
- package/dist/components/core/illustration-scene/IllustrationScene.css +6 -0
- package/dist/components/core/illustration-scene/IllustrationScene.d.ts +3 -2
- package/dist/components/core/illustration-scene/IllustrationScene.js +4 -3
- package/dist/components/core/illustration-scene/IllustrationScene.types.d.ts +5 -1
- package/dist/components/core/illustration-scene/IllustrationScene.types.js +2 -1
- package/dist/components/core/illustration-scene/illustration-scene-impl.css +65 -0
- package/dist/components/core/link/link-impl.css +5 -19
- package/dist/components/core/progress-bar/ProgressBar.css +101 -0
- package/dist/components/core/progress-bar/ProgressBar.d.ts +5 -0
- package/dist/components/core/progress-bar/ProgressBar.js +34 -0
- package/dist/components/core/progress-bar/ProgressBar.types.d.ts +52 -0
- package/dist/components/core/progress-bar/ProgressBar.types.js +12 -0
- package/dist/components/core/progress-bar/progress-bar-impl.css +45 -0
- package/dist/components/core/segmented-control/SegmentedControl.d.ts +1 -1
- package/dist/components/core/segmented-control/SegmentedControl.js +13 -5
- package/dist/components/core/segmented-control/SegmentedControl.types.d.ts +5 -1
- package/dist/components/core/segmented-control/segmented-control-impl.css +35 -0
- package/dist/components/core/status-dot/StatusDot.d.ts +1 -1
- package/dist/components/core/status-dot/StatusDot.js +7 -4
- package/dist/components/core/status-dot/StatusDot.types.d.ts +9 -1
- package/dist/components/core/status-dot/status-dot-impl.css +101 -0
- package/dist/components/core/typography/Typography.d.ts +3 -283
- package/dist/components/core/typography/Typography.js +9 -1
- package/dist/components/core/typography/Typography.types.d.ts +9 -15
- package/dist/components/core/typography/TypographyMotion.d.ts +28 -0
- package/dist/components/core/typography/TypographyMotion.js +43 -0
- package/dist/components/core/typography/typography-impl.css +106 -0
- package/dist/components/illustration-data.d.ts +15 -0
- package/dist/components/illustration-data.js +7 -0
- package/dist/components/index.d.ts +22 -1
- package/dist/components/index.js +20 -0
- package/dist/components/layout/grid/Grid.css +5 -0
- package/dist/components/layout/grid/Grid.types.d.ts +2 -1
- package/dist/components/scene-scroll-data.d.ts +35 -0
- package/dist/components/tiers-data.d.ts +3 -2
- package/dist/marketing.css +24 -6
- package/package.json +1 -1
package/.llm/digest/button.md
CHANGED
|
@@ -31,7 +31,7 @@ Triggers the one action a section asks for, such as signing up
|
|
|
31
31
|
- `lg` — A hero, or a full-width conversion band that is the only control in view. …
|
|
32
32
|
- **tone** `enum` · default "default"
|
|
33
33
|
- `default` — The page's own ground, which sets the ink this component was drawn against — every button on a white page
|
|
34
|
-
- `inverse` — The control stands on the dark band, color.bg.brand-strong — a hero, a navigation bar at the top of one, a footer — which is
|
|
34
|
+
- `inverse` — The control stands on the dark band, color.bg.brand-strong — a hero, a navigation bar at the top of one, a footer — which is near-black in light and dark alike — slate.900 in light, a step deeper in dark. …
|
|
35
35
|
- `brand` — The control stands on the coral band, color.bg.brand — CtaBanner and CtaBannerSlider — which is the same coral in light and dark, so nothing on it switches either. …
|
|
36
36
|
- **href** `string` · optional — The press goes somewhere with a URL of its own — the ordinary case for a call to action on a marketing page. It makes this an anchor rather than a button, which is what gives a visitor cmd-click, a visible destination and a copyable link. …
|
|
37
37
|
- never: A placeholder while the destination is undecided — a # or an empty string is a control that looks live, takes focus and goes nowhere. Nor javascript: or a handler dressed as a URL: leave href out and pass onClick, and this renders a button that does the work in place
|
|
@@ -43,7 +43,7 @@ Triggers an action with an icon alone
|
|
|
43
43
|
- never: Making one of a set stand out. Two of these side by side at different steps read as a control and its afterthought, and a carousel whose next is larger than its previous has said the path runs one way
|
|
44
44
|
- **tone** `enum` · default "default"
|
|
45
45
|
- `default` — The control is on a light ground, which is every surface this package paints by default
|
|
46
|
-
- `inverse` — The control stands on the dark band, color.bg.brand-strong — a mark in a navigation bar on a hero, a social mark in a footer — which is
|
|
46
|
+
- `inverse` — The control stands on the dark band, color.bg.brand-strong — a mark in a navigation bar on a hero, a social mark in a footer — which is near-black in light and dark alike — slate.900 in light, a step deeper in dark. …
|
|
47
47
|
- **icon** `node` · required — Always — the glyph is the whole control, so it is required rather than a slot that may be empty. …
|
|
48
48
|
- never: A glyph whose meaning the visitor has to be taught, and never a second glyph — one control, one action, one shape. …
|
|
49
49
|
- **label** `string` · required — Always. It is the entire accessible name, because nothing on screen carries one — the words that would have been the label if there had been room for one. …
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!-- GENERATED from documentlink.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# DocumentLink
|
|
4
|
+
|
|
5
|
+
One document a reader can open or save: its mark, its title, and an optional second link beside it
|
|
6
|
+
|
|
7
|
+
`import { DocumentLink } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A document on a legal, regulatory or help page — a policy, a key information document, a licence, a form
|
|
12
|
+
- Many documents of one kind, listed or laid in a grid inside a Documents block
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- One to four related pages or documents at the end of a section → **ResourceBanner**
|
|
17
|
+
- A link inside a sentence, or a page rather than a document → **Link**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- Navigation between pages of the site. A document chip says a file is behind it
|
|
22
|
+
- A document whose title alone does not say which it is. Two chips both reading "Key information document" are the same chip twice
|
|
23
|
+
|
|
24
|
+
## Props
|
|
25
|
+
|
|
26
|
+
- **variant** `enum` · default "chip" — How much the document stands out from the page around it
|
|
27
|
+
- `chip` — The default: the document on a surface of its own, for a list of documents grouped under headings
|
|
28
|
+
- `plain` — The mark and the title on the page itself, for a grid of many short entries — a licence per country, each behind its flag
|
|
29
|
+
- never: Mixing the two in one list. A list is one kind of thing; chips beside plain entries read as two
|
|
30
|
+
- **href** `string` · required — Always. Where the document is: a URL, usually a PDF
|
|
31
|
+
- never: A page on the site. A page is a Link
|
|
32
|
+
- **external** `boolean` · default false — The document is hosted off the site — opens in a new tab, and its accessible name ends with `externalLabel`
|
|
33
|
+
- never: A document on this site, which opens in place
|
|
34
|
+
- **download** `boolean` · default false — The link saves the file rather than opening it — its accessible name ends with `downloadLabel`
|
|
35
|
+
- never: A document a browser opens to read, which most PDFs are. A file on another site. Browsers ignore `download` across origins and open the file instead, so the name would promise a download that does not happen; such a file is `external`
|
|
36
|
+
- **mark** `node` · optional — What kind of document it is, as a glyph — FilePdfSolidIcon for a PDF, FileShieldSolidIcon for a policy, or a country's flag from `@deriv-com/dds-marketing/icons/flag` (`MaltaIcon`, `GermanyIcon`) for one country's licence. …
|
|
37
|
+
- never: Saying what the title does not. The mark is decoration and is never read out
|
|
38
|
+
- **action** `node` · optional — A second link beside the document — "Choose language" — drawn at the far end of the row as its own target
|
|
39
|
+
- never: A second document. Each document is its own DocumentLink
|
|
40
|
+
- **externalLabel** `string` · default "(opens in a new tab)" — What an external document's accessible name ends with. Never drawn. Translate it with the page
|
|
41
|
+
- never: Anything a sighted reader needs; it is never shown
|
|
42
|
+
- **downloadLabel** `string` · default "(downloads a file)" — What a download's accessible name ends with. Never drawn. Translate it with the page
|
|
43
|
+
- never: Naming the file's format, which belongs in the title where it matters
|
|
44
|
+
|
|
45
|
+
## Inside it
|
|
46
|
+
|
|
47
|
+
- Takes only text.
|
|
48
|
+
- Renders 5 parts: root, link, mark, title, action.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/documentlink.md`.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!-- GENERATED from documents.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# Documents
|
|
4
|
+
|
|
5
|
+
A section of documents to open or save — grouped under headings that expand, or laid in a grid beside its heading
|
|
6
|
+
|
|
7
|
+
`import { Documents } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A legal or regulatory page's documents — key information documents grouped by product, policies, terms
|
|
12
|
+
- A document per country, region or entity, each behind its flag or mark — `layout="grid"`
|
|
13
|
+
- Any list of more documents than a ResourceBanner's four
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- One to four documents or pages at the end of a section → **ResourceBanner**
|
|
18
|
+
- Questions and their answers → **FaqAccordion**
|
|
19
|
+
|
|
20
|
+
## Never
|
|
21
|
+
|
|
22
|
+
- Documents the reader must see before acting — a risk warning on the page it governs. A folded group is one most readers never open
|
|
23
|
+
- Navigation between the site's pages. Each entry is a document; a page is a Link
|
|
24
|
+
- Mixing the two shapes in one section. Groups of chips beside a grid of flags is two sections
|
|
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 reference design's slate FAQ. …
|
|
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 a ground is a page with no emphasis left
|
|
33
|
+
- **layout** `enum` · default "groups" — How the documents are laid out: grouped under headings, or as one grid of entries
|
|
34
|
+
- `groups` — The default: the documents under headings that expand, one group open at a time — AccordionItem children, each holding DocumentLink chips, two to a row from the fold. …
|
|
35
|
+
- `grid` — Many short entries of one kind — a document per country, each behind its flag — DocumentLink children with `variant="plain"`, in a grid beside the heading from 62rem and under it below. …
|
|
36
|
+
- never: Choosing by how many documents there are alone. Groups are for documents of different kinds; a grid is for many of one kind
|
|
37
|
+
- **title** `string` · required — Always. What the documents are, in a few words — "Regulatory documents", "Licences by country". It names the section
|
|
38
|
+
- never: A sentence. The line under it says more
|
|
39
|
+
- **description** `string` · optional — A line under the heading saying what the documents are for or who they apply to
|
|
40
|
+
- never: Instructions a reader must follow; they belong on the page the documents govern
|
|
41
|
+
|
|
42
|
+
## Inside it
|
|
43
|
+
|
|
44
|
+
- Takes only AccordionItem, DocumentLink.
|
|
45
|
+
- At least 1, no ceiling — fewer is not this component and more is a different one.
|
|
46
|
+
- 8 components are refused inside it; the list and the reasons are in the long document.
|
|
47
|
+
- Renders 8 parts: root, inner, title, header, description, body, list, item.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/documents.md`.
|
|
@@ -26,7 +26,7 @@ Promotes the app with a heading and links to each app store
|
|
|
26
26
|
- **ground** `enum` · default "page" — Which of the page's grounds the section paints, and with it the card's fill: the recessed surface on the page, the raised white on the grey band, and the strong card on the dark band — TestimonialRow's three and the reference design's light, light-2 and dark. …
|
|
27
27
|
- `page` — The default, and the page's own white. The card is the recessed gray that sets it off — the reference design's light-2
|
|
28
28
|
- `subtle` — The grey band, with the card white on it — the reference design's light. Painted as the band's tint laid over the page's own ground, so it is the same grey whatever is behind the section
|
|
29
|
-
- `strong` — `color.bg.brand-strong`, the dark band, with the card at color.bg.surface-card-strong and white words on it — the reference design's dark. …
|
|
29
|
+
- `strong` — `color.bg.brand-strong`, the dark band, with the card at color.bg.surface-card-strong-on-brand-strong and white words on it — the reference design's dark. …
|
|
30
30
|
- never: Marking importance. Every section on a page painted a ground is a page with no emphasis left
|
|
31
31
|
- **variant** `enum` · default "standard" — How much the banner asks for. The standard card sits with the page; the featured card is the page's moment for the app, and one per page
|
|
32
32
|
- `standard` — The default: the card in the ground's own fill, quiet beside the sections around it — the reference design's banner
|
|
@@ -30,6 +30,13 @@ A heading over a grid of feature cards
|
|
|
30
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
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
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
|
+
- **background** `enum` · optional — The page's one patterned band, between its hero and its closing call to action — a band a reader should stop at. …
|
|
34
|
+
- `halftone` — A field of coral dots that grow towards a soft glow at the band's foot and settle to a fine screen away from it
|
|
35
|
+
- `aurora` — Curtains of the brand's light rising from the band's foot and swaying slowly
|
|
36
|
+
- `mesh` — The band in the brand's reds folded into one another like a liquid — the loudest of the five, for a dark band
|
|
37
|
+
- `grid` — Hairlines a pitch apart rising from a soft bloom at the band's foot — the quietest, and the one to reach for first
|
|
38
|
+
- `rings` — Hairline circles spreading out from the middle of the band's foot
|
|
39
|
+
- never: More than one band on a page, or a band that is already the hero or the call to action — those carry their own patterns. One pattern is what makes a band the one a reader remembers; two make neither, and a page of them is noise. …
|
|
33
40
|
- **title** `string` · required — Always. What the cards are, in the fewest words that name them — "Why trade with Deriv", "Markets you can trade"
|
|
34
41
|
- never: A sentence. The line under it is for the sentence
|
|
35
42
|
- **description** `string` · optional — A line saying what the set has in common, when the title alone does not
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!-- GENERATED from featuretabs.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# FeatureTabs
|
|
4
|
+
|
|
5
|
+
A section that shows one version of something at a time behind tabs — a heading, a strip of tabs, and the content of the one selected
|
|
6
|
+
|
|
7
|
+
`import { FeatureTabs } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- Several versions of one thing a reader takes one at a time — a product's trade types, a platform's apps, the account types
|
|
12
|
+
- A section whose versions each need a picture, a line and a way onward, and only one is worth showing at once
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- One claim and one picture, with nothing to list → **FeatureSplit**
|
|
17
|
+
- Two or three plans or account types compared feature by feature → **ComparisonCards**
|
|
18
|
+
- Showing the same section's content for a monthly or a yearly price → **TabList**
|
|
19
|
+
|
|
20
|
+
## Never
|
|
21
|
+
|
|
22
|
+
- Content a reader needs all of. Only one tab is on the page at a time, and most readers never open the others
|
|
23
|
+
- Small print the reader must see. The footnote is the last thing read
|
|
24
|
+
- More than six tabs. A strip longer than that scrolls, and a reader stops reading 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 reference design's slate FAQ. …
|
|
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 a ground is a page with no emphasis left
|
|
33
|
+
- **title** `string` · required — Always. What the versions are of, in a few words — "Types of digital options". It names the section and the tabs
|
|
34
|
+
- never: A sentence. The line under it says more
|
|
35
|
+
- **description** `string` · optional — A line under the heading saying what the tabs have in common
|
|
36
|
+
- never: Describing one tab. Each says that in its own description
|
|
37
|
+
- **labels** `data` · required — Always. The tabs' names, in a word or two each, in the order of the children they choose between — the first names the first child. A name without a child is not drawn
|
|
38
|
+
- never: Sentences. A tab is read at a glance; what it shows says the rest
|
|
39
|
+
- **footnote** `string` · optional — Small print every tab shares — that what is offered varies by platform or device
|
|
40
|
+
- never: A risk warning. Small print is the last thing a reader reads, and the one place a warning must never be
|
|
41
|
+
|
|
42
|
+
## Inside it
|
|
43
|
+
|
|
44
|
+
- At least 1, no ceiling — fewer is not this component and more is a different one.
|
|
45
|
+
- 7 components are refused inside it; the list and the reasons are in the long document.
|
|
46
|
+
- Renders 8 parts: root, inner, header, title, description, tabs, panel, footnote.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/featuretabs.md`.
|
package/.llm/digest/grid.md
CHANGED
|
@@ -38,6 +38,7 @@ Lays items out in equal columns with consistent spacing
|
|
|
38
38
|
- `xl` — Between the parts of a card, taken as a field — cells that each hold a picture as well as words. Drops one step below 768px, a phone having a third of the width to spend
|
|
39
39
|
- `2xl` — Between one section of a page and the next, laid out as a field. Drops one step below 768px, a phone having a third of the width to spend
|
|
40
40
|
- `3xl` — The largest gap, for separating whole movements of a page laid out as a field. Drops one step below 768px, a phone having a third of the width to spend
|
|
41
|
+
- `gutter` — A row of cards — the gutter every card block (FeatureCards, ComparisonCards, Tiers, TeamGrid) sets between its cards, so a grid of cards composed on a page stands as those do. …
|
|
41
42
|
- never: Reaching a cell width. The gap and the column count together decide how wide a cell lands, but the gap is a relationship between cells and not a way of sizing one. A cell that needs a particular width is a track floor, and past that it is a component with a size
|
|
42
43
|
- **min** `enum` · default "md" — How narrow a track may get before the field drops a column. This is the whole of the component's responsiveness, and choosing it is choosing where the layout changes
|
|
43
44
|
- `sm` — The narrow floor, for a cell holding a logo, an icon and a word, or one short claim. Six of these clear the page's measure with its gutter still on both sides
|
|
@@ -35,11 +35,16 @@ A glass card showing product information, used as an illustration
|
|
|
35
35
|
- never: Fitting a particular piece of UI. The shape is a decision about the layout; the UI is laid out for it
|
|
36
36
|
- **label** `string` · required — Always. What the picture shows, in a sentence — "Trade ticket: buy Gold to rise over 5 minutes, staking 10 USD". The pane is one image to assistive technology and this is its whole description; nothing inside it is read out on its own
|
|
37
37
|
- never: A title or a caption the page shows. It is never drawn; a heading the reader sees belongs to the section beside the picture
|
|
38
|
+
- **motion** `enum` · optional — The pane's own motion as it arrives, played once when it has landed and never again. Leave it out and the pane simply arrives with the band around it
|
|
39
|
+
- `frost` — The pane frosts over its photograph as it arrives: the glass blurs in over motion.duration.dramatic, and what it holds fades in a step of motion.duration.stagger apart once the glass is mostly there. …
|
|
40
|
+
- never: A pane whose parts already carry the lead motion — a figure that rolls, a story told with `then`. One lead motion per pane: two read as the pane fidgeting rather than the product working
|
|
41
|
+
- **then** `node` · optional — A second state of the same product, played once after the first: the order goes in, then the position is open. …
|
|
42
|
+
- never: A slideshow, or a state that undoes the first. It plays once and ends on this, and a pane that kept changing would be a carousel nobody asked for. And not with `motion`, which is not played beside it — the story is the pane's lead motion
|
|
38
43
|
|
|
39
44
|
## Inside it
|
|
40
45
|
|
|
41
46
|
- 2 components are refused inside it; the list and the reasons are in the long document.
|
|
42
|
-
- Renders
|
|
47
|
+
- Renders 3 parts: root, content, stage.
|
|
43
48
|
|
|
44
49
|
---
|
|
45
50
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- GENERATED from illustrationcheck.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# IllustrationCheck
|
|
4
|
+
|
|
5
|
+
A drawn confirmation mark — a ring and a tick — for a picture of something done
|
|
6
|
+
|
|
7
|
+
`import { IllustrationCheck } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A pane, or any picture of the product, showing that something has gone through — a deposit received, an identity verified
|
|
12
|
+
- The moment of confirmation is the point of the picture, played once with `motion="resolve"`
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- Something is still loading on a real page → **Spinner**
|
|
17
|
+
- A tick beside words in a list or a field → **Icon**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- Reporting the outcome of something the reader did on this page. A real confirmation is announced and stays; this is a picture, and its motion says nothing to a screen reader
|
|
22
|
+
- More than one moving thing in a pane. One lead motion per pane
|
|
23
|
+
|
|
24
|
+
## Props
|
|
25
|
+
|
|
26
|
+
- **size** `enum` · default "xl" — How large the mark is drawn: one of the two largest icon sizes, because a mark smaller than that is a glyph beside words and an Icon
|
|
27
|
+
- `lg` — Thirty-two pixels, icon.size.lg. Beside a line of words in a pane
|
|
28
|
+
- `xl` — Forty-eight pixels, icon.size.xl, and the default. The mark as the subject of a pane
|
|
29
|
+
- never: Fitting a pane. A pane scales its whole picture down to fit; the mark keeps its size in it
|
|
30
|
+
- **motion** `enum` · optional — The mark moves once, on arrival — in an IllustrationCard when the pane has landed, otherwise when it is well into view. At rest, and for a reader who asked for less movement, it is the finished mark
|
|
31
|
+
- `resolve` — The ring spins open like a Spinner for two turns, closes, and the tick draws in — the moment something goes through
|
|
32
|
+
- never: A mark beside another moving part in the same pane. One lead motion per pane
|
|
33
|
+
- **label** `string` · optional — Only where the mark says something nothing beside it does — rarely. It names the mark as an image
|
|
34
|
+
- never: A mark inside an IllustrationCard, which is one image named by its own label; or repeating the words beside the mark
|
|
35
|
+
|
|
36
|
+
## Inside it
|
|
37
|
+
|
|
38
|
+
- Renders 3 parts: root, ring, tick.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/illustrationcheck.md`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- GENERATED from illustrationchoice.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# IllustrationChoice
|
|
4
|
+
|
|
5
|
+
A drawn set of options with one picked, for a picture of the product making a choice
|
|
6
|
+
|
|
7
|
+
`import { IllustrationChoice } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A pane, or any picture of the product, showing a choice — a demo account or a real one, a plan, a market
|
|
12
|
+
- The choosing is the point of the picture, played once with `motion="pick"`
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- The reader makes the choice on this page → **SegmentedControl**
|
|
17
|
+
- A choice between two or three short words, side by side → **SegmentedControl**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- A choice the reader makes. It is not focusable, not pressable and not announced as a control
|
|
22
|
+
- More than four options. A picture of a long list is a list, and its outline would travel too far to read as one choice
|
|
23
|
+
- More than one moving thing in a pane. One lead motion per pane
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
- **options** `data` · required — Always. Two to four options, each a name in a few words and a line under it where it needs one
|
|
28
|
+
- never: More than four, or options that are not alternatives to one another
|
|
29
|
+
- **value** `string` · required — Always. The `value` of the option shown picked
|
|
30
|
+
- never: A value no option has. Nothing would be picked, and the picture would show a choice not made
|
|
31
|
+
- **motion** `enum` · optional — The choice moves once, on arrival — in an IllustrationCard when the pane has landed, otherwise when it is well into view. At rest, and for a reader who asked for less movement, the option is simply picked
|
|
32
|
+
- `pick` — The outline starts on a neighbouring option and slides to the picked one, whose circle then fills — the product making the choice
|
|
33
|
+
- never: A choice beside another moving part in the same pane. One lead motion per pane
|
|
34
|
+
- **label** `string` · optional — Where the picture stands on its own and its options say less than a sentence would — "Choosing an account: the demo account". It names the whole as one image
|
|
35
|
+
- never: A choice inside an IllustrationCard, which is one image named by its own label
|
|
36
|
+
|
|
37
|
+
## Inside it
|
|
38
|
+
|
|
39
|
+
- Renders 7 parts: root, option, radio, dot, label, description, outline.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/illustrationchoice.md`.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- GENERATED from illustrationcode.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# IllustrationCode
|
|
4
|
+
|
|
5
|
+
A drawn row of code boxes, filled or not, for a picture of the product asking for a code
|
|
6
|
+
|
|
7
|
+
`import { IllustrationCode } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A pane, or any picture of the product, showing a verification step — confirming it is you, two-step sign-in
|
|
12
|
+
- The code going in is the point of the picture, played once with `motion="fill"`
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- The reader types a code on this page → **TextInput**
|
|
17
|
+
|
|
18
|
+
## Never
|
|
19
|
+
|
|
20
|
+
- A real code entry. Nothing in it can be focused or typed into, and it holds no digits — only dots, because a picture should never show a code
|
|
21
|
+
- More than one moving thing in a pane. One lead motion per pane
|
|
22
|
+
|
|
23
|
+
## Props
|
|
24
|
+
|
|
25
|
+
- **length** `number` · default 6 — How many boxes: six, the default, for the usual verification code; four for a short one
|
|
26
|
+
- never: A code longer than eight. A row of more boxes than that is too narrow to read as boxes
|
|
27
|
+
- **filled** `number` · optional — How many boxes are filled, from the start. Left out, all of them — a code entered
|
|
28
|
+
- never: Showing a code half typed with `motion="fill"`. The motion fills the boxes it is given; a picture of a code mid-entry is still, with no motion
|
|
29
|
+
- **motion** `enum` · optional — The row moves once, on arrival — in an IllustrationCard when the pane has landed, otherwise when it is well into view. At rest, and for a reader who asked for less movement, the boxes are as filled as `filled` says
|
|
30
|
+
- `fill` — The boxes fill one after another, a step of motion.duration.stagger apart
|
|
31
|
+
- never: A row beside another moving part in the same pane. One lead motion per pane
|
|
32
|
+
- **label** `string` · optional — Where the picture stands on its own — "A verification code, entered". It names the row as one image
|
|
33
|
+
- never: A row inside an IllustrationCard, which is one image named by its own label
|
|
34
|
+
|
|
35
|
+
## Inside it
|
|
36
|
+
|
|
37
|
+
- Renders 2 parts: root, box.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/illustrationcode.md`.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!-- GENERATED from illustrationlist.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# IllustrationList
|
|
4
|
+
|
|
5
|
+
A drawn list of rows — a glyph and a name each — for a picture of the product listing things
|
|
6
|
+
|
|
7
|
+
`import { IllustrationList } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A pane, or any picture of the product, listing a few things — the forex pairs on a platform, the documents a check needs
|
|
12
|
+
- The list arriving is the point of the picture, played once with `motion="arrive"`
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- A list of benefits or features the page itself is making → **FeatureBullets**
|
|
17
|
+
- A data table the reader compares across → **Table**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- More than five or six rows. A picture of a long list reads as a list to scroll, and its arrival as a page loading
|
|
22
|
+
- Rows a reader acts on. Nothing in it can be pressed
|
|
23
|
+
- More than one moving thing in a pane. One lead motion per pane
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
- **motion** `enum` · optional — The list moves once, on arrival — in an IllustrationCard when the pane has landed, otherwise when it is well into view. At rest, and for a reader who asked for less movement, the list is simply there
|
|
28
|
+
- `arrive` — The rows come in one after another, and each glyph pops in as its row lands
|
|
29
|
+
- never: A list beside another moving part in the same pane. One lead motion per pane
|
|
30
|
+
|
|
31
|
+
## Inside it
|
|
32
|
+
|
|
33
|
+
- 2 components are refused inside it; the list and the reasons are in the long document.
|
|
34
|
+
- Renders 2 parts: root, row.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/illustrationlist.md`.
|
|
@@ -32,18 +32,20 @@ A photograph with an IllustrationCard laid over it
|
|
|
32
32
|
- **placement** `enum` · default "center" — Where the card sits over the photograph, so the subject of the photograph stays clear of it
|
|
33
33
|
- `center` — The default: the card in the middle of the frame. For a photograph whose subject frames the middle — a person looking down at what the card shows
|
|
34
34
|
- `bottom` — The card centred along the foot of the frame, held off it by the card's own inset — for a photograph whose subject fills the top: a face, a person reaching up, a skyline
|
|
35
|
-
- never: Anything but keeping the photograph's subject clear. The card's
|
|
35
|
+
- never: Anything but keeping the photograph's subject clear. The card's width is fixed by the shape; placement moves it, and at the foot holds it to at most two fifths of the frame's height
|
|
36
36
|
- **src** `string` · required — Always. The photograph the scene is set in
|
|
37
37
|
- never: A data URI holding a photograph. A scene's photograph is the heaviest thing on its page and belongs in a file the browser can cache
|
|
38
38
|
- **alt** `string` · default "" — Empty by default, because the card's `label` describes the whole picture and the photograph is decoration. Write one only where the photograph says something the label does not
|
|
39
39
|
- never: Repeating the card's label. A screen reader would hear the picture described twice
|
|
40
|
+
- **shade** `boolean` · default false — The photograph is bright where the card sits — a sunny sky, a white wall — so the glass would come out mid-grey and the card's small lines would fall below AA. …
|
|
41
|
+
- never: A photograph already dark where the card sits, or darkening the whole photograph. The shade is for the card's type, and on a dark photograph it only takes light out of the scene
|
|
40
42
|
|
|
41
43
|
## Inside it
|
|
42
44
|
|
|
43
45
|
- Takes only IllustrationCard.
|
|
44
46
|
- At least 1, at most 1 — fewer is not this component and more is a different one.
|
|
45
47
|
- 2 components are refused inside it; the list and the reasons are in the long document.
|
|
46
|
-
- Renders
|
|
48
|
+
- Renders 3 parts: root, image, shade.
|
|
47
49
|
|
|
48
50
|
---
|
|
49
51
|
|
|
@@ -29,12 +29,12 @@ A dark card pairing a headline and one action with a photograph
|
|
|
29
29
|
- **ground** `enum` · default "page" — Which of the page's three grounds the band around the card paints. The card is dark whatever this says — that is what the block is — so this is about the rhythm of the page, white, grey or dark, and never about the card. …
|
|
30
30
|
- `page` — The default, and the page's own white, with the dark card set into it. Most of the time: the card is already the break
|
|
31
31
|
- `subtle` — The grey band, for a card that follows a white section the page wants told apart from this one. …
|
|
32
|
-
- `strong` — `color.bg.brand-strong`, the dark band, with the card a step lighter at color.bg.surface-card-strong so it still reads as a card. …
|
|
32
|
+
- `strong` — `color.bg.brand-strong`, the dark band, with the card a step lighter at color.bg.surface-card-strong-on-brand-strong so it still reads as a card. …
|
|
33
33
|
- never: Making the card darker. The card is dark on every ground; painting the band dark too spends the page's one dark band on a section that was already one
|
|
34
34
|
- **variant** `enum` · default "split" — What the photograph does: beside the words, or behind them. Both carry one action — two of the reference design's layouts
|
|
35
35
|
- `split` — The default. The words in one half and the photograph filling the other, edge to edge, with one action under the words. …
|
|
36
|
-
- `cover` — The photograph fills the whole card, with the words over it
|
|
37
|
-
- never: Choosing by how busy the page looks. Cover
|
|
36
|
+
- `cover` — The photograph fills the whole card, with the words over it on a shade that darkens the words' own column and fades out just past it, leaving the rest of the photograph clear. …
|
|
37
|
+
- never: Choosing by how busy the page looks. Cover lays the words on part of the photograph behind a shade; it is a decision about the photograph, not decoration
|
|
38
38
|
- **mediaPosition** `enum` · default "end" — Which side the photograph takes, and in cover, which side it shows clear on with the words on the other. Alternating it with the section above is the page's decision, not this one's
|
|
39
39
|
- `end` — The default. The words lead and the photograph follows, which is the order the card argues in
|
|
40
40
|
- `start` — The photograph leads — the second of two cards on a page, or a photograph whose subject faces the words. A split card puts it above the words on a phone as well, as the reference design does
|
|
@@ -53,6 +53,12 @@ A dark card pairing a headline and one action with a photograph
|
|
|
53
53
|
- never: Artwork with words in it. The cover photograph sits under a scrim and the text, and the split crops to fill
|
|
54
54
|
- **parallax** `boolean` · default true — The photograph drifts against the scroll as the card passes through the view, the drift every block's picture shares — drawn at motion.scale.parallax and moved from motion.translate.parallax-from to motion.translate.parallax-to over the whole pass — so it reads as further away than the card — the reference design's ParallaxBanner, which this replaces. …
|
|
55
55
|
- never: Holding still for a reader who asked for less motion — it already holds still for them, and in a browser that cannot drive it from the scroll
|
|
56
|
+
- **stackOnPhone** `boolean` · default false — A cover photograph whose subject a phone's crop would put under the words or cut off — a person, a face, hands. …
|
|
57
|
+
- never: A split card, which stacks on a phone already, or a photograph that is setting rather than subject. Stacked, the phone loses the cover look, so keep it for the photograph that would otherwise lose its subject
|
|
58
|
+
|
|
59
|
+
## The type refuses
|
|
60
|
+
|
|
61
|
+
- variant="split" with stackOnPhone=true — A split card already stacks its words and its photograph on a phone; there is nothing for this to change
|
|
56
62
|
|
|
57
63
|
## Inside it
|
|
58
64
|
|
|
@@ -28,7 +28,7 @@ Backs a claim with two columns of logos that scroll in opposite directions
|
|
|
28
28
|
- **ground** `enum` · default "strong" — Which of the page's grounds the section paints, and with it the tiles' fill: the recessed surface on the page, the raised white on the grey band, and the strong card on the dark band. …
|
|
29
29
|
- `page` — The page's own white, with tiles at the recessed gray. For full-colour logos drawn for a light ground
|
|
30
30
|
- `subtle` — The grey band, with white tiles on it. For full-colour logos, where the section needs setting apart from the ones around it. …
|
|
31
|
-
- `strong` — The default.
|
|
31
|
+
- `strong` — The default. …
|
|
32
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
33
|
- **mediaPosition** `enum` · default "start" — Which side the wall takes at full width. Never a promise about a phone: below the fold the words are always first, because a reader on a phone came for them
|
|
34
34
|
- `start` — The default, the reference design's: the wall at the start, the claim beside it at the end
|
package/.llm/digest/logorows.md
CHANGED
|
@@ -27,8 +27,15 @@ Backs a claim with two rows of logos that slide in opposite directions
|
|
|
27
27
|
- **ground** `enum` · default "strong" — Which of the page's grounds the section paints, and with it the tiles' fill: the recessed surface on the page, the raised white on the grey band, and the strong card on the dark band. …
|
|
28
28
|
- `page` — The page's own white, with tiles at the recessed gray. For full-colour logos drawn for a light ground
|
|
29
29
|
- `subtle` — The grey band, with white tiles on it. For full-colour logos, where the section needs setting apart from the ones around it. …
|
|
30
|
-
- `strong` — The default.
|
|
30
|
+
- `strong` — The default. …
|
|
31
31
|
- 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. …
|
|
32
|
+
- **background** `enum` · optional — The page's one patterned band, between its hero and its closing call to action — a band a reader should stop at. …
|
|
33
|
+
- `halftone` — A field of coral dots that grow towards a soft glow at the band's foot and settle to a fine screen away from it
|
|
34
|
+
- `aurora` — Curtains of the brand's light rising from the band's foot and swaying slowly
|
|
35
|
+
- `mesh` — The band in the brand's reds folded into one another like a liquid — the loudest of the five, for a dark band
|
|
36
|
+
- `grid` — Hairlines a pitch apart rising from a soft bloom at the band's foot — the quietest, and the one to reach for first
|
|
37
|
+
- `rings` — Hairline circles spreading out from the middle of the band's foot
|
|
38
|
+
- never: More than one band on a page, or a band that is already the hero or the call to action — those carry their own patterns. One pattern is what makes a band the one a reader remembers; two make neither, and a page of them is noise. …
|
|
32
39
|
- **title** `string` · required — Always. The one claim the logos back, in the fewest words that say it — "Trusted by leading platforms worldwide"
|
|
33
40
|
- never: A list of the names. The logos are the names; the heading says what they prove
|
|
34
41
|
- **description** `string` · optional — The line under the heading: what the logos mean for the reader — which payment methods they can use, which platforms they can trade on
|
|
@@ -42,8 +42,14 @@ Opens a product or market page with a centred headline over a dark background
|
|
|
42
42
|
- never: The background — that is `backgroundImage`. And beside `media`: one product, one picture. Given both, `image` is drawn and `media` ignored
|
|
43
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
|
|
44
44
|
- never: The background. A photograph filling the band is `backgroundImage`; this sits in front of it, in the column, and is never cropped
|
|
45
|
-
- **backgroundImage** `string` · optional — A photograph filling the whole band. It is shown as it is — nothing is painted over it, so choose one
|
|
46
|
-
- never: A flat colour, or a bright photograph
|
|
45
|
+
- **backgroundImage** `string` · optional — A photograph filling the whole band. It is shown as it is — nothing is painted over it unless `shade` asks for a shade behind the words, so choose one dark enough where the words sit, or turn `shade` on for a bright one
|
|
46
|
+
- never: A flat colour, or a bright photograph left without `shade`. The band already paints its ground, and a pale photograph with nothing behind the words leaves the claim unreadable
|
|
47
|
+
- **shade** `boolean` · default false — Under `backgroundImage`, when the photograph is bright where the words sit — a daylight sky — and the description or the actions would fall below AA on it. …
|
|
48
|
+
- never: A band with no photograph, or darkening the whole photograph. The band's own ground already carries the words, and a shade over all of it is the gloom a bright photograph was chosen to avoid
|
|
49
|
+
|
|
50
|
+
## The type refuses
|
|
51
|
+
|
|
52
|
+
- shade=true with backgroundImage=null — A shade is drawn between a photograph and the words; with no photograph it darkens the band's own ground, which the words were already set to read on
|
|
47
53
|
|
|
48
54
|
## Inside it
|
|
49
55
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- GENERATED from progressbar.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# ProgressBar
|
|
4
|
+
|
|
5
|
+
Shows how much of a task is done
|
|
6
|
+
|
|
7
|
+
`import { ProgressBar } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A task has measurable completion and the user needs to see how much is done
|
|
12
|
+
- A longer operation — uploads, setup, or processing — needs progress feedback to reassure the user
|
|
13
|
+
|
|
14
|
+
## Something else, when
|
|
15
|
+
|
|
16
|
+
- The work has no measurable end — connecting, waiting on a system that reports nothing → **Spinner**
|
|
17
|
+
- The task finishes as fast as a reader can notice → **nothing in this system does this**
|
|
18
|
+
|
|
19
|
+
## Never
|
|
20
|
+
|
|
21
|
+
- Placing icons or labels inside the bar. The fill is a measurement: it is the width that carries the meaning, so anything sitting in it is clipped at one value and swimming at another, and the reader is left judging a number against a moving edge. Put them beside the bar, where they hold still
|
|
22
|
+
- Stacking several bars for one operation. A reader sums what they see, and three bars at a third each read as three tasks rather than one — the one number that matters, how much of the whole is done, is the one nobody can work out. One bar, one task, and the value label says the rest
|
|
23
|
+
- Standing in for a result. A bar at full says the work finished, not that it succeeded, and a failed upload that ends at 100% tells the reader the opposite of what happened. What came of it is a message, not a measurement
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
- **size** `enum` · default "md"
|
|
28
|
+
- `sm` — Dense layouts or inline indicators where vertical space is limited
|
|
29
|
+
- `md` — Default for standalone progress indicators in forms or dialogs
|
|
30
|
+
- **variant** `enum` · default "default"
|
|
31
|
+
- `default` — The default, and neutral: no status and no brand. …
|
|
32
|
+
- `accent` — Brand-coloured, and asked for rather than arrived at. Reach for it where the page is drawing attention to this progress — the one thing on screen a reader is waiting on. …
|
|
33
|
+
- `success` — Indicating completion or a successful process
|
|
34
|
+
- `warning` — Progress that needs attention, such as approaching a limit
|
|
35
|
+
- `error` — Progress of a process that has encountered a problem
|
|
36
|
+
- `info` — Informational progress such as downloads, syncing, or data loading
|
|
37
|
+
- **value** `number` · default 0 — The amount of work completed — a number between 0 and max. Defaults to 0, which is the honest rendering of nothing started
|
|
38
|
+
- never: A number outside the range this bar declares. It is held between nought and max before anything is drawn or announced, so a value past the end reads as full to the eye and to the ear alike — the clamp used to be on the width only, and a bar given 150 of 100 was drawn full while announcing 150 of 100
|
|
39
|
+
- **max** `number` · default 100 — The total amount of work differs from the default of 100
|
|
40
|
+
- never: Nought or less. Nothing can be a fraction of nothing, so there is no percentage to state and the bar reads as empty rather than complete — which is the one answer that is certainly wrong. A task whose size is unknown is ProgressBarIndeterminate
|
|
41
|
+
- **label** `string` · optional — Naming what is in progress, when the bar is not already named by what surrounds it. Omit it for a bar that is part of a labelled flow — an onboarding stepper under its own heading — and name the bar with aria-labelledby instead
|
|
42
|
+
- never: Displaying the numeric value, which belongs in the value label. And never leave the bar with no name at all: a progressbar announced without one is announced as nothing
|
|
43
|
+
- **showLabel** `boolean` · default true — The label is visible. When false, the label is visually hidden but remains accessible to screen readers
|
|
44
|
+
- **showValueLabel** `boolean` · default true — The numeric progress value is visible alongside the bar
|
|
45
|
+
- **description** `string` · optional — Freeform context below the bar, such as a step count, status message, or time remaining
|
|
46
|
+
- **motion** `enum` · optional — The bar moves once, on arrival — in an IllustrationCard when the pane has landed, otherwise when it is well into view. For a bar shown as a picture of progress. …
|
|
47
|
+
- `fill` — The bar fills from empty to its value once, on arrival, over motion.duration.dramatic — an account set-up three steps in, shown in a pane
|
|
48
|
+
- never: A bar reporting real, changing progress — an upload, a form being filled. That bar moves because the task does; filling it on arrival as well would show progress that did not happen
|
|
49
|
+
|
|
50
|
+
## Inside it
|
|
51
|
+
|
|
52
|
+
- Renders 6 parts: root, track, fill, label, value-label, description-text.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/progressbar.md`.
|
|
@@ -14,6 +14,7 @@ Two full-screen photo scenes that cross-fade as the reader scrolls
|
|
|
14
14
|
|
|
15
15
|
## Something else, when
|
|
16
16
|
|
|
17
|
+
- The two scenes are one claim with one word changed — "Trade all day", "Trade all night" → **SceneScrollWord**
|
|
17
18
|
- There is one photograph, not two states of something → **ImageBanner**
|
|
18
19
|
- Three or more things to show, each with a picture → **FeatureScroll**
|
|
19
20
|
- The page's opening band, with an action to take → **LandingHero**
|
|
@@ -23,8 +24,8 @@ Two full-screen photo scenes that cross-fade as the reader scrolls
|
|
|
23
24
|
|
|
24
25
|
- 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
26
|
- 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
|
|
27
|
-
-
|
|
27
|
+
- 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 cropped to fill and has the scene's words set over it
|
|
28
|
+
- Words over a busy or mid-toned stretch of photograph. Nothing lies between the words and the photograph, so the photograph has to leave the words a calm, light or dark stretch to sit on, and the scene's ink has to name which
|
|
28
29
|
|
|
29
30
|
## Props
|
|
30
31
|
|
|
@@ -36,13 +37,13 @@ Two full-screen photo scenes that cross-fade as the reader scrolls
|
|
|
36
37
|
- 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
38
|
- **second** `data` · required — Always. The scene the section changes over to, in the same shape as the first. …
|
|
38
39
|
- 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
|
-
- **
|
|
40
|
-
- never:
|
|
40
|
+
- **action** `node` · optional — One thing for the reader to do or a way on — "Trade now", "See trading hours" — under the words. …
|
|
41
|
+
- never: Two actions, or a different one per scene. One thing to do for the section; something to press that changed under the pointer would be the one thing a reader could not rely on
|
|
41
42
|
|
|
42
43
|
## Inside it
|
|
43
44
|
|
|
44
45
|
- 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,
|
|
46
|
+
- Renders 9 parts: root, stage, scene, media, image, content, title, description, action.
|
|
46
47
|
|
|
47
48
|
---
|
|
48
49
|
|