apexcharts
Version:
A JavaScript Chart Library
912 lines (788 loc) • 23.4 kB
CSS
@keyframes opaque {
0% {
opacity: 0
}
to {
opacity: 1
}
}
@keyframes resizeanim {
0%,
to {
opacity: 0
}
}
.apexcharts-canvas {
position: relative;
direction: ltr ;
user-select: none;
/* Focus indicator colour. Themes override below. */
--apexcharts-focus-color: #008FFB;
}
/* Dark theme & high-contrast: brighter focus colour for sufficient contrast. */
.apexcharts-canvas .apexcharts-theme-dark,
.apexcharts-theme-dark.apexcharts-canvas {
--apexcharts-focus-color: #FFD500;
}
.apexcharts-canvas.apexcharts-high-contrast,
.apexcharts-high-contrast.apexcharts-canvas {
--apexcharts-focus-color: #FFFF00;
}
/* Visually-hidden aria-live status region (WCAG 4.1.3 Status Messages). */
.apexcharts-sr-status {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Respect OS-level reduced-motion preference (WCAG 2.3.3). */
@media (prefers-reduced-motion: reduce) {
.apexcharts-canvas *,
.apexcharts-canvas *::before,
.apexcharts-canvas *::after {
animation-duration: 0.01ms ;
animation-iteration-count: 1 ;
transition-duration: 0.01ms ;
}
}
.apexcharts-canvas ::-webkit-scrollbar {
-webkit-appearance: none;
width: 6px
}
.apexcharts-canvas ::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: rgba(0, 0, 0, .5);
box-shadow: 0 0 1px rgba(255, 255, 255, .5);
-webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5)
}
.apexcharts-inner {
position: relative
}
.apexcharts-text tspan {
font-family: inherit
}
rect.legend-mouseover-inactive,
.legend-mouseover-inactive rect,
.legend-mouseover-inactive path,
.legend-mouseover-inactive circle,
.legend-mouseover-inactive line,
.legend-mouseover-inactive text.apexcharts-yaxis-title-text,
.legend-mouseover-inactive text.apexcharts-yaxis-label {
transition: .15s ease all;
opacity: .2
}
.apexcharts-legend-text {
padding-left: 15px;
margin-left: -15px;
}
.apexcharts-legend-series[role="button"]:focus {
outline: 2px solid var(--apexcharts-focus-color, #008FFB);
outline-offset: 2px;
}
.apexcharts-legend-series[role="button"]:focus:not(:focus-visible) {
outline: none;
}
.apexcharts-legend-series[role="button"]:focus-visible {
outline: 2px solid var(--apexcharts-focus-color, #008FFB);
outline-offset: 2px;
}
.apexcharts-series-collapsed {
opacity: 0
}
.apexcharts-canvas svg:focus:not(:focus-visible) {
outline: none;
}
/* Keyboard navigation focus indicator on SVG data elements.
SVG elements don't support CSS outline, so we use stroke. */
.apexcharts-bar-area.apexcharts-keyboard-focused,
.apexcharts-candlestick-area.apexcharts-keyboard-focused,
.apexcharts-boxPlot-area.apexcharts-keyboard-focused,
.apexcharts-rangebar-area.apexcharts-keyboard-focused,
.apexcharts-pie-area.apexcharts-keyboard-focused,
.apexcharts-heatmap-rect.apexcharts-keyboard-focused,
.apexcharts-treemap-rect.apexcharts-keyboard-focused {
stroke: var(--apexcharts-focus-color, #008FFB);
stroke-width: 2;
stroke-opacity: 1;
}
.apexcharts-tooltip {
--apx-tt-bg: #ffffff;
--apx-tt-border: rgba(15, 23, 42, 0.06);
/* Layered shadow: tight inner contact + soft outer drop. The two Y
* offsets are exposed as variables so they flip in sync with the
* arrow when the tooltip is below the data point — see the
* `[data-placement="bottom"]` rule further down. */
--apx-tt-shadow-y-mid: 8px;
--apx-tt-shadow-y-far: 16px;
--apx-tt-shadow: 0 0 0 1px rgba(15, 23, 42, 0.04), 0 var(--apx-tt-shadow-y-mid) 16px -6px rgba(15, 23, 42, 0.12), 0 var(--apx-tt-shadow-y-far) 36px -12px rgba(15, 23, 42, 0.18);
--apx-tt-arrow-bg: var(--apx-tt-bg);
/* Two stacked drop-shadows: the first is a tight contact halo for
* edge definition against light chart backgrounds; the second is a
* softer directional drop that lifts the arrow off the surface.
* `--apx-tt-arrow-drop-y` is the Y offset of the directional drop;
* a per-placement rule below flips it to negative when the tooltip
* is below the data point (arrow on top) so the shadow always
* casts outward instead of into the tooltip body. */
--apx-tt-arrow-drop-y: 2px;
--apx-tt-arrow-shadow: drop-shadow(0 0 0.5px rgba(15, 23, 42, 0.2)) drop-shadow(0 var(--apx-tt-arrow-drop-y) 4px rgba(15, 23, 42, 0.2));
--apx-tt-color: #0f172a;
--apx-tt-color-muted: rgba(15, 23, 42, 0.55);
border-radius: 8px;
background: var(--apx-tt-bg);
border: 1px solid var(--apx-tt-border);
box-shadow: var(--apx-tt-shadow);
color: var(--apx-tt-color);
cursor: default;
font-size: 13px;
left: 0;
top: 0;
opacity: 0;
pointer-events: none;
position: absolute;
display: flex;
flex-direction: column;
padding: 2px 0;
white-space: nowrap;
z-index: 12;
transition: opacity .12s ease
}
/* While the tooltip is visible, smoothly animate position changes
* between data points. Kept short (160 ms) and ease-out so it stays
* responsive — too long would feel laggy when sweeping across many
* points fast. The position transition is only attached after the
* first paint (Position.applyTooltipPosition flips `data-positioned`
* once the tooltip has been placed) so the *first* show doesn't slide
* the tooltip in from the previously-stale (0,0) coordinates. */
.apexcharts-tooltip.apexcharts-active {
opacity: 1;
transition: opacity .12s ease
}
.apexcharts-tooltip.apexcharts-active[data-positioned="true"] {
transition: opacity .12s ease, left .16s ease-out, top .16s ease-out
}
.apexcharts-tooltip.apexcharts-theme-light {
/* defaults already set above; class kept for backward-compat selectors */
}
.apexcharts-tooltip.apexcharts-theme-dark {
--apx-tt-bg: #1c1c1f;
--apx-tt-border: rgba(255, 255, 255, 0.08);
--apx-tt-shadow: 0 0 0 1px rgba(0, 0, 0, 0.4), 0 var(--apx-tt-shadow-y-mid) 16px -6px rgba(0, 0, 0, 0.45), 0 var(--apx-tt-shadow-y-far) 36px -12px rgba(0, 0, 0, 0.55);
--apx-tt-arrow-shadow: drop-shadow(0 0 0.5px rgba(0, 0, 0, 0.55)) drop-shadow(0 var(--apx-tt-arrow-drop-y) 4px rgba(0, 0, 0, 0.45));
--apx-tt-color: #f3f4f6;
--apx-tt-color-muted: rgba(243, 244, 246, 0.55);
}
.apexcharts-tooltip * {
font-family: inherit
}
.apexcharts-tooltip-title {
padding: 8px 12px 4px;
font-size: 12px;
font-weight: 600;
letter-spacing: 0.01em;
color: var(--apx-tt-color-muted);
background: transparent;
border-bottom: none;
margin-bottom: 0
}
.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
background: transparent;
border-bottom: none
}
/* `fillSeriesColor`: each series-group already paints itself with the
* series colour. Drop the glass body entirely (transparent bg, no
* border, no backdrop-filter, no padding) and clip the coloured
* series-group(s) to the tooltip's rounded corners so they fill the
* shell edge-to-edge. Text inside the coloured group is forced to
* white for contrast. */
.apexcharts-tooltip.apexcharts-tooltip-fill-series {
background: transparent;
-webkit-backdrop-filter: none;
backdrop-filter: none;
border: none;
padding: 0;
overflow: hidden;
color: #fff
}
.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-title {
background: rgba(0, 0, 0, 0.22);
color: #fff;
opacity: 1;
padding: 6px 12px
}
.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-series-group {
color: #fff
}
/* Arrow connector — sits *entirely outside* the tooltip body. Shares
* the body's solid fill so it reads as a single shape. `filter:
* drop-shadow` traces the clipped triangle outline (a regular
* `box-shadow` would be erased by the `clip-path`). */
.apexcharts-tooltip-arrow {
position: absolute;
width: 7px;
height: 14px;
background: var(--apx-tt-arrow-bg);
/* The variable already contains the full `drop-shadow(...) ...` filter
* chain (stacked shadows) so it's applied raw. */
-webkit-filter: var(--apx-tt-arrow-shadow);
filter: var(--apx-tt-arrow-shadow);
pointer-events: none;
top: calc(var(--apx-tt-arrow-y, 50%) - 7px)
}
.apexcharts-tooltip[data-placement="right"] .apexcharts-tooltip-arrow {
left: -7px;
clip-path: polygon(0 50%, 100% 0, 100% 100%)
}
.apexcharts-tooltip[data-placement="left"] .apexcharts-tooltip-arrow {
right: -7px;
clip-path: polygon(100% 50%, 0 0, 0 100%)
}
/* Vertical arrow variants: tooltip is above/below the data point and the
* arrow points down/up. The base rule above uses `--apx-tt-arrow-y` for
* left/right placement; for top/bottom we re-orient the rectangle and
* use `--apx-tt-arrow-x` (set by applyTooltipPosition). */
.apexcharts-tooltip[data-placement="top"] .apexcharts-tooltip-arrow,
.apexcharts-tooltip[data-placement="bottom"] .apexcharts-tooltip-arrow {
width: 14px;
height: 7px;
top: auto;
left: calc(var(--apx-tt-arrow-x, 50%) - 7px)
}
.apexcharts-tooltip[data-placement="top"] .apexcharts-tooltip-arrow {
bottom: -7px;
clip-path: polygon(50% 100%, 0 0, 100% 0)
}
.apexcharts-tooltip[data-placement="bottom"] .apexcharts-tooltip-arrow {
top: -7px;
clip-path: polygon(50% 0, 0 100%, 100% 100%)
}
/* When the tooltip is flipped below the data point (arrow on top
* pointing up), the default downward-biased shadows leave the top
* edge of both the body *and* the arrow undefined. Flipping every
* Y offset to negative casts the entire elevation upward so the
* shadow falls between the tooltip and the bar above. */
.apexcharts-tooltip[data-placement="bottom"] {
--apx-tt-shadow-y-mid: -8px;
--apx-tt-shadow-y-far: -16px;
--apx-tt-arrow-drop-y: -2px
}
.apexcharts-tooltip-text-goals-value,
.apexcharts-tooltip-text-y-value,
.apexcharts-tooltip-text-z-value {
display: inline-block;
margin-left: 5px;
font-weight: 600
}
.apexcharts-tooltip-text-goals-label:empty,
.apexcharts-tooltip-text-goals-value:empty,
.apexcharts-tooltip-text-y-label:empty,
.apexcharts-tooltip-text-y-value:empty,
.apexcharts-tooltip-text-z-value:empty,
.apexcharts-tooltip-title:empty {
display: none
}
.apexcharts-tooltip-text-goals-label,
.apexcharts-tooltip-text-goals-value {
padding: 6px 0 5px
}
.apexcharts-tooltip-goals-group,
.apexcharts-tooltip-text-goals-label,
.apexcharts-tooltip-text-goals-value {
display: flex
}
.apexcharts-tooltip-text-goals-label:not(:empty),
.apexcharts-tooltip-text-goals-value:not(:empty) {
margin-top: -6px
}
.apexcharts-tooltip-marker {
display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
width: 12px;
height: 12px;
margin-right: 6px;
vertical-align: middle;
color: inherit;
}
.apexcharts-tooltip-marker svg {
width: 100%;
height: 100%;
display: block;
}
.apexcharts-tooltip-series-group {
padding: 4px 12px;
display: none;
gap: 8px;
text-align: left;
justify-content: left;
align-items: center
}
.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {
opacity: 1
}
.apexcharts-tooltip-series-group.apexcharts-active:last-child,
.apexcharts-tooltip-series-group:last-child {
padding-bottom: 8px
}
.apexcharts-tooltip-y-group {
padding: 6px 0 5px
}
.apexcharts-custom-tooltip,
.apexcharts-tooltip-box {
padding: 4px 8px
}
.apexcharts-tooltip-boxPlot {
display: flex;
flex-direction: column-reverse
}
.apexcharts-tooltip-box>div {
margin: 4px 0
}
.apexcharts-tooltip-box span.value {
font-weight: 700
}
.apexcharts-tooltip-rangebar {
padding: 5px 8px
}
.apexcharts-tooltip-rangebar .category {
font-weight: 600;
color: #777
}
.apexcharts-tooltip-rangebar .series-name {
font-weight: 700;
display: block;
margin-bottom: 5px
}
/* X/Y axis tooltips — small popovers that label the crosshair on the
* axes. Restyled to match the modern data-tooltip palette: solid white
* body with a subtle border + soft drop-shadow, smaller font, rounded
* corners. The arrows still use the CSS border-triangle technique
* (cheap, crisp at small sizes); their colours flow from CSS variables
* so light/dark themes only need one override per axis. */
.apexcharts-xaxistooltip,
.apexcharts-yaxistooltip {
--apx-axt-bg: #ffffff;
--apx-axt-border: rgba(15, 23, 42, 0.08);
--apx-axt-color: #0f172a;
--apx-axt-shadow: 0 4px 12px -4px rgba(15, 23, 42, 0.18), 0 1px 3px -1px rgba(15, 23, 42, 0.12);
opacity: 0;
pointer-events: none;
color: var(--apx-axt-color);
font-size: 12px;
font-weight: 500;
text-align: center;
border-radius: 6px;
position: absolute;
z-index: 10;
background: var(--apx-axt-bg);
border: 1px solid var(--apx-axt-border);
box-shadow: var(--apx-axt-shadow)
}
.apexcharts-xaxistooltip.apexcharts-theme-dark,
.apexcharts-yaxistooltip.apexcharts-theme-dark {
--apx-axt-bg: #1c1c1f;
--apx-axt-border: rgba(255, 255, 255, 0.1);
--apx-axt-color: #f3f4f6;
--apx-axt-shadow: 0 4px 12px -4px rgba(0, 0, 0, 0.55), 0 1px 3px -1px rgba(0, 0, 0, 0.45)
}
.apexcharts-xaxistooltip {
padding: 4px 8px;
transition: .15s ease all
}
.apexcharts-xaxistooltip:after,
.apexcharts-xaxistooltip:before {
left: 50%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none
}
/* :before paints the 1px border outline of the triangle (slightly larger
* than :after); :after sits inside and paints the fill — leaves a 1px
* ring of :before visible at the edges. */
.apexcharts-xaxistooltip:after {
border-color: transparent;
border-width: 5px;
margin-left: -5px
}
.apexcharts-xaxistooltip:before {
border-color: transparent;
border-width: 6px;
margin-left: -6px
}
.apexcharts-xaxistooltip-bottom:after,
.apexcharts-xaxistooltip-bottom:before {
bottom: 100%
}
.apexcharts-xaxistooltip-top:after,
.apexcharts-xaxistooltip-top:before {
top: 100%
}
.apexcharts-xaxistooltip-bottom:after {
border-bottom-color: var(--apx-axt-bg)
}
.apexcharts-xaxistooltip-bottom:before {
border-bottom-color: var(--apx-axt-border)
}
.apexcharts-xaxistooltip-top:after {
border-top-color: var(--apx-axt-bg)
}
.apexcharts-xaxistooltip-top:before {
border-top-color: var(--apx-axt-border)
}
.apexcharts-xaxistooltip.apexcharts-active {
opacity: 1;
transition: .15s ease all
}
.apexcharts-yaxistooltip {
padding: 3px 8px
}
.apexcharts-yaxistooltip:after,
.apexcharts-yaxistooltip:before {
top: 50%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none
}
.apexcharts-yaxistooltip:after {
border-color: transparent;
border-width: 5px;
margin-top: -5px
}
.apexcharts-yaxistooltip:before {
border-color: transparent;
border-width: 6px;
margin-top: -6px
}
.apexcharts-yaxistooltip-left:after,
.apexcharts-yaxistooltip-left:before {
left: 100%
}
.apexcharts-yaxistooltip-right:after,
.apexcharts-yaxistooltip-right:before {
right: 100%
}
.apexcharts-yaxistooltip-left:after {
border-left-color: var(--apx-axt-bg)
}
.apexcharts-yaxistooltip-left:before {
border-left-color: var(--apx-axt-border)
}
.apexcharts-yaxistooltip-right:after {
border-right-color: var(--apx-axt-bg)
}
.apexcharts-yaxistooltip-right:before {
border-right-color: var(--apx-axt-border)
}
.apexcharts-yaxistooltip.apexcharts-active {
opacity: 1
}
.apexcharts-yaxistooltip-hidden {
display: none
}
.apexcharts-xcrosshairs,
.apexcharts-ycrosshairs {
pointer-events: none;
opacity: 0;
transition: .15s ease all
}
.apexcharts-xcrosshairs.apexcharts-active,
.apexcharts-ycrosshairs.apexcharts-active {
opacity: 1;
transition: .15s ease all
}
.apexcharts-ycrosshairs-hidden {
opacity: 0
}
.apexcharts-selection-rect {
cursor: move
}
.svg_select_shape {
stroke-width: 1;
stroke-dasharray: 10 10;
stroke: black;
stroke-opacity: 0.1;
pointer-events: none;
fill: none;
}
.svg_select_handle {
stroke-width: 3;
stroke: black;
fill: none;
}
.svg_select_handle_r {
cursor: e-resize;
}
.svg_select_handle_l {
cursor: w-resize;
}
.apexcharts-svg.apexcharts-zoomable.hovering-zoom {
cursor: crosshair
}
.apexcharts-svg.apexcharts-zoomable.hovering-pan {
cursor: move
}
.apexcharts-menu-icon,
.apexcharts-pan-icon,
.apexcharts-reset-icon,
.apexcharts-selection-icon,
.apexcharts-toolbar-custom-icon,
.apexcharts-zoom-icon,
.apexcharts-zoomin-icon,
.apexcharts-zoomout-icon {
cursor: pointer;
/* WCAG 2.5.8 Target Size (Minimum): 24×24 CSS px hit target. */
width: 26px;
height: 24px;
line-height: 24px;
color: #6e8192;
text-align: center;
/* Reset native <button> chrome — these are styled via SVG icons. */
padding: 0;
margin: 0;
background: transparent;
border: 0;
border-radius: 5px;
display: inline-flex;
align-items: center;
justify-content: center;
transition: background-color .12s ease, color .12s ease;
}
.apexcharts-menu-icon svg,
.apexcharts-pan-icon svg,
.apexcharts-reset-icon svg,
.apexcharts-selection-icon svg,
.apexcharts-zoom-icon svg,
.apexcharts-zoomin-icon svg,
.apexcharts-zoomout-icon svg {
width: 18px;
height: 18px;
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round
}
.apexcharts-theme-dark .apexcharts-menu-icon,
.apexcharts-theme-dark .apexcharts-pan-icon,
.apexcharts-theme-dark .apexcharts-reset-icon,
.apexcharts-theme-dark .apexcharts-selection-icon,
.apexcharts-theme-dark .apexcharts-toolbar-custom-icon,
.apexcharts-theme-dark .apexcharts-zoom-icon,
.apexcharts-theme-dark .apexcharts-zoomin-icon,
.apexcharts-theme-dark .apexcharts-zoomout-icon {
color: #d4d6dc
}
.apexcharts-canvas .apexcharts-pan-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected {
background: rgba(0, 143, 251, 0.12);
color: #008ffb
}
.apexcharts-theme-light .apexcharts-menu-icon:hover,
.apexcharts-theme-light .apexcharts-pan-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-reset-icon:hover,
.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-zoomin-icon:hover,
.apexcharts-theme-light .apexcharts-zoomout-icon:hover {
background: rgba(15, 23, 42, 0.06);
color: #1f2937
}
.apexcharts-theme-dark .apexcharts-menu-icon:hover,
.apexcharts-theme-dark .apexcharts-pan-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-reset-icon:hover,
.apexcharts-theme-dark .apexcharts-selection-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-zoom-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-zoomin-icon:hover,
.apexcharts-theme-dark .apexcharts-zoomout-icon:hover {
background: rgba(255, 255, 255, 0.08);
color: #fff
}
.apexcharts-menu-icon,
.apexcharts-selection-icon {
position: relative
}
.apexcharts-toolbar {
position: absolute;
z-index: 11;
display: inline-flex;
align-items: center;
gap: 1px;
padding: 3px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.apexcharts-theme-dark .apexcharts-toolbar {
background: rgba(28, 28, 31, 0.82);
}
.apexcharts-menu {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
position: absolute;
top: calc(100% + 4px);
border: 1px solid rgba(15, 23, 42, 0.08);
border-radius: 8px;
padding: 4px;
right: 0;
opacity: 0;
min-width: 120px;
transition: opacity .15s ease, transform .15s ease;
transform: translateY(-2px);
pointer-events: none;
box-shadow: 0 4px 16px -4px rgba(15, 23, 42, 0.12), 0 2px 4px -1px rgba(15, 23, 42, 0.06)
}
.apexcharts-menu.apexcharts-menu-open {
opacity: 1;
transform: translateY(0);
pointer-events: all
}
.apexcharts-menu-item {
padding: 6px 9px;
font-size: 12px;
border-radius: 5px;
cursor: pointer
}
.apexcharts-theme-light .apexcharts-menu-item:hover {
background: rgba(15, 23, 42, 0.06)
}
.apexcharts-theme-dark .apexcharts-menu {
background: rgba(28, 28, 31, 0.92);
border-color: rgba(255, 255, 255, 0.08);
color: #f3f4f6;
box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.5), 0 2px 4px -1px rgba(0, 0, 0, 0.4)
}
.apexcharts-theme-dark .apexcharts-menu-item:hover {
background: rgba(255, 255, 255, 0.08)
}
@media screen and (min-width:768px) {
.apexcharts-canvas:hover .apexcharts-toolbar {
opacity: 1
}
}
/* Toolbar keyboard accessibility: show toolbar when any button inside it is focused */
.apexcharts-toolbar:focus-within {
opacity: 1
}
/* Focus indicator for toolbar icon buttons */
.apexcharts-menu-icon:focus-visible,
.apexcharts-pan-icon:focus-visible,
.apexcharts-reset-icon:focus-visible,
.apexcharts-selection-icon:focus-visible,
.apexcharts-toolbar-custom-icon:focus-visible,
.apexcharts-zoom-icon:focus-visible,
.apexcharts-zoomin-icon:focus-visible,
.apexcharts-zoomout-icon:focus-visible {
outline: 2px solid var(--apexcharts-focus-color, #008FFB);
outline-offset: 1px;
border-radius: 5px
}
/* Focus indicator for hamburger menu items */
.apexcharts-menu-item:focus-visible {
outline: 2px solid var(--apexcharts-focus-color, #008FFB);
outline-offset: -2px;
background: #eee
}
.apexcharts-canvas .apexcharts-element-hidden,
.apexcharts-datalabel.apexcharts-element-hidden,
.apexcharts-hide .apexcharts-series-points {
opacity: 0;
}
.apexcharts-hidden-element-shown {
opacity: 1;
transition: 0.25s ease all;
}
.apexcharts-datalabel,
.apexcharts-datalabel-label,
.apexcharts-datalabel-value,
.apexcharts-datalabels,
.apexcharts-pie-label {
cursor: default;
pointer-events: none
}
.apexcharts-pie-label-delay {
opacity: 0;
animation-name: opaque;
animation-duration: .3s;
animation-fill-mode: forwards;
animation-timing-function: ease
}
.apexcharts-radialbar-label {
cursor: pointer;
}
.apexcharts-annotation-rect,
.apexcharts-area-series .apexcharts-area,
.apexcharts-gridline,
.apexcharts-line,
.apexcharts-point-annotation-label,
.apexcharts-radar-series path:not(.apexcharts-marker),
.apexcharts-radar-series polygon,
.apexcharts-toolbar svg,
.apexcharts-tooltip .apexcharts-marker,
.apexcharts-xaxis-annotation-label,
.apexcharts-yaxis-annotation-label,
.apexcharts-zoom-rect,
.no-pointer-events {
pointer-events: none
}
.apexcharts-tooltip-active .apexcharts-marker {
transition: .15s ease all
}
.apexcharts-radar-series .apexcharts-yaxis {
pointer-events: none;
}
.resize-triggers {
animation: 1ms resizeanim;
visibility: hidden;
opacity: 0;
height: 100%;
width: 100%;
overflow: hidden
}
.contract-trigger:before,
.resize-triggers,
.resize-triggers>div {
content: " ";
display: block;
position: absolute;
top: 0;
left: 0
}
.resize-triggers>div {
height: 100%;
width: 100%;
background: #eee;
overflow: auto
}
.contract-trigger:before {
overflow: hidden;
width: 200%;
height: 200%
}
.apexcharts-bar-goals-markers {
pointer-events: none
}
.apexcharts-bar-shadows {
pointer-events: none
}
.apexcharts-rangebar-goals-markers {
pointer-events: none
}
.apexcharts-disable-transitions * {
transition: none ;
}