The DESIGN.md type standard needs the fonts actually present — the machine's installed faces are not a design system. Four Inter weights (400/500/600/700) and two JetBrains Mono weights (500/600) ship as WPF resources from Assets/Fonts; the token families resolve them with the `/Assets/Fonts/#Family` pack form, so nothing depends on an install or a network fetch. Licensing (recorded in docs/ai/product.md): OFL-1.1 is a free licence but is NOT GPL-compatible in the linking sense. These are separate .ttf files loaded through WPF's font stack — an aggregate, not linked code — so they coexist with the GPL-3.0 app. Obligations carried: copyright line in THIRD-PARTY-NOTICES.txt (new items 13-14), the OFL text beside the files (Assets/Fonts/OFL-*.txt), no modification, no reserved-name reuse. Guard: BundledFontsTests — files exist and are real binaries, the csproj ships them, the theme uses pack URIs (a bare family name would silently fall back), the notice and both OFL texts are present, and no third font family sneaks in. Pending visual confirmation: the first launch should render panel text in Inter and telemetry in JetBrains Mono.
82 lines
4.2 KiB
XML
82 lines
4.2 KiB
XML
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:sys="clr-namespace:System;assembly=System.Runtime">
|
|
|
|
<!-- ============================================================================
|
|
DESIGN TOKENS — the only place a raw value may live.
|
|
Source of truth: DESIGN.md (normative). Guard: ytLive.Tests/DesignTokensTests.cs,
|
|
which fails if a documented token has no brush here, or the values disagree.
|
|
|
|
Merge order: App.xaml merges this BEFORE Themes/Controls.xaml, so every style can
|
|
reference a token instead of a literal.
|
|
============================================================================ -->
|
|
|
|
<!-- Surfaces (dark navy scale) -->
|
|
<SolidColorBrush x:Key="Brush.Background" Color="#0b1326"/>
|
|
<SolidColorBrush x:Key="Brush.SurfaceContainerLowest" Color="#060e20"/>
|
|
<SolidColorBrush x:Key="Brush.SurfaceContainerLow" Color="#131b2e"/>
|
|
<SolidColorBrush x:Key="Brush.SurfaceContainer" Color="#171f33"/>
|
|
<SolidColorBrush x:Key="Brush.SurfaceContainerHigh" Color="#222a3d"/>
|
|
<SolidColorBrush x:Key="Brush.SurfaceContainerHighest" Color="#2d3449"/>
|
|
<SolidColorBrush x:Key="Brush.SurfaceBright" Color="#31394d"/>
|
|
<SolidColorBrush x:Key="Brush.Outline" Color="#334155"/>
|
|
<SolidColorBrush x:Key="Brush.OutlineVariant" Color="#1e293b"/>
|
|
|
|
<!-- Text -->
|
|
<SolidColorBrush x:Key="Brush.OnSurface" Color="#dae2fd"/>
|
|
<SolidColorBrush x:Key="Brush.OnSurfaceVariant" Color="#94a3b8"/>
|
|
<SolidColorBrush x:Key="Brush.OnSurfaceDisabled" Color="#5b6478"/>
|
|
|
|
<!-- Accent roles: one per meaning, never mixed -->
|
|
<SolidColorBrush x:Key="Brush.Tertiary" Color="#38bdf8"/>
|
|
<SolidColorBrush x:Key="Brush.OnTertiary" Color="#0b1326"/>
|
|
<SolidColorBrush x:Key="Brush.Primary" Color="#ff5451"/>
|
|
<SolidColorBrush x:Key="Brush.PrimaryContainer" Color="#b91a24"/>
|
|
<SolidColorBrush x:Key="Brush.Secondary" Color="#ffb95f"/>
|
|
<SolidColorBrush x:Key="Brush.SecondaryContainer" Color="#ee9800"/>
|
|
<SolidColorBrush x:Key="Brush.Attention" Color="#ff8c3a"/>
|
|
<SolidColorBrush x:Key="Brush.Error" Color="#ef4444"/>
|
|
<SolidColorBrush x:Key="Brush.ErrorContainer" Color="#93000a"/>
|
|
<SolidColorBrush x:Key="Brush.OnError" Color="#ffdad6"/>
|
|
|
|
<!-- Meter bands (measured levels, never gain settings) -->
|
|
<SolidColorBrush x:Key="Brush.Meter.Nominal" Color="#38bdf8"/>
|
|
<SolidColorBrush x:Key="Brush.Meter.Caution" Color="#ffb95f"/>
|
|
<SolidColorBrush x:Key="Brush.Meter.Peak" Color="#ff5451"/>
|
|
|
|
<!-- Typography. Both families ship as WPF resources in Assets/Fonts (no install, no
|
|
network). The `#Family` form resolves them from the pack folder. -->
|
|
<FontFamily x:Key="FontFamily.Sans">/Assets/Fonts/#Inter</FontFamily>
|
|
<FontFamily x:Key="FontFamily.Mono">/Assets/Fonts/#JetBrains Mono</FontFamily>
|
|
|
|
<sys:Double x:Key="FontSize.HeadlineLg">32</sys:Double>
|
|
<sys:Double x:Key="FontSize.HeadlineMd">24</sys:Double>
|
|
<sys:Double x:Key="FontSize.HeadlineSm">18</sys:Double>
|
|
<sys:Double x:Key="FontSize.BodyLg">15</sys:Double>
|
|
<sys:Double x:Key="FontSize.BodyMd">13</sys:Double>
|
|
<sys:Double x:Key="FontSize.BodySm">12</sys:Double>
|
|
<sys:Double x:Key="FontSize.LabelLg">13</sys:Double>
|
|
<sys:Double x:Key="FontSize.LabelMd">11</sys:Double>
|
|
<sys:Double x:Key="FontSize.LabelSm">10</sys:Double>
|
|
|
|
<!-- Spacing -->
|
|
<sys:Double x:Key="Space.Xs">4</sys:Double>
|
|
<sys:Double x:Key="Space.Sm">8</sys:Double>
|
|
<sys:Double x:Key="Space.Md">12</sys:Double>
|
|
<sys:Double x:Key="Space.Lg">16</sys:Double>
|
|
<sys:Double x:Key="Space.Xl">24</sys:Double>
|
|
<sys:Double x:Key="Space.Gutter">12</sys:Double>
|
|
<sys:Double x:Key="Space.Margin">16</sys:Double>
|
|
<sys:Double x:Key="Space.MarginDocked">8</sys:Double>
|
|
|
|
<!-- Shape -->
|
|
<CornerRadius x:Key="Radius.Sm">4</CornerRadius>
|
|
<CornerRadius x:Key="Radius.Md">8</CornerRadius>
|
|
<CornerRadius x:Key="Radius.Lg">16</CornerRadius>
|
|
|
|
<!-- Motion -->
|
|
<Duration x:Key="Motion.Fast">0:0:0.09</Duration>
|
|
<Duration x:Key="Motion.Normal">0:0:0.15</Duration>
|
|
|
|
</ResourceDictionary>
|