@coinbase/cds-mcp-server 8.17.3 → 8.17.4
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 +4 -0
- package/mcp-docs/mobile/components/Accordion.txt +11 -12
- package/mcp-docs/mobile/components/AccordionItem.txt +5 -6
- package/mcp-docs/mobile/components/Alert.txt +21 -22
- package/mcp-docs/mobile/components/AreaChart.txt +118 -119
- package/mcp-docs/mobile/components/Avatar.txt +82 -83
- package/mcp-docs/mobile/components/AvatarButton.txt +103 -104
- package/mcp-docs/mobile/components/Banner.txt +100 -101
- package/mcp-docs/mobile/components/BarChart.txt +120 -121
- package/mcp-docs/mobile/components/Box.txt +65 -66
- package/mcp-docs/mobile/components/BrowserBar.txt +38 -39
- package/mcp-docs/mobile/components/Button.txt +78 -79
- package/mcp-docs/mobile/components/ButtonGroup.txt +10 -11
- package/mcp-docs/mobile/components/Carousel.txt +103 -104
- package/mcp-docs/mobile/components/CartesianChart.txt +107 -108
- package/mcp-docs/mobile/components/CellMedia.txt +15 -16
- package/mcp-docs/mobile/components/Checkbox.txt +35 -36
- package/mcp-docs/mobile/components/CheckboxCell.txt +73 -74
- package/mcp-docs/mobile/components/CheckboxGroup.txt +24 -25
- package/mcp-docs/mobile/components/Chip.txt +67 -68
- package/mcp-docs/mobile/components/Coachmark.txt +42 -43
- package/mcp-docs/mobile/components/Collapsible.txt +15 -16
- package/mcp-docs/mobile/components/ContainedAssetCard.txt +16 -17
- package/mcp-docs/mobile/components/ContentCard.txt +99 -100
- package/mcp-docs/mobile/components/ContentCardBody.txt +23 -24
- package/mcp-docs/mobile/components/ContentCardFooter.txt +19 -20
- package/mcp-docs/mobile/components/ContentCardHeader.txt +33 -34
- package/mcp-docs/mobile/components/ContentCell.txt +102 -103
- package/mcp-docs/mobile/components/ControlGroup.txt +106 -107
- package/mcp-docs/mobile/components/DatePicker.txt +121 -122
- package/mcp-docs/mobile/components/Divider.txt +31 -32
- package/mcp-docs/mobile/components/DotCount.txt +15 -16
- package/mcp-docs/mobile/components/DotStatusColor.txt +12 -13
- package/mcp-docs/mobile/components/DotSymbol.txt +21 -22
- package/mcp-docs/mobile/components/Fallback.txt +49 -50
- package/mcp-docs/mobile/components/FloatingAssetCard.txt +13 -14
- package/mcp-docs/mobile/components/HStack.txt +99 -100
- package/mcp-docs/mobile/components/HeroSquare.txt +11 -12
- package/mcp-docs/mobile/components/Icon.txt +16 -17
- package/mcp-docs/mobile/components/IconButton.txt +104 -105
- package/mcp-docs/mobile/components/InputChip.txt +62 -63
- package/mcp-docs/mobile/components/Interactable.txt +72 -73
- package/mcp-docs/mobile/components/LineChart.txt +117 -118
- package/mcp-docs/mobile/components/Link.txt +113 -114
- package/mcp-docs/mobile/components/ListCell.txt +149 -128
- package/mcp-docs/mobile/components/LogoMark.txt +8 -9
- package/mcp-docs/mobile/components/LogoWordMark.txt +7 -8
- package/mcp-docs/mobile/components/Lottie.txt +39 -40
- package/mcp-docs/mobile/components/LottieStatusAnimation.txt +11 -12
- package/mcp-docs/mobile/components/Modal.txt +36 -37
- package/mcp-docs/mobile/components/ModalBody.txt +5 -6
- package/mcp-docs/mobile/components/ModalFooter.txt +5 -6
- package/mcp-docs/mobile/components/ModalHeader.txt +5 -6
- package/mcp-docs/mobile/components/MultiContentModule.txt +107 -108
- package/mcp-docs/mobile/components/NavigationTitle.txt +13 -14
- package/mcp-docs/mobile/components/NavigationTitleSelect.txt +20 -21
- package/mcp-docs/mobile/components/NudgeCard.txt +20 -21
- package/mcp-docs/mobile/components/Numpad.txt +108 -109
- package/mcp-docs/mobile/components/Overlay.txt +45 -46
- package/mcp-docs/mobile/components/PageFooter.txt +57 -58
- package/mcp-docs/mobile/components/PageHeader.txt +79 -80
- package/mcp-docs/mobile/components/PeriodSelector.txt +98 -99
- package/mcp-docs/mobile/components/Pictogram.txt +11 -12
- package/mcp-docs/mobile/components/Point.txt +21 -22
- package/mcp-docs/mobile/components/PortalProvider.txt +7 -8
- package/mcp-docs/mobile/components/Pressable.txt +67 -68
- package/mcp-docs/mobile/components/ProgressBar.txt +18 -19
- package/mcp-docs/mobile/components/ProgressBarWithFixedLabels.txt +13 -14
- package/mcp-docs/mobile/components/ProgressBarWithFloatLabel.txt +13 -14
- package/mcp-docs/mobile/components/ProgressCircle.txt +22 -23
- package/mcp-docs/mobile/components/Radio.txt +35 -36
- package/mcp-docs/mobile/components/RadioCell.txt +73 -74
- package/mcp-docs/mobile/components/RadioGroup.txt +35 -36
- package/mcp-docs/mobile/components/ReferenceLine.txt +15 -16
- package/mcp-docs/mobile/components/RemoteImage.txt +47 -48
- package/mcp-docs/mobile/components/RemoteImageGroup.txt +11 -12
- package/mcp-docs/mobile/components/RollingNumber.txt +130 -131
- package/mcp-docs/mobile/components/Scrubber.txt +19 -20
- package/mcp-docs/mobile/components/SearchInput.txt +77 -78
- package/mcp-docs/mobile/components/SectionHeader.txt +16 -17
- package/mcp-docs/mobile/components/SegmentedTabs.txt +105 -106
- package/mcp-docs/mobile/components/Select.txt +35 -36
- package/mcp-docs/mobile/components/SelectChip.txt +143 -144
- package/mcp-docs/mobile/components/SelectOption.txt +26 -27
- package/mcp-docs/mobile/components/SlideButton.txt +128 -129
- package/mcp-docs/mobile/components/Spacer.txt +27 -28
- package/mcp-docs/mobile/components/Sparkline.txt +18 -19
- package/mcp-docs/mobile/components/SparklineGradient.txt +18 -19
- package/mcp-docs/mobile/components/SparklineInteractive.txt +37 -38
- package/mcp-docs/mobile/components/SparklineInteractiveHeader.txt +12 -13
- package/mcp-docs/mobile/components/Spinner.txt +15 -16
- package/mcp-docs/mobile/components/SpotIcon.txt +11 -12
- package/mcp-docs/mobile/components/SpotRectangle.txt +11 -12
- package/mcp-docs/mobile/components/SpotSquare.txt +11 -12
- package/mcp-docs/mobile/components/Stepper.txt +113 -114
- package/mcp-docs/mobile/components/SubBrandLogoMark.txt +8 -9
- package/mcp-docs/mobile/components/SubBrandLogoWordMark.txt +8 -9
- package/mcp-docs/mobile/components/Switch.txt +35 -36
- package/mcp-docs/mobile/components/TabIndicator.txt +12 -13
- package/mcp-docs/mobile/components/TabLabel.txt +28 -29
- package/mcp-docs/mobile/components/TabNavigation.txt +41 -42
- package/mcp-docs/mobile/components/TabbedChips.txt +38 -39
- package/mcp-docs/mobile/components/Tabs.txt +76 -77
- package/mcp-docs/mobile/components/Tag.txt +102 -103
- package/mcp-docs/mobile/components/Text.txt +91 -92
- package/mcp-docs/mobile/components/TextInput.txt +107 -108
- package/mcp-docs/mobile/components/ThemeProvider.txt +8 -9
- package/mcp-docs/mobile/components/Toast.txt +82 -83
- package/mcp-docs/mobile/components/Tooltip.txt +20 -21
- package/mcp-docs/mobile/components/TopNavBar.txt +55 -56
- package/mcp-docs/mobile/components/Tour.txt +18 -19
- package/mcp-docs/mobile/components/Tray.txt +43 -44
- package/mcp-docs/mobile/components/UpsellCard.txt +16 -17
- package/mcp-docs/mobile/components/VStack.txt +99 -100
- package/mcp-docs/mobile/components/XAxis.txt +25 -26
- package/mcp-docs/mobile/components/YAxis.txt +26 -27
- package/mcp-docs/mobile/getting-started/{mcp-server.txt → ai-overview.txt} +51 -37
- package/mcp-docs/mobile/getting-started/installation.txt +57 -0
- package/mcp-docs/mobile/getting-started/introduction.txt +3 -0
- package/mcp-docs/mobile/getting-started/playground.txt +3 -0
- package/mcp-docs/mobile/getting-started/styling.txt +84 -0
- package/mcp-docs/mobile/getting-started/theming.txt +286 -0
- package/mcp-docs/mobile/hooks/useDimensions.txt +27 -2
- package/mcp-docs/mobile/hooks/useEventHandler.txt +120 -0
- package/mcp-docs/mobile/hooks/useMergeRefs.txt +116 -0
- package/mcp-docs/mobile/hooks/useOverlayContentContext.txt +67 -2
- package/mcp-docs/mobile/hooks/usePreviousValue.txt +74 -0
- package/mcp-docs/mobile/hooks/useRefMap.txt +178 -0
- package/mcp-docs/mobile/hooks/useTheme.txt +213 -2
- package/mcp-docs/mobile/routes.txt +8 -1
- package/mcp-docs/web/components/Accordion.txt +12 -13
- package/mcp-docs/web/components/AccordionItem.txt +5 -6
- package/mcp-docs/web/components/Alert.txt +24 -25
- package/mcp-docs/web/components/AreaChart.txt +137 -138
- package/mcp-docs/web/components/Avatar.txt +91 -92
- package/mcp-docs/web/components/AvatarButton.txt +113 -114
- package/mcp-docs/web/components/Banner.txt +101 -102
- package/mcp-docs/web/components/BarChart.txt +367 -368
- package/mcp-docs/web/components/Box.txt +65 -66
- package/mcp-docs/web/components/Button.txt +81 -82
- package/mcp-docs/web/components/ButtonGroup.txt +10 -11
- package/mcp-docs/web/components/Calendar.txt +56 -57
- package/mcp-docs/web/components/Carousel.txt +116 -117
- package/mcp-docs/web/components/CartesianChart.txt +357 -358
- package/mcp-docs/web/components/CellMedia.txt +14 -15
- package/mcp-docs/web/components/Checkbox.txt +22 -23
- package/mcp-docs/web/components/CheckboxCell.txt +70 -71
- package/mcp-docs/web/components/CheckboxGroup.txt +15 -16
- package/mcp-docs/web/components/Chip.txt +67 -68
- package/mcp-docs/web/components/Coachmark.txt +69 -70
- package/mcp-docs/web/components/Collapsible.txt +15 -16
- package/mcp-docs/web/components/ContainedAssetCard.txt +108 -109
- package/mcp-docs/web/components/ContentCard.txt +101 -102
- package/mcp-docs/web/components/ContentCardBody.txt +23 -24
- package/mcp-docs/web/components/ContentCardFooter.txt +19 -20
- package/mcp-docs/web/components/ContentCardHeader.txt +33 -34
- package/mcp-docs/web/components/ContentCell.txt +85 -86
- package/mcp-docs/web/components/ControlGroup.txt +108 -109
- package/mcp-docs/web/components/DatePicker.txt +59 -60
- package/mcp-docs/web/components/Divider.txt +31 -32
- package/mcp-docs/web/components/DotCount.txt +17 -18
- package/mcp-docs/web/components/DotStatusColor.txt +12 -13
- package/mcp-docs/web/components/DotSymbol.txt +24 -25
- package/mcp-docs/web/components/Dropdown.txt +31 -32
- package/mcp-docs/web/components/Fallback.txt +49 -50
- package/mcp-docs/web/components/FloatingAssetCard.txt +108 -109
- package/mcp-docs/web/components/FullscreenAlert.txt +20 -21
- package/mcp-docs/web/components/FullscreenModal.txt +28 -29
- package/mcp-docs/web/components/FullscreenModalLayout.txt +19 -20
- package/mcp-docs/web/components/Grid.txt +106 -107
- package/mcp-docs/web/components/GridColumn.txt +96 -97
- package/mcp-docs/web/components/HStack.txt +101 -102
- package/mcp-docs/web/components/HeroSquare.txt +12 -13
- package/mcp-docs/web/components/Icon.txt +27 -28
- package/mcp-docs/web/components/IconButton.txt +117 -118
- package/mcp-docs/web/components/InputChip.txt +62 -63
- package/mcp-docs/web/components/Interactable.txt +75 -76
- package/mcp-docs/web/components/LineChart.txt +366 -367
- package/mcp-docs/web/components/Link.txt +114 -115
- package/mcp-docs/web/components/ListCell.txt +157 -136
- package/mcp-docs/web/components/LogoMark.txt +8 -9
- package/mcp-docs/web/components/LogoWordMark.txt +7 -8
- package/mcp-docs/web/components/Lottie.txt +44 -45
- package/mcp-docs/web/components/LottieStatusAnimation.txt +11 -12
- package/mcp-docs/web/components/MediaQueryProvider.txt +7 -8
- package/mcp-docs/web/components/Modal.txt +69 -66
- package/mcp-docs/web/components/ModalBody.txt +5 -6
- package/mcp-docs/web/components/ModalFooter.txt +5 -6
- package/mcp-docs/web/components/ModalHeader.txt +5 -6
- package/mcp-docs/web/components/MultiContentModule.txt +109 -110
- package/mcp-docs/web/components/NavigationBar.txt +18 -19
- package/mcp-docs/web/components/NavigationTitle.txt +7 -8
- package/mcp-docs/web/components/NavigationTitleSelect.txt +9 -10
- package/mcp-docs/web/components/NudgeCard.txt +61 -62
- package/mcp-docs/web/components/Overlay.txt +57 -58
- package/mcp-docs/web/components/PageFooter.txt +77 -78
- package/mcp-docs/web/components/PageHeader.txt +107 -108
- package/mcp-docs/web/components/Pagination.txt +115 -116
- package/mcp-docs/web/components/PeriodSelector.txt +158 -159
- package/mcp-docs/web/components/Pictogram.txt +13 -14
- package/mcp-docs/web/components/Point.txt +169 -170
- package/mcp-docs/web/components/PortalProvider.txt +6 -7
- package/mcp-docs/web/components/Pressable.txt +73 -74
- package/mcp-docs/web/components/ProgressBar.txt +20 -21
- package/mcp-docs/web/components/ProgressBarWithFixedLabels.txt +15 -16
- package/mcp-docs/web/components/ProgressBarWithFloatLabel.txt +15 -16
- package/mcp-docs/web/components/ProgressCircle.txt +24 -25
- package/mcp-docs/web/components/Radio.txt +22 -23
- package/mcp-docs/web/components/RadioCell.txt +83 -84
- package/mcp-docs/web/components/RadioGroup.txt +22 -23
- package/mcp-docs/web/components/ReferenceLine.txt +22 -23
- package/mcp-docs/web/components/RemoteImage.txt +49 -50
- package/mcp-docs/web/components/RemoteImageGroup.txt +11 -12
- package/mcp-docs/web/components/RollingNumber.txt +131 -132
- package/mcp-docs/web/components/Scrubber.txt +22 -23
- package/mcp-docs/web/components/SearchInput.txt +29 -30
- package/mcp-docs/web/components/SectionHeader.txt +98 -99
- package/mcp-docs/web/components/SegmentedTabs.txt +109 -110
- package/mcp-docs/web/components/Select.txt +22 -23
- package/mcp-docs/web/components/SelectChip.txt +134 -135
- package/mcp-docs/web/components/SelectOption.txt +31 -32
- package/mcp-docs/web/components/Sidebar.txt +109 -110
- package/mcp-docs/web/components/SidebarItem.txt +6 -7
- package/mcp-docs/web/components/SidebarMoreMenu.txt +5 -6
- package/mcp-docs/web/components/Spacer.txt +57 -58
- package/mcp-docs/web/components/Sparkline.txt +18 -19
- package/mcp-docs/web/components/SparklineGradient.txt +18 -19
- package/mcp-docs/web/components/SparklineInteractive.txt +34 -35
- package/mcp-docs/web/components/SparklineInteractiveHeader.txt +12 -13
- package/mcp-docs/web/components/Spinner.txt +15 -16
- package/mcp-docs/web/components/SpotIcon.txt +12 -13
- package/mcp-docs/web/components/SpotRectangle.txt +12 -13
- package/mcp-docs/web/components/SpotSquare.txt +12 -13
- package/mcp-docs/web/components/Stepper.txt +119 -120
- package/mcp-docs/web/components/SubBrandLogoMark.txt +8 -9
- package/mcp-docs/web/components/SubBrandLogoWordMark.txt +8 -9
- package/mcp-docs/web/components/Switch.txt +23 -24
- package/mcp-docs/web/components/TabIndicator.txt +12 -13
- package/mcp-docs/web/components/TabLabel.txt +28 -29
- package/mcp-docs/web/components/TabNavigation.txt +41 -42
- package/mcp-docs/web/components/TabbedChips.txt +38 -39
- package/mcp-docs/web/components/Table.txt +17 -18
- package/mcp-docs/web/components/TableBody.txt +9 -10
- package/mcp-docs/web/components/TableCaption.txt +13 -14
- package/mcp-docs/web/components/TableCell.txt +21 -22
- package/mcp-docs/web/components/TableCellFallback.txt +16 -17
- package/mcp-docs/web/components/TableFooter.txt +9 -10
- package/mcp-docs/web/components/TableHeader.txt +10 -11
- package/mcp-docs/web/components/TableRow.txt +13 -14
- package/mcp-docs/web/components/Tabs.txt +94 -95
- package/mcp-docs/web/components/Tag.txt +106 -107
- package/mcp-docs/web/components/Text.txt +110 -111
- package/mcp-docs/web/components/TextInput.txt +32 -33
- package/mcp-docs/web/components/ThemeProvider.txt +27 -28
- package/mcp-docs/web/components/TileButton.txt +37 -38
- package/mcp-docs/web/components/Toast.txt +82 -83
- package/mcp-docs/web/components/Tooltip.txt +22 -23
- package/mcp-docs/web/components/Tour.txt +21 -22
- package/mcp-docs/web/components/Tray.txt +23 -24
- package/mcp-docs/web/components/UpsellCard.txt +16 -17
- package/mcp-docs/web/components/VStack.txt +101 -102
- package/mcp-docs/web/components/XAxis.txt +25 -26
- package/mcp-docs/web/components/YAxis.txt +26 -27
- package/mcp-docs/web/getting-started/{mcp-server.txt → ai-overview.txt} +51 -37
- package/mcp-docs/web/getting-started/installation.txt +103 -0
- package/mcp-docs/web/getting-started/introduction.txt +3 -0
- package/mcp-docs/web/getting-started/playground.txt +3 -0
- package/mcp-docs/web/getting-started/styling.txt +161 -0
- package/mcp-docs/web/getting-started/templates.txt +121 -0
- package/mcp-docs/web/getting-started/theming.txt +426 -0
- package/mcp-docs/web/hooks/useBreakpoints.txt +30 -2
- package/mcp-docs/web/hooks/useDimensions.txt +61 -2
- package/mcp-docs/web/hooks/useEventHandler.txt +120 -0
- package/mcp-docs/web/hooks/useHasMounted.txt +22 -2
- package/mcp-docs/web/hooks/useIsoEffect.txt +18 -2
- package/mcp-docs/web/hooks/useMediaQuery.txt +22 -2
- package/mcp-docs/web/hooks/useMergeRefs.txt +116 -0
- package/mcp-docs/web/hooks/useOverlayContentContext.txt +64 -2
- package/mcp-docs/web/hooks/usePreviousValue.txt +74 -0
- package/mcp-docs/web/hooks/useRefMap.txt +178 -0
- package/mcp-docs/web/hooks/useScrollBlocker.txt +21 -2
- package/mcp-docs/web/hooks/useTheme.txt +261 -2
- package/mcp-docs/web/routes.txt +9 -1
- package/package.json +1 -1
|
@@ -4,12 +4,14 @@ title: Playground
|
|
|
4
4
|
hide_title: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
import { VStack } from '@coinbase/cds-web/layout';
|
|
7
8
|
import { MDXSection } from '@site/src/components/page/MDXSection';
|
|
8
9
|
import { MDXArticle } from '@site/src/components/page/MDXArticle';
|
|
9
10
|
import { ContentHeader } from '@site/src/components/page/ContentHeader';
|
|
10
11
|
import { PlaygroundBanner } from '@site/src/components/page/ComponentBanner/PlaygroundBanner';
|
|
11
12
|
import { ShareablePlayground } from '@site/src/components/page/ShareablePlayground';
|
|
12
13
|
|
|
14
|
+
<VStack gap={5}>
|
|
13
15
|
<ContentHeader
|
|
14
16
|
title="Playground"
|
|
15
17
|
description="Live code playground for testing and sharing CDS components and code examples. All CDS components and hooks and all React exports are available to use in the playground without importing them. You must call render() to render your code."
|
|
@@ -23,3 +25,4 @@ import { ShareablePlayground } from '@site/src/components/page/ShareablePlaygrou
|
|
|
23
25
|
|
|
24
26
|
</MDXArticle>
|
|
25
27
|
</MDXSection>
|
|
28
|
+
</VStack>
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# styling
|
|
2
|
+
|
|
3
|
+
CDS includes powerful and flexible APIs for styling components. Easily access values from the theme, or go rogue with full customization.
|
|
4
|
+
|
|
5
|
+
import { media } from '@coinbase/cds-web/styles/media';
|
|
6
|
+
### `StyleProps` API
|
|
7
|
+
|
|
8
|
+
Most components support the StyleProps API. StyleProps automatically have access to the values in the theme, and some StyleProps are limited to only the theme values.
|
|
9
|
+
|
|
10
|
+
[See the full list of StyleProps here →](/components/layout/Box/?platform=web&tab=props)
|
|
11
|
+
|
|
12
|
+
```jsx
|
|
13
|
+
// ✅ The `bgNegative` token will automatically update with the theme!
|
|
14
|
+
<Box background="bgNegative" width={100} />
|
|
15
|
+
|
|
16
|
+
// ❌ Error: Type '"#0000ff"' is not assignable to type 'Color | undefined'.
|
|
17
|
+
<Box background="#0000ff" width={100} />
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
:::tip
|
|
21
|
+
The docs page of every component has a props table listing all the available props!
|
|
22
|
+
:::
|
|
23
|
+
|
|
24
|
+
:::note
|
|
25
|
+
The StyleProps API applies static atomic classnames under the hood. These classnames reference CSS Variables set by the ThemeProvider to enable dynamic theming.
|
|
26
|
+
:::
|
|
27
|
+
|
|
28
|
+
#### Responsive styles
|
|
29
|
+
|
|
30
|
+
On web, all StyleProps support an optional responsive syntax for device-specific styles.
|
|
31
|
+
|
|
32
|
+
```jsx
|
|
33
|
+
<Box
|
|
34
|
+
width={{ base: 200, tablet: 200, desktop: 400 }}
|
|
35
|
+
background={{ base: 'bgPrimary', phone: 'bgSecondary' }}
|
|
36
|
+
/>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- **base:** no media query
|
|
40
|
+
- **phone:** <code>{media.phone}</code>
|
|
41
|
+
- **tablet:** <code>{media.tablet}</code>
|
|
42
|
+
- **desktop:** <code>{media.desktop}</code>
|
|
43
|
+
|
|
44
|
+
It is not possible to customize the breakpoint values unless you compile CDS from the source code.
|
|
45
|
+
|
|
46
|
+
Import the `media` object to use CDS breakpoints and media queries in your own custom styles.
|
|
47
|
+
|
|
48
|
+
[See how breakpoints are defined in the `media` object →](https://github.com/coinbase/cds/blob/master/packages/web/src/styles/media.ts)
|
|
49
|
+
|
|
50
|
+
```jsx
|
|
51
|
+
import styled from 'styled-components';
|
|
52
|
+
import { media } from '@coinbase/cds-web/styles/media';
|
|
53
|
+
|
|
54
|
+
const MyCustomThing = styled.div`
|
|
55
|
+
${media.phone} {
|
|
56
|
+
width: 100px;
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### `style` and `styles` props
|
|
62
|
+
|
|
63
|
+
Most components support the native `style` prop for inline styles.
|
|
64
|
+
|
|
65
|
+
```jsx
|
|
66
|
+
<Box style={{ backgroundColor: '#0000ff' }} />
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Some complex components support passing inline styles to subcomponents with the `styles` prop.
|
|
70
|
+
|
|
71
|
+
```jsx
|
|
72
|
+
<ProgressCircle
|
|
73
|
+
styles={{
|
|
74
|
+
circle: {
|
|
75
|
+
stroke: 'transparent',
|
|
76
|
+
},
|
|
77
|
+
progress: {
|
|
78
|
+
strokeLinecap: 'square',
|
|
79
|
+
},
|
|
80
|
+
}}
|
|
81
|
+
color="fgPositive"
|
|
82
|
+
progress={0.75}
|
|
83
|
+
size={100}
|
|
84
|
+
/>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Styles are merged together as objects in order of specificity.
|
|
88
|
+
|
|
89
|
+
```jsx
|
|
90
|
+
<PageHeader style={{ backgroundColor: 'red' }} styles={{ root: { backgroundColor: 'blue' } }} />
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
In the example above, `backgroundColor` will be blue.
|
|
94
|
+
|
|
95
|
+
:::tip
|
|
96
|
+
We will continue to add the `styles` prop to more components over time. Please feel free to request specific components that you think would benefit from this API.
|
|
97
|
+
:::
|
|
98
|
+
|
|
99
|
+
### `className` and `classNames` props
|
|
100
|
+
|
|
101
|
+
Most components support the native `className` prop for inline styles.
|
|
102
|
+
|
|
103
|
+
```jsx
|
|
104
|
+
<Box className="my-custom-box" />
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Some complex components support passing classnames to subcomponents with the `classNames` prop.
|
|
108
|
+
|
|
109
|
+
```jsx
|
|
110
|
+
<ProgressCircle
|
|
111
|
+
classNames={{
|
|
112
|
+
circle: 'my-custom-circle',
|
|
113
|
+
progress: 'my-custom-progress',
|
|
114
|
+
}}
|
|
115
|
+
color="fgPositive"
|
|
116
|
+
progress={0.75}
|
|
117
|
+
size={100}
|
|
118
|
+
/>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
:::tip
|
|
122
|
+
We will continue to add the `classNames` prop to more components over time. Please feel free to request specific components that you think would benefit from this API.
|
|
123
|
+
:::
|
|
124
|
+
|
|
125
|
+
### Component specific props
|
|
126
|
+
|
|
127
|
+
Many components have their own specific props that can affect styling.
|
|
128
|
+
|
|
129
|
+
```jsx
|
|
130
|
+
<Button compact variant="primary">
|
|
131
|
+
Click me
|
|
132
|
+
</Button>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Combining techniques
|
|
136
|
+
|
|
137
|
+
Mix and match these styling techniques for complete customization!
|
|
138
|
+
|
|
139
|
+
```jsx
|
|
140
|
+
<Button variant="primary" borderColor="accentBoldPurple" style={{ fontFamily: 'Times' }}>
|
|
141
|
+
Click me
|
|
142
|
+
</Button>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Global CSS reset
|
|
146
|
+
|
|
147
|
+
CDS web global styles include a CSS reset which override the browser default styles for some elements. This ensures that polymorphic components render correctly, regardless of their HTML element.
|
|
148
|
+
|
|
149
|
+
[See the global CSS reset here →](https://github.com/coinbase/cds/blob/master/packages/web/src/styles/global.ts)
|
|
150
|
+
|
|
151
|
+
### Polymorphic components
|
|
152
|
+
|
|
153
|
+
Many CDS web components have the polymorphic `as` prop, which allows you to change what component or element is being rendered under the hood.
|
|
154
|
+
|
|
155
|
+
Using the polymorphic `as` prop will change the component's type to allow the relevant native props.
|
|
156
|
+
|
|
157
|
+
```jsx
|
|
158
|
+
<Button as="a" href="google.com" />
|
|
159
|
+
<Link as="button" type="submit" />
|
|
160
|
+
```
|
|
161
|
+
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# templates
|
|
2
|
+
|
|
3
|
+
Get started quickly with pre-built templates for common app architectures. Choose from Next.js, Vite, or Webpack templates, all configured with CDS components and best practices.
|
|
4
|
+
|
|
5
|
+
import { TemplateCard } from '@site/src/components/page/TemplateCard';
|
|
6
|
+
import { HStack } from '@coinbase/cds-web/layout';
|
|
7
|
+
import ThemedImage from '@theme/ThemedImage';
|
|
8
|
+
|
|
9
|
+
### Get started
|
|
10
|
+
|
|
11
|
+
The easiest way to get started with CDS is with a template. All templates include the required CDS packages, dependencies, and pre-configured settings. Each template provides a working example application with common UI patterns to help you start building.
|
|
12
|
+
|
|
13
|
+
<HStack gap={2} style={{ marginTop: '1.5rem', flexWrap: 'wrap', alignItems: 'stretch' }}>
|
|
14
|
+
<TemplateCard
|
|
15
|
+
description="Built for web applications with SSR and full-stack capabilities"
|
|
16
|
+
href="https://github.com/coinbase/cds/tree/master/templates/next-app"
|
|
17
|
+
icon={
|
|
18
|
+
<ThemedImage
|
|
19
|
+
sources={{
|
|
20
|
+
light: '/img/logos/frameworks/nextjs_light.png',
|
|
21
|
+
dark: '/img/logos/frameworks/nextjs_dark.png',
|
|
22
|
+
}}
|
|
23
|
+
alt="Next.js"
|
|
24
|
+
style={{ paddingTop: 'var(--space-1_5)', paddingBottom: 'var(--space-1_5)' }}
|
|
25
|
+
height="100%"
|
|
26
|
+
/>
|
|
27
|
+
}
|
|
28
|
+
/>
|
|
29
|
+
<TemplateCard
|
|
30
|
+
name="Vite"
|
|
31
|
+
description="Built for fast, modern single page applications"
|
|
32
|
+
href="https://github.com/coinbase/cds/tree/master/templates/vite-app"
|
|
33
|
+
icon={
|
|
34
|
+
<ThemedImage
|
|
35
|
+
sources={{
|
|
36
|
+
light: '/img/logos/frameworks/vite.png',
|
|
37
|
+
dark: '/img/logos/frameworks/vite.png',
|
|
38
|
+
}}
|
|
39
|
+
alt=""
|
|
40
|
+
style={{ paddingTop: 'var(--space-0_5)', paddingBottom: 'var(--space-0_5)' }}
|
|
41
|
+
height="100%"
|
|
42
|
+
/>
|
|
43
|
+
}
|
|
44
|
+
/>
|
|
45
|
+
<TemplateCard
|
|
46
|
+
description="Built for customizable build setups"
|
|
47
|
+
href="https://github.com/coinbase/cds/tree/master/templates/webpack-app"
|
|
48
|
+
icon={
|
|
49
|
+
<ThemedImage
|
|
50
|
+
sources={{
|
|
51
|
+
light: '/img/logos/frameworks/webpack_light.png',
|
|
52
|
+
dark: '/img/logos/frameworks/webpack_dark.png',
|
|
53
|
+
}}
|
|
54
|
+
alt="Webpack"
|
|
55
|
+
height="100%"
|
|
56
|
+
/>
|
|
57
|
+
}
|
|
58
|
+
/>
|
|
59
|
+
</HStack>
|
|
60
|
+
|
|
61
|
+
### Installation
|
|
62
|
+
|
|
63
|
+
To create a new project from a template, use `gitpick` to bootstrap your application:
|
|
64
|
+
|
|
65
|
+
#### Next.js
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx -y gitpick coinbase/cds/tree/master/templates/next-app cds-next
|
|
69
|
+
cd cds-next
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### Vite
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npx -y gitpick coinbase/cds/tree/master/templates/vite-app cds-vite
|
|
76
|
+
cd cds-vite
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### Webpack
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npx -y gitpick coinbase/cds/tree/master/templates/webpack-app cds-webpack
|
|
83
|
+
cd cds-webpack
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Setup
|
|
87
|
+
|
|
88
|
+
After creating your project, install dependencies and start developing:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
## We suggest using nvm to manage Node.js versions
|
|
92
|
+
nvm install
|
|
93
|
+
nvm use
|
|
94
|
+
|
|
95
|
+
## Enable corepack for package manager setup
|
|
96
|
+
corepack enable
|
|
97
|
+
|
|
98
|
+
## Install dependencies
|
|
99
|
+
yarn
|
|
100
|
+
|
|
101
|
+
## Start development server
|
|
102
|
+
yarn dev
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### What's included
|
|
106
|
+
|
|
107
|
+
All templates come pre-configured with:
|
|
108
|
+
|
|
109
|
+
- Latest CDS packages (`@coinbase/cds-web`, `@coinbase/cds-icons`, etc.)
|
|
110
|
+
- TypeScript configuration
|
|
111
|
+
- Example components demonstrating common UI patterns
|
|
112
|
+
- Theme setup with CDS default theme
|
|
113
|
+
- Responsive layouts using CDS layout components
|
|
114
|
+
|
|
115
|
+
### Next steps
|
|
116
|
+
|
|
117
|
+
After setting up your template, learn how to customize and extend CDS:
|
|
118
|
+
|
|
119
|
+
- [Theming](/getting-started/theming) - Customize colors, spacing, and typography
|
|
120
|
+
- [Installation](/getting-started/installation) - Manual installation and setup options
|
|
121
|
+
|