@deriv-com/dds-marketing 1.1.2 → 1.1.3
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 +4 -0
- package/.llm/components/accordionitem.md +4 -0
- package/.llm/components/aspectratio.md +4 -0
- package/.llm/components/awards.md +4 -0
- package/.llm/components/background.md +4 -0
- package/.llm/components/badge.md +7 -3
- package/.llm/components/bottomsheet.md +7 -3
- package/.llm/components/breadcrumb.md +4 -0
- package/.llm/components/breadcrumbitem.md +4 -0
- package/.llm/components/button.md +4 -0
- package/.llm/components/buttonicon.md +10 -6
- package/.llm/components/card.md +5 -1
- package/.llm/components/cardbody.md +5 -1
- package/.llm/components/cardbutton.md +4 -0
- package/.llm/components/checkbox.md +1 -1
- package/.llm/components/comparisoncards.md +4 -0
- package/.llm/components/comparisontable.md +4 -0
- package/.llm/components/ctabanner.md +4 -0
- package/.llm/components/ctabannerslider.md +4 -0
- package/.llm/components/datatable.md +4 -0
- package/.llm/components/divider.md +4 -0
- package/.llm/components/downloadbanner.md +4 -0
- package/.llm/components/dropdownmenu.md +9 -5
- package/.llm/components/estimator.md +336 -0
- package/.llm/components/faqaccordion.md +4 -0
- package/.llm/components/featurebullets.md +4 -0
- package/.llm/components/featurecards.md +5 -1
- package/.llm/components/featurecardscarousel.md +4 -0
- package/.llm/components/featurescroll.md +4 -0
- package/.llm/components/featuresplit.md +4 -0
- package/.llm/components/featurestack.md +4 -0
- package/.llm/components/filterchip.md +5 -1
- package/.llm/components/footer.md +4 -0
- package/.llm/components/footergroup.md +4 -0
- package/.llm/components/grid.md +4 -0
- package/.llm/components/icon.md +9 -5
- package/.llm/components/illustrationcard.md +4 -0
- package/.llm/components/illustrationscene.md +4 -0
- package/.llm/components/imagebanner.md +5 -1
- package/.llm/components/landinghero.md +4 -0
- package/.llm/components/link.md +5 -1
- package/.llm/components/logocolumns.md +4 -0
- package/.llm/components/logorows.md +4 -0
- package/.llm/components/menuitem.md +6 -2
- package/.llm/components/navbar.md +5 -1
- package/.llm/components/navbaritem.md +4 -0
- package/.llm/components/navbarmenu.md +4 -0
- package/.llm/components/navbarmenugroup.md +4 -0
- package/.llm/components/navbarpanel.md +4 -0
- package/.llm/components/navbarswitcher.md +10 -6
- package/.llm/components/navbarswitcheroption.md +4 -0
- package/.llm/components/option.md +5 -1
- package/.llm/components/pageheader.md +4 -0
- package/.llm/components/pagination.md +4 -0
- package/.llm/components/paginationdots.md +4 -0
- package/.llm/components/producthero.md +4 -0
- package/.llm/components/removablechip.md +5 -1
- package/.llm/components/resourcebanner.md +4 -0
- package/.llm/components/row.md +4 -0
- package/.llm/components/scenescroll.md +4 -0
- package/.llm/components/scroller.md +4 -0
- package/.llm/components/searchinput.md +4 -0
- package/.llm/components/segmentedcontrol.md +5 -1
- package/.llm/components/segmentedcontrolitem.md +6 -2
- package/.llm/components/select.md +4 -0
- package/.llm/components/selectchip.md +4 -0
- package/.llm/components/spinner.md +4 -0
- package/.llm/components/stack.md +4 -0
- package/.llm/components/stats.md +4 -0
- package/.llm/components/statusdot.md +4 -0
- package/.llm/components/steps.md +4 -0
- package/.llm/components/stickycards.md +4 -0
- package/.llm/components/subdomainnavbar.md +5 -1
- package/.llm/components/tab.md +6 -2
- package/.llm/components/table.md +4 -0
- package/.llm/components/tablebody.md +4 -0
- package/.llm/components/tablecell.md +4 -0
- package/.llm/components/tablehead.md +4 -0
- package/.llm/components/tableheadercell.md +4 -0
- package/.llm/components/tablerow.md +4 -0
- package/.llm/components/tablist.md +4 -0
- package/.llm/components/teamgrid.md +4 -0
- package/.llm/components/testimonialrow.md +4 -0
- package/.llm/components/testimonialslider.md +4 -0
- package/.llm/components/textarea.md +4 -0
- package/.llm/components/textinput.md +5 -1
- package/.llm/components/textscroll.md +4 -0
- package/.llm/components/tiers.md +4 -0
- package/.llm/components/typography.md +4 -0
- package/.llm/digest/accordion.md +1 -1
- package/.llm/digest/accordionitem.md +1 -1
- package/.llm/digest/aspectratio.md +1 -1
- package/.llm/digest/awards.md +1 -1
- package/.llm/digest/background.md +1 -1
- package/.llm/digest/badge.md +1 -1
- package/.llm/digest/bottomsheet.md +1 -1
- package/.llm/digest/breadcrumb.md +1 -1
- package/.llm/digest/breadcrumbitem.md +1 -1
- package/.llm/digest/button.md +1 -1
- package/.llm/digest/buttonicon.md +1 -1
- package/.llm/digest/card.md +1 -1
- package/.llm/digest/cardbody.md +1 -1
- package/.llm/digest/cardbutton.md +1 -1
- package/.llm/digest/checkbox.md +1 -1
- package/.llm/digest/comparisoncards.md +1 -1
- package/.llm/digest/comparisontable.md +1 -1
- package/.llm/digest/ctabanner.md +1 -1
- package/.llm/digest/ctabannerslider.md +1 -1
- package/.llm/digest/datatable.md +1 -1
- package/.llm/digest/divider.md +1 -1
- package/.llm/digest/downloadbanner.md +1 -1
- package/.llm/digest/dropdownmenu.md +1 -1
- package/.llm/digest/estimator.md +66 -0
- package/.llm/digest/faqaccordion.md +1 -1
- package/.llm/digest/featurebullets.md +1 -1
- package/.llm/digest/featurecards.md +1 -1
- package/.llm/digest/featurecardscarousel.md +1 -1
- package/.llm/digest/featurescroll.md +1 -1
- package/.llm/digest/featuresplit.md +1 -1
- package/.llm/digest/featurestack.md +1 -1
- package/.llm/digest/filterchip.md +1 -1
- package/.llm/digest/footer.md +1 -1
- package/.llm/digest/footergroup.md +1 -1
- package/.llm/digest/grid.md +1 -1
- package/.llm/digest/icon.md +1 -1
- package/.llm/digest/illustrationcard.md +1 -1
- package/.llm/digest/illustrationscene.md +1 -1
- package/.llm/digest/imagebanner.md +2 -2
- package/.llm/digest/landinghero.md +1 -1
- package/.llm/digest/link.md +1 -1
- package/.llm/digest/logocolumns.md +1 -1
- package/.llm/digest/logorows.md +1 -1
- package/.llm/digest/menuitem.md +1 -1
- package/.llm/digest/navbar.md +1 -1
- package/.llm/digest/navbaritem.md +1 -1
- package/.llm/digest/navbarmenu.md +1 -1
- package/.llm/digest/navbarmenugroup.md +1 -1
- package/.llm/digest/navbarpanel.md +1 -1
- package/.llm/digest/navbarswitcher.md +1 -1
- package/.llm/digest/navbarswitcheroption.md +1 -1
- package/.llm/digest/option.md +1 -1
- package/.llm/digest/pageheader.md +1 -1
- package/.llm/digest/pagination.md +1 -1
- package/.llm/digest/paginationdots.md +1 -1
- package/.llm/digest/producthero.md +1 -1
- package/.llm/digest/removablechip.md +1 -1
- package/.llm/digest/resourcebanner.md +1 -1
- package/.llm/digest/row.md +1 -1
- package/.llm/digest/scenescroll.md +1 -1
- package/.llm/digest/scroller.md +1 -1
- package/.llm/digest/searchinput.md +1 -1
- package/.llm/digest/segmentedcontrol.md +1 -1
- package/.llm/digest/segmentedcontrolitem.md +2 -2
- package/.llm/digest/select.md +1 -1
- package/.llm/digest/selectchip.md +1 -1
- package/.llm/digest/spinner.md +1 -1
- package/.llm/digest/stack.md +1 -1
- package/.llm/digest/stats.md +1 -1
- package/.llm/digest/statusdot.md +1 -1
- package/.llm/digest/steps.md +1 -1
- package/.llm/digest/stickycards.md +1 -1
- package/.llm/digest/subdomainnavbar.md +1 -1
- package/.llm/digest/tab.md +1 -1
- package/.llm/digest/table.md +1 -1
- package/.llm/digest/tablebody.md +1 -1
- package/.llm/digest/tablecell.md +1 -1
- package/.llm/digest/tablehead.md +1 -1
- package/.llm/digest/tableheadercell.md +1 -1
- package/.llm/digest/tablerow.md +1 -1
- package/.llm/digest/tablist.md +1 -1
- package/.llm/digest/teamgrid.md +1 -1
- package/.llm/digest/testimonialrow.md +1 -1
- package/.llm/digest/testimonialslider.md +1 -1
- package/.llm/digest/textarea.md +1 -1
- package/.llm/digest/textinput.md +1 -1
- package/.llm/digest/textscroll.md +1 -1
- package/.llm/digest/tiers.md +1 -1
- package/.llm/digest/typography.md +1 -1
- package/.llm/index.md +2 -1
- package/.llm/tokens.md +1 -0
- package/AGENTS.md +1 -0
- package/README.md +28 -3
- package/dist/components/blocks/comparison-cards/comparison-cards-impl.css +0 -12
- package/dist/components/blocks/estimator/Estimator.css +206 -0
- package/dist/components/blocks/estimator/Estimator.d.ts +27 -0
- package/dist/components/blocks/estimator/Estimator.js +61 -0
- package/dist/components/blocks/estimator/Estimator.types.d.ts +63 -0
- package/dist/components/blocks/estimator/Estimator.types.js +25 -0
- package/dist/components/blocks/estimator/estimator-impl.css +159 -0
- package/dist/components/blocks/image-banner/ImageBanner.d.ts +1 -0
- package/dist/components/blocks/image-banner/ImageBanner.js +2 -1
- package/dist/components/blocks/image-banner/ImageBanner.types.d.ts +1 -1
- package/dist/components/blocks/image-banner/image-banner-impl.css +7 -51
- package/dist/components/core/segmented-control-item/SegmentedControlItem.types.d.ts +1 -1
- package/dist/components/core/select/Select.css +2 -0
- package/dist/components/core/select/select-impl.css +58 -0
- package/dist/components/core/text-area/TextArea.css +2 -0
- package/dist/components/core/text-area/text-area-impl.css +54 -0
- package/dist/components/core/text-input/TextInput.css +2 -0
- package/dist/components/core/text-input/text-input-impl.css +63 -0
- package/dist/components/estimator-data.d.ts +29 -0
- package/dist/components/estimator-data.js +12 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.js +2 -0
- package/dist/icons/accounts.d.ts +1 -0
- package/dist/icons/accounts.js +1 -0
- package/dist/icons/app-stores.d.ts +1 -0
- package/dist/icons/app-stores.js +1 -0
- package/dist/icons/currency.d.ts +1 -0
- package/dist/icons/currency.js +1 -0
- package/dist/icons/flag.d.ts +1 -0
- package/dist/icons/flag.js +1 -0
- package/dist/icons/illustrative.d.ts +1 -0
- package/dist/icons/illustrative.js +1 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.js +4 -0
- package/dist/icons/markets.d.ts +1 -0
- package/dist/icons/markets.js +1 -0
- package/dist/icons/social.d.ts +1 -0
- package/dist/icons/social.js +1 -0
- package/dist/icons/system.d.ts +1 -0
- package/dist/icons/system.js +1 -0
- package/dist/icons/trade.d.ts +1 -0
- package/dist/icons/trade.js +1 -0
- package/dist/marketing.css +2 -0
- package/package.json +44 -2
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TableHeaderCell
|
|
4
4
|
|
|
5
|
+
The name of one table column.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
The name of a column, announced before every value under it. That is the whole of why it is a component rather than a styled cell: a screen reader reads the header before each cell in the column, which is how a reader knows what a number means without looking it up — and it only happens if the header is a header in the markup.
|
|
6
10
|
|
|
7
11
|
Where the column can be sorted, the header holds the control that sorts it. A button rather than a click handler on the cell, because sorting is an action: it has to be reachable by keyboard, announced as pressable, and able to say which way the column is currently ordered.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TableRow
|
|
4
4
|
|
|
5
|
+
One row of a Table.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
One row of a table: the cells that answer the same questions in the same order as every other row. It owns the rule under it and whether it reads as picked, and nothing about what any cell holds.
|
|
6
10
|
|
|
7
11
|
Being picked is drawn here rather than on the checkbox that sets it, because selection is a fact about the row: a reader scanning a table needs to see which rows are in the set without checking every box in the first column.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TabList
|
|
4
4
|
|
|
5
|
+
Switches between views of the same content.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
A strip of comparable versions of one thing, one of them showing at a time. What it says is that these are the same offer seen differently — a billing period, a platform, a market class — rather than places the site has. Two at least: selected means selected against something, and a strip of one is a heading that highlights.
|
|
6
10
|
|
|
7
11
|
It holds which tab is current and nothing else. The content each tab reveals belongs to the page, because a marketing page already has all of it written and the strip is only deciding which slice shows. That is why there is no panel here and no ARIA tab role: role="tab" is a promise about a tabpanel this component cannot see, and a promise it cannot keep is worse than the group it actually is.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TeamGrid
|
|
4
4
|
|
|
5
|
+
A grid of the people behind a company, with photo, name and role.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
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. The first few show at once, and a button under the grid shows the rest and hides them again.
|
|
6
10
|
|
|
7
11
|
One column on a phone, two from the fold and four at full width, so the first four people are one row on a desktop and the button under that row is what makes the list longer.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TestimonialRow
|
|
4
4
|
|
|
5
|
+
An overall rating over a scrollable row of customer reviews.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
A section that lets a review service's numbers back the page: a heading with the overall rating under it — and a way to where the reviews were collected — over a row of rated reviews the reader moves along, each a short review under its star rating with the reviewer's name, and two arrows under the row that step it a card at a time. Several are in view at once and nothing moves on its own.
|
|
6
10
|
|
|
7
11
|
The reference design's Testimonial in its review-row form. It names no review platform: the score, its wording and where it links are the page's, so the same section serves whichever service the reviews came from.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TestimonialSlider
|
|
4
4
|
|
|
5
|
+
Customer quotes shown one at a time, each with who said it.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
A section that lets the people who use the product say what it did for them: a heading over one quote at a time, in a card, with the name of who said it. Two or more quotes rotate in place — one in view, the next fading in where it stood — and dots show where the reader is and move to any quote pressed.
|
|
6
10
|
|
|
7
11
|
The reference design's Testimonial in its quote form. Its review-row form — rated reviews collected by a review service — is TestimonialRow.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TextArea
|
|
4
4
|
|
|
5
|
+
A field for a longer message, such as on a contact form.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
A field for what a visitor wants to say in their own words — the message on a contact form, the 'tell us about your project' on an enquiry, the reason someone is applying to partner. One value still, like TextInput, but a value with no shape the page can guess at.
|
|
6
10
|
|
|
7
11
|
That is the whole reason it is not TextInput with a taller box. A single line shows a reader a sliver of what they wrote and no way to read it back, and the one place they most want to check themselves is the paragraph they are about to send a stranger. So it grows as they type, up to a limit, and past that limit it scrolls rather than pushing the submit button off the screen.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TextInput
|
|
4
4
|
|
|
5
|
+
A single-line text field.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
One line of text a visitor types before they are a customer. A marketing page asks for very little and has no standing to ask for more: an email for a newsletter, a name and a message on a contact form, a work address to book a demo. Every one of those is a stranger deciding whether the thing on offer is worth handing something over for, and the field is where that decision gets made or lost.
|
|
6
10
|
|
|
7
11
|
That is the whole difference from a field in an application, and it is why this is not Product's TextInput with fewer props. An app's field is filled by someone who has already signed up, inside a task they have committed to, and can afford to ask for an account number in a particular format. A landing page's field is filled by someone with no account, no stake, and a back button — so it asks for one thing, says what it will do with it, and is legible enough at a glance that nobody has to work out what goes in it.
|
|
@@ -438,7 +442,7 @@ Ornaments and furniture, none of which is the label. A glyph names nothing and a
|
|
|
438
442
|
|
|
439
443
|
```tsx
|
|
440
444
|
import { TextInput } from '@deriv-com/dds-marketing'
|
|
441
|
-
import { EnvelopeRegularIcon, LockRegularIcon } from '@deriv-com/
|
|
445
|
+
import { EnvelopeRegularIcon, LockRegularIcon } from '@deriv-com/dds-marketing/icons'
|
|
442
446
|
|
|
443
447
|
// prefix — a head you should not have to type
|
|
444
448
|
<TextInput label="Website" type="url" prefix="https://" placeholder="example.com" />
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# TextScroll
|
|
4
4
|
|
|
5
|
+
One large statement whose words brighten as the reader scrolls.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
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
10
|
|
|
7
11
|
The reference design's TextScroll. The reveal is scrubbed by the scroll itself rather than timed: each word runs down the section's own view timeline a step behind the one before it, forward as the reader scrolls down and back again as they scroll up, and stands still while the page does. The sentence is in the page's first HTML as one paragraph of real words and spaces, so a reader with no script, a browser with no scroll timeline and a reader who asked for less movement all get the whole statement at full strength from the start; the dim is only ever something the scroll applies.
|
package/.llm/components/tiers.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# Tiers
|
|
4
4
|
|
|
5
|
+
A row of partnership tiers, each with what it offers and how to reach it.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
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
10
|
|
|
7
11
|
It shows how rewards grow with performance, Bronze to Platinum, and the order is the argument: each tier is a step up from the one before it. The tiers are a real ordered list, so the count and each tier's place reach a screen reader too. At full width they share one row and a rule runs through the medals, joining them into one track; below that they fall to two columns and then one, where each tier's words start at the edge.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# Typography
|
|
4
4
|
|
|
5
|
+
Sets text in one of the type roles.
|
|
6
|
+
|
|
7
|
+
## Why it is built this way
|
|
8
|
+
|
|
5
9
|
Copy, set in one of the page's type roles. It is the component that finally separates what a line of text is in the document from how large it is drawn — `as` says the first and `variant` says the second, and neither implies the other.
|
|
6
10
|
|
|
7
11
|
That separation is the whole reason it exists. Every heading role in this package carries the same sentence — a size, not an instruction — because a page that wants a hero-sized line reaches for h1 and gets an <h1>, and the second one on the page is a document with two top-level headings. Here the scale is a prop and the element is a different prop, so a section heading set at hero scale is `as="h2" variant="h1"` and says exactly that.
|
package/.llm/digest/accordion.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# AspectRatio
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Holds its content to a fixed shape and reserves the space before it loads
|
|
6
6
|
|
|
7
7
|
`import { AspectRatio } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/awards.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Awards
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Lists the industry awards a company has won, each framed between two laurels
|
|
6
6
|
|
|
7
7
|
`import { Awards } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Background
|
|
4
4
|
|
|
5
|
-
A ground a section
|
|
5
|
+
A patterned ground for a section to sit on
|
|
6
6
|
|
|
7
7
|
`import { Background } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/badge.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Breadcrumb
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Shows where the current page sits in the site, with links back up
|
|
6
6
|
|
|
7
7
|
`import { Breadcrumb } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# BreadcrumbItem
|
|
4
4
|
|
|
5
|
-
One level in a Breadcrumb
|
|
5
|
+
One level in a Breadcrumb
|
|
6
6
|
|
|
7
7
|
`import { BreadcrumbItem } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/button.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Button
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Triggers the one action a section asks for, such as signing up
|
|
6
6
|
|
|
7
7
|
`import { Button } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/card.md
CHANGED
package/.llm/digest/cardbody.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# CardBody
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The content area of a Card, holding its text and picture
|
|
6
6
|
|
|
7
7
|
`import { CardBody } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/checkbox.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# ComparisonCards
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Sets two to four options side by side as cards, so readers compare them row by row
|
|
6
6
|
|
|
7
7
|
`import { ComparisonCards } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# ComparisonTable
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Compares a short, fixed set of options in a table
|
|
6
6
|
|
|
7
7
|
`import { ComparisonTable } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/ctabanner.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# CtaBanner
|
|
4
4
|
|
|
5
|
-
A full-bleed
|
|
5
|
+
A full-bleed band with one short promotion and the action it asks for
|
|
6
6
|
|
|
7
7
|
`import { CtaBanner } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# CtaBannerSlider
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A full-bleed promotional band that rotates between two or three offers
|
|
6
6
|
|
|
7
7
|
`import { CtaBannerSlider } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/datatable.md
CHANGED
package/.llm/digest/divider.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Divider
|
|
4
4
|
|
|
5
|
-
A rule
|
|
5
|
+
A rule that separates one group of content from another
|
|
6
6
|
|
|
7
7
|
`import { Divider } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# DownloadBanner
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Promotes the app with a heading and links to each app store
|
|
6
6
|
|
|
7
7
|
`import { DownloadBanner } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# DropdownMenu
|
|
4
4
|
|
|
5
|
-
A button that opens a short
|
|
5
|
+
A button that opens a short list of links
|
|
6
6
|
|
|
7
7
|
`import { DropdownMenu } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<!-- GENERATED from estimator.contract.json. Do not edit. -->
|
|
2
|
+
|
|
3
|
+
# Estimator
|
|
4
|
+
|
|
5
|
+
Sets the page's own fields beside the figures worked out from them: a trading calculator, a converter, an income estimate
|
|
6
|
+
|
|
7
|
+
`import { Estimator } from '@deriv-com/dds-marketing'`
|
|
8
|
+
|
|
9
|
+
## Reach for it when
|
|
10
|
+
|
|
11
|
+
- A page lets a reader work something out before they act — a margin, a pip value, a swap charge, a conversion, an income estimate
|
|
12
|
+
- The figures change as the reader types or picks, and should be announced as they do
|
|
13
|
+
- The same tool appears on several pages in several forms — the margin, pip and swap calculators are one layout with different fields and figures
|
|
14
|
+
|
|
15
|
+
## Something else, when
|
|
16
|
+
|
|
17
|
+
- The figures are fixed facts rather than the result of anything the reader enters → **Stats**
|
|
18
|
+
- Options are compared side by side rather than worked out from an input → **ComparisonCards**
|
|
19
|
+
- The tool is a form that sends something — a sign-up, a contact request → **FeatureSplit**
|
|
20
|
+
|
|
21
|
+
## Never
|
|
22
|
+
|
|
23
|
+
- Fetching or calculating anything. The block has no data source and no formula: a page that wants live prices or a margin computes them and passes the figures in, so the block stays the same on every page and in every test
|
|
24
|
+
- A form that submits. Nothing here is sent anywhere; the way onward is a link or a button to the page that does the real thing
|
|
25
|
+
- A table of many figures. Past six or so results the panel stops being an answer and becomes a listing, which is what DataTable is for
|
|
26
|
+
|
|
27
|
+
## Props
|
|
28
|
+
|
|
29
|
+
- **ground** `enum` · default "page" — Which of the page's three grounds this section paints. A marketing page is white, and a band that wants to be seen as a band takes one of the other two — so this is how a page builds its rhythm: white, white, grey, white, dark. …
|
|
30
|
+
- `page` — The default, and the page's own white. A section that has nothing to separate itself from what is above it — most of them — and the ground a reader is already on
|
|
31
|
+
- `subtle` — A quiet step off the page, for a band that wants to read as its own section without changing the page's voice. The one to reach for first when two sections need telling apart. …
|
|
32
|
+
- `strong` — `color.bg.brand-strong`, the dark band. It stops the page rather than dividing it, so it is for a section a reader should arrive at — and one per page is usually one more than enough
|
|
33
|
+
- never: Marking importance. Every section on a page painted dark is a page with no emphasis left, and a reader stops reading the grounds as meaning anything. Alternating for its own sake is the same mistake more slowly. And never the brand's own coral, `color.bg.brand`, which is not offered here. …
|
|
34
|
+
- **layout** `enum` · default "stacked" — How the heading and the tool share the section at full width. On a phone both are one column whichever is chosen: the heading, then the card, the inputs above the results
|
|
35
|
+
- `stacked` — The default. The heading centred above a wide card, the inputs beside the results — a calculator with several fields and several figures, where the two panels each need room
|
|
36
|
+
- `split` — The heading and a few lines beside the card, the inputs above the results inside it — a compact tool a page introduces in its own words, a converter or a single estimate
|
|
37
|
+
- never: Varying between two tools on one page. Pick the layout the tool's size calls for, and the page reads as one system
|
|
38
|
+
- **title** `string` · required — Always. What the tool works out, in a few words — 'Trading calculator', 'Buy crypto in seconds', 'Estimate your earnings'
|
|
39
|
+
- never: Instructions. How to use the tool is the fields' own labels, not the heading
|
|
40
|
+
- **description** `string` · optional — A line or two under the title saying what the figures are for or where they come from — 'Live prices, updated every few seconds'
|
|
41
|
+
- never: A disclaimer the results depend on. That is a result's `note`, read beside the figure it qualifies
|
|
42
|
+
- **inputsLabel** `string` · optional — A heading over the inputs panel, where the two panels need naming — 'Calculator' over the fields and 'Results' over the figures. Leave both out for a tool whose fields name themselves
|
|
43
|
+
- never: One panel only. Name both or neither
|
|
44
|
+
- **inputs** `node` · required — Always. The fields the reader fills in — Select, TextInput, SearchInput, SegmentedControl, a slider — in the order they are filled. The page owns their values and works the results out from them
|
|
45
|
+
- never: A submit button. The results update as the fields change; the way onward is `action`
|
|
46
|
+
- **inputActions** `node` · optional — A tool that works its figures out when asked rather than as the reader types — a calculation too slow or too costly to run on every keystroke, or one where half-filled fields would show figures that mislead. …
|
|
47
|
+
- never: A tool whose figures already follow the fields. A button that does what typing already did is a step the reader has to find and press for nothing
|
|
48
|
+
- **onCalculate** `callback` · optional — Whenever inputActions holds a Calculate button: Enter in any of the fields calls it, as the button's own press does — wire the button's onClick to the same function. …
|
|
49
|
+
- never: Sending anything. The form never leaves the page; a tool that submits to a server is a form section, not this
|
|
50
|
+
- **resultsLabel** `string` · optional — A heading over the results panel, with inputsLabel — 'Results', 'You receive'
|
|
51
|
+
- never: One panel only. Name both or neither
|
|
52
|
+
- **results** `data` · required — The figures the inputs produce, in reading order — a `label`, a `value` written exactly as it is to be read, and an optional `note`. Pass an empty list until the inputs are complete, and the panel shows `emptyMessage` instead. …
|
|
53
|
+
- never: A value the page has not worked out. Pass nothing rather than a placeholder figure: a wrong number on a trading page is worse than none
|
|
54
|
+
- **emptyMessage** `string` · optional — What the results panel says before there are figures to show — 'Choose an instrument to see the results'. Translate it with the page
|
|
55
|
+
- never: An error. A failed feed is the page's to say, in a result's note or its own message
|
|
56
|
+
- **action** `node` · optional — The one thing a reader does once they have their figures — 'Open an account', 'Trade now', 'Become a partner'. Under the results, where the reader's eye already is
|
|
57
|
+
- never: More than one action. One tool, one next step
|
|
58
|
+
|
|
59
|
+
## Inside it
|
|
60
|
+
|
|
61
|
+
- 9 components are refused inside it; the list and the reasons are in the long document.
|
|
62
|
+
- Renders 19 parts: root, inner, header, title, description, tool, panels, inputs, inputs-label, results, results-label, list, result, result-label, result-value, result-note, empty, action, input-actions.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/estimator.md`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# FeatureCards
|
|
4
4
|
|
|
5
|
-
A
|
|
5
|
+
A heading over a grid of feature cards
|
|
6
6
|
|
|
7
7
|
`import { FeatureCards } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# FeatureCardsCarousel
|
|
4
4
|
|
|
5
|
-
A
|
|
5
|
+
A heading over a row of feature cards the reader scrolls through
|
|
6
6
|
|
|
7
7
|
`import { FeatureCardsCarousel } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# FeatureScroll
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Gives each feature a screen of its own, with its picture pinned beside the text
|
|
6
6
|
|
|
7
7
|
`import { FeatureScroll } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# FeatureStack
|
|
4
4
|
|
|
5
|
-
A
|
|
5
|
+
A heading and supporting line above a large illustration
|
|
6
6
|
|
|
7
7
|
`import { FeatureStack } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/footer.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Footer
|
|
4
4
|
|
|
5
|
-
The band that closes
|
|
5
|
+
The band that closes every marketing page: brand, links, legal text
|
|
6
6
|
|
|
7
7
|
`import { Footer } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# FooterGroup
|
|
4
4
|
|
|
5
|
-
A
|
|
5
|
+
A titled list of links in the footer
|
|
6
6
|
|
|
7
7
|
`import { FooterGroup } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
package/.llm/digest/grid.md
CHANGED
package/.llm/digest/icon.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Icon
|
|
4
4
|
|
|
5
|
-
Renders a Quill
|
|
5
|
+
Renders a Quill glyph at a token size, in the colour of the text around it
|
|
6
6
|
|
|
7
7
|
`import { Icon } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# IllustrationCard
|
|
4
4
|
|
|
5
|
-
A
|
|
5
|
+
A glass card showing product information, used as an illustration
|
|
6
6
|
|
|
7
7
|
`import { IllustrationCard } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# IllustrationScene
|
|
4
4
|
|
|
5
|
-
A photograph with an IllustrationCard laid over it
|
|
5
|
+
A photograph with an IllustrationCard laid over it
|
|
6
6
|
|
|
7
7
|
`import { IllustrationScene } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# ImageBanner
|
|
4
4
|
|
|
5
|
-
A dark card
|
|
5
|
+
A dark card pairing a headline and one action with a photograph
|
|
6
6
|
|
|
7
7
|
`import { ImageBanner } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|
|
@@ -51,7 +51,7 @@ A dark card in the middle of a page, pairing a headline and a line under it with
|
|
|
51
51
|
- never: A second action. The card asks for one thing
|
|
52
52
|
- **media** `node` · required — Always. The page's photograph, through AspectRatio or as an image — people or product. Split and cover crop it to fill the space they give it. Alt text is the page's to give, empty where the photograph is decoration
|
|
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
|
-
- **parallax** `boolean` · default true — The photograph drifts against the scroll as the card passes through the view,
|
|
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
56
|
|
|
57
57
|
## Inside it
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# LandingHero
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Opens a main landing page with its headline over a dark background
|
|
6
6
|
|
|
7
7
|
`import { LandingHero } from '@deriv-com/dds-marketing'`
|
|
8
8
|
|