diff --git a/.stylelintrc b/.stylelintrc
index 40558537..b8915bc5 100644
--- a/.stylelintrc
+++ b/.stylelintrc
@@ -3,6 +3,7 @@
"plugins": ["stylelint-order"],
"customSyntax": "postcss-styled-syntax",
"rules": {
+ "media-query-no-invalid": null,
"declaration-empty-line-before": [
"never",
{
diff --git a/package.json b/package.json
index 81754705..ff501204 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"dependencies": {
"@emotion/react": "^11.11.3",
"@emotion/styled": "^11.11.0",
+ "@radix-ui/react-slot": "^1.1.0",
"@tanstack/react-query": "^5.17.10",
"@tanstack/react-query-devtools": "^5.37.1",
"@tiptap/extension-blockquote": "^2.2.3",
diff --git a/src/App.tsx b/src/App.tsx
index 01ed04c2..36c0f76c 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,11 +1,12 @@
import styled from '@emotion/styled';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
-import router from './routers/Router';
-import { RouterProvider } from 'react-router-dom';
import { Suspense } from 'react';
+import { RouterProvider } from 'react-router-dom';
+import ResponsiveProvider from './components/commons/Responsive/ResponsiveProvider';
import Loading from './pages/loading/Loading';
-
+import router from './routers/Router';
+import { MOBILE_MEDIA_QUERY } from './styles/mediaQuery';
const App = () => {
const queryClient = new QueryClient({
defaultOptions: {
@@ -16,16 +17,18 @@ const App = () => {
});
return (
<>
-
-
+ {/* */}
+
+
}>
-
-
-
+
+
+
+ {/*
*/}
>
);
};
@@ -38,4 +41,10 @@ const DesktopWrapper = styled.div`
align-items: center;
width: 100%;
scroll-behavior: smooth;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ /* width: 100%; */
+ width: 100%;
+ max-width: 83rem;
+ }
`;
diff --git a/src/components/commons/Footer.tsx b/src/components/commons/Footer.tsx
index 0f80891c..08a03652 100644
--- a/src/components/commons/Footer.tsx
+++ b/src/components/commons/Footer.tsx
@@ -1,8 +1,9 @@
import styled from '@emotion/styled';
-import Spacing from './Spacing';
import { FOOTER_LINK } from '../../constants/footerLink';
+import Spacing from './Spacing';
+import { MOBILE_MEDIA_QUERY } from '../../styles/mediaQuery';
import {
FooterInstaIc,
FooterLogoIc,
@@ -53,11 +54,19 @@ const FooterWrapper = styled.div`
display: flex;
justify-content: space-between;
width: 100%;
- min-width: 136.7rem;
+
+ /* min-width: 136.7rem; */
height: 24.6rem;
padding: 8rem 16.5rem;
background-color: ${({ theme }) => theme.colors.grayViolet};
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ flex-direction: column;
+ gap: 4rem;
+ align-items: center;
+ padding: 5rem;
+ }
`;
const FooterLayout = styled.div`
diff --git a/src/components/commons/Responsive/Responsive.tsx b/src/components/commons/Responsive/Responsive.tsx
new file mode 100644
index 00000000..debcab98
--- /dev/null
+++ b/src/components/commons/Responsive/Responsive.tsx
@@ -0,0 +1,48 @@
+import { Slot } from '@radix-ui/react-slot';
+import { ReactNode, useContext, useEffect, useState } from 'react';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
+import { ResponsiveContext } from './context';
+interface ResponsivePropTypes {
+ children: ReactNode;
+ only: AvailableSize;
+ asChild?: boolean;
+}
+
+type AvailableSize = 'mobile' | 'desktop';
+
+const Responsive = ({ children, only, asChild }: ResponsivePropTypes) => {
+ const [current, setCurrent] = useState(null);
+
+ const Comp = asChild ? Slot : 'div';
+
+ const { mobileOnlyClassName, desktopOnlyClassName } = useContext(ResponsiveContext);
+
+ const selectedClassName = () => {
+ if (only === 'desktop') {
+ return desktopOnlyClassName;
+ } else if (only === 'mobile') {
+ return mobileOnlyClassName;
+ } else {
+ throw new Error(`잘못된 타입의 only값 : ${only}`);
+ }
+ };
+
+ useEffect(() => {
+ const mobileMedia = window.matchMedia(MOBILE_MEDIA_QUERY);
+ const handleCurrentChange = (e: MediaQueryListEvent) => {
+ setCurrent(e.matches ? 'mobile' : 'desktop');
+ };
+ mobileMedia.addEventListener('change', handleCurrentChange);
+
+ return () => {
+ mobileMedia.removeEventListener('change', handleCurrentChange);
+ };
+ }, []);
+ return current === null || only === current ? (
+ {children}
+ ) : (
+ <>>
+ );
+};
+
+export default Responsive;
diff --git a/src/components/commons/Responsive/ResponsiveProvider.tsx b/src/components/commons/Responsive/ResponsiveProvider.tsx
new file mode 100644
index 00000000..12729638
--- /dev/null
+++ b/src/components/commons/Responsive/ResponsiveProvider.tsx
@@ -0,0 +1,38 @@
+import { Global, css } from '@emotion/react';
+import { ReactNode } from 'react';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
+import { ResponsiveContext } from './context';
+interface ResponsiveProviderProps {
+ children: ReactNode;
+}
+
+const ResponsiveProvider = ({ children }: ResponsiveProviderProps) => {
+ const mobileOnlyClassName = `responsive-mobile-only`;
+ const desktopOnlyClassName = `responsive-desktop-only`;
+
+ const ResponsiveClassName = css`
+ .${mobileOnlyClassName} {
+ display: none !important;
+ }
+ .${desktopOnlyClassName} {
+ display: block !important;
+ }
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ .${mobileOnlyClassName} {
+ display: block !important;
+ }
+ .${desktopOnlyClassName} {
+ display: none !important;
+ }
+ }
+ `;
+ return (
+
+
+ {children}
+
+ );
+};
+
+export default ResponsiveProvider;
diff --git a/src/components/commons/Responsive/context.ts b/src/components/commons/Responsive/context.ts
new file mode 100644
index 00000000..029abdff
--- /dev/null
+++ b/src/components/commons/Responsive/context.ts
@@ -0,0 +1,15 @@
+import { createContext } from 'react';
+
+interface ResponsiveContextValue {
+ mobileOnlyClassName: string;
+ desktopOnlyClassName: string;
+}
+
+export const ResponsiveContext = createContext(
+ //ResponsiveProvider로 감싸져있지 않은 컴포넌트에서 값을 접근했을 때 또는 Context가 제대로 초기화되지 않았을 때 에러를 발생시켜 디버깅을 쉽게하기 위함
+ new Proxy({} as ResponsiveContextValue, {
+ get() {
+ throw new Error('ResponsiveProvider가 필요합니다.');
+ },
+ }),
+);
diff --git a/src/pages/main/Main.tsx b/src/pages/main/Main.tsx
index 9c665513..94614480 100644
--- a/src/pages/main/Main.tsx
+++ b/src/pages/main/Main.tsx
@@ -1,8 +1,12 @@
import styled from '@emotion/styled';
import { useParams } from 'react-router-dom';
-
+import Responsive from '../../components/commons/Responsive/Responsive';
+import { MOBILE_MEDIA_QUERY } from '../../styles/mediaQuery';
+import { AuthorizationHeader, UnAuthorizationHeader } from './../../components/commons/Header';
+import Spacing from './../../components/commons/Spacing';
import DailyKeyword from './components/DailyKeyword';
import FaqDropdown from './components/FaqDropdown';
+import GroupCarousel from './components/GroupCarousel';
import Introduction from './components/Introduction';
import Manual from './components/Manual';
import OnBoarding from './components/OnBoarding';
@@ -10,10 +14,7 @@ import { SkeletonComponent } from './components/skeletons/SkeletonComponent';
import { FAQ_DATA } from './constants/faqData';
import { useGetGroupContent, useGetRecommendTopic } from './hooks/queries';
-import Footer from './../../components/commons/Footer';
-import { AuthorizationHeader, UnAuthorizationHeader } from './../../components/commons/Header';
-import Spacing from './../../components/commons/Spacing';
-import GroupCarousel from './components/GroupCarousel';
+import Footer from '../../components/commons/Footer';
const Main = () => {
const { content, moimId } = useParams();
const topic = useGetRecommendTopic(content || '');
@@ -28,7 +29,9 @@ const Main = () => {
- 마일과 함께하고 있는 글 모임이에요
+
+ 마일과 함께하고 있는 글 모임이에요
+
{isLoading || isFetching ? (
) : (
@@ -44,6 +47,7 @@ const Main = () => {
+
@@ -70,6 +74,10 @@ const MainPageWrapper = styled.div`
width: 100%;
background-color: ${({ theme }) => theme.colors.backGroundGray};
+
+ /* @media ${MOBILE_MEDIA_QUERY} {
+ max-width: 76rem;
+ } */
`;
const GroupCarouselLayout = styled.section`
@@ -82,6 +90,11 @@ const GroupCarouselLayout = styled.section`
const CarouselContainer = styled.div`
width: 93rem;
height: 100%;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ width: 100%;
+ max-width: 420px;
+ }
`;
const CarouselBox = styled.div`
@@ -102,6 +115,8 @@ const FaqLayout = styled.section`
`;
const FaqContainer = styled.div`
+ padding: 0 2rem;
+
cursor: default;
`;
diff --git a/src/pages/main/components/CarouselContent.tsx b/src/pages/main/components/CarouselContent.tsx
index addf9b34..ba9edad8 100644
--- a/src/pages/main/components/CarouselContent.tsx
+++ b/src/pages/main/components/CarouselContent.tsx
@@ -1,10 +1,10 @@
import styled from '@emotion/styled';
import { useNavigate } from 'react-router-dom';
-
import { MainGroupRoutingBtn as MainGroupRoutingBtnIcon } from '../../../assets/svgs';
+import Responsive from '../../../components/commons/Responsive/Responsive';
import Spacing from '../../../components/commons/Spacing';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
import { replaceDefaultImg } from '../../../utils/replaceDefaultImg';
-
export interface groupContentPropTypes {
topicName: string;
imageUrl: string | null;
@@ -42,20 +42,36 @@ const CarouselContent = ({
{topicName}
{postTitle}
+ {/*
+
+ */}
{postContent}
+
+ {isContainPhoto && (
+
+ )}
+
- {isContainPhoto && (
-
- )}
+
+ {isContainPhoto && (
+
+ )}
+
{isLast && (
@@ -83,30 +99,53 @@ const CarouselWrapper = styled.section`
const CarouselContentLayout = styled.div`
display: flex;
- padding: 3.6rem;
gap: 3.6rem;
height: 24rem;
+ padding: 3.6rem;
background-color: ${({ theme }) => theme.colors.white};
border-radius: 8px;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ height: 29rem;
+ padding: 1.8rem;
+ }
`;
const Topic = styled.h1`
color: ${({ theme }) => theme.colors.gray70};
${({ theme }) => theme.fonts.body6};
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ /* mSubtitle 1 */
+ font-weight: 400;
+ font-size: 12px;
+ font-style: normal;
+ line-height: 120%; /* 14.4px */
+ }
`;
const Title = styled.h2`
${({ theme }) => theme.fonts.title10};
line-height: 120%;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ /* mTitle 1 */
+ font-weight: 700;
+ font-size: 17px;
+ font-style: normal;
+ line-height: 130%;
+ }
`;
const ContentContainer = styled.div`
display: flex;
flex-direction: column;
+ height: 29rem;
`;
const SubText = styled.span<{ isContainPhoto: boolean; isLast: boolean }>`
+ display: -webkit-box;
width: ${({ isContainPhoto, isLast }) =>
isContainPhoto && isLast
? '47.8rem'
@@ -116,15 +155,25 @@ const SubText = styled.span<{ isContainPhoto: boolean; isLast: boolean }>`
? '68.2rem'
: '85.8rem'};
height: 8.5rem;
+ margin-top: 3.1rem;
overflow: hidden;
color: ${({ theme }) => theme.colors.gray80};
+ text-align: left;
text-overflow: ellipsis;
+ word-wrap: break-word;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
${({ theme }) => theme.fonts.body3};
+ @media ${MOBILE_MEDIA_QUERY} {
+ width: 40rem;
+ height: ${({ isContainPhoto }) => (isContainPhoto ? 6.4 : 19.8)}rem;
+ margin-top: 1rem;
+ -webkit-line-clamp: ${({ isContainPhoto }) => (isContainPhoto ? 3 : 9)};
+ margin-bottom: 1.4rem;
+ }
`;
const Image = styled.img<{ isLast: boolean }>`
@@ -133,6 +182,11 @@ const Image = styled.img<{ isLast: boolean }>`
object-fit: cover;
border-radius: 8px;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ width: 22.4rem;
+ height: 11.2rem;
+ }
`;
const LastSlideBtnLayout = styled.div`
diff --git a/src/pages/main/components/DailyKeyword.tsx b/src/pages/main/components/DailyKeyword.tsx
index f560ca24..56786692 100644
--- a/src/pages/main/components/DailyKeyword.tsx
+++ b/src/pages/main/components/DailyKeyword.tsx
@@ -1,39 +1,77 @@
import styled from '@emotion/styled';
-
+import Responsive from '../../../components/commons/Responsive/Responsive';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
interface recommendPropsTypes {
content: string | undefined;
}
const DailyKeyword = ({ content }: recommendPropsTypes) => {
return (
-
-
-
-
- 오늘의 글감
-
- {content}
-
-
-
-
+ <>
+
+
+
+
+
+ 오늘의 글감
+
+ {content}
+
+
+
+
+
+ 오늘의 글감
+ {content}
+
+
+
+
+ >
);
};
export default DailyKeyword;
+const MobileKeyWordText = styled.p`
+ color: ${({ theme }) => theme.colors.black};
+ font-weight: 600;
+ font-size: 18px;
+
+ /* mTitle 2 */
+ font-family: Pretendard, sans-serif;
+ font-style: normal;
+ line-height: 160%; /* 28.8px */
+`;
+
+const MobileKeyWordHeader = styled.header`
+ color: ${({ theme }) => theme.colors.mainViolet};
+ font-weight: 500;
+ font-size: 14px;
+
+ /* mSubtitle 2 */
+ font-family: Pretendard, sans-serif;
+ font-style: normal;
+ line-height: 140%; /* 19.6px */
+`;
const KeyWordWrapper = styled.div`
display: flex;
align-items: center;
justify-content: center;
width: 100%;
+ padding: 0 2rem;
`;
const KeyWordLayout = styled.div`
display: flex;
flex-direction: column;
justify-content: center;
- width: 93rem;
+ width: 100%;
+ max-width: 93rem;
height: 8.4rem;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ max-width: 81rem;
+ }
`;
const KeywordHeaderContainer = styled.section`
@@ -43,7 +81,12 @@ const KeywordHeaderContainer = styled.section`
background-color: ${({ theme }) => theme.colors.mileViolet};
border-radius: 1rem;
+
${({ theme }) => theme.fonts.title11};
+ @media ${MOBILE_MEDIA_QUERY} {
+ gap: 0.8rem;
+ padding: 1.6rem 3.3rem;
+ }
`;
const KeywordContentBox = styled.div`
diff --git a/src/pages/main/components/FaqDropdown.tsx b/src/pages/main/components/FaqDropdown.tsx
index 9960b6b4..1611bfe7 100644
--- a/src/pages/main/components/FaqDropdown.tsx
+++ b/src/pages/main/components/FaqDropdown.tsx
@@ -1,6 +1,7 @@
import styled from '@emotion/styled';
import React, { useState } from 'react';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
import { MainToggleArrowOpenedIc, MainTogglearrowClosedIc } from './../../../assets/svgs';
import { faqDataPropTypes } from './../constants/faqData';
@@ -15,16 +16,18 @@ const FaqDropdown = ({ id, question, answer }: faqDataPropTypes) => {
return (
-
-
-
+
+
+
Q.
{question}
+
+
{dropDownOpened ? : }
-
- {dropDownOpened && {answer}}
-
-
+
+
+ {dropDownOpened && {answer}}
+
);
@@ -32,6 +35,19 @@ const FaqDropdown = ({ id, question, answer }: faqDataPropTypes) => {
export default FaqDropdown;
+const ToggleWrapper = styled.div`
+ display: flex;
+ align-items: center;
+ justify-content: cneter;
+ width: 1.4rem;
+ height: 1.4rem;
+`;
+
+const TextWrapper = styled.div`
+ display: flex;
+ gap: 0.8rem;
+ align-items: center;
+`;
const FaqWrapper = styled.section`
display: flex;
flex-direction: column;
@@ -42,39 +58,70 @@ const FaqWrapper = styled.section`
const DropdownLayout = styled.section`
width: fit-content;
+ width: 87.4rem;
padding: 2.4rem 2.8rem;
background-color: ${({ theme }) => theme.colors.white};
cursor: pointer;
border-radius: 8px;
-`;
-const FaqContainer = styled.div`
- width: 87.4rem;
+ @media ${MOBILE_MEDIA_QUERY} {
+ width: 100%;
+ min-width: 33.5rem;
+ max-width: 81rem;
+ }
`;
+// const FaqContainer = styled.div`
+
+// `;
+
const QuestionAnswerBox = styled.div`
display: flex;
flex-direction: column;
`;
const Question = styled.div`
+ /* position: relative; */
display: flex;
gap: 0.8rem;
align-items: center;
+ justify-content: space-between;
& > svg {
- margin-left: auto;
+ /* position: absolute;
+ right: 0; */
}
`;
const QuestionMarkText = styled.p`
color: ${({ theme }) => theme.colors.mainViolet};
${({ theme }) => theme.fonts.title5};
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ font-weight: 400;
+ font-size: 14px;
+
+ /* mBody 2 */
+
+ font-style: normal;
+ line-height: 140%; /* 19.6px */
+ }
`;
const QuestionText = styled.p`
${({ theme }) => theme.fonts.title5};
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ width: 85%;
+
+ font-weight: 600;
+ font-size: 16px;
+
+ /* mTitle 6 */
+
+ font-style: normal;
+ }
`;
const AnswerTextBox = styled.div`
diff --git a/src/pages/main/components/GroupCarousel.tsx b/src/pages/main/components/GroupCarousel.tsx
index 679fd43c..d10506db 100644
--- a/src/pages/main/components/GroupCarousel.tsx
+++ b/src/pages/main/components/GroupCarousel.tsx
@@ -2,7 +2,7 @@ import styled from '@emotion/styled';
import { useState } from 'react';
import { useNavigate } from 'react-router-dom';
import Slider from 'react-slick';
-
+import Responsive from '../../../components/commons/Responsive/Responsive';
import '../styles/slick-theme.css';
import '../styles/slick.css';
@@ -15,6 +15,7 @@ import {
MainIcnArrowPurple as MainIcnArrowPurpleIcon,
} from '../../../assets/svgs';
import Spacing from '../../../components/commons/Spacing';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
export interface carouselItemPropTypes {
moimId?: string;
@@ -55,21 +56,41 @@ const GroupCarousel = ({ data }: carouselItemPropTypes) => {
-
- {moim.moimPosts.map((post, index) => (
-
- ))}
-
+
+
+ {moim.moimPosts.map((post, index) => (
+
+ ))}
+
+
+
+
+
+ {moim.moimPosts.map((post, index) => (
+
+ ))}
+
+
))}
@@ -82,6 +103,10 @@ export default GroupCarousel;
const CarouselWrapper = styled.div`
flex-direction: column;
height: 29.4rem;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ height: 34.4rem;
+ }
`;
const GroupButton = styled.button`
@@ -118,4 +143,15 @@ const CarouselContainer = styled(Slider)`
.slick-slide.slick-active:last-child {
width: 75.4rem !important;
}
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ /* width: 45rem; */
+
+ width: 100%;
+ max-width: 65rem;
+
+ .slick-slide.slick-active:last-child {
+ width: 42rem !important;
+ }
+ }
`;
diff --git a/src/pages/main/components/Introduction.tsx b/src/pages/main/components/Introduction.tsx
index c5355aec..b52f0098 100644
--- a/src/pages/main/components/Introduction.tsx
+++ b/src/pages/main/components/Introduction.tsx
@@ -1,15 +1,15 @@
import styled from '@emotion/styled';
import { useState } from 'react';
import { useNavigate } from 'react-router-dom';
-
-import { INTRODUCTION_DATA } from '../constants/introductionData';
-
import {
MainIcnArrowWhite as MainArrowWhiteIc,
MainGraphicLogo as MainGraphicLogoIc,
MainIcnArrowPurple as MainIcnArrowPurpleIcon,
} from '../../../assets/svgs';
+import Responsive from '../../../components/commons/Responsive/Responsive';
import Spacing from '../../../components/commons/Spacing';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
+import { INTRODUCTION_DATA } from '../constants/introductionData';
const Introduction = () => {
const navigate = useNavigate();
@@ -29,16 +29,19 @@ const Introduction = () => {
{INTRODUCTION_DATA[0].subText}
-
- setIsHovered(true)}
- onMouseLeave={() => setIsHovered(false)}
- >
- 마일 글 모임 바로가기
- {IsHovered ? : }
-
+
+
+
+ setIsHovered(true)}
+ onMouseLeave={() => setIsHovered(false)}
+ >
+ 마일 글 모임 바로가기
+ {IsHovered ? : }
+
+
{INTRODUCTION_DATA[0].hookText}
@@ -47,12 +50,32 @@ const Introduction = () => {
{INTRODUCTION_DATA[0].discriptionText}
+
+
+
+ setIsHovered(true)}
+ onMouseLeave={() => setIsHovered(false)}
+ >
+ 마일 글 모임 바로가기
+ {IsHovered ? : }
+
+
+
);
};
export default Introduction;
+const ButtonWrapper = styled.div`
+ display: flex;
+ justify-content: center;
+ width: 100%;
+ max-width: 40rem;
+`;
const IntroductionWrapper = styled.section`
display: flex;
gap: 10.2rem;
@@ -62,6 +85,12 @@ const IntroductionWrapper = styled.section`
padding: 10rem 21.8rem 10rem 28.4rem;
background-color: ${({ theme }) => theme.colors.backGroundViolet};
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ flex-direction: column;
+ gap: 3rem;
+ padding: 4.6rem 2rem;
+ }
`;
const MileMakersTextLayout = styled.div`
diff --git a/src/pages/main/components/Manual.tsx b/src/pages/main/components/Manual.tsx
index eb7f9ec2..16ce930d 100644
--- a/src/pages/main/components/Manual.tsx
+++ b/src/pages/main/components/Manual.tsx
@@ -1,6 +1,7 @@
import styled from '@emotion/styled';
import Spacing from '../../../components/commons/Spacing';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
import { MAIN_MANUAL_IMG_URL, MAIN_MANUAL_WEBP_URL } from '../constants/mainManualImgURL';
const Manual = () => {
@@ -42,9 +43,19 @@ const ManualLayout = styled.section`
grid-template-columns: repeat(3, 1fr);
gap: 2rem;
width: 92.8rem;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ grid-template-columns: repeat(2, 1fr);
+ width: 100%;
+ }
`;
const ManualImg = styled.img`
width: 29.6rem;
height: 37.2rem;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ width: 16.2rem;
+ height: 20rem;
+ }
`;
diff --git a/src/pages/main/components/OnBoarding.tsx b/src/pages/main/components/OnBoarding.tsx
index 21e63f82..ecfe2839 100644
--- a/src/pages/main/components/OnBoarding.tsx
+++ b/src/pages/main/components/OnBoarding.tsx
@@ -1,5 +1,6 @@
import styled from '@emotion/styled';
import Spacing from '../../../components/commons/Spacing';
+import { MOBILE_MEDIA_QUERY } from '../../../styles/mediaQuery';
import mainOnBoardingImg from '/src/assets/images/mainOnBoarding.png';
import mainOnBoardingWebp from '/src/assets/webps/mainonboarding.webp';
const OnBoarding = () => {
@@ -37,6 +38,11 @@ const OnBoardingWrapper = styled.section`
padding: 6.8rem 21.8rem 4.8rem;
background-color: ${({ theme }) => theme.colors.white};
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ max-width: 82rem;
+ padding: 3.5rem 2rem 2.7rem;
+ }
`;
const OnBoardingIcWithTextLayout = styled.div`
@@ -55,14 +61,32 @@ const MainText = styled.p`
justify-content: flex-start;
width: fit-content;
${({ theme }) => theme.fonts.title12};
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ ${({ theme }) => theme.fonts.title13};
+ }
`;
const SubText = styled.p`
color: ${({ theme }) => theme.colors.gray70};
${({ theme }) => theme.fonts.subtitle7};
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ font-weight: 500;
+ font-size: 13px;
+ font-style: normal;
+ line-height: 120%; /* 15.6px */
+ }
`;
const MainOnboardingImg = styled.img`
width: 93rem;
height: 35.7rem;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ width: 100%;
+ max-width: 80rem;
+ height: 3%;
+ object-fit: cover;
+ }
`;
diff --git a/src/pages/main/components/skeletons/CarouselSkeleton.tsx b/src/pages/main/components/skeletons/CarouselSkeleton.tsx
index 39decadb..c2d68848 100644
--- a/src/pages/main/components/skeletons/CarouselSkeleton.tsx
+++ b/src/pages/main/components/skeletons/CarouselSkeleton.tsx
@@ -3,6 +3,7 @@ import styled from '@emotion/styled';
import Skeleton from './Skeleton';
import Spacing from '../../../../components/commons/Spacing';
+import { MOBILE_MEDIA_QUERY } from '../../../../styles/mediaQuery';
const CarouselSkeleton = () => {
return (
@@ -43,6 +44,11 @@ const CarouselBox = styled.section`
background-color: ${({ theme }) => theme.colors.grayViolet};
border-radius: 8px;
+
+ @media ${MOBILE_MEDIA_QUERY} {
+ width: 100%;
+ max-width: 83rem;
+ }
`;
const TextContainer = styled.div`
diff --git a/src/pages/main/styles/slick-theme.css b/src/pages/main/styles/slick-theme.css
index 0ffb5cfe..38d2f1ec 100644
--- a/src/pages/main/styles/slick-theme.css
+++ b/src/pages/main/styles/slick-theme.css
@@ -21,6 +21,10 @@
border: none;
outline: none;
background: transparent;
+
+ @media screen and (max-width: 850px) {
+ display: none !important;
+ }
}
.slick-prev:hover,
.slick-prev:focus,
diff --git a/src/pages/main/styles/slick.css b/src/pages/main/styles/slick.css
index 9f8ed6f6..dc941e2c 100644
--- a/src/pages/main/styles/slick.css
+++ b/src/pages/main/styles/slick.css
@@ -25,6 +25,10 @@
margin: 0;
padding: 0;
+ @media screen and (max-width: 850px) {
+ width: 100%;
+ max-width: 45rem;
+ }
}
.slick-list:focus {
outline: none;
@@ -75,6 +79,10 @@
.slick-slide {
width: 45.4rem;
height: 24rem;
+
+ @media screen and (max-width: 850px) {
+ height: 29rem;
+ }
}
[dir='rtl'] .slick-slide {
float: right;
diff --git a/src/styles/mediaQuery.ts b/src/styles/mediaQuery.ts
new file mode 100644
index 00000000..14a35116
--- /dev/null
+++ b/src/styles/mediaQuery.ts
@@ -0,0 +1,4 @@
+export const MOBILE_MAX_WIDTH = 850;
+
+export const MOBILE_MEDIA_QUERY = `screen and (max-width: ${MOBILE_MAX_WIDTH}px)`;
+export const MOBILE_CONTENTS_MAX_WIDTH = 335;
diff --git a/yarn.lock b/yarn.lock
index 03a1deb4..df5697f8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -682,6 +682,18 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
+"@radix-ui/react-compose-refs@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz#656432461fc8283d7b591dcf0d79152fae9ecc74"
+ integrity sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==
+
+"@radix-ui/react-slot@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.1.0.tgz#7c5e48c36ef5496d97b08f1357bb26ed7c714b84"
+ integrity sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==
+ dependencies:
+ "@radix-ui/react-compose-refs" "1.1.0"
+
"@remirror/core-constants@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-2.0.2.tgz#f05eccdc69e3a65e7d524b52548f567904a11a1a"
@@ -1511,6 +1523,11 @@ astral-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+async@^3.2.3:
+ version "3.2.6"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
+ integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
+
asynciterator.prototype@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62"
@@ -1600,6 +1617,11 @@ browserslist@^4.22.2:
node-releases "^2.0.14"
update-browserslist-db "^1.0.13"
+btoa@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73"
+ integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==
+
call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
@@ -1638,7 +1660,7 @@ chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.0.0, chalk@^4.1.2:
+chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -1661,6 +1683,15 @@ cli-width@^4.1.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5"
integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==
+cliui@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
+
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
@@ -1716,7 +1747,7 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-convert-source-map@^1.5.0:
+convert-source-map@^1.5.0, convert-source-map@^1.7.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
@@ -1907,11 +1938,23 @@ dot-case@^3.0.4:
no-case "^3.0.4"
tslib "^2.0.3"
+duplexer@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+ integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+
eastasianwidth@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+ejs@^3.1.5:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
+ integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==
+ dependencies:
+ jake "^10.8.5"
+
electron-to-chromium@^1.4.601:
version "1.4.630"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz#1d9f4169653784997bec98975e11a2c05214ce39"
@@ -2078,6 +2121,11 @@ escalade@^3.1.1:
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+escape-html@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@@ -2368,6 +2416,13 @@ file-entry-cache@^8.0.0:
dependencies:
flat-cache "^4.0.0"
+filelist@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
+ integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==
+ dependencies:
+ minimatch "^5.0.1"
+
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -2523,7 +2578,7 @@ glob@^10.3.7:
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
path-scurry "^1.10.1"
-glob@^7.1.3:
+glob@^7.1.3, glob@^7.1.6:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -2604,6 +2659,13 @@ graphql@^16.8.1:
resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07"
integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==
+gzip-size@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
+ integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
+ dependencies:
+ duplexer "^0.1.2"
+
has-bigints@^1.0.1, has-bigints@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
@@ -2930,7 +2992,7 @@ is-weakset@^2.0.1:
call-bind "^1.0.2"
get-intrinsic "^1.1.1"
-is-wsl@^2.2.0:
+is-wsl@^2.1.1, is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
@@ -2972,6 +3034,16 @@ jackspeak@^2.3.5:
optionalDependencies:
"@pkgjs/parseargs" "^0.11.0"
+jake@^10.8.5:
+ version "10.9.2"
+ resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f"
+ integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==
+ dependencies:
+ async "^3.2.3"
+ chalk "^4.0.2"
+ filelist "^1.0.4"
+ minimatch "^3.1.2"
+
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -3114,7 +3186,7 @@ lodash.truncate@^4.4.2:
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==
-lodash@^4.17.4:
+lodash@^4.17.20, lodash@^4.17.4:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -3126,14 +3198,7 @@ loose-envify@^1.1.0, loose-envify@^1.4.0:
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
-lottie-react@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/lottie-react/-/lottie-react-2.4.0.tgz#f7249eee2b1deee70457a2d142194fdf2456e4bd"
- integrity sha512-pDJGj+AQlnlyHvOHFK7vLdsDcvbuqvwPZdMlJ360wrzGFurXeKPr8SiRCjLf3LrNYKANQtSsh5dz9UYQHuqx4w==
- dependencies:
- lottie-web "^5.10.2"
-
-lottie-web@^5.10.2:
+lottie-web@^5.12.2:
version "5.12.2"
resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.12.2.tgz#579ca9fe6d3fd9e352571edd3c0be162492f68e5"
integrity sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==
@@ -3240,6 +3305,13 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
dependencies:
brace-expansion "^1.1.7"
+minimatch@^5.0.1:
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
+ integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
+ dependencies:
+ brace-expansion "^2.0.1"
+
minimist@^1.2.0, minimist@^1.2.6:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
@@ -3250,6 +3322,13 @@ minimist@^1.2.0, minimist@^1.2.6:
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
+mkdirp@^0.5.1:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
+ integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
+ dependencies:
+ minimist "^1.2.6"
+
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
@@ -3415,6 +3494,14 @@ once@^1.3.0:
dependencies:
wrappy "1"
+open@^7.3.1:
+ version "7.4.2"
+ resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
+ integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
+ dependencies:
+ is-docker "^2.0.0"
+ is-wsl "^2.1.1"
+
open@^8.4.0:
version "8.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
@@ -3948,6 +4035,13 @@ rimraf@^5.0.5:
dependencies:
glob "^10.3.7"
+rimraf@~2.6.2:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
+ dependencies:
+ glob "^7.1.3"
+
rollup-plugin-visualizer@^5.12.0:
version "5.12.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz#661542191ce78ee4f378995297260d0c1efb1302"
@@ -4107,6 +4201,24 @@ snake-case@^3.0.4:
dot-case "^3.0.4"
tslib "^2.0.3"
+source-map-explorer@^2.5.3:
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/source-map-explorer/-/source-map-explorer-2.5.3.tgz#33551b51e33b70f56d15e79083cdd4c43e583b69"
+ integrity sha512-qfUGs7UHsOBE5p/lGfQdaAj/5U/GWYBw2imEpD6UQNkqElYonkow8t+HBL1qqIl3CuGZx7n8/CQo4x1HwSHhsg==
+ dependencies:
+ btoa "^1.2.1"
+ chalk "^4.1.0"
+ convert-source-map "^1.7.0"
+ ejs "^3.1.5"
+ escape-html "^1.0.3"
+ glob "^7.1.6"
+ gzip-size "^6.0.0"
+ lodash "^4.17.20"
+ open "^7.3.1"
+ source-map "^0.7.4"
+ temp "^0.9.4"
+ yargs "^16.2.0"
+
source-map-js@^1.0.1, source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
@@ -4346,6 +4458,14 @@ table@^6.8.1:
string-width "^4.2.3"
strip-ansi "^6.0.1"
+temp@^0.9.4:
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620"
+ integrity sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==
+ dependencies:
+ mkdirp "^0.5.1"
+ rimraf "~2.6.2"
+
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -4655,11 +4775,29 @@ yaml@^1.10.0:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+yargs-parser@^20.2.2:
+ version "20.2.9"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+ integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+yargs@^16.2.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
+
yargs@^17.5.1, yargs@^17.7.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"