- scaffold 14 placeholder crates (app, db, engine, gen, http, logic,
policy, ql, service, sub, txn, ui, value, wal) — empty Cargo.toml +
src/lib.rs to receive code phase-by-phase from `rt`
- restructure docs/examples/ecommerce into multi-app layout: apps/admin
and apps/storefront, with shared/ types/logic/components, per-app
app.wo + wo.toml, and reusable .htmlx components (layout, money,
order-row)
- add reference/rest/{blog,ecommerce}.rest — VS Code/JetBrains HTTP
request files driving the running prototype, including 501/404/405
expectations for stubbed endpoints
- add docs/plan/09-concurrency-scaleout.md and docs/plan/ui/00-overview.md;
refine docs/plan/assembly/02-writeonce-stance.md
- refresh templates (about, article, header/footer, home, layout, styles)
and add static favicon/logo
- add infra/sync.sh and tighten .gitignore for reference/ symlinks
65 lines
3.1 KiB
CSS
65 lines
3.1 KiB
CSS
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; line-height: 1.7; max-width: 720px; margin: 0 auto; padding: 2rem 1.5rem; color: #2d2d2d; background: #fafafa; }
|
|
|
|
/* Navigation */
|
|
header nav { display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; border-bottom: 2px solid #222; margin-bottom: 2.5rem; }
|
|
header nav .site-name { text-decoration: none; display: flex; align-items: center; }
|
|
.site-logo { height: 28px; width: auto; }
|
|
header nav .nav-links { display: flex; gap: 1.5rem; }
|
|
header nav .nav-links a { text-decoration: none; color: #555; font-size: 0.95rem; }
|
|
header nav .nav-links a:hover { color: #111; }
|
|
|
|
/* Hero */
|
|
.hero { margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid #e0e0e0; }
|
|
.hero h1 { font-size: 2rem; letter-spacing: -1px; margin-bottom: 0.25rem; }
|
|
.tagline { color: #666; font-size: 1.05rem; }
|
|
|
|
/* Headings */
|
|
h1 { font-size: 1.75rem; margin-bottom: 1rem; letter-spacing: -0.5px; }
|
|
h2 { font-size: 1.3rem; margin: 2rem 0 0.75rem; }
|
|
h3 { font-size: 1.1rem; margin: 1.5rem 0 0.5rem; }
|
|
|
|
/* Text */
|
|
p { margin-bottom: 1rem; }
|
|
a { color: #0066cc; }
|
|
a:hover { color: #004499; }
|
|
|
|
/* Article cards */
|
|
.recent-posts h2 { margin-bottom: 1rem; font-size: 1.1rem; text-transform: uppercase; letter-spacing: 1px; color: #888; font-weight: 600; }
|
|
.article-card { padding: 1.25rem 0; border-bottom: 1px solid #eee; }
|
|
.article-card h2 { margin: 0 0 0.25rem; font-size: 1.2rem; }
|
|
.article-card a { text-decoration: none; color: #222; }
|
|
.article-card a:hover { color: #0066cc; }
|
|
.article-card .meta { color: #999; font-size: 0.85rem; margin-bottom: 0.25rem; }
|
|
.article-card .tags { color: #888; font-size: 0.8rem; }
|
|
|
|
/* Blog post */
|
|
.blog-post .post-header { margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid #eee; }
|
|
.blog-post .post-header h1 { margin-bottom: 0.5rem; }
|
|
.blog-post .post-content { margin-bottom: 2rem; }
|
|
.blog-post .post-content p { margin-bottom: 1rem; }
|
|
.blog-post .post-content ul, .blog-post .post-content ol { margin: 1rem 0; padding-left: 1.5rem; }
|
|
.blog-post .post-content li { margin-bottom: 0.5rem; }
|
|
.blog-post .post-footer { padding-top: 1.5rem; border-top: 1px solid #eee; }
|
|
.blog-post .post-footer a { color: #555; text-decoration: none; font-size: 0.9rem; }
|
|
.blog-post .post-footer a:hover { color: #111; }
|
|
.meta { color: #888; font-size: 0.9rem; }
|
|
|
|
/* About page */
|
|
.about-page h2 { margin-top: 2rem; }
|
|
|
|
/* Contact links */
|
|
.contact-links { list-style: none; padding: 0; }
|
|
.contact-links li { padding: 0.4rem 0; }
|
|
.contact-links a { color: #0066cc; text-decoration: none; }
|
|
.contact-links a:hover { text-decoration: underline; }
|
|
|
|
/* Code */
|
|
code { background: #f0f0f0; padding: 0.15rem 0.4rem; border-radius: 3px; font-size: 0.9em; }
|
|
pre { background: #f0f0f0; padding: 1rem; border-radius: 6px; overflow-x: auto; margin: 1rem 0; }
|
|
pre code { background: none; padding: 0; }
|
|
|
|
/* Footer */
|
|
footer { margin-top: 3rem; padding-top: 1rem; border-top: 2px solid #222; color: #999; font-size: 0.85rem; }
|
|
footer a { color: #999; text-decoration: none; }
|
|
footer a:hover { color: #555; }
|