diff --git a/assets/views/admin/catalog/categories.html b/assets/views/admin/catalog/categories.html index 65289b2..ce0d2a8 100644 --- a/assets/views/admin/catalog/categories.html +++ b/assets/views/admin/catalog/categories.html @@ -43,11 +43,10 @@
- {{ t(key="edit", lang=lang | default(value='sk')) }} + {{ ui::button(variant="outline-secondary", label=t(key="edit", lang=lang | default(value='sk')), href="/admin/catalog/categories/" ~ row.category.id ~ "/edit", size="px-3 py-1.5 text-xs") }}
- + {{ ui::button(variant="outline-danger", label=t(key="delete", lang=lang | default(value='sk')), type="submit", size="px-3 py-1.5 text-xs") }}
diff --git a/assets/views/admin/catalog/category_form.html b/assets/views/admin/catalog/category_form.html index 4be7bfb..b1e1113 100644 --- a/assets/views/admin/catalog/category_form.html +++ b/assets/views/admin/catalog/category_form.html @@ -9,7 +9,7 @@

{% if category %}{{ t(key="edit-category", lang=lang | default(value='sk')) }}{% else %}{{ t(key="new-category", lang=lang | default(value='sk')) }}{% endif %}

- {{ ui::button(variant="outline-secondary", label=t(key="cancel", lang=lang | default(value='sk')), href="/admin/catalog/categories", pad="px-3 py-2") }} + {{ ui::button(variant="outline-secondary", label=t(key="cancel", lang=lang | default(value='sk')), href="/admin/catalog/categories", size="px-3 py-2 text-sm") }}
{% if product %}{{ t(key="edit-product", lang=lang | default(value='sk')) }}{% else %}{{ t(key="new-product", lang=lang | default(value='sk')) }}{% endif %} - {{ ui::button(variant="outline-secondary", label=t(key="cancel", lang=lang | default(value='sk')), href="/admin/catalog/products", pad="px-3 py-2") }} + {{ ui::button(variant="outline-secondary", label=t(key="cancel", lang=lang | default(value='sk')), href="/admin/catalog/products", size="px-3 py-2 text-sm") }}
- {{ t(key="edit", lang=lang | default(value='sk')) }} - {{ t(key="view", lang=lang | default(value='sk')) }} + {{ ui::button(variant="outline-secondary", label=t(key="edit", lang=lang | default(value='sk')), href="/admin/catalog/products/" ~ product.id ~ "/edit", size="px-3 py-1.5 text-xs") }} + {{ ui::button(variant="outline-secondary", label=t(key="view", lang=lang | default(value='sk')), href="/shop/" ~ product.slug, size="px-3 py-1.5 text-xs") }} - + {{ ui::button(variant="outline-danger", label=t(key="delete", lang=lang | default(value='sk')), type="submit", size="px-3 py-1.5 text-xs") }}
diff --git a/assets/views/admin/orders/index.html b/assets/views/admin/orders/index.html index f951e51..6a0be1c 100644 --- a/assets/views/admin/orders/index.html +++ b/assets/views/admin/orders/index.html @@ -29,7 +29,7 @@ {{ order.total }} {{ order.currency }} - {{ t(key="view", lang=lang | default(value='sk')) }} + {{ ui::button(variant="outline-secondary", label=t(key="view", lang=lang | default(value='sk')), href="/admin/orders/" ~ order.id, size="px-3 py-1.5 text-xs") }} {% endfor %} diff --git a/assets/views/admin/orders/show.html b/assets/views/admin/orders/show.html index 081fc13..b891765 100644 --- a/assets/views/admin/orders/show.html +++ b/assets/views/admin/orders/show.html @@ -7,7 +7,7 @@ {% block content %}

{{ order.order_number }}

- {{ ui::button(variant="outline-secondary", label=t(key="admin-orders", lang=lang | default(value='sk')), href="/admin/orders", pad="px-3 py-2") }} + {{ ui::button(variant="outline-secondary", label=t(key="admin-orders", lang=lang | default(value='sk')), href="/admin/orders", size="px-3 py-2 text-sm") }}
{% if ship_error %} @@ -85,8 +85,7 @@ {{ t(key="order-tracking", lang=lang | default(value='sk')) }}: {{ order.tracking_number }}

{% if order.label_url %} - {{ t(key="order-label", lang=lang | default(value='sk')) }} + {{ ui::button(variant="outline-secondary", label=t(key="order-label", lang=lang | default(value='sk')), href=order.label_url, size="px-3 py-1.5 text-xs", attrs='target="_blank" rel="noopener"') }} {% endif %} {% elif carrier == "none" %}

