.poster.tk-futura-pt
  .poster-wrap
  
    // artist title
    .artist-title-row
      // album title
      h1.album-title Turn on the Bright Lights
      h2.artist-title Interpol   
    
    p.poster-number 67_<br/>19
      
    // album artwork
    .artwork
      - for (var x = 0; x < 4; x++)
        .shape
    // album footer
    .album-footer
      // release date
      h3.release-date 2002
      // track list
      .track-list-row
        // track list one
        ul.track-list
          //- "track side" optional
          li.track-side
            h4 Track Side A
          li 
            span Track Title Goes Here
            span 4:35
          li 
            span A Different Track Title On This Line
            span 3:29
          li 
            span One More Track For You
            span 10:35
        // track list two
        ul.track-list
          //- "track side" optional
          li.track-side
            h4 Track Side B
          li 
            span Gimme, Gimme Tracks
            span 3:41
          li 
            span Rock Me Gently Track Title 
            span 12:55
          li 
            span Track Title
            span 6:15
      
View Compiled
$purple: #639;
$blue: #4174CB;

:root {
  font-size: calc( 1rem + (40 - 20) * ( (100vw - 300px) / ( 2000 - 300)));
}

body {
  //background-color: $purple;
  background-color: #000;
  color: #FFF;
  //color: mix(black, $purple, 45%);
  display: flex;
  flex-direction: column;
  height: 100vh;
  letter-spacing: .02em;
  &::before,
  &::after {
    background-color: #000;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
  }
  &::after {
    background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/97621/brooklyn-bridge-nyc.jpg) no-repeat center;
    background-size: cover;
    filter: opacity(.1) grayscale(1);
    mix-blend-mode: hard-light;
    transition: .4s ease;
  }
  &:hover {
    &:after {
      filter: opacity(.2);
    }
  }
}

h1, h2, h3, h4, h5, h6 {
  margin-bottom: 0;
  //text-transform: uppercase;
}

.icon {
  display: inline-block;
  fill: currentColor;
  height: 1em;
  width: 1em;
  vertical-align: middle;
  position: relative;
  top: -.0625em;
  margin-right: .25rem;
  margin-left: .25rem;
  text-align: center;
  stroke-width: 0;
}

ul {
  list-style-type: none;
  padding-left: 0;
  a {
    text-decoration: none;
  }
}

// modifiers

.hidden {
  display: none !important;
}

// poster styles

.poster {
  display: flex;
  flex-grow: 1;
  flex-shrink: 0;
  flex-direction: column;
  justify-content: space-between;
  height: 100vh;
}

.poster-wrap {
  align-self: center;
  display: flex;
  flex-grow: 1;
  flex-shrink: 0;
  flex-direction: column;
  justify-content: space-between;
  //padding: 1.5em;
  max-width: 50rem;
  height: 100vh;
  width: 100%;
  
  // grid styles
  display: grid;
  grid-template-columns: 1fr auto auto;
  grid-template-columns: 10vw 5fr 13vw;
  > *:not(.artwork):not(.album-footer) {
    position: relative;
    z-index: 1;
  }
}

// album title

.album-title {
  font-size: .875em;
  //font-weight: 300;
  flex-grow: 0;
  flex-shrink: 0;
  letter-spacing: .05em;
  //padding-top: 2em;
  //padding-left: 2rem;
  //text-transform: uppercase;
}

// artist title

.artist-title-row {
  display: flex;
  font-size: .65em;
  //align-items: center;
  font-weight: 600;
  grid-column: 1 / 3;
  padding-top: 2.25em;
  //padding-right: 2rem;
  padding-left: 2em;
  justify-content: space-between;
  -webkit-font-smoothing: antialiased;
}

.artist-title {
  display: flex;
  font-size: calc(1vw + .875em);
  font-size: .875em;
  letter-spacing: .1em;
  padding-right: 1rem;
  //line-height: .875;
  //margin-right: 17%;
  text-transform: uppercase;
  transition: all .4s ease;
}

// not sure what this represents?

.poster-number {
  //color: mix(black, $purple, 45%);
  display: flex;
  font-size: .65em;
  //font-weight: 600;
  align-self: center;
  justify-self: center;
  margin-bottom: 0;
  grid-column: 3 / 3;
  grid-row: 2 / 2;
}

// artwork

.art-wrap {
  display: flex;
  align-items: center;
  flex-grow: 1;
  position: relative;  
  z-index: 0;
}

