Обычно для таких эффектов используют изображения, SVG, canvas или JavaScript.
Мне стало интересно, насколько далеко можно зайти, если ограничиться только HTML и CSS - без единой картинки и без скриптов. В результате получилась небольшая сцена: светящаяся Луна, мягкое ночное небо, кратеры, звёзды и лёгкая анимация движения. Всё это - средствами CSS. Полный исходный код проекта с комментариями я выложил отдельно - ссылку оставил в конце статьи. Ниже - видео, где я шаг за шагом собираю эту анимацию, используя только HTML и CSS. Цель была простой:
не повторить чей-то эффект, а собрать визуально правдоподобную сцену, используя только базовые возможности CSS. Без: Только: Объём Луны создаётся за счёт радиальных градиентов.
Светлая область смещена, чтобы появился эффект освещения, а края постепенно затемняются - так появляется ощущение сферы. Кратеры - это несколько слоёв с разной прозрачностью и небольшим смещением.
Визуально они выглядят сложными, но на самом деле это всё те же градиен