From 526036c9074f6f30407a1891c7b3536db25b89ee Mon Sep 17 00:00:00 2001 From: Alexander Schmidt Date: Wed, 11 Feb 2026 07:20:06 +0100 Subject: [PATCH] feat: add auto-generated pseudonyms and identicon avatars for users --- css/components.css | 20 ++++++++ js/components/app-header.js | 6 ++- js/components/pages/page-listing.js | 29 +++++++---- js/services/identity.js | 80 +++++++++++++++++++++++++++++ locales/de.json | 1 + locales/en.json | 1 + locales/es.json | 1 + locales/fr.json | 1 + locales/it.json | 1 + locales/pt.json | 1 + locales/ru.json | 1 + service-worker.js | 3 +- 12 files changed, 133 insertions(+), 12 deletions(-) create mode 100644 js/services/identity.js diff --git a/css/components.css b/css/components.css index fa55358..5210829 100644 --- a/css/components.css +++ b/css/components.css @@ -265,6 +265,26 @@ app-header .btn-profile { border-radius: var(--radius-md); } +app-header .btn-profile-avatar { + padding: 0; + width: 36px; + height: 36px; + border-radius: var(--radius-full); + overflow: hidden; + border: 2px solid var(--color-border); + transition: border-color var(--transition-fast); +} + +app-header .btn-profile-avatar:hover { + border-color: var(--color-accent); +} + +app-header .btn-profile-avatar svg { + width: 32px; + height: 32px; + display: block; +} + app-header .btn-login-text, app-header .btn-profile-text { display: inline; diff --git a/js/components/app-header.js b/js/components/app-header.js index e02d215..429e0ef 100644 --- a/js/components/app-header.js +++ b/js/components/app-header.js @@ -2,6 +2,7 @@ import { i18n, t } from '../i18n.js' import { router } from '../router.js' import { auth } from '../services/auth.js' import { notificationsService } from '../services/notifications.js' +import { generateAvatar } from '../services/identity.js' class AppHeader extends HTMLElement { constructor() { @@ -188,17 +189,18 @@ class AppHeader extends HTMLElement {