Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
2da9992
feat: update color palette for purple/pink rebrand
paulbalaji Jan 3, 2026
cfc559b
feat: update typography to PP Valve and PP Fraktion Mono
paulbalaji Jan 3, 2026
6841d01
feat: update logos and favicon for purple rebrand
paulbalaji Jan 3, 2026
42ebc06
feat: apply rebrand styling to UI components
paulbalaji Jan 3, 2026
5db2da4
feat: update OG images with purple brand theme
paulbalaji Jan 3, 2026
a388205
fix: use purple for delivered checkmark icon
paulbalaji Jan 3, 2026
6f2b3b3
fix: use purple for envelope and fuel pump icons
paulbalaji Jan 3, 2026
0b4ea51
refine: polish rebrand styling and remove legacy fonts
paulbalaji Jan 4, 2026
c9cfcaf
refine: favicon scaling, OG image footer, and filter button styling
paulbalaji Jan 4, 2026
5eddcf0
prettier
paulbalaji Jan 4, 2026
3ac18f1
refine: use accent-600 for buttons and primary-500 for nav highlights
paulbalaji Feb 7, 2026
0c2c7aa
fix: align warp route overview heading color
paulbalaji Feb 18, 2026
97ecffe
style: align warp route connector colors with primary theme
paulbalaji Feb 18, 2026
e2fdb58
style: align warp token-type badges to theme palette
paulbalaji Feb 18, 2026
8f05e9f
fix: restore OGHead in SSR path for social sharing metadata
paulbalaji Mar 5, 2026
a1d420e
fix: use Color.primary for RefreshIcon in CollateralCards
paulbalaji Mar 6, 2026
4affa8a
fix: deduplicate latency parsing in OG handler
paulbalaji Mar 6, 2026
1605090
feat: add AWS S3 font downloader script
paulbalaji Jan 13, 2026
a94d703
fix: update lockfile
paulbalaji Jan 13, 2026
e6c2a5f
fix: simplify S3 stream piping, remove unnecessary conversion
paulbalaji Mar 5, 2026
c9c7e37
fix: clean up partial font files on failed download
paulbalaji Mar 5, 2026
10d44ec
fix: skip font download if file already exists
paulbalaji Mar 5, 2026
d3f319d
fix: exit non-zero when configured font downloads fail
paulbalaji Mar 6, 2026
4db667e
fix: add .npmrc to enable pnpm pre/post script hooks
paulbalaji Mar 6, 2026
cb2bdea
fix: regenerate lockfile for tronweb version mismatch
paulbalaji Mar 13, 2026
d9b82d7
fix: update lockfile
paulbalaji Jan 13, 2026
ef1d002
refine: unify purple color scheme and boxy styling across UI
paulbalaji Jan 5, 2026
6e64f23
fix: override widget white backgrounds to use cream (#f8f8ff)
paulbalaji Jan 5, 2026
360276e
refine: add darker backdrop fade for chain picker modal
paulbalaji Jan 5, 2026
1532d02
fix: modal backdrop z-index and gray color matching
paulbalaji Jan 5, 2026
92c69f6
fix: ensure modal panel appears above backdrop
paulbalaji Jan 5, 2026
0343be4
refine: match widget hover states and gray backgrounds
paulbalaji Jan 5, 2026
8daadf0
refine: update filter buttons and checkmarks to pink accent-600
paulbalaji Jan 5, 2026
cf4b922
revert: checkmarks back to purple (primary-500)
paulbalaji Jan 5, 2026
fd564f8
feat: use more muted styling for panel headings
paulbalaji Jan 13, 2026
f80c055
fix: ensure consistent header height across pages
paulbalaji Jan 13, 2026
f9b6165
refactor: use Color enum instead of hardcoded hex values
paulbalaji Feb 7, 2026
323dcc6
fix: restore default truncation in KeyValueRow when displayWidth is u…
paulbalaji Feb 7, 2026
e94debd
fix: use darker purple (#4c1d95) for timeline tracker stages
paulbalaji Feb 7, 2026
7a9d85f
fix: increase border radius and spacing for less blocky UI
paulbalaji Feb 10, 2026
d978967
fix: remove duplicate grid in ContentDetailsCard and revert over-spacing
paulbalaji Feb 10, 2026
8249c75
Replace footer Discord link with support link/icon
paulbalaji Feb 19, 2026
8a3cb45
Darken tooltip icons and restyle warp route ID pill
paulbalaji Feb 19, 2026
5b0114a
Use nexus support icon in footer and remove duplicate support link
paulbalaji Feb 19, 2026
9e47a56
Add Stake footer link and centralize stake URL
paulbalaji Feb 19, 2026
7933dcb
fix: cursor bot review - statusTitle ordering, hover color, rounded-l…
paulbalaji Mar 5, 2026
82f6b77
fix: add flex-1 to KeyValueRow display container, remove unused accen…
paulbalaji Mar 5, 2026
99731f6
fix: SectionCard overflow-auto + className fallback, CheckmarkIcon color
paulbalaji Mar 5, 2026
1f31bec
feat: rebrand updates - fraktion mono font, new logo lockup, purple b…
paulbalaji Mar 5, 2026
dfe90cc
fix: chain metadata modal - tooltip visibility, status circles, plus …
paulbalaji Mar 5, 2026
ab6aa4d
fix: add min-w-0 for flex truncation, remove unused PPValve font from OG
paulbalaji Mar 5, 2026
02ab429
fix: increase header logo size and grid background visibility
paulbalaji Mar 5, 2026
eb598af
fix: revert purple tooltip icons back to subtle gray
paulbalaji Mar 5, 2026
501cf75
fix: make header logo much larger with width-based sizing
paulbalaji Mar 5, 2026
1b17d9e
fix: fade grid background from invisible at top to visible below fold
paulbalaji Mar 5, 2026
d7e416b
fix: auto-trim logo PNG padding (2500x1000 -> 2044x499)
paulbalaji Mar 5, 2026
4ad73be
fix: OG image - vibrant accent line, fading grid, solid chain boxes
paulbalaji Mar 6, 2026
19d3ec8
fix: OG image - stronger grid visibility, restore chain color tints
paulbalaji Mar 6, 2026
b558da7
fix: remove OG footer divider line, grid background suffices
paulbalaji Mar 6, 2026
e8f517c
fix: use HYP_Lockup_White logo in OG images instead of text
paulbalaji Mar 6, 2026
dc0b7f4
fix: increase OG header logo size
paulbalaji Mar 6, 2026
d4c1fa9
fix: grid SVG dimensions to multiples of 60 to prevent tiling seams
paulbalaji Mar 6, 2026
7a8414f
feat: uppercase nav text, sharper corners, swap PNG logo for SVG
paulbalaji Mar 6, 2026
7248d97
fix: add explicit width to OG image logos for Satori rendering
paulbalaji Mar 6, 2026
4b2aeb8
fix: replace PNG logo with SVG in OG images, delete unused PNG
paulbalaji Mar 6, 2026
dbec9d0
fix: crop SVG viewBox padding, sharp corners, tighter table rows
paulbalaji Mar 6, 2026
70774d7
fix: bring back rounded-sm corners, reduce OG border radii, bigger OG…
paulbalaji Mar 6, 2026
8782893
fix: reduce rounding to 1px for sharper edges
paulbalaji Mar 6, 2026
80a14d7
fix: override tailwind borderRadius scale globally for sharper corners
paulbalaji Mar 6, 2026
38439a0
fix: remove conflicting extend.borderRadius, fix mobile dropdown bg
paulbalaji Mar 6, 2026
6daadc8
fix: mobile dropdown uses dark translucent bg matching header
paulbalaji Mar 6, 2026
3fc7c62
fix: reduce OG border radii to 2px to match UI
paulbalaji Mar 6, 2026
df14798
fix: darken tooltip background for better contrast against header
paulbalaji Mar 13, 2026
d92e703
fix: scope dark background to mobile nav only, not all Headless UI pa…
paulbalaji Mar 13, 2026
abca46e
feat: replace purple dot with chain logo in transaction card headers
paulbalaji Mar 13, 2026
1e02732
fix: bump message status bar to text-lg to restore heading hierarchy
paulbalaji Mar 13, 2026
119d347
feat: parse and display warp route fees from origin tx logs
paulbalaji Mar 6, 2026
23a5f49
fix: address review issues in warp fee parsing
paulbalaji Mar 6, 2026
804c3ed
style: run prettier on src/
paulbalaji Mar 6, 2026
897db9a
fix: filter ERC20 Transfer events by token contract address
paulbalaji Mar 6, 2026
7748d09
fix: handle scale routes in warp fee calculation
paulbalaji Mar 6, 2026
9ac0dfc
refactor: reuse getEffectiveDecimals for sent amount normalization
paulbalaji Mar 6, 2026
468fccc
refactor: reuse getWarpRouteAmountParts for scale division
paulbalaji Mar 6, 2026
26ee161
fix: add staleTime: Infinity to useWarpFees query
paulbalaji Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# AWS S3 Font Storage (server-side only, used by prebuild script)
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_S3_BUCKET=your_bucket_name
AWS_REGION=us-east-1
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
enable-pre-post-scripts=true
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"zustand": "^4.5.5"
},
"devDependencies": {
"@aws-sdk/client-s3": "^3.967.0",
"@eslint/eslintrc": "^3.3.3",
"@eslint/js": "^9.39.1",
"@tanstack/eslint-plugin-query": "^5.28.6",
Expand Down Expand Up @@ -75,6 +76,8 @@
},
"scripts": {
"clean": "rm -rf dist cache .next",
"prebuild": "node scripts/fetch-fonts.mjs",
"fetch-fonts": "node --env-file=.env.local scripts/fetch-fonts.mjs",
"dev": "next dev",
"build": "next build",
"typecheck": "tsc",
Expand Down
1,373 changes: 715 additions & 658 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

Binary file modified public/android-chrome-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/android-chrome-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions public/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed public/fonts/NeueHaasDisplayBold.woff
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayBold.woff2
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayLight.woff
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayLight.woff2
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayMedium.ttf
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayMedium.woff
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayMedium.woff2
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayRoman.woff
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayRoman.woff2
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayThin.woff
Binary file not shown.
Binary file removed public/fonts/NeueHaasDisplayThin.woff2
Binary file not shown.
Binary file removed public/fonts/SpaceGrotesk-Medium.ttf
Binary file not shown.
4 changes: 2 additions & 2 deletions public/images/arrow-right-gradient.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 8 additions & 1 deletion public/images/background.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions public/images/hyperlane-explorer-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 9 additions & 9 deletions public/images/hyperlane-logo-color.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/mstile-150x150.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
94 changes: 94 additions & 0 deletions scripts/fetch-fonts.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3';
import { createWriteStream, existsSync, mkdirSync, unlinkSync } from 'fs';
import { dirname, join } from 'path';
import { pipeline } from 'stream/promises';
import { fileURLToPath } from 'url';

const __dirname = dirname(fileURLToPath(import.meta.url));
const FONTS_DIR = join(__dirname, '..', 'public', 'fonts');

// Font files to download from S3
const FONTS = [
// Variable fonts for CSS (browser rendering)
'PPValve-PlainVariable.woff2',
'PPFraktionMono-Variable.woff2',
// TTF fonts for OG image generation (Satori requires TTF)
'PPValve-PlainMedium.ttf',
'PPFraktionMono-Regular.ttf',
];

async function fetchFonts() {
const { AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_S3_BUCKET, AWS_REGION } = process.env;

// Gracefully skip if environment variables are not configured
if (!AWS_ACCESS_KEY_ID || !AWS_SECRET_ACCESS_KEY || !AWS_S3_BUCKET) {
console.warn('AWS environment variables not configured - skipping font download');
console.warn(
'To enable font fetching, set: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_S3_BUCKET',
);
return;
}

const s3 = new S3Client({
region: AWS_REGION || 'us-east-1',
credentials: {
accessKeyId: AWS_ACCESS_KEY_ID,
secretAccessKey: AWS_SECRET_ACCESS_KEY,
},
});

// Ensure fonts directory exists
if (!existsSync(FONTS_DIR)) {
mkdirSync(FONTS_DIR, { recursive: true });
console.log(`Created directory: ${FONTS_DIR}`);
}

const results = { success: [], failed: [] };

// Download each font, continuing on failure
for (const fontFile of FONTS) {
const outputPath = join(FONTS_DIR, fontFile);

if (existsSync(outputPath)) {
console.log(`Skipping ${fontFile} (already exists)`);
results.success.push(fontFile);
continue;
}

try {
console.log(`Downloading ${fontFile}...`);

const command = new GetObjectCommand({
Bucket: AWS_S3_BUCKET,
Key: fontFile,
});

const response = await s3.send(command);
const writeStream = createWriteStream(outputPath);

await pipeline(response.Body, writeStream);

console.log(`Downloaded ${fontFile}`);
results.success.push(fontFile);
} catch (error) {
console.warn(`Failed to download ${fontFile}: ${error.message}`);
try { unlinkSync(outputPath); } catch {}
results.failed.push(fontFile);
}
}

// Summary
console.log(
`\nFont download complete: ${results.success.length} succeeded, ${results.failed.length} failed`,
);

if (results.failed.length > 0) {
console.error('Failed fonts:', results.failed.join(', '));
process.exit(1);
}
}

fetchFonts().catch((error) => {
console.error('Font fetch script failed:', error.message);
process.exit(1);
});
Loading