view mrjunejune/src/parts/header.html @ 267:a78f5986011f

discover bundled production runtimes Locate Bazel-packaged Copilot and Python binaries by stable suffix instead of hardcoding an external repository prefix. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <me@mrjunejune.com>
date Fri, 07 Aug 2026 12:58:55 -0700
parents 60a876c4587a
children
line wrap: on
line source

<style>
  :root {
    --header-background: var(--white);
    --header-color: var(--black);
    --link-hover-accent: var(--awesome);
  }

  #themeControl {
    position: fixed;
    top: 20px;
    left: 20px;
    z-index: 1000;
    transition: transform 0.2s ease;
  }

  #themeControl:hover {
    transform: scale(1.05);
  }

  #themeToggle {
    display: flex;
    flex-direction: column;
    padding: 0;
    border: 0;
    background: transparent;
  }

  /* Professional header */
  header {
    margin: auto;
    padding: 1.5em 1em;
    font-family: "More", sans-serif;
    width: 720px;
    max-width: calc(100% - 2em);
    text-align: center;
  }

  header h1 {
    margin: 0;
    font-size: 1.8em;
    font-weight: 700;
    letter-spacing: -0.5px;
  }

  header h1 a {
    text-decoration: none;
    color: var(--header-color);
  }

  header h1 a::before {
    display: none;
  }

  /* Mobile responsiveness */
  @media (max-width: 720px) {
    #themeControl {
      top: 15px;
      left: 15px;
    }

    header {
      padding: 1em;
    }

    header h1 {
      font-size: 1.5em;
    }
  }

  @media (max-width: 480px) {
    #themeControl {
      top: 10px;
      left: 10px;
    }

    #themeToggle img {
      height: 40px;
      width: 40px;
    }

    header h1 {
      font-size: 1.3em;
    }
  }

  #logo {
    width: 300px;
  }

  /* 1. DEFINE THE DEFAULTS (Light Mode) */
  :root {
    --logo-invert: invert(0);
    --epi-grayscale: grayscale(0) brightness(1);
  }
  
  /* 2. MANUAL DARK OVERRIDE */
  html[data-zen-theme="ink"] {
    --logo-invert: invert(1);
    --epi-grayscale: grayscale(1);
  }
  
  /* 3. MANUAL LIGHT OVERRIDE */
  html[data-zen-theme="paper"] {
    --logo-invert: invert(0);
    --epi-grayscale: brightness(2.9) grayscale(1);
  }

  html[data-zen-theme="playful"] {
    --logo-invert: invert(0);
    --epi-grayscale: saturate(1.25);
  }
  
  /* 4. SYSTEM PREFERENCE */
  @media (prefers-color-scheme: dark) {
    :root:not([data-zen-theme]) {
      --logo-invert: invert(1);
    }
  }
  
  /* 5. APPLY TO ELEMENTS */
  #logo {
    -webkit-filter: var(--logo-invert);
    filter: var(--logo-invert);
    transition: filter 0.3s ease;
  }
  
  .epi-logo {
    -webkit-filter: var(--epi-grayscale);
    filter: var(--epi-grayscale);
    transition: filter 0.3s ease;
  }
</style>

<zen-button id="themeControl" appearance="plain" size="xl">
  <button
    id="themeToggle"
    type="button"
    aria-label="Change site theme"
  >
    <img
      id="epiChan"
      class="epi-logo"
      alt=""
      src="/public/epi_all_colors.svg"
      height="50"
      width="50"
    >
    <span id="themeName" class="zen-visually-hidden" aria-live="polite">Auto</span>
  </button>
</zen-button>

<header>
  <h1><a href="/" data-zen-link-effect="none">MrJuneJune</a></h1>
</header>
<script src="/index.js"></script>