Fix header action alignment and language switcher spacing

This commit is contained in:
2026-05-13 22:00:15 +02:00
parent c4da0045fb
commit a6bab14970
3 changed files with 180 additions and 79 deletions

View File

@@ -0,0 +1,168 @@
header .header-inner .container {
display: flex;
align-items: center;
gap: 0.75rem;
}
header .page-menu-bar {
flex: 1 1 auto;
min-width: 0;
}
header .header-right {
flex: 0 0 auto;
margin-left: 0.5rem;
display: flex;
align-items: center;
gap: 0.5rem;
}
header .header-right .language-dropdown,
header .header-right .basket-dropdown {
display: flex;
align-items: center;
justify-content: center;
flex: 0 0 40px;
width: 40px;
height: 40px;
min-width: 40px;
min-height: 40px;
margin: 0 !important;
padding: 0 !important;
box-sizing: border-box;
}
header .header-right > a.user-button.menu-circle {
flex: 0 0 40px;
width: 40px;
height: 40px;
min-width: 40px;
min-height: 40px;
margin: 0;
padding: 0;
box-sizing: border-box;
}
header .header-right .menu-circle i,
header .header-right .menu-circle svg {
display: block;
line-height: 1;
}
header .header-right .menu-circle {
display: flex;
align-items: center;
justify-content: center;
flex-direction: row !important;
width: 40px;
height: 40px;
min-width: 40px;
min-height: 40px;
padding: 0;
line-height: 1;
align-self: center;
box-sizing: border-box;
}
header .header-right .dropdown-toggle.nav-link.menu-circle,
header .header-right .dropdown-toggle.user-button.menu-circle {
padding: 0;
}
@media (max-width: 1460px) and (min-width: 992px) {
header .page-menu-bar .navbar-nav > li > a,
header .page-menu-bar .navbar-nav > li > span,
header .page-menu-bar .navbar-nav > li > button {
font-size: 2.15rem;
padding-left: 0.7rem;
padding-right: 0.7rem;
white-space: nowrap;
}
}
header .language-dropdown {
display: flex;
align-items: center;
justify-content: center;
}
header .language-dropdown .dropdown-toggle::after {
display: none;
}
header .language-dropdown .dropdown-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
flex-direction: row;
gap: 0;
width: 40px;
height: 40px;
padding: 0;
color: #fff;
line-height: 1;
transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}
header .language-dropdown .dropdown-toggle:hover,
header .language-dropdown .dropdown-toggle:focus-visible {
transform: translateY(-1px);
box-shadow: 0 10px 22px rgba(15, 23, 42, 0.18);
}
header .language-dropdown .dropdown-toggle .language-icon,
header .language-dropdown .dropdown-toggle .language-chevron {
display: block;
}
header .language-dropdown .dropdown-toggle .language-icon {
width: 18px;
height: 18px;
font-size: 18px;
line-height: 18px;
transform: none;
}
header .basket-dropdown .dropdown-toggle svg {
width: 18px;
height: 18px;
}
header .language-dropdown .dropdown-toggle .language-chevron {
display: none;
}
header .language-dropdown .dropdown-toggle.show .language-chevron {
transform: rotate(180deg);
opacity: 1;
}
header .language-dropdown .dropdown-menu {
min-width: 15rem;
padding: 0.5rem;
border-radius: 0.9rem;
border: 1px solid rgba(15, 23, 42, 0.08);
box-shadow: 0 16px 44px rgba(15, 23, 42, 0.18);
}
header .language-dropdown .dropdown-menu .dropdown-item {
border-radius: 0.65rem;
padding: 0.55rem 0.7rem;
font-weight: 600;
color: #0f172a;
transition: background-color 120ms ease, color 120ms ease;
}
header .language-dropdown .dropdown-menu .dropdown-item:hover,
header .language-dropdown .dropdown-menu .dropdown-item:focus-visible {
background: rgba(2, 132, 199, 0.1);
color: #0b5aa3;
}
header .language-dropdown .dropdown-menu svg {
width: 1.35rem;
height: auto;
border-radius: 0.2rem;
box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
flex: 0 0 auto;
}

View File

