Order summary component - Frontend mentor Solution

Order summary card design using HTML | CSS

preview-image

Hello! Let's see how to design and build a cool card component using Html and Css only.

Order summary component is a real life project and a solution to the challenge inspired from Frontend mentor.  Frontend mentor is a best place to take challenges and practice to build your coding skills by making real life based projects.

Please follow the below code and build something awesome 😎.

HTML Code

filename - index.html
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <link rel="icon" type="image/png" sizes="32x32" href="./images/favicon-32x32.png">

  <title>Frontend Mentor | Order summary card</title>

  <!-- google font -->
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@500;700;900&display=swap" rel="stylesheet">

  <!-- external css styling -->
  <link rel="stylesheet" href="./style.css">
</head>

<body>
  <div class="card-container">
    <header class="card-header">
      <img src="./images/illustration-hero.svg" alt="hero">
    </header>
    <main class="card-main">
      <h1 class="card-title">Order Summary</h1>
      <p class="card-desc">
        You can now listen to millions of songs, audiobooks and podcasts on any device anywhere you like!
      </p>
      <div class="plan-container">
        <div class="icon">
          <img src="./images/icon-music.svg" alt="music-icon">
        </div>
        <div class="plan-desc">
          <h4>Annual Plan</h4>
          <p>$55.99/year</p>
        </div>
        <a href="#">Change</a>
      </div>
      <div class="button-container">
        <button class="btn btn-primary">Proceed to Payment</button>
        <button class="btn">Cancel Order</button>
      </div>
    </main>
  </div>
</body>

</html>

CSS Code

filename - style.css
/* initializing variables */
:root {
  --Pale-blue: hsl(225, 100%, 94%);
  --Bright-blue: hsl(245, 75%, 52%);

  --Very-pale-blue: hsl(225, 100%, 98%);
  --Desaturated-blue: hsl(224, 23%, 55%);
  --Dark-blue: hsl(223, 47%, 23%);
}

/* global default styling */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* body styling */
body {
  min-height: 100vh;
  background-image: url(./images/pattern-background-desktop.svg);
  background-repeat: no-repeat;
  background-size: auto;
  background-size: contain;
  background-position: top center;
  background-color: var(--Pale-blue);
  font-family: 'Red Hat Display', sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
}

p,
.btn {
  color: var(--Desaturated-blue);
}

.card-container {
  position: relative;
  width: 450px;
  max-width: 94%;
  border-radius: 1rem;
  overflow: hidden;
  background: #fff;
  text-align: center;
}

.card-main {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.card-title {
  color: var(--Dark-blue);
  font-weight: 900;
}

.card-desc {
  width: 90%;
  margin-top: 1rem;
}

.plan-container {
  width: 100%;
  padding: 1rem;
  margin: 1.5rem 0;
  display: flex;
  align-items: center;
  background: var(--Very-pale-blue);
  border-radius: 1rem;
}

.plan-desc {
  margin-left: 1rem;
}

.plan-container a {
  margin-left: auto;
}

.button-container {
  width: 100%;
}

/* default button styling */
.btn {
  display: block;
  width: 100%;
  background: none;
  border: none;
  outline: none;
  margin: .75rem 0;
  padding: .75rem;
  font-family: 'Red Hat Display', sans-serif;
  font-weight: 700;
  letter-spacing: .75px;
  cursor: pointer;
}

.btn-primary {
  background: var(--Bright-blue);
  color: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, .3);
}

/* end css */ 

Sources


Code by - AltafAlam Shaikh
Topic covered - flexbox, responsive design in css
Technology used - Html, Css
Font used - Red Hat Display

That is all! Happy coding 🎉.
Post a Comment (0)
Previous Post Next Post