aboutsummaryrefslogtreecommitdiffstats
path: root/internal/web/theme.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/web/theme.go')
-rw-r--r--internal/web/theme.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/internal/web/theme.go b/internal/web/theme.go
index 70b218e..1fc78ad 100644
--- a/internal/web/theme.go
+++ b/internal/web/theme.go
@@ -67,6 +67,10 @@ type Theme struct {
// KeepColumns lays the side columns out even when empty or hidden, so
// the main content keeps the same width on every page.
KeepColumns bool `json:"keep_columns"`
+ // AlignToMain insets the header's and footer's content to the main
+ // column's edges (the backgrounds stay full width), so a blog with
+ // KeepColumns and empty columns reads as one centred column.
+ AlignToMain bool `json:"align_to_main"`
}
// Areas of the blog page, in page order. above/below sit inside the main column.
@@ -250,6 +254,7 @@ func ThemeFromForm(cur Theme, f url.Values) Theme {
t.HeaderOn, t.LeftOn, t.RightOn, t.FooterOn = on("header_on"), on("left_on"), on("right_on"), on("footer_on")
t.LeftWidth, t.RightWidth = num("left_width"), num("right_width")
t.KeepColumns = on("keep_columns")
+ t.AlignToMain = on("align_to_main")
t.normalize()
return t
}
@@ -452,6 +457,10 @@ a:hover {{"{"}}{{if .LinkHover}} color:{{.LinkHover}};{{end}}{{if eq .LinkUnderl
{{- with .TitleSizeCSS}}
.site-title { font-size:{{.}}; }
{{- end}}
+{{- if .AlignToMain}}
+ body.has-left .site-header .wrap, body.has-left .site-footer .wrap { padding-left:calc(1em + {{.LeftWidth}}%); }
+ body.has-right .site-header .wrap, body.has-right .site-footer .wrap { padding-right:calc(1em + {{.RightWidth}}%); }
+{{- end}}
}
{{- with .PaddingPhone}}
@media (max-width: 700px) { .content { padding:{{.}}; } }