@coinbase/cds-mcp-server 8.28.1 → 8.29.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.
Files changed (82) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/mcp-docs/mobile/components/Accordion.txt +3 -1
  3. package/mcp-docs/mobile/components/Alert.txt +3 -1
  4. package/mcp-docs/mobile/components/Banner.txt +14 -14
  5. package/mcp-docs/mobile/components/Button.txt +173 -30
  6. package/mcp-docs/mobile/components/Carousel.txt +24 -24
  7. package/mcp-docs/mobile/components/Combobox.txt +187 -0
  8. package/mcp-docs/mobile/components/ContainedAssetCard.txt +4 -4
  9. package/mcp-docs/mobile/components/ContentCard.txt +29 -27
  10. package/mcp-docs/mobile/components/ContentCardBody.txt +4 -4
  11. package/mcp-docs/mobile/components/ContentCardHeader.txt +2 -2
  12. package/mcp-docs/mobile/components/FloatingAssetCard.txt +6 -6
  13. package/mcp-docs/mobile/components/IconButton.txt +126 -51
  14. package/mcp-docs/mobile/components/LineChart.txt +3 -2
  15. package/mcp-docs/mobile/components/MultiContentModule.txt +6 -6
  16. package/mcp-docs/mobile/components/Numpad.txt +2 -2
  17. package/mcp-docs/mobile/components/PageHeader.txt +3 -1
  18. package/mcp-docs/mobile/components/PeriodSelector.txt +4 -4
  19. package/mcp-docs/mobile/components/Pressable.txt +6 -2
  20. package/mcp-docs/mobile/components/ProgressBarWithFixedLabels.txt +4 -4
  21. package/mcp-docs/mobile/components/ProgressBarWithFloatLabel.txt +2 -2
  22. package/mcp-docs/mobile/components/ProgressCircle.txt +5 -1
  23. package/mcp-docs/mobile/components/SelectChip.txt +2 -0
  24. package/mcp-docs/mobile/components/SelectChipAlpha.txt +1 -1
  25. package/mcp-docs/mobile/components/SlideButton.txt +2 -2
  26. package/mcp-docs/mobile/components/Sparkline.txt +3 -1
  27. package/mcp-docs/mobile/components/SparklineGradient.txt +3 -1
  28. package/mcp-docs/mobile/components/SparklineInteractiveHeader.txt +3 -1
  29. package/mcp-docs/mobile/components/TabbedChips.txt +3 -1
  30. package/mcp-docs/mobile/components/Tag.txt +19 -9
  31. package/mcp-docs/mobile/components/TextInput.txt +9 -3
  32. package/mcp-docs/mobile/components/Tray.txt +2 -0
  33. package/mcp-docs/mobile/components/UpsellCard.txt +16 -16
  34. package/mcp-docs/mobile/hooks/useDimensions.txt +4 -4
  35. package/mcp-docs/mobile/hooks/useMergeRefs.txt +4 -4
  36. package/mcp-docs/mobile/hooks/usePreviousValue.txt +5 -5
  37. package/mcp-docs/mobile/hooks/useRefMap.txt +6 -6
  38. package/mcp-docs/mobile/routes.txt +1 -0
  39. package/mcp-docs/web/components/Accordion.txt +3 -1
  40. package/mcp-docs/web/components/Alert.txt +3 -1
  41. package/mcp-docs/web/components/Banner.txt +14 -14
  42. package/mcp-docs/web/components/Button.txt +188 -34
  43. package/mcp-docs/web/components/Carousel.txt +71 -65
  44. package/mcp-docs/web/components/Combobox.txt +176 -0
  45. package/mcp-docs/web/components/ContainedAssetCard.txt +4 -4
  46. package/mcp-docs/web/components/ContentCard.txt +29 -27
  47. package/mcp-docs/web/components/ContentCardBody.txt +4 -4
  48. package/mcp-docs/web/components/ContentCardHeader.txt +2 -2
  49. package/mcp-docs/web/components/FloatingAssetCard.txt +6 -6
  50. package/mcp-docs/web/components/FullscreenModal.txt +12 -4
  51. package/mcp-docs/web/components/GridColumn.txt +12 -4
  52. package/mcp-docs/web/components/IconButton.txt +164 -189
  53. package/mcp-docs/web/components/LineChart.txt +3 -2
  54. package/mcp-docs/web/components/MultiContentModule.txt +6 -6
  55. package/mcp-docs/web/components/PageHeader.txt +11 -9
  56. package/mcp-docs/web/components/ProgressBarWithFixedLabels.txt +4 -4
  57. package/mcp-docs/web/components/ProgressBarWithFloatLabel.txt +2 -2
  58. package/mcp-docs/web/components/ProgressCircle.txt +5 -1
  59. package/mcp-docs/web/components/SelectChipAlpha.txt +1 -1
  60. package/mcp-docs/web/components/Sidebar.txt +2 -2
  61. package/mcp-docs/web/components/Sparkline.txt +3 -1
  62. package/mcp-docs/web/components/SparklineGradient.txt +3 -1
  63. package/mcp-docs/web/components/SparklineInteractiveHeader.txt +3 -1
  64. package/mcp-docs/web/components/TabbedChips.txt +3 -1
  65. package/mcp-docs/web/components/TableBody.txt +2 -2
  66. package/mcp-docs/web/components/TableCaption.txt +2 -2
  67. package/mcp-docs/web/components/TableCell.txt +6 -6
  68. package/mcp-docs/web/components/Tag.txt +19 -9
  69. package/mcp-docs/web/components/TextInput.txt +9 -3
  70. package/mcp-docs/web/components/Tray.txt +2 -1
  71. package/mcp-docs/web/components/UpsellCard.txt +16 -16
  72. package/mcp-docs/web/hooks/useDimensions.txt +4 -4
  73. package/mcp-docs/web/hooks/useHasMounted.txt +7 -3
  74. package/mcp-docs/web/hooks/useIsoEffect.txt +1 -1
  75. package/mcp-docs/web/hooks/useMergeRefs.txt +4 -4
  76. package/mcp-docs/web/hooks/useOverlayContentContext.txt +8 -8
  77. package/mcp-docs/web/hooks/usePreviousValue.txt +5 -5
  78. package/mcp-docs/web/hooks/useRefMap.txt +6 -6
  79. package/mcp-docs/web/hooks/useScrollBlocker.txt +1 -1
  80. package/mcp-docs/web/hooks/useTheme.txt +3 -3
  81. package/mcp-docs/web/routes.txt +1 -0
  82. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,14 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  <!-- template-start -->
