그라디언트
그라디언트
- 점진적으로 색의 변화를 나타낼 수 있는 요소로 HTML 요소의 배경을 설정 할 수 있는 background 계열 CSS요소다.
gradient 요소가 가질 수 있는 속성으로는 방향, 색상, 정지점 설정 등이 있다.
방향을 나타내는 속성
- 선형 그라디언트 : to top, to bottom 등
- 방사형 그라디언트 : circle at center, ellipse at top left 등
색상을 설정하는 속성
- rgb 또는 rgba 로 설정
정지점을 설정하는 속성
- radial-gradient (red 30%, blue 70%);
radial-gradient
: 방사형 그라디언트로 특정 축의 중심을 기준으로 바깥으로 색이 퍼져나가는 방식으로 표현된다.
.radial {
display: flex;
justify-content: center;
align-items: center;
color: white;
background: radial-gradient(circle at center, red, blue, white);
width: 50%;
height: 100px;
}
linear-gradient
: 선형 그라디언트는 특정 방향으로 선형으로 뻗어나가며 색을 바꾸는 방식으로 표현된다.
.linear {
display: flex;
justify-content: center;
align-items: center;
color: white;
background: linear-gradient(red, blue, white);
width: 50%;
height: 100px;
}
키프레임으로 스피너만들기
스피너 구현
.loading{
width: 60px;
height: 60px;
position: relative;
}
.circle{
width: inherit;
height: inherit;
border: 5px solid #000;
border-radius: 50%;
border-right-color: lightgray;
border-left-color: lighgray;
animation: circle 1s linear infinite;
}
.loading span{
font-size: 10px;
text-transform: uppercase;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0.8);
font-weight: 500;
animation: loading 1s linear infinite;
}
로딩 화면을 스타일한 모습이다. 우선 크기를 지정하고 로딩 아이콘에 포지션 값을 relative로, span태그(텍스트)를 그 위에 올리기 위해 absolute로 설정해뒀다.
@keyframes circle{
0% {transform: rotate(0);}
100%{transform: rotate(360deg);}
}
@keyframes loading{
0% {opacity: 0;}
50%{opacity: 1;}
100%{opacity: 0;}
}
로딩 아이콘을 회전시키기 위해 설정해둔 keyframes 태그로 움직임을 설정해두었는데 keyframes가 가지는 속성으로 %로 된 부분은 애니메이션의 진행도를 의미하기 때문에 0% 진행됐을 떄는 circle을 0도에 맞추고 100%로 가면 갈 수록 회전을 시키도록 설정이 된 것이다. 그와 같은 원리로 loading 텍스트의 투명도 또한 애니메이션의 주기인 1초의 비율에 맞게 조절되도록 설정되어있다.
'웹프로그래밍 > CSS 3' 카테고리의 다른 글
CSS - 반응형 웹 제작 (0) | 2024.08.08 |
---|---|
CSS - Background와 Transition (0) | 2024.08.06 |
CSS - 레이아웃 속성과 flex (0) | 2024.08.05 |
CSS - 폰트 설정 (0) | 2024.07.31 |
CSS - 박스 모델 (0) | 2024.07.30 |