feat: Pro limit 2,500/mo, website templating, cleanup
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 2m24s
All checks were successful
Deploy to Production / Deploy to Server (push) Successful in 2m24s
- Set Pro tier limit to 2,500 PDFs/month (was unlimited/5000) - Added Pro limit enforcement in usage middleware - Updated landing page, JSON-LD, and Stripe product description - Created build-time HTML templating (partials for nav/footer/styles) - Source files in public/src/, partials in public/partials/ - Build script: node scripts/build-html.cjs - Deleted stale backup file - Fixed index.html nav logo to use <a> tag for consistency
This commit is contained in:
parent
d3015826e5
commit
aab6bf3bee
15 changed files with 556 additions and 407 deletions
|
|
@ -20,42 +20,29 @@ body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Robo
|
|||
a { color: var(--accent); text-decoration: none; transition: color 0.2s; }
|
||||
a:hover { color: var(--accent-hover); }
|
||||
.container { max-width: 800px; margin: 0 auto; padding: 0 24px; }
|
||||
|
||||
/* Nav */
|
||||
nav { padding: 20px 0; border-bottom: 1px solid var(--border); }
|
||||
nav .container { display: flex; align-items: center; justify-content: space-between; }
|
||||
.logo { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.5px; color: var(--fg); display: flex; align-items: center; gap: 8px; }
|
||||
.logo { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.5px; color: var(--fg); display: flex; align-items: center; gap: 8px; text-decoration: none; }
|
||||
.logo span { color: var(--accent); }
|
||||
.nav-links { display: flex; gap: 28px; align-items: center; }
|
||||
.nav-links a { color: var(--muted); font-size: 0.9rem; font-weight: 500; }
|
||||
.nav-links a:hover { color: var(--fg); }
|
||||
|
||||
/* Content */
|
||||
main { padding: 60px 0 80px; }
|
||||
h1 { font-size: 2.5rem; font-weight: 800; margin-bottom: 16px; letter-spacing: -1px; }
|
||||
h2 { font-size: 1.5rem; font-weight: 700; margin: 32px 0 16px; color: var(--accent); }
|
||||
h3 { font-size: 1.2rem; font-weight: 600; margin: 24px 0 12px; }
|
||||
p { margin-bottom: 16px; line-height: 1.7; }
|
||||
ul { margin-bottom: 16px; padding-left: 24px; }
|
||||
li { margin-bottom: 8px; line-height: 1.7; }
|
||||
.highlight { background: rgba(52,211,153,0.08); border: 1px solid rgba(52,211,153,0.15); border-radius: 8px; padding: 16px; margin: 24px 0; color: var(--accent); font-size: 0.9rem; }
|
||||
.info { background: rgba(96,165,250,0.08); border: 1px solid rgba(96,165,250,0.15); border-radius: 8px; padding: 16px; margin: 24px 0; color: #60a5fa; font-size: 0.9rem; }
|
||||
.warning { background: rgba(251,191,36,0.08); border: 1px solid rgba(251,191,36,0.15); border-radius: 8px; padding: 16px; margin: 24px 0; color: #fbbf24; font-size: 0.9rem; }
|
||||
|
||||
/* Footer */
|
||||
footer { padding: 40px 0; border-top: 1px solid var(--border); }
|
||||
footer .container { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
|
||||
.content { padding: 60px 0; min-height: 60vh; }
|
||||
.content h1 { font-size: 2rem; font-weight: 800; margin-bottom: 32px; letter-spacing: -1px; }
|
||||
.content h2 { font-size: 1.3rem; font-weight: 700; margin: 32px 0 16px; color: var(--fg); }
|
||||
.content h3 { font-size: 1.1rem; font-weight: 600; margin: 24px 0 12px; color: var(--fg); }
|
||||
.content p, .content li { color: var(--muted); margin-bottom: 12px; }
|
||||
.content ul, .content ol { padding-left: 24px; }
|
||||
.content strong { color: var(--fg); }
|
||||
footer { padding: 32px 0; border-top: 1px solid var(--border); margin-top: 60px; }
|
||||
footer .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
|
||||
.footer-left { color: var(--muted); font-size: 0.85rem; }
|
||||
.footer-links { display: flex; gap: 24px; flex-wrap: wrap; }
|
||||
.footer-links { display: flex; gap: 20px; flex-wrap: wrap; }
|
||||
.footer-links a { color: var(--muted); font-size: 0.85rem; }
|
||||
.footer-links a:hover { color: var(--fg); }
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 640px) {
|
||||
main { padding: 40px 0 60px; }
|
||||
h1 { font-size: 2rem; }
|
||||
.footer-links { gap: 16px; }
|
||||
@media (max-width: 768px) {
|
||||
footer .container { flex-direction: column; text-align: center; }
|
||||
.nav-links { gap: 16px; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
|
@ -273,4 +260,4 @@ footer .container { display: flex; align-items: center; justify-content: space-b
|
|||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue