Uczymy się tworzyć kształt serca wykorzystując tylko CSS oraz pseudo-elementy before i after w kreatywny sposób. Podstawy bardziej zaawansowanego CSSa.

Krok pierwszy – tworzymy element div dla naszego serca:

<body>
    <div class="heart"></div>
</body>

Krok drugi – resetujemy style i tworzymy prosty kwadrat:

 * {
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 }

body {
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: #262626;
}

.heart {
 position: relative;
 width: 100px;
 height: 100px;
 background-color: #ff3838;
}

Krok trzeci – nakładamy dwa kwadraty na nasz kwadrat za pomocą pseudo-elementów before i after, tworząc takie jakby kwadratowe serce o 45 stopni obrócone:

.heart::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: gold;
  transform: translateY(-50%);
}

.heart::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: blueviolet;
  transform: translateX(-50%);
}

Teraz, jeżeli przesuniemy nasz div 0 45 stopni, to zauważymy, że mamy serce ułożone z 3 kwadratów:

.heart {
(...)
transform: rotate(45deg);
}

Jedyne, czego nam brakuje, to elementom before i after nadać zaokrąglenie 50% oraz kolor oryginalnego diva:

.heart::after {
(...)
border-radius: 50%;
background-color: inherit;
}
.heart::before {
(...)
border-radius: 50%;
background-color: inherit;
}