10
10
 
11
+ ## 8.29.0 ((12/12/2025, 01:12 PM PST))
12
+
13
+ This is an artificial version bump with no new change.
14
+
15
+ ## 8.28.2 ((12/12/2025, 06:23 AM PST))
16
+
17
+ This is an artificial version bump with no new change.
18
+
11
19
  ## 8.28.1 ((12/10/2025, 04:33 PM PST))
12
20
 
13
21
  This is an artificial version bump with no new change.
@@ -38,7 +38,9 @@ Check [here](/components/layout/AccordionItem) for AccordionItem Props.
38
38
  media={<CellMedia active type="icon" name="wallet" title="BTC" />}
39
39
  onPress={(itemKey) => console.log(itemKey)}
40
40
  >
41
- <TextBody as="p">{loremIpsum.repeat(20)}</TextBody>
41
+ <Text as="p" font="body">
42
+ {loremIpsum.repeat(20)}
43
+ </Text>
42
44
  </AccordionItem>
43
45
  </Accordion>
44
46
  ```
@@ -111,7 +111,9 @@ function AlertOnModalExample() {
111
111
  openModal(
112
112
  <Modal visible onRequestClose={closeModal}>
113
113
  <ModalBody>
114
- <TextBody as="p">{loremIpsum}</TextBody>
114
+ <Text as="p" font="body">
115
+ {loremIpsum}
116
+ </Text>
115
117
  </ModalBody>
116
118
  <ModalFooter
117
119
  primaryAction={<Button onPress={closeModal}>Save</Button>}
@@ -25,10 +25,10 @@ The global warning banner is used to communicate important alerts or warnings to
25
25
  primaryAction={<Link to="https://www.coinbase.com">Primary</Link>}
26
26
  secondaryAction={<Link to="https://www.coinbase.com">Secondary</Link>}
27
27
  >
28
- <TextLabel2>
28
+ <Text font="label2">
29
29
  Your funds are safe. We’re looking into it and expect our usual service to return soon.
30
30
  <Link to="https://www.coinbase.com">Learn more</Link>
31
- </TextLabel2>
31
+ </Text>
32
32
  </Banner>
33
33
  ```
34
34
 
@@ -46,10 +46,10 @@ The In-line Error Banner is used to display specific error messages directly ben
46
46
  primaryAction={<Link to="https://www.coinbase.com">Primary</Link>}
