@repobit/dex-system-design 0.25.12 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +204 -0
- package/README.md +131 -8
- package/package.json +96 -13
- package/schemas/component-manifest.json +3294 -405
- package/schemas/manifest-omissions.json +173 -0
- package/src/blog/src/breakpoints.js +6 -6
- package/src/blog/src/content/blog-atoms-showcase.js +1 -1
- package/src/blog/src/content/blog-page-layout.js +2 -2
- package/src/blog/src/lib/article-toc.js +7 -7
- package/src/blog/src/shell/blog-shell.js +1 -1
- package/src/blog/src/tokens/blog.js +2 -2
- package/src/blog/src/tokens/core.js +34 -35
- package/src/blog/src/tokens/legacy.js +0 -9
- package/src/blog/tokens/blog.js +2 -2
- package/src/blog/tokens/core.js +34 -35
- package/src/blog/tokens/legacy.js +0 -9
- package/src/blog/tokens.css +36 -46
- package/src/components/accordion/accordion-bg.css.js +83 -59
- package/src/components/accordion/accordion-bg.js +29 -10
- package/src/components/accordion/accordion-bg.stories.js +67 -67
- package/src/components/accordion/accordion-keyboard.js +80 -0
- package/src/components/accordion/accordion.css.js +142 -80
- package/src/components/accordion/accordion.js +37 -10
- package/src/components/accordion/accordion.stories.js +7 -7
- package/src/components/agent-endpoints/agent-endpoints.css.js +36 -39
- package/src/components/agent-endpoints/agent-endpoints.js +30 -20
- package/src/components/agent-endpoints/agent-endpoints.stories.js +1 -1
- package/src/components/ai-guardian-demo.stories.js +91 -91
- package/src/components/alert/alert.css.js +198 -0
- package/src/components/alert/alert.js +103 -0
- package/src/components/alert/alert.stories.js +206 -0
- package/src/components/anchor/anchor-nav.css.js +213 -101
- package/src/components/anchor/anchor-nav.js +26 -40
- package/src/components/anchor/anchor.stories.js +22 -12
- package/src/components/annotation/annotation.css.js +58 -0
- package/src/components/annotation/annotation.js +67 -0
- package/src/components/annotation/annotation.stories.js +63 -0
- package/src/components/architecture.stories.js +285 -0
- package/src/components/atoms.stories.js +342 -0
- package/src/components/avatar/avatar.css.js +67 -0
- package/src/components/avatar/avatar.js +42 -0
- package/src/components/avatar/avatar.stories.js +95 -0
- package/src/components/awards/awards-flex.css.js +209 -23
- package/src/components/awards/awards-flex.js +66 -7
- package/src/components/awards/awards-flex.stories.js +1 -1
- package/src/components/awards/{awards-light.stories.js → awards-summary.stories.js} +54 -64
- package/src/components/awards/awards.css.js +116 -58
- package/src/components/awards/awards.js +102 -28
- package/src/components/awards/awards.stories.js +1 -1
- package/src/components/back/back.css.js +51 -22
- package/src/components/back/back.js +28 -7
- package/src/components/back/back.stories.js +9 -3
- package/src/components/badge/badge.css.js +158 -46
- package/src/components/badge/badge.js +62 -74
- package/src/components/badge/badge.stories.js +176 -248
- package/src/components/bento-grid/bento-grid.css.js +21 -16
- package/src/components/bento-grid/bento-grid.js +16 -4
- package/src/components/bento-grid/bento-grid.stories.js +19 -18
- package/src/components/bento-grid/bento-item.css.js +52 -28
- package/src/components/bento-grid/bento-item.js +2 -2
- package/src/components/blockquote/blockquote.css.js +47 -0
- package/src/components/blockquote/blockquote.js +29 -0
- package/src/components/blockquote/blockquote.stories.js +62 -0
- package/src/components/breadcrumb/breadcrumb.css.js +92 -22
- package/src/components/breadcrumb/breadcrumb.js +56 -11
- package/src/components/button/button.css.js +531 -161
- package/src/components/button/button.js +206 -214
- package/src/components/button/button.stories.js +322 -174
- package/src/components/caption/caption.css.js +21 -0
- package/src/components/caption/caption.js +31 -0
- package/src/components/caption/caption.stories.js +62 -0
- package/src/components/card-features/card-features.css.js +14 -22
- package/src/components/card-features/card-features.js +68 -9
- package/src/components/card-features/card-features.stories.js +11 -11
- package/src/components/cards/card.css.js +60 -81
- package/src/components/cards/card.js +56 -25
- package/src/components/cards/card.stories.js +39 -39
- package/src/components/carousel/carousel.css.js +93 -99
- package/src/components/carousel/carousel.js +32 -4
- package/src/components/checkbox/checkbox.css.js +111 -93
- package/src/components/checkbox/checkbox.js +64 -90
- package/src/components/checkbox/checkbox.stories.js +96 -29
- package/src/components/code/code.css.js +70 -0
- package/src/components/code/code.js +40 -0
- package/src/components/code/code.stories.js +73 -0
- package/src/components/compare/compare.css.js +179 -43
- package/src/components/compare/compare.js +52 -25
- package/src/components/compare/compare.stories.js +61 -4
- package/src/components/comparison-panel/comparison-panel.css.js +38 -51
- package/src/components/comparison-panel/comparison-panel.js +5 -4
- package/src/components/comparison-panel/comparison-panel.stories.js +1 -1
- package/src/components/compatibility-table/compatibility-table.css.js +180 -80
- package/src/components/compatibility-table/compatibility-table.js +37 -9
- package/src/components/control-alignment.stories.js +393 -0
- package/src/components/cta-banner/cta-banner.css.js +41 -13
- package/src/components/cta-banner/cta-banner.js +6 -5
- package/src/components/cta-banner/cta-banner.stories.js +43 -98
- package/src/components/display/display.css.js +25 -1
- package/src/components/display/display.js +46 -13
- package/src/components/display/display.stories.js +270 -40
- package/src/components/divider/divider-horizontal.js +21 -5
- package/src/components/divider/divider-vertical.js +15 -7
- package/src/components/divider/divider.css.js +2 -2
- package/src/components/divider/divider.stories.js +38 -34
- package/src/components/dropdown/dropdown.css.js +93 -126
- package/src/components/dropdown/dropdown.js +114 -34
- package/src/components/dropdown/dropdown.stories.js +56 -24
- package/src/components/features/features.css.js +24 -11
- package/src/components/features/features.js +7 -3
- package/src/components/features/features.stories.js +37 -37
- package/src/components/features-tab/features-tab.css.js +19 -8
- package/src/components/features-tab/features-tab.js +6 -5
- package/src/components/features-tab/features-tab.stories.js +23 -23
- package/src/components/fieldset/fieldset.css.js +30 -0
- package/src/components/fieldset/fieldset.js +28 -0
- package/src/components/fieldset/fieldset.stories.js +84 -0
- package/src/components/footer/footer-links-group.css.js +10 -14
- package/src/components/footer/footer-links-group.js +4 -3
- package/src/components/footer/footer-lp.css.js +59 -30
- package/src/components/footer/footer-lp.js +17 -12
- package/src/components/footer/footer-lp.stories.js +63 -75
- package/src/components/footer/footer-nav-menu.css.js +26 -4
- package/src/components/footer/footer-nav-menu.js +3 -2
- package/src/components/footer/footer.css.js +146 -264
- package/src/components/footer/footer.js +176 -106
- package/src/components/footer/footer.stories.js +9 -9
- package/src/components/footer/localeMap.js +1 -1
- package/src/components/grid/grid.css.js +1 -1
- package/src/components/grid/grid.js +49 -7
- package/src/components/grid/grid.stories.js +111 -0
- package/src/components/header/header-code.css.js +61 -51
- package/src/components/header/header-code.js +28 -14
- package/src/components/header/header-code.stories.js +5 -5
- package/src/components/header/header.css.js +655 -176
- package/src/components/header/header.js +269 -36
- package/src/components/header/header.stories.js +841 -18
- package/src/components/heading/heading.css.js +14 -17
- package/src/components/heading/heading.js +48 -33
- package/src/components/heading/heading.stories.js +27 -25
- package/src/components/help-text/help-text.css.js +21 -0
- package/src/components/help-text/help-text.js +25 -0
- package/src/components/help-text/help-text.stories.js +66 -0
- package/src/components/highlight/highlight.css.js +86 -64
- package/src/components/highlight/highlight.js +18 -27
- package/src/components/highlight/highlight.stories.js +14 -3
- package/src/components/icons/analysis-icon.js +6 -16
- package/src/components/icons/arrow-down-icon.js +6 -19
- package/src/components/icons/arrow-icon.js +44 -0
- package/src/components/icons/arrow-right-icon.js +30 -23
- package/src/components/icons/arrow-up-icon.js +19 -18
- package/src/components/icons/bd-ai-icon.js +1 -1
- package/src/components/icons/brand-marks.stories.js +279 -0
- package/src/components/icons/brand-signature-icon.js +42 -0
- package/src/components/icons/check-icon.js +27 -0
- package/src/components/icons/circle-info-icon.js +33 -0
- package/src/components/icons/close-icon.js +6 -18
- package/src/components/icons/family-icon.js +8 -20
- package/src/components/icons/globe-icon.js +6 -18
- package/src/components/icons/guide-icon.js +6 -18
- package/src/components/icons/icon-element.js +99 -0
- package/src/components/icons/icons.js +36 -0
- package/src/components/icons/icons.stories.js +184 -52
- package/src/components/icons/individual-icon.js +6 -18
- package/src/components/icons/laurel-icon.js +9 -19
- package/src/components/icons/machine-learning-icon.js +6 -17
- package/src/components/icons/marks.js +41 -0
- package/src/components/icons/minus-icon.js +7 -21
- package/src/components/icons/missing-icon.js +52 -0
- package/src/components/icons/plus-icon.js +7 -21
- package/src/components/icons/quote-icon.js +19 -19
- package/src/components/image/image.css.js +72 -25
- package/src/components/image/image.js +11 -6
- package/src/components/image/image.stories.js +2 -2
- package/src/components/input/custom-form.stories.js +214 -62
- package/src/components/input/input-clipboard.css.js +51 -144
- package/src/components/input/input-clipboard.js +31 -15
- package/src/components/input/input.css.js +8 -146
- package/src/components/input/input.js +93 -38
- package/src/components/install-options/install-options.css.js +84 -77
- package/src/components/install-options/install-options.js +33 -30
- package/src/components/install-options/install-options.stories.js +3 -3
- package/src/components/label/label.css.js +35 -0
- package/src/components/label/label.js +38 -0
- package/src/components/label/label.stories.js +82 -0
- package/src/components/light-carousel/light-carousel.css.js +111 -63
- package/src/components/light-carousel/light-carousel.js +85 -11
- package/src/components/light-carousel/light-carousel.stories.js +126 -82
- package/src/components/link/link.css.js +150 -99
- package/src/components/link/link.js +86 -11
- package/src/components/link/link.stories.js +124 -30
- package/src/components/list/list-item/list-item.css.js +74 -22
- package/src/components/list/list-item/list-item.js +32 -10
- package/src/components/list/list-item/list-item.stories.js +23 -23
- package/src/components/list/list.css.js +8 -2
- package/src/components/list/list.js +3 -2
- package/src/components/list/list.stories.js +222 -0
- package/src/components/modal/modal.css.js +114 -24
- package/src/components/modal/modal.js +83 -7
- package/src/components/modal/modal.stories.js +9 -9
- package/src/components/overview/overview.css.js +19 -14
- package/src/components/overview/overview.js +6 -5
- package/src/components/overview/overview.stories.js +10 -10
- package/src/components/page-switcher/page-switcher.css.js +97 -40
- package/src/components/page-switcher/page-switcher.js +28 -5
- package/src/components/page-switcher/page-switcher.stories.js +95 -0
- package/src/components/paragraph/paragraph.css.js +15 -10
- package/src/components/paragraph/paragraph.js +41 -44
- package/src/components/paragraph/paragraph.stories.js +56 -21
- package/src/components/picture/picture.css.js +103 -44
- package/src/components/picture/picture.js +100 -30
- package/src/components/picture/picture.stories.js +1 -1
- package/src/components/pricing-cards/new-pricing-card.js +3 -3
- package/src/components/pricing-cards/new-pricing.css.js +24 -15
- package/src/components/pricing-cards/pricing-card-actions.css.js +1 -1
- package/src/components/pricing-cards/pricing-card-actions.js +3 -4
- package/src/components/pricing-cards/pricing-card-container.css.js +3 -3
- package/src/components/pricing-cards/pricing-card-container.js +3 -2
- package/src/components/pricing-cards/pricing-card-header.css.js +10 -8
- package/src/components/pricing-cards/pricing-card-header.js +6 -7
- package/src/components/pricing-cards/pricing-card-pricing.css.js +16 -9
- package/src/components/pricing-cards/pricing-card-pricing.js +8 -6
- package/src/components/pricing-cards/pricing-card-show-more.css.js +11 -3
- package/src/components/pricing-cards/pricing-card-show-more.js +8 -3
- package/src/components/pricing-cards/pricing-card.css.js +244 -190
- package/src/components/pricing-cards/pricing-card.js +54 -70
- package/src/components/pricing-cards/pricing-feature-item.css.js +25 -8
- package/src/components/pricing-cards/pricing-feature-item.js +8 -3
- package/src/components/process-steps/process-steps.css.js +26 -14
- package/src/components/process-steps/process-steps.js +23 -6
- package/src/components/process-steps/process-steps.stories.js +1 -1
- package/src/components/progress/progress.css.js +80 -0
- package/src/components/progress/progress.js +42 -0
- package/src/components/progress/progress.stories.js +79 -0
- package/src/components/quick-answer/quick-answer.css.js +75 -13
- package/src/components/quick-answer/quick-answer.js +8 -3
- package/src/components/radio/radio.css.js +92 -128
- package/src/components/radio/radio.js +106 -127
- package/src/components/radio/radio.stories.js +54 -19
- package/src/components/review/review-grid.css.js +5 -6
- package/src/components/review/review-grid.js +14 -11
- package/src/components/review/review.css.js +11 -6
- package/src/components/review/review.js +3 -8
- package/src/components/shared/ensemble.css.js +93 -0
- package/src/components/shared/form-field.css.js +206 -0
- package/src/components/shared/prop-vocabulary.js +48 -0
- package/src/components/shared/token-scales.js +306 -0
- package/src/components/skeleton/skeleton.css.js +34 -0
- package/src/components/skeleton/skeleton.js +32 -0
- package/src/components/skeleton/skeleton.stories.js +70 -0
- package/src/components/spinner/spinner.css.js +62 -0
- package/src/components/spinner/spinner.js +38 -0
- package/src/components/spinner/spinner.stories.js +92 -0
- package/src/components/spotlight-section/spotlight-section.css.js +14 -13
- package/src/components/spotlight-section/spotlight-section.js +42 -39
- package/src/components/switch/switch.css.js +103 -0
- package/src/components/switch/switch.js +44 -0
- package/src/components/switch/switch.stories.js +86 -0
- package/src/components/tab-list/content-switcher.stories.js +189 -0
- package/src/components/tab-list/tab-list.css.js +250 -0
- package/src/components/tab-list/tab-list.js +184 -0
- package/src/components/tab-list/tab-list.stories.js +221 -0
- package/src/components/tabs/tabs.css.js +14 -123
- package/src/components/tabs/tabs.js +16 -19
- package/src/components/tabs/tabs.stories.js +95 -95
- package/src/components/tag/tag.css.js +54 -0
- package/src/components/tag/tag.js +32 -0
- package/src/components/tag/tag.stories.js +126 -0
- package/src/components/terminal/terminal-message.css.js +164 -60
- package/src/components/terminal/terminal-message.js +5 -5
- package/src/components/terminal/terminal-message.stories.js +70 -1
- package/src/components/termsOfUse/terms.css.js +25 -20
- package/src/components/termsOfUse/terms.js +13 -9
- package/src/components/termsOfUse/terms.stories.js +1 -1
- package/src/components/textarea/textarea.css.js +51 -0
- package/src/components/textarea/textarea.js +136 -0
- package/src/components/textarea/textarea.stories.js +191 -0
- package/src/components/tooltip/tooltip.css.js +75 -0
- package/src/components/tooltip/tooltip.js +156 -0
- package/src/components/tooltip/tooltip.stories.js +161 -0
- package/src/components/trust-panel/trust-panel.css.js +85 -33
- package/src/components/trust-panel/trust-panel.js +18 -10
- package/src/components/trust-panel/trust-panel.stories.js +1 -1
- package/src/components/ultimate-security-demo.stories.js +431 -0
- package/src/components/video/video.css.js +17 -0
- package/src/components/video/video.js +40 -0
- package/src/components/video/video.stories.js +106 -0
- package/src/components/video-player/video-player.css.js +67 -11
- package/src/components/video-player/video-player.js +35 -4
- package/src/components/video-player/video-player.stories.js +1 -1
- package/src/components/visual-alignment.stories.js +411 -0
- package/src/components/visually-hidden/visually-hidden.css.js +24 -0
- package/src/components/visually-hidden/visually-hidden.js +16 -0
- package/src/components/visually-hidden/visually-hidden.stories.js +56 -0
- package/src/stories/Button.stories.js +17 -17
- package/src/stories/Header.stories.js +10 -10
- package/src/stories/Page.js +1 -1
- package/src/stories/Page.stories.js +6 -6
- package/src/tokens/borders.stories.js +339 -0
- package/src/tokens/color-responsibilities.stories.js +227 -0
- package/src/tokens/dark-derivation.js +309 -0
- package/src/tokens/dark-findings.js +197 -0
- package/src/tokens/dark-mode.stories.js +207 -0
- package/src/tokens/dimension.stories.js +251 -0
- package/src/tokens/elevation.stories.js +143 -0
- package/src/tokens/focus.stories.js +276 -0
- package/src/tokens/fonts.css +20 -20
- package/src/tokens/fonts.stories.js +354 -374
- package/src/tokens/layout.css +25 -11
- package/src/tokens/motion.stories.js +231 -0
- package/src/tokens/shape.stories.js +272 -0
- package/src/tokens/spacing-rhythm.stories.js +359 -0
- package/src/tokens/spacing.stories.js +208 -703
- package/src/tokens/story-chrome.js +503 -0
- package/src/tokens/surfaces.stories.js +224 -0
- package/src/tokens/text-on-surface.stories.js +164 -0
- package/src/tokens/token-map.js +220 -0
- package/src/tokens/token-map.stories.js +257 -0
- package/src/tokens/token-purposes.js +266 -0
- package/src/tokens/tokens-grid.stories.js +388 -900
- package/src/tokens/tokens.css +1633 -1045
- package/src/tokens/tokens.js +1130 -492
- package/src/tokens/tokens.stories.js +137 -47
- package/src/tokens/type-ceiling-words.js +299 -0
- package/src/tokens/typography.stories.js +1003 -965
- package/src/tokens/vertical-rhythm.stories.js +224 -0
- package/src/components/awards/awards-icon.js +0 -56
- package/src/components/awards/awards-light.js +0 -240
- package/src/components/banner/banner.js +0 -60
- package/src/components/banner/banner.stories.js +0 -51
- package/src/components/button/icons.js +0 -24
- package/src/components/input/index.js +0 -0
- package/src/components/light-carousel/light-carousel-simple.css.js +0 -183
- package/src/components/light-carousel/light-carousel-simple.js +0 -74
- package/src/tokens/colors.js +0 -121
- package/src/tokens/typography.css.js +0 -207
- package/src/tokens/typography.js +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import "./grid.js";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title : "Layout/Grid",
|
|
6
|
+
component : "bd-grid",
|
|
7
|
+
tags : ["autodocs"],
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: "padded",
|
|
10
|
+
docs : {
|
|
11
|
+
description: {
|
|
12
|
+
component: `
|
|
13
|
+
**BdGrid** is a responsive column layout. It had no story until P6B, which is why
|
|
14
|
+
nothing rendered it and no gate could see it.
|
|
15
|
+
|
|
16
|
+
Columns are set per breakpoint and the component steps between them on its own:
|
|
17
|
+
\`cols\` below 576, then \`cols-sm\`, \`cols-md\` at 768 and \`cols-lg\` at 992 — the
|
|
18
|
+
\`--breakpoint-*\` scale. \`gap\` and \`padding\` take space step names
|
|
19
|
+
(\`none\`, \`2xs\`, \`xs\`, \`sm\`, \`md\`, \`lg\`, \`xl\` …), not lengths.
|
|
20
|
+
|
|
21
|
+
Its one consumer today is the footer's link columns.
|
|
22
|
+
`
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
argTypes: {
|
|
27
|
+
cols : { control: { type: "number", min: 1, max: 6 }, description: "Columns below 576px." },
|
|
28
|
+
colsSm : { name: "cols-sm", control: { type: "number", min: 1, max: 6 }, description: "Columns from 576px." },
|
|
29
|
+
colsMd : { name: "cols-md", control: { type: "number", min: 1, max: 6 }, description: "Columns from 768px." },
|
|
30
|
+
colsLg : { name: "cols-lg", control: { type: "number", min: 1, max: 6 }, description: "Columns from 992px." },
|
|
31
|
+
gap : { control: "select", options: ["none", "2xs", "xs", "sm", "md", "lg", "xl"], description: "Space step between cells." },
|
|
32
|
+
padding: { control: "select", options: ["none", "xs", "sm", "md", "lg"], description: "Space step inside the grid." },
|
|
33
|
+
align : { control: "select", options: ["start", "center", "end", "stretch"] },
|
|
34
|
+
justify: { control: "select", options: ["start", "center", "end", "stretch"] }
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/* A cell that shows its own box, so the columns and the gap are both visible. */
|
|
39
|
+
const cell = (n) => html`
|
|
40
|
+
<div style="
|
|
41
|
+
background: var(--color-surface-container);
|
|
42
|
+
border: var(--border-width-1) solid var(--color-border-container);
|
|
43
|
+
border-radius: var(--radius-2xl);
|
|
44
|
+
padding: var(--spacing-16);
|
|
45
|
+
width: 100%;
|
|
46
|
+
box-sizing: border-box;
|
|
47
|
+
font-family: var(--typography-fontFamily-sans);
|
|
48
|
+
color: var(--color-text-primary);
|
|
49
|
+
">Item ${n}</div>`;
|
|
50
|
+
|
|
51
|
+
const cells = (n) => html`${Array.from({ length: n }, (_, i) => cell(i + 1))}`;
|
|
52
|
+
|
|
53
|
+
export const Default = {
|
|
54
|
+
name : "Default",
|
|
55
|
+
args : { cols: 1, colsSm: 2, colsMd: 3, colsLg: 3, gap: "md", align: "stretch", justify: "stretch", padding: "none" },
|
|
56
|
+
render: (a) => html`
|
|
57
|
+
<bd-grid
|
|
58
|
+
cols=${a.cols} cols-sm=${a.colsSm} cols-md=${a.colsMd} cols-lg=${a.colsLg}
|
|
59
|
+
gap=${a.gap} align=${a.align} justify=${a.justify} padding=${a.padding}
|
|
60
|
+
>${cells(6)}</bd-grid>`,
|
|
61
|
+
parameters: { docs: { description: { story: "Six cells stepping one → two → three columns as the viewport crosses 576 and 768." } } }
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export const ResponsiveColumns = {
|
|
65
|
+
name : "Responsive columns",
|
|
66
|
+
render: () => html`
|
|
67
|
+
<bd-grid cols="1" cols-sm="2" cols-md="3" cols-lg="4" gap="md">${cells(8)}</bd-grid>`,
|
|
68
|
+
parameters: {
|
|
69
|
+
docs: { description: { story: "One column below 576, two from 576, three from 768, four from 992. Resize the frame — the component carries its own breakpoints, so there is no wrapper media query to look for." } }
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export const SingleColumn = {
|
|
74
|
+
name : "Single column",
|
|
75
|
+
render : () => html`<bd-grid cols="1" cols-sm="1" cols-md="1" cols-lg="1" gap="sm">${cells(3)}</bd-grid>`,
|
|
76
|
+
parameters: { docs: { description: { story: "Pinned to one column at every width — what a narrow viewport renders, and what the footer's left column uses." } } }
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export const GapScale = {
|
|
80
|
+
name : "Gap scale",
|
|
81
|
+
render: () => html`
|
|
82
|
+
<div style="display: grid; gap: var(--spacing-32)">
|
|
83
|
+
${["none", "2xs", "sm", "lg", "xl"].map((g) => html`
|
|
84
|
+
<div>
|
|
85
|
+
<p style="margin: 0 0 var(--spacing-8); font-family: var(--typography-fontFamily-mono); font-size: var(--typography-fontSize-xs); color: var(--color-text-muted)">
|
|
86
|
+
gap="${g}"
|
|
87
|
+
</p>
|
|
88
|
+
<bd-grid cols="3" cols-sm="3" cols-md="3" cols-lg="3" gap=${g}>${cells(3)}</bd-grid>
|
|
89
|
+
</div>`)}
|
|
90
|
+
</div>`,
|
|
91
|
+
parameters: { docs: { description: { story: "gap takes a space step name, not a length. An unrecognised name resolves to nothing rather than to a guess." } } }
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const Alignment = {
|
|
95
|
+
name : "Alignment",
|
|
96
|
+
render: () => html`
|
|
97
|
+
<div style="display: grid; gap: var(--spacing-32)">
|
|
98
|
+
${["start", "center", "stretch"].map((j) => html`
|
|
99
|
+
<div>
|
|
100
|
+
<p style="margin: 0 0 var(--spacing-8); font-family: var(--typography-fontFamily-mono); font-size: var(--typography-fontSize-xs); color: var(--color-text-muted)">
|
|
101
|
+
justify="${j}"
|
|
102
|
+
</p>
|
|
103
|
+
<bd-grid cols="3" cols-sm="3" cols-md="3" cols-lg="3" gap="sm" justify=${j}>
|
|
104
|
+
<div style="background: var(--color-surface-muted); padding: var(--spacing-8); border-radius: var(--radius-lg)">Short</div>
|
|
105
|
+
<div style="background: var(--color-surface-muted); padding: var(--spacing-8); border-radius: var(--radius-lg)">A wider cell</div>
|
|
106
|
+
<div style="background: var(--color-surface-muted); padding: var(--spacing-8); border-radius: var(--radius-lg)">Mid</div>
|
|
107
|
+
</bd-grid>
|
|
108
|
+
</div>`)}
|
|
109
|
+
</div>`,
|
|
110
|
+
parameters: { docs: { description: { story: "justify sets justify-items on the cells. stretch is the default the footer relies on." } } }
|
|
111
|
+
};
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { css } from "lit";
|
|
1
|
+
import { css, unsafeCSS } from "lit";
|
|
2
|
+
import { below } from "../shared/token-scales.js";
|
|
2
3
|
|
|
3
4
|
export default css`
|
|
4
5
|
:host {
|
|
5
6
|
display: block;
|
|
6
7
|
font-family: var(--typography-fontFamily-sans);
|
|
7
8
|
position: relative;
|
|
8
|
-
background-color: var(--color-
|
|
9
|
+
background-color: var(--color-surface-default);
|
|
9
10
|
overflow: hidden; /* clips the ::after floor grid, which extends past the edges */
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
:host([variant="tint"]) {
|
|
13
|
-
background-image: radial-gradient(ellipse 900px 560px at 84% 8%,
|
|
14
|
+
background-image: radial-gradient(ellipse 900px 560px at 84% 8%, color-mix(in srgb, var(--color-surface-brand) 16%, transparent), transparent 65%);
|
|
14
15
|
background-repeat: no-repeat;
|
|
15
16
|
}
|
|
16
17
|
|
|
@@ -24,10 +25,10 @@ export default css`
|
|
|
24
25
|
transform-origin: 50% 0;
|
|
25
26
|
transform: perspective(620px) rotateX(64deg);
|
|
26
27
|
background:
|
|
27
|
-
linear-gradient(
|
|
28
|
-
linear-gradient(90deg,
|
|
29
|
-
-webkit-mask-image: linear-gradient(
|
|
30
|
-
mask-image: linear-gradient(
|
|
28
|
+
linear-gradient(color-mix(in srgb, var(--color-blue-500) 10%, transparent) 1px, transparent 1px) 0 0 / 100% 44px,
|
|
29
|
+
linear-gradient(90deg, color-mix(in srgb, var(--color-blue-500) 10%, transparent) 1px, transparent 1px) 0 0 / 44px 100%;
|
|
30
|
+
-webkit-mask-image: linear-gradient(transparent 0%, var(--color-neutral-1000) 45%, transparent 100%);
|
|
31
|
+
mask-image: linear-gradient(transparent 0%, var(--color-neutral-1000) 45%, transparent 100%);
|
|
31
32
|
pointer-events: none;
|
|
32
33
|
z-index: 0;
|
|
33
34
|
}
|
|
@@ -37,12 +38,10 @@ export default css`
|
|
|
37
38
|
grid-template-columns: 1fr 1fr;
|
|
38
39
|
align-items: center;
|
|
39
40
|
gap: var(--spacing-48);
|
|
40
|
-
|
|
41
|
-
margin: 0 auto;
|
|
42
|
-
padding: var(--spacing-48) var(--layout-ensemble-inline-padding, var(--spacing-24));
|
|
41
|
+
padding-block: var(--spacing-48);
|
|
43
42
|
box-sizing: border-box;
|
|
44
43
|
position: relative;
|
|
45
|
-
z-index:
|
|
44
|
+
z-index: var(--z-base);
|
|
46
45
|
}
|
|
47
46
|
|
|
48
47
|
/* === ENTRANCE ANIMATION === */
|
|
@@ -59,11 +58,11 @@ export default css`
|
|
|
59
58
|
|
|
60
59
|
.bd-headercode-left,
|
|
61
60
|
.bd-headercode-right {
|
|
62
|
-
animation: bd-headercode-fade-up
|
|
61
|
+
animation: bd-headercode-fade-up var(--transition-duration-slower) var(--transition-easing-ease-out) both;
|
|
63
62
|
}
|
|
64
63
|
|
|
65
64
|
.bd-headercode-right {
|
|
66
|
-
animation-delay:
|
|
65
|
+
animation-delay: var(--transition-duration-fast);
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -86,9 +85,11 @@ export default css`
|
|
|
86
85
|
flex-wrap: wrap;
|
|
87
86
|
align-items: center;
|
|
88
87
|
gap: var(--spacing-16);
|
|
89
|
-
color: var(--color-
|
|
90
|
-
font-family: var(--typography-fontFamily-mono
|
|
91
|
-
|
|
88
|
+
color: var(--color-text-subtle);
|
|
89
|
+
font-family: var(--typography-fontFamily-mono);
|
|
90
|
+
/* no role: the breadcrumb strip, in mono -- see awards-flex.css.js's
|
|
91
|
+
.bd-awardsflex-quote-source for the argument. */
|
|
92
|
+
font-size: var(--typography-fontSize-xs);
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
.bd-headercode-breadcrumb:not(:has(*)) {
|
|
@@ -96,19 +97,18 @@ export default css`
|
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
.bd-headercode-eyebrow {
|
|
99
|
-
|
|
100
|
-
|
|
100
|
+
/* blue-400 is 3.35:1 on white. The eyebrow is brand-coloured on purpose, so
|
|
101
|
+
it wants the brand text role rather than a lighter blue. */
|
|
102
|
+
color: var(--color-text-brand);
|
|
101
103
|
margin: 0;
|
|
102
104
|
}
|
|
103
105
|
|
|
104
106
|
.bd-headercode-title {
|
|
105
107
|
margin: 0;
|
|
106
|
-
color: var(--color-neutral-1000);
|
|
107
|
-
line-height: var(--typography-lineHeight-tight, 1.05);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
.bd-headercode-description {
|
|
111
|
-
color: var(--color-
|
|
111
|
+
color: var(--color-text-muted);
|
|
112
112
|
max-width: 480px;
|
|
113
113
|
margin: 0;
|
|
114
114
|
}
|
|
@@ -124,14 +124,16 @@ export default css`
|
|
|
124
124
|
.bd-headercode-badge {
|
|
125
125
|
display: inline-flex;
|
|
126
126
|
align-items: center;
|
|
127
|
-
color: var(--color-
|
|
128
|
-
font-family: var(--typography-fontFamily-mono
|
|
129
|
-
|
|
127
|
+
color: var(--color-text-muted);
|
|
128
|
+
font-family: var(--typography-fontFamily-mono);
|
|
129
|
+
/* no role: the code badge, in mono and tracked -- see awards-flex.css.js's
|
|
130
|
+
.bd-awardsflex-quote-source for the argument. */
|
|
131
|
+
font-size: var(--typography-fontSize-xs);
|
|
130
132
|
letter-spacing: 0.05em;
|
|
131
|
-
padding: var(--spacing-4
|
|
132
|
-
border: 1px solid var(--color-
|
|
133
|
-
border-radius: var(--radius-full
|
|
134
|
-
background: var(--color-
|
|
133
|
+
padding: var(--spacing-4) var(--spacing-12);
|
|
134
|
+
border: 1px solid var(--color-border-subtle);
|
|
135
|
+
border-radius: var(--radius-full);
|
|
136
|
+
background: var(--color-surface-default);
|
|
135
137
|
}
|
|
136
138
|
|
|
137
139
|
.bd-headercode-badge:not(:has(*)) {
|
|
@@ -145,7 +147,7 @@ export default css`
|
|
|
145
147
|
}
|
|
146
148
|
|
|
147
149
|
.bd-headercode-meta-spec {
|
|
148
|
-
color: var(--color-
|
|
150
|
+
color: var(--color-text-subtle);
|
|
149
151
|
margin: 0;
|
|
150
152
|
padding-top: var(--spacing-16);
|
|
151
153
|
}
|
|
@@ -156,28 +158,30 @@ export default css`
|
|
|
156
158
|
gap: var(--spacing-8) var(--spacing-32);
|
|
157
159
|
margin-top: var(--spacing-40);
|
|
158
160
|
padding-top: var(--spacing-24);
|
|
159
|
-
border-top: 1px solid var(--color-
|
|
161
|
+
border-top: 1px solid var(--color-border-container);
|
|
160
162
|
}
|
|
161
163
|
|
|
162
164
|
.bd-headercode-meta-fact {
|
|
163
165
|
display: flex;
|
|
164
166
|
align-items: baseline;
|
|
165
|
-
gap: var(--spacing-8
|
|
167
|
+
gap: var(--spacing-8);
|
|
166
168
|
white-space: nowrap;
|
|
167
169
|
}
|
|
168
170
|
|
|
169
171
|
.bd-headercode-meta-fact-label {
|
|
170
172
|
margin: 0;
|
|
171
|
-
|
|
173
|
+
/* subtle, not neutral-400: that is the disabled step and measured 2.5:1
|
|
174
|
+
on white; this is 4.67:1. */
|
|
175
|
+
color: var(--color-text-subtle);
|
|
172
176
|
text-transform: uppercase;
|
|
173
177
|
}
|
|
174
178
|
|
|
175
179
|
.bd-headercode-meta-fact-value {
|
|
176
180
|
margin: 0;
|
|
177
|
-
color: var(--color-
|
|
181
|
+
color: var(--color-text-primary);
|
|
178
182
|
}
|
|
179
183
|
|
|
180
|
-
@media (
|
|
184
|
+
@media ${unsafeCSS(below('sm'))} {
|
|
181
185
|
.bd-headercode-meta-facts {
|
|
182
186
|
grid-template-columns: repeat(2, auto);
|
|
183
187
|
}
|
|
@@ -199,8 +203,10 @@ export default css`
|
|
|
199
203
|
justify-content: flex-end;
|
|
200
204
|
align-items: center;
|
|
201
205
|
perspective: 1300px;
|
|
206
|
+
/* no token: the 3D scene's floor, sized to the terminal it tilts -- a
|
|
207
|
+
layout measure, not a step on any scale. */
|
|
202
208
|
min-height: 400px;
|
|
203
|
-
padding: var(--spacing-16
|
|
209
|
+
padding: var(--spacing-16) 0;
|
|
204
210
|
margin: 0;
|
|
205
211
|
position: relative;
|
|
206
212
|
}
|
|
@@ -217,7 +223,7 @@ export default css`
|
|
|
217
223
|
rotateY(var(--ry, -10deg))
|
|
218
224
|
rotateX(var(--rx, 6deg))
|
|
219
225
|
rotateZ(1deg);
|
|
220
|
-
transition: transform
|
|
226
|
+
transition: transform var(--transition-duration-slow) var(--transition-easing-ease-out);
|
|
221
227
|
}
|
|
222
228
|
|
|
223
229
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -231,7 +237,7 @@ export default css`
|
|
|
231
237
|
width: 100%;
|
|
232
238
|
box-shadow: 0 1px 2px #0003, 0 18px 48px #000a1e73;
|
|
233
239
|
position: relative;
|
|
234
|
-
z-index:
|
|
240
|
+
z-index: var(--z-base); /* sits above the rings */
|
|
235
241
|
}
|
|
236
242
|
|
|
237
243
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -241,10 +247,10 @@ export default css`
|
|
|
241
247
|
}
|
|
242
248
|
|
|
243
249
|
.bd-headercode-terminal-caption {
|
|
244
|
-
color: var(--color-
|
|
250
|
+
color: var(--color-text-subtle);
|
|
245
251
|
margin: 0;
|
|
246
252
|
position: relative;
|
|
247
|
-
z-index:
|
|
253
|
+
z-index: var(--z-base);
|
|
248
254
|
}
|
|
249
255
|
|
|
250
256
|
.bd-headercode-rings {
|
|
@@ -258,20 +264,24 @@ export default css`
|
|
|
258
264
|
.bd-headercode-ring {
|
|
259
265
|
position: absolute;
|
|
260
266
|
inset: 0;
|
|
261
|
-
border-radius:
|
|
262
|
-
border:
|
|
263
|
-
background:
|
|
264
|
-
box-shadow: 0 0 26px
|
|
265
|
-
|
|
267
|
+
border-radius: var(--radius-3xl);
|
|
268
|
+
border: var(--border-width-2) solid color-mix(in srgb, var(--color-border-brand) calc((0.5 - var(--d) * 0.08) * 100%), transparent);
|
|
269
|
+
background: color-mix(in srgb, var(--color-surface-brand) calc((0.05 - var(--d) * 0.008) * 100%), transparent);
|
|
270
|
+
box-shadow: 0 0 26px color-mix(in srgb, var(--color-blue-500) calc((0.16 - var(--d) * 0.025) * 100%), transparent);
|
|
271
|
+
/* no token: an ambient loop, an order of magnitude longer than any
|
|
272
|
+
interaction the duration scale is for. */
|
|
273
|
+
animation: bd-headercode-ring-breathe 6s var(--transition-easing-smooth) calc(var(--d) * -1.2s) infinite;
|
|
266
274
|
transform: translate(calc(var(--d) * 10px), calc(var(--d) * 8px));
|
|
267
275
|
}
|
|
268
276
|
|
|
269
277
|
@keyframes bd-headercode-ring-breathe {
|
|
270
278
|
0%, 100% {
|
|
279
|
+
/* no token: the bright end of the ambient breath; the dim end is the
|
|
280
|
+
package's one pulse dimness. */
|
|
271
281
|
opacity: 0.85;
|
|
272
282
|
}
|
|
273
283
|
50% {
|
|
274
|
-
opacity:
|
|
284
|
+
opacity: var(--opacity-pulse);
|
|
275
285
|
}
|
|
276
286
|
}
|
|
277
287
|
|
|
@@ -284,18 +294,18 @@ export default css`
|
|
|
284
294
|
/* === FLOATING ANNOTATION PILLS === */
|
|
285
295
|
.bd-headercode-annotation {
|
|
286
296
|
position: absolute;
|
|
287
|
-
z-index:
|
|
297
|
+
z-index: var(--z-raised);
|
|
288
298
|
pointer-events: none;
|
|
289
299
|
}
|
|
290
300
|
|
|
291
301
|
.bd-headercode-annotation--top {
|
|
292
|
-
top: -
|
|
293
|
-
right:
|
|
302
|
+
top: calc(-1 * var(--spacing-14));
|
|
303
|
+
right: var(--spacing-32);
|
|
294
304
|
}
|
|
295
305
|
|
|
296
306
|
.bd-headercode-annotation--bottom {
|
|
297
|
-
bottom: -
|
|
298
|
-
left:
|
|
307
|
+
bottom: calc(-1 * var(--spacing-14));
|
|
308
|
+
left: var(--spacing-16);
|
|
299
309
|
right: auto;
|
|
300
310
|
}
|
|
301
311
|
|
|
@@ -306,7 +316,7 @@ export default css`
|
|
|
306
316
|
.bd-headercode-annotation ::slotted(*) {
|
|
307
317
|
width: auto;
|
|
308
318
|
max-width: none;
|
|
309
|
-
box-shadow: 0 4px 12px
|
|
319
|
+
box-shadow: 0 4px 12px color-mix(in srgb, var(--color-neutral-1000) 12%, transparent);
|
|
310
320
|
pointer-events: auto;
|
|
311
321
|
}
|
|
312
322
|
|
|
@@ -5,11 +5,13 @@ import "../heading/heading.js";
|
|
|
5
5
|
import "../paragraph/paragraph.js";
|
|
6
6
|
import "../terminal/terminal-message.js";
|
|
7
7
|
import headerCodeCSS from "./header-code.css.js";
|
|
8
|
+
import { ensembleCSS } from "../shared/ensemble.css.js";
|
|
8
9
|
|
|
9
10
|
class HeaderCode extends LitElement {
|
|
10
11
|
static properties = {
|
|
11
12
|
eyebrow : { type: String },
|
|
12
13
|
title : { type: String },
|
|
14
|
+
headingLevel : { type: Number, attribute: "heading-level" },
|
|
13
15
|
description : { type: String },
|
|
14
16
|
terminalCaption: { type: String, attribute: "terminal-caption" },
|
|
15
17
|
variant : { type: String, reflect: true },
|
|
@@ -18,12 +20,13 @@ class HeaderCode extends LitElement {
|
|
|
18
20
|
_hasBadge : { state: true }
|
|
19
21
|
};
|
|
20
22
|
|
|
21
|
-
static styles = [tokens, headerCodeCSS];
|
|
23
|
+
static styles = [tokens, ensembleCSS, headerCodeCSS];
|
|
22
24
|
|
|
23
25
|
constructor() {
|
|
24
26
|
super();
|
|
25
27
|
this.eyebrow = "";
|
|
26
28
|
this.title = "";
|
|
29
|
+
this.headingLevel = 2;
|
|
27
30
|
this.description = "";
|
|
28
31
|
this.terminalCaption = "";
|
|
29
32
|
this.variant = "default";
|
|
@@ -117,16 +120,15 @@ class HeaderCode extends LitElement {
|
|
|
117
120
|
|
|
118
121
|
if (!hasSpec && !hasFacts) return nothing;
|
|
119
122
|
|
|
120
|
-
const monoFontFamily = "'IBM Plex Mono', ui-monospace, SFMono-Regular, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace";
|
|
121
123
|
|
|
122
124
|
return html`
|
|
123
125
|
<div class="bd-headercode-meta">
|
|
124
126
|
${hasSpec
|
|
125
127
|
? html`<bd-p
|
|
126
|
-
|
|
128
|
+
variant="xsmall"
|
|
127
129
|
class="bd-headercode-meta-spec"
|
|
128
|
-
font-family
|
|
129
|
-
letter-spacing="
|
|
130
|
+
font-family="mono"
|
|
131
|
+
letter-spacing="widest"
|
|
130
132
|
>${this.metaSpec}</bd-p>`
|
|
131
133
|
: nothing}
|
|
132
134
|
|
|
@@ -137,12 +139,12 @@ class HeaderCode extends LitElement {
|
|
|
137
139
|
(fact) => html`
|
|
138
140
|
<div class="bd-headercode-meta-fact">
|
|
139
141
|
<bd-p
|
|
140
|
-
|
|
142
|
+
variant="xsmall"
|
|
141
143
|
class="bd-headercode-meta-fact-label"
|
|
142
|
-
font-family
|
|
143
|
-
letter-spacing="
|
|
144
|
+
font-family="mono"
|
|
145
|
+
letter-spacing="widest"
|
|
144
146
|
>${fact.label}</bd-p>
|
|
145
|
-
<bd-p kind="regular" font-weight="
|
|
147
|
+
<bd-p kind="regular" font-weight="bold" class="bd-headercode-meta-fact-value">${fact.value}</bd-p>
|
|
146
148
|
</div>
|
|
147
149
|
`
|
|
148
150
|
)}
|
|
@@ -153,24 +155,36 @@ class HeaderCode extends LitElement {
|
|
|
153
155
|
`;
|
|
154
156
|
}
|
|
155
157
|
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Level is the document-outline question and belongs to page composition;
|
|
161
|
+
* the type scale is this component's and stays where it was. visual-level
|
|
162
|
+
* pins the look at h1 so only the semantics move. Defaults to h2, because a
|
|
163
|
+
* reusable section cannot know it is the page's only heading.
|
|
164
|
+
*/
|
|
165
|
+
get _headingTag() {
|
|
166
|
+
const n = Number(this.headingLevel);
|
|
167
|
+
return Number.isInteger(n) && n >= 1 && n <= 6 ? `h${n}` : "h2";
|
|
168
|
+
}
|
|
169
|
+
|
|
156
170
|
render() {
|
|
157
171
|
return html`
|
|
158
|
-
<div class="bd-headercode-container">
|
|
172
|
+
<div class="bd-ensemble bd-headercode-container">
|
|
159
173
|
<div class="bd-headercode-left">
|
|
160
174
|
<div class="bd-headercode-breadcrumb">
|
|
161
175
|
<slot name="breadcrumb"></slot>
|
|
162
176
|
</div>
|
|
163
177
|
|
|
164
178
|
${this.eyebrow
|
|
165
|
-
? html`<bd-p
|
|
179
|
+
? html`<bd-p variant="regular" class="bd-headercode-eyebrow">${this.eyebrow}</bd-p>`
|
|
166
180
|
: nothing}
|
|
167
181
|
|
|
168
|
-
<bd-h as="h1" class="bd-headercode-title">
|
|
182
|
+
<bd-h as="${this._headingTag}" visual-level="h1" class="bd-headercode-title">
|
|
169
183
|
<slot name="title">${this.title}</slot>
|
|
170
184
|
</bd-h>
|
|
171
185
|
|
|
172
186
|
${this.description
|
|
173
|
-
? html`<bd-p
|
|
187
|
+
? html`<bd-p variant="regular" class="bd-headercode-description">${this.description}</bd-p>`
|
|
174
188
|
: nothing}
|
|
175
189
|
|
|
176
190
|
<div class="bd-headercode-cta">
|
|
@@ -200,7 +214,7 @@ class HeaderCode extends LitElement {
|
|
|
200
214
|
</div>
|
|
201
215
|
|
|
202
216
|
${this.terminalCaption
|
|
203
|
-
? html`<bd-p
|
|
217
|
+
? html`<bd-p variant="small" class="bd-headercode-terminal-caption" font-family="mono"
|
|
204
218
|
>${this.terminalCaption}</bd-p>`
|
|
205
219
|
: nothing}
|
|
206
220
|
</div>
|
|
@@ -33,8 +33,8 @@ dot-grid pattern, and gives the \`badge\` slot a bordered pill treatment.
|
|
|
33
33
|
terminal-caption="// illustrative — every connection closes when the prompt ends"
|
|
34
34
|
>
|
|
35
35
|
<span slot="badge">EXTERNAL BETA</span>
|
|
36
|
-
<bd-button-link slot="primary-button" label="Download for macOS"
|
|
37
|
-
<bd-button-link slot="secondary-button" label="See how it works"
|
|
36
|
+
<bd-button-link slot="primary-button" label="Download for macOS" variant="primary">Download for macOS</bd-button-link>
|
|
37
|
+
<bd-button-link slot="secondary-button" label="See how it works" variant="outline">See how it works</bd-button-link>
|
|
38
38
|
|
|
39
39
|
<div slot="meta">…facts row…</div>
|
|
40
40
|
|
|
@@ -100,7 +100,7 @@ const render = (args) => html`
|
|
|
100
100
|
<bd-button-link
|
|
101
101
|
slot="primary-button"
|
|
102
102
|
label="Download BETA Today"
|
|
103
|
-
|
|
103
|
+
variant="primary"
|
|
104
104
|
size="md"
|
|
105
105
|
font-size="18px"
|
|
106
106
|
font-weight="600"
|
|
@@ -109,7 +109,7 @@ const render = (args) => html`
|
|
|
109
109
|
<bd-button-link
|
|
110
110
|
slot="secondary-button"
|
|
111
111
|
label="See how it works"
|
|
112
|
-
|
|
112
|
+
variant="primary-outline"
|
|
113
113
|
size="md"
|
|
114
114
|
font-size="18px"
|
|
115
115
|
font-weight="600"
|
|
@@ -227,7 +227,7 @@ export const SingleButton = {
|
|
|
227
227
|
<bd-button-link
|
|
228
228
|
slot="primary-button"
|
|
229
229
|
label="Download BETA Today"
|
|
230
|
-
|
|
230
|
+
variant="primary"
|
|
231
231
|
size="md"
|
|
232
232
|
>Download BETA Today</bd-button-link>
|
|
233
233
|
|