Commit Graph

25 Commits

Author SHA1 Message Date
JonKazama-Hellion c985a531ef fix(theme): bgLayer beim Custom-Wechsel ohne eigenes Bild leeren
Preset->Custom liess das alte Preset-Hintergrundbild im bgLayer haengen,
weil applyCustomTheme den bgLayer nie anfasste. Jetzt wird er geleert,
wenn keine gueltige bgUrl gesetzt ist, sodass --bg-primary (Solid) durchscheint.
2026-06-15 04:30:51 +02:00
JonKazama-Hellion 2af52fc46d feat(theme): Verdrahtung Custom-Theme (applySettings, selectThemeCard, Picker, Reset, Modal-Sync) 2026-06-15 04:00:59 +02:00
JonKazama-Hellion 1bd2cbb9ad feat(theme): applyCustomTheme/clearCustomTheme/syncCustomPickers + Hex-Validierung + WCAG-Kontrast 2026-06-15 03:31:25 +02:00
JonKazama-Hellion d0feddbda0 feat(theme): customTheme-Default im State + Reset-Literal 2026-06-15 01:38:55 +02:00
JonKazama-Hellion 9beeec3182 feat(theme): eigenes Hintergrundbild um https-URLs und Quota-Schutz erweitern
- isValidBgUrl akzeptiert jetzt https:// zusätzlich zu data:/blob: (http bleibt
  ausgeschlossen wegen Mixed-Content)
- CSP img-src 'self' https: data: blob: in allen 3 Manifesten, damit remote
  Hintergründe deterministisch laden statt still am CSP-Default zu haengen
- Upload-Bilder werden vor dem Speichern per Canvas auf die Bildschirmkante
  (max 2560px) verkleinert und als WebP re-kodiert -> schont chrome.storage.local
- URL-Feld: Platzhalter lokalisierbar (data-i18n-placeholder) + Tracking-Hinweis,
  dass ein per URL geladenes Bild bei jedem Oeffnen vom fremden Server kommt
- i18n DE/EN: bg_url.desc + bg_invalid_url an https angepasst, 2 neue Keys
2026-06-14 21:34:34 +02:00
JonKazama-Hellion 83df926979 fix(trash): Daten-Review-Befunde — Import-Cap nach deletedAt sortiert (Verlust-Schutz), Restore-Doppelklick-Guard, Delete-Rollback bei Save-Fehler, NaN/Null-Haertung 2026-06-14 10:18:10 +02:00
JonKazama-Hellion 22203d25a7 v2.3 Papierkorb: renderTrash, Wiederherstellen, endgueltig loeschen, leeren 2026-06-14 09:59:44 +02:00
JonKazama-Hellion 55e371f506 fix(a11y): Dialog-Vorrang in Fokusfalle, eindeutige Dialog-IDs, Bookmark nur Enter
- settings.js: _makeTrap bricht ab, wenn ein .dialog-overlay offen ist, damit
  der Dialog-keydown-Handler Escape/Tab allein behandelt (kein Doppelschluss,
  Fokusfalle bleibt dicht)
- dialog.js: aria-labelledby/-describedby zeigen auf instanz-eindeutige IDs
  (Date.now + Modul-Zaehler) statt feste dialogTitle/dialogBody, damit kurz
  gestapelte Dialoge dem Screenreader nicht den falschen Titel liefern
- boards.js: Bookmark-keydown reagiert bei role=link nur noch auf Enter, Space
  entfernt (Space ist Button-Semantik)
