init: репозиторий backgrounds
— Добавлен animated-cubes (геометрический полет на Keyframes) — Добавлен solar-system-orrery (модель системы на Orbital Motion) — Добавлен parallax-star (звездное небо на Box-Shadow) — Добавлен fireflies (эффект светлячков и мягкого свечения) — Добавлен steps-sprite-animation (покадровая анимация с jQuery управлением)
This commit is contained in:
Executable
+15
@@ -0,0 +1,15 @@
|
||||
# 🧊 Animated Cubes Background
|
||||
|
||||
Геометрический анимированный фон с разлетающимися и вращающимися кубами. Создает эффект глубины и динамики для лендингов или героических (Hero) секций.
|
||||
|
||||
### Особенности
|
||||
|
||||
- **3D Motion**: Использование `scale` и `rotate` в одном ключевом кадре создает иллюзию полета кубов из центра.
|
||||
- **Pure CSS**: Анимация работает без JavaScript, что минимизирует нагрузку на браузер.
|
||||
- **Staggered Effect**: Разное время появления кубов реализовано через `animation-delay`.
|
||||
|
||||
### Технические детали
|
||||
|
||||
- **Animation**: Основной цикл `cube` длится 12 секунд с плавным затуханием (`opacity: 0`).
|
||||
- **Positions**: Кубы распределены по экрану с помощью `vw` (ширина) и `vh` (высота).
|
||||
- **Typography**: Используется шрифт **Montserrat**, импортируемый из Google Fonts.
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" >
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Animated Cubes Background</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./style.css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<!-- partial:index.partial.html -->
|
||||
<div class="hero">
|
||||
<div class="hero__title">Hello World</div>
|
||||
<div class="cube"></div>
|
||||
<div class="cube"></div>
|
||||
<div class="cube"></div>
|
||||
<div class="cube"></div>
|
||||
<div class="cube"></div>
|
||||
<div class="cube"></div>
|
||||
</div>
|
||||
<!-- partial -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Executable
+94
@@ -0,0 +1,94 @@
|
||||
@import url("https://fonts.googleapis.com/css?family=Montserrat:700");
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.hero {
|
||||
background-color: #0040c1;
|
||||
position: relative;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
font-family: "Montserrat", sans-serif;
|
||||
}
|
||||
|
||||
.hero__title {
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 50px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.cube {
|
||||
position: absolute;
|
||||
top: 80vh;
|
||||
left: 45vw;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border: solid 1px #003298;
|
||||
transform-origin: top left;
|
||||
transform: scale(0) rotate(0deg) translate(-50%, -50%);
|
||||
-webkit-animation: cube 12s ease-in forwards infinite;
|
||||
animation: cube 12s ease-in forwards infinite;
|
||||
}
|
||||
.cube:nth-child(2n) {
|
||||
border-color: #0051f4;
|
||||
}
|
||||
.cube:nth-child(2) {
|
||||
-webkit-animation-delay: 2s;
|
||||
animation-delay: 2s;
|
||||
left: 25vw;
|
||||
top: 40vh;
|
||||
}
|
||||
.cube:nth-child(3) {
|
||||
-webkit-animation-delay: 4s;
|
||||
animation-delay: 4s;
|
||||
left: 75vw;
|
||||
top: 50vh;
|
||||
}
|
||||
.cube:nth-child(4) {
|
||||
-webkit-animation-delay: 6s;
|
||||
animation-delay: 6s;
|
||||
left: 90vw;
|
||||
top: 10vh;
|
||||
}
|
||||
.cube:nth-child(5) {
|
||||
-webkit-animation-delay: 8s;
|
||||
animation-delay: 8s;
|
||||
left: 10vw;
|
||||
top: 85vh;
|
||||
}
|
||||
.cube:nth-child(6) {
|
||||
-webkit-animation-delay: 10s;
|
||||
animation-delay: 10s;
|
||||
left: 50vw;
|
||||
top: 10vh;
|
||||
}
|
||||
|
||||
@-webkit-keyframes cube {
|
||||
from {
|
||||
transform: scale(0) rotate(0deg) translate(-50%, -50%);
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
transform: scale(20) rotate(960deg) translate(-50%, -50%);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cube {
|
||||
from {
|
||||
transform: scale(0) rotate(0deg) translate(-50%, -50%);
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
transform: scale(20) rotate(960deg) translate(-50%, -50%);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
Executable
+76
@@ -0,0 +1,76 @@
|
||||
@import url('https://fonts.googleapis.com/css?family=Montserrat:700');
|
||||
|
||||
.hero {
|
||||
background-color: #0040C1;
|
||||
position: relative;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
}
|
||||
|
||||
.hero__title {
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 50px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.cube {
|
||||
position: absolute;
|
||||
top: 80vh;
|
||||
left: 45vw;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border: solid 1px darken(#0040C1, 8%);
|
||||
transform-origin: top left;
|
||||
transform: scale(0) rotate(0deg) translate(-50%, -50%);
|
||||
animation: cube 12s ease-in forwards infinite;
|
||||
|
||||
&:nth-child(2n) {
|
||||
border-color: lighten(#0040C1, 10%);
|
||||
}
|
||||
|
||||
&:nth-child(2) {
|
||||
animation-delay: 2s;
|
||||
left: 25vw;
|
||||
top: 40vh;
|
||||
}
|
||||
|
||||
&:nth-child(3) {
|
||||
animation-delay: 4s;
|
||||
left: 75vw;
|
||||
top: 50vh;
|
||||
}
|
||||
|
||||
&:nth-child(4) {
|
||||
animation-delay: 6s;
|
||||
left: 90vw;
|
||||
top: 10vh;
|
||||
}
|
||||
|
||||
&:nth-child(5) {
|
||||
animation-delay: 8s;
|
||||
left: 10vw;
|
||||
top: 85vh;
|
||||
}
|
||||
|
||||
&:nth-child(6) {
|
||||
animation-delay: 10s;
|
||||
left: 50vw;
|
||||
top: 10vh;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cube {
|
||||
from {
|
||||
transform: scale(0) rotate(0deg) translate(-50%, -50%);
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
transform: scale(20) rotate(960deg) translate(-50%, -50%);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user