diff --git a/public/s/css/f0ckm.css b/public/s/css/f0ckm.css index 7520697..7f1e468 100644 --- a/public/s/css/f0ckm.css +++ b/public/s/css/f0ckm.css @@ -2539,7 +2539,7 @@ body.layout-legacy .comments-list { body.layout-legacy .scroll-nav-wrapper { position: absolute; - top: 0; + top: -30px; bottom: 0; right: -50px; width: 40px; @@ -8017,12 +8017,6 @@ span.badge.badge-current { margin-bottom: 20px; } -@media (max-width: 900px) { - .avatar-settings-wrapper { - grid-template-columns: 1fr; - } -} - .avatar-preview-container { display: flex; flex-direction: column; diff --git a/public/s/js/f0ckm.js b/public/s/js/f0ckm.js index f2e7f69..79902d4 100644 --- a/public/s/js/f0ckm.js +++ b/public/s/js/f0ckm.js @@ -3223,9 +3223,9 @@ window.cancelAnimFrame = (function () { const targetEl = document.querySelector(hash); if (targetEl) { targetEl.scrollIntoView({ behavior: 'smooth', block: 'center' }); + // Clear any previous highlight, then permanently mark this element + document.querySelectorAll('.comment-highlighted').forEach(el => el.classList.remove('comment-highlighted')); targetEl.classList.add('comment-highlighted'); - // Remove highlight after some time to keep UI clean - setTimeout(() => targetEl.classList.remove('comment-highlighted'), 3000); } } diff --git a/public/s/js/scroller.js b/public/s/js/scroller.js index dd3cd91..ca37be5 100644 --- a/public/s/js/scroller.js +++ b/public/s/js/scroller.js @@ -711,9 +711,12 @@ const id = contextLink.dataset.id; const target = commentsList.querySelector(`.comment-item[data-comment-id="${id}"]`); if (target) { + // Clear any previous persistent highlight + commentsList.querySelectorAll('.comment-linked').forEach(el => el.classList.remove('comment-linked')); target.scrollIntoView({ behavior: 'smooth', block: 'center' }); - target.classList.add('highlight-comment'); - setTimeout(() => target.classList.remove('highlight-comment'), 2000); + // Flash the animation for attention, then keep the persistent highlight + target.classList.add('highlight-comment', 'comment-linked'); + setTimeout(() => target.classList.remove('highlight-comment'), 2500); } } }); diff --git a/src/inc/locales/de.json b/src/inc/locales/de.json index e73eb3a..8906056 100644 --- a/src/inc/locales/de.json +++ b/src/inc/locales/de.json @@ -120,6 +120,7 @@ "switching": "Wird umgeschaltet...", "generating": "Wird generiert...", "title": "Einstellungen", + "profile": "Profil", "avatar": "Avatar", "current_avatar": "Aktueller Avatar", "upload_custom_avatar": "Eigenen Avatar hochladen", diff --git a/src/inc/locales/en.json b/src/inc/locales/en.json index d7e9f39..3d7ec3b 100644 --- a/src/inc/locales/en.json +++ b/src/inc/locales/en.json @@ -120,6 +120,7 @@ "switching": "Switching...", "generating": "Generating...", "title": "Settings", + "profile": "Profile", "avatar": "Avatar", "current_avatar": "Current Avatar", "upload_custom_avatar": "Upload Custom Avatar", diff --git a/src/inc/locales/nl.json b/src/inc/locales/nl.json index 464cc30..e40a86d 100644 --- a/src/inc/locales/nl.json +++ b/src/inc/locales/nl.json @@ -120,6 +120,7 @@ "switching": "Omschakelen...", "generating": "Genereren...", "title": "Instellingen", + "profile": "Profiel", "avatar": "Avatar", "current_avatar": "Huidige Avatar", "upload_custom_avatar": "Aangepaste Avatar Uploaden", diff --git a/src/inc/locales/zange.json b/src/inc/locales/zange.json index aa8fc82..2150720 100644 --- a/src/inc/locales/zange.json +++ b/src/inc/locales/zange.json @@ -120,6 +120,7 @@ "switching": "Umschaltung wird vorgenommen...", "generating": "Generierung wird angestoßen...", "title": "Einstellungen", + "profile": "Profil", "avatar": "Profilbild", "current_avatar": "Aktuelles Profilbild", "upload_custom_avatar": "Benutzerdefiniertes Profilbild aufladieren", diff --git a/views/scroller.html b/views/scroller.html index 4dc7e6e..9e733d3 100644 --- a/views/scroller.html +++ b/views/scroller.html @@ -630,6 +630,10 @@ 100% { background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.05); } } .highlight-comment { animation: comment-highlight 2.5s cubic-bezier(0.2, 0, 0, 1); } + .comment-linked { + border-left: 2px solid var(--accent) !important; + background: rgba(var(--accent-rgb, 233, 30, 140), 0.07) !important; + } #reply-indicator { display: flex; align-items: center; gap: 8px; padding: 6px 12px; background: rgba(255,255,255,.05); diff --git a/views/settings.html b/views/settings.html index 60e743a..34581a9 100644 --- a/views/settings.html +++ b/views/settings.html @@ -6,20 +6,20 @@ -

{{ t('settings.avatar') }}

-
-
-
{{ t('settings.current_avatar') }}
- @if(avatar_file) - - - - @elseif(session.avatar && session.avatar > 0) - - - - @else -
?
- @endif -
- -
-

{{ t('settings.upload_custom_avatar') }}

-

{{ t('settings.avatar_hint') }}

- -
- - - {{ t('settings.no_file_selected') }} -
- - - -
- + +

{{ t('settings.profile') }}

+
+ {{ t('settings.avatar') }} +
+
+
{{ t('settings.current_avatar') }}
@if(avatar_file) - + + + + @elseif(session.avatar && session.avatar > 0) + + + + @else +
?
@endif
-
+ +
+

{{ t('settings.avatar_hint') }}

+ +
+ + + {{ t('settings.no_file_selected') }} +
+ + + +
+ + @if(avatar_file) + + @endif +
+
+
-
+ + @if(enable_profile_description) -
+
+ {{ t('settings.custom_description') }}
-
@@ -127,24 +147,43 @@
-
+ @endif -
- -
- - - - + +
+ {{ t('settings.username_color') }} +
+
+ + + + +
+ {{ t('settings.username_color_hint') }}
- {{ t('settings.username_color_hint') }} -
-

{{ t('settings.preferences') }}

+ + +
+ {{ t('settings.display_name') }} +
+
+ + +
+
+
+
+ + +

{{ t('settings.preferences') }}

@@ -367,7 +406,8 @@
@if(enable_data_export) -

{{ t('settings.export_data_title') || 'Export Data' }}

+ +

{{ t('settings.export_data_title') || 'Export Data' }}

{{ t('settings.export_data_desc') || 'Download a copy of your data. This process happens entirely in your browser to protect your privacy and save server resources.' }}

@@ -407,8 +447,8 @@
@endif - -

{{ t('settings.account') }}

+ +

{{ t('settings.account') }}

@if(matrix_enabled) -

{{ t('settings.linked_accounts') }}

+ +

{{ t('settings.linked_accounts') }}

{{ t('settings.matrix_link_desc') }}

@@ -510,7 +539,8 @@ @endif @if(enable_user_api_keys) -

Upload API Key

+ +

Upload API Key