.artwork {
  display: grid;
  //align-content: center;
  justify-content: flex-end;
  flex-grow: 1;
  //grid-template-columns: repeat(12, 1fr);
  // grid-template-columns: 5rem 18rem 8rem;
  // grid-template-rows: 8rem 18rem 5rem;
  grid-template-columns: 10vw 5fr 13vw;
  grid-template-rows: 7vw 5fr 9vw;
  grid-template-areas: "top-left ..... top-right" "...... mid-center ....." "bot-left ..... bot-right";
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100vw;
  z-index: 0;
}

.shape {
  background-color: #FFF;
  //display: flex;
  //height: 8em;
  //width: 8em;
  opacity: .8;
  padding: 2vmin;
  position: relative;
  &::before {
    content: "";
    position: absolute;
  }
  // grid-column: span 1;
  // grid-row: span 1;
  &:nth-child(1) {
    background-color: mix(black, crimson, 15%);
    max-height: 20vw;
    height: 200%;
    width: 100%;
    grid-area: top-right;
    position: relative;
    //transform: rotate(-25deg);
    &::before {
      display: none;
      background-color: mix(white, $purple, 99%);
      //background-color: #FFF;
      top: 9em;
      left: -7vw;
      height: 15vw;
      width: 18vw;
      //transform: rotate(-45deg);
    }
  }
  &:nth-child(2) {
    //background-color: mix(black, $purple, 55%);
    //background-color: #F3F3F3;
    background-color: #FFF;
    border: .75rem solid #000;
    grid-area: mid-center;
    &::before {
      display: none;
      background-color: rgba($purple, .5);
      //background-color: #FFF;
      //mix-blend-modes: screen;      
      top: -10vw;
      left: -15vw;
      height: 30vw;
      width: 30vw;
      z-index: 1;
      //transform: rotate(-45deg);
    }
  }
  &:nth-child(3) {
    background-color: mix(white, $purple, 20%);
    background-color: $blue;
    grid-area: bot-left;
    &::before {
      background-color: $blue;      
      top: -10vw;
      right: 0;
      height: 10vw;
      width: 100%;
    }
  }
  &:nth-child(4) {
    //display: none;
    background-color: mix(black, $purple, 5%);
    background-color: yellow;
    grid-area: bot-right;
    &::before {
      background-color: yellow;
      top: 0;
      right: 0;
      height: 100%;
      width: 150%;
    }
  }
  
  &.bright-light {
    border-radius: 1em;
    transform: rotate(45deg);
  }
}

// album footer

.album-footer {
  display: flex;
  font-size: .875rem;
  flex-grow: 0;
  flex-shrink: 0;
  //align-items: flex-end;
  justify-content: space-between;
  //max-height: 10em;
  //align-self: center;
  //padding-top: 2em;
  padding-right: 5rem;
  padding-left: 2.25rem;
  padding-bottom: 3rem;
  position: relative;
  //justify-self: flex-end;
}

.release-date {
  //color: mix(black, $purple, 35%);
  display: none;
  font-size: .75em;
  font-weight: 600;
  font-weight: 300;
  letter-spacing: .06em;
  padding-top: 1rem;
  //padding-right: 3rem;
}

.track-list-row {
  display: flex;
  display: none;
  font-size: .875em;
  justify-content: flex-end;
  //padding-top: 5em;
  //padding-bottom: 2em;
  & > ul:last-child {
    margin-bottom: 0;
    padding-left: 2rem;
  }
}

.track-list {  
  > li {
    display: flex;
    line-height: 1.5467;
    justify-content: space-between;
    margin-bottom: .5rem;
    -webkit-font-smoothing: antialiased;
    &:not(.track-side) {
      font-size: .75em;
      mix-blend-mode: difference;
    }
    &:last-child {
      margin-bottom: 0;
    }
    &.track-side {
      margin-bottom: .75em;
    }
    // track time
    > span:nth-child(2) {
      padding-left: 4rem;
    }
  }  
}


// Grid Supported

@supports (grid-gap: 0) {
  .poster-wrap {
    //display: grid;
    //grid-template-columns: repeat(4, 1fr);
  }
}
View Compiled

External CSS

  1. https://codepen.io/ericthayer/pen/1b88027d0220b52e07214fff4610e7ba.scss
  2. https://s3-us-west-2.amazonaws.com/s.cdpn.io/97621/_normalize.5.0.scss
  3. https://s3-us-west-2.amazonaws.com/s.cdpn.io/97621/functional-modifiers.css

External JavaScript

This Pen doesn't use any external JavaScript resources.