47
47
  secondaryAction={<Link to="https://www.coinbase.com">Secondary</Link>}
48
48
  >
49
- <TextLabel2>
49
+ <Text font="label2">
50
50
  Your funds are safe. We’re looking into it and expect our usual service to return soon.
51
51
  <Link to="https://www.coinbase.com">Learn more</Link>
52
- </TextLabel2>
52
+ </Text>
53
53
  </Banner>
54
54
  ```
55
55
 
@@ -65,10 +65,10 @@ The Contextual Promotional Banner is used to highlight special offers, promotion
65
65
  title="Some features are temporarily unavailable"
66
66
  variant="promotional"
67
67
  >
68
- <TextLabel2>
68
+ <Text font="label2">
69
69
  Your funds are safe. We’re looking into it and expect our usual service to return soon.
70
70
  <Link to="https://www.coinbase.com">Learn more</Link>
71
- </TextLabel2>
71
+ </Text>
72
72
  </Banner>
73
73
  ```
74
74
 
@@ -87,10 +87,10 @@ The in-line Informational Banner is used to provide users with additional inform
87
87
  primaryAction={<Link to="https://www.coinbase.com">Primary</Link>}
88
88
  secondaryAction={<Link to="https://www.coinbase.com">Secondary</Link>}
89
89
  >
90
- <TextLabel2>
90
+ <Text font="label2">
91
91
  Your funds are safe. We’re looking into it and expect our usual service to return soon.
92
92
  <Link to="https://www.coinbase.com">Learn more</Link>
93
- </TextLabel2>
93
+ </Text>
94
94
  </Banner>
95
95
  <Banner
96
96
  startIcon="warning"
@@ -99,9 +99,9 @@ The in-line Informational Banner is used to provide users with additional inform
99
99
  title="Some features are temporarily unavailable"
100
100
  variant="warning"
101
101
  >
102
- <TextLabel2>
102
+ <Text font="label2">
103
103
  <Link to="https://www.coinbase.com">Retry</Link>
104
- </TextLabel2>
104
+ </Text>
105
105
  </Banner>
106
106
  </VStack>
107
107
  ```
@@ -120,9 +120,9 @@ Customize `borderRadius` to align contextual or in-line banners with surrounding
120
120
  title="Rounded contextual banner"
121
121
  variant="informational"
122
122
  >
123
- <TextLabel2>
123
+ <Text font="label2">
124
124
  Use moderate rounding to soften banners that live within card-based layouts.
125
- </TextLabel2>
125
+ </Text>
126
126
  </Banner>
127
127
  <Banner
128
128
  borderRadius={400}
@@ -134,9 +134,9 @@ Customize `borderRadius` to align contextual or in-line banners with surrounding
134
134
  title="Rounded inline banner"
135
135
  variant="promotional"
136
136
  >
137
- <TextLabel2>
137
+ <Text font="label2">
138
138
  Larger radii can help inline banners feel cohesive with pill-shaped buttons or chips nearby.
139
- </TextLabel2>
139
+ </Text>
140
140
  </Banner>
141
141
  </VStack>
142
142
  ```
@@ -10,79 +10,222 @@ import { Button } from '@coinbase/cds-mobile/buttons/Button'
10
10
 
11
11
  ## Examples
12
12
 
13
- ### Primary Button
13
+ Buttons allow users to take actions and make choices with a single tap. They communicate what action will occur when the user interacts with them.
14
14
 
15
- Use primary buttons for high emphasis actions. These buttons have the most visual impact and should be reserved for the most important, final actions that complete a flow, like Save, Join now, or Confirm. Try to use one per screen. Multiple primary buttons make it confusing for the user to understand what action they should take.
15
+ ### Basics
16
+
17
+ The only required prop is `children`, which is the button's label. Buttons default to the `primary` variant.
16
18
 
17
19
  ```jsx
18
- <Button onPress={console.log} variant="primary">
19
- Primary
20
- </Button>
20
+ <Button onPress={console.log}>Get started</Button>
21
21
  ```
22
22
 
23
- ### Secondary Button
23
+ ### Variants
24
24
 
25
- These buttons have a medium level of emphasis that should be used for non-critical actions. Secondary buttons can be used on pages without restrictions and works well for multiple actions of equal weight. They can be used in conjunction with a Primary Button or independently.
25
+ Use variants to communicate the importance and intent of an action.
26
+
27
+ - **Primary** — High emphasis for main actions like "Save" or "Confirm". Limit to one per screen.
28
+ - **Secondary** — Medium emphasis for multiple actions of equal weight.
29
+ - **Tertiary** — High contrast with inverted background.
30
+ - **Negative** — Destructive actions that can't be undone. Use sparingly.
26
31
 
