feat(brand): unify to cyan-primary tokens, drop fake trend badge — PRD-2#180
Conversation
- page.tsx: orange hex drop-shadow and CTA shadow swap to oklch primary and .glow-cyan/.text-gradient-cyan tokens - dashboard/page.tsx: remove hardcoded '12% vs mes' badge (getDashboardStats has no prior-period data); drop fragile kpi.color.replaceAll hack, reuse gradient directly Co-Authored-By: Claude <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 35 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (22)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR. |
|
There was a problem hiding this comment.
4 issues found across 22 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="docs/superpowers/specs/2026-07-07-meus-treinos-kebab-design.md">
<violation number="1" location="docs/superpowers/specs/2026-07-07-meus-treinos-kebab-design.md:50">
P3: The 'Imports needed' section in the spec lists `PlusCircle` as a new import from `lucide-react`, but `PlusCircle` is already imported on line 16 of `meus-treinos-client.tsx`. A developer following the spec literally would create a duplicate import. Suggest dropping `PlusCircle` from the needed-imports block and noting it's already imported, keeping the spec accurate and preventing a lint/code-quality hiccup.</violation>
</file>
<file name="docs/superpowers/specs/2026-07-07-aluno-detail-tables-mobile-design.md">
<violation number="1" location="docs/superpowers/specs/2026-07-07-aluno-detail-tables-mobile-design.md:48">
P2: Spec references `formatDate(...)` which doesn't exist in the codebase. The actual patterns use `format(new Date(m.dataInicio), 'dd/MM/yyyy')` from `date-fns` inline. If a developer copies the spec's code verbatim, it will cause a compilation error. Recommend updating the spec to match the existing code pattern or adding a note about importing a shared helper.</violation>
<violation number="2" location="docs/superpowers/specs/2026-07-07-aluno-detail-tables-mobile-design.md:52">
P2: Spec references `BadgeVariant` which doesn't exist, at 3 separate locations (lines 9, 52, 80). The actual rendering uses `STATUS_VARIANT[m.status]` defined on page.tsx line 22. A developer following this spec literally would hit a TypeScript error.</violation>
<violation number="3" location="docs/superpowers/specs/2026-07-07-aluno-detail-tables-mobile-design.md:66">
P2: Spec references `formatCurrency(p.valor)` which doesn't exist. The actual PagamentosTable (page.tsx:239) uses `p.valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })`. Recommend updating the spec to match the existing code pattern.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| <dt className="text-muted-foreground">Data</dt> | ||
| <dd>{formatDate(p.dataPagamento)}</dd> | ||
| <dt className="text-muted-foreground">Valor</dt> | ||
| <dd className="font-medium">{formatCurrency(p.valor)}</dd> |
There was a problem hiding this comment.
P2: Spec references formatCurrency(p.valor) which doesn't exist. The actual PagamentosTable (page.tsx:239) uses p.valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }). Recommend updating the spec to match the existing code pattern.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/superpowers/specs/2026-07-07-aluno-detail-tables-mobile-design.md, line 66:
<comment>Spec references `formatCurrency(p.valor)` which doesn't exist. The actual PagamentosTable (page.tsx:239) uses `p.valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })`. Recommend updating the spec to match the existing code pattern.</comment>
<file context>
@@ -0,0 +1,113 @@
+ <dt className="text-muted-foreground">Data</dt>
+ <dd>{formatDate(p.dataPagamento)}</dd>
+ <dt className="text-muted-foreground">Valor</dt>
+ <dd className="font-medium">{formatCurrency(p.valor)}</dd>
+ <dt className="text-muted-foreground">Método</dt>
+ <dd>{p.metodo}</dd>
</file context>
| <dt className="text-muted-foreground">Plano</dt> | ||
| <dd className="font-medium">{m.Plano.nome}</dd> | ||
| <dt className="text-muted-foreground">Início</dt> | ||
| <dd>{formatDate(m.dataInicio)}</dd> |
There was a problem hiding this comment.
P2: Spec references formatDate(...) which doesn't exist in the codebase. The actual patterns use format(new Date(m.dataInicio), 'dd/MM/yyyy') from date-fns inline. If a developer copies the spec's code verbatim, it will cause a compilation error. Recommend updating the spec to match the existing code pattern or adding a note about importing a shared helper.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/superpowers/specs/2026-07-07-aluno-detail-tables-mobile-design.md, line 48:
<comment>Spec references `formatDate(...)` which doesn't exist in the codebase. The actual patterns use `format(new Date(m.dataInicio), 'dd/MM/yyyy')` from `date-fns` inline. If a developer copies the spec's code verbatim, it will cause a compilation error. Recommend updating the spec to match the existing code pattern or adding a note about importing a shared helper.</comment>
<file context>
@@ -0,0 +1,113 @@
+ <dt className="text-muted-foreground">Plano</dt>
+ <dd className="font-medium">{m.Plano.nome}</dd>
+ <dt className="text-muted-foreground">Início</dt>
+ <dd>{formatDate(m.dataInicio)}</dd>
+ <dt className="text-muted-foreground">Vencimento</dt>
+ <dd>{formatDate(m.dataVencimento)}</dd>
</file context>
| <dt className="text-muted-foreground">Vencimento</dt> | ||
| <dd>{formatDate(m.dataVencimento)}</dd> | ||
| <dt className="text-muted-foreground">Status</dt> | ||
| <dd><Badge variant={BadgeVariant[m.status]}>{m.status}</Badge></dd> |
There was a problem hiding this comment.
P2: Spec references BadgeVariant which doesn't exist, at 3 separate locations (lines 9, 52, 80). The actual rendering uses STATUS_VARIANT[m.status] defined on page.tsx line 22. A developer following this spec literally would hit a TypeScript error.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/superpowers/specs/2026-07-07-aluno-detail-tables-mobile-design.md, line 52:
<comment>Spec references `BadgeVariant` which doesn't exist, at 3 separate locations (lines 9, 52, 80). The actual rendering uses `STATUS_VARIANT[m.status]` defined on page.tsx line 22. A developer following this spec literally would hit a TypeScript error.</comment>
<file context>
@@ -0,0 +1,113 @@
+ <dt className="text-muted-foreground">Vencimento</dt>
+ <dd>{formatDate(m.dataVencimento)}</dd>
+ <dt className="text-muted-foreground">Status</dt>
+ <dd><Badge variant={BadgeVariant[m.status]}>{m.status}</Badge></dd>
+ </dl>
+ </Card>
</file context>
|
|
||
| Imports needed (all from existing shadcn/ui, no new dep): | ||
| ```typescript | ||
| import { MoreVertical, Dumbbell, PlusCircle } from 'lucide-react'; |
There was a problem hiding this comment.
P3: The 'Imports needed' section in the spec lists PlusCircle as a new import from lucide-react, but PlusCircle is already imported on line 16 of meus-treinos-client.tsx. A developer following the spec literally would create a duplicate import. Suggest dropping PlusCircle from the needed-imports block and noting it's already imported, keeping the spec accurate and preventing a lint/code-quality hiccup.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/superpowers/specs/2026-07-07-meus-treinos-kebab-design.md, line 50:
<comment>The 'Imports needed' section in the spec lists `PlusCircle` as a new import from `lucide-react`, but `PlusCircle` is already imported on line 16 of `meus-treinos-client.tsx`. A developer following the spec literally would create a duplicate import. Suggest dropping `PlusCircle` from the needed-imports block and noting it's already imported, keeping the spec accurate and preventing a lint/code-quality hiccup.</comment>
<file context>
@@ -0,0 +1,117 @@
+
+Imports needed (all from existing shadcn/ui, no new dep):
+```typescript
+import { MoreVertical, Dumbbell, PlusCircle } from 'lucide-react';
+import {
+ DropdownMenu, DropdownMenuContent, DropdownMenuItem,
</file context>



PRD-2 — Brand Consistency
Per
docs/superpowers/specs/2026-07-07-brand-consistency-design.md.Changes
src/app/page.tsx: orange hexrgba(255,102,0,*)drop-shadow and CTA shadows swapped to oklch primary token +.glow-cyan/\.text-gradient-cyan. Landing gradientfrom-primary to-orange-300→.text-gradient-cyansingle-hue.src/app/dashboard/page.tsx: removed hardcoded↑ 12% vs mês anteriorbadge (no prior-period data ingetDashboardStats; fake delta misleads — esp. on Inadimplentes card). Dropped fragilekpi.color.replaceAll('/20','')hack; bottom glow line reuseskpi.colorgradient directly.Out of scope
text-orange-400on streak Flame icon (alunos/[id]/page.tsx:148) — semantic (fire = orange), not brand drift. Kept per spec carve-out.Success criteria
grep -rn "rgba(255,102,0" src/app/page.tsx src/app/dashboard/ src/app/login/→ 0 hitsto-orange-300in landing🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
Summary by cubic
Unifies the brand to a single cyan-primary system and removes the misleading “↑ 12%” trend badge, aligning with PRD-2. Also strengthens mobile foundations with
dvh, proper viewport meta, safe-area padding, 44px touch targets, and reduced-motion..glow-cyan,.text-gradient-cyan) and switched hero sizing todvh.kpi.colordirectly (noreplaceAll('/20','')). Inadimplentes no longer shows fake deltas.viewportexport (viewportFit: 'cover'), swappedmin-h-screen/vhtomin-h-dvh, and updated tests to expect.min-h-dvh.globals.css: added safe-area padding,.touch-target(44px) utility, andprefers-reduced-motionoverrides.Written for commit d1c69a5. Summary will update on new commits.