.main-container
  .menu
  .wallet-amount
    .qr-code
    h3 Wallet
    p.total dec="31" 9238
    p.increment 170.25 (22.1%)
    button.action-btn
    svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"
      path.wave d="M0,128L24,117.3C48,107,96,85,144,117.3C192,149,240,235,288,224C336,213,384,107,432,101.3C480,96,528,192,576,224C624,256,672,224,720,197.3C768,171,816,149,864,133.3C912,117,960,107,1008,101.3C1056,96,1104,96,1152,128C1200,160,1248,224,1296,240C1344,256,1392,224,1416,208L1440,192L1440,320L1416,320C1392,320,1344,320,1296,320C1248,320,1200,320,1152,320C1104,320,1056,320,1008,320C960,320,912,320,864,320C816,320,768,320,720,320C672,320,624,320,576,320C528,320,480,320,432,320C384,320,336,320,288,320C240,320,192,320,144,320C96,320,48,320,24,320L0,320Z"
  .wallet-details
    h2 My Wallet
    p.amount 4,9326.44 (22.1%)
    button.add-coin Add Coin
  .cryptos
    - [{:crypto => 'BTC', :value => '2,463.4', :amount => 0.382},
       {:crypto => 'ETH', :value => '1,477.8', :amount => 4.879},
       {:crypto => 'XRP', :value => '985.29',  :amount => 1037.15},
       {:crypto => 'BQX', :value => '1,723.5', :amount => 40.31}].map do |item|
       div class="#{item[:crypto]}"
         h4 #{item[:crypto]}
         p.value #{item[:value]}
         p.amount #{item[:amount]}
View Compiled
// TODO: Improve all this shit

:root {
  --mobile-width: 370px;
  --mobile-height: 650px;
}

body {
  height: 100vh;
  padding: 10px;
  background-image: linear-gradient(to bottom right, #848faf, #515b7e);
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  
  .main-container {
    position: relative;
    width: var(--mobile-width);
    height: var(--mobile-height);
    background: #3f496c;
    font-family: "Poppins";
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 0 20px rgba(0,0,0,.2);
    
    .menu {
      position: absolute;
      top: 40px; left: 35px;
      width: 20px;
      height: 2px;
      background-color: white;
      border-radius: 1px;
      z-index: 1;
      
      &::before, &::after {
        content: "";
        position: relative;
        display: inline-block;
        background-color: white;
        width: 10px;
        height: 2px;
        border-radius: 1px;
        z-index: 2;
      }
      
      &::before {
        top: -5.5px;
        transform: translatex(50%);
      }
      
      &::after {
        top: -20px;
        transform: translatex(-50%);
      }
    }
    
    .wallet-amount {
      position: relative;
      padding: 30px;
      color: white;
      background-image: linear-gradient(to right, #9f80f4, #f96cab);
      text-align: center;
      border-radius:10px;
      box-shadow: 0 10px 5px -5px rgba(202, 119, 209, .5);
      
      svg {
        position: absolute;
        bottom: 0; right: 0;
        border-radius: 0 0 10px 10px;
        
        .wave {
          fill-opacity: .1;
          margin: 0;
        }
      }
      
      .qr-code {
        position: absolute;
        right: 40px;
        width: 30px;
        height: 30px;
        border: 1px solid white;
      }
      
      h3 {
        margin-bottom: 40px;
        text-transform: uppercase;
        font-size: .5em;
        font-weight: bold;
        letter-spacing: 1px;
      }
      
      .total {
        font-size: 1.8em;
        font-weight: 300;
        line-height: 0;
        
        &::before {
          content: "$";
          font-size: .7em;
        }
        
        &::after {
          content: ". "attr(dec);
          font-size: .7em;
        }
      }
      
      .increment {
        font-size: .8em;
        font-weight: 500;
        line-height: 0;
        
        &::before {
          content: "+";
        }
        
        &::after {
          content: "↑";
        }
      }
      
      .action-btn {
        position: absolute;
        background-color: #fff;
        bottom: 0; right: 30px;
        width: 45px;
        height: 45px;
        border: none;
        border-radius: 50%;
        transform: translatey(50%);
        z-index: 1;
      }
    }
    
    .wallet-details {
      display: grid;
      color: white;
      padding: 3em;
      grid-template-areas:
        "title   title   button"
        "details details button";
      
      h2 {
        grid-area: title;
        font-weight: 300;
        line-height: 0;
      }
      
      .amount {
        grid-area: details;
        color: #BBB;
        font-size: .85em;
        line-height: 0;
        
        &::before {
          content: "$";
        }
        
        &::after {
          content: "↑";
          color: #90e69d;
        }
      }
      
      .add-coin {
        grid-area: button;
        color: #82c4ea;
        background-color: transparent;
        text-transform: uppercase;
        font-size: .75em;
        font-weight: 600;
        border: none;
        
        &::after {
          content: "";
          padding: 5px 15px;
          background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABmJLR0QA/wD/AP+gvaeTAAABYklEQVQokaWQvyuEcRzHX5+v5851ZfDjMCklA6ssR7rRKHUYLAajskmOJ6UMlJj8ATYTIiWUxGBjoyySH9edK8qde74fk3P39JzFe3p/P9/3q88P+Iek/OGe3EeME51AZEBEPatyqF+xLTchxT/hpcvnFq/IMUiXL3Nqvz4G3UT7px82P8YrynoAaIE7p7ausWpn9+oxaj6dNyBU9qcKYxFkv6BMKtqmyNFCf2y3orNTCNf7QETYrjP5nTxcqOgKwpSI7iyevcxVwJ0PjU+gmXJYre69a3gYtNs36+zmlYZKcDIpHshqZcZkQBoCVo1kyUZLMICNx5aBNcADsGJ7pcgB4L/y0UxPQ64CdkXsfF/ztK3xOhAdx3CeGmi+FWUIuAZyKNs1jo7/ThegxfPXUVQ3QF+s6Igbb70JypmgIqrrQBNIl1GTCsxUh0mXvJR5n5ygojU2adSkENIhG54Lyvxb3+ZffIj8rNuUAAAAAElFTkSuQmCC") no-repeat center;
        }
      }
    }
    
    .cryptos {
      color: white;
      
      div {
        display: grid;
        margin: 10px 20px;
        background-image: linear-gradient(to right, #7784b0, #384162);
        grid-template-areas:
        "name value"
        "name amount";
        place-items: center;
        border-radius: 10px;
        box-shadow: 0 0 15px rgba(0,0,0,.3);
        
        h4 {
          grid-area: name;
          margin:0;
        }
        
        .value {
          grid-area: value;
          line-height: 0;
        }
        
        .amount {
          grid-area: amount;
          line-height: 0;
        }
      }
    }
  }
}
View Compiled

External CSS

  1. https://fonts.googleapis.com/css2?family=Poppins:[email protected];200;300;400;500;600;700&display=swap

External JavaScript

This Pen doesn't use any external JavaScript resources.