27
32
  ```jsx
28
- <Button onPress={console.log} variant="secondary">
29
- Secondary
30
- </Button>
33
+ <HStack gap={2} flexWrap="wrap">
34
+ <Button onPress={console.log} variant="primary">
35
+ Primary
36
+ </Button>
37
+ <Button onPress={console.log} variant="secondary">
38
+ Secondary
39
+ </Button>
40
+ <Button onPress={console.log} variant="tertiary">
41
+ Tertiary
42
+ </Button>
43
+ <Button onPress={console.log} variant="negative">
44
+ Negative
45
+ </Button>
46
+ </HStack>
31
47
  ```
32
48
 
33
- ### Tertiary Button
49
+ #### Transparent
34
50
 
35
- These buttons provide high contrast with the background through the use of the themable inverted background color.
51
+ Use transparent buttons for supplementary actions with lower prominence. The container is only visible on interaction. Works with any variant.
36
52
 
37
53
  ```jsx
38
- <Button onPress={console.log} variant="tertiary">
39
- Tertiary
40
- </Button>
54
+ <HStack gap={2}>
55
+ <Button onPress={console.log} transparent>
56
+ Primary
57
+ </Button>
58
+ <Button onPress={console.log} variant="secondary" transparent>
59
+ Secondary
60
+ </Button>
61
+ <Button onPress={console.log} variant="negative" transparent>
62
+ Negative
63
+ </Button>
64
+ </HStack>
41
65
  ```
42
66
 
43
- ### Negative Button
67
+ ### States
68
+
69
+ #### Loading
44
70
 
45
- Negative buttons should be used sparingly for destructive actions that will result in data loss, can’t be undone, or will have significant consequences. They commonly appear in confirmation dialogs as the final confirmation before deleting.
71
+ Use the `loading` prop to indicate an action is in progress. The button becomes non-interactive and displays a spinner while preserving its width.
46
72
 
47
73
  ```jsx
48
- <Button onPress={console.log} variant="negative">
49
- Negative
50
- </Button>
74
+ <HStack gap={2}>
75
+ <Button onPress={console.log} loading>
76
+ Save changes
77
+ </Button>
78
+ <Button onPress={console.log} variant="secondary" loading>
79
+ Submit
80
+ </Button>
81
+ </HStack>
51
82
  ```
52
83
 
53
- ### Transparent Button
84
+ #### Disabled
54
85
 
55
- Transparent buttons are used for less important actions that are supplementary. These buttons have lower prominence since its container is not visible until the button is interacted with. Transparent buttons are frequently used on Cards and can be placed on a variety of backgrounds.
86
+ Use the `disabled` prop to prevent interaction and indicate the action is unavailable.
56
87
 
57
88
  ```jsx
58
89
  <HStack gap={2}>
59
- <Button onPress={console.log} transparent>
90
+ <Button disabled onPress={console.log}>
60
91
  Primary
61
92
  </Button>
62
- <Button onPress={console.log} variant="secondary" transparent>
93
+ <Button disabled onPress={console.log} variant="secondary">
63
94
  Secondary
64
95
  </Button>
65
- <Button onPress={console.log} variant="negative" transparent>
96
+ <Button disabled onPress={console.log} variant="negative">
66
97
  Negative
67
98
  </Button>
68
99
  </HStack>
69
100
  ```
70
101
 
71
- ### Buttons with end icon
102
+ ### Sizing
103
+
104
+ #### Compact
72
105
 
73
- You can add an icon after the label of a button.
106
+ Use `compact` for smaller buttons with reduced padding. Useful in dense UIs or alongside other compact elements.
74
107
 
