defmodule GitGudWeb.PageHTML do
@moduledoc """
Templates rendered by `PageController`, plus small function
components that the landing page uses.
"""
use GitGudWeb, :html
embed_templates "page_html/*"
@doc "Card used in the landing page feature grid."
attr :icon, :string, required: true
attr :title, :string, required: true
attr :body, :string, required: true
def feature(assigns) do
~H"""
<div class="rounded-box border border-base-300 bg-base-200 p-4 space-y-2">
<div class="flex items-center gap-2">
<.icon name={@icon} class="size-5 text-primary" />
<h3 class="font-semibold">{@title}</h3>
</div>
<p class="text-sm opacity-75">{@body}</p>
</div>
"""
end
@doc "Inline link tile with leading icon and trailing chevron."
attr :icon, :string, required: true
attr :label, :string, required: true
attr :navigate, :string, required: true
def quick_link(assigns) do
~H"""
<.link
navigate={@navigate}
class="flex items-center justify-between rounded-box px-4 py-3 bg-base-200 hover:bg-base-300"
>
<span class="flex items-center gap-2">
<.icon name={@icon} class="size-4 text-primary" /> {@label}
</span>
<.icon name="hero-arrow-right-micro" class="size-4 opacity-60" />
</.link>
"""
end
end
1.3 KiB · text
5af55d9