- Introduce cache busting (to circumvent aggressive caching on iOS - but ideal in other contexts as well)

- Change the build process to allow cache busting
- Optimisations to the build process
- Several improvements of UI geared towards mobile experience
-
This commit is contained in:
Josako
2025-09-25 17:28:01 +02:00
parent cc47ce2d32
commit 16ce59ae98
32 changed files with 1538 additions and 899 deletions

View File

@@ -80,21 +80,24 @@ const handleLanguageChange = (newLanguage) => {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap; /* allow wrapping to next line on narrow screens */
padding: 10px 15px;
background: var(--sidebar-background);
color: var(--sidebar-color);
border-bottom: 1px solid rgba(0,0,0,0.1);
min-height: 60px;
max-width: 100%; /* never exceed viewport width */
overflow: hidden; /* clip any accidental overflow */
}
/* Mobile logo container - meer specifieke styling */
.mobile-logo {
flex-shrink: 0;
flex-shrink: 1; /* allow logo area to shrink */
min-width: 0; /* allow shrinking below intrinsic width */
display: flex !important;
align-items: center;
justify-content: flex-start;
height: 50px; /* Vaste hoogte voor consistentie */
min-width: 120px; /* Minimale breedte */
}
/* Diepere styling voor het logo component */
@@ -105,6 +108,7 @@ const handleLanguageChange = (newLanguage) => {
align-items: center !important;
justify-content: flex-start !important;
height: 100% !important;
min-width: 0 !important; /* allow inner content to shrink */
}
.mobile-logo :deep(.logo-image) {
@@ -128,7 +132,7 @@ const handleLanguageChange = (newLanguage) => {
/* Mobile language selector styling */
.mobile-language-selector {
flex-shrink: 1;
min-width: 140px;
min-width: 0; /* allow selector area to shrink */
}
.mobile-language-selector :deep(.language-selector) {
@@ -142,10 +146,18 @@ const handleLanguageChange = (newLanguage) => {
.mobile-language-selector :deep(.language-select) {
padding: 6px 10px;
font-size: 0.85rem;
min-width: 120px;
min-width: 0; /* allow the select to shrink */
max-width: 100%; /* never exceed container width */
margin: 0;
}
/* Extra constraints on ultra-small screens */
@media (max-width: 360px) {
.mobile-language-selector :deep(.language-select) {
max-width: 60vw; /* avoid pushing beyond viewport */
}
}
/* Media queries voor responsiviteit */
@media (max-width: 768px) {
.mobile-header {