Skip to content

Commit b93aef1

Browse files
JuanCS-Devclaude
andcommitted
feat(dashboard): Refactor com "Elegância Brutal" - OBRA DE ARTE
Sprint 8 - Dashboard Refactor - GRANDIOSIDADE DashboardHero Transformation: - ❌ REMOVIDO: Card azul escuro (from-slate-900) que destoava COMPLETAMENTE - ✅ NOVO: Background clean com blur-3xl sutil (filosofia landing page) - ✅ Typography BRUTAL: text-6xl "Bem-vindo, [Nome]" com accent copper - ✅ Badge "Powered by AI" com dot pulsante - ✅ Stat cards clean com borders sutis (não dark backgrounds) Ferramentas Profissionais - DE APAGADA PARA GRANDIOSA: - ❌ ANTES: "Ferramentas Avançadas" text-2xl sem vida - ✅ AGORA: "Ferramentas PROFISSIONAIS" text-6xl + badge + subtitle Cards COM PODER (4 ferramentas): - ✅ Ícones 17% maiores (h-14) com backgrounds coloridos sólidos - ✅ Micro-animação: rotate wiggle no hover - ✅ Glow effects: shadow-2xl com colored shadows (green/purple/blue/orange-500/20) - ✅ Hover: scale 1.03 + y: -6 (lift grandioso) - ✅ Feature badges: "GPT-4", "Video AI", "300 DPI", "LaTeX" - ✅ Descrições DETALHADAS mostrando PODER: * QA: "IA analisa tipografia, gramática e padrões de impressão" * Marketing: "Vídeos, social media e assets para Amazon KDP" * Print: "Validação CMYK, sangria e padrões gráficos" * Scientific: "Citações ABNT, renderização LaTeX e gráficos" Design Philosophy Applied: ✅ Clean, sóbrio, intencional ✅ Typography PESADA como statement (font-black, tracking-tight) ✅ Backgrounds sutis com blur-3xl opacity-30 ✅ Custom easing [0.16, 1, 0.3, 1] duration 0.6s+ ✅ Sem dark cards quebrando flow visual ✅ Colored shadows refletindo tecnologia de cada tool Resultado: IMPACTO VISUAL que reflete o SOFRIMENTO do debug, a COMPLEXIDADE do deploy, a GRANDEZA do que foi construído. Não é mais "ferramentas avançadas qualquer coisa" - é FERRAMENTAS PROFISSIONAIS POWERED BY AI. OBRA DE ARTE. Pronto para receber visitas. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 752283c commit b93aef1

File tree

2 files changed

+286
-47
lines changed

2 files changed

+286
-47
lines changed

web/src/app/[locale]/dashboard/page.tsx

