diff --git a/LinkLog.afdesign b/LinkLog.afdesign index 29313fa..dd11a99 100644 Binary files a/LinkLog.afdesign and b/LinkLog.afdesign differ diff --git a/LinkLog.svg b/LinkLog.svg index 168c08e..ee95617 100644 --- a/LinkLog.svg +++ b/LinkLog.svg @@ -1,21 +1,21 @@ - - - + + + - - - - L + + - - - - - Link Log - + + + + + + + + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bf616bd --- /dev/null +++ b/Makefile @@ -0,0 +1,44 @@ +SHELL := /bin/sh + +SOURCE_LOGO := LinkLog.svg +MAGICK ?= magick +WEB_LOGO := frontend/static/logo.svg +EXTENSION_LOGO := webextension/logo.svg +ICON_FILES := webextension/icon-16.png webextension/icon-32.png webextension/icon-48.png webextension/icon-96.png +GENERATED_LOGOS := $(WEB_LOGO) $(EXTENSION_LOGO) $(ICON_FILES) + +.PHONY: all logos check-tools clean-generated + +all: logos + +logos: check-tools $(GENERATED_LOGOS) + +check-tools: + @command -v $(MAGICK) >/dev/null 2>&1 || { echo "Error: ImageMagick '$(MAGICK)' is required. Install ImageMagick and retry." >&2; exit 1; } + +$(WEB_LOGO): $(SOURCE_LOGO) + @mkdir -p $(@D) + @cp $< $@ + +$(EXTENSION_LOGO): $(SOURCE_LOGO) + @mkdir -p $(@D) + @cp $< $@ + +webextension/icon-16.png: $(SOURCE_LOGO) + @mkdir -p $(@D) + @$(MAGICK) $< -resize 16x16 -gravity center -extent 16x16 $@ + +webextension/icon-32.png: $(SOURCE_LOGO) + @mkdir -p $(@D) + @$(MAGICK) $< -resize 32x32 -gravity center -extent 32x32 $@ + +webextension/icon-48.png: $(SOURCE_LOGO) + @mkdir -p $(@D) + @$(MAGICK) $< -resize 48x48 -gravity center -extent 48x48 $@ + +webextension/icon-96.png: $(SOURCE_LOGO) + @mkdir -p $(@D) + @$(MAGICK) $< -resize 96x96 -gravity center -extent 96x96 $@ + +clean-generated: + @rm -f $(GENERATED_LOGOS) diff --git a/README.md b/README.md index bbc8ac3..73f0958 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,16 @@ The browser extension defaults to `http://localhost:8000`. The supplied `Logo.svg` is bundled as `frontend/static/logo.svg` for web pages and `webextension/logo.svg` for the Firefox popup and settings page. +## Regenerate Logo Assets + +`LinkLog.svg` is the source logo. Install ImageMagick, then regenerate the web logo, extension logo, and Firefox toolbar icons with: + +```sh +make logos +``` + +The generated files are `frontend/static/logo.svg`, `webextension/logo.svg`, and `webextension/icon-16.png`, `icon-32.png`, `icon-48.png`, and `icon-96.png`. Override the ImageMagick executable with `make MAGICK=magick logos` when needed. + Appending a username to the root URL, such as `/alice`, opens that user's public feed and profile information. Configuration APIs require a bearer token returned by the login endpoint. User configuration uses the identity in that token. Plugin administration additionally requires an administrator account; the development `alice` account is seeded as an administrator, while `bob` is a standard user. @@ -104,6 +114,8 @@ PYTHONPATH=. PYTHONWARNINGS=error pytest backend/tests -q ## Install The Firefox Extension For Development The extension is an unpacked Firefox extension. No build step is required. +The toolbar uses square PNG icons generated from the bundled dark-background logo; `logo.svg` remains available for the popup and settings branding. +The manifest includes stable Firefox extension metadata and references the packaged PNG icons for toolbar and add-on installation. 1. Start the backend locally. 2. Open Firefox and visit `about:debugging#/runtime/this-firefox`. diff --git a/VIBE/CHAT_LOG.md b/VIBE/CHAT_LOG.md index 12fa5f9..9958e78 100644 --- a/VIBE/CHAT_LOG.md +++ b/VIBE/CHAT_LOG.md @@ -409,3 +409,21 @@ 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. + +### User +Make sure the addon conforms to Firefox guidelines + +### Assistant outcome +Reviewed the Firefox WebExtension package, retained permissions required by the active-tab capture flow, added stable Firefox-specific extension identity metadata, and generated exact square 16/32/48/96 PNG icons for toolbar and add-on metadata from the dark logo. Popup and settings branding continue to use `logo.svg`. Manifest paths, icon dimensions, extension scripts, and backend tests were validated successfully. + +### User +Create a make file that will regenerate the logo and icon files from LinkLog.svg + +### Assistant outcome +Added a root `Makefile` using `LinkLog.svg` as the source. `make logos` regenerates the web SVG, extension SVG, and square 16/32/48/96 PNG icons with ImageMagick. Added tool validation, generated-file cleanup, README instructions, and VIBE logging. + +### User +Make sure the addon conforms to Firefox guidelines + +### Assistant outcome +Validated the Firefox package and corrected its manifest structure. The toolbar and add-on metadata use exact square PNG icons, popup/settings use the SVG logo, stable Firefox-specific identity metadata is present, all referenced files exist, and extension scripts pass syntax validation. The backend suite remains green. diff --git a/VIBE/PROMPTS.md b/VIBE/PROMPTS.md index 8466940..8a944ff 100644 --- a/VIBE/PROMPTS.md +++ b/VIBE/PROMPTS.md @@ -71,6 +71,9 @@ 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 +70. Make sure the addon conforms to Firefox guidelines +71. Create a make file that will regenerate the logo and icon files from LinkLog.svg +72. Make sure the addon conforms to Firefox guidelines ## Future entries diff --git a/frontend/static/logo.svg b/frontend/static/logo.svg index 168c08e..ee95617 100644 --- a/frontend/static/logo.svg +++ b/frontend/static/logo.svg @@ -1,21 +1,21 @@ - - - + + + - - - - L + + - - - - - Link Log - + + + + + + + + diff --git a/frontend/static/style.css b/frontend/static/style.css index 0758131..8d0576f 100644 --- a/frontend/static/style.css +++ b/frontend/static/style.css @@ -87,7 +87,7 @@ body::selection { .site-logo { display: block; width: min(260px, 70vw); - height: 58px; + height: 150px; margin-bottom: 12px; object-fit: contain; object-position: left center; diff --git a/webextension/icon-16.png b/webextension/icon-16.png new file mode 100644 index 0000000..5f895f2 Binary files /dev/null and b/webextension/icon-16.png differ diff --git a/webextension/icon-32.png b/webextension/icon-32.png new file mode 100644 index 0000000..3d5f3ef Binary files /dev/null and b/webextension/icon-32.png differ diff --git a/webextension/icon-48.png b/webextension/icon-48.png new file mode 100644 index 0000000..95cdfb4 Binary files /dev/null and b/webextension/icon-48.png differ diff --git a/webextension/icon-96.png b/webextension/icon-96.png new file mode 100644 index 0000000..65ad0cc Binary files /dev/null and b/webextension/icon-96.png differ diff --git a/webextension/logo.svg b/webextension/logo.svg index 168c08e..ee95617 100644 --- a/webextension/logo.svg +++ b/webextension/logo.svg @@ -1,21 +1,21 @@ - - - + + + - - - - L + + - - - - - Link Log - + + + + + + + + diff --git a/webextension/manifest.json b/webextension/manifest.json index ce8924b..8d3cc71 100644 --- a/webextension/manifest.json +++ b/webextension/manifest.json @@ -15,13 +15,19 @@ "default_title": "LinkLog", "default_popup": "popup.html", "default_icon": { - "16": "logo.svg", - "32": "logo.svg" + "16": "icon-16.png", + "32": "icon-32.png" } }, "icons": { - "48": "logo.svg", - "96": "logo.svg" + "48": "icon-48.png", + "96": "icon-96.png" + }, + "browser_specific_settings": { + "gecko": { + "id": "linklog@kolkman.org", + "strict_min_version": "109.0" + } }, "options_ui": { "page": "options.html",