Skip to content
Shiny .NET v4 is here with BLE Windows Support, Improved GPS, & More! Check It Out

ColorPicker

A full-featured color picker with spectrum view, hue bar, opacity slider, hex input, and preview swatch. Available as both an inline ColorPicker control and a ColorPickerButton that opens the picker as a popup dialog.

  • NuGet downloads for Shiny.Maui.Controls
  • NuGet downloads for Shiny.Blazor.Controls
Frameworks
.NET MAUI
Blazor
ButtonPicker Dialog
Color Picker ButtonColor Picker Dialog
<shiny:ColorPickerButton SelectedColor="{Binding SelectedColor}"
Text="Pick Color"
ShowOpacity="True" />
<shiny:ColorPicker SelectedColor="{Binding SelectedColor}"
ShowOpacity="True" />
PropertyTypeDefaultDescription
SelectedColorColorRedCurrently selected color (TwoWay)
Textstring?nullButton label text
ShowOpacityboolfalseShow/hide opacity slider in the picker
CornerRadiusint8Button corner radius
ColorChangedCommandICommand?nullFires when color changes

Event: ColorChanged (EventHandler<Color>)

PropertyTypeDefaultDescription
SelectedColorColorRedCurrently selected color (TwoWay)
ShowOpacitybooltrueShow/hide opacity slider
ShowHexInputbooltrueShow/hide hex input field
ShowPreviewbooltrueShow/hide color preview swatch
ColorChangedCommandICommand?nullFires when color changes

Event: ColorChanged (EventHandler<Color>)

  • Color spectrum — HSV-based spectrum with saturation (horizontal) and brightness (vertical) axes
  • Hue bar — Full rainbow hue slider below the spectrum
  • Opacity slider — Optional alpha channel slider with gradient track
  • Preview swatch — Live preview of the selected color
  • Hex input — Enter colors as hex values (#RGB, #RRGGBB, or #AARRGGBB)
  • Auto-contrast — Button text color automatically adjusts for readability against the selected color
  • Popup modeColorPickerButton opens the picker as an overlay dialog with a backdrop and Done button
public partial class ColorPickerViewModel : ObservableObject
{
[ObservableProperty] Color selectedColor = Colors.CornflowerBlue;
[ObservableProperty] bool showOpacity = true;
[ObservableProperty] string colorDisplay = "#6495ED";
partial void OnSelectedColorChanged(Color value)
{
var r = (int)(value.Red * 255);
var g = (int)(value.Green * 255);
var b = (int)(value.Blue * 255);
ColorDisplay = $"#{r:X2}{g:X2}{b:X2}";
}
}

The Blazor components mirror the MAUI controls. Colors use CSS strings:

@using Shiny.Blazor.Controls
<!-- Inline picker -->
<ColorPicker SelectedColor="@selectedColor"
SelectedColorChanged="c => selectedColor = c"
ShowOpacity="true" />
<!-- Popup button -->
<ColorPickerButton SelectedColor="@selectedColor"
SelectedColorChanged="c => selectedColor = c"
Text="Pick Color"
ShowOpacity="true" />
@code {
string selectedColor = "#6495ED";
}
claude plugin marketplace add shinyorg/skills
claude plugin install shiny-controls@shiny
copilot plugin marketplace add https://github.com/shinyorg/skills
copilot plugin install shiny-controls@shiny
View shiny-controls Plugin