Document DB v7: Temporal Support Feed The Machine Here
Theme Creator
Pick a few seed colors and Shiny derives a full Material 3 token set — light and dark — for the
whole control suite. The output here is byte-identical to running the ShinyThemeGen tool in the
repo, so anything you design is reproducible.
Start from a built-in palette, tweak the seeds, watch the live preview, then grab the Theme JSON (source of truth), the Blazor CSS, or the MAUI C# dictionaries.
slug:
my-themeAccents
Primary
Secondary
Tertiary
Neutrals
Neutral
Neutral Variant
Status
Success
Info
Warning
Caution
Critical
Error
Accent roles
Primary
#0055D9PrimaryContainer
#C2D6FFSecondary
#565F6DSecondaryContainer
#D9E3F3Tertiary
#6A4CADTertiaryContainer
#F7CFFFStatus roles
Success
#81FB9AInfo
#C2D6FFWarning
#FFC862Caution
#FFB469Critical
#FFA78DError
#FFA78DSurfaces
Background
#F8F9FBSurface
#F8F9FBSurfaceVariant
#DBE3F2SurfaceContainerLowest
#FFFFFFSurfaceContainerLow
#F2F4F6SurfaceContainer
#EBEEF2SurfaceContainerHigh
#E5E8EDSurfaceContainerHighest
#DEE3E9Outline
#707785OutlineVariant
#BFC7D6Sample controls
SuccessInfoWarningCautionCritical
Surface card
Body text uses on-surface-variant on a surface container.
Outlined text field
{
"$schema": "./shiny-theme.schema.json",
"name": "My Theme",
"slug": "my-theme",
"description": "A custom Shiny Controls theme.",
"seeds": {
"primary": "#2563EB",
"secondary": "#5B6472",
"tertiary": "#7C5CBF",
"neutral": "#5F6368",
"neutralVariant": "#5C6370",
"error": "#DC2626",
"success": "#16A34A",
"info": "#2563EB",
"warning": "#D97706",
"caution": "#EA580C",
"critical": "#DC2626"
}
}
What to do with the output
Section titled “What to do with the output”- Theme JSON — drop it into
/themes/<slug>.jsonin your fork of the controls repo and rundotnet run --project tools/ShinyThemeGento (re)generate both platforms. - Blazor CSS — save as
shiny-theme-<slug>.css, ship it as a static asset, and<link>it after the coreshiny-theme.css. - MAUI C# — drop the generated
ResourceDictionaryclasses into a library, thenUseShinyControls(cfg => cfg.UseTheme(new YourTheme())).
See the Theming overview for how the tokens are consumed by controls.