v4: the avatar menu shows at every width and holds Log out, so a profile keeps only Invite; the profile's dump cards lay out again — your own profile had four buttons in a row, Invite someone, Settings, Manage and Log out, Invite taller than the rest, and on wide screens it was the only way to reach /settings or /manage. The avatar menu now leads the header's icon row at every width, after the name and Playlists text links on wide screens, and ends with Log out under a separator, muted until hovered. The profile keeps Invite someone alone. The menu's button outweighs .app-header-nav button and the themes' button rules (Brutalist and GeoCities list it among their flat buttons), so it reads as one of the menu's links. Since b9ff9c4, a card under 472px is laid out by the narrow-card container query, but the profile columns' dense-card rules still placed the thumb, body and vote themselves, more specifically: the thumb lost its row span, so the title fell under it and every card was a tall, mostly empty box. Those rules now only make the card denser (a smaller thumb, a 2-line title, smaller type) and leave placement to the container query. 670 frontend tests pass, and tsc, eslint, deno fmt, doc:lint and i18n:compile --strict are clean; checked in screenshots in Smooth dark at 1400 and 390px, Brutalist light at 390px, GeoCities light and Kanagawa dark at 1400px, in French.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
khannurien
2026-10-08 22:22:15 +00:00
parent 10c9cf4269
commit 886216749e
11 changed files with 179 additions and 219 deletions

View File

@@ -431,7 +431,7 @@ msgstr "← Retour"
msgid "← Back to all dumps"
msgstr "← Retour à toutes les recos"
#: src/components/profile/ProfileOwnActions.tsx:80
#: src/components/profile/ProfileOwnActions.tsx:76
msgid "+ Invite someone"
msgstr "+ Inviter quelqu'un"
@@ -518,11 +518,11 @@ msgstr "Ajouter un commentaire…"
msgid "Add category"
msgstr "Ajouter une catégorie"
#: src/components/profile/ProfileHeader.tsx:154
#: src/components/profile/ProfileHeader.tsx:153
msgid "Add email…"
msgstr "Ajouter un e-mail…"
#: src/components/shared/ImagePicker.tsx:63
#: src/components/shared/ImagePicker.tsx:66
msgid "Add image"
msgstr "Ajouter une image"
@@ -589,7 +589,7 @@ msgstr "Impossible de se connecter au serveur de mises à jour en direct. Les vo
#: src/components/comment/CommentForm.tsx:127
#: src/components/dump/create/DumpCreateModal.tsx:752
#: src/components/form/FormActions.tsx:42
#: src/components/playlist/PlaylistEditForm.tsx:199
#: src/components/playlist/PlaylistEditForm.tsx:200
#: src/components/profile/DescriptionEditor.tsx:97
#: src/components/profile/EmailEditor.tsx:83
#: src/components/shared/ConfirmModal.tsx:63
@@ -607,7 +607,7 @@ msgstr "Annuler la suppression"
msgid "Cancel reply"
msgstr "Annuler la réponse"
#: src/components/layout/AppHeader.tsx:190
#: src/components/layout/AppHeader.tsx:188
msgid "Cancel search"
msgstr "Annuler la recherche"
@@ -620,11 +620,11 @@ msgstr "Catégories"
msgid "Category"
msgstr "Catégorie"
#: src/components/profile/ProfileHeader.tsx:96
#: src/components/profile/ProfileHeader.tsx:95
msgid "Change avatar"
msgstr "Changer l'avatar"
#: src/components/shared/ImagePicker.tsx:63
#: src/components/shared/ImagePicker.tsx:66
msgid "Change image"
msgstr "Changer l'image"
@@ -695,11 +695,11 @@ msgstr "Confirmer le nouveau mot de passe"
msgid "Connection lost — this message may not have been sent"
msgstr "Connexion perdue — ce message n'a peut-être pas été envoyé"
#: src/components/profile/ProfileOwnActions.tsx:105
#: src/components/profile/ProfileOwnActions.tsx:99
msgid "Copied!"
msgstr "Copié !"
#: src/components/profile/ProfileOwnActions.tsx:105
#: src/components/profile/ProfileOwnActions.tsx:99
msgid "Copy"
msgstr "Copier"
@@ -800,7 +800,7 @@ msgid "Delete failed ({0})"
msgstr "Échec de la suppression ({0})"
#: src/components/playlist/PlaylistCard.tsx:142
#: src/components/playlist/PlaylistEditForm.tsx:190
#: src/components/playlist/PlaylistEditForm.tsx:191
#: src/components/profile/ProfilePlaylistsTab.tsx:156
#: src/pages/PlaylistDetail.tsx:141
msgid "Delete playlist"
@@ -827,7 +827,7 @@ msgstr "Supprimer cette collection ? Cette action est irréversible."
msgid "deleted message"
msgstr "message supprimé"
#: src/components/playlist/PlaylistEditForm.tsx:175
#: src/components/playlist/PlaylistEditForm.tsx:176
msgid "Description"
msgstr "Description"
@@ -869,7 +869,7 @@ msgstr "Déposez un fichier ici, ou collez-en un"
msgid "Drop a replacement here"
msgstr "Déposez un fichier de remplacement ici"
#: src/components/layout/AppHeader.tsx:209
#: src/components/layout/AppHeader.tsx:207
msgid "Dump"
msgstr "Reco"
@@ -914,7 +914,7 @@ msgstr "Modifier {0}"
msgid "Edit description"
msgstr "Modifier la description"
#: src/components/profile/ProfileHeader.tsx:152
#: src/components/profile/ProfileHeader.tsx:151
msgid "Edit email"
msgstr "Modifier l'e-mail"
@@ -984,9 +984,9 @@ msgstr "Impossible de créer la collection"
msgid "Failed to delete"
msgstr "Suppression échouée"
#: src/components/profile/ProfileOwnActions.tsx:46
#: src/components/profile/ProfileOwnActions.tsx:49
#: src/components/profile/ProfileOwnActions.tsx:52
#: src/components/profile/ProfileOwnActions.tsx:114
#: src/components/profile/ProfileOwnActions.tsx:108
msgid "Failed to generate invite"
msgstr "Impossible de générer une invitation"
@@ -1006,7 +1006,7 @@ msgstr "Impossible de publier le commentaire"
msgid "Failed to post reply"
msgstr "Impossible de publier la réponse"
#: src/components/playlist/PlaylistEditForm.tsx:184
#: src/components/playlist/PlaylistEditForm.tsx:185
#: src/components/profile/DescriptionEditor.tsx:99
#: src/components/profile/EmailEditor.tsx:86
msgid "Failed to save"
@@ -1020,7 +1020,7 @@ msgstr "Échec de l’enregistrement de la catégorie"
msgid "Failed to save edit"
msgstr "Impossible d'enregistrer la modification"
#: src/components/profile/ProfileHeader.tsx:163
#: src/components/profile/ProfileHeader.tsx:162
msgid "Failed to update avatar"
msgstr "Impossible de mettre à jour l'avatar"
@@ -1128,12 +1128,12 @@ msgstr "Invitation invalide"
msgid "Invalid link"
msgstr "Lien invalide"
#: src/components/profile/ProfileOwnActions.tsx:88
#: src/components/profile/ProfileOwnActions.tsx:95
#: src/components/profile/ProfileOwnActions.tsx:82
#: src/components/profile/ProfileOwnActions.tsx:89
msgid "Invite link"
msgstr "Lien d'invitation"
#: src/components/profile/ProfileHeader.tsx:117
#: src/components/profile/ProfileHeader.tsx:116
msgid "invited by"
msgstr "invité par"
@@ -1176,7 +1176,7 @@ msgstr "Lien ou fichier"
msgid "Live updates are temporarily disconnected. Trying to reconnect…"
msgstr "Les mises à jour en direct sont temporairement interrompues. Tentative de reconnexion…"
#: src/components/layout/AppHeader.tsx:242
#: src/components/layout/AppHeader.tsx:240
msgid "Live updates unavailable."
msgstr "Mises à jour en direct indisponibles."
@@ -1219,7 +1219,7 @@ msgstr "Chargement du profil…"
msgid "Loading…"
msgstr "Chargement…"
#: src/components/layout/AppHeader.tsx:216
#: src/components/layout/AppHeader.tsx:214
#: src/pages/UserLogin.tsx:41
#: src/pages/UserLogin.tsx:67
#: src/pages/UserLogin.tsx:86
@@ -1234,7 +1234,7 @@ msgstr "Se connecter pour aimer"
msgid "Log in to vote"
msgstr "Se connecter pour voter"
#: src/components/profile/ProfileHeader.tsx:188
#: src/components/layout/UserMenu.tsx:115
#: src/pages/UserPublicProfile.tsx:131
msgid "Log out"
msgstr "Se déconnecter"
@@ -1251,8 +1251,7 @@ msgstr "Connexion échouée"
msgid "Lowercase letters, numbers and single hyphens only"
msgstr "Minuscules, chiffres et tirets simples seulement"
#: src/components/layout/UserMenu.tsx:98
#: src/components/profile/ProfileHeader.tsx:180
#: src/components/layout/UserMenu.tsx:102
#: src/pages/Manage.tsx:24
#: src/pages/Manage.tsx:29
#: src/pages/UserPublicProfile.tsx:164
@@ -1465,7 +1464,7 @@ msgstr "Lecture"
#: src/components/dump/create/StepIndicator.tsx:21
#: src/components/layout/AppHeader.tsx:178
#: src/components/layout/UserMenu.tsx:81
#: src/components/layout/UserMenu.tsx:85
#: src/components/profile/ProfileFollowTab.tsx:167
#: src/components/profile/ProfilePlaylistsTab.tsx:118
#: src/pages/Search.tsx:123
@@ -1616,7 +1615,7 @@ msgstr "Rôle"
#: src/components/category/CategoryManager.tsx:216
#: src/components/chat/ChatEditBox.tsx:85
#: src/components/comment/CommentNode.tsx:216
#: src/components/playlist/PlaylistEditForm.tsx:206
#: src/components/playlist/PlaylistEditForm.tsx:207
#: src/components/profile/DescriptionEditor.tsx:89
#: src/components/profile/EmailEditor.tsx:75
#: src/pages/Dump.tsx:437
@@ -1625,7 +1624,7 @@ msgid "Save"
msgstr "Enregistrer"
#: src/components/comment/CommentNode.tsx:217
#: src/components/playlist/PlaylistEditForm.tsx:203
#: src/components/playlist/PlaylistEditForm.tsx:204
#: src/components/profile/ChangePasswordModal.tsx:119
#: src/components/profile/DescriptionEditor.tsx:86
#: src/components/profile/EmailEditor.tsx:72
@@ -1634,7 +1633,7 @@ msgstr "Enregistrer"
msgid "Saving…"
msgstr "Enregistrement…"
#: src/components/layout/AppHeader.tsx:190
#: src/components/layout/AppHeader.tsx:188
#: src/components/layout/SearchBar.tsx:83
#: src/pages/Search.tsx:69
msgid "Search"
@@ -1677,7 +1676,7 @@ msgstr "Envoyer le lien de réinitialisation"
msgid "Sending…"
msgstr "Envoi…"
#: src/components/layout/AppHeader.tsx:206
#: src/components/layout/AppHeader.tsx:204
msgid "Server unreachable"
msgstr "Serveur inaccessible"
@@ -1686,8 +1685,7 @@ msgstr "Serveur inaccessible"
msgid "Set new password"
msgstr "Définir un nouveau mot de passe"
#: src/components/layout/UserMenu.tsx:89
#: src/components/profile/ProfileHeader.tsx:176
#: src/components/layout/UserMenu.tsx:93
#: src/pages/Settings.tsx:70
#: src/pages/Settings.tsx:82
msgid "Settings"
@@ -1697,7 +1695,7 @@ msgstr "Paramètres"
msgid "Several people are typing…"
msgstr "Plusieurs personnes écrivent…"
#: src/components/profile/ProfileOwnActions.tsx:108
#: src/components/profile/ProfileOwnActions.tsx:102
msgid "Single use, valid for 7 days."
msgstr "Usage unique, valable 7 jours."
@@ -1786,7 +1784,7 @@ msgstr "Miniature"
#: src/components/dump/create/TitleField.tsx:45
#: src/components/playlist/PlaylistCreateForm.tsx:96
#: src/components/playlist/PlaylistEditForm.tsx:159
#: src/components/playlist/PlaylistEditForm.tsx:160
#: src/pages/DumpEdit.tsx:516
msgid "Title"
msgstr "Titre"
@@ -1853,7 +1851,7 @@ msgstr "Se désabonner"
msgid "Unsubscribed"
msgstr "Désabonné"
#: src/components/profile/ProfileHeader.tsx:73
#: src/components/profile/ProfileHeader.tsx:72
msgid "Upload failed"
msgstr "Envoi échoué"
@@ -1904,7 +1902,7 @@ msgstr "Utilisateur"
msgid "User management"
msgstr "Gestion utilisateur"
#: src/components/layout/UserMenu.tsx:56
#: src/components/layout/UserMenu.tsx:60
msgid "User menu"
msgstr "Menu utilisateur"