// Selected set of PF chart colors to optimize for full-spectrum and colorblindness // using unique part of PF name and a hex color fallback $plotColors: ( blue-300 #06c, green-100 #bde2b9, cyan-200 #73c5c5, purple-100 #b2b0ea, gold-300 #f4c145, orange-300 #ec7a08, red-200 #a30000, cyan-300 #009596, black-500 #4d5258 ); .ct-plot { font-family: var(--pf-v5-chart-global--FontFamily); &-border { stroke: var(--pf-v5-chart-global--Fill--Color--300); fill: transparent; shape-rendering: crispedges; } &-title { font-size: calc(var(--pf-v5-chart-global--FontSize--md) * 1px); } // Placeholder string to stretch the column, set offscreen &-widest { fill: transparent; } &-axis, &-unit { font-size: calc(var(--pf-v5-chart-global--FontSize--xs) * 1px); fill: var(--pf-v5-chart-global--Fill--Color--700); letter-spacing: var(--pf-v5-chart-global--letter-spacing); } .pf-v5-theme-dark &-axis, .pf-v5-theme-dark &-unit { fill: var(--pf-v5-chart-global--Fill--Color--400); } &-lines, &-ticks { stroke: var(--pf-v5-chart-global--Fill--Color--300); shape-rendering: crispedges; } &-selection { fill: tan; stroke: black; opacity: 0.5; shape-rendering: crispedges; } &-paths { stroke-width: var(--pf-v5-chart-global--stroke--Width--sm); shape-rendering: geometricprecision; > path { fill: var(--ct-plot-path-color); stroke: var(--ct-plot-path-color); } } } .ct-plot-title { fill: var(--pf-v5-global--Color--100); } $plotColorCurrent: 0; $plotColorTotal: 0; // Count up total number of plot colors @each $plotColor in $plotColors { $plotColorTotal: $plotColorTotal + 1; } // Iterate through colors and set each graph area to a color @each $plotColor, $plotColorBackup in $plotColors { $plotColorCurrent: $plotColorCurrent + 1; .ct-plot-paths > path:nth-last-child(#{$plotColorTotal}n + #{$plotColorCurrent}) { --ct-plot-path-color: var(--pf-v5-chart-color-#{$plotColor}, #{$plotColorBackup}); } } // Make plot colors available to the entire page :root { --ct-plot-color-total: #{$plotColorTotal}; @for $i from 1 through $plotColorTotal { --ct-plot-color-#{i}: #{$plotColors[$i]}; } } [dir="rtl"] { // Mirror the entire graph (placement & animation) .ct-plot { transform: scaleX(-1); // Flip the text back (so it's not a mirror image) text { transform: scaleX(-1); transform-origin: 50%; transform-box: fill-box; } // Set the anchor point for y-axis and units .ct-plot-axis-y text, .ct-plot-unit { transform-origin: 0%; } // Set the anchor point for the title .ct-plot-title { transform-origin: 100%; } } }