feat: enhance shortcuts modal and complete logos-to-icons rename
This commit includes graphical keyboard icons integration, modal styling improvements, and comprehensive "Logos" to "Icons" terminology update. Changes: - Add graphical keyboard icons using Iconify MDI (Tab, Ctrl, Cmd, Esc, etc.) - Implement color scheme: black title, green subtitle/headers, blue kbd elements - Add visual boxes with borders and shadows for section grouping - Change modal from 3-column to 2-column grid layout (900px width) - Fix critical bug: all 5 sections now render (was only showing 2) Rename "Logos" to "Icons" across entire codebase: - Go models: ToggleLogos → ToggleIcons, ShowLogos → ShowIcons - Routes: /toggle/logos → /toggle/icons - Templates: desktop-logo-toggle → desktop-icon-toggle, #logoToggle → #iconToggle - JavaScript: logoToggles → iconToggles, sync logic updated - CSS: .show-logos → .show-icons - UI JSON: toggleLogos → toggleIcons - Comments and labels updated Technical details: - Rebuilt Go binary to fix template rendering error - Fixed JSON struct tag: json:"toggleLogos" → json:"toggleIcons" - Updated kbd element styling for icon alignment (inline-flex) - Added margin-bottom to subtitle (0.5rem) - Grid now 2 columns for better 5-section layout All 5 sections now render correctly: 1. Zoom Control 2. View Controls 3. Navigation 4. Actions 5. Browser Defaults
This commit is contained in:
+19
-19
@@ -84,7 +84,7 @@
|
||||
|
||||
/**
|
||||
* Initialize user preferences from localStorage
|
||||
* Handles language, theme, length, and logos persistence across sessions
|
||||
* Handles language, theme, length, and icons persistence across sessions
|
||||
*/
|
||||
function initPreferences() {
|
||||
// Language preference
|
||||
@@ -105,7 +105,7 @@
|
||||
// This ensures client-side preferences override server defaults
|
||||
const savedTheme = localStorage.getItem('cv-theme');
|
||||
const savedLength = localStorage.getItem('cv-length');
|
||||
const savedLogos = localStorage.getItem('cv-logos');
|
||||
const savedIcons = localStorage.getItem('cv-icons');
|
||||
|
||||
// Apply theme preference
|
||||
if (savedTheme === 'clean') {
|
||||
@@ -134,16 +134,16 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Apply logos preference
|
||||
if (cvPaper && savedLogos !== null) {
|
||||
if (savedLogos === 'true') {
|
||||
cvPaper.classList.add('show-logos');
|
||||
const logoToggles = document.querySelectorAll('#logoToggle, #logoToggleMenu');
|
||||
logoToggles.forEach(toggle => toggle.checked = true);
|
||||
// Apply icons preference
|
||||
if (cvPaper && savedIcons !== null) {
|
||||
if (savedIcons === 'true') {
|
||||
cvPaper.classList.add('show-icons');
|
||||
const iconToggles = document.querySelectorAll('#iconToggle, #iconToggleMenu');
|
||||
iconToggles.forEach(toggle => toggle.checked = true);
|
||||
} else {
|
||||
cvPaper.classList.remove('show-logos');
|
||||
const logoToggles = document.querySelectorAll('#logoToggle, #logoToggleMenu');
|
||||
logoToggles.forEach(toggle => toggle.checked = false);
|
||||
cvPaper.classList.remove('show-icons');
|
||||
const iconToggles = document.querySelectorAll('#iconToggle, #iconToggleMenu');
|
||||
iconToggles.forEach(toggle => toggle.checked = false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -271,14 +271,14 @@
|
||||
console.log(`Toggle sync - Length: desktop=${isLong}, mobile=${isLong}`);
|
||||
}
|
||||
|
||||
// Sync logo toggles
|
||||
const desktopLogoToggle = document.getElementById('logoToggle');
|
||||
const mobileLogoToggle = document.getElementById('logoToggleMenu');
|
||||
if (desktopLogoToggle && mobileLogoToggle) {
|
||||
const showLogos = target.classList.contains('show-logos');
|
||||
desktopLogoToggle.checked = showLogos;
|
||||
mobileLogoToggle.checked = showLogos;
|
||||
console.log(`Toggle sync - Logos: desktop=${showLogos}, mobile=${showLogos}`);
|
||||
// Sync icon toggles
|
||||
const desktopIconToggle = document.getElementById('iconToggle');
|
||||
const mobileIconToggle = document.getElementById('iconToggleMenu');
|
||||
if (desktopIconToggle && mobileIconToggle) {
|
||||
const showIcons = target.classList.contains('show-icons');
|
||||
desktopIconToggle.checked = showIcons;
|
||||
mobileIconToggle.checked = showIcons;
|
||||
console.log(`Toggle sync - Icons: desktop=${showIcons}, mobile=${showIcons}`);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user