fix: card-overview subtext wrap + v16 default bumps + chat-colour preset

UI:
- SettingsOverview cards now wrap subtext to two lines (DrawList wrap-
  width) and the card height grew from 96 to 110 px. Single-line
  fitting clipped most of the bilingual subtitles.
- HellionStyle pushes ChildBg with alpha 0 when WindowOpacity < 1.0
  to keep stacked BeginChild layers from compounding the deckgrade
  past what the slider suggests.
- WindowOpacity slider helpmarker now points to Dalamud's per-window
  hamburger menu for opacity / blur / pin / click-through overrides.

UX defaults (v15 → v16 migration adopts new values only when the user
is still on the previous default — bool flips are heuristic, the prior
defaults are from the v1.2.0 cycle and rarely toggled):
- UseCompactDensity false → true (single-line message style is cleaner)
- HideInNewGamePlusMenu false → true (consistent with other hide-flags)
- HideSameTimestamps false → true (cleaner log)
- MaxLinesToRender 5000 → 2500 (mid-range hardware friendlier)
- ChatColours empty → Hellion brand preset (the first-run wizard does
  not offer a preset choice, so fresh installs get the brand colours
  out of the box)
This commit is contained in:
2026-05-06 11:35:59 +02:00
parent b190456005
commit 9ead8098f5
8 changed files with 116 additions and 15 deletions
+12 -1
View File
@@ -52,7 +52,18 @@ internal static class HellionStyle
var alphaByte = (uint)Math.Clamp((int)(windowOpacity * 255f), 0x55, 0xFF);
var windowBgWithAlpha = (c.WindowBg & 0xFFFFFF00u) | alphaByte;
var childBgWithAlpha = (c.ChildBg & 0xFFFFFF00u) | alphaByte;
// ChildBg-Alpha: Sub-Bereiche (Tab-Sidebar, Message-Area, Input-Bar)
// werden im ChatLog-Window als BeginChild gezeichnet. Würde der ChildBg
// mit dem gleichen Alpha wie WindowBg gerendert, multiplizieren sich
// die Layer (1 - (1-α)² Deckung), und 50 % WindowOpacity kommt mit
// 75 % Deckung im Child-Bereich an — das Fenster wirkt solider als der
// Slider verspricht. Bei voller Opacity bleibt der Theme-Akzent
// erhalten (Theme-eigene Alpha-Komponente, i.d.R. FF); sobald der User
// Transparenz zieht, wird ChildBg vollständig durchsichtig damit nur
// der WindowBg-Layer die finale Deckung bestimmt.
var childBgAlpha = windowOpacity >= 0.999f ? (c.ChildBg & 0xFFu) : 0u;
var childBgWithAlpha = (c.ChildBg & 0xFFFFFF00u) | childBgAlpha;
// Layout
stack.PushStyleVar(ImGuiStyleVar.WindowRounding, l.WindowRounding);