Skip to content

Add default favicon and plugin-style customisation - #2

Merged
sgjholt merged 6 commits into
mainfrom
claude/add-favicon-support-FHoWd
Mar 30, 2026
Merged

Add default favicon and plugin-style customisation#2
sgjholt merged 6 commits into
mainfrom
claude/add-favicon-support-FHoWd

Conversation

@sgjholt

@sgjholt sgjholt commented Mar 30, 2026

Copy link
Copy Markdown
Owner
  • Embeds a default SVG favicon (green task-list icon) as a data URI in
  • Adds connectPluginsFolder(): uses showDirectoryPicker() to scan a folder for
    favicon.svg/png/ico and theme.css, loading both automatically — one click to
    wire up all plugin overrides at once
  • Adds pickFavicon() for manual single-file favicon override
  • Persists custom favicon to localStorage (mb-favicon) like mb-custom-css
  • Adds + Plugins, + CSS, + Icon buttons in the tab bar; all hidden on browsers
    without File System Access API

https://claude.ai/code/session_017MbNtnRDwpq7MzUco6XKcU

claude added 5 commits March 30, 2026 15:26
- Embeds a default SVG favicon (green task-list icon) as a data URI in <head>
- Adds connectPluginsFolder(): uses showDirectoryPicker() to scan a folder for
  favicon.svg/png/ico and theme.css, loading both automatically — one click to
  wire up all plugin overrides at once
- Adds pickFavicon() for manual single-file favicon override
- Persists custom favicon to localStorage (mb-favicon) like mb-custom-css
- Adds + Plugins, + CSS, + Icon buttons in the tab bar; all hidden on browsers
  without File System Access API

https://claude.ai/code/session_017MbNtnRDwpq7MzUco6XKcU
openBoard() now uses showDirectoryPicker() so the app has access to the
project folder. After picking a directory it:
- Scans for .md files; opens directly if one, shows an inline picker if many
- Looks for a .mbconfig/ subfolder and reads favicon.svg/png/ico and
  theme.css from it automatically — no extra step needed

Per-board plugins: each BOARDS entry gains dirHandle and plugins fields.
switchTab() calls applyBoardPlugins() on switch, so favicon and theme track
the active board. showConnect() restores global localStorage values when
all boards are closed.

The manual + Plugins button is removed (replaced by automatic detection).
+ CSS and + Icon remain as global overrides. connectPluginsFolder() removed.

.mbconfig structure:
  project/
    board.md
    .mbconfig/
      favicon.svg   (or .png / .ico / .jpg)
      theme.css

https://claude.ai/code/session_017MbNtnRDwpq7MzUco6XKcU
…y-first open

- README: open flow now picks a project folder; new .mbconfig section with
  folder structure, per-project favicon/theme docs, and version-control note;
  Features list updated; Custom themes and Custom favicon sections added
- CLAUDE.md: updated line numbers, BOARDS struct (dirHandle, plugins fields),
  Key Functions table (openBoard, loadPluginsFromDir, applyBoardPlugins,
  showMdPicker, setFavicon, pickFavicon, clearFavicon), new Plugin system section
- CONTRIBUTING.md: updated line number ranges; note on plugin system conventions

https://claude.ai/code/session_017MbNtnRDwpq7MzUco6XKcU
Added + Icon button in a previous commit, bringing the total .theme-btn
count from 6 to 7 (4 built-in + Custom hidden + + CSS + + Icon).

https://claude.ai/code/session_017MbNtnRDwpq7MzUco6XKcU
@sgjholt
sgjholt merged commit 51d9fea into main Mar 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants