%main#solar
.comet
#bears
#sun
#mercury
#venus
#earth
#mars
#jupiter
#saturn
%span
#uranus
#neptune
#pluto
%code Code by Sparklingman ©2021
View Compiled
:root {
--beige: #f3c687;
--blueGrey: #3c4e7f;
--blueLight: #8beaf3;
--blueMet: #485881;
--brown: #a0754b;
--darkPink: #940670;
--darkPurple: #662d90;
--dodgerblue: #1e90ff;
--grey: #292829;
--orange: #f5a14f;
--khaki: #f0e68c;
--pink: #ffc0cb;
--pinkDark: #c56a9c;
--indigo: #1b1464;
--red: #9c3f3f;
--redish: #c74c43;
--springgreen: #00ff7f;
--tea: #0b8429;
--white: #fff;
--whiteOpacity: #ffffff30;
--whiteOpacity75: #ffffff75;
--timeSolar: 1s * 1.618033;
}
*,
*::after,
*::before,
html,
body {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
background-color: var(--indigo);
}
body {
background: radial-gradient(circle at 50% 50%, var(--indigo), transparent),
radial-gradient(circle at 50% 80%, var(--darkPink), transparent 33%),
radial-gradient(circle at 80% 20%, var(--dodgerblue), transparent 33%),
radial-gradient(circle at 0% 20%, var(--indigo), transparent 33%),
radial-gradient(circle at -15% -15%, var(--darkPurple), var(--indigo));
display: grid;
font: normal 1.2vmin/1 monospace;
height: 100vh;
place-items: center;
}
s {
text-decoration: none;
}
main {
display: grid;
height: 100vh;
place-items: center;
position: relative;
width: 100vw;
}
#stars {
height: 100vh;
overflow: hidden;
position: absolute;
left: 0;
top: 0;
width: 100vw;
}
#stars s {
color: var(--white);
font-size: 1vmin;
opacity: 0.5;
position: absolute;
}
#stars > *:nth-child(2n) {
color: var(--pink);
opacity: 1;
}
#stars > *:nth-child(5n) {
color: var(--khaki);
}
.comet {
border-radius: 100%;
display: grid;
height: 0.2vmin;
left: 25vmin;
overflow: hidden;
place-items: center;
position: relative;
transform: rotate(-45deg);
width: 10vmin;
}
.comet::after {
animation: comet 10s 1s linear infinite;
background: var(--white);
box-shadow: 0.5vmin 0 1vmin 0.5vmin var(--white);
border-radius: 100%;
content: "";
height: 0.3vmin;
position: absolute;
right: -100%;
width: 0.3vmin;
}
@keyframes comet {
0% {
right: -100%;
}
100% {
right: 2000%;
}
}
#bears {
left: 15vmin;
position: absolute;
top: 15vmin;
/* transform: scale(.6); */
}
#ursaMinor {
display: grid;
height: 20vmin;
place-items: center;
position: relative;
transform: rotate(140deg);
width: 28vmin;
}
#ursaMinor s {
position: absolute;
}
#ursaMinor s:nth-child(1) {
border-top: 0.2vmin dotted var(--whiteOpacity);
display: flex;
height: 1vmin;
justify-content: space-between;
position: relative;
transform: rotate(45deg) translate(-9vmin, 0vmin);
width: 4vmin;
}
#ursaMinor s:nth-child(1)::after {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
position: relative;
top: -0.3vmin;
width: 0.5vmin;
}
#ursaMinor s:nth-child(1)::before {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.8vmin;
position: relative;
top: -0.5vmin;
width: 0.8vmin;
}
#ursaMinor s:nth-child(2) {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
transform: translate(-1.6vmin, -3vmin);
width: 0.5vmin;
}
#ursaMinor s:nth-child(2)::after {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(37deg) translate(-3.2vmin, 1.2vmin);
width: 3.5vmin;
}
#ursaMinor s:nth-child(2)::before {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(8deg) translate(0.2vmin, 0.4vmin);
width: 3.5vmin;
}
#ursaMinor s:nth-child(3) {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
transform: translate(2vmin, -2.4vmin);
width: 0.5vmin;
}
#ursaMinor s:nth-child(3)::after {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(83deg) translate(1.4vmin, 1vmin);
width: 2.5vmin;
}
#ursaMinor s:nth-child(3)::before {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(-5deg) translate(0, -0.2vmin);
width: 5vmin;
}
#ursaMinor s:nth-child(4) {
background-color: var(--white);
border-radius: 100%;
height: 0.5vmin;
transform: translate(2.4vmin, 0.6vmin);
width: 0.5vmin;
}
#ursaMinor s:nth-child(4)::after {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(-4deg) translate(0vmin, 0vmin);
width: 5.8vmin;
}
#ursaMinor s:nth-child(4)::before {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
position: absolute;
transform: translate(5.6vmin, -0.4vmin);
width: 0.5vmin;
}
#ursaMinor s:nth-child(5) {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.8vmin;
position: absolute;
transform: translate(7vmin, -2.8vmin);
width: 0.8vmin;
}
#ursaMinor s:nth-child(5)::after {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(70deg) translate(1.4vmin, 1.1vmin);
width: 2.6vmin;
}
#ursaMajor {
display: grid;
height: 20vmin;
place-items: center;
position: relative;
width: 28vmin;
}
#ursaMajor s {
position: absolute;
}
#ursaMajor s:nth-child(1) {
border-top: 0.2vmin dotted var(--whiteOpacity);
display: flex;
height: 1vmin;
justify-content: space-between;
position: relative;
transform: rotate(-15deg) translate(-10vmin, -5vmin);
width: 5vmin;
}
#ursaMajor s:nth-child(1)::after {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
position: relative;
top: -0.3vmin;
width: 0.5vmin;
}
#ursaMajor s:nth-child(1)::before {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
position: relative;
top: -0.3vmin;
width: 0.5vmin;
}
#ursaMajor s:nth-child(2) {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
transform: translate(-4vmin, -2vmin);
width: 0.5vmin;
}
#ursaMajor s:nth-child(2)::after {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(12deg) translate(-4.8vmin, 0.6vmin);
width: 5vmin;
}
#ursaMajor s:nth-child(2)::before {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(8deg) translate(0vmin, 0.5vmin);
width: 5vmin;
}
#ursaMajor s:nth-child(3) {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
transform: translate(0.5vmin, -1.4vmin);
width: 0.5vmin;
}
#ursaMajor s:nth-child(3)::after {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(83deg) translate(1.4vmin, 1.8vmin);
width: 4vmin;
}
#ursaMajor s:nth-child(3)::before {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(-5deg) translate(0, -0.2vmin);
width: 8vmin;
}
#ursaMajor s:nth-child(4) {
background-color: var(--white);
border-radius: 100%;
height: 0.5vmin;
transform: translate(1vmin, 2vmin);
width: 0.5vmin;
}
#ursaMajor s:nth-child(4)::after {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(2deg) translate(0vmin, 0.3vmin);
width: 7vmin;
}
#ursaMajor s:nth-child(4)::before {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
position: absolute;
transform: translate(6.4vmin, 0.2vmin);
width: 0.5vmin;
}
#ursaMajor s:nth-child(5) {
background-color: var(--white);
border-radius: 100%;
content: "";
height: 0.5vmin;
position: absolute;
transform: translate(8.2vmin, -2vmin);
width: 0.5vmin;
}
#ursaMajor s:nth-child(5)::after {
border-top: 0.2vmin dotted var(--whiteOpacity);
content: "";
height: 0.2vmin;
position: absolute;
transform: rotate(99deg) translate(2.4vmin, 2.2vmin);
width: 4.5vmin;
}
#sun {
background: radial-gradient(circle at 60% 0%, var(--orange), #f5a14f00 45%),
radial-gradient(circle at 75% 75%, var(--orange), var(--khaki));
border-radius: 100%;
box-shadow: 0 0 10vmin var(--khaki);
height: 10vmin;
position: absolute;
width: 10vmin;
}
#mercury {
animation: mercury calc(var(--timeSolar) * 4) linear infinite;
background: radial-gradient(
circle at 10% 10%,
var(--beige),
var(--darkPurple)
);
border-radius: 100%;
height: 2vmin;
position: absolute;
transform: rotate(0deg) translate(8vmin, 0);
width: 2vmin;
}
@keyframes mercury {
100% {
transform: rotate(360deg) translate(8vmin, 0);
}
}
#venus {
animation: venus calc(var(--timeSolar) * 5) linear infinite;
background: radial-gradient(
circle at 75% 33%,
transparent 40%,
var(--orange) 40%,
var(--whiteOpacity) 50%,
var(--orange) 50%,
var(--whiteOpacity) 70%,
var(--whiteOpacity) 70%,
transparent
),
radial-gradient(circle at 30% 30%, var(--beige), var(--beige));
border-radius: 100%;
height: 3vmin;
overflow: hidden;
position: absolute;
transform: rotate(0deg) translate(12vmin, 0);
width: 3vmin;
}
@keyframes venus {
100% {
transform: rotate(360deg) translate(12vmin, 0);
}
}
#earth {
animation: earth calc(var(--timeSolar) * 6) linear infinite;
background: repeating-radial-gradient(
circle at 75% 15%,
var(--whiteOpacity) 0%,
var(--whiteOpacity75) 15%,
var(--whiteOpacity) 30%
),
radial-gradient(circle at 20% 90%, var(--tea) 15%, transparent 15%),
radial-gradient(circle at 45% 25%, var(--tea) 15%, transparent 15%),
radial-gradient(circle at 75% 0%, var(--tea) 35%, transparent 35%),
radial-gradient(circle at 0% 40%, var(--tea) 25%, transparent 25%),
radial-gradient(circle at 50% 60%, var(--tea) 20%, transparent 20%),
radial-gradient(circle at 60% 80%, var(--tea) 15%, transparent 15%),
radial-gradient(circle at 65% 65%, var(--tea) 15%, transparent 15%),
radial-gradient(circle at 55% 90%, var(--tea) 8%, transparent 8%),
radial-gradient(circle at 80% 90%, var(--tea) 5%, transparent 5%),
radial-gradient(circle at 85% 45%, var(--tea) 10%, transparent 10%),
var(--dodgerblue);
border-radius: 100%;
display: grid;
height: 3vmin;
place-items: center;
position: absolute;
transform: rotate(0deg) translate(16vmin, 0);
width: 3vmin;
}
@keyframes earth {
100% {
transform: rotate(360deg) translate(16vmin, 0);
}
}
#mars {
animation: mars calc(var(--timeSolar) * 7) linear infinite;
background: repeating-radial-gradient(
circle at 105% -5%,
transparent 76%,
var(--red) 82%,
transparent 98%
),
radial-gradient(
circle at 105% -5%,
var(--redish),
var(--orange),
var(--red),
var(--redish)
);
border-radius: 100%;
height: 2.5vmin;
position: absolute;
transform: rotate(0deg) translate(20vmin, 0);
width: 2.5vmin;
}
@keyframes mars {
100% {
transform: rotate(360deg) translate(20vmin, 0);
}
}
#jupiter {
animation: jupiter calc(var(--timeSolar) * 8) linear infinite;
background: radial-gradient(
circle at 105% -50%,
var(--grey) 38%,
var(--brown) 50%,
var(--grey) 60%,
var(--blueLight),
var(--brown),
var(--blueMet),
var(--grey) 90%
);
border-radius: 100%;
height: 5vmin;
position: absolute;
transform: rotate(0deg) translate(25vmin, 0);
width: 5vmin;
}
@keyframes jupiter {
100% {
transform: rotate(360deg) translate(25vmin, 0);
}
}
#saturn {
animation: saturn calc(var(--timeSolar) * 9) linear infinite;
position: absolute;
transform: rotate(0deg) translate(30vmin, 0);
}
@keyframes saturn {
100% {
transform: rotate(360deg) translate(30vmin, 0);
}
}
#saturn span {
background: radial-gradient(
circle at 10% 10%,
var(--brown) 10%,
var(--khaki) 20%,
var(--orange) 30%,
var(--beige) 40%,
var(--brown) 60%,
var(--grey)
);
border-radius: 50%;
display: grid;
height: 4vmin;
place-items: center;
position: absolute;
width: 4vmin;
}
#saturn span::after,
#saturn span::before {
border: 2vmin solid var(--brown);
border-radius: 100%;
box-sizing: content-box;
content: "";
height: 6vmin;
position: absolute;
transform: rotateX(50deg) rotateY(125deg);
width: 6vmin;
}
#saturn span::after {
z-index: -1;
}
#saturn span::before {
border-right-color: transparent;
border-top-color: transparent;
}
#uranus {
animation: uranus calc(var(--timeSolar) * 10) linear infinite;
background: radial-gradient(
circle at 24% -76%,
var(--pinkDark) 5%,
var(--darkPurple),
var(--indigo) 60%,
var(--darkPurple) 70%,
var(--blueLight) 95%
);
border-radius: 100%;
height: 4vmin;
position: absolute;
transform: rotate(0deg) translate(38vmin, 0);
width: 4vmin;
}
@keyframes uranus {
100% {
transform: rotate(360deg) translate(38vmin, 0);
}
}
#neptune {
animation: neptune calc(var(--timeSolar) * 11) linear infinite;
background: radial-gradient(
circle at 40% -40%,
var(--blueLight) 15%,
var(--blueMet),
var(--indigo) 65%,
var(--blueMet),
var(--blueGrey),
var(--indigo) 96%
);
border-radius: 100%;
height: 2.8vmin;
position: absolute;
transform: rotate(0deg) translate(43vmin, 0);
width: 2.8vmin;
}
@keyframes neptune {
100% {
transform: rotate(360deg) translate(43vmin, 0);
}
}
#pluto {
animation: pluto calc(var(--timeSolar) * 12) linear infinite;
background: radial-gradient(
circle at 10% 10%,
var(--beige),
var(--grey),
var(--brown)
);
border-radius: 100%;
height: 2vmin;
position: absolute;
transform: rotate(0deg) translate(47vmin, 0);
width: 2vmin;
}
@keyframes pluto {
100% {
transform: rotate(360deg) translate(47vmin, 0);
}
}
code {
bottom: 5vh;
color: var(--springgreen);
position: fixed;
text-align: center;
width: 100vw;
z-index: 10;
}
let stars = document.createElement('div')
stars.setAttribute('id', 'stars')
solar.prepend(stars)
for (let i = 0; i < 200; i++) {
let star = document.createElement('s')
star.innerHTML = "★"
let left = Math.floor(Math.random() * (100 - 0) + 0)
let top = Math.floor(Math.random() * (100 - 0) + 0)
star.style.transform = 'translate(' + left + 'vw,' + top + 'vh)'
star.style.transform += 'scale(' + Math.random() * (2 - 1) + ')'
star.style.transform += 'rotate(' + Math.floor(Math.random() * (90 - 0) + 0) + 'deg)'
stars.prepend(star)
}
let ursaMajor = document.createElement('s')
ursaMajor.setAttribute('id', 'ursaMajor')
for (let j = 0; j < 5; j++) {
let bearsStar = document.createElement('s')
ursaMajor.prepend(bearsStar)
}
bears.append(ursaMajor)
let ursaMinor = ursaMajor.cloneNode(true)
ursaMinor.setAttribute('id', 'ursaMinor')
bears.prepend(ursaMinor)
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.