75
108
  ```jsx
76
- <HStack gap={2}>
77
- <Button onPress={console.log} endIcon="add" endIconActive variant="secondary" compact>
78
- Select file
109
+ <HStack gap={2} alignItems="center">
110
+ <Button onPress={console.log} compact>
111
+ Compact
112
+ </Button>
113
+ <Button onPress={console.log}>Default</Button>
114
+ </HStack>
115
+ ```
116
+
117
+ #### Block
118
+
119
+ Use `block` to make the button expand to fill its container width.
120
+
121
+ ```jsx
122
+ <VStack gap={2}>
123
+ <Button onPress={console.log} block>
124
+ Full width button
125
+ </Button>
126
+ <Button onPress={console.log} variant="secondary" block>
127
+ Another full width
79
128
  </Button>
129
+ </VStack>
130
+ ```
131
+
132
+ ### Icons
133
+
134
+ #### End Icon
135
+
136
+ Add an icon after the label to provide additional context or indicate direction.
137
+
138
+ ```jsx
139
+ <HStack gap={2}>
80
140
  <Button onPress={console.log} endIcon="forwardArrow" variant="secondary" compact>
81
141
  See more
82
142
  </Button>
143
+ <Button onPress={console.log} endIcon="externalLink" variant="secondary" compact>
144
+ Open link
145
+ </Button>
146
+ </HStack>
147
+ ```
148
+
149
+ #### Start Icon
150
+
151
+ Add an icon before the label to reinforce the action.
152
+
153
+ ```jsx
154
+ <HStack gap={2}>
155
+ <Button onPress={console.log} startIcon="add" startIconActive variant="secondary" compact>
156
+ Add item
157
+ </Button>
158
+ <Button onPress={console.log} startIcon="download" variant="secondary" compact>
159
+ Download
160
+ </Button>
161
+ </HStack>
162
+ ```
163
+
164
+ #### Full Width with Icons
165
+
166
+ When using `block` with icons, the content automatically spreads across the button width.
167
+
168
+ ```jsx
169
+ <Button onPress={console.log} startIcon="wallet" endIcon="forwardArrow" variant="secondary" block>
170
+ Connect wallet
171
+ </Button>
172
+ ```
173
+
174
+ ### Accessibility
175
+
176
+ Buttons automatically use their `children` as the accessible label. For buttons with only icons or ambiguous labels, provide an `accessibilityLabel`.
177
+
178
+ ```jsx
179
+ <Button onPress={handleClose} accessibilityLabel="Close dialog">
180
+ ×
181
+ </Button>
182
+ ```
183
+
184
+ ### Composed Examples
185
+
186
+ #### Confirmation Dialog
187
+
188
+ A common pattern using primary and secondary buttons together.
189
+
190
+ ```jsx
191
+ <HStack gap={2} justifyContent="flex-end">
192
+ <Button onPress={console.log} variant="secondary" transparent>
193
+ Cancel
194
+ </Button>
195
+ <Button onPress={console.log}>Confirm</Button>
196
+ </HStack>
197
+ ```
198
+
199
+ #### Destructive Confirmation
200
+
201
+ Use negative buttons with a secondary cancel option for destructive actions.
202
+
203
+ ```jsx
204
+ <HStack gap={2} justifyContent="flex-end">
205
+ <Button onPress={console.log} variant="secondary" transparent>
206
+ Cancel
207
+ </Button>
208
+ <Button onPress={console.log} variant="negative">
209
+ Delete
210
+ </Button>
83
211
  </HStack>
84
212
  ```
85
213
 
214
+ #### Form Actions
215
+
216
+ A full-width primary action with a compact secondary option.
217
+
218
+ ```jsx
219
+ <VStack gap={2}>
220
+ <Button onPress={console.log} block>
221
+ Create account
222
+ </Button>
223
+ <Button onPress={console.log} variant="secondary" transparent block>
224
+ Already have an account? Sign in
225
+ </Button>
226
+ </VStack>
227
+ ```
228
+
86
229
  ## Props
87
230
 
88
231
  | Prop | Type | Required | Default | Description |
