@coinbase/cds-mcp-server 8.47.4 → 8.48.1
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 +8 -0
- package/mcp-docs/mobile/components/AreaChart.txt +474 -1
- package/mcp-docs/mobile/components/BarChart.txt +633 -3
- package/mcp-docs/mobile/components/CartesianChart.txt +248 -0
- package/mcp-docs/mobile/components/LineChart.txt +4 -4
- package/mcp-docs/mobile/components/Link.txt +98 -36
- package/mcp-docs/mobile/components/Point.txt +2 -1
- package/mcp-docs/mobile/components/Scrubber.txt +2 -1
- package/mcp-docs/mobile/components/Tag.txt +49 -0
- package/mcp-docs/web/components/AreaChart.txt +8 -5
- package/mcp-docs/web/components/BarChart.txt +427 -135
- package/mcp-docs/web/components/CartesianChart.txt +249 -0
- package/mcp-docs/web/components/LineChart.txt +5 -4
- package/mcp-docs/web/components/Link.txt +112 -25
- package/mcp-docs/web/components/Point.txt +2 -1
- package/mcp-docs/web/components/ReferenceLine.txt +3 -2
- package/mcp-docs/web/components/Scrubber.txt +3 -2
- package/mcp-docs/web/components/Tag.txt +49 -0
- package/package.json +1 -1
|
@@ -376,6 +376,255 @@ function Scrubbing() {
|
|
|
376
376
|
}
|
|
377
377
|
```
|
|
378
378
|
|
|
379
|
+
### Animations
|
|
380
|
+
|
|
381
|
+
CartesianChart delegates transition control to its child components. You can also disable all animations chart-wide by passing `animate={false}` on CartesianChart.
|
|
382
|
+
|
|
383
|
+
#### Enter Only
|
|
384
|
+
|
|
385
|
+
Disable the update morph animation while keeping a slow enter reveal. Data changes snap instantly but the initial chart appearance animates. Useful when new data arrives frequently and morphing would be distracting.
|
|
386
|
+
|
|
387
|
+
```tsx live
|
|
388
|
+
function EnterAnimationOnly() {
|
|
389
|
+
const dataCount = 15;
|
|
390
|
+
const updateInterval = 2500;
|
|
391
|
+
|
|
392
|
+
function generateNextValue(prev: number) {
|
|
393
|
+
const step = Math.random() * 30 - 15;
|
|
394
|
+
return Math.max(0, Math.min(100, prev + step));
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
function generateInitialData() {
|
|
398
|
+
const data = [50];
|
|
399
|
+
for (let i = 1; i < dataCount; i++) {
|
|
400
|
+
data.push(generateNextValue(data[i - 1]));
|
|
401
|
+
}
|
|
402
|
+
return data;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
function Chart() {
|
|
406
|
+
const [data, setData] = useState(generateInitialData);
|
|
407
|
+
|
|
408
|
+
useEffect(() => {
|
|
409
|
+
const intervalId = setInterval(() => {
|
|
410
|
+
setData((current) => {
|
|
411
|
+
const last = current[current.length - 1];
|
|
412
|
+
return [...current.slice(1), generateNextValue(last)];
|
|
413
|
+
});
|
|
414
|
+
}, updateInterval);
|
|
415
|
+
return () => clearInterval(intervalId);
|
|
416
|
+
}, []);
|
|
417
|
+
|
|
418
|
+
return (
|
|
419
|
+
<CartesianChart
|
|
420
|
+
height={{ base: 200, tablet: 225, desktop: 250 }}
|
|
421
|
+
inset={{ top: 16, bottom: 16, left: 16, right: 16 }}
|
|
422
|
+
series={[{ id: 'values', data }]}
|
|
423
|
+
aria-hidden="true"
|
|
424
|
+
>
|
|
425
|
+
<Line
|
|
426
|
+
seriesId="values"
|
|
427
|
+
strokeWidth={3}
|
|
428
|
+
transitions={{
|
|
429
|
+
update: null,
|
|
430
|
+
enter: { type: 'tween', duration: 1.0 },
|
|
431
|
+
}}
|
|
432
|
+
/>
|
|
433
|
+
</CartesianChart>
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
return <Chart />;
|
|
438
|
+
}
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
#### Update Only
|
|
442
|
+
|
|
443
|
+
Disable the enter reveal animation while keeping a slow update morph. The chart appears instantly but data changes animate smoothly. Useful when the chart is embedded in content that should not animate on load.
|
|
444
|
+
|
|
445
|
+
```tsx live
|
|
446
|
+
function UpdateAnimationOnly() {
|
|
447
|
+
const dataCount = 15;
|
|
448
|
+
const updateInterval = 2500;
|
|
449
|
+
|
|
450
|
+
function generateNextValue(prev: number) {
|
|
451
|
+
const step = Math.random() * 30 - 15;
|
|
452
|
+
return Math.max(0, Math.min(100, prev + step));
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
function generateInitialData() {
|
|
456
|
+
const data = [50];
|
|
457
|
+
for (let i = 1; i < dataCount; i++) {
|
|
458
|
+
data.push(generateNextValue(data[i - 1]));
|
|
459
|
+
}
|
|
460
|
+
return data;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
function Chart() {
|
|
464
|
+
const [data, setData] = useState(generateInitialData);
|
|
465
|
+
|
|
466
|
+
useEffect(() => {
|
|
467
|
+
const intervalId = setInterval(() => {
|
|
468
|
+
setData((current) => {
|
|
469
|
+
const last = current[current.length - 1];
|
|
470
|
+
return [...current.slice(1), generateNextValue(last)];
|
|
471
|
+
});
|
|
472
|
+
}, updateInterval);
|
|
473
|
+
return () => clearInterval(intervalId);
|
|
474
|
+
}, []);
|
|
475
|
+
|
|
476
|
+
return (
|
|
477
|
+
<CartesianChart
|
|
478
|
+
height={{ base: 200, tablet: 225, desktop: 250 }}
|
|
479
|
+
inset={{ top: 16, bottom: 16, left: 16, right: 16 }}
|
|
480
|
+
series={[{ id: 'values', data }]}
|
|
481
|
+
aria-hidden="true"
|
|
482
|
+
>
|
|
483
|
+
<Line
|
|
484
|
+
seriesId="values"
|
|
485
|
+
strokeWidth={3}
|
|
486
|
+
transitions={{
|
|
487
|
+
enter: null,
|
|
488
|
+
update: { type: 'spring', stiffness: 900, damping: 120, mass: 8 },
|
|
489
|
+
}}
|
|
490
|
+
/>
|
|
491
|
+
</CartesianChart>
|
|
492
|
+
);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
return <Chart />;
|
|
496
|
+
}
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
#### Mixed Transitions Per Child
|
|
500
|
+
|
|
501
|
+
Each child component can define its own transitions independently. Here, the `Line` uses a spring morph while the bars snap with no update animation. This lets you fine-tune each visual layer within a single chart.
|
|
502
|
+
|
|
503
|
+
```tsx live
|
|
504
|
+
function MixedTransitions() {
|
|
505
|
+
const dataCount = 10;
|
|
506
|
+
const updateInterval = 2000;
|
|
507
|
+
|
|
508
|
+
function generateNextValue(prev: number) {
|
|
509
|
+
const step = Math.random() * 20 - 10;
|
|
510
|
+
return Math.max(10, Math.min(100, prev + step));
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
function generateInitialData() {
|
|
514
|
+
const data = [50];
|
|
515
|
+
for (let i = 1; i < dataCount; i++) {
|
|
516
|
+
data.push(generateNextValue(data[i - 1]));
|
|
517
|
+
}
|
|
518
|
+
return data;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
function Chart() {
|
|
522
|
+
const [data, setData] = useState(generateInitialData);
|
|
523
|
+
|
|
524
|
+
useEffect(() => {
|
|
525
|
+
const intervalId = setInterval(() => {
|
|
526
|
+
setData((current) => {
|
|
527
|
+
const last = current[current.length - 1];
|
|
528
|
+
return [...current.slice(1), generateNextValue(last)];
|
|
529
|
+
});
|
|
530
|
+
}, updateInterval);
|
|
531
|
+
return () => clearInterval(intervalId);
|
|
532
|
+
}, []);
|
|
533
|
+
|
|
534
|
+
return (
|
|
535
|
+
<CartesianChart
|
|
536
|
+
height={{ base: 200, tablet: 225, desktop: 250 }}
|
|
537
|
+
inset={{ top: 16, bottom: 16, left: 16, right: 16 }}
|
|
538
|
+
series={[
|
|
539
|
+
{ id: 'line', data, color: 'var(--color-accentBoldBlue)', yAxisId: 'default' },
|
|
540
|
+
{
|
|
541
|
+
id: 'bars',
|
|
542
|
+
data: data.map((d) => d * 0.3),
|
|
543
|
+
color: 'var(--color-accentBoldPurple)',
|
|
544
|
+
yAxisId: 'bars',
|
|
545
|
+
},
|
|
546
|
+
]}
|
|
547
|
+
xAxis={{ scaleType: 'band' }}
|
|
548
|
+
yAxis={[
|
|
549
|
+
{ id: 'default' },
|
|
550
|
+
{ id: 'bars', range: ({ min, max }) => ({ min: max - 48, max }) },
|
|
551
|
+
]}
|
|
552
|
+
aria-hidden="true"
|
|
553
|
+
>
|
|
554
|
+
<BarPlot
|
|
555
|
+
seriesIds={['bars']}
|
|
556
|
+
transitions={{
|
|
557
|
+
update: null,
|
|
558
|
+
enter: { type: 'tween', duration: 0.6 },
|
|
559
|
+
}}
|
|
560
|
+
/>
|
|
561
|
+
<Line
|
|
562
|
+
seriesId="line"
|
|
563
|
+
strokeWidth={3}
|
|
564
|
+
transitions={{
|
|
565
|
+
update: { type: 'spring', stiffness: 700, damping: 20 },
|
|
566
|
+
}}
|
|
567
|
+
/>
|
|
568
|
+
</CartesianChart>
|
|
569
|
+
);
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
return <Chart />;
|
|
573
|
+
}
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
#### No Animations
|
|
577
|
+
|
|
578
|
+
You can disable all animations chart-wide by setting `animate` to `false` on CartesianChart. This is useful for static snapshots or when performance is a concern. Compare this to the animated examples above — data still updates, but changes snap instantly without any transition.
|
|
579
|
+
|
|
580
|
+
```tsx live
|
|
581
|
+
function DisableAnimations() {
|
|
582
|
+
const dataCount = 15;
|
|
583
|
+
const updateInterval = 2500;
|
|
584
|
+
|
|
585
|
+
function generateNextValue(prev: number) {
|
|
586
|
+
const step = Math.random() * 30 - 15;
|
|
587
|
+
return Math.max(0, Math.min(100, prev + step));
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
function generateInitialData() {
|
|
591
|
+
const data = [50];
|
|
592
|
+
for (let i = 1; i < dataCount; i++) {
|
|
593
|
+
data.push(generateNextValue(data[i - 1]));
|
|
594
|
+
}
|
|
595
|
+
return data;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
function Chart() {
|
|
599
|
+
const [data, setData] = useState(generateInitialData);
|
|
600
|
+
|
|
601
|
+
useEffect(() => {
|
|
602
|
+
const intervalId = setInterval(() => {
|
|
603
|
+
setData((current) => {
|
|
604
|
+
const last = current[current.length - 1];
|
|
605
|
+
return [...current.slice(1), generateNextValue(last)];
|
|
606
|
+
});
|
|
607
|
+
}, updateInterval);
|
|
608
|
+
return () => clearInterval(intervalId);
|
|
609
|
+
}, []);
|
|
610
|
+
|
|
611
|
+
return (
|
|
612
|
+
<CartesianChart
|
|
613
|
+
animate={false}
|
|
614
|
+
height={{ base: 200, tablet: 225, desktop: 250 }}
|
|
615
|
+
inset={{ top: 16, bottom: 16, left: 16, right: 16 }}
|
|
616
|
+
series={[{ id: 'values', data }]}
|
|
617
|
+
aria-hidden="true"
|
|
618
|
+
>
|
|
619
|
+
<Line seriesId="values" showArea strokeWidth={3} />
|
|
620
|
+
</CartesianChart>
|
|
621
|
+
);
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
return <Chart />;
|
|
625
|
+
}
|
|
626
|
+
```
|
|
627
|
+
|
|
379
628
|
### Customization
|
|
380
629
|
|
|
381
630
|
#### Price with Volume
|
|
@@ -402,7 +402,7 @@ function Points() {
|
|
|
402
402
|
|
|
403
403
|
### Animations
|
|
404
404
|
|
|
405
|
-
You can configure chart transitions using `
|
|
405
|
+
You can configure chart transitions using `transitions`. The `transitions` prop accepts an object with `enter` (the clip-path reveal animation) and `update` (data change morph animation) keys. Set either to `null` to disable that animation phase. You can also disable all animations by setting `animate` on LineChart to `false`.
|
|
406
406
|
|
|
407
407
|
```jsx live
|
|
408
408
|
function Transitions() {
|
|
@@ -526,12 +526,12 @@ function Transitions() {
|
|
|
526
526
|
AreaComponent={MyGradient}
|
|
527
527
|
seriesId="prices"
|
|
528
528
|
strokeWidth={3}
|
|
529
|
-
|
|
529
|
+
transitions={{ update: myTransitionConfig }}
|
|
530
530
|
/>
|
|
531
531
|
<Scrubber
|
|
532
532
|
hideOverlay
|
|
533
|
-
beaconTransitions={{ update: myTransitionConfig }}
|
|
534
533
|
label={valueAtIndexFormatter}
|
|
534
|
+
transitions={{ update: myTransitionConfig }}
|
|
535
535
|
/>
|
|
536
536
|
</CartesianChart>
|
|
537
537
|
);
|
|
@@ -2021,7 +2021,8 @@ function ForecastAssetPrice() {
|
|
|
2021
2021
|
| `textTransform` | `ResponsiveProp<none \| uppercase \| lowercase \| capitalize>` | No | `-` | - |
|
|
2022
2022
|
| `top` | `ResponsiveProp<Top<string \| number>>` | No | `-` | - |
|
|
2023
2023
|
| `transform` | `inherit \| none \| revert \| -moz-initial \| initial \| revert-layer \| unset` | No | `-` | - |
|
|
2024
|
-
| `transition` | `Orchestration & Repeat & Tween \| Orchestration & Repeat & Spring \| Orchestration & Repeat & Keyframes \| Orchestration & Repeat & Inertia \| Orchestration & Repeat & Just \| Orchestration & Repeat & None \| Orchestration & Repeat & PermissiveTransitionDefinition \| Orchestration & Repeat & Tween & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Spring & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Keyframes & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Inertia & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Just & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & None & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & PermissiveTransitionDefinition & { [key: string]: TransitionDefinition; }` | No | `-` | Transition
|
|
2024
|
+
| `transition` | `Orchestration & Repeat & Tween \| Orchestration & Repeat & Spring \| Orchestration & Repeat & Keyframes \| Orchestration & Repeat & Inertia \| Orchestration & Repeat & Just \| Orchestration & Repeat & None \| Orchestration & Repeat & PermissiveTransitionDefinition \| Orchestration & Repeat & Tween & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Spring & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Keyframes & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Inertia & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Just & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & None & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & PermissiveTransitionDefinition & { [key: string]: TransitionDefinition; }` | No | `-` | Transition for updates. |
|
|
2025
|
+
| `transitions` | `{ enter?: Transition$1 \| null; update?: Transition$1 \| null \| undefined; } \| undefined` | No | `transitions = {{ enter: { type: 'tween', duration: 0.5 }, update: { type: 'spring', stiffness: 900, damping: 120, mass: 4 } }}` | Transition configuration for enter and update animations. |
|
|
2025
2026
|
| `type` | `dotted \| solid` | No | `'solid'` | The type of line to render. |
|
|
2026
2027
|
| `userSelect` | `ResponsiveProp<text \| none \| all \| auto>` | No | `-` | - |
|
|
2027
2028
|
| `visibility` | `ResponsiveProp<hidden \| visible>` | No | `-` | - |
|
|
@@ -10,19 +10,77 @@ import { Link } from '@coinbase/cds-web/typography/Link'
|
|
|
10
10
|
|
|
11
11
|
## Examples
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Link renders a pressable [Text](/components/typography/Text) element as an anchor (`<a>`) by default. It inherits parent text styles and supports the same `font` and `color` props as Text.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
### Basics
|
|
16
|
+
|
|
17
|
+
By default, Link inherits the text styles of its parent. Pass an `href` to set the destination URL.
|
|
18
|
+
|
|
19
|
+
```jsx live
|
|
20
|
+
<Text font="body" as="p">
|
|
21
|
+
Check out the <Link href="https://www.coinbase.com/">Coinbase homepage</Link> for more info.
|
|
22
|
+
</Text>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Underline
|
|
26
|
+
|
|
27
|
+
Use the `underline` prop to add a text decoration underline to the link. This is particularly important for inline links within body text to meet [WCAG 2.0 accessibility requirements](https://webaim.org/standards/wcag/checklist).
|
|
28
|
+
|
|
29
|
+
```jsx live
|
|
30
|
+
<Text font="body" as="p">
|
|
31
|
+
Read our{' '}
|
|
32
|
+
<Link underline href="https://www.coinbase.com/">
|
|
33
|
+
terms and conditions
|
|
34
|
+
</Link>{' '}
|
|
35
|
+
before proceeding.
|
|
36
|
+
</Text>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
#### Underline with different fonts
|
|
40
|
+
|
|
41
|
+
The underline works across all font styles.
|
|
42
|
+
|
|
43
|
+
```jsx live
|
|
44
|
+
<VStack alignItems="flex-start" gap={3}>
|
|
45
|
+
<Link underline font="body" href="https://www.coinbase.com/">
|
|
46
|
+
body link
|
|
47
|
+
</Link>
|
|
48
|
+
<Link underline font="label1" href="https://www.coinbase.com/">
|
|
49
|
+
label1 link
|
|
50
|
+
</Link>
|
|
51
|
+
<Link underline font="caption" href="https://www.coinbase.com/">
|
|
52
|
+
caption link
|
|
53
|
+
</Link>
|
|
54
|
+
<Link underline font="legal" href="https://www.coinbase.com/">
|
|
55
|
+
legal link
|
|
56
|
+
</Link>
|
|
57
|
+
<Link underline font="title2" href="https://www.coinbase.com/">
|
|
58
|
+
title2 link
|
|
59
|
+
</Link>
|
|
60
|
+
</VStack>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
#### Underline within a paragraph
|
|
64
|
+
|
|
65
|
+
When a link appears inline within body text, always use `underline` so users can distinguish the link from surrounding text without relying on color alone.
|
|
16
66
|
|
|
17
67
|
```jsx live
|
|
18
|
-
<
|
|
68
|
+
<Text as="p" display="block" font="body">
|
|
69
|
+
This is a paragraph with an{' '}
|
|
70
|
+
<Link underline href="https://www.coinbase.com/">
|
|
71
|
+
inline underlined link
|
|
72
|
+
</Link>{' '}
|
|
73
|
+
that is clearly distinguishable from the surrounding text.
|
|
74
|
+
</Text>
|
|
19
75
|
```
|
|
20
76
|
|
|
21
|
-
### Styling
|
|
77
|
+
### Styling
|
|
78
|
+
|
|
79
|
+
#### Font
|
|
22
80
|
|
|
23
|
-
To style a
|
|
81
|
+
To style a Link, either wrap it in the desired [Text](/components/typography/Text) component with the appropriate `as` prop for semantic HTML, or use the `font` prop directly on the Link.
|
|
24
82
|
|
|
25
|
-
Wrapping
|
|
83
|
+
##### Wrapping in Text
|
|
26
84
|
|
|
27
85
|
```jsx live
|
|
28
86
|
<VStack alignItems="flex-start" gap={3}>
|
|
@@ -69,9 +127,9 @@ Wrapping your Link in the appropriate Text element
|
|
|
69
127
|
</VStack>
|
|
70
128
|
```
|
|
71
129
|
|
|
72
|
-
|
|
130
|
+
##### Using the font prop
|
|
73
131
|
|
|
74
|
-
If you
|
|
132
|
+
If you need to style a link without wrapping it in a semantically appropriate text element, use the `font` prop directly.
|
|
75
133
|
|
|
76
134
|
```jsx live
|
|
77
135
|
<VStack alignItems="flex-start" gap={3}>
|
|
@@ -83,38 +141,51 @@ If you find yourself in a situation where you simply need to style a link as a T
|
|
|
83
141
|
</VStack>
|
|
84
142
|
```
|
|
85
143
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
```jsx live
|
|
89
|
-
<Link href="https://www.coinbase.com/" color="fgNegative">
|
|
90
|
-
With color override
|
|
91
|
-
</Link>
|
|
92
|
-
```
|
|
144
|
+
#### Color
|
|
93
145
|
|
|
94
|
-
|
|
146
|
+
Override the default link color using the `color` prop with any CDS foreground token.
|
|
95
147
|
|
|
96
148
|
```jsx live
|
|
97
149
|
<VStack alignItems="flex-start" gap={3}>
|
|
98
|
-
<Link
|
|
99
|
-
|
|
150
|
+
<Link href="https://www.coinbase.com/" color="fgPrimary">
|
|
151
|
+
fgPrimary (default)
|
|
100
152
|
</Link>
|
|
101
|
-
<Link
|
|
102
|
-
|
|
153
|
+
<Link href="https://www.coinbase.com/" color="fgNegative">
|
|
154
|
+
fgNegative
|
|
103
155
|
</Link>
|
|
104
|
-
<Link
|
|
105
|
-
|
|
156
|
+
<Link underline href="https://www.coinbase.com/" color="fgNegative">
|
|
157
|
+
fgNegative with underline
|
|
106
158
|
</Link>
|
|
107
159
|
</VStack>
|
|
108
160
|
```
|
|
109
161
|
|
|
110
|
-
###
|
|
162
|
+
### Navigation
|
|
163
|
+
|
|
164
|
+
#### openInNewWindow
|
|
165
|
+
|
|
166
|
+
Set `openInNewWindow` to open the link in a new browser tab.
|
|
111
167
|
|
|
112
168
|
```jsx live
|
|
113
|
-
<Link font="
|
|
114
|
-
|
|
169
|
+
<Link font="body" href="https://www.coinbase.com/" openInNewWindow>
|
|
170
|
+
Opens in a new tab
|
|
115
171
|
</Link>
|
|
116
172
|
```
|
|
117
173
|
|
|
174
|
+
#### rel
|
|
175
|
+
|
|
176
|
+
Use the `rel` prop to set the relationship between the current document and the linked resource.
|
|
177
|
+
|
|
178
|
+
```jsx live
|
|
179
|
+
<VStack alignItems="flex-start" gap={3}>
|
|
180
|
+
<Link font="body" href="https://www.coinbase.com/" rel="noreferrer">
|
|
181
|
+
rel=noreferrer
|
|
182
|
+
</Link>
|
|
183
|
+
<Link font="body" href="https://www.coinbase.com/" rel="noopener">
|
|
184
|
+
rel=noopener
|
|
185
|
+
</Link>
|
|
186
|
+
</VStack>
|
|
187
|
+
```
|
|
188
|
+
|
|
118
189
|
### Accessibility
|
|
119
190
|
|
|
120
191
|
:::tip Accessibility tip
|
|
@@ -127,6 +198,22 @@ _The link text must have a 3:1 contrast ratio from the surrounding non-link text
|
|
|
127
198
|
|
|
128
199
|
:::
|
|
129
200
|
|
|
201
|
+
Use the `underline` prop on inline links within body text to ensure they are distinguishable without relying on color alone.
|
|
202
|
+
|
|
203
|
+
```jsx live
|
|
204
|
+
<Text as="p" font="body">
|
|
205
|
+
By continuing, you agree to the{' '}
|
|
206
|
+
<Link underline href="https://www.coinbase.com/">
|
|
207
|
+
Terms of Service
|
|
208
|
+
</Link>{' '}
|
|
209
|
+
and{' '}
|
|
210
|
+
<Link underline href="https://www.coinbase.com/">
|
|
211
|
+
Privacy Policy
|
|
212
|
+
</Link>
|
|
213
|
+
.
|
|
214
|
+
</Text>
|
|
215
|
+
```
|
|
216
|
+
|
|
130
217
|
## Props
|
|
131
218
|
|
|
132
219
|
| Prop | Type | Required | Default | Description |
|
|
@@ -544,7 +544,8 @@ function ScatterplotWithCustomLabels() {
|
|
|
544
544
|
| `textRendering` | `string \| number` | No | `-` | - |
|
|
545
545
|
| `to` | `string \| number` | No | `-` | - |
|
|
546
546
|
| `transform` | `string` | No | `-` | - |
|
|
547
|
-
| `transition` | `Orchestration & Repeat & Tween \| Orchestration & Repeat & Spring \| Orchestration & Repeat & Keyframes \| Orchestration & Repeat & Inertia \| Orchestration & Repeat & Just \| Orchestration & Repeat & None \| Orchestration & Repeat & PermissiveTransitionDefinition \| Orchestration & Repeat & Tween & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Spring & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Keyframes & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Inertia & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Just & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & None & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & PermissiveTransitionDefinition & { [key: string]: TransitionDefinition; }` | No |
|
|
547
|
+
| `transition` | `Orchestration & Repeat & Tween \| Orchestration & Repeat & Spring \| Orchestration & Repeat & Keyframes \| Orchestration & Repeat & Inertia \| Orchestration & Repeat & Just \| Orchestration & Repeat & None \| Orchestration & Repeat & PermissiveTransitionDefinition \| Orchestration & Repeat & Tween & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Spring & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Keyframes & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Inertia & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & Just & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & None & { [key: string]: TransitionDefinition; } \| Orchestration & Repeat & PermissiveTransitionDefinition & { [key: string]: TransitionDefinition; }` | No | `-` | Transition for updates. |
|
|
548
|
+
| `transitions` | `{ enter?: Transition$1 \| null; update?: Transition$1 \| null \| undefined; } \| undefined` | No | `-` | Transition configuration for enter and update animations. |
|
|
548
549
|
| `type` | `string` | No | `-` | - |
|
|
549
550
|
| `u1` | `string \| number` | No | `-` | - |
|
|
550
551
|
| `u2` | `string \| number` | No | `-` | - |
|
|
@@ -643,7 +643,7 @@ function DraggablePriceTarget() {
|
|
|
643
643
|
| `beaconLabelMinGap` | `number` | No | `-` | Minimum gap between beacon labels to prevent overlap. Measured in pixels. |
|
|
644
644
|
| `beaconLabelPreferredSide` | `left \| right` | No | `'right'` | Preferred side for beacon labels. |
|
|
645
645
|
| `beaconStroke` | `string` | No | `'var(--color-bg)'` | Stroke color of the scrubber beacon circle. |
|
|
646
|
-
| `beaconTransitions` | `{ update?: Transition$1; pulse?: Transition$1 \| undefined; pulseRepeatDelay?: number \| undefined; } \| undefined` | No | `-` | Transition configuration for the scrubber beacon. |
|
|
646
|
+
| `beaconTransitions` | `{ enter?: Transition$1 \| null; update?: Transition$1 \| null \| undefined; pulse?: Transition$1 \| undefined; pulseRepeatDelay?: number \| undefined; } \| undefined` | No | `-` | Transition configuration for the scrubber beacon. |
|
|
647
647
|
| `classNames` | `{ overlay?: string; beacon?: string \| undefined; line?: string \| undefined; beaconLabel?: string \| undefined; } \| undefined` | No | `-` | Custom class names for individual elements of the Scrubber component |
|
|
648
648
|
| `hideBeaconLabels` | `boolean` | No | `-` | Hides the beacon labels while keeping the line label visible (if provided). |
|
|
649
649
|
| `hideLine` | `boolean` | No | `-` | Hides the scrubber line. |
|
|
@@ -651,7 +651,7 @@ function DraggablePriceTarget() {
|
|
|
651
651
|
| `idlePulse` | `boolean` | No | `-` | Pulse the beacons while at rest. |
|
|
652
652
|
| `key` | `Key \| null` | No | `-` | - |
|
|
653
653
|
| `label` | `ChartTextChildren \| ((dataIndex: number) => ChartTextChildren)` | No | `-` | Label text displayed above the scrubber line. Can be a static string or a function that receives the current dataIndex. |
|
|
654
|
-
| `labelBoundsInset` | `number \| ChartInset` | No | `{ top: 4, bottom: 20, left: 12, right: 12 } when labelElevated is true, otherwise none` | Bounds inset for the scrubber line label to prevent cutoff at chart edges. |
|
|
654
|
+
| `labelBoundsInset` | `number \| ChartInset` | No | `inset { top: 4, bottom: 20, left: 12, right: 12 } when labelElevated is true, otherwise none` | Bounds inset for the scrubber line label to prevent cutoff at chart edges. |
|
|
655
655
|
| `labelElevated` | `boolean` | No | `-` | Whether to elevate the label with a shadow. When true, applies elevation and automatically adds bounds to keep label within chart area. |
|
|
656
656
|
| `labelFont` | `ResponsiveProp<FontFamily \| inherit>` | No | `-` | Font style for the scrubber line label. |
|
|
657
657
|
| `lineStroke` | `string` | No | `-` | Stroke color for the scrubber line. |
|
|
@@ -660,5 +660,6 @@ function DraggablePriceTarget() {
|
|
|
660
660
|
| `seriesIds` | `string[]` | No | `-` | Array of series IDs to highlight when scrubbing with scrubber beacons. By default, all series will be highlighted. |
|
|
661
661
|
| `styles` | `{ overlay?: CSSProperties; beacon?: CSSProperties \| undefined; line?: CSSProperties \| undefined; beaconLabel?: CSSProperties \| undefined; } \| undefined` | No | `-` | Custom styles for individual elements of the Scrubber component |
|
|
662
662
|
| `testID` | `string` | No | `-` | Used to locate this element in unit and end-to-end tests. Under the hood, testID translates to data-testid on Web. On Mobile, testID stays the same - testID |
|
|
663
|
+
| `transitions` | `{ enter?: Transition$1 \| null; update?: Transition$1 \| null \| undefined; pulse?: Transition$1 \| undefined; pulseRepeatDelay?: number \| undefined; } \| undefined` | No | `-` | Transition configuration for the scrubber. Controls enter, update, and pulse animations for beacons and beacon labels. |
|
|
663
664
|
|
|
664
665
|
|
|
@@ -738,7 +738,7 @@ function PercentageBeaconLabels() {
|
|
|
738
738
|
| `beaconLabelMinGap` | `number` | No | `-` | Minimum gap between beacon labels to prevent overlap. Measured in pixels. |
|
|
739
739
|
| `beaconLabelPreferredSide` | `left \| right` | No | `'right'` | Preferred side for beacon labels. |
|
|
740
740
|
| `beaconStroke` | `string` | No | `'var(--color-bg)'` | Stroke color of the scrubber beacon circle. |
|
|
741
|
-
| `beaconTransitions` | `{ update?: Transition$1; pulse?: Transition$1 \| undefined; pulseRepeatDelay?: number \| undefined; } \| undefined` | No | `-` | Transition configuration for the scrubber beacon. |
|
|
741
|
+
| `beaconTransitions` | `{ enter?: Transition$1 \| null; update?: Transition$1 \| null \| undefined; pulse?: Transition$1 \| undefined; pulseRepeatDelay?: number \| undefined; } \| undefined` | No | `-` | Transition configuration for the scrubber beacon. |
|
|
742
742
|
| `classNames` | `{ overlay?: string; beacon?: string \| undefined; line?: string \| undefined; beaconLabel?: string \| undefined; } \| undefined` | No | `-` | Custom class names for individual elements of the Scrubber component |
|
|
743
743
|
| `hideBeaconLabels` | `boolean` | No | `-` | Hides the beacon labels while keeping the line label visible (if provided). |
|
|
744
744
|
| `hideLine` | `boolean` | No | `-` | Hides the scrubber line. |
|
|
@@ -746,7 +746,7 @@ function PercentageBeaconLabels() {
|
|
|
746
746
|
| `idlePulse` | `boolean` | No | `-` | Pulse the beacons while at rest. |
|
|
747
747
|
| `key` | `Key \| null` | No | `-` | - |
|
|
748
748
|
| `label` | `ChartTextChildren \| ((dataIndex: number) => ChartTextChildren)` | No | `-` | Label text displayed above the scrubber line. Can be a static string or a function that receives the current dataIndex. |
|
|
749
|
-
| `labelBoundsInset` | `number \| ChartInset` | No | `{ top: 4, bottom: 20, left: 12, right: 12 } when labelElevated is true, otherwise none` | Bounds inset for the scrubber line label to prevent cutoff at chart edges. |
|
|
749
|
+
| `labelBoundsInset` | `number \| ChartInset` | No | `inset { top: 4, bottom: 20, left: 12, right: 12 } when labelElevated is true, otherwise none` | Bounds inset for the scrubber line label to prevent cutoff at chart edges. |
|
|
750
750
|
| `labelElevated` | `boolean` | No | `-` | Whether to elevate the label with a shadow. When true, applies elevation and automatically adds bounds to keep label within chart area. |
|
|
751
751
|
| `labelFont` | `ResponsiveProp<FontFamily \| inherit>` | No | `-` | Font style for the scrubber line label. |
|
|
752
752
|
| `lineStroke` | `string` | No | `-` | Stroke color for the scrubber line. |
|
|
@@ -755,6 +755,7 @@ function PercentageBeaconLabels() {
|
|
|
755
755
|
| `seriesIds` | `string[]` | No | `-` | Array of series IDs to highlight when scrubbing with scrubber beacons. By default, all series will be highlighted. |
|
|
756
756
|
| `styles` | `{ overlay?: CSSProperties; beacon?: CSSProperties \| undefined; line?: CSSProperties \| undefined; beaconLabel?: CSSProperties \| undefined; } \| undefined` | No | `-` | Custom styles for individual elements of the Scrubber component |
|
|
757
757
|
| `testID` | `string` | No | `-` | Used to locate this element in unit and end-to-end tests. Under the hood, testID translates to data-testid on Web. On Mobile, testID stays the same - testID |
|
|
758
|
+
| `transitions` | `{ enter?: Transition$1 \| null; update?: Transition$1 \| null \| undefined; pulse?: Transition$1 \| undefined; pulseRepeatDelay?: number \| undefined; } \| undefined` | No | `-` | Transition configuration for the scrubber. Controls enter, update, and pulse animations for beacons and beacon labels. |
|
|
758
759
|
|
|
759
760
|
|
|
760
761
|
## Styles
|
|
@@ -102,6 +102,49 @@ You can control the visual prominence of the Tag using the `emphasis` prop. By d
|
|
|
102
102
|
</VStack>
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
+
### Icons
|
|
106
|
+
|
|
107
|
+
Use the `startIcon` and `endIcon` props to render an icon at the start or end of the tag.
|
|
108
|
+
|
|
109
|
+
```jsx live
|
|
110
|
+
<VStack gap={2} alignItems="flex-start">
|
|
111
|
+
<Tag colorScheme="blue" startIcon="add">
|
|
112
|
+
Start icon
|
|
113
|
+
</Tag>
|
|
114
|
+
<Tag colorScheme="green" endIcon="add">
|
|
115
|
+
End icon
|
|
116
|
+
</Tag>
|
|
117
|
+
<Tag colorScheme="purple" startIcon="add" endIcon="add">
|
|
118
|
+
Both icons
|
|
119
|
+
</Tag>
|
|
120
|
+
<Tag colorScheme="red" intent="promotional" startIcon="add" endIcon="add">
|
|
121
|
+
Promotional with icons
|
|
122
|
+
</Tag>
|
|
123
|
+
</VStack>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Custom Nodes
|
|
127
|
+
|
|
128
|
+
Use the `start` and `end` props to render custom nodes at the start or end of the tag for full control over styling.
|
|
129
|
+
|
|
130
|
+
```jsx live
|
|
131
|
+
<VStack gap={2} alignItems="flex-start">
|
|
132
|
+
<Tag colorScheme="blue" start={<Icon color="fgNegative" name="add" size="xs" />}>
|
|
133
|
+
Custom start node
|
|
134
|
+
</Tag>
|
|
135
|
+
<Tag colorScheme="green" end={<Icon color="fgPositive" name="add" size="xs" />}>
|
|
136
|
+
Custom end node
|
|
137
|
+
</Tag>
|
|
138
|
+
<Tag
|
|
139
|
+
colorScheme="purple"
|
|
140
|
+
start={<Icon color="fgPositive" name="add" size="xs" />}
|
|
141
|
+
end={<Icon color="fgNegative" name="close" size="xs" />}
|
|
142
|
+
>
|
|
143
|
+
Both custom nodes
|
|
144
|
+
</Tag>
|
|
145
|
+
</VStack>
|
|
146
|
+
```
|
|
147
|
+
|
|
105
148
|
### Composed Examples
|
|
106
149
|
|
|
107
150
|
#### Account Status
|
|
@@ -284,6 +327,9 @@ function MarginExample() {
|
|
|
284
327
|
| `display` | `ResponsiveProp<grid \| revert \| none \| block \| inline \| inline-block \| flex \| inline-flex \| inline-grid \| contents \| flow-root \| list-item>` | No | `-` | - |
|
|
285
328
|
| `elevation` | `0 \| 1 \| 2` | No | `-` | - |
|
|
286
329
|
| `emphasis` | `low \| high` | No | `'low' when informational intent, 'high' when promotional intent` | Specify the emphasis of the Tag. |
|
|
330
|
+
| `end` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Set the end node |
|
|
331
|
+
| `endIcon` | `key \| search \| pin \| filter \| visible \| continuous \| auto \| loop \| warning \| error \| account \| activity \| add \| addPeople \| advancedMarketSelector \| advancedTradeProduct \| affiliates \| airdrop \| airdropAlt \| airdropCoins \| airdropParachute \| alien \| allTimeHigh \| allocation \| annotation \| api \| apiPlug \| apothecary \| appSwitcher \| apple \| appleLogo \| application \| arrowDown \| arrowLeft \| arrowRight \| arrowUp \| arrowsHorizontal \| arrowsUpDown \| arrowsVertical \| artwork \| assetHubProduct \| assetManagementProduct \| astronautHelmet \| atSign \| atomScience \| autoCar \| avatar \| average \| backArrow \| ballot \| ballotbox \| bandage \| bank \| barChartSimple \| barChartWindow \| base \| baseApps \| baseFeed \| baseNotification \| baseQuickBuy \| baseSquare \| baseTransact \| baseVerification \| baseWallet \| baseball \| basketball \| beaker \| beginningArrow \| bell \| bellCheck \| bellPlus \| birthcertificate \| block \| blockchain \| blog \| book \| bookmark \| borrowProduct \| boxing \| bridging \| briefcase \| briefcaseAlt \| browser \| bug \| building \| calculator \| calendar \| calendarBlank \| calendarDates \| calendarEmpty \| calendarHeart \| calendarMoney \| calendarStar \| camera \| candlesticks \| car \| card \| caret \| caretDown \| caretLeft \| caretRight \| caretUp \| cash \| cashAustralianDollar \| cashBrazilianReal \| cashBrazillianReal \| cashCanadianDollar \| cashCoins \| cashEUR \| cashGBP \| cashIndonesianRupiah \| cashJPY \| cashPhilippinePeso \| cashPolishZloty \| cashRupee \| cashSingaporeDollar \| cashSwissFranc \| cashThaiBaht \| cashTurkishLira \| cashUSD \| cashUaeDirham \| cashVietnameseDong \| chainLink \| chartBar \| chartCandles \| chartLine \| chartPie \| chartPieCircle \| chartVolume \| chatBotAgent \| chatBubble \| chatRequests \| checkboxChecked \| checkboxEmpty \| checkmark \| chess \| circleCheckmark \| circleCross \| circulatingSupply \| city \| clipboard \| clock \| clockOutline \| close \| closeCaption \| clothing \| cloud \| cloudPartial \| cloudProduct \| cluster \| coinbase \| coinbaseCardProduct \| coinbaseOne \| coinbaseOneCard \| coinbaseOneLogo \| coinbaseRewards \| coinsCrypto \| collapse \| collectibles \| collection \| comment \| commentPlus \| commerceProduct \| compass \| complianceProduct \| compose \| computerChip \| concierge \| conciergeBell \| config \| convert \| copy \| corporation \| creatorCoin \| cricket \| cross \| crossTrade \| crypto \| cryptobasics \| crystalBall \| crystalBallInsight \| currencies \| custodyProduct \| dashboard \| dataMarketplaceProduct \| dataStack \| defi \| delegateProduct \| deposit \| derivatives \| derivativesProduct \| derivativesProductNew \| developerAPIProduct \| developerPlatformProduct \| dex \| diagonalDownArrow \| diagonalRightArrow \| diagonalUpArrow \| diamond \| diamondIncentives \| dinnerPlate \| directDeposit \| directDepositIcon \| disabledPhone \| discordLogo \| distribution \| document \| documentation \| dot \| doubleChevronRight \| downArrow \| download \| drag \| drops \| earn \| earnProduct \| earnRewards \| earthquake \| educationBook \| educationPencil \| email \| endArrow \| entertainment \| ethereum \| eventContracts \| exchangeProduct \| exclamationMark \| expand \| expandAddress \| expandAll \| externalLink \| eye \| faceScan \| faces \| factory \| faucet \| fib \| filmStrip \| fingerprint \| flame \| folder \| folderArrow \| folderOpen \| followAdd \| following \| football \| fork \| forwardArrow \| fscsProtection \| gab \| games \| gaming \| gasFees \| gasFeesAlt \| gauge \| gaugeEmpty \| gaugeHigh \| gaugeHighLow \| gaugeHighMid \| gaugeLow \| gaugeLowHigh \| gaugeLowMid \| gaugeMedium \| gavel \| gear \| generalCharacter \| ghost \| gif \| giftBox \| giftCard \| gitHubLogo \| globe \| golf \| googleLogo \| greenEnergy \| grid \| group \| hamburger \| hammer \| heart \| helpCenterProduct \| helpCenterQuestionMark \| hiddenEye \| hockey \| home \| horizontalLine \| hospital \| hospitalCross \| hurricane \| ideal \| identityCard \| image \| info \| initiator \| instagramLogo \| instantUnstakingClock \| institute \| institutionalProduct \| interest \| invisible \| invoice \| keyboard \| laptop \| leadChart \| leadCoin \| learningRewardsProduct \| light \| lightbulb \| lightning \| lightningBolt \| lineChartCrypto \| list \| location \| lock \| login \| logout \| magnifyingGlass \| marketCap \| medal \| megaphone \| menu \| metaverse \| microphone \| microphoneCordless \| microscope \| mint \| minus \| mma \| moneyCardCoin \| moon \| more \| moreVertical \| motorsport \| music \| musicArticles \| needle \| newsFeed \| newsletter \| nft \| nftBuy \| nftOffer \| nftProduct \| nftSale \| noRocket \| noWifi \| nodeProduct \| oil \| options \| orderBook \| orderHistory \| outline \| pFPS \| paperAirplane \| paperclip \| participate \| participateProduct \| passKey \| passport \| pause \| pay \| payProduct \| paymentCard \| payments \| payouts \| paypal \| pencil \| peopleGroup \| peopleStar \| percentage \| perpetualSwap \| phone \| pieChartData \| pillBottle \| pillCapsule \| plane \| planet \| play \| playbutton \| plusMinus \| podiumStar \| politicsBuilding \| politicsCandidate \| politicsFlag \| politicsGavel \| politicsPodium \| politicsStar \| powerTool \| priceAlerts \| priceAlertsCheck \| primePoduct \| privateClientProduct \| proProduct \| profile \| protection \| pulse \| pyramid \| qrCode \| qrCodeAlt \| queryTransact \| questionMark \| quotation \| rain \| ratingsCheck \| ratingsChecks \| ratingsStar \| reCenter \| rectangle \| recurring \| refresh \| regulated \| regulatedFutures \| report \| rewardsProduct \| ribbon \| robot \| rocket \| rocketShip \| rollingSpot \| rosettaProduct \| rottenTomato \| royalty \| safe \| save \| savingsBank \| scanQrCode \| scienceAtom \| scienceBeaker \| scienceMoon \| securityKey \| securityShield \| seen \| sendReceive \| setPinCode \| settings \| share \| shield \| shieldOutline \| shoe \| shoppingCart \| signinProduct \| singleCoin \| singleNote \| singlecloud \| smartContract \| snow \| soccer \| socialChat \| socialReshare \| socialShare \| sofort \| sortDoubleArrow \| sortDown \| sortDownCenter \| sortUp \| sortUpCenter \| soundOff \| soundOn \| sparkle \| speaker \| speechBubble \| stableCoin \| stablecoinStack \| staggeredList \| stake \| staking \| star \| starAward \| starBubble \| starTrophy \| statusDot \| step0 \| step1 \| step2 \| step3 \| step4 \| step5 \| step6 \| step7 \| step8 \| step9 \| strategy \| sun \| support \| tag \| taxes \| taxesReceipt \| telephone \| tennis \| test \| thermometer \| thumbsDown \| thumbsDownOutline \| thumbsUp \| thumbsUpOutline \| tokenLaunchCoin \| tokenLaunchRocket \| tokenSales \| tornado \| trading \| transactions \| trashCan \| trophy \| trophyCup \| tshirt \| tv \| tvStand \| twitterLogo \| ultility \| umbrella \| undo \| unfollowPeople \| unknown \| unlock \| upArrow \| upload \| venturesProduct \| verifiedBadge \| verifiedPools \| verticalLine \| virus \| waasProduct \| wallet \| walletLogo \| walletProduct \| webhooks \| wellness \| wifi \| wind \| wireTransfer \| withdraw \| wrapToken \| xLogo` | No | `-` | Icon to render at the end of the tag. |
|
|
332
|
+
| `endIconActive` | `boolean` | No | `-` | Whether the end icon is active |
|
|
287
333
|
| `flexBasis` | `ResponsiveProp<FlexBasis<string \| number>>` | No | `-` | - |
|
|
288
334
|
| `flexDirection` | `ResponsiveProp<column \| row \| row-reverse \| column-reverse>` | No | `-` | - |
|
|
289
335
|
| `flexGrow` | `inherit \| revert \| -moz-initial \| initial \| revert-layer \| unset` | No | `-` | - |
|
|
@@ -341,6 +387,9 @@ function MarginExample() {
|
|
|
341
387
|
| `ref` | `RefObject<HTMLDivElement> \| ((instance: HTMLDivElement \| null) => void) \| null` | No | `-` | - |
|
|
342
388
|
| `right` | `ResponsiveProp<Right<string \| number>>` | No | `-` | - |
|
|
343
389
|
| `rowGap` | `0 \| 1 \| 2 \| 0.25 \| 0.5 \| 0.75 \| 1.5 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10` | No | `-` | - |
|
|
390
|
+
| `start` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Set the start node |
|
|
391
|
+
| `startIcon` | `key \| search \| pin \| filter \| visible \| continuous \| auto \| loop \| warning \| error \| account \| activity \| add \| addPeople \| advancedMarketSelector \| advancedTradeProduct \| affiliates \| airdrop \| airdropAlt \| airdropCoins \| airdropParachute \| alien \| allTimeHigh \| allocation \| annotation \| api \| apiPlug \| apothecary \| appSwitcher \| apple \| appleLogo \| application \| arrowDown \| arrowLeft \| arrowRight \| arrowUp \| arrowsHorizontal \| arrowsUpDown \| arrowsVertical \| artwork \| assetHubProduct \| assetManagementProduct \| astronautHelmet \| atSign \| atomScience \| autoCar \| avatar \| average \| backArrow \| ballot \| ballotbox \| bandage \| bank \| barChartSimple \| barChartWindow \| base \| baseApps \| baseFeed \| baseNotification \| baseQuickBuy \| baseSquare \| baseTransact \| baseVerification \| baseWallet \| baseball \| basketball \| beaker \| beginningArrow \| bell \| bellCheck \| bellPlus \| birthcertificate \| block \| blockchain \| blog \| book \| bookmark \| borrowProduct \| boxing \| bridging \| briefcase \| briefcaseAlt \| browser \| bug \| building \| calculator \| calendar \| calendarBlank \| calendarDates \| calendarEmpty \| calendarHeart \| calendarMoney \| calendarStar \| camera \| candlesticks \| car \| card \| caret \| caretDown \| caretLeft \| caretRight \| caretUp \| cash \| cashAustralianDollar \| cashBrazilianReal \| cashBrazillianReal \| cashCanadianDollar \| cashCoins \| cashEUR \| cashGBP \| cashIndonesianRupiah \| cashJPY \| cashPhilippinePeso \| cashPolishZloty \| cashRupee \| cashSingaporeDollar \| cashSwissFranc \| cashThaiBaht \| cashTurkishLira \| cashUSD \| cashUaeDirham \| cashVietnameseDong \| chainLink \| chartBar \| chartCandles \| chartLine \| chartPie \| chartPieCircle \| chartVolume \| chatBotAgent \| chatBubble \| chatRequests \| checkboxChecked \| checkboxEmpty \| checkmark \| chess \| circleCheckmark \| circleCross \| circulatingSupply \| city \| clipboard \| clock \| clockOutline \| close \| closeCaption \| clothing \| cloud \| cloudPartial \| cloudProduct \| cluster \| coinbase \| coinbaseCardProduct \| coinbaseOne \| coinbaseOneCard \| coinbaseOneLogo \| coinbaseRewards \| coinsCrypto \| collapse \| collectibles \| collection \| comment \| commentPlus \| commerceProduct \| compass \| complianceProduct \| compose \| computerChip \| concierge \| conciergeBell \| config \| convert \| copy \| corporation \| creatorCoin \| cricket \| cross \| crossTrade \| crypto \| cryptobasics \| crystalBall \| crystalBallInsight \| currencies \| custodyProduct \| dashboard \| dataMarketplaceProduct \| dataStack \| defi \| delegateProduct \| deposit \| derivatives \| derivativesProduct \| derivativesProductNew \| developerAPIProduct \| developerPlatformProduct \| dex \| diagonalDownArrow \| diagonalRightArrow \| diagonalUpArrow \| diamond \| diamondIncentives \| dinnerPlate \| directDeposit \| directDepositIcon \| disabledPhone \| discordLogo \| distribution \| document \| documentation \| dot \| doubleChevronRight \| downArrow \| download \| drag \| drops \| earn \| earnProduct \| earnRewards \| earthquake \| educationBook \| educationPencil \| email \| endArrow \| entertainment \| ethereum \| eventContracts \| exchangeProduct \| exclamationMark \| expand \| expandAddress \| expandAll \| externalLink \| eye \| faceScan \| faces \| factory \| faucet \| fib \| filmStrip \| fingerprint \| flame \| folder \| folderArrow \| folderOpen \| followAdd \| following \| football \| fork \| forwardArrow \| fscsProtection \| gab \| games \| gaming \| gasFees \| gasFeesAlt \| gauge \| gaugeEmpty \| gaugeHigh \| gaugeHighLow \| gaugeHighMid \| gaugeLow \| gaugeLowHigh \| gaugeLowMid \| gaugeMedium \| gavel \| gear \| generalCharacter \| ghost \| gif \| giftBox \| giftCard \| gitHubLogo \| globe \| golf \| googleLogo \| greenEnergy \| grid \| group \| hamburger \| hammer \| heart \| helpCenterProduct \| helpCenterQuestionMark \| hiddenEye \| hockey \| home \| horizontalLine \| hospital \| hospitalCross \| hurricane \| ideal \| identityCard \| image \| info \| initiator \| instagramLogo \| instantUnstakingClock \| institute \| institutionalProduct \| interest \| invisible \| invoice \| keyboard \| laptop \| leadChart \| leadCoin \| learningRewardsProduct \| light \| lightbulb \| lightning \| lightningBolt \| lineChartCrypto \| list \| location \| lock \| login \| logout \| magnifyingGlass \| marketCap \| medal \| megaphone \| menu \| metaverse \| microphone \| microphoneCordless \| microscope \| mint \| minus \| mma \| moneyCardCoin \| moon \| more \| moreVertical \| motorsport \| music \| musicArticles \| needle \| newsFeed \| newsletter \| nft \| nftBuy \| nftOffer \| nftProduct \| nftSale \| noRocket \| noWifi \| nodeProduct \| oil \| options \| orderBook \| orderHistory \| outline \| pFPS \| paperAirplane \| paperclip \| participate \| participateProduct \| passKey \| passport \| pause \| pay \| payProduct \| paymentCard \| payments \| payouts \| paypal \| pencil \| peopleGroup \| peopleStar \| percentage \| perpetualSwap \| phone \| pieChartData \| pillBottle \| pillCapsule \| plane \| planet \| play \| playbutton \| plusMinus \| podiumStar \| politicsBuilding \| politicsCandidate \| politicsFlag \| politicsGavel \| politicsPodium \| politicsStar \| powerTool \| priceAlerts \| priceAlertsCheck \| primePoduct \| privateClientProduct \| proProduct \| profile \| protection \| pulse \| pyramid \| qrCode \| qrCodeAlt \| queryTransact \| questionMark \| quotation \| rain \| ratingsCheck \| ratingsChecks \| ratingsStar \| reCenter \| rectangle \| recurring \| refresh \| regulated \| regulatedFutures \| report \| rewardsProduct \| ribbon \| robot \| rocket \| rocketShip \| rollingSpot \| rosettaProduct \| rottenTomato \| royalty \| safe \| save \| savingsBank \| scanQrCode \| scienceAtom \| scienceBeaker \| scienceMoon \| securityKey \| securityShield \| seen \| sendReceive \| setPinCode \| settings \| share \| shield \| shieldOutline \| shoe \| shoppingCart \| signinProduct \| singleCoin \| singleNote \| singlecloud \| smartContract \| snow \| soccer \| socialChat \| socialReshare \| socialShare \| sofort \| sortDoubleArrow \| sortDown \| sortDownCenter \| sortUp \| sortUpCenter \| soundOff \| soundOn \| sparkle \| speaker \| speechBubble \| stableCoin \| stablecoinStack \| staggeredList \| stake \| staking \| star \| starAward \| starBubble \| starTrophy \| statusDot \| step0 \| step1 \| step2 \| step3 \| step4 \| step5 \| step6 \| step7 \| step8 \| step9 \| strategy \| sun \| support \| tag \| taxes \| taxesReceipt \| telephone \| tennis \| test \| thermometer \| thumbsDown \| thumbsDownOutline \| thumbsUp \| thumbsUpOutline \| tokenLaunchCoin \| tokenLaunchRocket \| tokenSales \| tornado \| trading \| transactions \| trashCan \| trophy \| trophyCup \| tshirt \| tv \| tvStand \| twitterLogo \| ultility \| umbrella \| undo \| unfollowPeople \| unknown \| unlock \| upArrow \| upload \| venturesProduct \| verifiedBadge \| verifiedPools \| verticalLine \| virus \| waasProduct \| wallet \| walletLogo \| walletProduct \| webhooks \| wellness \| wifi \| wind \| wireTransfer \| withdraw \| wrapToken \| xLogo` | No | `-` | Icon to render at the start of the tag. |
|
|
392
|
+
| `startIconActive` | `boolean` | No | `-` | Whether the start icon is active |
|
|
344
393
|
| `style` | `CSSProperties` | No | `-` | - |
|
|
345
394
|
| `testID` | `string` | No | `-` | Used to locate this element in unit and end-to-end tests. Under the hood, testID translates to data-testid on Web. On Mobile, testID stays the same - testID |
|
|
346
395
|
| `textAlign` | `ResponsiveProp<center \| start \| end \| justify>` | No | `-` | - |
|