Merge branch 'feature/v1.2.2-theme-expansion'
This commit is contained in:
@@ -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.
|
||||
@@ -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. -->
|
||||
<Version>1.2.1</Version>
|
||||
<Version>1.2.2</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<!-- Honor packages.lock.json on restore so floating version ranges
|
||||
|
||||
@@ -36,6 +36,11 @@ description: |-
|
||||
JSON-based custom-theme authoring. Settings rebuilt around a card
|
||||
grid with section detail views. See docs/THEME-AUTHORING.md.
|
||||
|
||||
v1.2.2 — 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.
|
||||
|
||||
Modding & support: join the Hellion Forge Discord at
|
||||
@@ -55,6 +60,32 @@ tags:
|
||||
- Replacement
|
||||
- Privacy
|
||||
changelog: |-
|
||||
**Hellion Chat 1.2.2 — 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**
|
||||
|
||||
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"),
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -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"),
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -16,9 +16,13 @@ public sealed class ThemeRegistry
|
||||
_builtIns = new Dictionary<string, Theme>(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
{ HellionArctic.Slug, HellionArctic.Build() },
|
||||
{ HellionSpectrum.Slug, HellionSpectrum.Build() },
|
||||
{ Chat2Classic.Slug, Chat2Classic.Build() },
|
||||
{ EventHorizon.Slug, EventHorizon.Build() },
|
||||
{ MoonlitBloom.Slug, MoonlitBloom.Build() },
|
||||
{ NightBlue.Slug, NightBlue.Build() },
|
||||
{ IndigoViolet.Slug, IndigoViolet.Build() },
|
||||
{ ForgeMerchantman.Slug, ForgeMerchantman.Build() },
|
||||
{ MintGrove.Slug, MintGrove.Build() },
|
||||
};
|
||||
_active = _builtIns[DefaultSlug];
|
||||
|
||||
@@ -12,6 +12,46 @@ und verlinkt für Details auf die Release-Pages.
|
||||
|
||||
---
|
||||
|
||||
## v1.2.2 — Theme Expansion (2026-05-07)
|
||||
|
||||
### 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)
|
||||
|
||||
### Added
|
||||
|
||||
+20
-11
@@ -12,20 +12,29 @@ 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
|
||||
- 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 wird im Brainstorming-Cycle vor Beginn der Phase ausgearbeitet.
|
||||
|
||||
Spec liegt in [[Hellion Chat UI Modernisierung Spec]] (Vault).
|
||||
## v1.2.2 — Theme Expansion (geplant 2026-05-07)
|
||||
|
||||
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.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)
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
# 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
|
||||
|
||||
@@ -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.
|
||||
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user