리액트 로딩 컴포넌트 개발 (bubble 스타일)

Darlene·2021년 10월 10일
1

React

목록 보기
12/13

로딩 컴포넌트는 사용자 경험에 있어 필수적으로 개발되어야하는 컴포넌트로 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>
    </>
  );
}

0개의 댓글