Pular para o conteúdo principal

Tutorial: Criando um Sistema Solar Animado com HTML e CSS

Imagem do Sistema Solar


Neste tutorial, você aprenderá a criar uma simulação animada do Sistema Solar usando apenas HTML e CSS. Este é um excelente exercício para praticar suas habilidades de estilização e animação.

Pré-requisitos

Certifique-se de ter:

  • Um editor de código (ex.: VS Code).
  • Conhecimento básico de HTML e CSS.

Veja o projeto em funcionamento neste link. Sistema Solar Completo

Veja o vídeo no YouTube:

Passo 1: Estrutura do Projeto

Crie os seguintes arquivos no seu ambiente local:

  • index.html: O arquivo HTML com a estrutura do sistema solar.
  • style.css: O arquivo CSS para estilização e animação.

1. Arquivo index.html

Adicione o seguinte código ao seu arquivo index.html:



<!DOCTYPE html>

<html lang="pt-br">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Sistema Solar</title>

    <link rel="stylesheet" href="style.css">

</head>

<body>

<div class="solar-system">

    <div id="sun"></div>

    <div class="orbit mercury-orbit"></div>

    <div class="mercury-spin">

        <div id="mercury"></div>

    </div>

    <div class="orbit venus-orbit"></div>

    <div class="venus-spin">

        <div id="venus"></div>

    </div>

    <div class="orbit earth-orbit"></div>

    <div class="earth-spin">

        <div class="orbit moon-orbit"></div>

        <div class="moon-spin">

            <div id="moon"></div>

        </div>

        <img src="https://i.ibb.co/PMRQCc6/earth.png" id="earth" />

    </div>

    <div class="orbit mars-orbit"></div>

    <div class="mars-spin">

        <div id="mars"></div>

    </div>

    <div class="orbit jupiter-orbit"></div>

    <div class="jupiter-spin">

        <div id="jupiter"></div>

    </div>

    <div class="orbit saturn-orbit"></div>

    <div class="saturn-spin">

        <div id="saturn"></div>

    </div>

    <div class="orbit uranus-orbit"></div>

    <div class="uranus-spin">

        <div id="uranus"></div>

    </div>

    <div class="orbit neptune-orbit"></div>

    <div class="neptune-spin">

        <div id="neptune"></div>

    </div>

</div>

</body>

</html>

2. Arquivo style.css

Agora, adicione o seguinte código ao arquivo style.css:



html, body {

    background-color: #121215;

}

.solar-system {

    position: relative;

    width: 1600px;

    height: 1600px;

    margin: auto;

    overflow: hidden;

}

.orbit {

    border: 1px dashed #666;

}

#sun, .orbit, .orbit + div, .orbit + div > div {

    position: absolute;

}

#sun, .orbit, .orbit + div {

    top: 50%;

    left: 50%;

}

.orbit + div > div {

    top: 0;

    left: 50%;

}

.orbit, .orbit + div div, #earth {

    border-radius: 50%;

}

#sun {

    height: 150px;

    width: 150px;

    background-color: #fae20a;

    margin-top: -75px;

    margin-left: -75px;

    border-radius: 50%;

    box-shadow: 0 0 80px orange;

}

#earth {

    position: absolute;

    top: 0;

    left: 50%;

    height: 50px;

    width: 50px;

    margin-left: -25px;

    margin-top: -25px;

    border-radius: 50%;

    box-shadow: 0 0 30px #3a4385;

}

.earth-orbit, .earth-spin {

    width: 500px;

    height: 500px;

    margin-left: -250px;

    margin-top: -250px;

}

#moon {

    margin-top: -6px;

    margin-left: -6px;

    height: 12px;

    width: 12px;

    border-radius: 50%;

    background-color: white;

    box-shadow: 0 0 15px #3a4385;

}

.moon-orbit, .moon-spin {

    height: 90px;

    width: 90px;

    margin-top: -45px;

    margin-left: -45px;

    border-color: #447;

}

#venus {

    margin-top: -20px;

    margin-left: -20px;

    height: 40px;

    width: 40px;

    background-color: #C89104;

    box-shadow: 0 0 30px #3a4385;

}

.venus-orbit, .venus-spin {

    margin-top: -185px;

    margin-left: -185px;

    height: 370px;

    width: 370px;

}

