From 759c284b266503708be95e78221107f0aadc3d66 Mon Sep 17 00:00:00 2001 From: Olaf Date: Mon, 24 Aug 2026 22:17:48 +0200 Subject: [PATCH] Added a logo --- .gitignore | 1 + LinkLog.afdesign | Bin 0 -> 20100 bytes LinkLog.svg | 21 ++++++++++++++++++++ VIBE/CHAT_LOG.md | 18 +++++++++++++++++ VIBE/PROMPTS.md | 3 +++ frontend/static/logo.svg | 15 ++++++++------ logo.svg | 18 ----------------- webextension/logo.svg | 15 ++++++++------ webextension/manifest.json | 10 +++++++++- webextension/popup.css | 39 ++++++++++++++++++++++--------------- 10 files changed, 93 insertions(+), 47 deletions(-) create mode 100644 LinkLog.afdesign create mode 100644 LinkLog.svg delete mode 100644 logo.svg diff --git a/.gitignore b/.gitignore index 83e5362..fdc1eef 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ __pycache__/ *.sqlite3 *.log backend/data/avatars/ +LinkLog.afdesign~lock~ diff --git a/LinkLog.afdesign b/LinkLog.afdesign new file mode 100644 index 0000000000000000000000000000000000000000..29313fad1b79653d01c9382b3c911efad69057d2 GIT binary patch literal 20100 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 O0=b+8sLL` + + + + + + + + + + L + + + + + + Link Log + + + + diff --git a/VIBE/CHAT_LOG.md b/VIBE/CHAT_LOG.md index ccbd84b..12fa5f9 100644 --- a/VIBE/CHAT_LOG.md +++ b/VIBE/CHAT_LOG.md @@ -391,3 +391,21 @@ Use the logo.svg in both the plugin as well as on the web page ### Assistant outcome Bundled the supplied logo into the web static assets and Firefox extension, replaced text-only headers with accessible logo images, added responsive sizing, and verified all web pages, extension references, scripts, and the strict backend suite. + +### User +use the logo as the logo on the dropdown for firefox extensions but put it on a dark background + +### Assistant outcome +Updated the Firefox popup/dropdown with a dark Catppuccin-style background and matching dark form controls, tags fieldset, status states, and buttons. The existing bundled logo remains the popup brand mark and is readable against the dark surface. Firefox scripts and the strict backend suite passed. + +### User +Make sure that the logo is used in the toolbar + +### Assistant outcome +Configured the Firefox Manifest V3 action and extension icon declarations to use the bundled `logo.svg` at 16, 32, 48, and 96 pixel entries. Manifest validation, logo asset verification, extension syntax checks, and the strict backend suite passed. + +### User +For the logo in the toolbar make the background dark + +### Assistant outcome +Added a Catppuccin Mocha `#1e1e2e` background rectangle directly behind the Firefox toolbar logo artwork, preserving the foreground logo and source asset. SVG, manifest, extension scripts, and strict backend validation passed. diff --git a/VIBE/PROMPTS.md b/VIBE/PROMPTS.md index 9de7ac1..8466940 100644 --- a/VIBE/PROMPTS.md +++ b/VIBE/PROMPTS.md @@ -68,6 +68,9 @@ 64. The profile page shows in red: "can't access property \"classList\", document.querySelector(...) is null" 65. The post prefix is now 'From my #LinkLog: "' make that 'From my #LinkLog: ' 66. Use the logo.svg in both the plugin as well as on the web page +67. use the logo as the logo on the dropdown for firefox extensions but put it on a dark background +68. Make sure that the logo is used in the toolbar +69. For the logo in the toolbar make the background dark ## Future entries diff --git a/frontend/static/logo.svg b/frontend/static/logo.svg index 79df06e..168c08e 100644 --- a/frontend/static/logo.svg +++ b/frontend/static/logo.svg @@ -1,17 +1,20 @@ - - - + + + + + + L - + - + - LinkLog + Link Log diff --git a/logo.svg b/logo.svg deleted file mode 100644 index 79df06e..0000000 --- a/logo.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - L - - - - - - LinkLog - - - - diff --git a/webextension/logo.svg b/webextension/logo.svg index 79df06e..168c08e 100644 --- a/webextension/logo.svg +++ b/webextension/logo.svg @@ -1,17 +1,20 @@ - - - + + + + + + L - + - + - LinkLog + Link Log diff --git a/webextension/manifest.json b/webextension/manifest.json index 370e096..ce8924b 100644 --- a/webextension/manifest.json +++ b/webextension/manifest.json @@ -13,7 +13,15 @@ ], "action": { "default_title": "LinkLog", - "default_popup": "popup.html" + "default_popup": "popup.html", + "default_icon": { + "16": "logo.svg", + "32": "logo.svg" + } + }, + "icons": { + "48": "logo.svg", + "96": "logo.svg" }, "options_ui": { "page": "options.html", diff --git a/webextension/popup.css b/webextension/popup.css index 00c7f54..9242ab8 100644 --- a/webextension/popup.css +++ b/webextension/popup.css @@ -1,13 +1,14 @@ body { width: 360px; margin: 0; - font-family: sans-serif; - background: #f5f7fb; - color: #1f2937; + font-family: 'Avenir Next', sans-serif; + background: #1e1e2e; + color: #cdd6f4; } .popup-shell { padding: 16px; + background: linear-gradient(145deg, #313244, #1e1e2e 42%); } header h1 { @@ -19,7 +20,7 @@ header h1 { display: block; width: 150px; height: 42px; - margin-bottom: 8px; + margin-bottom: 14px; object-fit: contain; object-position: left center; } @@ -29,6 +30,7 @@ label { margin-bottom: 12px; font-size: 0.85rem; font-weight: 600; + color: #a6adc8; } input, @@ -42,10 +44,11 @@ button { input, textarea { margin-top: 6px; - border: 1px solid #cbd5e1; + border: 1px solid #585b70; border-radius: 8px; padding: 8px 10px; - background: white; + background: #313244; + color: #cdd6f4; } textarea { @@ -57,12 +60,13 @@ fieldset { gap: 8px; margin: 0; padding: 10px; - border: 1px solid #cbd5e1; + border: 1px solid #585b70; border-radius: 8px; } legend { padding: 0 4px; + color: #b4befe; font-weight: 600; } @@ -85,21 +89,24 @@ legend { } button { - border: none; + border: 1px solid #cba6f7; border-radius: 8px; padding: 10px 12px; cursor: pointer; font-weight: 600; + background: #cba6f7; + color: #11111b; } #submit-link { - background: #2563eb; - color: white; + background: #cba6f7; + color: #11111b; } .secondary { - background: #e2e8f0; - color: #0f172a; + background: #45475a; + border-color: #585b70; + color: #cdd6f4; } .status { @@ -110,13 +117,13 @@ button { } .status.success { - background: #dcfce7; - color: #166534; + background: #1e3a38; + color: #94e2d5; } .status.error { - background: #fee2e2; - color: #991b1b; + background: #45243a; + color: #f38ba8; } .hidden {