fix(admin): refine typography hierarchy - #2252
Conversation
🦋 Changeset detectedLatest commit: beb8268 The changes in this PR will be included in the next version bump. This PR includes changesets to release 17 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Scope checkThis PR touches 41 files. PRs with a broad scope are harder to review. Please confirm the scope hasn't drifted beyond the intended change. If this scope is intentional, no action needed. A maintainer will review it. If not, please consider splitting this into smaller PRs. See CONTRIBUTING.md for contribution guidelines. |
@emdash-cms/admin
@emdash-cms/auth
@emdash-cms/auth-atproto
@emdash-cms/blocks
@emdash-cms/cloudflare
@emdash-cms/contentful-to-portable-text
emdash
create-emdash
@emdash-cms/gutenberg-to-portable-text
@emdash-cms/plugin-cli
@emdash-cms/plugin-types
@emdash-cms/registry-client
@emdash-cms/registry-lexicons
@emdash-cms/registry-verification
@emdash-cms/sandbox-workerd
@emdash-cms/x402
@emdash-cms/plugin-ai-moderation
@emdash-cms/plugin-atproto
@emdash-cms/plugin-audit-log
@emdash-cms/plugin-color
@emdash-cms/plugin-embeds
@emdash-cms/plugin-field-kit
@emdash-cms/plugin-forms
@emdash-cms/plugin-webhook-notifier
commit: |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-demo-do | beb8268 | Jul 27 2026, 11:41 AM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-demo-cache | beb8268 | Jul 27 2026, 11:41 AM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-playground | beb8268 | Jul 27 2026, 11:41 AM |
There was a problem hiding this comment.
This is a focused visual bug-fix PR: it standardizes admin page-heading sizes/weight/leading, tightens Dashboard card heading alignment and metric typography, bumps subtle-text contrast in the classic light theme, and adds macOS font smoothing. There are no API, database, or runtime interface changes, and the author added regression tests for heading semantics, card inset alignment, cross-script tracking, and description contrast.
I read the full diff, the changed admin components, the E2E/unit tests, and checked the PR against the repo’s AGENTS.md conventions:
- Lingui / i18n: All new/changed user-facing strings remain wrapped with
t/plural/msg. - RTL-safe Tailwind: No physical directional classes (
ml-*/mr-*/pl-*/pr-*/text-left/text-right) were introduced; the new layout tests explicitly handle RTL. - SQL / API / auth / query counts: No backend changes; no risk to logged-out routes.
- Changesets: Two patch changesets for
@emdash-cms/admin, present-tense and user-oriented. - Tests: New unit test checks every dashboard card title is an
h2; new Playwright tests check card/heading alignment, preserved normal letter-spacing across scripts, and description contrast. - Comments: No reviewer-facing or justification comments added; the one existing explanatory comment block was actually removed.
Static review found no logic bugs, regressions, or convention violations. The implementation aligns with EmDash’s architecture (Kumo + Tailwind + Lingui), and the breadth of file changes is justified by the single stated goal of fixing typography inconsistency. LGTM.
What does this PR do?
Fixes inconsistent typography across the logged-in admin UI while retaining Noto Sans for internationalization. It standardizes page-heading hierarchy, refines Dashboard card headings and metric alignment, improves description and media-library text hierarchy, strengthens subtle-text contrast, preserves native letter spacing across scripts, and adds macOS font smoothing.
Adds regression coverage for Dashboard heading semantics, card alignment, font tracking, and regular-text contrast. There are no API, database, schema, or runtime interface changes.
Related issue: N/A
Type of change
Checklist
pnpm typecheckpassespnpm lintpassespnpm testpasses (or targeted tests for my change)pnpm formathas been runmessages.pochanges except in translation PRs — a workflow extracts catalogs on merge tomain.AI-generated code disclosure
Screenshots / test output
pnpm typecheck— passedpnpm lint:json— 0 diagnosticspnpm --filter @emdash-cms/admin build— passedThe full 104-file admin run reported one load-sensitive, unrelated
SeoPaneltiming failure (resets when switching to a different content item). The branch does not touchSeoPanel; its isolated file passes 8/8, while 1,238/1,239 tests passed in the full run.Try this PR
Open a fresh playground →
A full working EmDash site, deployed from this branch. Each visit gets its own session-scoped sandbox: no login needed and no shared state. Try the admin, edit content, hit the public site.
Tracks
fix/admin-typography. Updated automatically when the playground redeploys.