hugo-theme-termlite/assets/css/010_spacing.css
Eryn Wells 1e6db43354 A {{ 2col }} shortcode and styling to make a 2 column grid
If the shortcode contains only figures, lay it out wide and add XL margins like
other figures.
2025-01-04 10:28:40 -08:00

85 lines
1.8 KiB
CSS

{{- $base := (index . "Base") | default 1 -}}
{{- $unit := (index . "Unit") | default "rem" -}}
{{- $factor := (index . "Factor") | default 1.618 -}}
{{- $scale := partial "base/_size_scale.html" . }}
/***********
# SPACING
***********/
:root {
--space-base: {{ $base }}{{ $unit }};
{{- range $scale }}
--space-{{ .Name }}: calc(var(--space-base) * pow({{ $factor }}, {{ .Value }}));
{{- end }}
--fixed-space-base: 1rem;
{{- range $scale }}
--fixed-space-{{ .Name }}: calc(var(--fixed-space-base) * pow({{ $factor }}, {{ .Value }}));
{{- end }}
--space-paragraph: var(--space-m);
}
{{ range $scale }}
{{ printf "/* Spacing utility classes: %s */" .Name }}
.margin-block-start--{{ .Name }} { margin-block-start: var(--space-{{ .Name }}); }
.margin-block-end--{{ .Name }} { margin-block-end: var(--space-{{ .Name }}); }
.margin-inline-start--{{ .Name }} { margin-inline-start: var(--space-{{ .Name }}); }
.margin-inline-end--{{ .Name }} { margin-inline-end: var(--space-{{ .Name }}); }
{{ end }}
h1, h2, h3, h4, h5, h6 {
margin-block: var(--space-l) var(--space-m);
}
:is(h1, h2, h3, h4, h5, h6),
.page-header
{
+ :is(h1, h2, h3, h4, h5, h6),
+ :is(dl, ol, ul)
{
margin-block-start: 0;
}
}
hr {
margin-block: var(--space-l);
}
:is(dl, p, ol, ul) + :is(dl, p, ol, ul) {
margin-block-start: var(--space-paragraph);
}
/* Figures */
{{-
$elementsWithXLBlockMargins := delimit
(slice
"blockquote"
"table"
".codeblock"
".content-grid"
".figure"
".highlight"
".instagram-media"
".two-column:has(figure:first-child + figure:last-child)"
)
", "
-}}
p + :is({{ $elementsWithXLBlockMargins }}) {
margin-block-start: var(--space-xl);
}
:is({{ $elementsWithXLBlockMargins }}):has(+ p) {
margin-block-end: var(--space-xl);
}