Color context
Color is defined through context object, a context is attached to an object and carries the type and state of the widget it is defined by:
the palette used
the type of widget (button, slider, spinbox, etc..)
the state of the object (enabled, hovered, pressed)
it will expose different sets of properties:
fg, bg are respectively colors sets for the foreground (text) and background. the set defines multiple colors:
primary: the main color to use
secondary: a complementary color, used for subtitles for instance
highlight: a color to use when the item is selected
positive/negative/neutral: to convey error or success
some accessory colors are provided aside the
bg
andfg
set:visualFocus: a color to mark that the item is currenly focused
border: a color for items borders
separator: a color to draw separation lines
indicator: to show indicators such as currently playing item
shadow: the color to show elevation
accent: the accent color (usually VLC’s orange)
3 color palette exists:
Day and Night are hard coded colors theme provided by the application
System is a color theme that will try to match color defined by the system with the application, the system color theme is modular, it uses a plugin system that will retreive from plateform speficic library (highcontrast on windows or gtk colors for instance). A fallback using Qt system palette is used if no native plugin exists.