Learn how to design web app using HTML and CSS

Learn how to design web app.

Arjun Ghimire
Arjun Ghimire  

In this article, I will show you how to design web app using HTML and CSS.

# Step 1

<div class="mobileview">
  <div class="container">
    <div class="header">
      <h1>Catalog</h1>
      <div class="tags-group flex-justify-between">
        <div class="tag">Home</div>
        <div class="tag">Office</div>
        <div class="tag">Terrace</div>
        <div class="tag">Club</div>
      </div>
    </div>
    <div class="body">
      <div class="product-group">
        <div class="product-header flex-justify-between">
          <h2>New Arrival of chairs</h2>
          <a href="#">View all</a>
        </div>
        <div class="product-container flex-justify-between">
          <div class="product">
            <div class="product-info">
              <div class="flex-justify-between">
                <p>$908</p>
                <ion-icon name="heart"></ion-icon>
              </div>
            </div>
            <img src="images/sofa1.jpeg" />
            <div class="product-name">Hewitt Chair</div>
          </div>
          <div class="product">
            <div class="product-info">
              <div class="flex-justify-between">
                <p>$908</p>
                <ion-icon name="heart-outline"></ion-icon>
              </div>
            </div>
            <img src="images/sofa2.jpeg" />
            <div class="product-name">Hewitt Chair</div>
          </div>
          <div class="product">
            <div class="product-info">
              <div class="flex-justify-between">
                <p>$908</p>
                <ion-icon name="heart-outline"></ion-icon>
              </div>
            </div>
            <img src="images/sofa3.jpeg" />
            <div class="product-name">Hewitt Chair</div>
          </div>
        </div>
      </div>
      <div class="special-group">
        <div class="product-header">
          <h2>Special offer just for you</h2>
        </div>
        <div class="special-banner">
          <img src="images/banner.webp" alt="Banner" />
          <div class="special-info">
            <h3>5 % discount</h3>
            <p>For a cozy yellow set</p>
            <div class="button flex-center">
              <a href="#">Learn more</a>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="footer">
      <ul class="menu">
        <li>
          <ion-icon name="home-outline"></ion-icon>
        </li>
        <li class="active-menu flex-center">
          <ion-icon name="book-outline"></ion-icon>
        </li>
        <li>
          <ion-icon name="cart-outline"></ion-icon>
        </li>
        <li>
          <ion-icon name="person-outline"></ion-icon>
        </li>
      </ul>
    </div>
  </div>
</div>
<script src="https://unpkg.com/ionicons@5.0.0/dist/ionicons.js"></script>

# Step 2

@import url('https://fonts.googleapis.com/css2?family=Overpass:wght@100;200;300;400;500;600;700;800;900&display=swap');

:root {
  --bg: #e4eefb;
  --primary: #030a4e;
  --secondary: #f3f3f3;
  --black: #000000;
  --white: #ffffff;
  --accent: #8ea0b9;
}

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  font-family: 'Overpass', sans-serif;
}

body {
  min-height: 100vh;
  background: var(--bg);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

/* Style the mobile layout */
.mobileview {
  height: 650px;
  width: 360px;
  border-radius: 1rem;
  background-color: var(--white);
  display: flex;
  box-shadow: 0 0 10px rgba(142, 160, 185, 0.1);
  overflow: hidden;
}

/*Start of common class */
.flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

.flex-justify-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tag {
  background-color: var(--secondary);
  border-radius: 40px;
  padding: 8px 16px;
}

/* End of common class */

.container {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.5rem;
  width: 100%;
}

.header {
  flex: 0.2;
  width: 320px;
}

.header h1 {
  color: var(--primary);
}

.tags-group {
  margin-top: 6px;
}

.body {
  flex: 0.8;
}

.product-header h2 {
  font-weight: 400;
  color: var(--primary);
}

.product-header a {
  color: var(--primary);
  font-size: 14px;
  text-decoration: none;
}

.product-container {
  margin: 18px 0;
}

.product {
  margin-right: 14px;
  height: 200px;
  background-color: var(--secondary);
  justify-content: center;
  align-items: center;
  display: flex;
  padding: 5px;
  border-radius: 30px;
  position: relative;
}

.product img {
  border-radius: 20px;
  height: auto;
  width: 130px;
}

.product-name {
  position: absolute;
  bottom: 10px;
  font-weight: 600;
  color: var(--primary);
}

.product-info {
  position: absolute;
  top: 15px;
  left: 20px;
  width: 100px;
}
.product-info p {
  font-size: 18px;
  color: var(--primary);
  font-weight: 700;
}

.product-info ion-icon {
  font-size: 22px;
}

.special-banner {
  position: relative;
}
.special-banner img {
  border-radius: 20px;
  height: 130px;
  object-fit: cover;
  margin: 10px 0;
  width: 100%;
}
.special-info {
  position: absolute;
  top: 30px;
  left: 30px;
  color: var(--white);
}
.special-info h3,
.special-info p {
  margin: 5px 0;
}
.button {
  background-color: var(--primary);
  height: 30px;
  width: 100px;
  border-radius: 20px;
}

.button a {
  text-decoration: none;
  color: var(--white);
  font-size: 12px;
}

.footer {
}

.menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.menu li {
  text-decoration: none;
  color: var(--accent);
  font-size: 1.6rem;
  cursor: pointer;
}

.active-menu {
  background-color: var(--primary);
  border-radius: 100%;
  height: 50px;
  width: 50px;
  color: var(--white) !important;
}
Live preview Download source code

Share with