@@ -107,9 +107,9 @@ function DynamicSizingCarousel() {
107
107
  action="Start earning"
108
108
  dangerouslySetBackground="rgb(var(--purple70))"
109
109
  description={
110
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
110
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
111
111
  Earn staking rewards on ETH by holding it on Coinbase
112
- </TextLabel2>
112
+ </Text>
113
113
  }
114
114
  media={
115
115
  <Box left={16} position="relative" top={12}>
@@ -119,9 +119,9 @@ function DynamicSizingCarousel() {
119
119
  minWidth="0"
120
120
  onActionPress={NoopFn}
121
121
  title={
122
- <TextHeadline color="fgInverse" as="h3">
122
+ <Text color="fgInverse" as="h3" font="headline">
123
123
  Up to 3.29% APR on ETHs
124
- </TextHeadline>
124
+ </Text>
125
125
  }
126
126
  width="100%"
127
127
  />
@@ -417,9 +417,9 @@ Similar to web, you are provided the `isVisible` render prop, however it is not
417
417
  }
418
418
  minWidth="0"
419
419
  title={
420
- <TextHeadline as="h3" id="recurring-buy-label">
420
+ <Text as="h3" font="headline" id="recurring-buy-label">
421
421
  Recurring Buy
422
- </TextHeadline>
422
+ </Text>
423
423
  }
424
424
  width="100%"
425
425
  />
@@ -497,9 +497,9 @@ function CustomComponentsCarousel() {
497
497
  carousel: { gap: horizontalGap },
498
498
  }}
499
499
  title={
500
- <TextHeadline as="h3">
500
+ <Text as="h3" font="headline">
501
501
  Learn more
502
- </TextHeadline>
502
+ </Text>
503
503
  }
504
504
  >
505
505
  <CarouselItem id="recurring-buy" width={itemWidth}>
@@ -522,9 +522,9 @@ function CustomComponentsCarousel() {
522
522
  action="Start earning"
523
523
  dangerouslySetBackground="rgb(var(--purple70))"
524
524
  description={
525
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
525
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
526
526
  Earn staking rewards on ETH by holding it on Coinbase
527
- </TextLabel2>
527
+ </Text>
528
528
  }
529
529
  media={
530
530
  <Box left={16} position="relative" top={12}>
@@ -534,9 +534,9 @@ function CustomComponentsCarousel() {
534
534
  minWidth={0}
535
535
  onActionPress={NoopFn}
536
536
  title={
537
- <TextHeadline color="fgInverse" as="h3">
537
+ <Text color="fgInverse" as="h3" font="headline">
538
538
  Up to 3.29% APR on ETHs
539
- </TextHeadline>
539
+ </Text>
540
540
  }
541
541
  width="100%"
542
542
  />
@@ -546,9 +546,9 @@ function CustomComponentsCarousel() {
546
546
  action="Start chatting"
547
547
  dangerouslySetBackground="rgb(var(--teal70))"
548
548
  description={
549
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
549
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
550
550
  Chat with other devs in our Discord community
551
- </TextLabel2>
551
+ </Text>
552
552
  }
553
553
  media={
554
554
  <Box left={16} position="relative" top={4}>
@@ -558,9 +558,9 @@ function CustomComponentsCarousel() {
558
558
  minWidth={0}
559
559
  onActionPress={NoopFn}
560
560
  title={
561
- <TextHeadline color="fgInverse" as="h3">
561
+ <Text color="fgInverse" as="h3" font="headline">
562
562
  Join the community
563
- </TextHeadline>
563
+ </Text>
564
564
  }
565
565
  width="100%"
566
566
  />
@@ -570,9 +570,9 @@ function CustomComponentsCarousel() {
570
570
  action="Get 60 days free"
571
571
  dangerouslySetBackground="rgb(var(--blue80))"
572
572
  description={
573
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
573
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
574
574
  Use code NOV60 when you sign up for Coinbase One
575
- </TextLabel2>
575
+ </Text>
576
576
  }
577
577
  media={
578
578
  <Box left={16} position="relative" top={0}>
@@ -582,9 +582,9 @@ function CustomComponentsCarousel() {
582
582
  minWidth={0}
583
583
  onActionPress={NoopFn}
584
584
  title={
585
- <TextHeadline color="fgInverse" as="h3">
585
+ <Text color="fgInverse" as="h3" font="headline">
586
586
  Coinbase One offer
587
- </TextHeadline>
587
+ </Text>
588
588
  }
589
589
  width="100%"
590
590
  />
@@ -594,9 +594,9 @@ function CustomComponentsCarousel() {
594
594
  action="Get started"
595
595
  dangerouslySetBackground="rgb(var(--gray100))"
596
596
  description={
597
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
597
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
598
598
  Spend USDC to get rewards with our Visa® debit card
599
- </TextLabel2>
599
+ </Text>
600
600
  }
601
601
  media={
602
602
  <Box left={16} position="relative" top={0}>
@@ -606,9 +606,9 @@ function CustomComponentsCarousel() {
606
606
  minWidth={0}
607
607
  onActionPress={NoopFn}
608
608
  title={
609
- <TextHeadline color="fgInverse" as="h3">
609
+ <Text color="fgInverse" as="h3" font="headline">
610
610
  Coinbase Card
611
- </TextHeadline>
611
+ </Text>
612
612
  }
613
613
  width="100%"
614
614
  />