From ffd91cea04062b3fd11a8db81fb56274e13c55ed Mon Sep 17 00:00:00 2001 From: DJP Date: Tue, 21 Apr 2026 13:42:54 -0400 Subject: [PATCH] =?UTF-8?q?Bump=20typography=20~1.5=C3=97=20across=20the?= =?UTF-8?q?=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Producers were reading the UI at a squint. Two pieces: 1. @theme in globals.css now overrides every --text-* token (xs through 7xl) to 1.5× the Tailwind v4 default, with matching line-heights. This covers everything using the named classes (text-xs / text-sm / text-base / …) without touching markup. Also bumped .label-upper from 10px → 15px. 2. Scripted sweep of every arbitrary text-[Npx], fontSize={N}, and inline `fontSize: N` (recharts ticks) — 421 occurrences across 82 files. Each N was rounded to round(N × 1.5). Idempotency is NOT preserved; running the sweep twice would scale twice. Script lives at /tmp/scale-text-sizes.mjs for reference — not committed. If we need to roll back, `git revert` this commit is safe (pure display change, no schema/service impact). --- src/app/(app)/briefs/page.tsx | 18 +++---- src/app/(app)/dashboard/page.tsx | 8 ++-- src/app/(app)/deliverables/page.tsx | 12 ++--- src/app/(app)/notifications/page.tsx | 2 +- .../deliverables/[deliverableId]/page.tsx | 24 +++++----- src/app/(app)/projects/[projectId]/page.tsx | 4 +- src/app/(app)/projects/page.tsx | 16 +++---- src/app/(app)/reports/weekly/[date]/page.tsx | 2 +- src/app/(app)/resources/page.tsx | 48 +++++++++---------- src/app/(app)/settings/automations/page.tsx | 42 ++++++++-------- src/app/(app)/settings/client-teams/page.tsx | 10 ++-- src/app/(app)/settings/fields/page.tsx | 8 ++-- src/app/(app)/settings/notifications/page.tsx | 16 +++---- src/app/(app)/settings/permissions/page.tsx | 10 ++-- .../settings/pipelines/[pipelineId]/page.tsx | 16 +++---- src/app/(app)/settings/pipelines/page.tsx | 4 +- src/app/(app)/settings/pods/page.tsx | 8 ++-- src/app/(app)/settings/skills/page.tsx | 6 +-- src/app/(app)/settings/team/page.tsx | 20 ++++---- src/app/(app)/timeline/page.tsx | 8 ++-- src/app/(app)/workload/page.tsx | 8 ++-- src/app/(auth)/change-password/page.tsx | 2 +- src/app/(auth)/forgot-password/page.tsx | 6 +-- src/app/(auth)/login/CredentialsLogin.tsx | 2 +- src/app/(auth)/login/MsalLogin.tsx | 6 +-- src/app/(auth)/login/page.tsx | 12 ++--- src/app/(auth)/pending/page.tsx | 14 +++--- .../(auth)/reset-password/[token]/page.tsx | 4 +- src/app/globals.css | 31 +++++++++++- .../assignments/assign-artist-popover.tsx | 6 +-- .../assignments/skill-match-suggestions.tsx | 16 +++---- .../calendar/calendar-day-detail.tsx | 2 +- .../calendar/calendar-event-pill.tsx | 8 ++-- src/components/calendar/calendar-grid.tsx | 14 +++--- src/components/calendar/calendar-heatmap.tsx | 16 +++---- src/components/calendar/calendar-view.tsx | 8 ++-- src/components/chat/chat-panel.tsx | 30 ++++++------ src/components/command-palette.tsx | 2 +- src/components/comments/comment-thread.tsx | 12 ++--- .../deliverables/deliverable-board.tsx | 14 +++--- src/components/excel/bulk-import-dialog.tsx | 6 +-- src/components/layout/breadcrumbs.tsx | 4 +- src/components/layout/sidebar.tsx | 8 ++-- src/components/layout/topbar.tsx | 10 ++-- .../pipeline-builder/pipeline-stage-list.tsx | 6 +-- .../pipeline-validation-banner.tsx | 4 +- .../pipeline-builder/stage-edit-sheet.tsx | 14 +++--- .../pipeline-builder/stage-node.tsx | 2 +- src/components/projects/project-board.tsx | 16 +++---- .../projects/project-form-dialog.tsx | 12 ++--- .../reports/weekly/at-risk-section.tsx | 4 +- .../reports/weekly/deadlines-section.tsx | 6 +-- src/components/reports/weekly/kpi-strip.tsx | 8 ++-- .../reports/weekly/report-header.tsx | 2 +- src/components/review/annotation-tools.tsx | 10 ++-- src/components/review/comparison-toolbar.tsx | 8 ++-- src/components/review/comparison-viewer.tsx | 12 ++--- src/components/review/image-gallery.tsx | 4 +- src/components/review/image-upload-zone.tsx | 8 ++-- src/components/review/image-viewer.tsx | 4 +- src/components/review/overlay-controls.tsx | 4 +- src/components/review/revision-node.tsx | 20 ++++---- src/components/review/revision-timeline.tsx | 12 ++--- .../review/video-annotation-layer.tsx | 12 ++--- src/components/review/video-controls.tsx | 2 +- src/components/review/video-frame-display.tsx | 2 +- src/components/review/video-timeline.tsx | 2 +- src/components/review/video-upload-zone.tsx | 16 +++---- src/components/review/wipe-divider.tsx | 4 +- src/components/revisions/revision-list.tsx | 10 ++-- src/components/search/smart-search-panel.tsx | 26 +++++----- src/components/stages/stage-date-popover.tsx | 12 ++--- src/components/stages/stage-detail-sheet.tsx | 2 +- src/components/ui/badge.tsx | 2 +- src/components/views/deliverable-table.tsx | 2 +- src/components/views/gantt-timeline.tsx | 20 ++++---- src/components/views/kanban-board.tsx | 4 +- src/components/views/production-timeline.tsx | 36 +++++++------- src/components/workload/capacity-cell.tsx | 4 +- .../workload/capacity-detail-popover.tsx | 10 ++-- src/components/workload/capacity-grid.tsx | 14 +++--- .../workload/utilization-heatmap.tsx | 12 ++--- 82 files changed, 450 insertions(+), 421 deletions(-) diff --git a/src/app/(app)/briefs/page.tsx b/src/app/(app)/briefs/page.tsx index 09341e9..0cb83ff 100644 --- a/src/app/(app)/briefs/page.tsx +++ b/src/app/(app)/briefs/page.tsx @@ -177,7 +177,7 @@ export default function BriefsPage() { )} -
+
{filtered.length} of {rows.length} brief{rows.length === 1 ? "" : "s"}
@@ -252,14 +252,14 @@ function BriefRowView({ return ( - + {brief.source}
{brief.title}
{brief.description && ( -
+
{brief.description}
)} @@ -269,7 +269,7 @@ function BriefRowView({
{brief.requestorName}
{brief.requestorEmail && ( -
+
{brief.requestorEmail}
)} @@ -282,7 +282,7 @@ function BriefRowView({ {brief.clientTeam ? ( - + {brief.clientTeam.name} ) : ( @@ -313,7 +313,7 @@ function BriefRowView({ > @@ -341,7 +341,7 @@ function BriefRowView({
@@ -571,7 +571,7 @@ function Th({ label, className }: { label: string; className?: string }) { return ( diff --git a/src/app/(app)/dashboard/page.tsx b/src/app/(app)/dashboard/page.tsx index 6f30889..be4d7ce 100644 --- a/src/app/(app)/dashboard/page.tsx +++ b/src/app/(app)/dashboard/page.tsx @@ -89,7 +89,7 @@ function KpiCard({

{value}

{title}

{subtitle && ( -

+

{subtitle}

)} @@ -237,13 +237,13 @@ export default function DashboardPage() { > - + {deliv.name} -

+

{deliv.project.name}

diff --git a/src/app/(app)/deliverables/page.tsx b/src/app/(app)/deliverables/page.tsx index 3bf2d15..ad7052b 100644 --- a/src/app/(app)/deliverables/page.tsx +++ b/src/app/(app)/deliverables/page.tsx @@ -424,7 +424,7 @@ export default function DeliverablesPage() { className="border-b transition-colors hover:bg-[var(--muted)]/40" > - + {r.project.omgJobNumber ?? "—"} @@ -435,7 +435,7 @@ export default function DeliverablesPage() { > {r.project.name} {r.project.clientTeam && ( - + · {r.project.clientTeam.name} )} @@ -467,12 +467,12 @@ export default function DeliverablesPage() { {due ? format(due, "MMM d") : } - + {r.priority} - + {r.status.replace(/_/g, " ")} @@ -494,7 +494,7 @@ function Th({ label, className }: { label: string; className?: string }) { return ( @@ -522,7 +522,7 @@ function SortableTh({ return ( onClick(sortKey)} diff --git a/src/app/(app)/notifications/page.tsx b/src/app/(app)/notifications/page.tsx index f7a31fd..eb16c01 100644 --- a/src/app/(app)/notifications/page.tsx +++ b/src/app/(app)/notifications/page.tsx @@ -118,7 +118,7 @@ export default function NotificationsPage() {

{notif.message}

-

+

{formatDistanceToNow(new Date(notif.createdAt), { addSuffix: true, })} diff --git a/src/app/(app)/projects/[projectId]/deliverables/[deliverableId]/page.tsx b/src/app/(app)/projects/[projectId]/deliverables/[deliverableId]/page.tsx index 9455079..508e28b 100644 --- a/src/app/(app)/projects/[projectId]/deliverables/[deliverableId]/page.tsx +++ b/src/app/(app)/projects/[projectId]/deliverables/[deliverableId]/page.tsx @@ -160,7 +160,7 @@ export default function DeliverableDetailPage() {

{deliverable.cmfSku && (
-

+

CMF / SKU

{deliverable.cmfSku}

@@ -168,7 +168,7 @@ export default function DeliverableDetailPage() { )} {deliverable.assetCount != null && (
-

+

Asset Count

{deliverable.assetCount}

@@ -176,7 +176,7 @@ export default function DeliverableDetailPage() { )} {deliverable.requestedDueDate && (
-

+

Requested Due Date

{format(new Date(deliverable.requestedDueDate), "MMM d, yyyy")}

@@ -184,7 +184,7 @@ export default function DeliverableDetailPage() { )} {deliverable.plannedDeliveryDate && (
-

+

Planned Delivery

{format(new Date(deliverable.plannedDeliveryDate), "MMM d, yyyy")}

@@ -192,7 +192,7 @@ export default function DeliverableDetailPage() { )} {deliverable.actualDeliveryDate && (
-

+

Actual Delivery

{format(new Date(deliverable.actualDeliveryDate), "MMM d, yyyy")}

@@ -200,7 +200,7 @@ export default function DeliverableDetailPage() { )} {deliverable.wfInputDate && (
-

+

WF Input Date

{format(new Date(deliverable.wfInputDate), "MMM d, yyyy")}

@@ -261,14 +261,14 @@ export default function DeliverableDetailPage() { {/* Row 1 — step number · name · badges | status */}
- + {stageOrder}. {stageName} {isGate && ( GATE @@ -277,7 +277,7 @@ export default function DeliverableDetailPage() { {isOptional && ( Optional @@ -327,7 +327,7 @@ export default function DeliverableDetailPage() { size="sm" variant={isSkip || isReopen ? "outline" : "default"} className={cn( - "h-6 text-[11px] px-2", + "h-6 text-[17px] px-2", (isSkip || isReopen) && "text-[var(--muted-foreground)]" )} disabled={updateStage.isPending} @@ -350,12 +350,12 @@ export default function DeliverableDetailPage() { {/* Sub-status + blocked hint on their own third line only when present */} {stage.subStatus && ( -
+
{stage.subStatus}
)} {stage.status === "BLOCKED" && ( -
+
Waiting for prerequisite stages
diff --git a/src/app/(app)/projects/[projectId]/page.tsx b/src/app/(app)/projects/[projectId]/page.tsx index 9506c44..f130ed0 100644 --- a/src/app/(app)/projects/[projectId]/page.tsx +++ b/src/app/(app)/projects/[projectId]/page.tsx @@ -59,7 +59,7 @@ const PRIORITY_STYLES: Record = { function MetaField({ label, value }: { label: string; value: string }) { return (
-

+

{label}

{value}

@@ -280,7 +280,7 @@ export default function ProjectDetailPage() { {a.user?.name ?? a.user?.email ?? "Unknown"} diff --git a/src/app/(app)/projects/page.tsx b/src/app/(app)/projects/page.tsx index 6773594..c3d019a 100644 --- a/src/app/(app)/projects/page.tsx +++ b/src/app/(app)/projects/page.tsx @@ -345,7 +345,7 @@ export default function ProjectsPage() { )} -
+
{filtered.length} {projects && filtered.length !== projects.length ? ` of ${projects.length}` @@ -368,7 +368,7 @@ export default function ProjectsPage() {
- + - - {weekDays.map((d) => { @@ -403,7 +403,7 @@ export default function ResourcesPage() { key={d.toISOString()} className="px-2 py-2 text-center" > -
+
{format(d, "EEE")}
); })} -
@@ -484,14 +484,14 @@ export default function ResourcesPage() { >
@@ -456,19 +456,19 @@ function ProjectRow({ project, onDelete }: { project: Project; onDelete: () => v {project.priority} + {project.omgJobNumber ?? ( )} {project.clientTeam ? ( - + {project.clientTeam.name} ) : ( @@ -478,7 +478,7 @@ function ProjectRow({ project, onDelete }: { project: Project; onDelete: () => v {project.status.replace("_", " ")} @@ -551,7 +551,7 @@ function PipelineProgressCell({ progress }: { progress?: PipelineProgress }) { if (completedDeliverables === totalDeliverables && totalDeliverables > 0) { return ( - + ✓ Done ); @@ -565,7 +565,7 @@ function PipelineProgressCell({ progress }: { progress?: PipelineProgress }) { return (
-
+
{dominantStage.name} {dominantStage.count}/{totalDeliverables} diff --git a/src/app/(app)/reports/weekly/[date]/page.tsx b/src/app/(app)/reports/weekly/[date]/page.tsx index e278e44..3226e38 100644 --- a/src/app/(app)/reports/weekly/[date]/page.tsx +++ b/src/app/(app)/reports/weekly/[date]/page.tsx @@ -95,7 +95,7 @@ export default function WeeklyReportPage() {

Dow Jones Studio Tracker

-

+

Confidential — Oliver Agency

diff --git a/src/app/(app)/resources/page.tsx b/src/app/(app)/resources/page.tsx index 2ae17b3..ce869b2 100644 --- a/src/app/(app)/resources/page.tsx +++ b/src/app/(app)/resources/page.tsx @@ -289,7 +289,7 @@ export default function ResourcesPage() { {/* Filter bar */}
- + Role @@ -326,7 +326,7 @@ export default function ResourcesPage() {
- + Group by
+ Resource + Week
-
+
{initialsOf(user.name, user.email)}
{user.name ?? user.email}
-
+
{user.maxCapacity}h/day
@@ -531,7 +531,7 @@ export default function ResourcesPage() { date: day, }); }} - className="flex items-center gap-1 rounded border border-dashed border-[var(--border)] px-1.5 py-0.5 text-[10px] font-semibold text-[var(--muted-foreground)] transition-colors hover:border-[var(--primary)] hover:text-[var(--primary)]" + className="flex items-center gap-1 rounded border border-dashed border-[var(--border)] px-1.5 py-0.5 text-[15px] font-semibold text-[var(--muted-foreground)] transition-colors hover:border-[var(--primary)] hover:text-[var(--primary)]" > Assign @@ -556,7 +556,7 @@ export default function ResourcesPage() { > {weekTotal}h
-
+
/ {weekCap}h
@@ -617,7 +617,7 @@ function FragmentRows({ >
{collapsed ? "▶" : "▼"} {group} · {count} {count === 1 ? "person" : "people"} @@ -642,7 +642,7 @@ function JobChip({ const color = jobColor(jobNumber); return (
@@ -761,7 +761,7 @@ function AssignPopover({
-