{{ t(key="order-manual-fulfillment", lang=lang | default(value='sk')) }}

diff --git a/assets/views/home/index.html b/assets/views/home/index.html index 2ffb798..32f8006 100644 --- a/assets/views/home/index.html +++ b/assets/views/home/index.html @@ -1,4 +1,5 @@ {% extends "base.html" %} +{% import "macros/ui.html" as ui %} {% block title %}{{ t(key="brand", lang=lang | default(value='sk')) }}{% endblock title %} diff --git a/assets/views/macros/ui.html b/assets/views/macros/ui.html index 168d5f6..a85fee2 100644 --- a/assets/views/macros/ui.html +++ b/assets/views/macros/ui.html @@ -9,7 +9,7 @@ {{ ui::button(label=t(key="save", lang=lang)) }} {# default primary #} {{ ui::button(label="Add", attrs='hx-post="/x"' | safe) }} {{ ui::button(label="Cancel", variant="outline-secondary", href="/back") }} - {{ ui::button(label="Send", pad="px-6 py-2.5") }} {# keep a non-default size #} + {{ ui::button(label="Send", size="px-6 py-2.5 text-sm") }} {# keep a non-default size #} {{ ui::badge(label="Published", variant="success") }} Notes: @@ -29,7 +29,7 @@ outline : outline-primary | outline-secondary | outline-alternate | outline-danger ghost : ghost-primary | ghost-secondary | ghost-danger #} -{% macro button(label, variant="primary", type="button", href="", attrs="", extra="", pad="px-4 py-2") -%} +{% macro button(label, variant="primary", type="button", href="", attrs="", extra="", icon="", size="px-4 py-2 text-sm") -%} {%- if variant == "secondary" -%}{% set cls = "border border-secondary bg-secondary text-on-secondary focus-visible:outline-secondary dark:border-secondary-dark dark:bg-secondary-dark dark:text-on-secondary-dark dark:focus-visible:outline-secondary-dark" -%} {%- elif variant == "danger" -%}{% set cls = "border border-danger bg-danger text-on-danger focus-visible:outline-danger dark:bg-danger dark:border-danger dark:text-on-danger dark:focus-visible:outline-danger" -%} {%- elif variant == "success" -%}{% set cls = "border border-success bg-success text-on-success focus-visible:outline-success dark:bg-success dark:border-success dark:text-on-success dark:focus-visible:outline-success" -%} @@ -44,9 +44,22 @@ {%- elif variant == "ghost-danger" -%}{% set cls = "bg-transparent text-danger focus-visible:outline-danger dark:text-danger dark:focus-visible:outline-danger" -%} {%- else -%}{% set cls = "border border-primary bg-primary text-on-primary focus-visible:outline-primary dark:border-primary-dark dark:bg-primary-dark dark:text-on-primary-dark dark:focus-visible:outline-primary-dark" -%} {%- endif -%} -{% if href %}{{ label }} +{% if href %}{{ icon | safe }}{{ label }} {%- endmacro button %} +{# Icon-only button (square). Penguin ghost treatment (bg-transparent, + hover:opacity-75); pass the raw as `icon`, an accessible name via + `aria_label`/`sr`, and any Alpine/htmx via `attrs` (raw). variant ∈ + ghost-secondary (default) | ghost-primary | ghost-danger | ghost-alternate. #} +{% macro icon_button(icon, variant="ghost-secondary", type="button", href="", attrs="", extra="", aria_label="", sr="", size="size-9") -%} +{%- if variant == "ghost-primary" -%}{% set cls = "text-primary focus-visible:outline-primary dark:text-primary-dark dark:focus-visible:outline-primary-dark" -%} +{%- elif variant == "ghost-danger" -%}{% set cls = "text-danger focus-visible:outline-danger dark:text-danger dark:focus-visible:outline-danger" -%} +{%- elif variant == "ghost-alternate" -%}{% set cls = "text-outline focus-visible:outline-outline dark:text-outline-dark dark:focus-visible:outline-outline-dark" -%} +{%- else -%}{% set cls = "text-secondary focus-visible:outline-secondary dark:text-secondary-dark dark:focus-visible:outline-secondary-dark" -%} +{%- endif -%} +{% if href %}{{ icon | safe }}{% if sr %}{{ sr }}{% endif %} +{%- endmacro icon_button %} + {# Compact danger alert (form/inline errors). Adapted from penguinui/alert/default-alert.html (danger variant), trimmed to a single line with the danger icon. #} diff --git a/assets/views/shop/_card.html b/assets/views/shop/_card.html index 976d612..ad13bce 100644 --- a/assets/views/shop/_card.html +++ b/assets/views/shop/_card.html @@ -28,13 +28,7 @@ hx-on::after-request="if (event.detail.successful) toast('{{ t(key='cart-added', lang=lang | default(value='sk')) }}')"> - + {{ ui::button(label=t(key="add-to-cart", lang=lang | default(value='sk')), type="submit", extra="w-full", icon='') }} {% else %}

{{ t(key="out-of-stock", lang=lang | default(value='sk')) }}

diff --git a/assets/views/shop/_cart_body.html b/assets/views/shop/_cart_body.html index ab683cb..a1b1020 100644 --- a/assets/views/shop/_cart_body.html +++ b/assets/views/shop/_cart_body.html @@ -44,7 +44,7 @@
- + {{ ui::button(variant="ghost-danger", label=t(key="cart-remove", lang=lang | default(value='sk')), type="submit", size="px-2 py-1 text-xs") }}
@@ -62,7 +62,7 @@
{{ ui::button(variant="outline-secondary", label=t(key="cart-continue", lang=lang | default(value='sk')), href="/shop") }} - {{ ui::button(label=t(key="cart-checkout", lang=lang | default(value='sk')), href="/checkout", pad="px-5 py-2") }} + {{ ui::button(label=t(key="cart-checkout", lang=lang | default(value='sk')), href="/checkout", size="px-5 py-2 text-sm") }}
{% else %}
diff --git a/assets/views/shop/category.html b/assets/views/shop/category.html index 2d902a8..7c0c939 100644 --- a/assets/views/shop/category.html +++ b/assets/views/shop/category.html @@ -1,4 +1,5 @@ {% extends "base.html" %} +{% import "macros/ui.html" as ui %} {% block title %}{{ category.name }}{% endblock title %} diff --git a/assets/views/shop/checkout.html b/assets/views/shop/checkout.html index af4347b..d9b5619 100644 --- a/assets/views/shop/checkout.html +++ b/assets/views/shop/checkout.html @@ -212,7 +212,7 @@ {{ t(key="cart-total", lang=lang | default(value='sk')) }}
- {{ ui::button(label=t(key="checkout-place-order", lang=lang | default(value='sk')), type="submit", attrs=':disabled="!canSubmit"', extra="w-full", pad="px-6 py-2.5") }} + {{ ui::button(label=t(key="checkout-place-order", lang=lang | default(value='sk')), type="submit", attrs=':disabled="!canSubmit"', extra="w-full", size="px-6 py-2.5 text-sm") }} {% endblock content %} diff --git a/assets/views/shop/index.html b/assets/views/shop/index.html index db8db84..8439da9 100644 --- a/assets/views/shop/index.html +++ b/assets/views/shop/index.html @@ -1,4 +1,5 @@ {% extends "base.html" %} +{% import "macros/ui.html" as ui %} {% block title %}{{ t(key="nav-shop", lang=lang | default(value='sk')) }}{% endblock title %} diff --git a/assets/views/shop/order_confirmed.html b/assets/views/shop/order_confirmed.html index d9689c5..42d430c 100644 --- a/assets/views/shop/order_confirmed.html +++ b/assets/views/shop/order_confirmed.html @@ -56,7 +56,7 @@ {% endif %}
- {{ ui::button(variant="outline-secondary", label=t(key="cart-continue", lang=lang | default(value='sk')), href="/shop", pad="px-5 py-2") }} + {{ ui::button(variant="outline-secondary", label=t(key="cart-continue", lang=lang | default(value='sk')), href="/shop", size="px-5 py-2 text-sm") }}
{% endblock content %} diff --git a/assets/views/shop/show.html b/assets/views/shop/show.html index 338d8db..2d62aca 100644 --- a/assets/views/shop/show.html +++ b/assets/views/shop/show.html @@ -48,7 +48,7 @@ - {{ ui::button(label=t(key="add-to-cart", lang=lang | default(value='sk')), type="submit", pad="px-5 py-2") }} + {{ ui::button(label=t(key="add-to-cart", lang=lang | default(value='sk')), type="submit", size="px-5 py-2 text-sm") }}

{{ t(key="in-stock", lang=lang | default(value='sk')) }}: {{ product.stock }}

{% else %}