4 * Theme override for the basic structure of a single Drupal page.
7 * - logged_in: A flag indicating if user is logged in.
8 * - root_path: The root path of the current page (e.g., node, admin, user).
9 * - node_type: The content type for the current node, if the page is a node.
10 * - head_title: List of text elements that make up the head_title variable.
11 * May contain one or more of the following:
12 * - title: The title of the page.
13 * - name: The name of the site.
14 * - slogan: The slogan of the site.
15 * - page_top: Initial rendered markup. This should be printed before 'page'.
16 * - page: The rendered page markup.
17 * - page_bottom: Closing rendered markup. This variable should be printed after
19 * - db_offline: A flag indicating if the database is offline.
20 * - placeholder_token: The token for generating head, css, js and js-bottom
23 * @see template_preprocess_html()
28 logged_in ? 'user-logged-in',
29 not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class,
30 node_type ? 'page-node-type-' ~ node_type|clean_class,
31 db_offline ? 'db-offline',
35 <html{{ html_attributes }}>
37 <head-placeholder token="{{ placeholder_token }}">
38 <title>{{ head_title|safe_join(' | ') }}</title>
39 <css-placeholder token="{{ placeholder_token }}">
40 <js-placeholder token="{{ placeholder_token }}">
42 <body{{ attributes.addClass(body_classes) }}>
44 Keyboard navigation/accessibility link to main content section in
47 <a href="#main-content" class="visually-hidden focusable skip-link">
48 {{ 'Skip to main content'|t }}
53 <js-bottom-placeholder token="{{ placeholder_token }}">