4 * Default theme implementation for the Appearance page.
7 * - attributes: HTML attributes for the main container.
8 * - theme_groups: A list of theme groups. Each theme group contains:
9 * - attributes: HTML attributes specific to this theme group.
10 * - title: Title for the theme group.
11 * - state: State of the theme group, e.g. installed or uninstalled.
12 * - themes: A list of themes within the theme group. Each theme contains:
13 * - attributes: HTML attributes specific to this theme.
14 * - screenshot: A screenshot representing the theme.
15 * - description: Description of the theme.
17 * - version: The theme's version number.
18 * - is_default: Boolean indicating whether the theme is the default theme
20 * - is_admin: Boolean indicating whether the theme is the admin theme or
22 * - notes: Identifies what context this theme is being used in, e.g.,
23 * default theme, admin theme.
24 * - incompatible: Text describing any compatibility issues.
25 * - operations: A list of operation links, e.g., Settings, Enable, Disable,
26 * etc. these links should only be displayed if the theme is compatible.
28 * @see template_preprocess_system_themes_page()
34 {% for theme_group in theme_groups %}
36 set theme_group_classes = [
38 'system-themes-list-' ~ theme_group.state,
42 <div{{ theme_group.attributes.addClass(theme_group_classes) }}>
43 <h2 class="system-themes-list__header">{{ theme_group.title }}</h2>
44 {% for theme in theme_group.themes %}
47 theme.is_default ? 'theme-default',
48 theme.is_admin ? 'theme-admin',
53 <div{{ theme.attributes.addClass(theme_classes) }}>
54 {% if theme.screenshot %}
55 {{ theme.screenshot }}
57 <div class="theme-info">
58 <h3 class="theme-info__header">
59 {{- theme.name }} {{ theme.version -}}
61 ({{ theme.notes|safe_join(', ') }})
64 <div class="theme-info__description">{{ theme.description }}</div>
65 {# Display operation links if the theme is compatible. #}
66 {% if theme.incompatible %}
67 <div class="incompatible">{{ theme.incompatible }}</div>
69 {{ theme.operations }}