Deepfake Authenticator commited on
Commit ·
30de428
1
Parent(s): 1dfcfc7
fix: improve ProcessingSection spacing and padding
Browse files
frontend-react/src/components/ProcessingSection.tsx
CHANGED
|
@@ -59,7 +59,7 @@ export default function ProcessingSection() {
|
|
| 59 |
s.status === 'active' ? 'sync' : s.status === 'done' ? 'check_circle' : 'hourglass_empty';
|
| 60 |
|
| 61 |
return (
|
| 62 |
-
<section className="relative z-10 flex flex-col items-center justify-center px-6
|
| 63 |
<div className="absolute inset-0 noise-bg z-0" />
|
| 64 |
|
| 65 |
{/* Purple scan line */}
|
|
@@ -71,12 +71,12 @@ export default function ProcessingSection() {
|
|
| 71 |
}}
|
| 72 |
/>
|
| 73 |
|
| 74 |
-
<div className="relative z-10 w-full max-w-
|
| 75 |
|
| 76 |
{/* Header */}
|
| 77 |
-
<div className="w-full
|
| 78 |
<h1
|
| 79 |
-
className="text-5xl font-black mb-
|
| 80 |
style={{
|
| 81 |
background: 'linear-gradient(135deg, #c084fc, #a855f7)',
|
| 82 |
WebkitBackgroundClip: 'text',
|
|
@@ -92,11 +92,11 @@ export default function ProcessingSection() {
|
|
| 92 |
</div>
|
| 93 |
|
| 94 |
{/* Bento grid */}
|
| 95 |
-
<div className="w-full grid grid-cols-1 md:grid-cols-12 gap-
|
| 96 |
|
| 97 |
{/* Left: Orb */}
|
| 98 |
<div
|
| 99 |
-
className="md:col-span-5 rounded-
|
| 100 |
style={{
|
| 101 |
background: 'rgba(20,10,40,0.5)',
|
| 102 |
border: '1px solid rgba(168,85,247,0.15)',
|
|
@@ -104,57 +104,40 @@ export default function ProcessingSection() {
|
|
| 104 |
boxShadow: 'inset 1px 1px 0 rgba(255,255,255,0.04)',
|
| 105 |
}}
|
| 106 |
>
|
| 107 |
-
<div className="absolute top-
|
| 108 |
style={{ color: 'rgba(168,85,247,0.4)' }}>
|
| 109 |
Target Vector
|
| 110 |
</div>
|
| 111 |
|
| 112 |
<div
|
| 113 |
-
className="relative w-
|
| 114 |
style={{
|
| 115 |
border: '1px solid rgba(168,85,247,0.25)',
|
| 116 |
boxShadow: '0 0 30px rgba(124,58,237,0.12)',
|
| 117 |
}}
|
| 118 |
>
|
| 119 |
-
<div
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
style={{
|
| 126 |
-
background: 'radial-gradient(circle, rgba(88,28,135,0.3) 0%, rgba(13,7,32,0.8) 100%)',
|
| 127 |
-
}}
|
| 128 |
-
>
|
| 129 |
-
<span
|
| 130 |
-
className="material-symbols-outlined text-[48px] opacity-40"
|
| 131 |
-
style={{ color: '#a855f7', fontVariationSettings: "'FILL' 1" }}
|
| 132 |
-
>
|
| 133 |
-
analytics
|
| 134 |
-
</span>
|
| 135 |
</div>
|
| 136 |
-
<div
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
<span
|
| 141 |
-
className="material-symbols-outlined absolute text-4xl"
|
| 142 |
-
style={{ color: '#c084fc', filter: 'drop-shadow(0 0 10px rgba(168,85,247,0.8))' }}
|
| 143 |
-
>
|
| 144 |
troubleshoot
|
| 145 |
</span>
|
| 146 |
</div>
|
| 147 |
|
| 148 |
-
<div className="mt-
|
| 149 |
{[
|
| 150 |
{ label: 'DATA_STREAM', value: 'ACTIVE', valueColor: '#a855f7' },
|
| 151 |
{ label: 'THROUGHPUT', value: '2.4 TB/s', valueColor: '#818cf8' },
|
| 152 |
].map(({ label, value, valueColor }) => (
|
| 153 |
-
<div
|
| 154 |
-
|
| 155 |
-
className="flex items-center justify-between text-sm font-medium tracking-wider pb-1 mb-1"
|
| 156 |
-
style={{ borderBottom: '1px solid rgba(168,85,247,0.08)', color: 'rgba(192,132,252,0.5)' }}
|
| 157 |
-
>
|
| 158 |
<span>{label}</span>
|
| 159 |
<span style={{ color: valueColor, fontWeight: 700 }}>{value}</span>
|
| 160 |
</div>
|
|
@@ -164,7 +147,7 @@ export default function ProcessingSection() {
|
|
| 164 |
|
| 165 |
{/* Right: Pipeline */}
|
| 166 |
<div
|
| 167 |
-
className="md:col-span-7 rounded-
|
| 168 |
style={{
|
| 169 |
background: 'rgba(20,10,40,0.5)',
|
| 170 |
border: '1px solid rgba(168,85,247,0.15)',
|
|
@@ -172,94 +155,63 @@ export default function ProcessingSection() {
|
|
| 172 |
boxShadow: 'inset 1px 1px 0 rgba(255,255,255,0.04)',
|
| 173 |
}}
|
| 174 |
>
|
| 175 |
-
<div className="flex justify-between items-center
|
| 176 |
<span className="font-bold text-[10px] tracking-widest uppercase"
|
| 177 |
style={{ color: 'rgba(168,85,247,0.4)' }}>
|
| 178 |
Processing Pipeline
|
| 179 |
</span>
|
| 180 |
-
<span
|
| 181 |
-
|
| 182 |
-
style={{
|
| 183 |
-
color: '#c084fc',
|
| 184 |
-
background: 'rgba(124,58,237,0.2)',
|
| 185 |
-
border: '1px solid rgba(168,85,247,0.3)',
|
| 186 |
-
}}
|
| 187 |
-
>
|
| 188 |
{overallPct}% COMPLETE
|
| 189 |
</span>
|
| 190 |
</div>
|
| 191 |
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
key={i}
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
className="
|
| 202 |
-
|
| 203 |
-
>
|
| 204 |
-
{
|
| 205 |
-
</span>
|
| 206 |
-
<span className="text-sm font-medium tracking-wider text-white/80">
|
| 207 |
-
{step.label}
|
| 208 |
</span>
|
| 209 |
</div>
|
| 210 |
-
<
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
? `${P}0.55)`
|
| 224 |
-
: `${P}0.85)`
|
| 225 |
-
: `${P}0.08)`,
|
| 226 |
-
boxShadow: filled && step.status === 'active' ? `0 0 6px ${P}0.5)` : 'none',
|
| 227 |
-
}}
|
| 228 |
-
/>
|
| 229 |
-
);
|
| 230 |
-
})}
|
| 231 |
</div>
|
| 232 |
-
|
| 233 |
-
|
| 234 |
</div>
|
| 235 |
</div>
|
| 236 |
|
| 237 |
{/* Overall progress */}
|
| 238 |
-
<div
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
border: '1px solid rgba(168,85,247,0.15)',
|
| 243 |
-
backdropFilter: 'blur(20px)',
|
| 244 |
-
}}
|
| 245 |
-
>
|
| 246 |
-
<div className="flex justify-between items-center mb-2">
|
| 247 |
-
<span className="font-bold text-[10px] tracking-widest uppercase"
|
| 248 |
-
style={{ color: 'rgba(168,85,247,0.4)' }}>
|
| 249 |
Overall Progress
|
| 250 |
</span>
|
| 251 |
<span className="text-sm font-bold" style={{ color: '#c084fc' }}>{overallPct}%</span>
|
| 252 |
</div>
|
| 253 |
-
<div className="w-full h-3 rounded-full overflow-hidden"
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
className="h-full rounded-full transition-all duration-700"
|
| 257 |
-
style={{
|
| 258 |
-
width: `${overallPct}%`,
|
| 259 |
-
background: 'linear-gradient(to right, #7c3aed, #a855f7, #c084fc)',
|
| 260 |
-
boxShadow: '0 0 12px rgba(168,85,247,0.5)',
|
| 261 |
-
}}
|
| 262 |
-
/>
|
| 263 |
</div>
|
| 264 |
</div>
|
| 265 |
|
|
|
|
| 59 |
s.status === 'active' ? 'sync' : s.status === 'done' ? 'check_circle' : 'hourglass_empty';
|
| 60 |
|
| 61 |
return (
|
| 62 |
+
<section className="relative z-10 flex flex-col items-center justify-center min-h-screen px-6 md:px-12 lg:px-20">
|
| 63 |
<div className="absolute inset-0 noise-bg z-0" />
|
| 64 |
|
| 65 |
{/* Purple scan line */}
|
|
|
|
| 71 |
}}
|
| 72 |
/>
|
| 73 |
|
| 74 |
+
<div className="relative z-10 w-full max-w-5xl pt-24 pb-16 flex flex-col items-center gap-8">
|
| 75 |
|
| 76 |
{/* Header */}
|
| 77 |
+
<div className="w-full text-center">
|
| 78 |
<h1
|
| 79 |
+
className="text-4xl md:text-5xl font-black mb-3"
|
| 80 |
style={{
|
| 81 |
background: 'linear-gradient(135deg, #c084fc, #a855f7)',
|
| 82 |
WebkitBackgroundClip: 'text',
|
|
|
|
| 92 |
</div>
|
| 93 |
|
| 94 |
{/* Bento grid */}
|
| 95 |
+
<div className="w-full grid grid-cols-1 md:grid-cols-12 gap-6">
|
| 96 |
|
| 97 |
{/* Left: Orb */}
|
| 98 |
<div
|
| 99 |
+
className="md:col-span-5 rounded-2xl p-8 flex flex-col items-center justify-center relative min-h-[320px]"
|
| 100 |
style={{
|
| 101 |
background: 'rgba(20,10,40,0.5)',
|
| 102 |
border: '1px solid rgba(168,85,247,0.15)',
|
|
|
|
| 104 |
boxShadow: 'inset 1px 1px 0 rgba(255,255,255,0.04)',
|
| 105 |
}}
|
| 106 |
>
|
| 107 |
+
<div className="absolute top-4 left-5 font-bold text-[10px] tracking-widest uppercase"
|
| 108 |
style={{ color: 'rgba(168,85,247,0.4)' }}>
|
| 109 |
Target Vector
|
| 110 |
</div>
|
| 111 |
|
| 112 |
<div
|
| 113 |
+
className="relative w-44 h-44 rounded-full flex items-center justify-center my-4"
|
| 114 |
style={{
|
| 115 |
border: '1px solid rgba(168,85,247,0.25)',
|
| 116 |
boxShadow: '0 0 30px rgba(124,58,237,0.12)',
|
| 117 |
}}
|
| 118 |
>
|
| 119 |
+
<div className="absolute inset-2 rounded-full border-dashed animate-spin-medium"
|
| 120 |
+
style={{ border: '1px dashed rgba(168,85,247,0.3)' }} />
|
| 121 |
+
<div className="absolute inset-6 rounded-full flex items-center justify-center overflow-hidden"
|
| 122 |
+
style={{ background: 'radial-gradient(circle, rgba(88,28,135,0.3) 0%, rgba(13,7,32,0.8) 100%)' }}>
|
| 123 |
+
<span className="material-symbols-outlined text-[48px] opacity-40"
|
| 124 |
+
style={{ color: '#a855f7', fontVariationSettings: "'FILL' 1" }}>analytics</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 125 |
</div>
|
| 126 |
+
<div className="absolute inset-0 rounded-full border-t-2 blur-[2px] animate-spin-fast"
|
| 127 |
+
style={{ borderColor: 'rgba(168,85,247,0.7)' }} />
|
| 128 |
+
<span className="material-symbols-outlined absolute text-4xl"
|
| 129 |
+
style={{ color: '#c084fc', filter: 'drop-shadow(0 0 10px rgba(168,85,247,0.8))' }}>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
troubleshoot
|
| 131 |
</span>
|
| 132 |
</div>
|
| 133 |
|
| 134 |
+
<div className="w-full mt-2 space-y-2">
|
| 135 |
{[
|
| 136 |
{ label: 'DATA_STREAM', value: 'ACTIVE', valueColor: '#a855f7' },
|
| 137 |
{ label: 'THROUGHPUT', value: '2.4 TB/s', valueColor: '#818cf8' },
|
| 138 |
].map(({ label, value, valueColor }) => (
|
| 139 |
+
<div key={label} className="flex items-center justify-between text-sm font-medium tracking-wider py-2"
|
| 140 |
+
style={{ borderBottom: '1px solid rgba(168,85,247,0.08)', color: 'rgba(192,132,252,0.5)' }}>
|
|
|
|
|
|
|
|
|
|
| 141 |
<span>{label}</span>
|
| 142 |
<span style={{ color: valueColor, fontWeight: 700 }}>{value}</span>
|
| 143 |
</div>
|
|
|
|
| 147 |
|
| 148 |
{/* Right: Pipeline */}
|
| 149 |
<div
|
| 150 |
+
className="md:col-span-7 rounded-2xl p-8 flex flex-col justify-center gap-5"
|
| 151 |
style={{
|
| 152 |
background: 'rgba(20,10,40,0.5)',
|
| 153 |
border: '1px solid rgba(168,85,247,0.15)',
|
|
|
|
| 155 |
boxShadow: 'inset 1px 1px 0 rgba(255,255,255,0.04)',
|
| 156 |
}}
|
| 157 |
>
|
| 158 |
+
<div className="flex justify-between items-center">
|
| 159 |
<span className="font-bold text-[10px] tracking-widest uppercase"
|
| 160 |
style={{ color: 'rgba(168,85,247,0.4)' }}>
|
| 161 |
Processing Pipeline
|
| 162 |
</span>
|
| 163 |
+
<span className="text-sm font-bold px-3 py-1 rounded"
|
| 164 |
+
style={{ color: '#c084fc', background: 'rgba(124,58,237,0.2)', border: '1px solid rgba(168,85,247,0.3)' }}>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 165 |
{overallPct}% COMPLETE
|
| 166 |
</span>
|
| 167 |
</div>
|
| 168 |
|
| 169 |
+
<div className="flex flex-col gap-4">
|
| 170 |
+
{steps.map((step, i) => (
|
| 171 |
+
<div key={i} className="flex flex-col gap-2 transition-opacity duration-400"
|
| 172 |
+
style={{ opacity: step.status === 'pending' ? 0.3 : 1 }}>
|
| 173 |
+
<div className="flex justify-between items-center">
|
| 174 |
+
<div className="flex items-center gap-3">
|
| 175 |
+
<span className="material-symbols-outlined text-sm" style={{ color: stepColor(step) }}>
|
| 176 |
+
{stepIcon(step)}
|
| 177 |
+
</span>
|
| 178 |
+
<span className="text-sm font-medium tracking-wider text-white/80">{step.label}</span>
|
| 179 |
+
</div>
|
| 180 |
+
<span className="text-sm font-bold" style={{ color: stepColor(step) }}>
|
| 181 |
+
{step.status === 'done' ? '100%' : step.status === 'active' ? `${step.pct}%` : '0%'}
|
|
|
|
|
|
|
|
|
|
| 182 |
</span>
|
| 183 |
</div>
|
| 184 |
+
<div className="w-full h-2 flex gap-[2px] rounded overflow-hidden"
|
| 185 |
+
style={{ background: 'rgba(88,28,135,0.2)' }}>
|
| 186 |
+
{Array.from({ length: 10 }).map((_, j) => {
|
| 187 |
+
const filled = step.status === 'done' || (step.status === 'active' && j < Math.round(step.pct / 10));
|
| 188 |
+
return (
|
| 189 |
+
<div key={j} className="h-full flex-1 transition-all duration-500"
|
| 190 |
+
style={{
|
| 191 |
+
background: filled ? step.status === 'done' ? `${P}0.55)` : `${P}0.85)` : `${P}0.08)`,
|
| 192 |
+
boxShadow: filled && step.status === 'active' ? `0 0 6px ${P}0.5)` : 'none',
|
| 193 |
+
}} />
|
| 194 |
+
);
|
| 195 |
+
})}
|
| 196 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
</div>
|
| 198 |
+
))}
|
| 199 |
+
</div>
|
| 200 |
</div>
|
| 201 |
</div>
|
| 202 |
|
| 203 |
{/* Overall progress */}
|
| 204 |
+
<div className="w-full rounded-2xl p-6"
|
| 205 |
+
style={{ background: 'rgba(20,10,40,0.5)', border: '1px solid rgba(168,85,247,0.15)', backdropFilter: 'blur(20px)' }}>
|
| 206 |
+
<div className="flex justify-between items-center mb-3">
|
| 207 |
+
<span className="font-bold text-[10px] tracking-widest uppercase" style={{ color: 'rgba(168,85,247,0.4)' }}>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 208 |
Overall Progress
|
| 209 |
</span>
|
| 210 |
<span className="text-sm font-bold" style={{ color: '#c084fc' }}>{overallPct}%</span>
|
| 211 |
</div>
|
| 212 |
+
<div className="w-full h-3 rounded-full overflow-hidden" style={{ background: 'rgba(88,28,135,0.2)' }}>
|
| 213 |
+
<div className="h-full rounded-full transition-all duration-700"
|
| 214 |
+
style={{ width: `${overallPct}%`, background: 'linear-gradient(to right, #7c3aed, #a855f7, #c084fc)', boxShadow: '0 0 12px rgba(168,85,247,0.5)' }} />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 215 |
</div>
|
| 216 |
</div>
|
| 217 |
|