Revamp chart colors: replace bland cyan/teal with vibrant blue/indigo/amber palette + fix tooltip indicators

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-20 23:54:14 +01:00
parent 6e697cb5d8
commit 26e8830df2
10 changed files with 42 additions and 18 deletions

View File

@@ -313,3 +313,27 @@ div[class*="recharts-tooltip"] {
background-color: hsl(var(--card)) !important; background-color: hsl(var(--card)) !important;
border-color: hsl(var(--border)) !important; border-color: hsl(var(--border)) !important;
} }
/* Tremor/Recharts tooltip color indicator icons — fix rendering */
.recharts-tooltip-wrapper svg.recharts-surface {
display: inline-block !important;
overflow: visible !important;
}
/* Tremor custom tooltip color dots */
[class*="tremor"] [role="tooltip"] span[class*="bg-"],
[class*="tremor"] [role="tooltip"] span[style*="background"] {
border-radius: 2px !important;
min-width: 10px !important;
min-height: 10px !important;
flex-shrink: 0 !important;
}
/* Recharts default tooltip icon fix — ensure SVG paths have correct fill */
.recharts-default-tooltip .recharts-tooltip-item-list {
padding: 0 !important;
}
.recharts-default-tooltip .recharts-tooltip-item svg {
border: none !important;
}

View File

@@ -20,31 +20,31 @@ export const BRAND_COLORS = [
// Tremor named colors for chart components // Tremor named colors for chart components
// These are the official Tremor palette names that render correctly // These are the official Tremor palette names that render correctly
export const TREMOR_BRAND = 'cyan' as const export const TREMOR_BRAND = 'blue' as const
export const TREMOR_ACCENT = 'teal' as const export const TREMOR_ACCENT = 'indigo' as const
export const TREMOR_CHART_COLORS = [ export const TREMOR_CHART_COLORS = [
'cyan',
'teal',
'blue', 'blue',
'emerald', 'emerald',
'amber', 'amber',
'violet', 'violet',
'rose', 'rose',
'indigo', 'indigo',
'lime', 'sky',
'fuchsia', 'fuchsia',
'lime',
'orange',
] as const ] as const
// Donut / status chart colors (mapped to Tremor names) // Donut / status chart colors (mapped to Tremor names)
export const TREMOR_STATUS_COLORS: Record<string, string> = { export const TREMOR_STATUS_COLORS: Record<string, string> = {
SUBMITTED: 'slate', SUBMITTED: 'sky',
ELIGIBLE: 'cyan', ELIGIBLE: 'blue',
ASSIGNED: 'violet', ASSIGNED: 'violet',
SEMIFINALIST: 'amber', SEMIFINALIST: 'amber',
FINALIST: 'emerald', FINALIST: 'emerald',
REJECTED: 'rose', REJECTED: 'rose',
DRAFT: 'gray', DRAFT: 'gray',
WITHDRAWN: 'neutral', WITHDRAWN: 'slate',
} }
// Project status colors — mapped to actual ProjectStatus enum values // Project status colors — mapped to actual ProjectStatus enum values

View File

@@ -43,7 +43,7 @@ export function CriteriaScoresChart({ data }: CriteriaScoresProps) {
data={chartData} data={chartData}
index="criterion" index="criterion"
categories={['Avg Score']} categories={['Avg Score']}
colors={['teal']} colors={['indigo']}
maxValue={10} maxValue={10}
layout="vertical" layout="vertical"
yAxisWidth={160} yAxisWidth={160}

View File

@@ -56,7 +56,7 @@ export function CrossStageComparisonChart({
data={baseData} data={baseData}
index="name" index="name"
categories={['Projects']} categories={['Projects']}
colors={['cyan']} colors={['blue']}
showLegend={false} showLegend={false}
yAxisWidth={40} yAxisWidth={40}
className="h-[200px]" className="h-[200px]"
@@ -75,7 +75,7 @@ export function CrossStageComparisonChart({
data={baseData} data={baseData}
index="name" index="name"
categories={['Evaluations']} categories={['Evaluations']}
colors={['teal']} colors={['violet']}
showLegend={false} showLegend={false}
yAxisWidth={40} yAxisWidth={40}
className="h-[200px]" className="h-[200px]"

View File

@@ -136,7 +136,7 @@ export function DiversityMetricsChart({ data }: DiversityMetricsProps) {
data={categoryData} data={categoryData}
index="category" index="category"
categories={['Count']} categories={['Count']}
colors={['cyan']} colors={['indigo']}
layout="horizontal" layout="horizontal"
yAxisWidth={120} yAxisWidth={120}
showLegend={false} showLegend={false}
@@ -160,7 +160,7 @@ export function DiversityMetricsChart({ data }: DiversityMetricsProps) {
data={oceanIssueData} data={oceanIssueData}
index="issue" index="issue"
categories={['Count']} categories={['Count']}
colors={['teal']} colors={['blue']}
showLegend={false} showLegend={false}
yAxisWidth={40} yAxisWidth={40}
className="h-[400px]" className="h-[400px]"

View File

@@ -43,7 +43,7 @@ export function EvaluationTimelineChart({ data }: EvaluationTimelineProps) {
data={chartData} data={chartData}
index="date" index="date"
categories={['Cumulative', 'Daily']} categories={['Cumulative', 'Daily']}
colors={['cyan', 'teal']} colors={['indigo', 'amber']}
curveType="monotone" curveType="monotone"
showGradient={true} showGradient={true}
yAxisWidth={50} yAxisWidth={50}

View File

@@ -76,7 +76,7 @@ export function JurorConsistencyChart({ data }: JurorConsistencyProps) {
y="Std Deviation" y="Std Deviation"
category="category" category="category"
size="size" size="size"
colors={['cyan', 'rose']} colors={['blue', 'rose']}
className="h-[400px]" className="h-[400px]"
/> />
<p className="text-xs text-muted-foreground mt-2 text-center"> <p className="text-xs text-muted-foreground mt-2 text-center">

View File

@@ -48,7 +48,7 @@ export function JurorWorkloadChart({ data }: JurorWorkloadProps) {
data={chartData} data={chartData}
index="juror" index="juror"
categories={['Completed', 'Remaining']} categories={['Completed', 'Remaining']}
colors={['cyan', 'gray']} colors={['blue', 'slate']}
layout="horizontal" layout="horizontal"
stack={true} stack={true}
yAxisWidth={160} yAxisWidth={160}

View File

@@ -51,7 +51,7 @@ export function ProjectRankingsChart({
data={chartData} data={chartData}
index="project" index="project"
categories={['Score']} categories={['Score']}
colors={['teal']} colors={['blue']}
layout="horizontal" layout="horizontal"
yAxisWidth={200} yAxisWidth={200}
maxValue={10} maxValue={10}

View File

@@ -36,7 +36,7 @@ export function ScoreDistributionChart({
data={chartData} data={chartData}
index="score" index="score"
categories={['Count']} categories={['Count']}
colors={['cyan']} colors={['blue']}
yAxisWidth={40} yAxisWidth={40}
showLegend={false} showLegend={false}
className="h-[300px]" className="h-[300px]"