[토이프로젝트] MailBadara - (9) 디자인 리뉴얼

2024. 1. 11. 01:42·프로젝트/MailBadara

MailBadara 리뉴얼 배경

 

한참 묵혀두고 있다가 일주일 전부터 디자인을 갈아엎기 시작했다. 빨리 배포하려고 디자인은 1도 신경 안 쓰고 개떡같이 만들긴 했지만, 만들고나서 내가 보기에도 너무 구렸다. 시험 기간도 겹치고 다른 일들도 겹쳐서 미루고 미루다가 2024년 신년을 맞아 뜯어고치기로 했다.

 

그렇다고 코드 리팩토링을 한 건 아니고 디자인만 리뉴얼했다. 

 

Background

 

내가 보기에도 정말 구리다. 밋밋하게 흰 배경은 하기 싫어서 react-particles라는 인터랙티브 배경 라이브러리를 써봤는데.. 좋은지는 나도 모르겠다.. 이번 리뉴얼에는 원래 하고 싶었던 우주 배경을 도입하기로 했다.

 

Department 섹션

단순하게 테이블로 나열하기보다는 모바일 웹뷰에서도 보기 쉽도록 slider 방식으로 구현하고 싶었다. swiper 라이브러리를 한 번 써봤는데 간단하게 여러 slider를 구현할 수 있어서 좋은 것 같다.

 

 

 

Swiper 라이브러리 이슈

export default function DepartmentPage() {
  const [departmentBoardList, setDepartmentBoardList] = useState<
    DeaprtmentList[]
  >([]);

  useEffect(() => {
    const fetch = async () => {
      try {
        const res = await axios.get("/api/department/board");
        if (res.data.type === "SUCCESS") {
          setDepartmentBoardList(res.data.data);
        }
      } catch (error) {
        console.error("Error:", error);
      }
    };
    fetch();
  }, []);

  return (
    <section
      ref={ref}
      className="flex flex-col items-center justify-center w-full min-h-screen"
    >
      <Swiper
        modules={[
          Navigation,
          Pagination,
          Scrollbar,
          A11y,
          Autoplay,
          EffectFade,
          EffectCube,
        ]}
        navigation
        pagination={{ clickable: true }}
        scrollbar={{ draggable: true }}
        onSwiper={(swiper) => console.log(swiper)}
        onSlideChange={() => console.log("slide change")}
        autoplay={{ delay: 2000, disableOnInteraction: false }}
        effect="slide"
        className="w-full sm:w-3/4"
        centeredSlides
        slidesPerView={1}
        spaceBetween={10}
        breakpoints={{
          320: {
            slidesPerView: 1,
            spaceBetween: 20,
          },
          480: {
            slidesPerView: 2,
            spaceBetween: 30,
          },
          640: {
            slidesPerView: 3,
            spaceBetween: 50,
          },
        }}
      >
        {/** 문제의 부분 */
        departmentBoardList.map((data) => (
          <SwiperSlide
            key={data.code}
            className="flex items-center justify-center"
          >
            <DepartmentBoard data={data} />
          </SwiperSlide>
        ))}
      </Swiper>
      <div className="text-xl font-bold text-center text-white animate-scale-up-down">
        ⬆️Click me to see more⬆️
      </div>
    </section>
  );
}

 

<Swiper>

   <SwiperSlide>

     <DepartmentBoard />

  </SwiperSlide>

</Swiper>

 

DepartmentBoard를 SwiperSlide로 감싼 건 똑같은데 DepartmentBoard 자체를 SwiperSlide로 구현할 경우에는 slide가 제대로 작동하지 않는다. SwiperSlide를 밖으로 빼내고 DepartmentBoard 밖에서 감싸는 형태면 작동한다. 분명 웹 html 구조는 똑같은데.. 신기한 일이다.

 

 

반응형

이번에 구현할 때는 모바일 웹뷰에서도 보기 쉽도록 tailwindcss 반응형을 사용하여 디자인했다.

 

슬라이더가 3개에서 1개로 줄었다.

 

 

'프로젝트 > MailBadara' 카테고리의 다른 글

[토이프로젝트] MailBadara - (11) 프로젝트 분리 with Github Actions  (0) 2024.03.01
[토이프로젝트] MailBadara - (10) 모바일 구현 시작  (1) 2024.02.14
[토이프로젝트] MailBadara - (8) 2차 서버 리팩토링  (1) 2023.11.23
[토이프로젝트] MailBadara - (7) 1차 서버 리팩토링  (1) 2023.11.22
[토이프로젝트] MailBadara - (6) 서버 최적화 생각 중  (0) 2023.10.16
'프로젝트/MailBadara' 카테고리의 다른 글
  • [토이프로젝트] MailBadara - (11) 프로젝트 분리 with Github Actions
  • [토이프로젝트] MailBadara - (10) 모바일 구현 시작
  • [토이프로젝트] MailBadara - (8) 2차 서버 리팩토링
  • [토이프로젝트] MailBadara - (7) 1차 서버 리팩토링
KimCookieYa
KimCookieYa
무엇이 나를 살아있게 만드는가
  • KimCookieYa
    쿠키의 주저리
    KimCookieYa
  • 전체
    오늘
    어제
    • 분류 전체보기 (576)
      • 혼잣말 (88)
      • TIL (3)
      • 커리어 (24)
        • Sendy (21)
        • 외부활동 기록 (2)
      • 프로젝트 (186)
        • 티스토리 API (5)
        • 코드프레소 체험단 (89)
        • Web3 (3)
        • Pint OS (16)
        • 나만무 (14)
        • 대회 (6)
        • 정글 FE 스터디 (16)
        • MailBadara (12)
        • github.io (1)
        • 인공지능 동아리, AID (5)
        • 졸업과제 (18)
        • OSSCA 2024 (1)
      • 크래프톤 정글 2기 (80)
      • IT (169)
        • 코딩 (4)
        • CS (18)
        • 에러 (5)
        • 블록체인 (23)
        • Front-End (40)
        • 알고리즘&자료구조 정리 (3)
        • 코딩테스트 (3)
        • BOJ 문제정리 (41)
        • WILT (12)
        • ML-Agents (4)
        • 강화학습 (1)
        • Android (0)
        • LLM (2)
      • 전공 (1)
        • 머신러닝 (1)
      • 자기계발 (20)
        • 빡공단X베어유 (2)
        • 독서 (15)
  • 블로그 메뉴

    • 홈
    • 방명록
    • Github
    • Velog
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Pint OS
    머신러닝
    코드프레소
    JavaScript
    NEAR Protocol
    글리치해커톤
    pintos
    react
    사이드프로젝트
    크래프톤정글
    핀토스
    RNN
    자바스크립트
    프로그래머스
    리액트
    docker
    딥러닝
    MailBadara
    Flutter
    파이썬
    numpy
    졸업과제
    니어프로토콜
    센디
    나만무
    부산대
    OS
    블록체인
    해커톤
    알고리즘
  • hELLO· Designed By정상우.v4.10.3
KimCookieYa
[토이프로젝트] MailBadara - (9) 디자인 리뉴얼
상단으로

티스토리툴바