こんにちは。かじです。
今回は、LoadingUIを作るチュートリアルを解説して、CSSのAnimationを解説していきたいと思います。
今回作成する成果物は下記のようになります。
Loading
1.基本的なレイアウトを作る
まずは、基本的なレイアウトを作成していきます。
特筆することは多くはありませんが、点を表す<div class=”dot”>について。
一つ目の点は、最初見えない状態から、アニメーションの開始と共に大きくなることで現れるので、transform:scale(0);で最初は見えない状態にしておきます。
二つ目の点は、一番左端に位置しているためleft:0;、四つ目の点は一番右に位置しているため、right:0;で位置関係を作っておきます。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h1>Loading</h1>
<div class="main">
<div class="dot one"></div>
<div class="dot two"></div>
<div class="dot three"></div>
<div class="content">
<div class="dot four"></div>
</div>
</div>
</div>
</body>
</html>
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@500&display=swap');
:root{
--crl-white:#eee;
--crl-black:#222;
}
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body{
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
font-size: 14px;
font-family:Roboto;
background-color: var(--crl-black);
overflow: hidden;
}
.container{
display:flex;
align-items: flex-end;
font-size:4em;
}
h1{
font-size: inherit;
color: var(--crl-white);
}
.main{
position: relative;
display: flex;
justify-content: space-around;
width: calc(.2em * 5);
margin-left: .1em;
bottom: .4em;
}
/* ①ここまで */
.dot{
position: absolute;
width: .2em;
aspect-ratio: 1;
border-radius: 50%;
background-color: var(--crl-white);
}
.dot.one{
left: 0;
transform: scale(0);
}
.dot.two{
left: 0;
}
.content{
position: absolute;
right: 0;
}
.dot.four{
right: 0;
}
/* ①ここまで */