LANCommander/LANCommander.Launcher/Theme/LANCommander.axaml
2026-06-20 04:24:20 -05:00

632 lines
37 KiB
XML

<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:Avalonia.Controls;assembly=Avalonia.Controls"
xmlns:local="clr-namespace:LANCommander.Launcher.Controls">
<!-- ===================================================== -->
<!-- BUTTONS — Base -->
<!-- ===================================================== -->
<Style Selector="Button, local|IconButton">
<Setter Property="Background" Value="{DynamicResource ButtonDefaultBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource TextPrimaryBrush}" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="2" />
<Setter Property="Padding" Value="12,6" />
</Style>
<Style Selector="Button:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDefaultHoverBrush}" />
</Style>
<Style Selector="Button:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDefaultActiveBrush}" />
</Style>
<!-- Focus-visible: highlight with inset box-shadow so layout is not affected -->
<Style Selector="Button:focus-visible /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton:focus-visible /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="BoxShadow" Value="inset 0 0 0 2 #994096FF" />
<Setter Property="CornerRadius" Value="4" />
</Style>
<Style Selector="SplitButton:focus-visible /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="BoxShadow" Value="inset 0 0 0 2 #994096FF" />
<Setter Property="CornerRadius" Value="4" />
</Style>
<!-- ===================================================== -->
<!-- BUTTONS — Solid variants -->
<!-- ===================================================== -->
<!-- shared base for all solid variants -->
<Style Selector="Button.Primary, Button.Success, Button.Warning, Button.Error,
local|IconButton.Primary, local|IconButton.Success, local|IconButton.Warning, local|IconButton.Error">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="2" />
<Setter Property="Padding" Value="12,6" />
</Style>
<Style Selector="Button.Primary:disabled, Button.Success:disabled, Button.Warning:disabled, Button.Error:disabled,
local|IconButton.Primary:disabled, local|IconButton.Success:disabled, local|IconButton.Warning:disabled, local|IconButton.Error:disabled">
<Setter Property="Foreground" Value="{DynamicResource ButtonDisabledTextBrush}" />
</Style>
<Style Selector="Button.Primary:disabled /template/ ContentPresenter#PART_ContentPresenter,
Button.Success:disabled /template/ ContentPresenter#PART_ContentPresenter,
Button.Warning:disabled /template/ ContentPresenter#PART_ContentPresenter,
Button.Error:disabled /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Primary:disabled /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Success:disabled /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Warning:disabled /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Error:disabled /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<!-- Primary -->
<Style Selector="Button.Primary, local|IconButton.Primary">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonPrimaryTextBrush}" />
</Style>
<Style Selector="Button.Primary:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Primary:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryHoverBrush}" />
</Style>
<Style Selector="Button.Primary:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Primary:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryActiveBrush}" />
</Style>
<!-- Success -->
<Style Selector="Button.Success, local|IconButton.Success">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonSuccessTextBrush}" />
</Style>
<Style Selector="Button.Success:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Success:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessHoverBrush}" />
</Style>
<Style Selector="Button.Success:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Success:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessActiveBrush}" />
</Style>
<!-- Warning -->
<Style Selector="Button.Warning, local|IconButton.Warning">
<Setter Property="Background" Value="{DynamicResource ButtonWarningBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonWarningTextBrush}" />
</Style>
<Style Selector="Button.Warning:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Warning:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningHoverBrush}" />
</Style>
<Style Selector="Button.Warning:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Warning:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningActiveBrush}" />
</Style>
<!-- Error -->
<Style Selector="Button.Error, local|IconButton.Error">
<Setter Property="Background" Value="{DynamicResource ButtonErrorBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonErrorTextBrush}" />
</Style>
<Style Selector="Button.Error:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Error:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorHoverBrush}" />
</Style>
<Style Selector="Button.Error:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Error:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorActiveBrush}" />
</Style>
<!-- ===================================================== -->
<!-- SPLITBUTTONS — helpers -->
<!-- ===================================================== -->
<!-- shared base for all solid SplitButton variants -->
<Style Selector="SplitButton.Primary, SplitButton.Success, SplitButton.Warning, SplitButton.Error">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="2" />
</Style>
<Style Selector="SplitButton.Primary:disabled, SplitButton.Success:disabled, SplitButton.Warning:disabled, SplitButton.Error:disabled">
<Setter Property="Foreground" Value="{DynamicResource ButtonDisabledTextBrush}" />
</Style>
<Style Selector="SplitButton.Primary:disabled /template/ Button#PART_PrimaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="SplitButton.Primary:disabled /template/ Button#PART_SecondaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="SplitButton.Success:disabled /template/ Button#PART_PrimaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="SplitButton.Success:disabled /template/ Button#PART_SecondaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="SplitButton.Warning:disabled /template/ Button#PART_PrimaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="SplitButton.Warning:disabled /template/ Button#PART_SecondaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="SplitButton.Error:disabled /template/ Button#PART_PrimaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="SplitButton.Error:disabled /template/ Button#PART_SecondaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<!-- ===================================================== -->
<!-- SPLITBUTTONS — Solid variants -->
<!-- ===================================================== -->
<!-- Primary -->
<Style Selector="SplitButton.Primary">
<Setter Property="Foreground" Value="{DynamicResource ButtonPrimaryTextBrush}" />
</Style>
<Style Selector="SplitButton.Primary /template/ Button#PART_PrimaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonPrimaryTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="SplitButton.Primary /template/ Button#PART_SecondaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonPrimaryTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="SplitButton.Primary /template/ Button#PART_PrimaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryHoverBrush}" />
</Style>
<Style Selector="SplitButton.Primary /template/ Button#PART_SecondaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryHoverBrush}" />
</Style>
<Style Selector="SplitButton.Primary /template/ Button#PART_PrimaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryActiveBrush}" />
</Style>
<Style Selector="SplitButton.Primary /template/ Button#PART_SecondaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryActiveBrush}" />
</Style>
<!-- Success -->
<Style Selector="SplitButton.Success">
<Setter Property="Foreground" Value="{DynamicResource ButtonSuccessTextBrush}" />
</Style>
<Style Selector="SplitButton.Success /template/ Button#PART_PrimaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonSuccessTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="SplitButton.Success /template/ Button#PART_SecondaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonSuccessTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="SplitButton.Success /template/ Button#PART_PrimaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessHoverBrush}" />
</Style>
<Style Selector="SplitButton.Success /template/ Button#PART_SecondaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessHoverBrush}" />
</Style>
<Style Selector="SplitButton.Success /template/ Button#PART_PrimaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessActiveBrush}" />
</Style>
<Style Selector="SplitButton.Success /template/ Button#PART_SecondaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessActiveBrush}" />
</Style>
<!-- Warning -->
<Style Selector="SplitButton.Warning">
<Setter Property="Foreground" Value="{DynamicResource ButtonWarningTextBrush}" />
</Style>
<Style Selector="SplitButton.Warning /template/ Button#PART_PrimaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonWarningBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonWarningTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="SplitButton.Warning /template/ Button#PART_SecondaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonWarningBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonWarningTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="SplitButton.Warning /template/ Button#PART_PrimaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningHoverBrush}" />
</Style>
<Style Selector="SplitButton.Warning /template/ Button#PART_SecondaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningHoverBrush}" />
</Style>
<Style Selector="SplitButton.Warning /template/ Button#PART_PrimaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningActiveBrush}" />
</Style>
<Style Selector="SplitButton.Warning /template/ Button#PART_SecondaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningActiveBrush}" />
</Style>
<!-- Error -->
<Style Selector="SplitButton.Error">
<Setter Property="Foreground" Value="{DynamicResource ButtonErrorTextBrush}" />
</Style>
<Style Selector="SplitButton.Error /template/ Button#PART_PrimaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonErrorBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonErrorTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="SplitButton.Error /template/ Button#PART_SecondaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonErrorBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonErrorTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="SplitButton.Error /template/ Button#PART_PrimaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorHoverBrush}" />
</Style>
<Style Selector="SplitButton.Error /template/ Button#PART_SecondaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorHoverBrush}" />
</Style>
<Style Selector="SplitButton.Error /template/ Button#PART_PrimaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorActiveBrush}" />
</Style>
<Style Selector="SplitButton.Error /template/ Button#PART_SecondaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorActiveBrush}" />
</Style>
<!-- ===================================================== -->
<!-- TOGGLEBUTTONS — helpers -->
<!-- ===================================================== -->
<!-- shared base for all solid ToggleButton variants -->
<Style Selector="ToggleButton.Primary, ToggleButton.Success, ToggleButton.Warning, ToggleButton.Error">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="2" />
</Style>
<Style Selector="ToggleButton.Primary:disabled, ToggleButton.Success:disabled, ToggleButton.Warning:disabled, ToggleButton.Error:disabled">
<Setter Property="Foreground" Value="{DynamicResource ButtonDisabledTextBrush}" />
</Style>
<Style Selector="ToggleButton.Primary:disabled /template/ Button#PART_PrimaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="ToggleButton.Primary:disabled /template/ Button#PART_SecondaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="ToggleButton.Success:disabled /template/ Button#PART_PrimaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="ToggleButton.Success:disabled /template/ Button#PART_SecondaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="ToggleButton.Warning:disabled /template/ Button#PART_PrimaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="ToggleButton.Warning:disabled /template/ Button#PART_SecondaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="ToggleButton.Error:disabled /template/ Button#PART_PrimaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<Style Selector="ToggleButton.Error:disabled /template/ Button#PART_SecondaryButton /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBgBrush}" />
</Style>
<!-- ===================================================== -->
<!-- TOGGLEBUTTONS — Solid variants -->
<!-- ===================================================== -->
<!-- Primary -->
<Style Selector="ToggleButton.Primary">
<Setter Property="Foreground" Value="{DynamicResource ButtonPrimaryTextBrush}" />
</Style>
<Style Selector="ToggleButton.Primary /template/ Button#PART_PrimaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonPrimaryTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ToggleButton.Primary /template/ Button#PART_SecondaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonPrimaryTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ToggleButton.Primary /template/ Button#PART_PrimaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryHoverBrush}" />
</Style>
<Style Selector="ToggleButton.Primary /template/ Button#PART_SecondaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryHoverBrush}" />
</Style>
<Style Selector="ToggleButton.Primary /template/ Button#PART_PrimaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryActiveBrush}" />
</Style>
<Style Selector="ToggleButton.Primary /template/ Button#PART_SecondaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonPrimaryActiveBrush}" />
</Style>
<!-- Success -->
<Style Selector="ToggleButton.Success">
<Setter Property="Foreground" Value="{DynamicResource ButtonSuccessTextBrush}" />
</Style>
<Style Selector="ToggleButton.Success /template/ Button#PART_PrimaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonSuccessTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ToggleButton.Success /template/ Button#PART_SecondaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonSuccessTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ToggleButton.Success /template/ Button#PART_PrimaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessHoverBrush}" />
</Style>
<Style Selector="ToggleButton.Success /template/ Button#PART_SecondaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessHoverBrush}" />
</Style>
<Style Selector="ToggleButton.Success /template/ Button#PART_PrimaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessActiveBrush}" />
</Style>
<Style Selector="ToggleButton.Success /template/ Button#PART_SecondaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSuccessActiveBrush}" />
</Style>
<!-- Warning -->
<Style Selector="ToggleButton.Warning">
<Setter Property="Foreground" Value="{DynamicResource ButtonWarningTextBrush}" />
</Style>
<Style Selector="ToggleButton.Warning /template/ Button#PART_PrimaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonWarningBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonWarningTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ToggleButton.Warning /template/ Button#PART_SecondaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonWarningBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonWarningTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ToggleButton.Warning /template/ Button#PART_PrimaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningHoverBrush}" />
</Style>
<Style Selector="ToggleButton.Warning /template/ Button#PART_SecondaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningHoverBrush}" />
</Style>
<Style Selector="ToggleButton.Warning /template/ Button#PART_PrimaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningActiveBrush}" />
</Style>
<Style Selector="ToggleButton.Warning /template/ Button#PART_SecondaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonWarningActiveBrush}" />
</Style>
<!-- Error -->
<Style Selector="ToggleButton.Error">
<Setter Property="Foreground" Value="{DynamicResource ButtonErrorTextBrush}" />
</Style>
<Style Selector="ToggleButton.Error /template/ Button#PART_PrimaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonErrorBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonErrorTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ToggleButton.Error /template/ Button#PART_SecondaryButton">
<Setter Property="Background" Value="{DynamicResource ButtonErrorBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ButtonErrorTextBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ToggleButton.Error /template/ Button#PART_PrimaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorHoverBrush}" />
</Style>
<Style Selector="ToggleButton.Error /template/ Button#PART_SecondaryButton:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorHoverBrush}" />
</Style>
<Style Selector="ToggleButton.Error /template/ Button#PART_PrimaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorActiveBrush}" />
</Style>
<Style Selector="ToggleButton.Error /template/ Button#PART_SecondaryButton:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonErrorActiveBrush}" />
</Style>
<!-- ===================================================== -->
<!-- BUTTONS — Text variant (declared after solid so -->
<!-- declaration order wins for equal-specificity rules) -->
<!-- ===================================================== -->
<Style Selector="Button.Text, local|IconButton.Text">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Foreground" Value="{DynamicResource TextPrimaryBrush}" />
</Style>
<Style Selector="Button.Text:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextHoverBgBrush}" />
</Style>
<Style Selector="Button.Text:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextPressedBgBrush}" />
</Style>
<!-- Text + color: two-class selector wins over single-class solid styles -->
<Style Selector="Button.Text.Primary, local|IconButton.Text.Primary">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="{DynamicResource ButtonPrimaryBgBrush}" />
</Style>
<Style Selector="Button.Text.Primary:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text.Primary:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextHoverBgBrush}" />
</Style>
<Style Selector="Button.Text.Primary:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text.Primary:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextPressedBgBrush}" />
</Style>
<Style Selector="Button.Text.Success, local|IconButton.Text.Success">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="{DynamicResource ButtonSuccessBgBrush}" />
</Style>
<Style Selector="Button.Text.Success:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text.Success:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextHoverBgBrush}" />
</Style>
<Style Selector="Button.Text.Success:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text.Success:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextPressedBgBrush}" />
</Style>
<Style Selector="Button.Text.Warning, local|IconButton.Text.Warning">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="{DynamicResource ButtonWarningBgBrush}" />
</Style>
<Style Selector="Button.Text.Warning:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text.Warning:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextHoverBgBrush}" />
</Style>
<Style Selector="Button.Text.Warning:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text.Warning:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextPressedBgBrush}" />
</Style>
<Style Selector="Button.Text.Error, local|IconButton.Text.Error">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="{DynamicResource ButtonErrorBgBrush}" />
</Style>
<Style Selector="Button.Text.Error:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text.Error:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextHoverBgBrush}" />
</Style>
<Style Selector="Button.Text.Error:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Text.Error:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonTextPressedBgBrush}" />
</Style>
<!-- ===================================================== -->
<!-- BUTTONS — Glass variants -->
<!-- ===================================================== -->
<Style Selector="Button.Glass, local|IconButton.Glass">
<Setter Property="Background" Value="{DynamicResource ButtonGlassBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource TextPrimaryBrush}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="Button.Glass:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Glass:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonGlassHoverBgBrush}" />
</Style>
<Style Selector="Button.Glass:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Glass:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonGlassPressedBgBrush}" />
</Style>
<Style Selector="Button.Glass.Dark, local|IconButton.Glass.Dark">
<Setter Property="Background" Value="{DynamicResource ButtonGlassDarkBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource TextPrimaryBrush}" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="CornerRadius" Value="4" />
</Style>
<Style Selector="Button.Glass.Dark:pointerover /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Glass.Dark:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonGlassDarkHoverBgBrush}" />
</Style>
<Style Selector="Button.Glass.Dark:pressed /template/ ContentPresenter#PART_ContentPresenter,
local|IconButton.Glass.Dark:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonGlassDarkPressedBgBrush}" />
</Style>
<!-- ===================================================== -->
<!-- BUTTONS — Dialog/overlay footer actions -->
<!-- (OK, Cancel, Confirm, Save, etc.) -->
<!-- ===================================================== -->
<!-- Mark a footer container with Classes="DialogFooter"; its buttons inherit these -->
<Style Selector=".DialogFooter Button">
<Setter Property="MinWidth" Value="90" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
<!-- ===================================================== -->
<!-- TEXT INPUTS -->
<!-- ===================================================== -->
<Style Selector="TextBox">
<Setter Property="Foreground" Value="{DynamicResource InputTextBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CornerRadius" Value="2" />
<Setter Property="Padding" Value="8,4" />
</Style>
<!-- Override inner template Border to defeat FluentTheme's internal state styles -->
<Style Selector="TextBox /template/ Border">
<Setter Property="Background" Value="{DynamicResource InputBgBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource InputBorderBrush}" />
</Style>
<Style Selector="TextBox:pointerover /template/ Border">
<Setter Property="Background" Value="{DynamicResource InputBgBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource InputHoverBorderBrush}" />
</Style>
<Style Selector="TextBox:focus-within /template/ Border">
<Setter Property="Background" Value="{DynamicResource InputBgBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource InputFocusBorderBrush}" />
</Style>
<Style Selector="TextBox:disabled /template/ Border">
<Setter Property="Background" Value="{DynamicResource Gray3Brush}" />
</Style>
<Style Selector="TextBox:disabled">
<Setter Property="Foreground" Value="{DynamicResource TextDisabledBrush}" />
</Style>
<!-- ===================================================== -->
<!-- COMBOBOX (SELECT) -->
<!-- ===================================================== -->
<Style Selector="ComboBox">
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="ComboBox /template/ Border#Background">
<Setter Property="BorderThickness" Value="0" />
</Style>
<!-- ===================================================== -->
<!-- NUMERIC UP/DOWN -->
<!-- ===================================================== -->
<Style Selector="NumericUpDown">
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="NumericUpDown /template/ ButtonSpinner">
<Setter Property="BorderThickness" Value="0" />
</Style>
<!-- ===================================================== -->
<!-- TOAST (CUSTOM CONTROL STYLE) -->
<!-- ===================================================== -->
<Style Selector="controls|ContentControl.toast">
<Setter Property="Background" Value="{DynamicResource ToastBgBrush}" />
<Setter Property="Foreground" Value="{DynamicResource ToastTextBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource ToastBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="12" />
</Style>
<!-- Toast Variants -->
<Style Selector="controls|ContentControl.toast.success">
<Setter Property="BorderBrush" Value="{DynamicResource SuccessBrush}" />
</Style>
<Style Selector="controls|ContentControl.toast.error">
<Setter Property="BorderBrush" Value="{DynamicResource ErrorBrush}" />
</Style>
<Style Selector="controls|ContentControl.toast.warning">
<Setter Property="BorderBrush" Value="{DynamicResource WarningBrush}" />
</Style>
<!-- ===================================================== -->
<!-- TOAST (CUSTOM CONTROL STYLE) -->
<!-- ===================================================== -->
<Style Selector="TextBox">
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style Selector="TextBox.Glass /template/ Border">
<Setter Property="Background" Value="#88000000" />
</Style>
</Styles>