Automatically sets a light or dark theme based on the OS settings. Put it in your template like:
<pe:lightSwitch selected="\#{userBean.theme}"/>
userBean
should be a session scoped bean with a String
type theme property
(with both getter and setter). Then set the theme in your web.xml
like:
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>\#{userBean.theme}</param-value>
</context-param>
This showcase uses the LightSwitch component.
See also the PrimeFaces themes documentation.
With combined resources, we cannot find the theme link in the DOM tree. Therefor we need to add a node for the new theme.
Important: this node will be added as the last element in the body. If you added a custom style sheet with overrides,
make sure to use more specific rules. Equal rules will be overruled by the switched theme.