diff options
| author | gramanas <grm@eyesin.space> | 2026-09-12 11:24:17 +0300 |
|---|---|---|
| committer | gramanas <grm@eyesin.space> | 2026-09-12 11:24:17 +0300 |
| commit | 3eb04b1a2bdf9e53231fe862cfd76327371a9741 (patch) | |
| tree | b38b2d82a47233fd8e0bb18c59e4a8f3dd2412d7 /internal/web/static/blog.css | |
| download | blogspace-3eb04b1a2bdf9e53231fe862cfd76327371a9741.tar.gz blogspace-3eb04b1a2bdf9e53231fe862cfd76327371a9741.tar.bz2 blogspace-3eb04b1a2bdf9e53231fe862cfd76327371a9741.zip | |
Initial multi-tenant blog host
Go + Postgres application serving a management dashboard on the base
domain and one public blog per subdomain. Markdown posts organised in
pages, form-based theme customisation, image uploads stored in Postgres,
JWT cookie sessions with CSRF, superadmin user management, RSS feeds.
Docker/compose deployment and a Makefile-driven dev environment with
seed data.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sd8UPWrvyYCLj97JexNw3A
Diffstat (limited to 'internal/web/static/blog.css')
| -rw-r--r-- | internal/web/static/blog.css | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/internal/web/static/blog.css b/internal/web/static/blog.css new file mode 100644 index 0000000..b09689b --- /dev/null +++ b/internal/web/static/blog.css @@ -0,0 +1,50 @@ +/* Public blog base styles — colours, fonts and widths come from the inline theme <style>. */ +* { box-sizing: border-box; } +img { max-width: 100%; height: auto; } +.wrap { padding: 0 1em; } +.site-header { padding: 0; } +.header-image img { display: block; width: 100%; max-height: 320px; object-fit: cover; } +.header-text { padding: 1.4em 1em; } +.site-title { margin: 0; font-size: 2em; line-height: 1.2; } +.site-title a { text-decoration: none; } +.tagline { margin: 0.3em 0 0; opacity: 0.85; } +.site-nav { border-bottom: 1px solid rgba(0,0,0,0.1); } +.nav-inner { padding: 0.3em 1em; } +.site-nav a { display: inline-block; padding: 0.5em 0.8em; text-decoration: none; font-weight: bold; } +.site-nav a.active, .site-nav a:hover { text-decoration: underline; } +.body-wrap { padding: 1.5em 1em; overflow: hidden; } +.content { padding: 1.5em 2em; border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,0.15); } +.page-title { margin-top: 0; } +.intro { padding-bottom: 1em; margin-bottom: 1.5em; border-bottom: 1px solid rgba(0,0,0,0.1); } +.post { margin-bottom: 2.5em; } +.post-title { margin: 0 0 0.1em; font-size: 1.5em; line-height: 1.25; } +.post-title a { text-decoration: none; } +.post-title a:hover { text-decoration: underline; } +.post-date { margin: 0 0 0.8em; font-size: 0.85em; opacity: 0.7; } +.post.single .post-title { font-size: 2em; } +.post-body blockquote { margin: 1em 0; padding: 0.2em 1em; border-left: 4px solid rgba(0,0,0,0.15); opacity: 0.9; } +.post-body pre { overflow-x: auto; padding: 0.8em 1em; background: rgba(0,0,0,0.06); border-radius: 4px; } +.post-body code { background: rgba(0,0,0,0.06); padding: 0 0.25em; border-radius: 3px; font-size: 0.92em; } +.post-body pre code { background: none; padding: 0; } +.post-body table { border-collapse: collapse; } +.post-body th, .post-body td { border: 1px solid rgba(0,0,0,0.15); padding: 0.3em 0.6em; } +.post-body hr { border: 0; border-top: 1px solid rgba(0,0,0,0.15); } +.pager { margin-top: 2em; padding-top: 1em; border-top: 1px solid rgba(0,0,0,0.1); text-align: center; } +.pager a, .pager span { margin: 0 0.8em; } +.muted { opacity: 0.7; } +.site-footer { margin-top: 1em; padding: 1.5em 0; text-align: center; } +.site-footer p { margin: 0.3em 0; } +.site-footer .small { font-size: 0.85em; opacity: 0.8; } + +/* left sidebar layout: float the menu beside the content */ +.nav-left-sidebar .body-wrap .site-nav { float: left; width: 180px; border: 0; border-radius: 6px; padding: 0.5em 0; } +.nav-left-sidebar .body-wrap .site-nav a { display: block; padding: 0.4em 1em; } +.nav-left-sidebar .body-wrap .site-nav .nav-inner { padding: 0; } +.nav-left-sidebar .body-wrap .content { margin-left: 200px; } +@media (max-width: 700px) { + .content { padding: 1em; } + .site-title { font-size: 1.5em; } + .nav-left-sidebar .body-wrap .site-nav { float: none; width: auto; margin-bottom: 1em; } + .nav-left-sidebar .body-wrap .site-nav a { display: inline-block; } + .nav-left-sidebar .body-wrap .content { margin-left: 0; } +} |
