oliverdavies.uk/web/themes/custom/opdavies/templates/layout/page.html.twig
Oliver Davies 58036c7ab9 Fix collapsing page widths
Fix inconsistent page widths on some pages such as blog and talks, by
adding a width (i.e. a `w-full` class) as well as a maximum width.
2020-07-02 18:13:05 +01:00

122 lines
4.6 KiB
Twig

{#
/**
* @file
* Default theme implementation to display a single page.
*
* The doctype, html, head and body tags are not in this template. Instead they
* can be found in the html.html.twig template in this directory.
*
* Available variables:
*
* General utility variables:
* - base_path: The base URL path of the Drupal installation. Will usually be
* "/" unless you have installed Drupal in a sub-directory.
* - is_front: A flag indicating if the current page is the front page.
* - logged_in: A flag indicating if the user is registered and signed in.
* - is_admin: A flag indicating if the user has permission to access
* administration pages.
*
* Site identity:
* - front_page: The URL of the front page. Use this instead of base_path when
* linking to the front page. This includes the language domain or prefix.
*
* Page content (in order of occurrence in the default page.html.twig):
* - messages: Status and error messages. Should be displayed prominently.
* - node: Fully loaded node, if there is an automatically-loaded node
* associated with the page and the node ID is the second argument in the
* page's path (e.g. node/12345 and node/12345/revisions, but not
* comment/reply/12345).
*
* Regions:
* - page.header: Items for the header region.
* - page.primary_menu: Items for the primary menu region.
* - page.secondary_menu: Items for the secondary menu region.
* - page.highlighted: Items for the highlighted content region.
* - page.help: Dynamic help text, mostly for admin pages.
* - page.content: The main content of the current page.
* - page.sidebar_first: Items for the first sidebar.
* - page.sidebar_second: Items for the second sidebar.
* - page.footer: Items for the footer region.
* - page.breadcrumb: Items for the breadcrumb region.
*
* @see template_preprocess_page()
* @see html.html.twig
*
* @ingroup themeable
*/
#}
<div class="antialiased font-sans text-gray-800 leading-relaxed">
<div class="min-h-screen flex flex-col">
<div id="nav" class="bg-blue-500 border-b-3 border-blue-700">
<div class="container">
<div class="md:flex" x-data="{ isOpen: false }">
<div class="w-full flex items-center md:w-1/3 lg:w-1/4">
<div class="w-3/4 py-6">
<div>
{{ page.header }}
</div>
</div>
<div class="w-1/4 text-right flex items-center justify-end md:hidden">
<button type="button" class="nav-toggle appearance-none text-white hover:text-gray-300 focus:outline-none"
aria-label="Toggle main menu" @click="isOpen = !isOpen">
<svg class="js-hidden fill-current text-inherit w-6 h-6" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20">
<path x-show="!isOpen"
d="M16.4 9H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1zm0 4H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1zM3.6 7h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1z"></path>
<path x-show="isOpen"
d="M10 8.586L2.929 1.515 1.515 2.929 8.585 10l-7.07 7.071 1.414 1.414L10 11.415l7.071 7.07 1.414-1.414L11.415 10l7.07-7.071-1.414-1.414L10 8.585z"
fill-rule="evenodd" style="display: none;"></path>
</svg>
</button>
</div>
</div>
<div class="-mx-4 md:mt-0 md:mx-0 md:relative md:flex md:flex-wrap md:flex-1 md:justify-end">
{{ page.primary_menu }}
</div>
</div>
</div>
</div>
<div
class="
w-full mx-auto p-4 space-y-8
{{ is_front ? 'max-w-5xl' : 'max-w-3xl' }}
"
>
{{ page.secondary_menu }}
{{ page.breadcrumb }}
{{ page.highlighted }}
{{ page.help }}
<main role="main">
<a id="main-content" tabindex="-1"></a>{# link is in html.html.twig #}
<div class="grid lg:grid-cols-4 gap-8">
<div class="{{ not page.sidebar_second ? 'lg:col-span-4' : 'lg:col-span-3' }}">
<div class="max-w-3xl">
{{ page.content }}
</div>
</div>{# /.layout-content #}
{% if page.sidebar_second %}
<aside role="complementary">
{{ page.sidebar_second }}
</aside>
{% endif %}
</div>
</main>
{% if page.footer %}
<footer role="contentinfo">
{{ page.footer }}
</footer>
{% endif %}
</div>{# /.layout-container #}
</div>
</div>