{% import "adminsite/_icons.html" as icons -%} {% block page_title %}{{ title }}{% endblock %} {% for href in admin.stylesheets %} {% endfor %} {% for src in admin.scripts %} {% endfor %} {% include "adminsite/_browser_timezone.html" %} {{ _('Skip to the content') }}
{#- Before the page, so the sidebar is drawn as soon as the page starts to arrive. After a long list, it was missing until the last row came in, and then the page jumped sideways to make room for it. -#}
{#- As tall as the window, so its links scroll under the account menu, which stays at the foot. -#} {#- From a laptop up it folds to its icons. Folded, every name stays for screen readers and shows when the pointer rests on its icon, and a line takes the place of each group's title. -#}
{% if admin.banner %}

{{ admin.banner }}

{% endif %} {#- The messages left for this page, in the corner. An answer from HTMX can add one, as a value saved from the list does. -#}
{%- for message in messages %}{% include "adminsite/_message.html" %}{% endfor -%}
{#- The page sits on a raised panel, so it reads apart from the sidebar. -#}
{% block breadcrumb %}{% endblock %} {#- Once the page scrolls, a line under the header keeps what scrolls beneath it apart from it: the same line the tabs below it draw. -#}
{#- From a tablet up the heading keeps its width, and the buttons move under it where they do not fit beside it. Given only the room the buttons left, it was cut short to a few letters. A phone folds the buttons into one menu instead, and shortens a long heading. -#}
{% block header %}{% endblock %}
{% block header_actions %}{% endblock %}
{#- Relative, so text kept for screen readers ("sr-only") is placed inside this scrolling area. Placed against the page instead, a label low in a long form stretched the page and made the whole window scroll. -#}
{% block content %}{% endblock %}