From d39e74ee9b1194e01603afadf1d6a055f422dae7 Mon Sep 17 00:00:00 2001 From: Mathieu Moran Date: Sun, 1 Feb 2026 22:23:38 -0500 Subject: [PATCH] Tweak navbar loading state and localize rating save --- public/css/app.css | 15 +++++++++++---- public/js/app_player.js | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/public/css/app.css b/public/css/app.css index 3733ce7..00ff92f 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -409,13 +409,20 @@ body:not(.i18n-ready) .navbar .nav-link, body:not(.i18n-ready) .navbar .navbar-text, body:not(.i18n-ready) .navbar .btn { transition: filter 220ms ease, opacity 220ms ease, transform 220ms ease; - /* Light mode & default: fully fade out navbar until i18n is ready - so fallback labels never flash. */ - opacity: 0; - transform: translateY(-2px); + /* Light mode & default: muted appearance while i18n loads. */ + filter: blur(1.2px) saturate(0.95); + opacity: 0.45; + transform: translateY(-1px); pointer-events: none; } +/* Light mode: keep navbar container visible to avoid layout jump. */ +html:not([data-theme="dark"]) body:not(.i18n-ready) nav.navbar, +html:not([data-theme="dark"]) body:not(.i18n-ready) .navbar { + opacity: 1; + transform: none; +} + /* Dark mode: keep the original soft blur effect while loading so the navbar stays visible but its text is obscured. */ html[data-theme="dark"] body:not(.i18n-ready) nav.navbar, diff --git a/public/js/app_player.js b/public/js/app_player.js index 5b33cc6..5548f1b 100644 --- a/public/js/app_player.js +++ b/public/js/app_player.js @@ -656,7 +656,7 @@ function initUserRating({ movieId, token, initial } = {}) { isSaving = true; buttons.forEach((b) => b.setAttribute('disabled', 'disabled')); - metaEl.textContent = 'Enregistrement…'; + metaEl.textContent = t('player.saving', 'Saving…'); const shouldClear = currentRating && value === currentRating; const result = shouldClear