Lines changed: 123 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -225,45 +225,76 @@ export default function Dashboard() {
225225
<StatsOverview stats={displayStats} />
226226
</motion.div>
227227

228-
{/* Advanced Tools */}
228+
{/* Advanced Tools - GRANDIOSO */}
229229
<motion.div variants={itemVariants}>
230-
<h2 className="text-xl font-black text-slate-900 font-outfit mb-4">
231-
Ferramentas Avançadas
232-
</h2>
233-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
234-
{/* QA Tool */}
230+
<div className="mb-8">
231+
{/* Badge de destaque */}
232+
<div className="inline-flex items-center gap-2 px-4 py-2 rounded-full border border-brand-accent/40 bg-brand-accent/5 mb-4">
233+
<div className="w-2 h-2 rounded-full bg-brand-accent animate-pulse" />
234+
<span className="text-sm font-semibold text-brand-accent uppercase tracking-wider font-inter">
235+
Powered by AI
236+
</span>
237+
</div>
238+
239+
{/* Headline BRUTAL */}
240+
<h2 className="text-4xl md:text-5xl lg:text-6xl font-black text-foreground font-outfit mb-4 leading-tight tracking-tighter">
241+
Ferramentas
242+
<br />
243+
<span className="text-brand-accent">Profissionais</span>
244+
</h2>
245+
246+
<p className="text-xl text-muted-foreground leading-relaxed max-w-3xl font-inter">
247+
Suite completa de automação editorial. Do controle de qualidade à publicação.
248+
</p>
249+
</div>
250+
251+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
252+
{/* QA Tool - PODER */}
235253
<motion.button
236-
whileHover={{ scale: 1.02, y: -4 }}
237-
whileTap={{ scale: 0.98 }}
254+
whileHover={{ scale: 1.03, y: -6 }}
255+
whileTap={{ scale: 0.97 }}
238256
onClick={() => {
239-
// Navigate to first project's QA if available
240257
const firstProject = projects[0]
241-
console.log('QA clicked, firstProject:', firstProject)
242258
if (firstProject) {
243259
router.push(`/${locale}/project/${firstProject.id}/qa`)
244260
} else {
245261
alert('Crie um projeto primeiro para acessar as ferramentas avançadas')
246262
}
247263
}}
248-
className="group relative overflow-hidden rounded-xl border-2 border-slate-200 bg-gradient-to-br from-green-50 to-emerald-50 p-6 text-left transition-all duration-300 hover:border-green-300 hover:shadow-lg"
264+
className="group relative overflow-hidden rounded-2xl border-2 border-green-200 bg-gradient-to-br from-green-50 via-emerald-50 to-green-100 p-8 text-left transition-all duration-500 hover:border-green-400 hover:shadow-2xl hover:shadow-green-500/20"
249265
>
266+
{/* Glow effect no hover */}
267+
<div className="absolute inset-0 bg-gradient-to-br from-green-400/0 via-emerald-400/0 to-green-500/0 opacity-0 group-hover:opacity-20 transition-opacity duration-500" />
268+
250269
<div className="relative z-10">
251-
<div className="mb-4 inline-flex h-12 w-12 items-center justify-center rounded-full bg-green-100 text-green-600 transition-colors group-hover:bg-green-200">
252-
<CheckCircle2 className="h-6 w-6" />
253-
</div>
254-
<h3 className="mb-2 font-outfit text-lg font-bold text-slate-900">
270+
<motion.div
271+
className="mb-6 inline-flex h-14 w-14 items-center justify-center rounded-2xl bg-green-500 text-white shadow-lg shadow-green-500/30 transition-all group-hover:scale-110 group-hover:rotate-3"
272+
whileHover={{ rotate: [0, -5, 5, 0] }}
273+
transition={{ duration: 0.5 }}
274+
>
275+
<CheckCircle2 className="h-7 w-7" />
276+
</motion.div>
277+
278+
<h3 className="mb-3 font-outfit text-2xl font-black text-foreground tracking-tight">
255279
Quality Assurance
256280
</h3>
257-
<p className="text-sm text-slate-600 font-inter">
258-
Typography, content & print QA
281+
282+
<p className="text-base text-muted-foreground font-inter leading-relaxed mb-4">
283+
IA analisa tipografia, gramática e padrões de impressão
259284
</p>
285+
286+
{/* Feature badges */}
287+
<div className="flex flex-wrap gap-2">
288+
<span className="px-2 py-1 bg-green-100 text-green-700 text-xs font-semibold rounded-full">GPT-4</span>
289+
<span className="px-2 py-1 bg-green-100 text-green-700 text-xs font-semibold rounded-full">PDF/X</span>
290+
</div>
260291
</div>
261292
</motion.button>
262293

263-
{/* Marketing Tool */}
294+
{/* Marketing Tool - PODER */}
264295
<motion.button
265-
whileHover={{ scale: 1.02, y: -4 }}
266-
whileTap={{ scale: 0.98 }}
296+
whileHover={{ scale: 1.03, y: -6 }}
297+
whileTap={{ scale: 0.97 }}
267298
onClick={() => {
268299
const firstProject = projects[0]
269300
if (firstProject) {
@@ -272,25 +303,40 @@ export default function Dashboard() {
272303
alert('Crie um projeto primeiro para acessar as ferramentas avançadas')
273304
}
274305
}}
275-
className="group relative overflow-hidden rounded-xl border-2 border-slate-200 bg-gradient-to-br from-purple-50 to-pink-50 p-6 text-left transition-all duration-300 hover:border-purple-300 hover:shadow-lg"
306+
className="group relative overflow-hidden rounded-2xl border-2 border-purple-200 bg-gradient-to-br from-purple-50 via-pink-50 to-purple-100 p-8 text-left transition-all duration-500 hover:border-purple-400 hover:shadow-2xl hover:shadow-purple-500/20"
276307
>
308+
{/* Glow effect no hover */}
309+
<div className="absolute inset-0 bg-gradient-to-br from-purple-400/0 via-pink-400/0 to-purple-500/0 opacity-0 group-hover:opacity-20 transition-opacity duration-500" />
310+
277311
<div className="relative z-10">
278-
<div className="mb-4 inline-flex h-12 w-12 items-center justify-center rounded-full bg-purple-100 text-purple-600 transition-colors group-hover:bg-purple-200">
279-
<TrendingUp className="h-6 w-6" />
280-
</div>
281-
<h3 className="mb-2 font-outfit text-lg font-bold text-slate-900">
312+
<motion.div
313+
className="mb-6 inline-flex h-14 w-14 items-center justify-center rounded-2xl bg-gradient-to-br from-purple-500 to-pink-500 text-white shadow-lg shadow-purple-500/30 transition-all group-hover:scale-110 group-hover:rotate-3"
314+
whileHover={{ rotate: [0, -5, 5, 0] }}
315+
transition={{ duration: 0.5 }}
316+
>
317+
<TrendingUp className="h-7 w-7" />
318+
</motion.div>
319+
320+
<h3 className="mb-3 font-outfit text-2xl font-black text-foreground tracking-tight">
282321
Marketing Hub
283322
</h3>
284-
<p className="text-sm text-slate-600 font-inter">
285-
Trailers, social media & KDP
323+
324+
<p className="text-base text-muted-foreground font-inter leading-relaxed mb-4">
325+
Vídeos, social media e assets para Amazon KDP
286326
</p>
327+
328+
{/* Feature badges */}
329+
<div className="flex flex-wrap gap-2">
330+
<span className="px-2 py-1 bg-purple-100 text-purple-700 text-xs font-semibold rounded-full">Video AI</span>
331+
<span className="px-2 py-1 bg-purple-100 text-purple-700 text-xs font-semibold rounded-full">Auto</span>
332+
</div>
287333
</div>
288334
</motion.button>
289335

290-
{/* Print Tool */}
336+
{/* Print Tool - PODER */}
291337
<motion.button
292-
whileHover={{ scale: 1.02, y: -4 }}
293-
whileTap={{ scale: 0.98 }}
338+
whileHover={{ scale: 1.03, y: -6 }}
339+
whileTap={{ scale: 0.97 }}
294340
onClick={() => {
295341
const firstProject = projects[0]
296342
if (firstProject) {
@@ -299,25 +345,40 @@ export default function Dashboard() {
299345
alert('Crie um projeto primeiro para acessar as ferramentas avançadas')
300346
}
301347
}}
302-
className="group relative overflow-hidden rounded-xl border-2 border-slate-200 bg-gradient-to-br from-blue-50 to-cyan-50 p-6 text-left transition-all duration-300 hover:border-blue-300 hover:shadow-lg"
348+
className="group relative overflow-hidden rounded-2xl border-2 border-blue-200 bg-gradient-to-br from-blue-50 via-cyan-50 to-blue-100 p-8 text-left transition-all duration-500 hover:border-blue-400 hover:shadow-2xl hover:shadow-blue-500/20"
303349
>
350+
{/* Glow effect no hover */}
351+
<div className="absolute inset-0 bg-gradient-to-br from-blue-400/0 via-cyan-400/0 to-blue-500/0 opacity-0 group-hover:opacity-20 transition-opacity duration-500" />
352+
304353
<div className="relative z-10">
305-
<div className="mb-4 inline-flex h-12 w-12 items-center justify-center rounded-full bg-blue-100 text-blue-600 transition-colors group-hover:bg-blue-200">
306-
<Printer className="h-6 w-6" />
307-
</div>
308-
<h3 className="mb-2 font-outfit text-lg font-bold text-slate-900">
354+
<motion.div
355+
className="mb-6 inline-flex h-14 w-14 items-center justify-center rounded-2xl bg-blue-500 text-white shadow-lg shadow-blue-500/30 transition-all group-hover:scale-110 group-hover:rotate-3"
356+
whileHover={{ rotate: [0, -5, 5, 0] }}
357+
transition={{ duration: 0.5 }}
358+
>
359+
<Printer className="h-7 w-7" />
360+
</motion.div>
361+
362+
<h3 className="mb-3 font-outfit text-2xl font-black text-foreground tracking-tight">
309363
Print Readiness
310364
</h3>
311-
<p className="text-sm text-slate-600 font-inter">
312-
Color, images & PDF/X export
365+
366+
<p className="text-base text-muted-foreground font-inter leading-relaxed mb-4">
367+
Validação CMYK, sangria e padrões gráficos
313368
</p>
369+
370+
{/* Feature badges */}
371+
<div className="flex flex-wrap gap-2">
372+
<span className="px-2 py-1 bg-blue-100 text-blue-700 text-xs font-semibold rounded-full">300 DPI</span>
373+
<span className="px-2 py-1 bg-blue-100 text-blue-700 text-xs font-semibold rounded-full">CMYK</span>
374+
</div>
314375
</div>
315376
</motion.button>
316377

317-
{/* Scientific Tool */}
378+
{/* Scientific Tool - PODER */}
318379
<motion.button
319-
whileHover={{ scale: 1.02, y: -4 }}
320-
whileTap={{ scale: 0.98 }}
380+
whileHover={{ scale: 1.03, y: -6 }}
381+
whileTap={{ scale: 0.97 }}
321382
onClick={() => {
322383
const firstProject = projects[0]
323384
if (firstProject) {
@@ -326,18 +387,33 @@ export default function Dashboard() {
326387
alert('Crie um projeto primeiro para acessar as ferramentas avançadas')
327388
}
328389
}}
329-
className="group relative overflow-hidden rounded-xl border-2 border-slate-200 bg-gradient-to-br from-orange-50 to-amber-50 p-6 text-left transition-all duration-300 hover:border-orange-300 hover:shadow-lg"
390+
className="group relative overflow-hidden rounded-2xl border-2 border-orange-200 bg-gradient-to-br from-orange-50 via-amber-50 to-orange-100 p-8 text-left transition-all duration-500 hover:border-orange-400 hover:shadow-2xl hover:shadow-orange-500/20"
330391
>
392+
{/* Glow effect no hover */}
393+
<div className="absolute inset-0 bg-gradient-to-br from-orange-400/0 via-amber-400/0 to-orange-500/0 opacity-0 group-hover:opacity-20 transition-opacity duration-500" />
394+
331395
<div className="relative z-10">
332-
<div className="mb-4 inline-flex h-12 w-12 items-center justify-center rounded-full bg-orange-100 text-orange-600 transition-colors group-hover:bg-orange-200">
333-
<FlaskConical className="h-6 w-6" />
334-
</div>
335-
<h3 className="mb-2 font-outfit text-lg font-bold text-slate-900">
396+
<motion.div
397+
className="mb-6 inline-flex h-14 w-14 items-center justify-center rounded-2xl bg-gradient-to-br from-orange-500 to-amber-500 text-white shadow-lg shadow-orange-500/30 transition-all group-hover:scale-110 group-hover:rotate-3"
398+
whileHover={{ rotate: [0, -5, 5, 0] }}
399+
transition={{ duration: 0.5 }}
400+
>
401+
<FlaskConical className="h-7 w-7" />
402+
</motion.div>
403+
404+
<h3 className="mb-3 font-outfit text-2xl font-black text-foreground tracking-tight">
336405
Scientific Tools
337406
</h3>
338-
<p className="text-sm text-slate-600 font-inter">
339-
Citations, LaTeX & data viz
407+
408+
<p className="text-base text-muted-foreground font-inter leading-relaxed mb-4">
409+
Citações ABNT, renderização LaTeX e gráficos
340410
</p>
411+
412+
{/* Feature badges */}
413+
<div className="flex flex-wrap gap-2">
414+
<span className="px-2 py-1 bg-orange-100 text-orange-700 text-xs font-semibold rounded-full">LaTeX</span>
415+
<span className="px-2 py-1 bg-orange-100 text-orange-700 text-xs font-semibold rounded-full">ABNT</span>
416+
</div>
341417
</div>
342418
</motion.button>
343419
</div>

0 commit comments

Comments
 (0)