Files
mmd-pdf/Themes/MMD.xaml
kua-agentandClaude Opus 5 39130f41e6 feat: one merged MMD band, Scan in the main bar, shorter icon row, signed build
Ben, 2026-08-28: four changes, then build it, sign it, and make it deployable
through Intune without alerts.

1. The row of icons is a fifth shorter. Every toolbar label mode comes down
   together so the proportions between them are unchanged: 34 -> 27 for a
   caption beside the icon, 52/56 -> 42/45 for a caption under it, with the
   padding reduced to match. The row measures 48px on screen where it was 60.

2. Scan sits in the main bar. It is a solid white button on the band, to the
   left of the window buttons, so a person can pull pages off a copier whatever
   the toolbar is showing. Behind it, Services/ScanService.cs talks to the
   copier through WIA - the imaging service that ships with Windows, reached
   late-bound so a machine without it fails at a check instead of at load - and
   Features/Scan/ScanDialog picks the copier, the feed, the colour, the detail
   and the paper. Pages come back as images and take the same route into a
   document as an imported photograph. "Make the words searchable" runs the
   text recognition the application already carries.

3. The official MMD lockup, in white, because the band is red now.

4. The MMD design system locked on 2026-08-28: ONE merged top bar carrying the
   mark, the name, the tabs and the tools; 4px corners; 24px window buttons;
   the bevel on title bars only. Colours are NOT adjusted - the Red Plate
   silver and ink set already in Themes/MMD.xaml is untouched.

Also fixed, both found by looking at the running application at 800x600:

  - The default 1000x700 window does not fit an 800x600 plant screen, and a
    window taller than the screen puts its own title bar - and therefore Scan,
    the window buttons and the tabs - above the top edge where nobody can reach
    them. MainWindow now starts maximised when the screen cannot hold the
    default.
  - The close button was invisible: CaptionCloseBrush defaults to the danger
    red, which on a red band is red on red. The window buttons are white now,
    and close inverts to a white plate with a red cross on hover.

Built and run on mmd-win-test-01 at 800x600 through keyboard and mouse only.
Signed with the internal MMD code-signing certificate and timestamped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 03:25:42 +00:00

