π¨ Inspiration
For this CSS Art challenge, I created a visual titled βUnity in Juneβ β a symbolic bouquet that blends together multiple celebrations happening in June.
Each element in the bouquet represents a meaningful or fun observance:
- π Pride Ribbon β Pride Month
- π Necktie β Fatherβs Day
- βπΏ Raised Fist β Juneteenth
- π© Pink Donut β National Donut Day
- π Painted Fingernail β National Nail Polish Day
- π° Cake Slice β National Hazelnut Cake Day
I wanted to visually show how beautifully diverse June is by bringing all these elements together into one cohesive and inclusive bouquet.
π§ͺ DemoΒ
πΈ Screenshot Preview
File Structure:
unity-in-june/
βββ index.html
βββ styles.css
π€ index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>Unity in June β CSS Art</title>
  <link rel="stylesheet" href="styles.css" />
</head>
<body>
  <div class="bouquet">
    <div class="item pride-ribbon"></div>
    <div class="item necktie"></div>
    <div class="item fist"></div>
    <div class="item donut"></div>
    <div class="item nail"></div>
    <div class="item cake"></div>
    <div class="wrapper"></div>
  </div>
</body>
</html>
π¨ styles.css
body {
  background: #f0f8ff;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  margin: 0;
}
.bouquet {
  position: relative;
  width: 300px;
  height: 400px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}
.item {
  position: absolute;
  width: 60px;
  height: 60px;
  border-radius: 50%;
}
/* π Pride Ribbon */
.pride-ribbon {
  top: 20px;
  left: 30%;
  background: linear-gradient(to right, red, orange, yellow, green, blue, purple);
  transform: rotate(-15deg);
}
/* π Necktie */
.necktie {
  top: 80px;
  left: 60%;
  width: 20px;
  height: 80px;
  background: #3b5998;
  clip-path: polygon(50% 0%, 100% 30%, 80% 100%, 20% 100%, 0% 30%);
}
/* βπΏ Juneteenth Fist */
.fist {
  top: 140px;
  left: 20%;
  background: #2f2f2f;
  box-shadow: inset -5px 0 0 0 #000;
}
/* π© Donut */
.donut {
  top: 60px;
  left: 5%;
  background: pink;
  box-shadow: inset 0 0 0 10px #fff;
  border: 3px dashed #d6336c;
}
/* π
 Nail */
.nail {
  top: 170px;
  left: 75%;
  width: 20px;
  height: 40px;
  background: #ff69b4;
  border-radius: 10px 10px 0 0;
  transform: rotate(20deg);
}
/* π° Cake */
.cake {
  top: 120px;
  left: 45%;
  width: 60px;
  height: 40px;
  background: #deb887;
  clip-path: polygon(0 100%, 0 60%, 50% 0, 100% 60%, 100% 100%);
  box-shadow: inset 0 -10px 0 #fff8dc;
}
/* π Wrapper (Heart-shaped paper) */
.wrapper {
  position: absolute;
  bottom: 0;
  width: 180px;
  height: 150px;
  background: palevioletred;
  border-radius: 50% 50% 0 0;
  transform: translateY(50%) rotate(45deg);
  z-index: -1;
}
π JourneyΒ
This was one of the most creatively satisfying CSS projects Iβve done. I had a blast figuring out how to represent complex ideas using only HTML elements and CSS shapes β no SVG, no JS, and no images.
π― What I learned:
- Clever use of clip-pathandbox-shadowcan create surprisingly recognizable art
- Each shape challenged me to think spatially β like fitting puzzle pieces
- Accessibility is always on my mind β next time I plan to include semantic HTML and ARIA where possible
β I'm proud that itβs 100% CSS art β no frameworks, just clean and shareable code.
π¨ Next Steps:
- Add light animation (confetti? hover wobbles?)
- Turn each element into a reusable divcomponent for future CSS Art
π‘οΈ License: MIT
π Thanks to the DEV community for running these creative challenges!
 
 
              
 
    
Top comments (0)