로딩 컴포넌트는 사용자 경험에 있어 필수적으로 개발되어야하는 컴포넌트로 bubble 버전으로 만들어 보겠습니다.
emotion keyframes을 사용해서 css만으로 로딩중인 상태를 나타내도록 만들어 보았습니다.
import { keyframes } from '@emotion/react';
import styled from '@emotion/styled';
const bubble = keyframes`
0%,
80%,
100% {
box-shadow: 0 2.5em 0 -1.3em;
}
40% {
box-shadow: 0 2.5em 0 0;
}
`;
const Container = styled.div({
width: '80px',
margin: '0 auto',
});
const BoxStyle = styled.div({
float: 'left',
width: '30%',
padding: '5px',
});
const LoadingIcon = styled.div({
width: '20px',
height: '20px',
borderRadius: '100%',
animation: `${bubble} 3s ease infinite`,
});
export default function Loading() {
return (
<>
<Container>
<BoxStyle>
<LoadingIcon />
</BoxStyle>
<BoxStyle>
<LoadingIcon />
</BoxStyle>
<BoxStyle>
<LoadingIcon />
</BoxStyle>
</Container>
</>
);
}