Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5b1b856
chore: home / recuit 컴포넌트 max-width 1200 레이아웃 적용
gonn-i Oct 14, 2025
2a18041
fix: 헤더 부분 max-width 1200 설정 및 gap 조정
gonn-i Oct 14, 2025
79631f5
chore: recuit page 디자인 수정사항 반영
gonn-i Oct 14, 2025
89c1420
chore: news section max-width 1200 지정
gonn-i Oct 14, 2025
efec540
fix: gap 값 수정 및 margin 삭제
gonn-i Oct 14, 2025
3c14e0b
fix: join section 모바일 width 조정
gonn-i Oct 14, 2025
9ec618c
fix: 배너 관련 레이아웃 적용
gonn-i Oct 14, 2025
f0de0dc
chore: padding 191px -> 200px 조정
gonn-i Oct 14, 2025
3c0b852
fix: banner tablet size 대응
gonn-i Oct 14, 2025
65fe677
fix: medium img 높이 고정
gonn-i Oct 14, 2025
a4ac1bc
fix: banner mobile 좌우 margin 삭제
gonn-i Oct 14, 2025
baba48e
feat: find member 관련 애니메이션 추가
gonn-i Oct 14, 2025
156d660
chore: footer 누락된 divider 추가
gonn-i Oct 14, 2025
1c96058
chore: project card box-shadow 추가
gonn-i Oct 15, 2025
dfc546d
chore: grid gap 조정
gonn-i Oct 15, 2025
0943ec2
chore: 텍스트 수정 2차 서류 -> 2차 면접
gonn-i Oct 15, 2025
cb5bae5
chore: circus card mobile max height 지정
gonn-i Oct 15, 2025
e077cfe
fix: section title 관련 정렬 수정 및 반응형 대응 수정
gonn-i Oct 15, 2025
3762624
feat: FAB 특정 범위 내에서만 opacity 1 설정 애니메이션
gonn-i Oct 15, 2025
bc26bd8
chore: hoem 텍스트 진입시 애니메이션 적용
gonn-i Oct 16, 2025
e06b788
chore: 스크롤 애니메이션 조작을 위한 offset 조정
gonn-i Oct 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/common/AnimatedBox/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,6 @@ const StyledBox = styled.section<{

${media.mobile} {
width: auto;
height: 175px;
height: 120px;
}
`;
32 changes: 28 additions & 4 deletions components/common/Banner/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,48 @@ function Banner({
}: BannerProps): ReactElement {
return (
<StyledBox backgroundImg={backgroundImg} className={className}>
<StyledTitle>{title}</StyledTitle>
<StyledDescription>{description}</StyledDescription>
<InnerTextContainer>
<StyledTitle>{title}</StyledTitle>
<StyledDescription>{description}</StyledDescription>
</InnerTextContainer>
</StyledBox>
);
}

const StyledBox = styled.div<BannerProps>`
background-repeat: no-repeat;
background-size: cover;
background-position: center;
background-image: url(${({ backgroundImg }) => backgroundImg});
background-color: ${({ theme, backgroundImg }) =>
!backgroundImg && theme.palette.grey_800};
padding: 146px 0 93px 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
gap: 8px;
`;

const InnerTextContainer = styled.div`
max-width: 1200px;
margin: 0 80px;
display: flex;
flex-direction: column;
width: 100%;
align-items: flex-start;
gap: 8px;

${media.tablet} {
width: -webkit-fill-available;
}

${media.mobile} {
margin: 0;
}
`;

const slideUp = keyframes`
0% {
opacity: 0;
Expand All @@ -51,8 +73,9 @@ const slideUp = keyframes`
const StyledTitle = styled.h1`
color: ${({ theme }) => theme.palette.white_100};
${({ theme }) => theme.textStyleV2.resp.title1_md};
margin: 0 80px;
white-space: nowrap;
margin-top: 0;
margin-bottom: 0;

animation: ${slideUp} 0.6s ease forwards;
animation-delay: 0.2s;
Expand All @@ -67,8 +90,9 @@ const StyledTitle = styled.h1`
const StyledDescription = styled.p`
color: ${({ theme }) => theme.palette.white_50};
${({ theme }) => theme.textStyleV2.resp.subtitle_md};
margin: 0 80px;
white-space: nowrap;
margin-top: 0;
margin-bottom: 0;

animation: ${slideUp} 0.6s ease forwards;
animation-delay: 0.2s;
Expand Down
10 changes: 8 additions & 2 deletions components/common/CircusCard/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ function CircusCard(
index: number,
) {
return (
<AnimatedBox
<CardLayout
key={index}
color={color as PaletteKeyTypes}
fontColor={fontColor as PaletteKeyTypes}
Expand All @@ -27,12 +27,18 @@ function CircusCard(
<CardTitle>{content}</CardTitle>
</CardInnerBox>
{icon && <Image src={icon} alt={title} width={70} height={70} />}
</AnimatedBox>
</CardLayout>
);
}

export default CircusCard;

const CardLayout = styled(AnimatedBox)`
${media.mobile} {
max-height: 156px;
}
`;

const CardInnerBox = styled.div`
padding-top: 24px;
display: flex;
Expand Down
9 changes: 8 additions & 1 deletion components/common/Footer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ function Footer(): ReactElement {
</li>
))}
</ul>
<Divider className="not-in-mobile" />
<ul>
{link2.map(({ name, href }, idx) => (
<li key={name}>
Expand Down Expand Up @@ -94,7 +95,6 @@ const YappInfo = styled.div`
display: flex;
align-items: center;
flex-direction: row;
gap: 15px;

& ul {
display: flex;
Expand All @@ -108,6 +108,7 @@ const YappInfo = styled.div`
}

${media.mobile} {
gap: 15px;
flex-direction: column;
align-items: flex-start;
}
Expand All @@ -125,6 +126,12 @@ const Divider = styled.div`
height: 14px;
background: ${({ theme }) => theme.palette.black_20};
margin: 0 13px;

${media.mobile} {
&.not-in-mobile {
display: none;
}
}
`;

const Copyright = styled.div`
Expand Down
9 changes: 7 additions & 2 deletions components/common/Header/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ function Header(): ReactElement {
}

const HeaderBlock = styled.header`
display: flex;
justify-content: center;
width: 100%;
border-bottom: 1px solid ${({ theme }) => theme.palette.black_5};
background-color: ${({ theme }) => theme.palette.black_10};
Expand All @@ -68,7 +70,9 @@ const HeaderBlock = styled.header`
`;

const HeaderInner = styled.div`
height: 70px;
width: 100%;
max-width: 1200px;
height: 60px;
padding: 0 80px;
display: flex;
justify-content: space-between;
Expand All @@ -86,9 +90,10 @@ const Logo = styled(YappLogo)`

const HeaderMenu = styled.div`
width: 470px;
gap: 56px;
display: flex;
align-items: center;
justify-content: space-between;
justify-content: flex-end;
${media.mobile} {
display: none;
}
Expand Down
60 changes: 34 additions & 26 deletions components/common/JoinSection/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,54 @@ import styled from 'styled-components';
import media from 'styles/media';
import SectionTemplate from '../../home/SectionTemplate';
import SectionTitle from '../SectionTitle';
import { useRouter } from 'next/router';
import Button from '../Button';
import Yapp from 'constants/yapp';

interface JoinSectionProps {
title?: string;
subTitle?: string;
btnText?: string;
caution?: string;
url?: string;
}

function JoinSection({
title,
subTitle,
btnText,
caution,
url,
}: JoinSectionProps): ReactElement {
const router = useRouter();

return (
<JoinSectionContainer>
<ImageContainer>
<InnerContainer>
<SectionTitle
title={title || 'FIND YOUR BALANCE'}
subTitle={
subTitle || `지원하기 버튼 하나로\nYAPP 27기의 야뿌가 되어보세요.`
}
align="center"
/>
<Button
type="button"
variant="primary"
onClick={() => {
if (!url) {
window.open(Yapp.YAPP_RECRUIT_ALL, '_blank');
} else {
window.open(url, '_blank');
<SectionInner>
<ImageContainer>
<InnerContainer>
<SectionTitle
title={title || 'FIND YOUR BALANCE'}
subTitle={
subTitle ||
`지원하기 버튼 하나로\nYAPP 27기의 야뿌가 되어보세요.`
}
}}
>
{btnText || '27기 지원하기'}
</Button>
</InnerContainer>
</ImageContainer>
caution={caution}
align="center"
/>
<Button
type="button"
variant="primary"
onClick={() => {
if (!url) {
window.open(Yapp.YAPP_RECRUIT_ALL, '_blank');
} else {
window.open(url, '_blank');
}
}}
>
{btnText || '27기 지원하기'}
</Button>
</InnerContainer>
</ImageContainer>
</SectionInner>
</JoinSectionContainer>
);
}
Expand All @@ -62,6 +65,11 @@ const JoinSectionContainer = styled(SectionTemplate)`
}
`;

const SectionInner = styled.div`
max-width: 1200px;
width: 100%;
`;

const ImageContainer = styled.div`
position: relative;
width: 100%;
Expand Down
1 change: 0 additions & 1 deletion components/common/NewsCard/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ const StyledNewsCard = styled.div<{
min-width: 330px;
min-height: 480px;
border-radius: 25px;
margin: 15px;
background-color: ${({ theme, color }) => theme.palette[color]};
color: ${({ theme, fontColor }) => theme.palette[fontColor]};
cursor: pointer;
Expand Down
1 change: 1 addition & 0 deletions components/common/ProjectCard/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ const StyledProjectCard = styled.div<{ isSubCard?: boolean }>`
overflow: hidden;
will-change: transform;
animation: ${fadeIn} 0.5s ease-in-out;
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.12);

${({ isSubCard }) =>
isSubCard
Expand Down
31 changes: 27 additions & 4 deletions components/common/SectionTitle/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ interface SectionTitleProps {
subFontColor?: PaletteKeyTypes;
title?: string;
subTitle?: string;
align?: 'left' | 'center' | 'right';
caution?: string;
align?: 'flex-start' | 'center' | 'right';
}

function SectionTitle({
Expand All @@ -18,23 +19,31 @@ function SectionTitle({
subFontColor = 'white_50',
title = '',
subTitle = '',
align = 'left',
align = 'flex-start',
caution,
}: SectionTitleProps): ReactElement {
return (
<TitleBox align={align}>
<StyledTitle className={className} fontColor={fontColor}>
{title}
</StyledTitle>
<StyledSubTitle subFontColor={subFontColor}>{subTitle}</StyledSubTitle>
{caution && (
<CautionText subFontColor={subFontColor}>{caution}</CautionText>
)}
</TitleBox>
);
}

const TitleBox = styled.div<{ align: 'left' | 'center' | 'right' }>`
const TitleBox = styled.div<{ align: 'flex-start' | 'center' | 'right' }>`
width: 100%;
display: flex;
flex-direction: column;
align-items: ${({ align }) => align};

${media.mobile} {
margin: 0 12px;
}
`;

const StyledSubTitle = styled.span<{ subFontColor: PaletteKeyTypes }>`
Expand All @@ -52,12 +61,26 @@ const StyledSubTitle = styled.span<{ subFontColor: PaletteKeyTypes }>`
const StyledTitle = styled.span<{ fontColor: PaletteKeyTypes }>`
color: ${({ theme, fontColor }) => theme.palette[fontColor]};
${({ theme }) => theme.textStyleV2.resp.title1_md};
white-space: nowrap;
white-space: pre-line;

${media.mobile} {
width: max-content;
${({ theme }) => theme.textStyleV2.resp.title1_sm};
white-space: break-spaces;
}
`;

const CautionText = styled.span<{ subFontColor: PaletteKeyTypes }>`
color: ${({ theme, subFontColor }) => theme.palette[subFontColor]};
${({ theme }) => theme.textStyleV2.resp.caption_md};
margin-top: 6px;
white-space: pre-line;

${media.mobile} {
width: max-content;
${({ theme }) => theme.textStyleV2.resp.caption_sm};
white-space: break-spaces;
}
`;

export default SectionTitle;
Loading