BABYMONSTER — MOON
A soft crescent moon cradling a tiny star, with a sky-blue glow and gentle twinkles. A generic celestial study inspired by the trending mood of the new release — no names, no likenesses, just moonlight.
This coded drawing is a fan-art practice example created for educational purposes only. It is a generic celestial study inspired by a trending music release; it does not depict any artist, logo, or album artwork. BABYMONSTER and related properties belong to YG Entertainment. CoDoodle is not affiliated with, endorsed by, or sponsored by YG Entertainment.
← you, in 25 minutes.
what you'll build
Here's the plan
A soft crescent moon cradling a tiny star on a navy night sky. The moon breathes gently, the star twinkles, and a sky-blue glow pulses around the scene — a calm celestial study inspired by a trending music mood.
You’ll learn
- Drawing a crescent moon from a single path with an inner curve
- Adding subtle craters with low-opacity circles
- Layering a glow ring behind a central shape
- Timing slow breathing and twinkling loops so the night feels calm
- Skill level
- Beginner
- Time
- ~25 min
- Tools
- Just a browser
- Code type
- SVG + CSS
- Lines
- ~86
the steps
Build it, one change at a time
Paint the night sky
Start with a deep navy rounded square and a few tiny distant stars. The background is dark so the cream moon will read clearly against it.
<svg class="bm" viewBox="0 0 200 200" width="200" height="200" role="img" aria-label="Deep night sky stage"> <rect x="0" y="0" width="200" height="200" rx="18" fill="#2B3A55" stroke="none"/> <circle cx="42" cy="48" r="2" fill="#FFFDF7" opacity="0.7"/> <circle cx="168" cy="54" r="2.2" fill="#FFFDF7" opacity="0.55"/> <circle cx="152" cy="152" r="1.8" fill="#FFFDF7" opacity="0.65"/> <circle cx="36" cy="142" r="1.6" fill="#FFFDF7" opacity="0.5"/> </svg>a quiet night, a few stars, waiting for the moon.
Shape the crescent moon
The crescent is one path: an outer arc for the moon and an inner arc that cuts away the dark side. Fill it cream and outline it with thick navy ink so it pops off the sky.
<g class="bm-moon" fill="#FFFDF7" stroke="#2B3A55" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"> <path d="M100 46 C134 46 154 74 154 102 C154 134 130 158 100 158 C78 158 62 144 62 144 C90 144 110 122 110 96 C110 70 90 52 62 52 C62 52 78 46 100 46 Z"/> </g>one cream crescent, already glowing against the navy.
Add craters, star, and glow
Add tiny low-opacity craters on the moon, a four-pointed sunshine star tucked in the crescent, and a soft sky-blue glow ring behind everything. These details turn a simple moon into a small scene.
<!-- craters --> <circle cx="128" cy="92" r="4" fill="#2B3A55" opacity="0.12" stroke="none"/> <circle cx="118" cy="122" r="3" fill="#2B3A55" opacity="0.1" stroke="none"/> <circle cx="138" cy="114" r="2" fill="#2B3A55" opacity="0.1" stroke="none"/> <!-- star --> <g class="bm-star" fill="#FFD84D" stroke="#2B3A55" stroke-width="2.2" stroke-linejoin="round"> <path d="M138 72 L141 81 L138 90 L135 81 Z"/> <circle cx="140" cy="78" r="1.6" fill="#FFFDF7" stroke="none"/> </g> <!-- glow ring --> <circle class="bm-glow" cx="100" cy="102" r="62" fill="none" stroke="#6FA8FF" stroke-width="2" opacity="0.18"/>craters, a cradled star, and a soft moon glow.
Make it breathe and twinkle
The moon scales gently in place, the star twinkles with scale and opacity, and the glow ring pulses. Slow durations keep the night scene calm instead of flashy.
@media (prefers-reduced-motion: no-preference) { .bm .bm-moon { transform-box: fill-box; transform-origin: center; animation: bm-breathe 4s ease-in-out infinite; } .bm .bm-star { transform-box: fill-box; transform-origin: center; animation: bm-twinkle 2.4s ease-in-out infinite; } .bm .bm-glow { animation: bm-pulse 4s ease-in-out infinite; } } @keyframes bm-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } } @keyframes bm-twinkle { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.75; transform: scale(1.12); } } @keyframes bm-pulse { 0%, 100% { opacity: 0.12; } 50% { opacity: 0.22; } }a gentle moon, a twinkling star, a calm night.
the complete code
Everything, in one place
Skipped straight to the end? Welcome. Copy the whole thing, download it, or open it in the Playground to start remixing.
<svg class="bm" viewBox="0 0 200 200" width="200" height="200" role="img" aria-label="A crescent moon gently glowing while cradling a twinkling star">
<rect x="0" y="0" width="200" height="200" rx="18" fill="#2B3A55" stroke="none"/>
<circle cx="42" cy="48" r="2" fill="#FFFDF7" opacity="0.7"/>
<circle cx="168" cy="54" r="2.2" fill="#FFFDF7" opacity="0.55"/>
<circle cx="152" cy="152" r="1.8" fill="#FFFDF7" opacity="0.65"/>
<circle cx="36" cy="142" r="1.6" fill="#FFFDF7" opacity="0.5"/>
<g class="bm-moon" fill="#FFFDF7" stroke="#2B3A55" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
<path d="M100 46 C134 46 154 74 154 102 C154 134 130 158 100 158 C78 158 62 144 62 144 C90 144 110 122 110 96 C110 70 90 52 62 52 C62 52 78 46 100 46 Z"/>
<circle cx="128" cy="92" r="4" fill="#2B3A55" opacity="0.12" stroke="none"/>
<circle cx="118" cy="122" r="3" fill="#2B3A55" opacity="0.1" stroke="none"/>
<circle cx="138" cy="114" r="2" fill="#2B3A55" opacity="0.1" stroke="none"/>
</g>
<g class="bm-star" fill="#FFD84D" stroke="#2B3A55" stroke-width="2.2" stroke-linejoin="round">
<path d="M138 72 L141 81 L138 90 L135 81 Z"/>
<circle cx="140" cy="78" r="1.6" fill="#FFFDF7" stroke="none"/>
</g>
<circle class="bm-glow" cx="100" cy="102" r="62" fill="none" stroke="#6FA8FF" stroke-width="2" opacity="0.18"/>
</svg>
tips & gotchas
Mistakes we actually made
I draw the crescent as one continuous path so the inner curve stays smooth and the fill is unbroken.
The glow ring sits behind the moon in the SVG order so it frames the moon without drawing over it.
Tiny craters use 10–12% opacity navy so they read as texture, not holes.
I keep all durations at 2.4s or longer because fast twinkles make a night scene feel like a disco.
make it yours
Remix it
- Add more starseasy
Scatter five more tiny stars and stagger their twinkle delays.
- Phase the moonmedium
Animate the inner curve path over time so the crescent appears to wax and wane.
- Make a night sky backgroundmedium
Add a few constellations with dashed lines connecting the distant stars.
challenge extension
Build a tiny lunar cycle animation: show the same moon transitioning from thin crescent to full and back using stroke-dashoffset on a circle outline.
keep sketching
More tutorials to try
Pick another small recipe and borrow one technique for your next doodle.
- Ariana Grande: PetalSVG + CSS · fan-art + pop-star · animation tutorial
- Avatar: Seven HavensSVG + CSS · fan-art + fantasy · animation tutorial
- Avengers: DoomsdaySVG + CSS · fan-art + superhero · animation tutorial
- Batwara 1947SVG + CSS · fan-art + history · animation tutorial
- BulbasaurSVG + CSS · paths + fan-art · animation tutorial