Skip to content
Snippets Groups Projects
Header.astro 2.33 KiB
Newer Older
  • Learn to ignore specific revisions
  • tusooa's avatar
    tusooa committed
    ---
    
    import { library } from '@fortawesome/fontawesome-svg-core';
    import { faBars } from '@fortawesome/free-solid-svg-icons';
    
    tusooa's avatar
    tusooa committed
    import HeaderLink from './HeaderLink.astro';
    
    tusooa's avatar
    tusooa committed
    import FAIcon from './FAIcon.astro';
    import MultiLang from './MultiLang/index.astro';
    
    tusooa's avatar
    tusooa committed
    import Navigation from './Navigation.astro';
    
    tusooa's avatar
    tusooa committed
    import ElementHider from './ElementHider.astro';
    
    tusooa's avatar
    tusooa committed
    import CollapsableToggle from './CollapsableToggle.astro';
    
    tusooa's avatar
    tusooa committed
    import { SITE_TITLE, NAV_LINKS } from '../consts';
    
    tusooa's avatar
    tusooa committed
    
    
    library.add(faBars);
    ---
    
    tusooa's avatar
    tusooa committed
    <header>
      <nav>
    
        <div class="topbar">
          <h2><a href="/">{SITE_TITLE}</a></h2>
    
    tusooa's avatar
    tusooa committed
          <div class="internal-links -topbar -display" id="nav-links-topbar">
            <Navigation />
          </div>
          <CollapsableToggle
            contentSelector="#nav-links-dropdown"
            displayClass="-display"
    
            class="topbar-toggle-nav-button"
            title="Toggle Nav Links"
            aria-controls="nav-links-dropdown"
          >
            <FAIcon name="bars" />
    
    tusooa's avatar
    tusooa committed
          </CollapsableToggle>
    
    tusooa's avatar
    tusooa committed
        </div>
    
    tusooa's avatar
    tusooa committed
        <div class="internal-links -dropdown -display" id="nav-links-dropdown">
          <Navigation />
        </div>
    
    tusooa's avatar
    tusooa committed
        <ElementHider selector="#nav-links-dropdown" />
    
    tusooa's avatar
    tusooa committed
      </nav>
    </header>
    <style>
      header {
        margin: 0;
        padding: 0 1em;
    
    tusooa's avatar
    tusooa committed
        background-color: var(--topBarBackground);
    
    tusooa's avatar
    tusooa committed
        box-shadow: 0 2px 8px rgba(var(--black), 5%);
      }
      h2 {
        margin: 0;
        font-size: 1em;
    
    tusooa's avatar
    tusooa committed
        padding: 1em 0.5em;
    
    tusooa's avatar
    tusooa committed
      }
    
    tusooa's avatar
    tusooa committed
      h2 a {
        color: var(--text);
      }
    
    tusooa's avatar
    tusooa committed
      h2 a,
      h2 a.active {
        text-decoration: none;
      }
      nav {
        display: flex;
    
    tusooa's avatar
    tusooa committed
        flex-direction: column;
        align-items: stretch;
    
    tusooa's avatar
    tusooa committed
        justify-content: space-between;
      }
    
      .topbar {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
      }
      .topbar-toggle-nav-button {
        display: none;
      }
      .internal-links.-topbar {
        display: flex;
      }
      .internal-links.-dropdown {
        display: none;
    
        margin-bottom: 1em;
    
      }
      @media (max-width: 40em) {
    
    tusooa's avatar
    tusooa committed
        .internal-links.-topbar, .internal-links.-dropdown {
    
          display: none;
        }
    
    tusooa's avatar
    tusooa committed
        .internal-links.-dropdown.-display {
    
          display: flex;
        }
        h2 {
          min-height: max-content;
          display: flex;
          flex-direction: column;
          justify-content: stretch;
        }
        .topbar-toggle-nav-button {
          display: block;
    
    tusooa's avatar
    tusooa committed
          padding: 0.25em 0.5em;
    
        }
        .internal-links {
          display: flex;
          flex-direction: column;
        }
      }
    
    tusooa's avatar
    tusooa committed
    </style>