Conversation
Bundle Size Report
Chunk changes (>1KB)
Compared against main branch (baseline from 4/27/2026, 4:02:54 PM) |
Cloudflare Deployments
|
Apply a typography and UI reskin across the explorer. Introduce HB Set for headings, Pilat for sans-serif, Geist Mono for monospace, alongside polish to top-level list pages and the validators table. - Fonts: add Pilat (8 weights) and HB Set (Light/Regular/Medium) woff2 assets, declare @font-face rules, update --font-heading / --font-display / --font-sans / --font-mono tokens, and preload the primary faces from __root.tsx. HB Set weight kept at Regular (400) so Tailwind font-normal uses the real face rather than synthesizing bold. - Header: shrink Tempo wordmark by 25%, update search placeholder to "Search by address, hash, or block...", simplify address breadcrumb label (drop "Addr" prefix). - Homepage: replace landing-circles.png with an inline SVG (Sphere.tsx) so stroke width, color, and dark-mode inheritance are controllable. - Top-level list pages (Blocks, Tokens, Validators, Fee AMM): add an HB Set page title with a one-line muted Pilat description, indented with ml-2, and drop the duplicated section title so the Sections header shows only the count. - Sections: make `title` optional and render just the count when omitted. - Validators table polish: - Move the "Hide inactive" checkbox into the Sections contextual slot as a rounded switch labeled "Show inactive" with inverted default (inactive hidden). - Replace Check/X icons with a pulsing green / static red dot plus muted Pilat text. - Drop the badge styling on validator names; render as plain sans. - Muted index column with a monospace `#` header for vertical alignment against the tabular numeric cells. - Unify Address and Public Key truncation via Midcut min=6 and fixed column widths so both render at similar character lengths. - Lighten heading weights across NotFound, ErrorBoundary, and the block countdown page so HB Set no longer synthesizes bold. Made-with: Cursor
…, compact search
- light mode: real light palette for previously dark-only tokens, html[data-theme] overrides, pre-hydration bootstrap script, ThemeToggle wired into Header + Footer
- breadcrumbs: split into entity group + mono id ("Transaction" instead of "Tx"), mono + tabular-nums for ids
- gap trim: pt-20 → pt-8 across all list/detail routes
- BlockCard hash: 13px / 33ch max-width so the hash renders in 2 lines instead of 3
- BlockCard number: per-digit slot-machine roll on mount
- Header block number: muted by default + cascading lotto on every tick
- Header: top padding 36→16 (48→24 desktop), mid-width height 88→60
- Network badge: smaller (14→12px), tighter padding
- ExploreInput: new size=compact (34px, 14px text) used in all three Header variants so the placeholder stops clipping
- Fonts: drop HB Set, use Pilat everywhere (--font-heading now points at Pilat)
- Mono: disable OpenType `zero` feature on mono contexts so Geist Mono loses slashed zeros
- Footer: text-ui-meta now uses --color-content-primary so links are visible in light mode
- Light mode field polish: --color-background-alt / --color-base-alt / --color-base-plane-interactive / --color-solid-gray-3 bumped to #fafafa
- DataGrid: min-w-0 + overflow-hidden on header cells so responsive column labels don't visually overlap
- Transaction card: "Relative" pill replaced with muted "· Relative" label, cycle-on-click preserved
Made-with: Cursor
Use theme-aware orb SVGs (landing-orb-light.svg, landing-orb-dark.svg) and reduce container opacity to 20% so the background artwork recedes behind foreground content. Made-with: Cursor
|
@achalvs I updated the PR since preview preview deployments work again. Looking fire so far! |
goksu
left a comment
There was a problem hiding this comment.
The animation added to the top-right block counter and when navigated to the block page is very jittery and off. Might want to either make it smoother or remove it. For blocks they are updating already every second so not sure what the value of animating each increment is.
Separately: was there a specific ask to add the theme selector / changer? We removed this from the top-right of Explorer while back in the spirit of simplifying things. I rather not add it if there are no specific asks. If we are going to add it: bottom nav of links is not a place to put this action.
Co-authored-by: Cursor <cursoragent@cursor.com>
|
Updated for merge: pulled latest |
Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Two-pass reskin of the explorer, covering typography, light mode, header/search density, breadcrumbs, and small QoL animations.
Typography
--font-heading,--font-display,--font-sans).--font-mono), with slashed zeros disabled viafont-feature-settings: "zero" offon mono contexts.styles.css.NotFound,ErrorBoundary, and block countdown so Pilat does not synthesize bold.Light mode
--color-background-primary,--color-content-primary,--color-border-*,--color-card*,--color-base-*, etc.).htmlnow usescolor-scheme: light darkwithhtml[data-theme="light|dark"]overrides so the user preference wins over system.__root.tsxreads the persisted preference fromlocalStorageand appliesdata-theme/style.colorSchemebefore first paint (no FOUC).suppressHydrationWarningon<html>is safe here since the attribute is intentionally mutated before hydration.useThemehook +ThemeTogglebutton mounted in the Header and Footer.Footertext-ui-metanow resolves tovar(--color-content-primary)so links are visible on a white background.Sphereswaps to a lighterlanding-orb-light.svgon light mode.--color-background-alt,--color-base-alt,--color-base-plane-interactive,--color-solid-gray-3) nudged from#f5f5f5→#fafafaso fields don't read as gray blobs on white.Header
h-6→h-[18px]).36→16, desktop48→24). Mid-width inline-search strip88→60.text-[14px] h-[28px]→text-[12px] h-[24px], hardcoded#2C2C2F/#1A1A1Areplaced withborder-base-border bg-surface.text-tertiary) and animates on every tick with a cascading slot-machine roll-in (right-most digit first, 30 ms stagger).Search
Search by address, hash, or block....ExploreInputsize="compact"variant (h-[34px], 14 px text, tighter padding, 24 px submit button) wired into all three headerExploreInputinstances so the placeholder no longer clips.size="large".Breadcrumbs
Home > Transaction > 0x…(Tx spelled out, mono id)Home > Receipt > 0x…Home > Address > 0x…Home > Token > 0x…Home > Block > 14314259font-mono tabular-numsfor vertical alignment.Lists / Tables
Sections.titleis now optional.DataGridheaders getmin-w-0 overflow-hiddenand the inner label getstruncateto stop responsive column labels from overflowing / overlapping on narrow widths.Hide inactivecheckbox moved into the Sections contextual slot as aShow inactiveswitch with inverted semantics; check/X icons replaced with a pulsing green / static red dot; validator names rendered plain-sans (badge removed); muted#index column;Midcut min={6}so Address and Public Key truncate to the same visible length.Detail views
pt-20→pt-8on blocks list, block detail, tx, receipt, address, token, validators, tokens, fee-amm, countdown, demo/empty-state).BlockCardhash renders at 13 px / 33 ch max-width so it fits in two lines instead of three.BlockCard.BlockNumbernon-zero digits animate in lotto-style on mount (leading zeros stay static gray).TxTransactionCard"Relative" pill replaced with a muted "· Relative" suffix; click-to-cycle behaviour preserved.Files and assets
apps/explorer/public/fonts/pilat/*(8 weights).apps/explorer/public/fonts/hb-set/*(3 weights + italics, not currently wired in).apps/explorer/public/landing-orb-light.svgfor light-mode sphere.Dev-only caveat
TIDX_BASIC_AUTHinapps/explorer/.env. Not a code regression.Test plan
pnpm --filter explorer dev(testnet) — visual QA/landing sphere renders in both themes; theme toggle persists via localStorage and survives reload/block/<n>,/tx/<hash>,/receipt/<hash>,/address/<addr>,/token/<addr>/blocksand/block/latest— header hash fits in 2 lines, BlockNumber lotto animates on mount, zeros not slashed/tokens,/validators,/fee-amm— list page title + muted description + table count-only header/address/<addr>Holdings/Transfers/Transactions tabs at narrow widths — no header overlappnpm --filter explorer check:biomepassespnpm --filter explorer check:typespassespnpm --filter explorer buildpassesPre-existing unrelated failures outside this branch's scope:
apps/contract-verificationhas 3 type errors against its generatedEnvtype.apps/explorervitest tooling has a pnpm-pool-workers / tanstack resolver issue.Made with Cursor
Light mode screenshots