<header id="banner">
    
    <!-- menu -->
    <nav class="primary">
      <i class="fas fa-bars"></i>
      <i class="fas fa-caret-right"></i>
      Menu
    </nav>

    <!-- socials -->
    <i class="fab fa-facebook-square">
      <span class="sr-only">facebook</span>
    </i>
    <i class="fab fa-twitter">
      <span class="sr-only">twitter</span>
    </i>
    <i class="fab fa-instagram">
      <span class="sr-only">instagram</span>
    </i>

    <!-- secondary menu -->
    <nav class="secondary">      
      <a aria-current="page">shop</a>
      <a>list</a>
    </nav>
  </header>

  <main>
    
  <!-- main content -->
  <h1>Code like no one's watching</h1>
  <h2>Edit like everyone is</h2>
  <p class="intro">There are many ways to start using a new feature in CSS without waiting for full cross-browser support, but “feature queries” are the most clear and explicit. We can use them to test for browser support, and provide targeted styles only where they are supported. Now we can do the same with new selectors, like ::marker or :focus-visible!</p>


  <!-- featured/action blocks -->
  <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/150150/placeholder.png">
  <p>Short Caption</p>
  <a href="">Sign Up</a>


  <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/150150/placeholder.png">
  <p>Short Caption</p>
  <a href="">Log In</a>


  <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/150150/placeholder.png">
  <p>Multi-line caption with more detail to convey before we display the important button.</p>
  <a href="">Add to Cart</a>


  </main>

  <img class="fancy-image" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/150150/code.png">

  <!-- footer -->
  <footer>
    <p>Maybe a copyright or next section …</p>
  </footer>
* { box-sizing: border-box; }
html { block-size: 100%; }
body { min-block-size: 100%; }

main {
  container: layout / inline-size;
}

.intro {
  columns: 2 14em;
}

body {
  display: grid;
  grid-template: 
    'banner main extra' 1fr
    'foot foot foot' auto
    / auto minmax(min-content, max(30em, 50%)) 1fr
  ;
}

main { 
  grid-area: main;
  border-inline-start: medium solid;
}

.fancy-image {
  grid-area: extra;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: left;
}

footer { 
  grid-area: foot; 
  display: grid;
  grid-template-columns: subgrid;
  border-block-start: medium solid;
  
  > * {
    grid-column: main;
  }
}

#banner {
  max-block-size: 100svh;
  grid-area: banner;
  display: flex;
  flex-flow: column;
}
  
.secondary {
  display: flex;
  gap: 1em;
  padding-inline: 1em;
  flex: auto;
  writing-mode: sideways-lr;
  background: papayawhip;
  text-transform: uppercase;

  @supports not (writing-mode: sideways-lr) {
    writing-mode: vertical-rl;
    rotate: .5turn;
  }
  
  a {
    display: flex;
    align-items: center;
    border-block-end: thick solid transparent;
    
  }
  
  [aria-current=page] {
    font-weight: bold;
    border-color: var(--color-primary);
  }
}


// Image for the headline effect
.code-bg {
  background-image: src('https://s3-us-west-2.amazonaws.com/s.cdpn.io/150150/code2.png');
}

// Colors you may need
html {
  --color-primary: hsl(258, 37%, 46%);
  --color-text: hsl(260, 14%, 29%);
  --color-border-light: hsl(0, 0%, 80%);
  --color-overlay: hsl(259, 36%, 28%);
  font-family: 'Fira Sans', sans-serif;
}

View Compiled
Run Pen

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.