2026-06-13 21:11:49 +02:00
JonKazama-Hellion 3e93efb785 a11y(toggles): native Checkboxen als role=switch mit synchron gepflegtem aria-checked 2026-06-13 21:00:59 +02:00
JonKazama-Hellion 02c36dba09 a11y(theme-picker): Cards als role=button mit tabindex, Enter/Space-Handler und gepflegtem aria-pressed 2026-06-13 21:00:21 +02:00
JonKazama-Hellion 0a93340792 a11y(modals): role=dialog + Fokus-Falle und -Rueckgabe fuer Settings und Theme-Picker 2026-06-13 20:58:42 +02:00
JonKazama-Hellion 87cd070beb refactor(view-transitions): zentralen withViewTransition-Helper in state.js, Duplikate entfernt 2026-06-13 20:42:07 +02:00
JonKazama-Hellion 24e9aa408b feat(settings): Settings-Panel und Theme-Picker mit View-Transition-Fade 2026-06-13 20:31:10 +02:00
JonKazama-Hellion 2bdee5f215 feat(themes): Theme-Wechsel mit View-Transition-Cross-Fade am Ausloeser 2026-06-13 20:30:56 +02:00
JonKazama-Hellion 675e21d886 fix(release): fehlende Versionsnummern + bgUrl-Validierung
Drei Stellen hatten noch '2.0.0' statt '2.0.1': newtab.html About-Sektion,
data.js Export und app.js Backup-Export. FileReader-Upload in settings.js
validiert jetzt bgUrl via isValidBgUrl() (Defense-in-Depth).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 20:33:38 +02:00
JonKazama-Hellion 82dd6e026a fix(security): validate background URL before CSS injection
Add isValidBgUrl() that only allows blob: and data:image/ protocols.
Applied in applySettings() and the manual URL input handler.
Prevents CSS injection via manipulated bgUrl storage values.
2026-04-16 20:18:42 +02:00
JonKazama-Hellion f07200cd8e feat(i18n): settings.js und widgets.js auf t() umstellen
Reset-Dialog, Dateifehler, Widget-Buttons (Minimieren/Schließen)
und Default-Titel verwenden jetzt i18n-Keys.
2026-03-22 18:28:35 +01:00
JonKazama-Hellion 1b39ac863b fix(i18n): Code-Quality-Review Korrekturen
- resolveLang() Hilfsfunktion extrahieren (DRY)
- JSDoc-Kommentar in I18n.init() korrigieren
- settings.export.btn Key für Export-Button trennen
- setLanguage('auto') im Reset-Handler aufrufen
2026-03-22 14:07:17 +01:00
JonKazama-Hellion f2d4e22b86 feat(i18n): i18n-Modul, _locales und data-i18n Attribute einrichten 2026-03-22 13:56:04 +01:00
JonKazama-Hellion 198171b6c2 feat(app): Onboarding, Settings-Redesign und Docs für v1.9.0
- Onboarding mit Widget-Toolbar Slide und Gaming Starter Board
- Settings in Darstellung-Modal und schlankes Settings-Panel
- About-Block als fixierten Footer im Settings-Panel
- Dropdown-Optionen an Theme-Farben anpassen
- Projekt-Dokumentation (Architektur, Widget-Schema, Patterns)
- Firefox Update-URL für Store-Veröffentlichung
- Versions-Bump auf 1.9.0 in allen Manifests
2026-03-22 13:12:24 +01:00
JonKazama-Hellion 51947b229c feat(image-ref): Bild-Referenz Widget mit Session-Storage
Opt-in Widget fuer Bild-Referenzen (max. 3 gleichzeitig).
Canvas API konvertiert zu WebP, sessionStorage fuer Bilddaten.
Positionen und Labels bleiben persistent, Bilder nur pro Session.
2026-03-22 13:12:24 +01:00
JonKazama-Hellion 18a04b884c refactor(app): Sticky-Note durch Widget-System ersetzen
Migration alter Sticky-Daten in das neue Widget-System, Notes.init()
statt initStickyNote(), Toolbar-Position in Settings, JSON-Export/Import
um Notes erweitert, Onboarding-Text aktualisiert.
2026-03-21 19:40:43 +01:00
JonKazama-Hellion 74e3eaefcf refactor(settings): Theme-Modal auslagern, Accordion-Sektionen
- Theme-Picker als eigenes Modal mit Header-Button aus Settings entfernt
- Background-Optionen (URL + Upload) ins Theme-Modal verschoben
- Alle Settings-Sektionen einklappbar mit Chevron-Animation
- About und Danger Zone standardmaessig eingeklappt
- Suchleisten-Toggle von DATA nach BEHAVIOR verschoben
- Quick Save Placeholder-Element entfernt
- STYLE_GUIDE.md fuer Theme-System hinzugefuegt
2026-03-21 19:08:31 +01:00
JonKazama-Hellion f55e1ce186 Hinzufügen von Security.md, license, Disclaimer und beheben von möglichen Copyright Problemen, bilder ausgetauscht und in readme behoben 2026-03-20 23:43:16 +01:00
JonKazama-Hellion 87c30b24d0 Initial release v1.2.0 — Hellion NewTab Browser Extension
Persoenlicher Bookmark-Dashboard als Browser-Extension.
8 Themes, Drag & Drop, Sticky Notes, JSON Export/Import.
Chrome, Edge, Brave, Opera, Vivaldi (MV3) + Firefox (MV2).

Includes GitHub Actions for security scanning, code quality
validation, and automated release packaging.
2026-03-20 22:48:21 +01:00