style(ui): tasks header toolbar and add-task row
- Reformat subtitle to "{Weekday}, {Month} {Day} · {open} open".
- Add right-aligned running/review status pill (kbd style).
- Add header icon toolbar: Sort, Eye (toggle completed), MoreHorizontal.
- Wire Eye to IsShowingCompleted [ObservableProperty] on the VM.
- Style add-task row as rounded Surface2 border with dashed Plus circle,
borderless TextBox, and ENTER kbd chip visible on focus.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -499,4 +499,182 @@
|
||||
<Setter Property="Background" Value="{StaticResource AccentDimBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- ADD-TASK ROW -->
|
||||
<!-- ============================================================ -->
|
||||
<Style Selector="Border.add-task">
|
||||
<Setter Property="Background" Value="{StaticResource Surface2Brush}" />
|
||||
<Setter Property="BorderBrush" Value="{StaticResource LineBrush}" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
<Setter Property="CornerRadius" Value="10" />
|
||||
<Setter Property="Padding" Value="14,12" />
|
||||
<Setter Property="Transitions">
|
||||
<Transitions>
|
||||
<BrushTransition Property="BorderBrush" Duration="0:0:0.15" />
|
||||
</Transitions>
|
||||
</Setter>
|
||||
</Style>
|
||||
<Style Selector="Border.add-task:focus-within">
|
||||
<Setter Property="BorderBrush" Value="{StaticResource AccentDimBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- Plus circle inside the add-task row -->
|
||||
<Style Selector="Border.add-task-plus">
|
||||
<Setter Property="Width" Value="20" />
|
||||
<Setter Property="Height" Value="20" />
|
||||
<Setter Property="CornerRadius" Value="10" />
|
||||
<Setter Property="Background" Value="{StaticResource Surface3Brush}" />
|
||||
<Setter Property="BorderBrush" Value="{StaticResource LineBrush}" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
<Setter Property="HorizontalAlignment" Value="Center" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
<Setter Property="Padding" Value="0" />
|
||||
</Style>
|
||||
<Style Selector="Border.add-task-plus > PathIcon">
|
||||
<Setter Property="HorizontalAlignment" Value="Center" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
</Style>
|
||||
|
||||
<!-- Borderless TextBox inside the add-task row -->
|
||||
<Style Selector="TextBox.add-task-input">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="Padding" Value="0" />
|
||||
<Setter Property="FontSize" Value="14" />
|
||||
<Setter Property="Foreground" Value="{StaticResource TextBrush}" />
|
||||
<Setter Property="CaretBrush" Value="{StaticResource AccentBrush}" />
|
||||
<Setter Property="MinHeight" Value="20" />
|
||||
</Style>
|
||||
<Style Selector="TextBox.add-task-input /template/ Border#PART_BorderElement">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="BoxShadow" Value="none" />
|
||||
</Style>
|
||||
|
||||
<!-- kbd-enter variant (no extra styles needed — base kbd works) -->
|
||||
<Style Selector="Border.kbd.kbd-enter > TextBlock">
|
||||
<Setter Property="LetterSpacing" Value="1.2" />
|
||||
</Style>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- HEADER TOOLBAR icon-btn active state -->
|
||||
<!-- ============================================================ -->
|
||||
<Style Selector="Button.icon-btn.active /template/ ContentPresenter">
|
||||
<Setter Property="Background" Value="{StaticResource Surface3Brush}" />
|
||||
<Setter Property="TextElement.Foreground" Value="{StaticResource AccentBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- TASK ROW — extensions (C2) -->
|
||||
<!-- ============================================================ -->
|
||||
|
||||
<!-- Augment base task-row transitions to include Margin -->
|
||||
<Style Selector="Border.task-row">
|
||||
<Setter Property="Transitions">
|
||||
<Transitions>
|
||||
<BrushTransition Property="Background" Duration="0:0:0.12" />
|
||||
<ThicknessTransition Property="Margin" Duration="0:0:0.15" />
|
||||
</Transitions>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- Selected state: shift background to accent-soft -->
|
||||
<Style Selector="Border.task-row.selected">
|
||||
<Setter Property="Background" Value="{StaticResource AccentSoftBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- Left accent bar for selected row -->
|
||||
<Style Selector="Border.task-row-accent">
|
||||
<Setter Property="Width" Value="2" />
|
||||
<Setter Property="Background" Value="{StaticResource AccentBrush}" />
|
||||
<Setter Property="CornerRadius" Value="1" />
|
||||
<Setter Property="Margin" Value="0,4" />
|
||||
<Setter Property="HorizontalAlignment" Value="Left" />
|
||||
<Setter Property="VerticalAlignment" Value="Stretch" />
|
||||
</Style>
|
||||
|
||||
<!-- Done state: dim the whole row and the title -->
|
||||
<Style Selector="Border.task-row.done">
|
||||
<Setter Property="Opacity" Value="0.55" />
|
||||
</Style>
|
||||
<Style Selector="Border.task-row.done TextBlock.task-title">
|
||||
<Setter Property="Foreground" Value="{StaticResource TextFaintBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- CHIP EXTENSIONS -->
|
||||
<!-- ============================================================ -->
|
||||
<!-- Slightly slimmer chips inside task rows -->
|
||||
<Style Selector="Border.task-row Border.chip">
|
||||
<Setter Property="Padding" Value="6,2" />
|
||||
<Setter Property="CornerRadius" Value="4" />
|
||||
</Style>
|
||||
<Style Selector="Border.task-row Border.chip > StackPanel > TextBlock">
|
||||
<Setter Property="FontFamily" Value="{StaticResource MonoFont}" />
|
||||
<Setter Property="FontSize" Value="10" />
|
||||
<Setter Property="Foreground" Value="{StaticResource TextDimBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- Tag chip: faint text -->
|
||||
<Style Selector="Border.chip.chip-tag > TextBlock">
|
||||
<Setter Property="Foreground" Value="{StaticResource TextFaintBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- Diff chip add/del coloring -->
|
||||
<Style Selector="TextBlock.diff-add">
|
||||
<Setter Property="FontFamily" Value="{StaticResource MonoFont}" />
|
||||
<Setter Property="FontSize" Value="10" />
|
||||
<Setter Property="Foreground" Value="{StaticResource MossBrightBrush}" />
|
||||
</Style>
|
||||
<Style Selector="TextBlock.diff-del">
|
||||
<Setter Property="FontFamily" Value="{StaticResource MonoFont}" />
|
||||
<Setter Property="FontSize" Value="10" />
|
||||
<Setter Property="Foreground" Value="{StaticResource BloodBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- STAR BUTTON -->
|
||||
<!-- ============================================================ -->
|
||||
<Style Selector="Button.star-btn">
|
||||
<Setter Property="Foreground" Value="{StaticResource TextFaintBrush}" />
|
||||
<Setter Property="Opacity" Value="0.6" />
|
||||
</Style>
|
||||
<Style Selector="Button.star-btn.on">
|
||||
<Setter Property="Foreground" Value="{StaticResource PeatBrush}" />
|
||||
<Setter Property="Opacity" Value="1.0" />
|
||||
</Style>
|
||||
<Style Selector="Button.star-btn.on /template/ ContentPresenter">
|
||||
<Setter Property="TextElement.Foreground" Value="{StaticResource PeatBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- LIVE-TAIL PREVIEW ROW -->
|
||||
<!-- ============================================================ -->
|
||||
<Style Selector="Border.task-live-tail">
|
||||
<Setter Property="Background" Value="#FF080C0B" />
|
||||
<Setter Property="BorderBrush" Value="{StaticResource LineBrush}" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
<Setter Property="CornerRadius" Value="5" />
|
||||
<Setter Property="Padding" Value="8,4" />
|
||||
<Setter Property="Margin" Value="0,2,0,0" />
|
||||
</Style>
|
||||
<Style Selector="Border.task-live-tail TextBlock">
|
||||
<Setter Property="FontFamily" Value="{StaticResource MonoFont}" />
|
||||
<Setter Property="FontSize" Value="11" />
|
||||
<Setter Property="Foreground" Value="{StaticResource TextDimBrush}" />
|
||||
</Style>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- SECTION LABELS (OVERDUE / TASKS / COMPLETED) -->
|
||||
<!-- ============================================================ -->
|
||||
<Style Selector="TextBlock.section-label">
|
||||
<Setter Property="FontFamily" Value="{StaticResource MonoFont}" />
|
||||
<Setter Property="FontSize" Value="10" />
|
||||
<Setter Property="Foreground" Value="{StaticResource TextFaintBrush}" />
|
||||
<Setter Property="LetterSpacing" Value="1.4" />
|
||||
</Style>
|
||||
<Style Selector="TextBlock.section-label.overdue">
|
||||
<Setter Property="Foreground" Value="{StaticResource BloodBrush}" />
|
||||
</Style>
|
||||
|
||||
</Styles>
|
||||
|
||||
Reference in New Issue
Block a user