# AreaChart A chart component that displays data as filled areas beneath lines. Ideal for showing cumulative values, stacked data, or emphasizing volume over time. ## Import ```tsx import { AreaChart } from '@coinbase/cds-web-visualization' ``` ## Examples AreaChart is a cartesian chart variant that allows for easy visualization of stacked data. ### Basic Example ```jsx live ``` ### Simple ```jsx live ``` ### Stacking You can use the `stacked` prop to stack all areas on top of each other. You can also use the `stackId` prop on a series to create different stack groups. See [CartesianChart](/components/graphs/CartesianChart/#series-stacks) for more details. ```jsx live } type="dotted" /> ``` ### Negative Values When an area chart contains negative values, the baseline automatically adjusts to zero instead of the bottom of the chart. The area fills from the data line to the zero baseline, properly showing both positive and negative regions. ```jsx live } showLines showYAxis yAxis={{ showGrid: true, }} /> ``` ### Area Styles You can have different area styles for each series. ```jsx live ``` ## Props | Prop | Type | Required | Default | Description | | --- | --- | --- | --- | --- | | `AreaComponent` | `AreaComponent` | No | `-` | Component to render the area. Takes precedence over the type prop if provided. | | `LineComponent` | `LineComponent` | No | `-` | Component to render the line. Takes precedence over the type prop if provided. | | `accentHeight` | `string \| number` | No | `-` | - | | `accumulate` | `none \| sum` | No | `-` | - | | `additive` | `sum \| replace` | No | `-` | - | | `alignContent` | `ResponsiveProp
` | No | `-` | - | | `alignItems` | `ResponsiveProp
` | No | `-` | - | | `alignSelf` | `ResponsiveProp
` | No | `-` | - | | `alignmentBaseline` | `alphabetic \| hanging \| ideographic \| mathematical \| inherit \| auto \| baseline \| before-edge \| text-before-edge \| middle \| central \| after-edge \| text-after-edge` | No | `-` | - | | `allowReorder` | `no \| yes` | No | `-` | - | | `alphabetic` | `string \| number` | No | `-` | - | | `amplitude` | `string \| number` | No | `-` | - | | `animate` | `boolean` | No | `true` | Whether to animate the chart. | | `arabicForm` | `initial \| medial \| terminal \| isolated` | No | `-` | - | | `as` | `svg` | No | `-` | - | | `ascent` | `string \| number` | No | `-` | - | | `aspectRatio` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - | | `attributeName` | `string` | No | `-` | - | | `attributeType` | `string` | No | `-` | - | | `autoReverse` | `false \| true \| true \| false` | No | `-` | - | | `azimuth` | `string \| number` | No | `-` | - | | `background` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - | | `baseFrequency` | `string \| number` | No | `-` | - | | `baseProfile` | `string \| number` | No | `-` | - | | `baselineShift` | `string \| number` | No | `-` | - | | `bbox` | `string \| number` | No | `-` | - | | `begin` | `string \| number` | No | `-` | - | | `bias` | `string \| number` | No | `-` | - | | `borderBottomLeftRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - | | `borderBottomRightRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - | | `borderBottomWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - | | `borderColor` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - | | `borderEndWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - | | `borderRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - | | `borderStartWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - | | `borderTopLeftRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - | | `borderTopRightRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - | | `borderTopWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - | | `borderWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - | | `bordered` | `boolean` | No | `-` | Add a border around all sides of the box. | | `borderedBottom` | `boolean` | No | `-` | Add a border to the bottom side of the box. | | `borderedEnd` | `boolean` | No | `-` | Add a border to the trailing side of the box. | | `borderedHorizontal` | `boolean` | No | `-` | Add a border to the leading and trailing sides of the box. | | `borderedStart` | `boolean` | No | `-` | Add a border to the leading side of the box. | | `borderedTop` | `boolean` | No | `-` | Add a border to the top side of the box. | | `borderedVertical` | `boolean` | No | `-` | Add a border to the top and bottom sides of the box. | | `bottom` | `ResponsiveProp>` | No | `-` | - | | `by` | `string \| number` | No | `-` | - | | `calcMode` | `string \| number` | No | `-` | - | | `capHeight` | `string \| number` | No | `-` | - | | `className` | `string` | No | `-` | - | | `clip` | `string \| number` | No | `-` | - | | `clipPath` | `string` | No | `-` | - | | `clipPathUnits` | `string \| number` | No | `-` | - | | `clipRule` | `string \| number` | No | `-` | - | | `color` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - | | `colorInterpolation` | `string \| number` | No | `-` | - | | `colorInterpolationFilters` | `inherit \| auto \| sRGB \| linearRGB` | No | `-` | - | | `colorProfile` | `string \| number` | No | `-` | - | | `colorRendering` | `string \| number` | No | `-` | - | | `columnGap` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - | | `contentScriptType` | `string \| number` | No | `-` | - | | `contentStyleType` | `string \| number` | No | `-` | - | | `crossOrigin` | ` \| anonymous \| use-credentials` | No | `-` | - | | `cursor` | `string \| number` | No | `-` | - | | `curve` | `bump \| catmullRom \| linear \| linearClosed \| monotone \| natural \| step \| stepBefore \| stepAfter` | No | `'linear'` | The curve interpolation method to use for the line. | | `cx` | `string \| number` | No | `-` | - | | `cy` | `string \| number` | No | `-` | - | | `d` | `string` | No | `-` | - | | `dangerouslySetBackground` | `string` | No | `-` | - | | `decelerate` | `string \| number` | No | `-` | - | | `descent` | `string \| number` | No | `-` | - | | `diffuseConstant` | `string \| number` | No | `-` | - | | `direction` | `string \| number` | No | `-` | - | | `display` | `ResponsiveProp` | No | `-` | - | | `divisor` | `string \| number` | No | `-` | - | | `dominantBaseline` | `string \| number` | No | `-` | - | | `dur` | `string \| number` | No | `-` | - | | `dx` | `string \| number` | No | `-` | - | | `dy` | `string \| number` | No | `-` | - | | `edgeMode` | `string \| number` | No | `-` | - | | `elevation` | `0 \| 1 \| 2` | No | `-` | - | | `enableBackground` | `string \| number` | No | `-` | - | | `enableScrubbing` | `boolean` | No | `-` | Enables scrubbing interactions. When true, allows scrubbing and makes scrubber components interactive. | | `end` | `string \| number` | No | `-` | - | | `exponent` | `string \| number` | No | `-` | - | | `externalResourcesRequired` | `false \| true \| true \| false` | No | `-` | - | | `fill` | `string` | No | `-` | - | | `fillOpacity` | `number` | No | `-` | - | | `fillRule` | `inherit \| nonzero \| evenodd` | No | `-` | - | | `filter` | `string` | No | `-` | - | | `filterRes` | `string \| number` | No | `-` | - | | `filterUnits` | `string \| number` | No | `-` | - | | `flexBasis` | `ResponsiveProp>` | No | `-` | - | | `flexDirection` | `ResponsiveProp` | No | `-` | - | | `flexGrow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - | | `flexShrink` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - | | `flexWrap` | `ResponsiveProp` | No | `-` | - | | `floodColor` | `string \| number` | No | `-` | - | | `floodOpacity` | `string \| number` | No | `-` | - | | `focusable` | `auto \| Booleanish` | No | `-` | - | | `font` | `ResponsiveProp` | No | `-` | - | | `fontFamily` | `ResponsiveProp` | No | `-` | - | | `fontSize` | `ResponsiveProp` | No | `-` | - | | `fontSizeAdjust` | `string \| number` | No | `-` | - | | `fontStretch` | `string \| number` | No | `-` | - | | `fontStyle` | `string \| number` | No | `-` | - | | `fontVariant` | `string \| number` | No | `-` | - | | `fontWeight` | `ResponsiveProp` | No | `-` | - | | `format` | `string \| number` | No | `-` | - | | `fr` | `string \| number` | No | `-` | - | | `from` | `string \| number` | No | `-` | - | | `fx` | `string \| number` | No | `-` | - | | `fy` | `string \| number` | No | `-` | - | | `g1` | `string \| number` | No | `-` | - | | `g2` | `string \| number` | No | `-` | - | | `gap` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - | | `glyphName` | `string \| number` | No | `-` | - | | `glyphOrientationHorizontal` | `string \| number` | No | `-` | - | | `glyphOrientationVertical` | `string \| number` | No | `-` | - | | `glyphRef` | `string \| number` | No | `-` | - | | `gradientTransform` | `string` | No | `-` | - | | `gradientUnits` | `string` | No | `-` | - | | `grid` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - | | `gridArea` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - | | `gridAutoColumns` | `ResponsiveProp>` | No | `-` | - | | `gridAutoFlow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| row \| column \| dense` | No | `-` | - | | `gridAutoRows` | `ResponsiveProp>` | No | `-` | - | | `gridColumn` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - | | `gridColumnEnd` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - | | `gridColumnStart` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - | | `gridRow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - | | `gridRowEnd` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - | | `gridRowStart` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - | | `gridTemplate` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - | | `gridTemplateAreas` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - | | `gridTemplateColumns` | `ResponsiveProp>` | No | `-` | - | | `gridTemplateRows` | `ResponsiveProp>` | No | `-` | - | | `hanging` | `string \| number` | No | `-` | - | | `height` | `ResponsiveProp>` | No | `-` | - | | `horizAdvX` | `string \| number` | No | `-` | - | | `horizOriginX` | `string \| number` | No | `-` | - | | `href` | `string` | No | `-` | - | | `id` | `string` | No | `-` | - | | `ideographic` | `string \| number` | No | `-` | - | | `imageRendering` | `string \| number` | No | `-` | - | | `in` | `string` | No | `-` | - | | `in2` | `string \| number` | No | `-` | - | | `inset` | `number \| Partial` | No | `-` | Inset around the entire chart (outside the axes). | | `intercept` | `string \| number` | No | `-` | - | | `justifyContent` | `ResponsiveProp` | No | `-` | - | | `k` | `string \| number` | No | `-` | - | | `k1` | `string \| number` | No | `-` | - | | `k2` | `string \| number` | No | `-` | - | | `k3` | `string \| number` | No | `-` | - | | `k4` | `string \| number` | No | `-` | - | | `kernelMatrix` | `string \| number` | No | `-` | - | | `kernelUnitLength` | `string \| number` | No | `-` | - | | `kerning` | `string \| number` | No | `-` | - | | `key` | `Key \| null` | No | `-` | - | | `keyPoints` | `string \| number` | No | `-` | - | | `keySplines` | `string \| number` | No | `-` | - | | `keyTimes` | `string \| number` | No | `-` | - | | `lang` | `string` | No | `-` | - | | `left` | `ResponsiveProp>` | No | `-` | - | | `lengthAdjust` | `string \| number` | No | `-` | - | | `letterSpacing` | `string \| number` | No | `-` | - | | `lightingColor` | `string \| number` | No | `-` | - | | `limitingConeAngle` | `string \| number` | No | `-` | - | | `lineHeight` | `ResponsiveProp` | No | `-` | - | | `lineType` | `dotted \| solid \| gradient` | No | `'solid'` | The type of line to render. | | `local` | `string \| number` | No | `-` | - | | `margin` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - | | `marginBottom` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - | | `marginEnd` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - | | `marginStart` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - | | `marginTop` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - | | `marginX` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - | | `marginY` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - | | `markerEnd` | `string` | No | `-` | - | | `markerHeight` | `string \| number` | No | `-` | - | | `markerMid` | `string` | No | `-` | - | | `markerStart` | `string` | No | `-` | - | | `markerUnits` | `string \| number` | No | `-` | - | | `markerWidth` | `string \| number` | No | `-` | - | | `mask` | `string` | No | `-` | - | | `maskContentUnits` | `string \| number` | No | `-` | - | | `maskUnits` | `string \| number` | No | `-` | - | | `mathematical` | `string \| number` | No | `-` | - | | `max` | `string \| number` | No | `-` | - | | `maxHeight` | `ResponsiveProp>` | No | `-` | - | | `maxWidth` | `ResponsiveProp>` | No | `-` | - | | `media` | `string` | No | `-` | - | | `method` | `string` | No | `-` | - | | `min` | `string \| number` | No | `-` | - | | `minHeight` | `ResponsiveProp>` | No | `-` | - | | `minWidth` | `ResponsiveProp>` | No | `-` | - | | `mode` | `string \| number` | No | `-` | - | | `name` | `string` | No | `-` | - | | `numOctaves` | `string \| number` | No | `-` | - | | `offset` | `string \| number` | No | `-` | - | | `onChange` | `FormEventHandler` | No | `-` | - | | `onScrubberPositionChange` | `((index: number) => void) \| undefined` | No | `-` | Callback fired when the scrubber position changes. Receives the dataIndex of the scrubber or undefined when not scrubbing. | | `opacity` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - | | `operator` | `string \| number` | No | `-` | - | | `order` | `string \| number` | No | `-` | - | | `orient` | `string \| number` | No | `-` | - | | `orientation` | `string \| number` | No | `-` | - | | `origin` | `string \| number` | No | `-` | - | | `overflow` | `ResponsiveProp