@@ -91,26 +91,26 @@ const FORMAT_CONFIG: Record<ReportFormat, {
9191 icon : < FileText className = "w-5 h-5" /> ,
9292 extension : ".md" ,
9393 mime : "text/markdown" ,
94- color : "text-sky-400" ,
95- bgColor : "bg-sky-500/10 border-sky-500/30" ,
94+ color : "text-sky-600 dark:text-sky- 400" ,
95+ bgColor : "bg-sky-100 dark:bg-sky- 500/10 border-sky-300 dark: border-sky-500/30" ,
9696 } ,
9797 json : {
9898 label : "JSON" ,
9999 description : "结构化数据格式" ,
100100 icon : < FileJson className = "w-5 h-5" /> ,
101101 extension : ".json" ,
102102 mime : "application/json" ,
103- color : "text-amber-400" ,
104- bgColor : "bg-amber-500/10 border-amber-500/30" ,
103+ color : "text-amber-600 dark:text-amber- 400" ,
104+ bgColor : "bg-amber-100 dark:bg-amber- 500/10 border-amber-300 dark: border-amber-500/30" ,
105105 } ,
106106 html : {
107107 label : "HTML" ,
108108 description : "网页展示格式" ,
109109 icon : < FileCode className = "w-5 h-5" /> ,
110110 extension : ".html" ,
111111 mime : "text/html" ,
112- color : "text-emerald-400" ,
113- bgColor : "bg-emerald-500/10 border-emerald-500/30" ,
112+ color : "text-emerald-600 dark:text-emerald- 400" ,
113+ bgColor : "bg-emerald-100 dark:bg-emerald- 500/10 border-emerald-300 dark: border-emerald-500/30" ,
114114 } ,
115115} ;
116116
@@ -126,10 +126,10 @@ const DEFAULT_EXPORT_OPTIONS: ExportOptions = {
126126
127127function getSeverityColor ( severity : string ) : string {
128128 const colors : Record < string , string > = {
129- critical : "text-rose-400" ,
130- high : "text-orange-400" ,
131- medium : "text-amber-400" ,
132- low : "text-sky-400" ,
129+ critical : "text-rose-600 dark:text-rose- 400" ,
130+ high : "text-orange-600 dark:text-orange- 400" ,
131+ medium : "text-amber-600 dark:text-amber- 400" ,
132+ low : "text-sky-600 dark:text-sky- 400" ,
133133 info : "text-muted-foreground" ,
134134 } ;
135135 return colors [ severity . toLowerCase ( ) ] || colors . info ;
@@ -145,10 +145,10 @@ function formatBytes(bytes: number): string {
145145
146146// 获取安全评分颜色
147147function getScoreColor ( score : number ) : { text : string ; bg : string ; glow : string } {
148- if ( score >= 80 ) return { text : "text-emerald-400" , bg : "stroke-emerald-500" , glow : "drop-shadow-[0_0_8px_rgba(16,185,129,0.5)] " } ;
149- if ( score >= 60 ) return { text : "text-amber-400" , bg : "stroke-amber-500" , glow : "drop-shadow-[0_0_8px_rgba(245,158,11,0.5)] " } ;
150- if ( score >= 40 ) return { text : "text-orange-400" , bg : "stroke-orange-500" , glow : "drop-shadow-[0_0_8px_rgba(249,115,22,0.5)] " } ;
151- return { text : "text-rose-400" , bg : "stroke-rose-500" , glow : "drop-shadow-[0_0_8px_rgba(244,63,94,0.5)] " } ;
148+ if ( score >= 80 ) return { text : "text-emerald-600 dark:text-emerald- 400" , bg : "stroke-emerald-500" , glow : "" } ;
149+ if ( score >= 60 ) return { text : "text-amber-600 dark:text-amber- 400" , bg : "stroke-amber-500" , glow : "" } ;
150+ if ( score >= 40 ) return { text : "text-orange-600 dark:text-orange- 400" , bg : "stroke-orange-500" , glow : "" } ;
151+ return { text : "text-rose-600 dark:text-rose- 400" , bg : "stroke-rose-500" , glow : "" } ;
152152}
153153
154154// ============ Sub Components ============
@@ -181,7 +181,7 @@ const CircularProgress = memo(function CircularProgress({
181181 fill = "none"
182182 stroke = "currentColor"
183183 strokeWidth = { strokeWidth }
184- className = "text-foreground/50 "
184+ className = "text-slate-300 dark:text-slate-700 "
185185 />
186186 { /* Progress circle */ }
187187 < circle
@@ -224,23 +224,23 @@ const EnhancedStatsPanel = memo(function EnhancedStatsPanel({
224224 label : "漏洞总数" ,
225225 value : totalFindings ,
226226 color : "text-foreground" ,
227- iconColor : "text-rose-400" ,
227+ iconColor : "text-rose-600 dark:text-rose- 400" ,
228228 trend : totalFindings > 0 ? "up" : null ,
229229 } ,
230230 {
231231 icon : < AlertTriangle className = "w-4 h-4" /> ,
232232 label : "高危问题" ,
233233 value : criticalAndHigh ,
234- color : criticalAndHigh > 0 ? "text-rose-400" : "text-muted-foreground" ,
235- iconColor : "text-orange-400" ,
234+ color : criticalAndHigh > 0 ? "text-rose-600 dark:text-rose- 400" : "text-muted-foreground" ,
235+ iconColor : "text-orange-600 dark:text-orange- 400" ,
236236 trend : criticalAndHigh > 0 ? "critical" : null ,
237237 } ,
238238 {
239239 icon : < CheckCircle2 className = "w-4 h-4" /> ,
240240 label : "已验证" ,
241241 value : verified ,
242- color : "text-emerald-400" ,
243- iconColor : "text-emerald-400" ,
242+ color : "text-emerald-600 dark:text-emerald- 400" ,
243+ iconColor : "text-emerald-600 dark:text-emerald- 400" ,
244244 trend : null ,
245245 } ,
246246 ] ;
@@ -272,7 +272,7 @@ const EnhancedStatsPanel = memo(function EnhancedStatsPanel({
272272 { stat . value }
273273 </ span >
274274 { stat . trend === "critical" && stat . value > 0 && (
275- < Zap className = "w-3 h-3 text-rose-400 animate-pulse " />
275+ < Zap className = "w-3 h-3 text-rose-600 dark:text-rose-400 " />
276276 ) }
277277 </ div >
278278
@@ -1622,21 +1622,14 @@ export const ReportExportDialog = memo(function ReportExportDialog({
16221622
16231623 return (
16241624 < Dialog open = { open } onOpenChange = { onOpenChange } >
1625- < DialogContent className = "max-w-5xl h-[90vh] bg-gradient-to-b from-[#0a0a0f] to-[#0d0d14] border-border/50 p-0 gap-0 overflow-hidden shadow-2xl shadow-black/50" >
1626- { /* Header - 增强设计 */ }
1627- < div className = "relative px-6 py-5 border-b border-border/50 bg-gradient-to-r from-[#0d0d12] via-[#0f0f16] to-[#0d0d12]" >
1628- { /* 装饰性背景元素 */ }
1629- < div className = "absolute inset-0 overflow-hidden" >
1630- < div className = "absolute -top-20 -right-20 w-40 h-40 bg-primary/5 rounded-full blur-3xl" />
1631- < div className = "absolute -bottom-10 -left-10 w-32 h-32 bg-sky-500/5 rounded-full blur-2xl" />
1632- </ div >
1633-
1625+ < DialogContent className = "max-w-5xl h-[90vh] bg-background border-border p-0 gap-0 overflow-hidden shadow-2xl" >
1626+ { /* Header */ }
1627+ < div className = "relative px-6 py-5 border-b border-border bg-card" >
16341628 < DialogHeader className = "relative" >
16351629 < div className = "flex items-center justify-between" >
16361630 < div className = "flex items-center gap-4" >
1637- < div className = "relative p-3 rounded-xl bg-gradient-to-br from- primary/20 to-primary/5 border border-primary/30 shadow-lg shadow-primary/10 " >
1631+ < div className = "relative p-3 rounded-xl bg-primary/10 border border-primary/30" >
16381632 < FileDown className = "w-6 h-6 text-primary" />
1639- < div className = "absolute -top-1 -right-1 w-3 h-3 rounded-full bg-emerald-500 border-2 border-background animate-pulse" />
16401633 </ div >
16411634 < div >
16421635 < DialogTitle className = "text-xl font-bold text-foreground flex items-center gap-2" >
@@ -1824,7 +1817,7 @@ export const ReportExportDialog = memo(function ReportExportDialog({
18241817 </ div >
18251818
18261819 { /* Footer - 增强设计 */ }
1827- < div className = "px-6 py-4 border-t border-border/50 bg-gradient-to-r from-[#0d0d12] via-[#0f0f16] to-[#0d0d12] " >
1820+ < div className = "px-6 py-4 border-t border-border bg-card " >
18281821 < div className = "flex items-center justify-between" >
18291822 < div className = "flex items-center gap-3 text-xs text-muted-foreground" >
18301823 < div className = { `flex items-center gap-2 px-3 py-1.5 rounded-lg border ${ FORMAT_CONFIG [ activeFormat ] . bgColor } ` } >
0 commit comments