2022-11-15 11:11:07 +00:00
|
|
|
<!--
|
|
|
|
Tailwind UI components require Tailwind CSS v1.8 and the @tailwindcss/ui plugin.
|
|
|
|
Read the documentation to get started: https://tailwindui.com/documentation
|
|
|
|
--><!-- This example requires Tailwind CSS v1.4.0+ -->
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
|
|
var displayedMenu = "";
|
|
|
|
var hamburgerShown = false;
|
|
|
|
let width = screen.width;
|
|
|
|
var isMobile = width < 1024;
|
|
|
|
|
|
|
|
function toggleMenu(button) {
|
|
|
|
if (displayedMenu === button.id.split("-")[0]) {
|
|
|
|
button.className = button.className.replace(" text-blue-500 bg-stone-200 sm:bg-transparent", " text-gray-900");
|
|
|
|
hideMenu(button.id.split("-")[0]);
|
|
|
|
button.lastElementChild.className = button.lastElementChild.className.replace("rotate-0", "-rotate-90")
|
|
|
|
displayedMenu = "";
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
showMenu(button.id.split("-")[0]);
|
|
|
|
button.lastElementChild.className = button.lastElementChild.className.replace("-rotate-90", "rotate-0")
|
|
|
|
button.className = button.className.replace(" text-gray-900", " text-blue-500 bg-stone-200 sm:bg-transparent");
|
|
|
|
displayedMenu = button.id.split("-")[0]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function handleClick(button) {
|
|
|
|
if (button.id === "hamburger-btn" || button.id === "close-hamburger-btn") { toggleHamburger() }
|
|
|
|
if (button.id.indexOf("menu") !== -1 ) {
|
|
|
|
toggleMenu(button)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function toggleHamburger() {
|
|
|
|
if (hamburgerShown) {
|
|
|
|
hideHamburger();
|
|
|
|
hamburgerShown = false;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
showHamburger();
|
|
|
|
hamburgerShown = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function showMenu(menuName) {
|
|
|
|
var menuId = menuName + (isMobile ? '-mobile-menu' : '-menu');
|
|
|
|
var menuBtnId = menuName + (isMobile ? '-mobile-menu' : '-menu');
|
|
|
|
var menuElement = document.getElementById(menuId)
|
|
|
|
menuElement.className = menuElement.className.replace(" hidden" , "");
|
|
|
|
setTimeout(function() { menuElement.className = menuElement.className.replace("duration-200 ease-in opacity-0 -translate-y-1", "duration-150 ease-out opacity-1 -translate-y-0"); }, 10);
|
|
|
|
}
|
|
|
|
|
|
|
|
function hideMenu(menuName) {
|
|
|
|
var menuId = menuName + (isMobile ? '-mobile-menu' : '-menu');
|
|
|
|
var menuElement = document.getElementById(menuId)
|
|
|
|
menuElement.className = menuElement.className.replace("duration-150 ease-out opacity-1 -translate-y-0", "duration-200 ease-in opacity-0 -translate-y-1");
|
|
|
|
setTimeout(function() { menuElement.className = menuElement.className + " hidden" }, 300);
|
|
|
|
}
|
|
|
|
|
|
|
|
function showHamburger() {
|
|
|
|
document.getElementById('header-container').className = "overflow-hidden";
|
|
|
|
document.getElementById('hamburger').className = "fixed mt-16 z-20 top-0 inset-x-0 transition transform origin-top-right";
|
|
|
|
document.getElementById('hamburger-btn').className = "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
|
|
|
|
document.getElementById('close-hamburger-btn').className = "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
|
|
|
|
}
|
|
|
|
|
|
|
|
function hideHamburger() {
|
|
|
|
document.getElementById('header-container').className = "";
|
|
|
|
document.getElementById('hamburger').className = "hidden absolute z-20 top-0 inset-x-0 transition transform origin-top-right lg:hidden";
|
|
|
|
document.getElementById('hamburger-btn').className = "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
|
|
|
|
document.getElementById('close-hamburger-btn').className = "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
|
|
|
|
if (displayedMenu !== "") { hideMenu(displayedMenu); }
|
|
|
|
}
|
|
|
|
|
|
|
|
window.onload = function(){
|
|
|
|
let elements = document.getElementsByTagName("button");
|
|
|
|
let buttons = [...elements]
|
|
|
|
buttons.forEach((button) => {
|
|
|
|
button.addEventListener( 'click', function() { handleClick(button) });
|
|
|
|
})
|
|
|
|
document.getElementById("mobile-learn-btn").addEventListener( 'click', toggleMenu);
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
{%- set section = get_section(path="header/_index.md") %}
|
|
|
|
{% set header_items = section.content | safe | split(pat="<li>") %}
|
|
|
|
|
|
|
|
<header id="header-container">
|
|
|
|
<div class="z-10 bg-white fixed w-screen">
|
|
|
|
<div class="relative z-50 shadow">
|
|
|
|
<div class="mx-auto flex z-50 shadow justify-between items-center pl-6 pr-2 md:pl-0 md:pr-0 lg:py-5 sm:px-8 md:px-12 py-2 lg:px-20 lg:justify-start lg:space-x-20">
|
|
|
|
<div>
|
|
|
|
<a href="/" class="flex">
|
|
|
|
<img class="w-48 h-auto sm:w-15" src="{{section.extra.logoPath}}" alt="Ourworld Logo" />
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<div class="-mr-2 -my-2 lg:hidden">
|
|
|
|
<button id="hamburger-btn" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2">
|
|
|
|
<!-- Heroicon name: menu -->
|
|
|
|
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
|
|
|
|
</svg>
|
|
|
|
</button>
|
|
|
|
<button id="close-hamburger-btn" type="button" class="hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2">
|
|
|
|
<!-- Heroicon name: x -->
|
|
|
|
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
|
|
|
</svg>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
<div class="hidden lg:flex-1 lg:flex lg:items-center lg:justify-end lg:space-x-12">
|
|
|
|
<nav class="flex space-x-10">
|
|
|
|
|
|
|
|
{% for header_item in header_items %}
|
|
|
|
{% if not loop.first %}
|
|
|
|
{% set header_arr = header_item | split(pat="</li>") %}
|
|
|
|
{% set header_label = header_arr[0] %}
|
|
|
|
{% if '<a' in header_label %}
|
|
|
|
{% set link_label = header_label | striptags %}
|
|
|
|
{% set link_path = header_label | split(pat="%22") | safe%}
|
2023-07-12 13:49:15 +00:00
|
|
|
{% if header_label is containing("http") %}
|
|
|
|
<a href="{{link_path[1]}}" target="_blank" class="text-lg leading-6 font-medium text-gray-900 focus:outline-none focus:text-gray-900 transition ease-in-out duration-150 mt-0">
|
|
|
|
{{link_label}}
|
|
|
|
</a>
|
|
|
|
{% else %}
|
|
|
|
<a href="{{link_path[1]}}" class="text-lg leading-6 font-medium text-gray-900 focus:outline-none focus:text-gray-900 transition ease-in-out duration-150 mt-0">
|
|
|
|
{{link_label}}
|
|
|
|
</a>
|
|
|
|
{% endif %}
|
2022-11-15 11:11:07 +00:00
|
|
|
{% else %}
|
|
|
|
<div class="relative">
|
|
|
|
{% set button_id = header_label ~ "-menu-btn" | slugify %}
|
|
|
|
<button type="button" id="{{button_id}}" class="nav_btn font-medium text-gray-900 group inline-flex items-center space-x-2 text-lg leading-6 font-normal hover:text-blue-300 focus:outline-none transition ease-in-out duration-150">
|
|
|
|
<span>{{ header_label }}</span>
|
|
|
|
<div class="-rotate-90 transition-transform"><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg></div>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% for header_item in header_items %}
|
|
|
|
{% if not loop.first %}
|
|
|
|
{% set header_arr = header_item | split(pat="</li>") %}
|
|
|
|
{% set header_label = header_arr[0] %}
|
|
|
|
{% set header_menu = header_arr[1] %}
|
|
|
|
{% set menu_id = header_label ~ "-menu" | slugify %}
|
|
|
|
|
|
|
|
<nav>
|
|
|
|
<div id="{{menu_id}}" class="mt-16 sm:mt-0 md:mt-0 lg:mt-0 xl:mt-0 2xl:mt-0 z-30 absolute inset-x-0 transform shadow-lg lg:backdrop-blur xl:backdrop-blur transition duration-200 ease-in opacity-0 -translate-y-1 hidden">
|
|
|
|
<div class="bg-white lg:bg-semi-white md:bg-semi-white xl:bg-semi-white">
|
|
|
|
<div class="mx-8 lg:mx-20 xl:mx-20 px-6 py-4 sm:p-6 md:p-8 lg:p-12 xl:p-12">
|
|
|
|
{{header_menu | safe }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
Mobile menu, show/hide based on mobile menu state.
|
|
|
|
|
|
|
|
Entering: "duration-200 ease-out"
|
|
|
|
From: "opacity-0 scale-95"
|
|
|
|
To: "opacity-100 scale-100"
|
|
|
|
Leaving: "duration-100 ease-in"
|
|
|
|
From: "opacity-100 scale-100"
|
|
|
|
To: "opacity-0 scale-95"
|
|
|
|
-->
|
|
|
|
<div id="hamburger" class="hidden fixed mt-16 z-20 top-0 inset-x-0 transition transform origin-top-right lg:hidden">
|
|
|
|
<div>
|
|
|
|
<div class="shadow-xs h-screen bg-white divide-y-2 divide-gray-50">
|
|
|
|
<div class="pb-6 sm:px-12 md:px-16 lg:px-20 space-y-6 sm:space-y-8 sm:pb-8 max-h-screen overflow-y-auto">
|
|
|
|
|
|
|
|
<nav class="flex flex-col justify-around pb-12">
|
|
|
|
{% for header_item in header_items %}
|
|
|
|
|
|
|
|
{% if not loop.first %}
|
|
|
|
{% set header_arr = header_item | split(pat="</li>") %}
|
|
|
|
{% set header_label = header_arr[0] %}
|
|
|
|
{% if '<a' in header_label %}
|
|
|
|
{% set link_label = header_label | striptags %}
|
|
|
|
{% set link_path = header_label | split(pat="%22") | safe%}
|
2023-07-16 15:11:32 +00:00
|
|
|
{% if header_label is containing("http") %}
|
|
|
|
<a href="{{link_path[1]}}" target="_blank" class="text-lg px-8 py-3 leading-6 font-normal text-gray-900 hover:text-gray-900 focus:outline-none focus:text-gray-900 transition ease-in-out duration-150">
|
|
|
|
{{link_label}}
|
|
|
|
</a>
|
|
|
|
{% else %}
|
2022-11-15 11:11:07 +00:00
|
|
|
<a href="{{link_path[1]}}" class="text-lg px-8 py-3 leading-6 font-normal text-gray-900 hover:text-gray-900 focus:outline-none focus:text-gray-900 transition ease-in-out duration-150">
|
|
|
|
{{link_label}}
|
|
|
|
</a>
|
2023-07-16 15:11:32 +00:00
|
|
|
{% endif %}
|
2022-11-15 11:11:07 +00:00
|
|
|
{% else %}
|
|
|
|
{% set button_id = header_label ~ "-mobile-menu-btn" | slugify %}
|
|
|
|
<button type="button" id="{{button_id}}" class="flex flex px-8 py-3 items-start text-left text-gray-900 group inline-flex space-x-2 text-lg leading-6 font-normal hover:text-gray-900 focus:outline-none focus:text-gray-900 transition ease-in-out duration-150">
|
|
|
|
<span>{{ header_label }}</span>
|
|
|
|
<div class="-rotate-90 transition-transform"><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg></div>
|
|
|
|
</button>
|
|
|
|
{% set menu_id = header_label ~ "-mobile-menu" | slugify %}
|
|
|
|
<div id="{{menu_id}}" class="z-50 leading-3 pl-12 pt-6 pb-4 inset-x-0 text-sm transform duration-200 ease-in opacity-0 -translate-y-1 hidden">
|
|
|
|
{{ header_arr[1] | safe }}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
<hr/>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
{% if "footer/_index.md" in subsections_str %}
|
|
|
|
{% set section = get_section(path="footer/_index.md")%}
|
|
|
|
{% set logoPath = section.extra.logoPath %}
|
|
|
|
<div class="mx-8 mt-8">
|
|
|
|
<div class="space-y-8 lg:max-w-lg xl:max-w-lg lg:mr-8 lg:mb-8 xl:col-span-1">
|
|
|
|
<img class="w-48 h-auto" src="{{logoPath}}" alt="Company name" />
|
|
|
|
<p class="text-gray-500 text-base leading-6 ">
|
|
|
|
{{section.description}}
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</header>
|