Compare commits

...

14 Commits

Author SHA1 Message Date
JonKazama-Hellion eead8d813c chore: re-release Theme Expansion as v1.2.3
Hab vergessen die repo.json wieder mit zu bumpen, deshalb hat
Dalamud den v1.2.2-Release nicht angenommen — komplette Manifest-
Bump-Checkliste diesmal durchgezogen: csproj, yaml-Description +
Changelog, repo.json (AssemblyVersion + TestingAssemblyVersion +
drei DownloadLink*-URLs + Description + Changelog), CHANGELOG.md,
ROADMAP.md, README.md, Forge-Post-Datei. Inhalt unverändert
gegenüber v1.2.2.
2026-05-06 14:24:31 +02:00
JonKazama-Hellion 28b20ad6d3 chore: sync repo.json manifest to 1.2.2 2026-05-06 14:17:13 +02:00
JonKazama-Hellion a88ec1714d Merge branch 'feature/v1.2.2-theme-expansion' 2026-05-06 14:07:07 +02:00
JonKazama-Hellion 0110295e7d feat: set Night Blue and Indigo Violet author to Julia Moon 2026-05-06 14:06:14 +02:00
JonKazama-Hellion 9752206996 docs: add forge-post for v1.2.2 2026-05-06 14:04:22 +02:00
JonKazama-Hellion 2f4e4c33ca docs: refresh ROADMAP for 1.2.0/1.2.1/1.2.2 cycle and 1.3.0 next-cycle 2026-05-06 14:02:12 +02:00
JonKazama-Hellion b30b6b135c docs: update THEME-AUTHORING for 1.2.2 themes 2026-05-06 14:01:42 +02:00
JonKazama-Hellion df0844b737 docs: add 1.2.2 entry to CHANGELOG and backfill missing 1.2.1 2026-05-06 14:01:23 +02:00
JonKazama-Hellion 21d703bf0b docs: update HellionChat.yaml description and changelog for 1.2.2 2026-05-06 14:00:11 +02:00
JonKazama-Hellion 4048f0b8d0 chore: bump version to 1.2.2 2026-05-06 13:59:26 +02:00
JonKazama-Hellion 2d0e9ae70c feat: add Hellion Spectrum CVD-safe theme and finalise registry order 2026-05-06 13:59:05 +02:00
JonKazama-Hellion eaf11dcebe feat: add Forge Merchantman built-in theme 2026-05-06 13:57:39 +02:00
JonKazama-Hellion 9bd8262191 feat: add Indigo Violet built-in theme 2026-05-06 13:56:56 +02:00
JonKazama-Hellion ddb00a0836 feat: add Night Blue built-in theme 2026-05-06 13:56:11 +02:00
13 changed files with 443 additions and 30 deletions
+13
View File
@@ -0,0 +1,13 @@
---
subtitle: "Theme Expansion"
versionsnatur: "Theme-Pack-Patch"
---
- Vier neue Built-in-Themes verlängern die Auswahl im Picker — keine Engine-Änderung, keine Settings angefasst, einfach mehr Farboptionen
- **Night Blue** — Royal Blue auf tiefem Marineblau. Kühles Tech-Dashboard-Mood, bewusst neutral gehalten damit es sich nicht mit den Brand-Themes beißt
- **Indigo Violet** — Royal Violet auf Deep Indigo mit Türkis-Mint-Counter für Aurora-Glitter-Stimmung. Schwester von Event Horizon, aber dunkler und dichter; der Türkis-Akzent hält die beiden klar auseinander
- **Forge Merchantman** — Patina-Bronze auf Workshop-Slate mit warmem Bernstein-Counter. Hellion Forge bekommt ein eigenes Theme im Plugin selbst — Schwester von Hellion Arctic, aber grüner und wärmer statt kaltem Cyan
- **Hellion Spectrum** — Farbenblind-sichere Channel-Farben (Deuteranopie/Protanopie) auf Basis der Wong/Okabe-Ito-Palette. Channel-Identität bleibt erhalten (Tell pink, Yell gelb, Shout orange, Party blau, FC grün); die Töne sind so gewählt dass jeder Channel auch unter Rot-Grün-Schwäche klar trennbar bleibt. Deckt rund 99 % aller CVD-Fälle ab
- Kein Schema-Bump, keine Migration. Das Default-Theme bleibt **Hellion Arctic**, eigene Custom-Themes laufen unverändert weiter
- Theme-Katalog wächst damit von fünf auf neun Built-ins
Reines Theme-Pack zwischen v1.2.1 und dem nächsten Polish-Cycle. Eine Tritan-Variante (Spectrum für Blau-Gelb-Schwäche) kann später nachgeliefert werden, falls Bedarf kommt.
+1 -1
View File
@@ -4,7 +4,7 @@
0.1.0 is our bootstrap release; the underlying Chat 2 base is 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 called out in the yaml changelog so users can see what it
derives from. --> derives from. -->
<Version>1.2.1</Version> <Version>1.2.3</Version>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<!-- Honor packages.lock.json on restore so floating version ranges <!-- Honor packages.lock.json on restore so floating version ranges
+31
View File
@@ -36,6 +36,11 @@ description: |-
JSON-based custom-theme authoring. Settings rebuilt around a card JSON-based custom-theme authoring. Settings rebuilt around a card
grid with section detail views. See docs/THEME-AUTHORING.md. grid with section detail views. See docs/THEME-AUTHORING.md.
v1.2.3 — Theme catalogue grown to nine built-in themes:
Hellion Arctic, Hellion Spectrum (CVD-safe Deuteran/Protan),
Chat 2 Klassik, Event Horizon, Moonlit Bloom, Mint Grove,
Night Blue, Indigo Violet, Forge Merchantman.
Based on Chat 2 by Infi and Anna, licensed under EUPL-1.2. Based on Chat 2 by Infi and Anna, licensed under EUPL-1.2.
Modding & support: join the Hellion Forge Discord at Modding & support: join the Hellion Forge Discord at
@@ -55,6 +60,32 @@ tags:
- Replacement - Replacement
- Privacy - Privacy
changelog: |- changelog: |-
**Hellion Chat 1.2.3 — Theme Expansion**
Four new built-in themes round out the picker. No engine changes,
no settings touched — just more colour options.
- **Night Blue** — Royal Blue on deep marine. Cool tech-dashboard
mood, distinct from the brand themes.
- **Indigo Violet** — Royal Violet on deep indigo with a turquoise-
mint counter for an aurora glitter feel. Sister to Event Horizon
but darker and denser; the turquoise accent keeps the two
distinguishable.
- **Forge Merchantman** — Patina bronze on workshop slate, warm
amber counter. Hellion Forge given a theme of its own — sister
to Hellion Arctic but greener and warmer instead of cold cyan.
- **Hellion Spectrum** — Deuteran/Protan-safe channel colours
using Wong/Okabe-Ito palette tones. Channel identity (Tell pink,
Yell yellow, Shout orange, Party blue, FC green) is preserved;
tones are chosen so each channel stays distinguishable under
red-green colour vision deficiency. Covers the ~99% of CVD cases
that are red-green.
No schema bump, no migration. Default theme is unchanged (Hellion
Arctic). Existing custom themes keep working.
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
**Hellion Chat 1.2.1 — Settings Cleanup** **Hellion Chat 1.2.1 — Settings Cleanup**
Re-sorted the settings menu so related options live together. Card names Re-sorted the settings menu so related options live together. Card names
@@ -0,0 +1,76 @@
using HellionChat.Util;
namespace HellionChat.Themes.Builtin;
internal static class ForgeMerchantman
{
public const string Slug = "forge-merchantman";
public static Theme Build() => new(
Slug: Slug,
Name: "Forge Merchantman",
Author: "Hellion Online Media",
Description: "Patina Bronze auf Workshop-Slate — Hellion Forge im Plugin.",
Colors: new ThemeColors(
PrimaryDark: ColourUtil.HexToRgba("#1F8A82"),
Primary: ColourUtil.HexToRgba("#2DB39E"),
PrimaryLight: ColourUtil.HexToRgba("#4FC9B0"),
PrimaryGlow: ColourUtil.HexToRgba("#2DB39E99"),
AccentDark: ColourUtil.HexToRgba("#B86A20"),
Accent: ColourUtil.HexToRgba("#D9892C"),
AccentLight: ColourUtil.HexToRgba("#E8A04A"),
Identity: ColourUtil.HexToRgba("#1F8A82"),
WindowBg: ColourUtil.HexToRgba("#050B0A"),
ChildBg: ColourUtil.HexToRgba("#0B1413"),
FrameBg: ColourUtil.HexToRgba("#11201D"),
Surface: ColourUtil.HexToRgba("#182925"),
SurfaceHover: ColourUtil.HexToRgba("#213631"),
Border: ColourUtil.HexToRgba("#2DB39E66"),
TextPrimary: ColourUtil.HexToRgba("#D8EFE8"),
TextMuted: ColourUtil.HexToRgba("#8FA39B"),
TextDim: ColourUtil.HexToRgba("#5A6E66"),
StatusSuccess: ColourUtil.HexToRgba("#5CB85C"),
StatusDanger: ColourUtil.HexToRgba("#D9534F"),
StatusWarning: ColourUtil.HexToRgba("#F0AD4E"),
StatusInfo: ColourUtil.HexToRgba("#2DB39E")
),
Layout: new ThemeLayout(
WindowRounding: 4f, ChildRounding: 3f, PopupRounding: 3f,
FrameRounding: 2f, GrabRounding: 2f, TabRounding: 2f,
ScrollbarRounding: 2f, WindowBorderSize: 1f, FrameBorderSize: 1f
),
Typography: new ThemeTypography(),
IsBuiltIn: true,
ChatColors: new ThemeChatColors(new Dictionary<HellionChat.Code.ChatType, uint>
{
// Forge Merchantman — Patina-Tinte in Party/FC, Bernstein-Tinte in
// Yell/Alliance/CustomEmote. Channel-identity bleibt voll erhalten.
[HellionChat.Code.ChatType.Say] = ColourUtil.HexToRgba("#FFFFFF"),
[HellionChat.Code.ChatType.Yell] = ColourUtil.HexToRgba("#F0C060"),
[HellionChat.Code.ChatType.Shout] = ColourUtil.HexToRgba("#E8902C"),
[HellionChat.Code.ChatType.TellIncoming] = ColourUtil.HexToRgba("#FF99CC"),
[HellionChat.Code.ChatType.TellOutgoing] = ColourUtil.HexToRgba("#FF99CC"),
[HellionChat.Code.ChatType.Party] = ColourUtil.HexToRgba("#6AC9B0"),
[HellionChat.Code.ChatType.Alliance] = ColourUtil.HexToRgba("#E8A04A"),
[HellionChat.Code.ChatType.FreeCompany] = ColourUtil.HexToRgba("#4FB8A0"),
[HellionChat.Code.ChatType.NoviceNetwork] = ColourUtil.HexToRgba("#A8E060"),
[HellionChat.Code.ChatType.CrossParty] = ColourUtil.HexToRgba("#6AC9B0"),
[HellionChat.Code.ChatType.Linkshell1] = ColourUtil.HexToRgba("#A8E060"),
[HellionChat.Code.ChatType.Linkshell2] = ColourUtil.HexToRgba("#E8A04A"),
[HellionChat.Code.ChatType.Linkshell3] = ColourUtil.HexToRgba("#F0C060"),
[HellionChat.Code.ChatType.Linkshell4] = ColourUtil.HexToRgba("#80E8B0"),
[HellionChat.Code.ChatType.Linkshell5] = ColourUtil.HexToRgba("#6AC9B0"),
[HellionChat.Code.ChatType.Linkshell6] = ColourUtil.HexToRgba("#A8A0F0"),
[HellionChat.Code.ChatType.Linkshell7] = ColourUtil.HexToRgba("#FF99CC"),
[HellionChat.Code.ChatType.Linkshell8] = ColourUtil.HexToRgba("#E8B0F0"),
[HellionChat.Code.ChatType.CustomEmote] = ColourUtil.HexToRgba("#E8C880"),
[HellionChat.Code.ChatType.StandardEmote] = ColourUtil.HexToRgba("#E8C880"),
[HellionChat.Code.ChatType.Echo] = ColourUtil.HexToRgba("#8FA39B"),
})
);
}
@@ -0,0 +1,83 @@
using HellionChat.Util;
namespace HellionChat.Themes.Builtin;
// Hellion Spectrum: Deuteran/Protan-safe channel colours.
// Palette derived from Bang Wong, "Points of view: Color blindness",
// Nature Methods 8, 441 (2011). Channel identity (Tell pink, Yell yellow,
// Shout orange, Party blue, FC green) is preserved per Channel-Identity-
// Rule in docs/THEME-AUTHORING.md; tones are chosen so every channel
// stays distinguishable under red-green colour-vision deficiency.
internal static class HellionSpectrum
{
public const string Slug = "hellion-spectrum";
public static Theme Build() => new(
Slug: Slug,
Name: "Hellion Spectrum",
Author: "Hellion Online Media",
Description: "Deuteran/Protan-safe channels — Wong palette tones, channel identity preserved.",
Colors: new ThemeColors(
PrimaryDark: ColourUtil.HexToRgba("#005983"),
Primary: ColourUtil.HexToRgba("#0072B2"),
PrimaryLight: ColourUtil.HexToRgba("#3E9BD0"),
PrimaryGlow: ColourUtil.HexToRgba("#0072B299"),
AccentDark: ColourUtil.HexToRgba("#B07F00"),
Accent: ColourUtil.HexToRgba("#E69F00"),
AccentLight: ColourUtil.HexToRgba("#F0B73A"),
Identity: ColourUtil.HexToRgba("#005983"),
WindowBg: ColourUtil.HexToRgba("#0A0F14"),
ChildBg: ColourUtil.HexToRgba("#101620"),
FrameBg: ColourUtil.HexToRgba("#1A222E"),
Surface: ColourUtil.HexToRgba("#22303F"),
SurfaceHover: ColourUtil.HexToRgba("#2D3E51"),
Border: ColourUtil.HexToRgba("#0072B266"),
TextPrimary: ColourUtil.HexToRgba("#F0F4F8"),
TextMuted: ColourUtil.HexToRgba("#9AA8B5"),
TextDim: ColourUtil.HexToRgba("#5E6B78"),
StatusSuccess: ColourUtil.HexToRgba("#009E73"),
StatusDanger: ColourUtil.HexToRgba("#D55E00"),
StatusWarning: ColourUtil.HexToRgba("#F0E442"),
StatusInfo: ColourUtil.HexToRgba("#56B4E9")
),
Layout: new ThemeLayout(
WindowRounding: 6f, ChildRounding: 5f, PopupRounding: 5f,
FrameRounding: 4f, GrabRounding: 4f, TabRounding: 4f,
ScrollbarRounding: 4f, WindowBorderSize: 1f, FrameBorderSize: 1f
),
Typography: new ThemeTypography(),
IsBuiltIn: true,
ChatColors: new ThemeChatColors(new Dictionary<HellionChat.Code.ChatType, uint>
{
// Hellion Spectrum — Wong/Okabe-Ito tones within FFXIV channel
// identity. FC pulled slightly greener than vanilla cyan-teal so
// Party-blue and FC-green stay separable under deuteran sim.
[HellionChat.Code.ChatType.Say] = ColourUtil.HexToRgba("#FFFFFF"),
[HellionChat.Code.ChatType.Yell] = ColourUtil.HexToRgba("#F0E442"),
[HellionChat.Code.ChatType.Shout] = ColourUtil.HexToRgba("#D55E00"),
[HellionChat.Code.ChatType.TellIncoming] = ColourUtil.HexToRgba("#CC79A7"),
[HellionChat.Code.ChatType.TellOutgoing] = ColourUtil.HexToRgba("#CC79A7"),
[HellionChat.Code.ChatType.Party] = ColourUtil.HexToRgba("#56B4E9"),
[HellionChat.Code.ChatType.Alliance] = ColourUtil.HexToRgba("#E69F00"),
[HellionChat.Code.ChatType.FreeCompany] = ColourUtil.HexToRgba("#009E73"),
[HellionChat.Code.ChatType.NoviceNetwork] = ColourUtil.HexToRgba("#94CC4A"),
[HellionChat.Code.ChatType.CrossParty] = ColourUtil.HexToRgba("#56B4E9"),
[HellionChat.Code.ChatType.Linkshell1] = ColourUtil.HexToRgba("#94CC4A"),
[HellionChat.Code.ChatType.Linkshell2] = ColourUtil.HexToRgba("#E69F00"),
[HellionChat.Code.ChatType.Linkshell3] = ColourUtil.HexToRgba("#F0E442"),
[HellionChat.Code.ChatType.Linkshell4] = ColourUtil.HexToRgba("#66D9A8"),
[HellionChat.Code.ChatType.Linkshell5] = ColourUtil.HexToRgba("#56B4E9"),
[HellionChat.Code.ChatType.Linkshell6] = ColourUtil.HexToRgba("#8B7DD0"),
[HellionChat.Code.ChatType.Linkshell7] = ColourUtil.HexToRgba("#E0A0C0"),
[HellionChat.Code.ChatType.Linkshell8] = ColourUtil.HexToRgba("#DAA0DA"),
[HellionChat.Code.ChatType.CustomEmote] = ColourUtil.HexToRgba("#C9A56F"),
[HellionChat.Code.ChatType.StandardEmote] = ColourUtil.HexToRgba("#C9A56F"),
[HellionChat.Code.ChatType.Echo] = ColourUtil.HexToRgba("#C0C0C0"),
})
);
}
@@ -0,0 +1,77 @@
using HellionChat.Util;
namespace HellionChat.Themes.Builtin;
internal static class IndigoViolet
{
public const string Slug = "indigo-violet";
public static Theme Build() => new(
Slug: Slug,
Name: "Indigo Violet",
Author: "Julia Moon",
Description: "Royal Violet auf Deep Indigo — Glitter-Galaxy mit Türkis-Mint-Aurora.",
Colors: new ThemeColors(
PrimaryDark: ColourUtil.HexToRgba("#6B3AB0"),
Primary: ColourUtil.HexToRgba("#8B4DDE"),
PrimaryLight: ColourUtil.HexToRgba("#B07CFF"),
PrimaryGlow: ColourUtil.HexToRgba("#8B4DDE99"),
AccentDark: ColourUtil.HexToRgba("#36A89C"),
Accent: ColourUtil.HexToRgba("#4FC9B8"),
AccentLight: ColourUtil.HexToRgba("#7AE0CF"),
Identity: ColourUtil.HexToRgba("#6B3AB0"),
WindowBg: ColourUtil.HexToRgba("#0D061F"),
ChildBg: ColourUtil.HexToRgba("#1A0D3D"),
FrameBg: ColourUtil.HexToRgba("#2A1556"),
Surface: ColourUtil.HexToRgba("#3D1F78"),
SurfaceHover: ColourUtil.HexToRgba("#5B2A9A"),
Border: ColourUtil.HexToRgba("#8B4DDE66"),
TextPrimary: ColourUtil.HexToRgba("#F0E6FF"),
TextMuted: ColourUtil.HexToRgba("#A890D0"),
TextDim: ColourUtil.HexToRgba("#7560A0"),
StatusSuccess: ColourUtil.HexToRgba("#3DDC97"),
StatusDanger: ColourUtil.HexToRgba("#FF5C7A"),
StatusWarning: ColourUtil.HexToRgba("#FFB84A"),
StatusInfo: ColourUtil.HexToRgba("#8B4DDE")
),
Layout: new ThemeLayout(
WindowRounding: 6f, ChildRounding: 5f, PopupRounding: 5f,
FrameRounding: 4f, GrabRounding: 4f, TabRounding: 4f,
ScrollbarRounding: 4f, WindowBorderSize: 1f, FrameBorderSize: 1f
),
Typography: new ThemeTypography(),
IsBuiltIn: true,
ChatColors: new ThemeChatColors(new Dictionary<HellionChat.Code.ChatType, uint>
{
// Indigo Violet — Lavender-Pink-Drift in Tell und LS6/7. Türkis-
// Mint-Aurora-Counter in Party/FC und LS4. Glitter-Gold in Yell.
// Differenzierung zu Event Horizon: dunkler, dichter, Türkis statt Gold.
[HellionChat.Code.ChatType.Say] = ColourUtil.HexToRgba("#F0E6FF"),
[HellionChat.Code.ChatType.Yell] = ColourUtil.HexToRgba("#F0D880"),
[HellionChat.Code.ChatType.Shout] = ColourUtil.HexToRgba("#F09A60"),
[HellionChat.Code.ChatType.TellIncoming] = ColourUtil.HexToRgba("#E090FF"),
[HellionChat.Code.ChatType.TellOutgoing] = ColourUtil.HexToRgba("#E090FF"),
[HellionChat.Code.ChatType.Party] = ColourUtil.HexToRgba("#6AB8D0"),
[HellionChat.Code.ChatType.Alliance] = ColourUtil.HexToRgba("#F0A878"),
[HellionChat.Code.ChatType.FreeCompany] = ColourUtil.HexToRgba("#4FC9B8"),
[HellionChat.Code.ChatType.NoviceNetwork] = ColourUtil.HexToRgba("#A0E090"),
[HellionChat.Code.ChatType.CrossParty] = ColourUtil.HexToRgba("#6AB8D0"),
[HellionChat.Code.ChatType.Linkshell1] = ColourUtil.HexToRgba("#A0E090"),
[HellionChat.Code.ChatType.Linkshell2] = ColourUtil.HexToRgba("#F0BC92"),
[HellionChat.Code.ChatType.Linkshell3] = ColourUtil.HexToRgba("#F0D880"),
[HellionChat.Code.ChatType.Linkshell4] = ColourUtil.HexToRgba("#80E0C0"),
[HellionChat.Code.ChatType.Linkshell5] = ColourUtil.HexToRgba("#6AB8D0"),
[HellionChat.Code.ChatType.Linkshell6] = ColourUtil.HexToRgba("#B07CFF"),
[HellionChat.Code.ChatType.Linkshell7] = ColourUtil.HexToRgba("#E090FF"),
[HellionChat.Code.ChatType.Linkshell8] = ColourUtil.HexToRgba("#C098D8"),
[HellionChat.Code.ChatType.CustomEmote] = ColourUtil.HexToRgba("#E8B590"),
[HellionChat.Code.ChatType.StandardEmote] = ColourUtil.HexToRgba("#E8B590"),
[HellionChat.Code.ChatType.Echo] = ColourUtil.HexToRgba("#A890D0"),
})
);
}
+76
View File
@@ -0,0 +1,76 @@
using HellionChat.Util;
namespace HellionChat.Themes.Builtin;
internal static class NightBlue
{
public const string Slug = "night-blue";
public static Theme Build() => new(
Slug: Slug,
Name: "Night Blue",
Author: "Julia Moon",
Description: "Royal Blue auf Marineblau — kühles Tech-Dashboard-Mood.",
Colors: new ThemeColors(
PrimaryDark: ColourUtil.HexToRgba("#3576C0"),
Primary: ColourUtil.HexToRgba("#4A90E2"),
PrimaryLight: ColourUtil.HexToRgba("#6AB0FF"),
PrimaryGlow: ColourUtil.HexToRgba("#4A90E299"),
AccentDark: ColourUtil.HexToRgba("#C97A2E"),
Accent: ColourUtil.HexToRgba("#E8A040"),
AccentLight: ColourUtil.HexToRgba("#F4B968"),
Identity: ColourUtil.HexToRgba("#3576C0"),
WindowBg: ColourUtil.HexToRgba("#050B18"),
ChildBg: ColourUtil.HexToRgba("#0A1628"),
FrameBg: ColourUtil.HexToRgba("#122039"),
Surface: ColourUtil.HexToRgba("#1A2D4F"),
SurfaceHover: ColourUtil.HexToRgba("#234070"),
Border: ColourUtil.HexToRgba("#4A90E266"),
TextPrimary: ColourUtil.HexToRgba("#E6EDF7"),
TextMuted: ColourUtil.HexToRgba("#8CA0BF"),
TextDim: ColourUtil.HexToRgba("#5A6F8F"),
StatusSuccess: ColourUtil.HexToRgba("#3DDC97"),
StatusDanger: ColourUtil.HexToRgba("#FF5C7A"),
StatusWarning: ColourUtil.HexToRgba("#FFB84A"),
StatusInfo: ColourUtil.HexToRgba("#4A90E2")
),
Layout: new ThemeLayout(
WindowRounding: 6f, ChildRounding: 5f, PopupRounding: 5f,
FrameRounding: 4f, GrabRounding: 4f, TabRounding: 4f,
ScrollbarRounding: 4f, WindowBorderSize: 1f, FrameBorderSize: 1f
),
Typography: new ThemeTypography(),
IsBuiltIn: true,
ChatColors: new ThemeChatColors(new Dictionary<HellionChat.Code.ChatType, uint>
{
// Night Blue — Royal-Blue-Tinte in Party/FC, Bronze-Gold in Yell/
// Alliance. Channel-identity (Tell-Pink, NN-Lime) bleibt erhalten.
[HellionChat.Code.ChatType.Say] = ColourUtil.HexToRgba("#FFFFFF"),
[HellionChat.Code.ChatType.Yell] = ColourUtil.HexToRgba("#FFD060"),
[HellionChat.Code.ChatType.Shout] = ColourUtil.HexToRgba("#FFA040"),
[HellionChat.Code.ChatType.TellIncoming] = ColourUtil.HexToRgba("#FF99CC"),
[HellionChat.Code.ChatType.TellOutgoing] = ColourUtil.HexToRgba("#FF99CC"),
[HellionChat.Code.ChatType.Party] = ColourUtil.HexToRgba("#6AA8E8"),
[HellionChat.Code.ChatType.Alliance] = ColourUtil.HexToRgba("#E8B070"),
[HellionChat.Code.ChatType.FreeCompany] = ColourUtil.HexToRgba("#4FA8E8"),
[HellionChat.Code.ChatType.NoviceNetwork] = ColourUtil.HexToRgba("#A8E060"),
[HellionChat.Code.ChatType.CrossParty] = ColourUtil.HexToRgba("#6AA8E8"),
[HellionChat.Code.ChatType.Linkshell1] = ColourUtil.HexToRgba("#A8E060"),
[HellionChat.Code.ChatType.Linkshell2] = ColourUtil.HexToRgba("#E8B070"),
[HellionChat.Code.ChatType.Linkshell3] = ColourUtil.HexToRgba("#FFD060"),
[HellionChat.Code.ChatType.Linkshell4] = ColourUtil.HexToRgba("#80E8A8"),
[HellionChat.Code.ChatType.Linkshell5] = ColourUtil.HexToRgba("#6AA8E8"),
[HellionChat.Code.ChatType.Linkshell6] = ColourUtil.HexToRgba("#A8A0F0"),
[HellionChat.Code.ChatType.Linkshell7] = ColourUtil.HexToRgba("#FF99CC"),
[HellionChat.Code.ChatType.Linkshell8] = ColourUtil.HexToRgba("#E8B0F0"),
[HellionChat.Code.ChatType.CustomEmote] = ColourUtil.HexToRgba("#E8B070"),
[HellionChat.Code.ChatType.StandardEmote] = ColourUtil.HexToRgba("#E8B070"),
[HellionChat.Code.ChatType.Echo] = ColourUtil.HexToRgba("#8CA0BF"),
})
);
}
+9 -5
View File
@@ -15,11 +15,15 @@ public sealed class ThemeRegistry
{ {
_builtIns = new Dictionary<string, Theme>(StringComparer.OrdinalIgnoreCase) _builtIns = new Dictionary<string, Theme>(StringComparer.OrdinalIgnoreCase)
{ {
{ HellionArctic.Slug, HellionArctic.Build() }, { HellionArctic.Slug, HellionArctic.Build() },
{ Chat2Classic.Slug, Chat2Classic.Build() }, { HellionSpectrum.Slug, HellionSpectrum.Build() },
{ EventHorizon.Slug, EventHorizon.Build() }, { Chat2Classic.Slug, Chat2Classic.Build() },
{ MoonlitBloom.Slug, MoonlitBloom.Build() }, { EventHorizon.Slug, EventHorizon.Build() },
{ MintGrove.Slug, MintGrove.Build() }, { MoonlitBloom.Slug, MoonlitBloom.Build() },
{ NightBlue.Slug, NightBlue.Build() },
{ IndigoViolet.Slug, IndigoViolet.Build() },
{ ForgeMerchantman.Slug, ForgeMerchantman.Build() },
{ MintGrove.Slug, MintGrove.Build() },
}; };
_active = _builtIns[DefaultSlug]; _active = _builtIns[DefaultSlug];
_customThemesDir = customThemesDir; _customThemesDir = customThemesDir;
+4 -4
View File
@@ -12,7 +12,7 @@
<img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" /> <img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" />
</p> </p>
**Version 1.1.0** — Privacy-First-Chat-Plugin für FINAL FANTASY XIV / Dalamud, basierend auf [Chat 2](https://github.com/Infiziert90/ChatTwo) (EUPL-1.2). **Version 1.2.3** — Privacy-First-Chat-Plugin für FINAL FANTASY XIV / Dalamud, basierend auf [Chat 2](https://github.com/Infiziert90/ChatTwo) (EUPL-1.2).
Hellion Chat ist ein Privacy-First-Plugin auf dem Chat-2-Fundament. Der größte Teil der Engine kommt aus Chat 2 (Message-Store, Channel-Logik, Hook-System), die meisten Tastenkürzel funktionieren weiterhin wie gewohnt. Was sich ändert: schärfere Privacy-Defaults von Haus aus, eigene Slash-Commands unter `/hellionchat`, kein Webinterface mehr, und mit v1.1.0 eine Theme-Engine als Schritt in Richtung eigenes UI-Look-and-Feel. Hellion Chat ist ein Privacy-First-Plugin auf dem Chat-2-Fundament. Der größte Teil der Engine kommt aus Chat 2 (Message-Store, Channel-Logik, Hook-System), die meisten Tastenkürzel funktionieren weiterhin wie gewohnt. Was sich ändert: schärfere Privacy-Defaults von Haus aus, eigene Slash-Commands unter `/hellionchat`, kein Webinterface mehr, und mit v1.1.0 eine Theme-Engine als Schritt in Richtung eigenes UI-Look-and-Feel.
@@ -72,7 +72,7 @@ Hellion Chat wird unter **Hellion Forge** entwickelt, der spezialisierten Moddin
#### Custom Themes (v1.1.0) #### Custom Themes (v1.1.0)
HellionChat 1.1.0 bringt eine Theme-Engine mit fünf eingebauten Themes (Hellion Arctic, Chat 2 Klassik, Event Horizon, Moonlit Bloom, Mint Grove) und ein JSON-basiertes Authoring-Format für eigene Themes. Schema und Schritt-für-Schritt-Anleitung in [`docs/THEME-AUTHORING.md`](docs/THEME-AUTHORING.md). HellionChat bringt eine Theme-Engine mit derzeit neun eingebauten Themes (Hellion Arctic, Hellion Spectrum, Chat 2 Klassik, Event Horizon, Moonlit Bloom, Mint Grove, Night Blue, Indigo Violet, Forge Merchantman) und ein JSON-basiertes Authoring-Format für eigene Themes. Schema und Schritt-für-Schritt-Anleitung in [`docs/THEME-AUTHORING.md`](docs/THEME-AUTHORING.md). Hellion Spectrum ist Deuteran/Protan-safe (rot-grün-Farbenblindheit) auf Basis der Wong/Okabe-Ito-Palette.
### Pop-Out Convenience (v0.6.0) ### Pop-Out Convenience (v0.6.0)
@@ -221,7 +221,7 @@ Eine optionale Submission ans Dalamud-Main-Plugin-Repo (zusätzlich zum eigenen
## Projektstatus ## Projektstatus
**Version 1.1.0** — Theme-Engine live, Standalone-Cut abgeschlossen (Stand: 2026-05-04). **Version 1.2.3** — Theme-Katalog auf neun Built-ins erweitert, Settings thematisch re-sortiert, Standalone-Cut abgeschlossen (Stand: 2026-05-06).
Hellion Chat ist ein eigenständiges Plugin, kein Fork mehr im Repository-Sinne. Vollständig abgeschlossen: Hellion Chat ist ein eigenständiges Plugin, kein Fork mehr im Repository-Sinne. Vollständig abgeschlossen:
@@ -237,7 +237,7 @@ Hellion Chat ist ein eigenständiges Plugin, kein Fork mehr im Repository-Sinne.
- About-Tab im Hellion-Branding, EN und DE lokalisiert, mit License und Disclaimer - About-Tab im Hellion-Branding, EN und DE lokalisiert, mit License und Disclaimer
- AI-Disclosure dokumentiert (siehe [`docs/AI_DISCLOSURE.md`](docs/AI_DISCLOSURE.md)) - AI-Disclosure dokumentiert (siehe [`docs/AI_DISCLOSURE.md`](docs/AI_DISCLOSURE.md))
- Standalone-Cut: Namespace `HellionChat.*`, IPC-Kanäle `HellionChat.*`, Source-Tree-Restructure, Conflict-Detection gegen Upstream Chat 2, SQLite-CVE-Härtung (3.50.3) - Standalone-Cut: Namespace `HellionChat.*`, IPC-Kanäle `HellionChat.*`, Source-Tree-Restructure, Conflict-Detection gegen Upstream Chat 2, SQLite-CVE-Härtung (3.50.3)
- Theme-Engine mit fünf eingebauten Themes plus JSON-Authoring-Format (v1.1.0) - Theme-Engine mit neun eingebauten Themes plus JSON-Authoring-Format (Engine v1.1.0, Katalog erweitert in v1.2.3, inkl. CVD-safe Hellion Spectrum)
In Arbeit: schrittweise Modernisierung des UI-Look-and-Feel über die Theme-Engine hinaus. Was als Nächstes geplant ist und welche Themen langfristig auf der Liste stehen, steht in [`docs/ROADMAP.md`](docs/ROADMAP.md). Konkrete eingeplante Items werden zusätzlich im [GitHub-Issue-Tracker](https://github.com/JonKazama-Hellion/HellionChat/issues) mit dem `roadmap`-Label geführt. In Arbeit: schrittweise Modernisierung des UI-Look-and-Feel über die Theme-Engine hinaus. Was als Nächstes geplant ist und welche Themen langfristig auf der Liste stehen, steht in [`docs/ROADMAP.md`](docs/ROADMAP.md). Konkrete eingeplante Items werden zusätzlich im [GitHub-Issue-Tracker](https://github.com/JonKazama-Hellion/HellionChat/issues) mit dem `roadmap`-Label geführt.
+40
View File
@@ -12,6 +12,46 @@ und verlinkt für Details auf die Release-Pages.
--- ---
## v1.2.3 — Theme Expansion (2026-05-06)
### Added
- Four new built-in themes:
- **Night Blue** — Royal Blue on deep marine, cool tech-dashboard mood
- **Indigo Violet** — Royal Violet on deep indigo with a turquoise-mint counter (aurora glitter feel)
- **Forge Merchantman** — Patina bronze on workshop slate with warm amber counter (Hellion Forge identity)
- **Hellion Spectrum** — Deuteran/Protan-safe channel colours using Wong/Okabe-Ito palette tones; channel identity (Tell pink, Yell yellow, Shout orange, Party blue, FC green) preserved while keeping every channel separable under red-green colour vision deficiency
- Built-in theme catalogue grown from five to nine
### Notes
- No engine changes, no settings touched, no migration
- Default theme unchanged (Hellion Arctic). Existing custom themes keep working.
- Hellion Spectrum covers the ~99 % of CVD cases that are red-green; a Tritan-safe variant could follow in a later cycle if there is demand.
---
## v1.2.1 — Settings Cleanup (2026-05-06)
### Changed
- Settings cards re-sorted thematically: 9 cards remain, each card has one clear job and a one-line subtitle.
- **Theme & Layout** (new) collects the theme picker, window frame style (title bar, sidebar, hide button, pop-out title bar) and the timestamp style options.
- **Fonts & Colours** (new) houses font choice, font size and per-channel chat colours.
- **Data Management** (new) collects retention windows, cleanup, export, the database viewer and the shift-click advanced tools.
- **Privacy** is now focused on the privacy filter alone.
- **Chat** absorbs the Auto-Tell-Tabs history-preload slider that used to live under Privacy.
- **General** groups the keybind mode under Input.
### Removed
- Legacy "Style override" option and the unused style-name field — both obsolete since the v1.1.0 themes engine.
- Legacy `WindowAlpha` slider — if you had it set, the value is auto-migrated to Theme & Layout → Window Style → Window Transparency.
- Unused `ShowThemeQuickPicker` schema field.
### Migration
- v15 → v16 with backup at `pluginConfigs/HellionChat.json.pre-v16-backup`.
- All other settings preserved unchanged.
- One-time toast on first start if Style override was previously active.
---
## v1.2.0 — Layout Refresh (2026-05-05) ## v1.2.0 — Layout Refresh (2026-05-05)
### Added ### Added
+24 -11
View File
@@ -12,20 +12,33 @@ Privacy-First-Schnittmenge des Plugins erweisen.
--- ---
## Nächster Cycle (v1.2.0) ## Nächster Cycle (v1.3.0)
**Layout Refresh** — sichtbare Modernisierung des Chat-Windows selbst. **Polish & Motion** — Theme-Crossfade, Header-Quick-Picker,
Lerp-Animationen, ggf. Theme-Family-Picker (Carls Grün-Familie
mit Forest/Moss/Mint-Helligkeitsstufen).
- Top-Tabs-Refresh mit Akzent-Pill-Underline statt Background-Fill Spec wird im Brainstorming-Cycle vor Beginn der Phase ausgearbeitet.
- Sidebar-Tabs (existing) bekommen Icons + vertikale Pill am Window-Rand
- Bottom-Status-Bar (Channel-Indikator, Privacy-Badge, Tab-Count,
Tells, Version)
- Card-Rows als Default-Message-Rendering, mit Compact-Density-Toggle
- Per-Tab Custom-Icons im Tabs-Settings-Dialog
- Removal des deprecated `HellionThemeEnabled`/`HellionThemeWindowOpacity`
Configuration-Felder
Spec liegt in [[Hellion Chat UI Modernisierung Spec]] (Vault). ## v1.2.3 — Theme Expansion (released 2026-05-06)
Vier neue Built-In-Themes: Night Blue, Indigo Violet, Forge
Merchantman, Hellion Spectrum (Deuteran/Protan-safe).
Keine Engine-Änderungen. Siehe `docs/CHANGELOG.md`.
(v1.2.2 wurde verbrannt weil das `repo.json`-Manifest beim
ersten Push nicht synchron mitgebumpt wurde — Re-Release als
v1.2.3 mit kompletter Manifest-Synchronisation.)
## v1.2.1 — Settings Cleanup (released 2026-05-06)
Re-sortierte Settings (9 Cards thematisch), 4 tote Settings entfernt,
Auto-Migration v15 → v16 ohne Daten-Verlust.
## v1.2.0 — Layout Refresh (released 2026-05-05)
Top-Tabs-Refresh, Sidebar-Tab-Icons, Bottom-Status-Bar, Card-Rows als
Default-Message-Render, Auto-Tell-Tab-Hashing.
## v1.1.0 — Theme Foundation (released 2026-05-05) ## v1.1.0 — Theme Foundation (released 2026-05-05)
+2 -2
View File
@@ -4,7 +4,7 @@
# Theme Authoring Guide # Theme Authoring Guide
> Built by **Hellion Forge** — the plugin workshop arm of [Hellion Online Media](https://hellion-media.de). HellionChat ships with five built-in themes; this guide walks you through writing your own. > Built by **Hellion Forge** — the plugin workshop arm of [Hellion Online Media](https://hellion-media.de). HellionChat ships with nine built-in themes; this guide walks you through writing your own.
## TL;DR ## TL;DR
@@ -135,7 +135,7 @@ The user is asked **once per theme switch** whether to apply these colors — ne
A theme can tint these toward its brand family (e.g., a purple theme can shift Tell from `#FF99CC` to `#E090FF`), but **don't** flip them (Tell suddenly green, Yell suddenly cyan). RP groups and combat-spec setups depend on the visual hierarchy. A theme can tint these toward its brand family (e.g., a purple theme can shift Tell from `#FF99CC` to `#E090FF`), but **don't** flip them (Tell suddenly green, Yell suddenly cyan). RP groups and combat-spec setups depend on the visual hierarchy.
The four colored built-in themes (Hellion Arctic, Event Horizon, Moonlit Bloom, Mint Grove) all follow this rule — read their JSON for reference. Chat 2 Klassik intentionally ships without `chatChannels` so the user keeps their existing picks. The eight colored built-in themes (Hellion Arctic, Hellion Spectrum, Event Horizon, Moonlit Bloom, Mint Grove, Night Blue, Indigo Violet, Forge Merchantman) all follow this rule — read their source for reference. Chat 2 Klassik intentionally ships without `chatChannels` so the user keeps their existing picks.
## Theme families ## Theme families
+7 -7
View File
File diff suppressed because one or more lines are too long