From 816a27db73b6fd610658e48c3d3a28bc15c6863b Mon Sep 17 00:00:00 2001 From: "alexei.dolgolyov" Date: Fri, 1 May 2026 10:55:31 +0300 Subject: [PATCH] refactor(ui): drop app footer, move author info to About panel The "Created by Alexei Dolgolyov..." line lived in a global app footer that took up vertical space on every page. Move the author + contact details into the About tab of the global settings modal (rendered by renderAboutPanel), where they sit next to the version pill and license. Adds a localized "donation.about_author" key (en/ru/zh) and matching .about-hero .about-author styles. Removes the now-unused .app-footer / .footer-content rules. --- server/src/ledgrab/static/css/layout.css | 32 ------------------- server/src/ledgrab/static/css/mobile.css | 5 --- server/src/ledgrab/static/css/modal.css | 26 +++++++++++++++ .../ledgrab/static/js/features/donation.ts | 5 +++ server/src/ledgrab/static/locales/en.json | 1 + server/src/ledgrab/static/locales/ru.json | 1 + server/src/ledgrab/static/locales/zh.json | 1 + server/src/ledgrab/templates/index.html | 10 ------ 8 files changed, 34 insertions(+), 47 deletions(-) diff --git a/server/src/ledgrab/static/css/layout.css b/server/src/ledgrab/static/css/layout.css index ac6b6a5..2ee0bc4 100644 --- a/server/src/ledgrab/static/css/layout.css +++ b/server/src/ledgrab/static/css/layout.css @@ -888,38 +888,6 @@ h2 { flex-shrink: 0; } -/* Footer */ -.app-footer { - margin-top: 12px; - padding: 6px 0; - text-align: center; -} - -.footer-content { - color: var(--text-secondary); - font-size: 0.75rem; -} - -.footer-content p { - margin: 0; -} - - -.footer-content strong { - color: var(--text-color); -} - -.footer-content a { - color: var(--primary-text-color); - text-decoration: none; - transition: opacity 0.2s; -} - -.footer-content a:hover { - opacity: 0.8; - text-decoration: underline; -} - /* Command Palette */ #command-palette { position: fixed; diff --git a/server/src/ledgrab/static/css/mobile.css b/server/src/ledgrab/static/css/mobile.css index cb5ff38..926f9d2 100644 --- a/server/src/ledgrab/static/css/mobile.css +++ b/server/src/ledgrab/static/css/mobile.css @@ -481,11 +481,6 @@ margin-bottom: 10px; } - /* Footer */ - .app-footer { - margin-bottom: 50px; - } - /* Command palette */ #command-palette { padding-top: 5vh; diff --git a/server/src/ledgrab/static/css/modal.css b/server/src/ledgrab/static/css/modal.css index ab9db41..03be740 100644 --- a/server/src/ledgrab/static/css/modal.css +++ b/server/src/ledgrab/static/css/modal.css @@ -4601,6 +4601,32 @@ body.composite-layer-dragging .composite-layer-drag-handle { font-size: 0.78rem; color: var(--lux-ink-dim, var(--text-secondary)); } +.about-hero .about-author { + margin-top: 10px; + font-size: 0.78rem; + color: var(--lux-ink-dim, var(--text-secondary)); + display: inline-flex; + align-items: center; + gap: 6px; + flex-wrap: wrap; + justify-content: center; +} +.about-hero .about-author strong { + color: var(--lux-ink, var(--text-color)); + font-weight: 700; +} +.about-hero .about-author a { + color: var(--primary-text-color); + text-decoration: none; + transition: opacity 0.2s; +} +.about-hero .about-author a:hover { + opacity: 0.8; + text-decoration: underline; +} +.about-hero .about-author-sep { + opacity: 0.5; +} .about-hero .about-links { display: flex; gap: 6px; diff --git a/server/src/ledgrab/static/js/features/donation.ts b/server/src/ledgrab/static/js/features/donation.ts index f140f17..b86b655 100644 --- a/server/src/ledgrab/static/js/features/donation.ts +++ b/server/src/ledgrab/static/js/features/donation.ts @@ -98,6 +98,11 @@ export function renderAboutPanel(): void {
${t('donation.about_title')}
${version ? `
${version}
` : ''}
${t('donation.about_opensource')}
+
+ ${t('donation.about_author')} Alexei Dolgolyov + · + dolgolyov.alexei@gmail.com +
${linkButtons.length ? `` : ''}
${t('donation.about_license')}
diff --git a/server/src/ledgrab/static/locales/en.json b/server/src/ledgrab/static/locales/en.json index bc88519..541cf3e 100644 --- a/server/src/ledgrab/static/locales/en.json +++ b/server/src/ledgrab/static/locales/en.json @@ -2475,6 +2475,7 @@ "donation.about_opensource": "LedGrab is open-source software, free to use and modify.", "donation.about_donate": "Support development", "donation.about_license": "MIT License", + "donation.about_author": "Created by", "streams.group.game": "Game Integration", "tree.group.game": "Game", diff --git a/server/src/ledgrab/static/locales/ru.json b/server/src/ledgrab/static/locales/ru.json index ed1c308..cc96d0f 100644 --- a/server/src/ledgrab/static/locales/ru.json +++ b/server/src/ledgrab/static/locales/ru.json @@ -2190,6 +2190,7 @@ "donation.about_opensource": "LedGrab — программа с открытым исходным кодом, бесплатная для использования и модификации.", "donation.about_donate": "Поддержать разработку", "donation.about_license": "Лицензия MIT", + "donation.about_author": "Создатель —", "streams.group.game": "Игровая интеграция", "tree.group.game": "Игры", diff --git a/server/src/ledgrab/static/locales/zh.json b/server/src/ledgrab/static/locales/zh.json index 34a8e11..a19fd5f 100644 --- a/server/src/ledgrab/static/locales/zh.json +++ b/server/src/ledgrab/static/locales/zh.json @@ -2188,6 +2188,7 @@ "donation.about_opensource": "LedGrab 是开源软件,可免费使用和修改。", "donation.about_donate": "支持开发", "donation.about_license": "MIT 许可证", + "donation.about_author": "作者:", "streams.group.game": "游戏集成", "tree.group.game": "游戏", diff --git a/server/src/ledgrab/templates/index.html b/server/src/ledgrab/templates/index.html index 6ab33cd..dc19d26 100644 --- a/server/src/ledgrab/templates/index.html +++ b/server/src/ledgrab/templates/index.html @@ -212,16 +212,6 @@ })(); - -