@@ -15,6 +15,7 @@
{{ block.super }} {{ block.super }}
{# Ensure Carbasa webshop styling is present so responsive header/footer render correctly. #} {# Ensure Carbasa webshop styling is present so responsive header/footer render correctly. #}
<link rel="stylesheet" type="text/x-scss" href="{% static 'carbasa/webshop_base.scss' %}"> <link rel="stylesheet" type="text/x-scss" href="{% static 'carbasa/webshop_base.scss' %}">
<link rel="stylesheet" href="{% static 'mandelstudio/css/header-overrides.css' %}">
{% endblock %} {% endblock %}
{% block extrahead %} {% block extrahead %}
@@ -25,69 +26,6 @@
<link rel="preconnect" href="https://www.google-analytics.com/"> <link rel="preconnect" href="https://www.google-analytics.com/">
{% endif %} {% endif %}
{{ block.super }} {{ block.super }}
<style>
header .language-dropdown .dropdown-toggle::after { display: none; }
header .language-dropdown .dropdown-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
flex-direction: column;
gap: 1px;
color: #fff;
line-height: 1;
transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}
header .language-dropdown .dropdown-toggle:hover,
header .language-dropdown .dropdown-toggle:focus-visible {
transform: translateY(-1px);
box-shadow: 0 10px 22px rgba(15, 23, 42, .18);
}
header .language-dropdown .dropdown-toggle .language-icon,
header .language-dropdown .dropdown-toggle .language-chevron {
display: block;
}
header .language-dropdown .dropdown-toggle .language-icon {
width: 18px;
height: 18px;
}
header .language-dropdown .dropdown-toggle .language-chevron {
width: 10px;
height: 10px;
opacity: .9;
transition: transform 120ms ease, opacity 120ms ease;
}
header .language-dropdown .dropdown-toggle.show .language-chevron {
transform: rotate(180deg);
opacity: 1;
}
header .language-dropdown .dropdown-menu {
min-width: 15rem;
padding: .5rem;
border-radius: 0.9rem;
border: 1px solid rgba(15, 23, 42, .08);
box-shadow: 0 16px 44px rgba(15, 23, 42, .18);
}
header .language-dropdown .dropdown-menu .dropdown-item {
border-radius: .65rem;
padding: .55rem .7rem;
font-weight: 600;
color: #0f172a;
transition: background-color 120ms ease, color 120ms ease;
}
header .language-dropdown .dropdown-menu .dropdown-item:hover,
header .language-dropdown .dropdown-menu .dropdown-item:focus-visible {
background: rgba(2, 132, 199, .10);
color: #0b5aa3;
}
header .language-dropdown .dropdown-menu svg {
width: 1.35rem;
height: auto;
border-radius: .2rem;
box-shadow: 0 1px 0 rgba(15, 23, 42, .06);
flex: 0 0 auto;
}
</style>
{% if cookie_jar.needs_approval %} {% if cookie_jar.needs_approval %}
<link rel="stylesheet" type="text/css" href="{% static 'cookie_jar/css/cookie_jar.css' %}"> <link rel="stylesheet" type="text/css" href="{% static 'cookie_jar/css/cookie_jar.css' %}">
{% endif %} {% endif %}

View File

@@ -5,7 +5,7 @@
{% get_available_languages as available_languages %} {% get_available_languages as available_languages %}
{% get_language_info_list for available_languages as languages %} {% get_language_info_list for available_languages as languages %}
<div class="dropdown language-dropdown me-2"> <div class="dropdown language-dropdown">
<button <button
type="button" type="button"
class="dropdown-toggle user-button menu-circle" class="dropdown-toggle user-button menu-circle"
@@ -14,14 +14,7 @@
aria-expanded="false" aria-expanded="false"
aria-label="{% trans 'Language switcher' %}" aria-label="{% trans 'Language switcher' %}"
> >
<svg class="language-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false"> <i class="fa fa-globe language-icon" aria-hidden="true"></i>
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="9" />
<path d="M3 12h18" />
<path d="M12 3c3 3.5 3 14.5 0 18" />
<path d="M12 3c-3 3.5-3 14.5 0 18" />
</g>
</svg>
<svg class="language-chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="10" height="10" aria-hidden="true" focusable="false"> <svg class="language-chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="10" height="10" aria-hidden="true" focusable="false">
<path d="M5 7.5 10 12.5 15 7.5" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" /> <path d="M5 7.5 10 12.5 15 7.5" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" />
</svg> </svg>
@@ -29,13 +22,15 @@
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="header-language-switcher"> <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="header-language-switcher">
{% for language in languages %} {% for language in languages %}
<li> <li>
<a <form action="{% url 'set_language' %}" method="post" class="m-0">
class="dropdown-item d-flex align-items-center gap-2" {% csrf_token %}
href="{% if language.code == 'nl' %}/{% else %}/{{ language.code }}/{% endif %}" <input type="hidden" name="language" value="{{ language.code }}">
> <input type="hidden" name="next" value="{% if language.code == 'nl' %}/{% else %}/{{ language.code }}/{% endif %}">
{% include "oxyan/partials/flags/"|add:language.code|add:".svg" %} <button type="submit" class="dropdown-item d-flex align-items-center gap-2">
<span>{{ language.name_local|title }}</span> {% include "oxyan/partials/flags/"|add:language.code|add:".svg" %}
</a> <span>{{ language.name_local|title }}</span>
</button>
</form>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>