#mercury {

    margin-top: -13.5px;

    margin-left: -13.5px;

    height: 25px;

    width: 25px;

    background-color: #5A3437;

    box-shadow: 0 0 30px #3a4385;

}

.mercury-orbit, .mercury-spin {

    width: 280px;

    height: 280px;

    margin-top: -140px;

    margin-left: -140px;

}

#mars {

    margin-top: -26px;

    margin-left: -26px;

    height: 60px;

    width: 60px;

    border-radius: 50%;

    background-color: #863222;

    box-shadow: 0 0 15px #a64232;

}

.mars-orbit, .mars-spin {

    width: 700px;

    height: 700px;

    margin-top: -350px;

    margin-left: -350px;

}

#jupiter {

    margin-top: -45px;

    margin-left: -45px;

    height: 90px;

    width: 90px;

    background-color: #d4a15a;

    box-shadow: 0 0 30px #b07d39;

}

.jupiter-orbit, .jupiter-spin {

    width: 900px;

    height: 900px;

    margin-top: -450px;

    margin-left: -450px;

}

#saturn {

    margin-top: -40px;

    margin-left: -40px;

    height: 80px;

    width: 80px;

    background-color: #F0A41C;

    box-shadow: 0 0 30px #b07d39;

}

.saturn-orbit, .saturn-spin {

    width: 1100px;

    height: 1100px;

    margin-top: -550px;

    margin-left: -550px;

}

#uranus {

    margin-top: -35px;

    margin-left: -35px;

    height: 70px;

    width: 70px;

    background-color: #0CB4B6;

    box-shadow: 0 0 30px #397db0;

}

.uranus-orbit, .uranus-spin {

    width: 1300px;

    height: 1300px;

    margin-top: -650px;

    margin-left: -650px;

}

#neptune {

    margin-top: -33px;

    margin-left: -33px;

    height: 66px;

    width: 66px;

    background-color: #405d93;

    box-shadow: 0 0 30px #2d3f6f;

}

.neptune-orbit, .neptune-spin {

    width: 1500px;

    height: 1500px;

    margin-top: -750px;

    margin-left: -750px;

}

@keyframes spin-right {

    100% {

        transform: rotate(360deg);

    }

}

.earth-spin {

    animation: spin-right 20s linear infinite;

}

.moon-spin {

    animation: spin-right 5s linear infinite;

}

.venus-spin {

    animation: spin-right 15s linear infinite;

}

.mercury-spin {

    animation: spin-right 10s linear infinite;

}

.mars-spin {

    animation: spin-right 30s linear infinite;

}

.jupiter-spin {

    animation: spin-right 35s linear infinite;

}

.saturn-spin {

    animation: spin-right 45s linear infinite;

}

.uranus-spin {

    animation: spin-right 55s linear infinite;

}

.neptune-spin {

    animation: spin-right 65s linear infinite;

}

        

Passo 2: Visualizando o Projeto

Abra o arquivo index.html no navegador. Você verá o Sol no centro, com os planetas girando ao redor em órbitas circulares, incluindo a Lua girando em torno da Terra.

Se preferir,  os códigos estão no meu Repositório no GitHub

Conclusão

Você criou um Sistema Solar animado utilizando apenas HTML e CSS. Esse projeto demonstra como usar animações CSS e posicionamento absoluto para criar simulações visuais dinâmicas.

Se gostou, compartilhe este tutorial e crie sua própria versão personalizada do Sistema Solar!

Comentários

Mais vistas

Autocode - Significado e Funcionalidade

O Que é Autocode? O Autocode foi uma das primeiras linguagens de programação de computador, desenvolvida em 1952 por Alick Glennie para o computador Mark 1 na Universidade

Semáforo - HTML, CSS e JavaScript - Tutorial

Semáforo Funcional: Aprenda a criar um semáforo funcional com este tutorial detalhado. Descubra como implementar a lógica de controle de um semáforo usando HTML, CSS e JavaScript.

Animação Roleta de Prêmios - HTML, CSS e JavaScript - Tutorial

Animação Roleta de Prêmios: Descubra como criar uma animada roleta de prêmios com este tutorial detalhado. Este projeto consiste em uma Animação,  uma roleta