147 lines
9.6 KiB
XML

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<!-- MMD Steel Group corporate theme - the only theme this application ships.
Values are the new MMD shell design system ("red plate", light-only, no dark
variant): white work area, silver chrome, desk grey behind the document,
23221E ink, C8102E red partitioned to primary action / focus / urgency only.
Square by default. Held for Ben's sign-off: dark table header rows and the
window-chrome variant (V2 vs V7) are still being chosen. -->
<!-- The one merged top bar, locked 2026-08-28. MMD red, the white lockup on it,
and the window buttons at its right end. These are the design system's own
values; no colour here is new. -->
<LinearGradientBrush x:Key="TitleBarBrush" StartPoint="0,0" EndPoint="0,1" po:Freeze="True">
<GradientStop Offset="0.0" Color="#d4213f"/>
<GradientStop Offset="0.55" Color="#c8102e"/>
<GradientStop Offset="1.0" Color="#a50d26"/>
</LinearGradientBrush>
<sys:Double x:Key="TitleBarHeight">42</sys:Double>
<Thickness x:Key="TitleBarPadding">14,0,0,0</Thickness>
<SolidColorBrush x:Key="CaptionGlyphBrush" Color="#ffffff" po:Freeze="True"/>
<sys:Double x:Key="CaptionButtonWidth">24</sys:Double>
<sys:Double x:Key="CaptionButtonHeight">24</sys:Double>
<Thickness x:Key="CaptionButtonsMargin">0,0,9,0</Thickness>
<!-- The window buttons sit on the red band, so they are white. The close button
inverts on hover - white plate, red cross - because red on red is invisible,
which is exactly what the first build of this band showed. -->
<SolidColorBrush x:Key="CaptionButtonBrush" Color="#1fffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="CaptionHoverBrush" Color="#33ffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="CaptionCloseBrush" Color="#ffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="CaptionCloseHoverBrush" Color="#ffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="CaptionCloseHoverFgBrush" Color="#c8102e" po:Freeze="True"/>
<sys:Double x:Key="WordmarkShadowOpacity">0</sys:Double>
<sys:Double x:Key="TitleIconSize">0</sys:Double>
<Thickness x:Key="TitleIconMargin">0</Thickness>
<!-- A window that is in front, for the dialogs: white to silver with a red top edge.
The bevel lives on title bars only; buttons are flat. -->
<LinearGradientBrush x:Key="WindowFrontTitleBrush" StartPoint="0,0" EndPoint="0,1" po:Freeze="True">
<GradientStop Offset="0.0" Color="#ffffff"/>
<GradientStop Offset="0.62" Color="#ffffff"/>
<GradientStop Offset="1.0" Color="#f1f1ec"/>
</LinearGradientBrush>
<sys:Double x:Key="FooterHeight">26</sys:Double>
<!-- Surfaces -->
<SolidColorBrush x:Key="SurfaceBrush" Color="#f1f1ec" po:Freeze="True"/>
<SolidColorBrush x:Key="PaneBrush" Color="#e4e3dc" po:Freeze="True"/>
<SolidColorBrush x:Key="RowHoverBrush" Color="#f7f7f3" po:Freeze="True"/>
<SolidColorBrush x:Key="MenuHoverBrush" Color="#f7f7f3" po:Freeze="True"/>
<SolidColorBrush x:Key="BackgroundBrush" Color="#f3f3f0" po:Freeze="True"/>
<SolidColorBrush x:Key="BgRecentPanel" Color="#f3f3f0" po:Freeze="True"/>
<SolidColorBrush x:Key="BgFlyout" Color="#ffffff" po:Freeze="True"/>
<LinearGradientBrush x:Key="TabStripFadeBrush" StartPoint="0,0" EndPoint="0,1" po:Freeze="True">
<GradientStop Offset="0.0" Color="#0023221e"/>
<GradientStop Offset="0.55" Color="#0c23221e"/>
<GradientStop Offset="1.0" Color="#2223221e"/>
</LinearGradientBrush>
<SolidColorBrush x:Key="MenuBackgroundBrush" Color="#ffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="CardBorderBrush" Color="#e6e5df" po:Freeze="True"/>
<!-- Accent. Red carries the active tool and the one primary action, nothing else. -->
<SolidColorBrush x:Key="PrimaryBrush" Color="#c8102e" po:Freeze="True"/>
<SolidColorBrush x:Key="PrimaryHoverBrush" Color="#a80d24" po:Freeze="True"/>
<SolidColorBrush x:Key="PrimaryPressedBrush" Color="#8e0b20" po:Freeze="True"/>
<SolidColorBrush x:Key="OnPrimaryBrush" Color="#ffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="OutlineBtnBrush" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="HeaderLineBrush" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="SelectionAccent" Color="#c8102e" po:Freeze="True"/>
<SolidColorBrush x:Key="AccentLogo" Color="#c8102e" po:Freeze="True"/>
<SolidColorBrush x:Key="InstallBtnBg" Color="#f1f1ec" po:Freeze="True"/>
<!-- Borders -->
<SolidColorBrush x:Key="MenuBorderBrush" Color="#d7d6ce" po:Freeze="True"/>
<SolidColorBrush x:Key="DropBorder" Color="#b9b8ae" po:Freeze="True"/>
<SolidColorBrush x:Key="PaneBorderBrush" Color="#d7d6ce" po:Freeze="True"/>
<SolidColorBrush x:Key="AppBorderBrush" Color="#b9b8ae" po:Freeze="True"/>
<!-- Selection: dark on light, the way the portal tables read. -->
<SolidColorBrush x:Key="RowSelectedBrush" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="OutlinePressedBrush" Color="#fbeef0" po:Freeze="True"/>
<SolidColorBrush x:Key="SelectionBg" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="SelectionFg" Color="#ffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="SettingsOpenRowBg" Color="#f1f1ec" po:Freeze="True"/>
<!-- Type -->
<SolidColorBrush x:Key="TextBrush" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="MutedTextBrush" Color="#3c3a34" po:Freeze="True"/>
<SolidColorBrush x:Key="MenuTextBrush" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="ChromeTextBrush" Color="#ffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="FilenameBrush" Color="#e8ffffff" po:Freeze="True"/>
<SolidColorBrush x:Key="DimTextBrush" Color="#767368" po:Freeze="True"/>
<SolidColorBrush x:Key="TextFooter" Color="#6b6a64" po:Freeze="True"/>
<SolidColorBrush x:Key="DangerRed" Color="#c8102e" po:Freeze="True"/>
<!-- Furniture -->
<SolidColorBrush x:Key="BgDragHandle" Color="#c7c6bd" po:Freeze="True"/>
<SolidColorBrush x:Key="DragLine" Color="#d7d6ce" po:Freeze="True"/>
<SolidColorBrush x:Key="ScrollThumbBrush" Color="#5523221e" po:Freeze="True"/>
<SolidColorBrush x:Key="ScrollThumbHoverBrush" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="TableHeaderBrush" Color="#f1f1ec" po:Freeze="True"/>
<SolidColorBrush x:Key="RowAltBrush" Color="#0823221e" po:Freeze="True"/>
<SolidColorBrush x:Key="InputBorderBrush" Color="#c7c6bd" po:Freeze="True"/>
<SolidColorBrush x:Key="InputHoverBrush" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="TreeLineBrush" Color="#e6e5df" po:Freeze="True"/>
<SolidColorBrush x:Key="SliderTrack" Color="#d7d6ce" po:Freeze="True"/>
<SolidColorBrush x:Key="RadioAccent" Color="#c8102e" po:Freeze="True"/>
<SolidColorBrush x:Key="BgOverlay" Color="#8823221e" po:Freeze="True"/>
<!-- Flat. No paper grain, no glyph shadows - this is an office tool. -->
<sys:Double x:Key="GrainOpacity">0</sys:Double>
<sys:Double x:Key="IconShadowOpacity">0</sys:Double>
<sys:Double x:Key="HeaderShadowOpacity">0</sys:Double>
<!-- The workspace behind the page. Platinum, one step darker than the page itself. -->
<SolidColorBrush x:Key="BgCanvas" Color="#d4d0c6" po:Freeze="True"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#fbeef0" po:Freeze="True"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#f1f1ec" po:Freeze="True"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="#23221e" po:Freeze="True"/>
<!-- Shortcut keyboard view. Graded ink rather than a rainbow; red marks editing only. -->
<SolidColorBrush x:Key="KsCatFile" Color="#23221e" po:Freeze="True"/>
<SolidColorBrush x:Key="KsCatTools" Color="#3c3a34" po:Freeze="True"/>
<SolidColorBrush x:Key="KsCatEdit" Color="#c8102e" po:Freeze="True"/>
<SolidColorBrush x:Key="KsCatNav" Color="#767368" po:Freeze="True"/>
<SolidColorBrush x:Key="KsCatView" Color="#6b6a64" po:Freeze="True"/>
<SolidColorBrush x:Key="KsCatSearch" Color="#3c3a34" po:Freeze="True"/>
<SolidColorBrush x:Key="KsCatHelp" Color="#6b6a64" po:Freeze="True"/>
<SolidColorBrush x:Key="KsCatOcr" Color="#767368" po:Freeze="True"/>
<!-- No text stroke on a light corporate surface. -->
<DropShadowEffect x:Key="TextStroke" Color="Black" BlurRadius="0" ShadowDepth="0" Direction="270" Opacity="0"/>
<!-- Four-pixel corners, per the design system locked 2026-08-28. The window itself
stays square at the top because the band runs edge to edge when maximised, which
is how these machines are used. -->
<CornerRadius x:Key="ControlCornerRadius">4</CornerRadius>
<CornerRadius x:Key="SmallCornerRadius">4</CornerRadius>
<CornerRadius x:Key="FlyoutCornerRadius">4</CornerRadius>
<CornerRadius x:Key="AccentSwatchCornerRadius">4</CornerRadius>
<CornerRadius x:Key="TitleBarCornerRadius">0</CornerRadius>
</ResourceDictionary>