diff --git a/index.html b/index.html index 91ca898..7c09ff1 100644 --- a/index.html +++ b/index.html @@ -19,38 +19,48 @@ diff --git a/src/templates/explorer.ts b/src/templates/explorer.ts index 34a0adb..4ea1b99 100644 --- a/src/templates/explorer.ts +++ b/src/templates/explorer.ts @@ -7,6 +7,7 @@ */ import type { EcosystemStats } from '../db/queries.js' +import { renderPublicFooter, renderPublicHeadStart, renderPublicNav } from './publicPage.js' export function explorerDashboardHtml(stats: EcosystemStats): string { const tierOrder = ['Elite', 'Trusted', 'Established', 'Emerging', 'Unverified'] @@ -33,32 +34,33 @@ export function explorerDashboardHtml(stats: EcosystemStats): string { }) .join('') - return ` - - - - -Explorer - DJD Agent Score - - + return `${renderPublicHeadStart({ + title: 'Explorer - DJD Agent Score', + description: + 'Live dashboard for DJD trust infrastructure on Base. Explore wallets, certified agents, and the scoring network before your agent transacts.', + path: '/explorer', + })} - - - +${renderPublicNav('explorer', '/pricing', 'View Pricing')}
@@ -734,6 +722,7 @@ async function loadLB() { }); })(); - -` +${renderPublicFooter({ + copy: 'Explorer is the live dashboard view into DJD trust infrastructure on Base. It keeps the same brand system as the pricing and certification surfaces while preserving its operational layout.', +})}` } diff --git a/src/templates/legal.ts b/src/templates/legal.ts index 1165a57..cad2b34 100644 --- a/src/templates/legal.ts +++ b/src/templates/legal.ts @@ -1,36 +1,93 @@ import { getSupportEmail } from '../config/public.js' +import { renderPublicPage } from './publicPage.js' // ─── Legal page templates ─── // White theme (Terms/Privacy), dark GitHub theme (Leaderboard) const SUPPORT_EMAIL = getSupportEmail() -export const wrapHtml = (title: string, content: string) => ` - - - - -${title} - DJD Agent Score - - -${content} - - -` +export const wrapHtml = (title: string, content: string) => + `${renderPublicPage({ + title: `${title} - DJD Agent Score`, + description: `${title} for DJD Agent Score, the trust infrastructure platform for the agent economy.`, + path: title === 'Terms of Service' ? '/terms' : title === 'Privacy Policy' ? '/privacy' : '/', + ctaHref: '/pricing', + ctaLabel: 'View Pricing', + extraCss: ` +.legal-shell{padding-top:56px} +.legal-article{max-width:900px} +.legal-prose h1{ + font-size:28px; + margin-top:38px; + margin-bottom:16px; + color:var(--text); + font-family:'Instrument Serif',serif; + font-weight:400; + letter-spacing:-0.02em; +} +.legal-prose h2{ + font-size:20px; + margin-top:28px; + margin-bottom:12px; + color:var(--text); + font-weight:700; +} +.legal-prose p{ + margin-bottom:16px; + font-size:15px; + color:var(--text-dim); + line-height:1.82; +} +.legal-prose .title{ + text-align:center; + margin-bottom:8px; + font-size:42px; + line-height:1.02; +} +.legal-prose .subtitle{ + text-align:center; + margin-bottom:8px; + font-size:32px; + line-height:1.08; +} +.legal-prose .date{ + text-align:center; + margin-bottom:40px; + color:var(--text-muted); + font-style:italic; +} +.legal-prose .caps{text-transform:uppercase} +.legal-prose table{ + border-collapse:collapse; + width:100%; + margin:18px 0; + border-radius:16px; + overflow:hidden; + border:1px solid var(--border); +} +.legal-prose th, +.legal-prose td{ + border-bottom:1px solid var(--border); + padding:12px 14px; + font-size:14px; + text-align:left; +} +.legal-prose th{ + background:rgba(17,35,58,0.96); + color:var(--text); + font-family:'JetBrains Mono',monospace; + font-size:10px; + font-weight:700; + letter-spacing:0.08em; + text-transform:uppercase; +} +.legal-prose td{color:var(--text-dim)} +.legal-prose tr:nth-child(even) td{background:rgba(7,17,31,0.38)} +`, + footerCopy: + 'DJD Agent Score provides trust infrastructure for the agent economy. Legal pages use the same public brand system as the rest of the product.', + content: `
${content}
`, + })}` // ─── TERMS OF SERVICE ─── diff --git a/src/templates/publicPage.ts b/src/templates/publicPage.ts index a0bdd88..3c7025c 100644 --- a/src/templates/publicPage.ts +++ b/src/templates/publicPage.ts @@ -512,11 +512,15 @@ nav{ .stat-grid{grid-template-columns:1fr} } @media(max-width:760px){ + .nav-outer{position:sticky} nav, .site-shell, .site-footer-inner{padding-left:20px;padding-right:20px} - nav{height:auto;min-height:68px;padding-top:12px;padding-bottom:12px;align-items:flex-start} - .nav-links{width:100%;justify-content:flex-start} + nav{height:auto;min-height:68px;padding-top:12px;padding-bottom:12px;align-items:flex-start;flex-wrap:wrap} + .logo{width:100%} + .nav-links{width:100%;justify-content:flex-start;gap:8px} + .nav-link{padding:7px 10px} + .nav-cta{margin-top:4px} .hero{padding-top:56px} .article-shell{margin-top:56px;padding:20px} } diff --git a/src/templates/reviewer.ts b/src/templates/reviewer.ts index bb9f609..0ba202a 100644 --- a/src/templates/reviewer.ts +++ b/src/templates/reviewer.ts @@ -1,36 +1,32 @@ import { REVIEWER_SESSION_MAX_AGE_SECONDS } from '../middleware/reviewerSession.js' +import { renderPublicPage } from './publicPage.js' const REVIEWER_SESSION_HOURS = Math.floor(REVIEWER_SESSION_MAX_AGE_SECONDS / 3600) export function reviewerPageHtml(): string { - return ` - - - - -Certification Reviewer Dashboard - DJD Agent Score - - - +`, + content: `

Certification Reviewer Dashboard

Internal operations surface for DJD Certify. Start a short-lived reviewer session with the admin key, inspect score and profile context, then approve, request more information, reject, or issue a certification from an approved review.

@@ -589,6 +583,7 @@ async function initDashboard(){ initDashboard(); - -` +
+
`, + }) }