berrypod/lib/berrypod_web/components/layouts/shop_root.html.heex

80 lines
3.1 KiB
Plaintext
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="csrf-token" content={get_csrf_token()} />
<meta
name="description"
content={
assigns[:page_description] || @theme_settings.site_description ||
"Welcome to #{@theme_settings.site_name}"
}
/>
<.live_title suffix={" · #{@theme_settings.site_name}"}>
{assigns[:page_title]}
</.live_title>
<% og_title =
if assigns[:page_title],
do: "#{assigns[:page_title]} · #{@theme_settings.site_name}",
else: @theme_settings.site_name
og_description =
assigns[:page_description] ||
@theme_settings.site_description ||
"Welcome to #{@theme_settings.site_name}" %>
<meta property="og:site_name" content={@theme_settings.site_name} />
<meta property="og:title" content={og_title} />
<meta property="og:description" content={og_description} />
<meta property="og:type" content={assigns[:og_type] || "website"} />
<%= if assigns[:og_url] do %>
<link rel="canonical" href={assigns[:og_url]} />
<meta property="og:url" content={assigns[:og_url]} />
<% end %>
<%= if assigns[:og_image] do %>
<meta property="og:image" content={assigns[:og_image]} />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content={assigns[:og_image]} />
<% else %>
<meta name="twitter:card" content="summary" />
<% end %>
<meta name="twitter:title" content={og_title} />
<meta name="twitter:description" content={og_description} />
<!-- Preload critical fonts for the current typography preset -->
<%= for preload <- Berrypod.Theme.Fonts.preload_links(
@theme_settings.typography,
&BerrypodWeb.Endpoint.static_path/1
) do %>
<link rel="preload" href={preload.href} as="font" type="font/woff2" crossorigin />
<% end %>
<!-- Pre-declare layer order so reset < components regardless of load order -->
<style>
@layer properties, reset, primitives, tokens, theme, base, components, layout, utilities, overrides;
</style>
<link phx-track-static rel="stylesheet" href={~p"/assets/css/shop.css"} />
<script defer phx-track-static src={~p"/assets/js/app.js"}>
</script>
<!-- Generated theme CSS with @font-face declarations -->
<style id="theme-css">
<%= Phoenix.HTML.raw(@generated_css) %>
</style>
</head>
<body>
<div
class="themed shop-root"
data-mood={@theme_settings.mood}
data-typography={@theme_settings.typography}
data-shape={@theme_settings.shape}
data-density={@theme_settings.density}
data-grid={@theme_settings.grid_columns}
data-header={@theme_settings.header_layout}
data-sticky={to_string(@theme_settings.sticky_header)}
data-layout={@theme_settings.layout_width}
data-shadow={@theme_settings.card_shadow}
data-button-style={@theme_settings.button_style}
>
{@inner_content}
</div>
</body>
</html>