diff --git a/.github/forge-posts/v1.1.0.md b/.github/forge-posts/v1.1.0.md new file mode 100644 index 0000000..533464b --- /dev/null +++ b/.github/forge-posts/v1.1.0.md @@ -0,0 +1,12 @@ +--- +subtitle: "Theme Foundation" +versionsnatur: "Major-UI-Cycle" +--- +- Theme-Engine mit fünf Built-In-Themes: Hellion Arctic (Default), Chat 2 Klassik, Event Horizon, Moonlit Bloom, Mint Grove +- Settings öffnet jetzt eine Card-Grid-Übersicht — Klick auf eine Card führt in den Detail-View, Breadcrumb und ESC zurück zur Übersicht +- Themes-Tab mit Mini-Mockup pro Theme, Live-Switch beim Klick +- Eigene Themes als JSON in `pluginConfigs/HellionChat/themes/` — Beispiel-Vorlage wird beim ersten Start automatisch abgelegt +- Optional pro Theme eigene Chat-Channel-Farben mit Übernehmen/Behalten-Banner — niemals automatisch überschrieben +- Plugin-Icon zum Hellion-Forge-Hammer gewechselt +- Migration v13 → v14: alle User landen auf Hellion Arctic. Wer den Upstream-Look will, wählt Chat 2 Klassik in Settings → Themes +- Anleitung zum Schreiben eigener Themes: `docs/THEME-AUTHORING.md` diff --git a/HellionChat/Configuration.cs b/HellionChat/Configuration.cs index fbe7fdc..da3b4d6 100755 --- a/HellionChat/Configuration.cs +++ b/HellionChat/Configuration.cs @@ -34,10 +34,23 @@ public class ConfigKeyBind [Serializable] public class Configuration : IPluginConfiguration { - private const int LatestVersion = 13; + private const int LatestVersion = 14; public int Version { get; set; } = LatestVersion; + // v1.1.0 — Theme-Engine. Slug-basiert; ThemeRegistry liefert das Objekt. + public string Theme = "hellion-arctic"; + + // v1.1.0 — Globale Window-Opacity, theme-übergreifend. Migration aus + // HellionThemeWindowOpacity beim Bump v13 → v14. + public float WindowOpacity = 0.85f; + + // v1.1.0 — Felder für künftige UI-Toggles (v1.2.0 / v1.3.0). Werden + // vorab angelegt, damit später keine Migration nötig ist. + public bool ReduceMotion; + public bool UseCompactDensity; + public bool ShowThemeQuickPicker; + // Hellion Chat — Privacy filter (DSGVO Art. 25 Privacy by Default). // Master-switch defaults to true; set false to restore upstream behavior. public bool PrivacyFilterEnabled = true; @@ -70,12 +83,14 @@ public class Configuration : IPluginConfiguration // Hellion Chat global ImGui theme — applied to every plugin window in // Plugin.Draw. Default ON; users who prefer the upstream Dalamud look // can flip this off in the Privacy tab. + [Obsolete("Replaced by Theme slug + WindowOpacity in v14")] public bool HellionThemeEnabled = true; // Window background opacity, 0.5–1.0. Lower values make the plugin // panes more glass-like so the game shines through. Default 0.5 // matches the maintainer's daily-driver preference; users who want // a less translucent look bump it up in Aussehen → Theme. + [Obsolete("Replaced by WindowOpacity in v14")] public float HellionThemeWindowOpacity = 0.5f; // Use the bundled Exo 2 font (OFL-1.1) for the regular plugin font @@ -321,10 +336,19 @@ public class Configuration : IPluginConfiguration RetentionLastRunAt = other.RetentionLastRunAt; FirstRunCompleted = other.FirstRunCompleted; +#pragma warning disable CS0612, CS0618 // Obsolete-Felder bleiben bis v1.2.0 als JSON-Safety-Net erhalten HellionThemeEnabled = other.HellionThemeEnabled; HellionThemeWindowOpacity = other.HellionThemeWindowOpacity; +#pragma warning restore CS0612, CS0618 UseHellionFont = other.UseHellionFont; + // v1.1.0 theme engine fields + Theme = other.Theme; + WindowOpacity = other.WindowOpacity; + ReduceMotion = other.ReduceMotion; + UseCompactDensity = other.UseCompactDensity; + ShowThemeQuickPicker = other.ShowThemeQuickPicker; + EnableAutoTellTabs = other.EnableAutoTellTabs; AutoTellTabsLimit = other.AutoTellTabsLimit; AutoTellTabsCompactDisplay = other.AutoTellTabsCompactDisplay; diff --git a/HellionChat/HellionChat.csproj b/HellionChat/HellionChat.csproj index 0d048e8..1771783 100644 --- a/HellionChat/HellionChat.csproj +++ b/HellionChat/HellionChat.csproj @@ -4,7 +4,7 @@ 0.1.0 is our bootstrap release; the underlying Chat 2 base is called out in the yaml changelog so users can see what it derives from. --> - 1.0.3 + 1.1.0 enable enable