Skip to content

Colour fields need a colour picker, not just a hex box (Tiles border/glow/background, layer colour, caption text) #476

Closed

Description

@iamfatness

Owner, 2026-09-11: "CoreVideo scene edit the Glow Color and Border color need a color picker. Whose gonna know which hex code to use, we can have an option to enter the hex code but most of our people are going to be color pickers."

Fields that are hex-only today:

Field Where
Tiles background colour Views/SourcesPage.xaml:280 (GalleryBackgroundColor)
Tiles border colour Views/SourcesPage.xaml:327 (GalleryBorderColor)
Tiles glow colour Views/SourcesPage.xaml:341 (GalleryGlowColor)
Per-layer colour Views/SourcesPage.xaml:443-444 (BorderColor)
Caption text colour Views/OverlaysPage.xaml:462 (CaptionTextColor)

The pattern already exists. The brand colours on the Overlays page (OverlaysPage.xaml:281/308/335) pair the hex box with a WinUI ColorPicker. Match that, and make it the default everywhere a colour is edited:

  • A swatch button showing the current colour opens a flyout with the WinUI ColorPicker (spectrum, alpha where the field supports it, eyedropper-style use).
  • The hex box stays beside it, for people who have a brand code. Both edit the same value.
  • Quick swatches in the flyout: the Brand Kit colours (primary/accent/background) plus recent colours, so an operator picks "our blue" in one click.
  • Validation: an invalid hex shows inline and never silently falls back to a default.

Build rules to keep (CLAUDE.md, the 0xc000027b section):

  • Build the flyout on Opening, as the POS-2 overlay flyouts already do. It is a transient menu, never a bound collection rebuilt at snapshot rate.
  • Every new control gets an AutomationProperties.Name, such as "Tiles border colour".
  • Run an accessibility and contrast scan on the finished UI.

Activity

  1. iamfatness commented on Sep 12, 2026

    @iamfatness
    OwnerAuthor

    Status 2026-09-12: MOSTLY DONE (#501, #504). What remains is a product call, not code.

    Shipped: Tiles background / border / glow and the caption text colour all have a
    picker beside their hex box, over one shared HexColor helper (the hex string
    stays the source of truth, so there is no second copy to drift).

    Remaining: the per-layer border colour/width controls in the Sources layer
    editor are VESTIGIAL.
    buildRenderPlanForScene hard-forces
    borderStyle="none" / thickness 0 on every route layer — deliberately, under the
    2026-07-31 owner rule that borders are MULTIVIEW-ONLY and must never composite
    into program (the virtual camera, recordings and streams all inherit the composed
    program; this is the "webcam out green border" regression). So giving those
    controls a colour picker would be giving a picker to a control the core discards.

    Filed separately as #505: remove them, or scope them to the multiview where a
    border legitimately draws. Closing this one against that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions