diff --git a/assets/css/compiled/main.css b/assets/css/compiled/main.css index dff4f602..9b81e8c6 100644 --- a/assets/css/compiled/main.css +++ b/assets/css/compiled/main.css @@ -51,6 +51,7 @@ --radius-lg: 0.5rem; --radius-xl: 0.75rem; --radius-2xl: 1rem; + --radius-3xl: 1.5rem; --ease-in: cubic-bezier(0.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, 0.2, 1); --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); @@ -1219,6 +1220,9 @@ .mb-12 { margin-bottom: calc(var(--spacing) * 12); } + .mb-14 { + margin-bottom: calc(var(--spacing) * 14); + } .mb-16 { margin-bottom: calc(var(--spacing) * 16); } @@ -1762,6 +1766,9 @@ .rounded-2xl { border-radius: var(--radius-2xl); } + .rounded-3xl { + border-radius: var(--radius-3xl); + } .rounded-\[50\%\] { border-radius: 50%; } @@ -1994,6 +2001,12 @@ background-color: color-mix(in oklab, rgba(var(--color-neutral), 1) 25%, transparent); } } + .bg-neutral\/40 { + background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral), 1), 1) 40%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, rgba(var(--color-neutral), 1) 40%, transparent); + } + } .bg-neutral\/50 { background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral), 1), 1) 50%, transparent); @supports (color: color-mix(in lab, red, red)) { @@ -2948,6 +2961,9 @@ .hover\:text-primary-700:hover { color: rgba(var(--color-primary-700), 1); } + .hover\:text-white:hover { + color: #fff; + } .hover\:no-underline:hover { text-decoration-line: none; } @@ -3091,6 +3107,9 @@ .sm\:p-6 { padding: calc(var(--spacing) * 6); } + .sm\:p-8 { + padding: calc(var(--spacing) * 8); + } .sm\:px-6 { padding-inline: calc(var(--spacing) * 6); } @@ -3432,6 +3451,12 @@ .dark\:bg-neutral-900:is(.dark *) { background-color: rgba(var(--color-neutral-900), 1); } + .dark\:bg-neutral-900\/30:is(.dark *) { + background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-900), 1), 1) 30%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, rgba(var(--color-neutral-900), 1) 30%, transparent); + } + } .dark\:bg-neutral-900\/40:is(.dark *) { background-color: color-mix(in srgb, rgba(rgba(var(--color-neutral-900), 1), 1) 40%, transparent); @supports (color: color-mix(in lab, red, red)) { diff --git a/exampleSite/assets/js/home.js b/exampleSite/assets/js/home.js index d60acf9b..89409f9c 100644 --- a/exampleSite/assets/js/home.js +++ b/exampleSite/assets/js/home.js @@ -26,6 +26,32 @@ window.addEventListener("DOMContentLoaded", (event) => { ); }); +function initLayoutLab() { + const lab = document.querySelector("[data-layout-lab]"); + if (!lab) return; + + const buttons = lab.querySelectorAll("[data-layout-preview-button]"); + const panels = lab.querySelectorAll("[data-layout-preview-panel]"); + const activate = (layout) => { + buttons.forEach((button) => { + const active = button.dataset.layoutPreviewButton === layout; + button.setAttribute("aria-selected", String(active)); + button.classList.toggle("bg-primary-600", active); + button.classList.toggle("text-white", active); + button.classList.toggle("dark:border-primary-600", active); + }); + panels.forEach((panel) => { + panel.hidden = panel.dataset.layoutPreviewPanel !== layout; + }); + }; + + buttons.forEach((button) => { + button.addEventListener("click", () => activate(button.dataset.layoutPreviewButton)); + }); +} + +window.addEventListener("DOMContentLoaded", initLayoutLab); + var list_config = ["CardViewProse", "CardViewScreenWidth", "NormalView"]; var titles = { diff --git a/exampleSite/content/layout-lab/_index.md b/exampleSite/content/layout-lab/_index.md new file mode 100644 index 00000000..06181c26 --- /dev/null +++ b/exampleSite/content/layout-lab/_index.md @@ -0,0 +1,13 @@ +--- +title: "Homepage layout lab" +description: "Try Blowfish's built-in homepage layouts without changing your site configuration." +type: "layout-lab" +--- + +{{< lead >}} +Choose a layout below to preview how the same content behaves across Blowfish's built-in homepage patterns. +{{< /lead >}} + +{{< alert "circle-info" >}} +This is an example-site playground. Your own site selects a homepage layout with `homepage.layout` in `params.toml`. +{{< /alert >}} diff --git a/exampleSite/layouts/layout-lab/list.html b/exampleSite/layouts/layout-lab/list.html new file mode 100644 index 00000000..9a0d4f2c --- /dev/null +++ b/exampleSite/layouts/layout-lab/list.html @@ -0,0 +1,33 @@ +{{ define "main" }} + {{ $jsHome := resources.Get "js/home.js" | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} +
+

Interactive preview

+

{{ .Title }}

+
{{ .Content }}
+
+ +
+
+ {{ range $index, $layout := slice "landing" "background" "hero" "profile" "page" "card" }} + + {{ end }} +
+ +
+ {{ range $index, $layout := slice "landing" "background" "hero" "profile" "page" "card" }} +
+ {{ partial (printf "home/%s.html" $layout) $ }} +
+ {{ end }} +
+
+ + +{{ end }}