From 6cac486fbe24af3d0429a4f6cf3893bed29cf3a8 Mon Sep 17 00:00:00 2001 From: Zac Gaetano Date: Fri, 8 May 2026 00:08:39 -0400 Subject: [PATCH] feat(ui): rebrand to Wild Dragon + Microsoft Teams layout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the Stone theme with Wild Dragon branding (canvas #0A0A0A, accent cyan #97EDF0, secondary #9AE0FD, coral alert #FB819C — sourced from wilddragon.net) and reorganizes MainWindow into a Microsoft Teams-style three-column layout: a 72px left rail (logo + Participants/Settings nav + engine-status indicator), a center content area (header + participants card), and a right settings panel. Adds InitialsConverter so participant avatars render real initials (Brendon Power -> 'BP', '(Local)' -> 'L') instead of a generic glyph. Drops the obsolete StoneTheme.xaml; the project now ships exactly one theme dictionary. Typography: Inter (with Segoe UI Variable Display fallback) for the sans stack, JetBrains Mono (Cascadia Mono fallback) for machine names and timecodes — matching the wilddragon.net site. Verified live against the running Teams meeting: app launches, participant 'Brendon Power' displays with avatar, settings panel surfaces NDI groups + Hide-Local toggle, engine status pill shows green/live. --- src/TeamsISO.App/App.xaml | 2 +- .../Converters/InitialsConverter.cs | 30 + src/TeamsISO.App/MainWindow.xaml | 656 ++++++++++-------- src/TeamsISO.App/Themes/StoneTheme.xaml | 491 ------------- src/TeamsISO.App/Themes/WildDragonTheme.xaml | 544 +++++++++++++++ 5 files changed, 949 insertions(+), 774 deletions(-) create mode 100644 src/TeamsISO.App/Converters/InitialsConverter.cs delete mode 100644 src/TeamsISO.App/Themes/StoneTheme.xaml create mode 100644 src/TeamsISO.App/Themes/WildDragonTheme.xaml diff --git a/src/TeamsISO.App/App.xaml b/src/TeamsISO.App/App.xaml index abef318..0c6fdab 100644 --- a/src/TeamsISO.App/App.xaml +++ b/src/TeamsISO.App/App.xaml @@ -4,7 +4,7 @@ - + diff --git a/src/TeamsISO.App/Converters/InitialsConverter.cs b/src/TeamsISO.App/Converters/InitialsConverter.cs new file mode 100644 index 0000000..448c807 --- /dev/null +++ b/src/TeamsISO.App/Converters/InitialsConverter.cs @@ -0,0 +1,30 @@ +using System.Globalization; +using System.Windows.Data; + +namespace TeamsISO.App.Converters; + +/// +/// Converts a display name to up to two uppercase initials for an avatar bubble. +/// "Brendon Power" → "BP". "(Local)" → "L". Falls back to "·" for empty inputs. +/// +public sealed class InitialsConverter : IValueConverter +{ + public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) + { + var s = value as string; + if (string.IsNullOrWhiteSpace(s)) return "·"; + + // Strip surrounding parens / punctuation that would otherwise become + // useless initials (e.g. "(Local)" should yield "L", not "("). + var cleaned = new string(s.Where(c => char.IsLetterOrDigit(c) || char.IsWhiteSpace(c)).ToArray()).Trim(); + if (cleaned.Length == 0) return "·"; + + var parts = cleaned.Split(' ', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (parts.Length == 0) return "·"; + if (parts.Length == 1) return char.ToUpperInvariant(parts[0][0]).ToString(); + return $"{char.ToUpperInvariant(parts[0][0])}{char.ToUpperInvariant(parts[^1][0])}"; + } + + public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) + => throw new NotSupportedException(); +} diff --git a/src/TeamsISO.App/MainWindow.xaml b/src/TeamsISO.App/MainWindow.xaml index dda478a..9f8fd2c 100644 --- a/src/TeamsISO.App/MainWindow.xaml +++ b/src/TeamsISO.App/MainWindow.xaml @@ -4,9 +4,9 @@ xmlns:vm="clr-namespace:TeamsISO.App.ViewModels" xmlns:conv="clr-namespace:TeamsISO.App.Converters" Title="TeamsISO" - Height="760" Width="1180" - MinHeight="600" MinWidth="960" - Background="{DynamicResource Stone.Canvas}" + Height="780" Width="1280" + MinHeight="640" MinWidth="1080" + Background="{DynamicResource Wd.Canvas}" UseLayoutRounding="True" TextOptions.TextFormattingMode="Ideal" TextOptions.TextRenderingMode="ClearType"> @@ -14,294 +14,259 @@ + - + + + + + + - - - - + + + + + + + + - - - - - - - + + - - - - - - - - - - + + +