diff --git a/packages/common/CHANGELOG.md b/packages/common/CHANGELOG.md index 450a8e9e61..4f5001012e 100644 --- a/packages/common/CHANGELOG.md +++ b/packages/common/CHANGELOG.md @@ -8,6 +8,10 @@ All notable changes to this project will be documented in this file. +## 9.5.0 ((6/24/2026, 01:54 PM PST)) + +This is an artificial version bump with no new change. + ## 9.4.3 ((6/23/2026, 10:18 AM PST)) This is an artificial version bump with no new change. diff --git a/packages/common/package.json b/packages/common/package.json index 4e52ea5980..0c76113174 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@coinbase/cds-common", - "version": "9.4.3", + "version": "9.5.0", "description": "Coinbase Design System - Common", "repository": { "type": "git", diff --git a/packages/mcp-server/CHANGELOG.md b/packages/mcp-server/CHANGELOG.md index 9344f5170c..e129469087 100644 --- a/packages/mcp-server/CHANGELOG.md +++ b/packages/mcp-server/CHANGELOG.md @@ -8,6 +8,10 @@ All notable changes to this project will be documented in this file. +## 9.5.0 ((6/24/2026, 01:54 PM PST)) + +This is an artificial version bump with no new change. + ## 9.4.3 ((6/23/2026, 10:18 AM PST)) This is an artificial version bump with no new change. diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index b1504d9a30..0552bd46f0 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "@coinbase/cds-mcp-server", - "version": "9.4.3", + "version": "9.5.0", "description": "Coinbase Design System - MCP Server", "repository": { "type": "git", diff --git a/packages/mobile/CHANGELOG.md b/packages/mobile/CHANGELOG.md index 53c2ef2c7b..c1af6ecc10 100644 --- a/packages/mobile/CHANGELOG.md +++ b/packages/mobile/CHANGELOG.md @@ -8,6 +8,12 @@ All notable changes to this project will be documented in this file. +## 9.5.0 (6/24/2026 PST) + +#### 🚀 Updates + +- Feat: allow animated stroke and text background. [[#771](https://github.com/coinbase/cds/pull/771)] + ## 9.4.3 (6/23/2026 PST) #### 🐞 Fixes diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 4a22469747..5907c96681 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@coinbase/cds-mobile", - "version": "9.4.3", + "version": "9.5.0", "description": "Coinbase Design System - Mobile", "repository": { "type": "git", diff --git a/packages/mobile/src/visualizations/chart/Path.tsx b/packages/mobile/src/visualizations/chart/Path.tsx index 4fd78a16a2..30449562a2 100644 --- a/packages/mobile/src/visualizations/chart/Path.tsx +++ b/packages/mobile/src/visualizations/chart/Path.tsx @@ -42,7 +42,7 @@ export type PathBaseProps = { * When provided, will render a fill with the given color. * If not provided, will not render a fill. */ - fill?: string; + fill?: AnimatedProp; /** * Opacity for the path fill. */ @@ -52,7 +52,7 @@ export type PathBaseProps = { * When provided, will render a fill with the given color. * If not provided, will not render a fill. */ - stroke?: string; + stroke?: AnimatedProp; /** * Opacity for the path stroke. */ diff --git a/packages/mobile/src/visualizations/chart/line/Line.tsx b/packages/mobile/src/visualizations/chart/line/Line.tsx index 08eb064e54..f86deac0f6 100644 --- a/packages/mobile/src/visualizations/chart/line/Line.tsx +++ b/packages/mobile/src/visualizations/chart/line/Line.tsx @@ -82,7 +82,7 @@ export type LineBaseProps = { * The color of the line. * @default color of the series or theme.color.fgPrimary */ - stroke?: string; + stroke?: AnimatedProp; /** * Opacity of the line * @note when combined with gradient, both will be applied diff --git a/packages/mobile/src/visualizations/chart/line/ReferenceLine.tsx b/packages/mobile/src/visualizations/chart/line/ReferenceLine.tsx index d985f496f3..1fd329ee36 100644 --- a/packages/mobile/src/visualizations/chart/line/ReferenceLine.tsx +++ b/packages/mobile/src/visualizations/chart/line/ReferenceLine.tsx @@ -109,7 +109,7 @@ export type ReferenceLineBaseProps = { * The color of the line. * @default theme.color.bgLine */ - stroke?: string; + stroke?: AnimatedProp; /** * Opacity applied to both the line and label. * @default 1 diff --git a/packages/mobile/src/visualizations/chart/point/Point.tsx b/packages/mobile/src/visualizations/chart/point/Point.tsx index c75ba4b7cb..d6cf49d398 100644 --- a/packages/mobile/src/visualizations/chart/point/Point.tsx +++ b/packages/mobile/src/visualizations/chart/point/Point.tsx @@ -1,7 +1,7 @@ import { type ComponentType, memo, useEffect, useMemo } from 'react'; import { cancelAnimation, useDerivedValue, useSharedValue } from 'react-native-reanimated'; import { usePreviousValue } from '@coinbase/cds-common/hooks/usePreviousValue'; -import { Circle, type Color, Group, interpolateColors } from '@shopify/react-native-skia'; +import { type AnimatedProp, Circle, Group, interpolateColors } from '@shopify/react-native-skia'; import { useTheme } from '../../../hooks/useTheme'; import { useCartesianChartContext } from '../ChartProvider'; @@ -30,7 +30,7 @@ export type PointBaseProps = { * The fill color of the point. * @default theme.color.fgPrimary */ - fill?: string; + fill?: AnimatedProp; /** * Optional Y-axis id to specify which axis to plot along. * @default first y-axis defined in chart props. @@ -56,7 +56,7 @@ export type PointBaseProps = { * Color of the outer stroke around the point. * @default theme.color.bg */ - stroke?: string; + stroke?: AnimatedProp; /** * Outer stroke width of the point. * Set to 0 to remove the stroke. @@ -111,7 +111,7 @@ export type PointLabelProps = { /** * Fill color for the point. */ - fill: string; + fill: AnimatedProp; /** * Position of the label relative to the point. * @default 'center' @@ -285,10 +285,11 @@ export const Point = memo( // Interpolate between previous and current fill color const animatedFillColor = useDerivedValue(() => { - if (!previousFill || previousFill === fill) { - return fill; + if (typeof fill !== 'string') return fill.value; + if (typeof previousFill === 'string' && previousFill && previousFill !== fill) { + return interpolateColors(colorProgress.value, [0, 1], [previousFill, fill]); } - return interpolateColors(colorProgress.value, [0, 1], [previousFill, fill]); + return fill; }, [colorProgress, previousFill, fill]); const isWithinDrawingArea = useMemo(() => { @@ -327,14 +328,14 @@ export const Point = memo( {strokeWidth > 0 && ( )} {/* Inner fill circle */} @@ -359,7 +360,7 @@ export const Point = memo( return ( {strokeWidth > 0 && ( - + )} {label && ( diff --git a/packages/mobile/src/visualizations/chart/text/ChartText.tsx b/packages/mobile/src/visualizations/chart/text/ChartText.tsx index 4477722b3a..6870012809 100644 --- a/packages/mobile/src/visualizations/chart/text/ChartText.tsx +++ b/packages/mobile/src/visualizations/chart/text/ChartText.tsx @@ -4,7 +4,6 @@ import type { ThemeVars } from '@coinbase/cds-common/core/theme'; import type { Rect } from '@coinbase/cds-common/types/Rect'; import { type AnimatedProp, - type Color, FontSlant, FontWeight, Group, @@ -73,7 +72,7 @@ export type ChartTextBaseProps = { * The background color of the text's background rectangle. * @default theme.color.bgElevation1 if elevated, otherwise 'transparent' */ - background?: string; + background?: AnimatedProp; /** * Whether the text's background should have an elevated appearance with a shadow. */ @@ -487,7 +486,7 @@ export const ChartText = memo( }> {background !== 'transparent' && ( +## 9.5.0 ((6/24/2026, 01:54 PM PST)) + +This is an artificial version bump with no new change. + ## 9.4.3 (6/23/2026 PST) #### 🐞 Fixes diff --git a/packages/web/package.json b/packages/web/package.json index 713d51301a..7b694548c0 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@coinbase/cds-web", - "version": "9.4.3", + "version": "9.5.0", "description": "Coinbase Design System - Web", "repository": { "type": "git",