From 0386422a9985e030b19b50ea2c7526c63011a997 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 16 May 2026 16:37:51 +0000 Subject: [PATCH] v0.4 Phase 2: local SVG icon system, remove Google Material Icons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add 17 SVG icons to app/assets/icons/ (Material Icons paths, Apache 2.0) - Remove Google Material Icons and Symbols CDN link tags - Add normaliseIconName(), loadIcon(), getIcon(), iconEl() — icon name normalisation per spec §2.3, async fetch-and-cache, sync accessor, element builder with broken-image fallback for missing icons - Preload all standard icons (+ categories-selecticon if set) concurrently in boot() before UI is built, so all icon references are sync after that - Replace ICONS object with icon cache system throughout: theme toggle → light_mode/dark_mode, search → search, hamburgers → menu, section toggles → arrow_right/arrow_drop_down, dropdown carets → arrow_drop_down, category selecticon → normalised SVG lookup - Update .toggle-icon, .category-icon, .nav-caret CSS for SVG layout - Add .mdcms-icon CSS class (inline-flex, currentColor fill) - Fix pre-existing ICONS.close bug (was undefined; hamburger now always shows menu icon) https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c --- app/assets/icons/arrow_drop_down.svg | 1 + app/assets/icons/arrow_right.svg | 1 + app/assets/icons/dangerous.svg | 1 + app/assets/icons/dark_mode.svg | 1 + app/assets/icons/error.svg | 1 + app/assets/icons/exclamation.svg | 1 + app/assets/icons/history.svg | 1 + app/assets/icons/info.svg | 1 + app/assets/icons/language.svg | 1 + app/assets/icons/light_mode.svg | 1 + app/assets/icons/menu.svg | 1 + app/assets/icons/mobile_arrow_down.svg | 1 + app/assets/icons/report.svg | 1 + app/assets/icons/search.svg | 1 + app/assets/icons/success.svg | 1 + app/assets/icons/text_compare.svg | 1 + app/assets/icons/warning.svg | 1 + app/index.html | 93 +++++++++++++++++--------- 18 files changed, 78 insertions(+), 32 deletions(-) create mode 100644 app/assets/icons/arrow_drop_down.svg create mode 100644 app/assets/icons/arrow_right.svg create mode 100644 app/assets/icons/dangerous.svg create mode 100644 app/assets/icons/dark_mode.svg create mode 100644 app/assets/icons/error.svg create mode 100644 app/assets/icons/exclamation.svg create mode 100644 app/assets/icons/history.svg create mode 100644 app/assets/icons/info.svg create mode 100644 app/assets/icons/language.svg create mode 100644 app/assets/icons/light_mode.svg create mode 100644 app/assets/icons/menu.svg create mode 100644 app/assets/icons/mobile_arrow_down.svg create mode 100644 app/assets/icons/report.svg create mode 100644 app/assets/icons/search.svg create mode 100644 app/assets/icons/success.svg create mode 100644 app/assets/icons/text_compare.svg create mode 100644 app/assets/icons/warning.svg diff --git a/app/assets/icons/arrow_drop_down.svg b/app/assets/icons/arrow_drop_down.svg new file mode 100644 index 0000000..8c96dc8 --- /dev/null +++ b/app/assets/icons/arrow_drop_down.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/arrow_right.svg b/app/assets/icons/arrow_right.svg new file mode 100644 index 0000000..e46b2fe --- /dev/null +++ b/app/assets/icons/arrow_right.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/dangerous.svg b/app/assets/icons/dangerous.svg new file mode 100644 index 0000000..e09390b --- /dev/null +++ b/app/assets/icons/dangerous.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/dark_mode.svg b/app/assets/icons/dark_mode.svg new file mode 100644 index 0000000..d68045e --- /dev/null +++ b/app/assets/icons/dark_mode.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/error.svg b/app/assets/icons/error.svg new file mode 100644 index 0000000..abeb0a0 --- /dev/null +++ b/app/assets/icons/error.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/exclamation.svg b/app/assets/icons/exclamation.svg new file mode 100644 index 0000000..130e757 --- /dev/null +++ b/app/assets/icons/exclamation.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/history.svg b/app/assets/icons/history.svg new file mode 100644 index 0000000..e7f47f9 --- /dev/null +++ b/app/assets/icons/history.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/info.svg b/app/assets/icons/info.svg new file mode 100644 index 0000000..dbc2749 --- /dev/null +++ b/app/assets/icons/info.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/language.svg b/app/assets/icons/language.svg new file mode 100644 index 0000000..37bc8dc --- /dev/null +++ b/app/assets/icons/language.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/light_mode.svg b/app/assets/icons/light_mode.svg new file mode 100644 index 0000000..3fd31ee --- /dev/null +++ b/app/assets/icons/light_mode.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/menu.svg b/app/assets/icons/menu.svg new file mode 100644 index 0000000..47f73f8 --- /dev/null +++ b/app/assets/icons/menu.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/mobile_arrow_down.svg b/app/assets/icons/mobile_arrow_down.svg new file mode 100644 index 0000000..35c8b5f --- /dev/null +++ b/app/assets/icons/mobile_arrow_down.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/report.svg b/app/assets/icons/report.svg new file mode 100644 index 0000000..a2eeb24 --- /dev/null +++ b/app/assets/icons/report.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/search.svg b/app/assets/icons/search.svg new file mode 100644 index 0000000..bc04ce3 --- /dev/null +++ b/app/assets/icons/search.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/success.svg b/app/assets/icons/success.svg new file mode 100644 index 0000000..73c23ab --- /dev/null +++ b/app/assets/icons/success.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/text_compare.svg b/app/assets/icons/text_compare.svg new file mode 100644 index 0000000..19d85f4 --- /dev/null +++ b/app/assets/icons/text_compare.svg @@ -0,0 +1 @@ + diff --git a/app/assets/icons/warning.svg b/app/assets/icons/warning.svg new file mode 100644 index 0000000..f6bb9f1 --- /dev/null +++ b/app/assets/icons/warning.svg @@ -0,0 +1 @@ + diff --git a/app/index.html b/app/index.html index 4d39c45..9576974 100644 --- a/app/index.html +++ b/app/index.html @@ -32,8 +32,6 @@ - -