diff --git a/components/common/AnimatedButton/index.tsx b/components/common/AnimatedButton/index.tsx index 550dda3..86f51f2 100644 --- a/components/common/AnimatedButton/index.tsx +++ b/components/common/AnimatedButton/index.tsx @@ -85,7 +85,7 @@ const ButtonStyled = styled(Button)<{ variant?: AnimatedButtonVariant }>` variant === 'primary' ? css` background: ${({ theme }) => theme.palette.grey_900}; - color: ${({ theme }) => theme.palette.orange_300}; + color: ${({ theme }) => theme.palette.blue_200}; ` : css` background: ${({ theme }) => theme.palette.orange_400}; diff --git a/components/common/FloatingButton/index.tsx b/components/common/FloatingButton/index.tsx index deddb77..060160d 100644 --- a/components/common/FloatingButton/index.tsx +++ b/components/common/FloatingButton/index.tsx @@ -1,10 +1,10 @@ -import React, { useState } from 'react'; +import Button from 'components/common/Button'; +import Yapp from 'constants/yapp'; +import { Facebook, Kakao, Mail, Plus } from 'public/assets/icons'; import type { ReactElement } from 'react'; +import { useState } from 'react'; import styled, { css } from 'styled-components'; -import Button from 'components/common/Button'; -import { Mail, Facebook, Plus, Kakao } from 'public/assets/icons'; import media from 'styles/media'; -import Yapp from 'constants/yapp'; function FloatingButton(): ReactElement { const [visible, setVisible] = useState(false); @@ -80,7 +80,7 @@ const TriggerButton = styled(Button)<{ visible: boolean }>` right: 48px; z-index: 10000; background: ${({ theme }) => - `linear-gradient(208.15deg, ${theme.palette.orange_300} 12.08%, ${theme.palette.orange_500} 86.71%)`}; + `linear-gradient(208.15deg, ${theme.palette.blue_100} 12.08%, ${theme.palette.blue_100} 86.71%)`}; ${media.mobile} { width: 48px; diff --git a/components/common/HamburgerMenu/index.tsx b/components/common/HamburgerMenu/index.tsx index 520ba7f..762ff8a 100644 --- a/components/common/HamburgerMenu/index.tsx +++ b/components/common/HamburgerMenu/index.tsx @@ -1,9 +1,9 @@ -import { ReactElement, useEffect } from 'react'; import { HEADER_MENUS } from 'constants/headerMenus'; +import Link from 'next/link'; +import { useRouter } from 'next/router'; +import { ReactElement, useEffect } from 'react'; import styled from 'styled-components'; import { fadeIn } from 'styles/utils-styles'; -import { useRouter } from 'next/router'; -import Link from 'next/link'; interface HamburgerMenuProps { handleOpenMenu: () => void; @@ -72,7 +72,7 @@ const MenuItem = styled.a<{ active: boolean }>` cursor: pointer; ${({ theme }) => theme.textStyle.mobile.Title_1} color: ${({ theme, active }) => - active ? theme.palette.orange_400 : theme.palette.white}; + active ? theme.palette.blue_100 : theme.palette.white}; `; const Background = styled.div` diff --git a/components/common/Header/index.tsx b/components/common/Header/index.tsx index d304f3a..eb46d49 100644 --- a/components/common/Header/index.tsx +++ b/components/common/Header/index.tsx @@ -1,15 +1,15 @@ +import HamburgerMenu from 'components/common/HamburgerMenu'; import Breakpoints from 'constants/breakpoints'; import { HEADER_MENUS } from 'constants/headerMenus'; +import Path from 'constants/path'; +import useToggle from 'hooks/useToggle'; +import useWindowDimensions from 'hooks/useWindowDimensions'; import Link from 'next/link'; import { useRouter } from 'next/router'; import { Hamburger, YappLogo } from 'public/assets/icons'; -import React, { ReactElement, useEffect, useRef } from 'react'; +import { ReactElement, useEffect, useRef } from 'react'; import styled from 'styled-components'; import media from 'styles/media'; -import useToggle from 'hooks/useToggle'; -import HamburgerMenu from 'components/common/HamburgerMenu'; -import useWindowDimensions from 'hooks/useWindowDimensions'; -import Path from 'constants/path'; function Header(): ReactElement { const { asPath } = useRouter(); @@ -98,7 +98,7 @@ const HeaderMenu = styled.div` const MenuText = styled.a<{ active: boolean }>` cursor: pointer; color: ${({ theme, active }) => - active ? theme.palette.orange_400 : theme.palette.white}; + active ? theme.palette.blue_100 : theme.palette.white}; ${({ theme }) => theme.textStyle.web.Category}; `; diff --git a/components/common/TabMenu/index.tsx b/components/common/TabMenu/index.tsx index 8ee167d..3051a32 100644 --- a/components/common/TabMenu/index.tsx +++ b/components/common/TabMenu/index.tsx @@ -1,9 +1,9 @@ +import { FieldNameTypes } from 'components/recruit/RecruitField'; import type { Dispatch, ReactElement, SetStateAction } from 'react'; import styled, { css } from 'styled-components'; -import { FieldNameTypes } from 'components/recruit/RecruitField'; -import { ProjectField } from 'types/project'; -import { PaletteKeyTypes } from 'styles/theme'; import media from 'styles/media'; +import { PaletteKeyTypes } from 'styles/theme'; +import { ProjectField } from 'types/project'; interface ITabMenuStyle { backgroundColor?: PaletteKeyTypes; @@ -105,7 +105,7 @@ const AnimatedBackground = styled.span< } border-radius: 124px; - background-color: ${({ theme }) => theme.palette.orange_400}; + background-color: ${({ theme }) => theme.palette.blue_100}; transition: all 0.2s ease-in-out; `; diff --git a/components/home/AnimatedTextSection/index.tsx b/components/home/AnimatedTextSection/index.tsx index ad75e25..d5cbfa4 100644 --- a/components/home/AnimatedTextSection/index.tsx +++ b/components/home/AnimatedTextSection/index.tsx @@ -37,7 +37,7 @@ function AnimatedTextSection(): ReactElement { { diff --git a/components/home/IntroSection/Banner25th.tsx b/components/home/IntroSection/Banner25th.tsx new file mode 100644 index 0000000..a01cda2 --- /dev/null +++ b/components/home/IntroSection/Banner25th.tsx @@ -0,0 +1,168 @@ +import YappSubTitle from 'public/assets/images/25th/yapp_subtitle.svg'; +import YappuLogo from 'public/assets/images/25th/yappu.svg'; +import { useEffect, useState } from 'react'; +import styled from 'styled-components'; +import media from 'styles/media'; + +const Banner25th = () => { + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setMounted(true); + }, []); + + return ( + <> + + + + + +

+ 큐브를 완성할 +
+ 25기 야뿌를 찾습니다 +

+ {/* */} +
+ + + + ); +}; + +export default Banner25th; + +const BannerBackgroundInner = styled.div` + width: 100%; + height: 100%; + margin: 0 auto; + display: flex; + justify-content: center; + align-items: center; + + transform: scale(0.8); + opacity: 0; + transition: transform 2s ease, opacity 2s ease; + + &.appear { + transform: scale(1); + opacity: 1; + } + + background-size: cover; + background-repeat: no-repeat; + background-position: center center; + background-image: url('/assets/images/25th/banner-pc.png'); + + ${media.mobile} { + background-image: url('/assets/images/25th/banner-tablet.png'); + } + + ${media.small} { + background-image: url('/assets/images/25th/banner-phone.png'); + } +`; + +const CubeBox = styled.div` + width: 900px; + height: 376px; + margin: 0 auto; + + background-size: cover; // 비율을 고정하여 화면에 맞게 조정 + background-repeat: no-repeat; + background-position: center center; + background-image: url('/assets/images/25th/cube-pc.png'); + + ${media.mobile} { + width: 680px; + height: 287px; + background-image: url('/assets/images/25th/cube-tablet.png'); + } + + ${media.small} { + width: 287px; + height: 120px; + background-image: url('/assets/images/25th/cube-mobile.png'); + } +`; +const Banner24thTextContentBox = styled.div` + position: absolute; + top: 10%; + left: 50%; + z-index: 20; + flex: 1; + display: flex; + height: fit-content; + flex-direction: column; + justify-content: center; + align-items: center; + white-space: nowrap; + gap: 2rem; + + transition: transform 2s ease, opacity 2s ease; + transform: translate3d(-50%, -2rem, 0); + opacity: 0; + + &.appear { + transform: translate3d(-50%, 0, 0); + opacity: 1; + } + + & > h3 { + margin: 0; + text-align: center; + font-size: 4.25rem; + font-weight: 700; + line-height: 125%; + letter-spacing: -0.07rem; + color: ${({ theme }) => theme.palette.white}; + } + ${media.mobile} { + & > h3 { + font-size: 3rem; + letter-spacing: -0.032rem; + } + } + ${media.small} { + top: 20%; + gap: 1rem; + + & > h3 { + font-size: 2rem; + letter-spacing: -0.032rem; + } + } +`; + +const BannerTitleBox = styled.div` + display: flex; + gap: 1rem; + height: fit-content; + flex-direction: column; + justify-content: center; + align-items: center; + + ${media.small} { + gap: 0.8rem; + } +`; + +const YappuLogoBox = styled(YappuLogo)` + width: 44.38px; + height: 36.95px; + ${media.small} { + width: 2rem; + height: 2rem; + } +`; + +const YappSubTitleBox = styled(YappSubTitle)` + width: 254px; + height: 48px; + + ${media.small} { + width: 161px; + height: 30px; + } +`; diff --git a/components/home/IntroSection/index.tsx b/components/home/IntroSection/index.tsx index 0aa24ba..53aed5a 100644 --- a/components/home/IntroSection/index.tsx +++ b/components/home/IntroSection/index.tsx @@ -3,7 +3,7 @@ import type { MouseEvent, ReactElement } from 'react'; import { useState } from 'react'; import styled from 'styled-components'; import media from 'styles/media'; -import Banner24th from './Banner24th'; +import Banner25th from './Banner25th'; function IntroSection(): ReactElement { const [isHover, setIsHover] = useState(false); @@ -24,7 +24,7 @@ function IntroSection(): ReactElement { onMouseLeave={handleEnter} onMouseMove={handleMove} > - + ); @@ -82,54 +82,4 @@ const ArrowDownConatiner = styled.div` } `; -const MainBanner = styled.div` - position: absolute; - width: 100%; - height: 100%; - background-color: ${({ theme }) => theme.palette.black}; -`; - -const Dimension = styled.span` - position: absolute; - width: 100%; - height: 100%; - opacity: 0.5; - z-index: 2; - background-color: ${({ theme }) => theme.palette.black}; -`; - -const ContentWrapper = styled.div` - text-align: center; - z-index: 3; -`; - -const TitleContainer = styled.div` - margin: 0 5px 48px 5px; - text-align: center; - word-break: keep-all; - - .main-text { - color: ${({ theme }) => theme.palette['white']}; - font-family: 'Poppins-ExtraBold'; - font-size: 80px; - font-weight: 800; - line-height: 100%; - letter-spacing: 0; - - ${media.mobile} { - font-size: 58px; - font-weight: 800; - line-height: 100%; - letter-spacing: 0; - } - - ${media.small} { - font-size: 32px; - font-weight: 800; - line-height: 100%; - letter-spacing: 0; - } - } -`; - export default IntroSection; diff --git a/components/home/NewsSection/index.tsx b/components/home/NewsSection/index.tsx index d26f369..356df2e 100644 --- a/components/home/NewsSection/index.tsx +++ b/components/home/NewsSection/index.tsx @@ -35,6 +35,16 @@ const SocialContainer = styled(SectionTemplate)` const CardContainer = styled.article` margin: 49px 0; text-align: center; + + display: grid; + grid-template-columns: 1fr 1fr 1fr; + + ${media.mobile} { + grid-template-columns: 1fr 1fr; + } + ${media.small} { + grid-template-columns: 1fr; + } `; const StyledButton = styled(Button)` diff --git a/components/home/SponsorSection/index.tsx b/components/home/SponsorSection/index.tsx index 2467b66..9b9eb49 100644 --- a/components/home/SponsorSection/index.tsx +++ b/components/home/SponsorSection/index.tsx @@ -30,7 +30,7 @@ function SponsorSection(): ReactElement { width={148} height={65} fontColor="white" - buttonColor="orange_400" + buttonColor="blue_100" > 후원 문의 @@ -88,7 +88,7 @@ const Sponsor = styled.li` const StyledButton = styled(Button)` transition: background-color 0.5s; &:hover { - background-color: ${({ theme }) => theme.palette.orange_600}; + background-color: ${({ theme }) => theme.palette.blue_200}; } ${media.mobile} { diff --git a/components/recruit/Enquiry/index.tsx b/components/recruit/Enquiry/index.tsx index eb4782b..fcc8223 100644 --- a/components/recruit/Enquiry/index.tsx +++ b/components/recruit/Enquiry/index.tsx @@ -1,11 +1,11 @@ -import React, { ReactElement } from 'react'; -import DOMPurify from 'isomorphic-dompurify'; import { Button } from 'components/common'; import Breakpoints from 'constants/breakpoints'; +import Yapp from 'constants/yapp'; import { RECRUIT_ENQUIRY } from 'database/recruit'; +import DOMPurify from 'isomorphic-dompurify'; +import { ReactElement } from 'react'; import styled from 'styled-components'; import media from 'styles/media'; -import Yapp from 'constants/yapp'; function Enquiry(): ReactElement { const { title, description, buttonName } = RECRUIT_ENQUIRY; @@ -22,7 +22,7 @@ function Enquiry(): ReactElement { @@ -95,7 +95,7 @@ const EnquiryButton = styled(Button)` &:hover { color: ${({ theme }) => theme.palette.white}; - background-color: ${({ theme }) => theme.palette.yellow_600}; + background-color: ${({ theme }) => theme.palette.blue_100}; } ${media.mobile} { diff --git a/components/recruit/RecruitBanner/index.tsx b/components/recruit/RecruitBanner/index.tsx index 9ce265c..22b0a9d 100644 --- a/components/recruit/RecruitBanner/index.tsx +++ b/components/recruit/RecruitBanner/index.tsx @@ -70,7 +70,7 @@ const ApplyButton = styled(Button)` const RecruitBannerContainer = styled.div` width: 100%; - background-color: ${({ theme }) => theme.palette.yellow_400}; + background-color: ${({ theme }) => theme.palette.blue_200}; `; const BannerInner = styled.div` diff --git a/components/recruit/RecruitField/RecruitDeveloper.tsx b/components/recruit/RecruitField/RecruitDeveloper.tsx index a9bc85b..b7969d2 100644 --- a/components/recruit/RecruitField/RecruitDeveloper.tsx +++ b/components/recruit/RecruitField/RecruitDeveloper.tsx @@ -74,10 +74,10 @@ const DeveloperItem = styled.button<{ isSelected: boolean }>` ${({ isSelected }) => isSelected && css` - color: ${({ theme }) => theme.palette.orange_500}; - border-bottom: 4px solid ${({ theme }) => theme.palette.orange_500}; + color: ${({ theme }) => theme.palette.blue_100}; + border-bottom: 4px solid ${({ theme }) => theme.palette.blue_100}; ${media.mobile} { - border-bottom: 2px solid ${({ theme }) => theme.palette.orange_500}; + border-bottom: 2px solid ${({ theme }) => theme.palette.blue_100}; } `} height: 100%; diff --git a/constants/yapp.ts b/constants/yapp.ts index 59e27a0..8d0f182 100644 --- a/constants/yapp.ts +++ b/constants/yapp.ts @@ -1,6 +1,6 @@ const Yapp = { YAPP_NAME: 'YAPP', - YAPP_GENERATION: 24, // 기수 + YAPP_GENERATION: 25, // 기수 YAPP_OFFICIAL_EMAIL: 'support@yapp.co.kr', YAPP_OFFICIAL_KAKAO: '@YAPP', YAPP_OFFICIAL_FACEBOOK: '@YAPP', @@ -18,7 +18,7 @@ const Yapp = { YAPP_RECRUIT_IOS: 'https://yapp-recruit.career.greetinghr.com/o/106736', YAPP_RECRUIT_ANDROID: 'https://yapp-recruit.career.greetinghr.com/o/106737', YAPP_RECRUIT_FRONT_END: 'https://yapp-recruit.career.greetinghr.com/o/106738', - YAPP_RECRUIT_BACK_END: 'https://yapp-recruit.career.greetinghr.com/o/106739', + YAPP_RECRUIT_BACK_END: 'https://yapp-recruit.career.greetinghr.com/o/129838', YAPP_RECRUIT_CROSS_PLATFORM: 'https://yapp-recruit.career.greetinghr.com/o/106740', } as const; diff --git a/database/home.ts b/database/home.ts index 74cfdae..e66ee9b 100644 --- a/database/home.ts +++ b/database/home.ts @@ -6,7 +6,7 @@ export const CURRENT_INFO_DATA = [ }, { title: '운영 기수 ⛳️', - content: '24기', + content: '25기', }, { title: '현재 활동 회원 🏃🏻‍♀️', @@ -29,40 +29,53 @@ export const CURRENT_INFO_DATA = [ /** Carousel에 들어갈 프로젝트 데이터 */ export const CAROUSEL_DATA = [ { - title: '바로', - link: '/project/23rd/baro', - image: '/assets/project/23_thumbnail_baro.png', + title: 'Few', + link: '/project/24th/few', + image: '/assets/project/24_thumbnail_few.png', }, { - title: 'fullcar', - link: '/project/23rd/fullcar', - image: '/assets/project/23_thumbnail_fullcar.png', + title: 'InspoMailClub', + link: '/project/24th/inspo_mail_club', + image: '/assets/project/24_thumbnail_inspo_mail_club.png', }, { - title: '링커', - link: '/project/23rd/linker', - image: '/assets/project/23_thumbnail_linker.png', + title: 'MAFOO', + link: '/project/24th/mafoo', + image: '/assets/project/24_thumbnail_mafoo.png', }, { - title: '머니몽', - link: '/project/23rd/moneymong', - image: '/assets/project/23_thumbnail_moneymong.png', + title: 'Wespot', + link: '/project/24th/wespot', + image: '/assets/project/24_thumbnail_wespot.png', }, { - title: '수수', - link: '/project/23rd/susu', - image: '/assets/project/23_thumbnail_susu.png', + title: 'Trouble Painter', + link: '/project/24th/trouble_painter', + image: '/assets/project/24_thumbnail_trouble_painter.png', }, { - title: '여비', - link: '/project/23rd/yeobee', - image: '/assets/project/23_thumbnail_yeobee.png', + title: 'Showpot', + link: '/project/24th/showpot', + image: '/assets/project/24_thumbnail_showpot.png', + }, + { + title: 'Pokit', + link: '/project/24th/pokit', + image: '/assets/project/24_thumbnail_pokit.png', }, ]; /** Social News Card */ // 태그 형식 가능합니다. export const NEWS_DATA = [ + { + image: '/assets/images/25th/social.png', + link: 'https://www.instagram.com/about.yapp/', + content: `🧡YAPP 25기 신규 회원 모집 OPEN🧡
+10월 19일 (토) ~ 10월 26일 (토) 23시 59분 YAPP 25기 신규 회원을 모집해요! +함께 큐브를 완성해줄 예비 야뿌들의 많은 지원 부탁드립니다! + `, + }, { image: '/assets/images/24th/social.webp', link: 'https://www.instagram.com/about.yapp/', diff --git a/database/metaData.ts b/database/metaData.ts index 146c13d..95d9b56 100644 --- a/database/metaData.ts +++ b/database/metaData.ts @@ -10,7 +10,7 @@ const metaData = { 'YAPP, yapp, 동아리, 연합 동아리, IT 동아리, 개발 동아리, 대학교 동아리, 대학생 연합 동아리, 대외활동, 외부활동, 사이드 프로젝트, 개발, 개발자, 프론트엔드, 백엔드, 디자이너, PM', type: 'website', siteUrl: 'https://yapp.co.kr', - image: '/assets/images/og_24th.png', + image: '/assets/images/og_25th.png', locale: 'ko_KR', analytics: { google: 'G-MPQ55K4DB3', diff --git a/database/recruit.ts b/database/recruit.ts index 7429a52..68490a6 100644 --- a/database/recruit.ts +++ b/database/recruit.ts @@ -9,7 +9,7 @@ import Yapp from 'constants/yapp'; */ /* 현재 모집중이면 true 아니면 false */ -export const IS_RECRUITING = false; +export const IS_RECRUITING = true; /** Banner */ export const RECRUIT_BANNER = { @@ -34,8 +34,7 @@ export const RECRUIT_OVERVIEW = { overviewContents: [ { subTitle: '인재상', - description: `프로덕트 오너십을 가지고 능동적으로 - 문제를 해결하는 열정적인 누구나`, + description: `책임감을 가지고 팀과 함께 프로덕트를 만들어나갈 수 있는 누구나`, }, { subTitle: '지원자격', @@ -60,23 +59,22 @@ export const RECRUIT_SCHEDULE = { schedules: [ { subTitle: '서류 접수', - description: `2024. 04. 05. (금) - ~ 04. 13. (토) 23:59 - ※ PM : 04. 16 (화) 23:59`, + description: `2024. 10. 19. (토) + ~ 10. 26. (토) 23:59`, }, { subTitle: '서류 결과 발표', - description: `2024. 04. 17. (수) - ※ PM : 04. 21 (일) 발표 예정`, + description: `2024. 10. 30. (수) + `, }, { subTitle: '온라인 인터뷰', - description: `2024. 04. 26. (금) - ~ 04. 30. (화)`, + description: `2024. 11. 01. (금) + ~ 11. 3. (일)`, }, { subTitle: '최종 발표', - description: `2024. 05. 03. (금)`, + description: `2024. 11. 09. (토)`, }, ], }; @@ -139,7 +137,7 @@ export const RECRUIT_DEVELOPER_FIELD_NAMES: DeveloperFieldName[] = [ 'Android', 'Web', 'Server', - 'Flutter', + // 'Flutter', ]; /* PM */ @@ -173,29 +171,29 @@ export const RECRUIT_EXPLAIN_DESIGNER = { /* iOS */ export const RECRUIT_EXPLAIN_IOS_DEVELOPER = { - content1: `팀 내에서 iOS 클라이언트 개발을 담당합니다.
-Server, PM, 디자인분들과 함께 프로젝트를 진행하며,
+ content1: `팀 내에서 iOS 네이티브 앱 개발을 담당합니다.
+클라이언트 개발자, PM, 디자인분들과 함께 프로젝트를 진행하며,
원할 경우 팀 내에서 세미나를 열 수도 있으며 스터디를 진행할 수도 있습니다.`, - content2: `1. Swift, UIKit, SwiftUI와 아이폰 앱 개발에 대한 기본적 이해를 가지신 분
- 2. 프로젝트를 완성시키고자 하는 의지와 열정을 가지신 분
- 3. 주도적으로 문제를 해결하고 책임감이 있으신 분
- 4. 코드리뷰에 적극적으로 참여하시는 분
- 5. 나만의 서비스를 만들어서 운영까지 진행해 보고 싶으신 분`, - content3: `1. 디자이너와의 프로젝트 경험
- 2. RESTful API에 대한 이해
+ content2: `1. Swift와 UIKit/SwiftUI를 이용해 아이폰 앱 개발이 가능하신 분
+ 2. 프로젝트의 좋은 결과 만들어내고자 하는 열정과 의지를 가지신 분
+ 3. 주도적으로 문제 해결에 참여하고, 책임감이 있으신 분
+ 4. 코드리뷰에 관심이 있고 기술 관련 논의에 적극적이신분
+ 5. 자신만의 프로젝트를 출시하고 운영까지 해보고 싶으신 분`, + content3: `1. 다른 개발자 및 직군과의 프로젝트 경험
+ 2. RESTful API에 대한 이해와 활용 능력
3. MVC, MVVM 등 아키텍쳐 패턴과 iOS Platform Architecture에 대한 이해`, }; /* Android */ export const RECRUIT_EXPLAIN_ANDROID_DEVELOPER = { - content1: `팀 내에서 Android 클라이언트 개발을 담당합니다.
+ content1: `팀 내에서 Android 네이티브 앱 개발을 담당합니다.
Server, PM, 디자인분들과 함께 프로젝트를 진행하며,
원할 경우 팀 내에서 세미나를 열 수도 있으며 스터디를 진행할 수도 있습니다.`, - content2: `1. java, kotlin 등 안드로이드 개발 언어를 사용하신 분
+ content2: `1. Java, Kotlin와 XML 또는 Jetpack Compose 기반 UI 개발 경험이 있으신 분
2. 모르는 부분이 생기면 주저않고 질문이 가능하신 분
- 3. 끈기있게 프로젝트를 진행해주실 분
- 4. 나만의 서비스를 만들어서 운영까지 진행해 보고 싶으신 분`, - content3: `1. 디자이너, 백엔드 개발자와의 소통 경험
+ 3. 코드 리뷰와 기술 관련 논의에 적극적이며 열정과 의지를 가지신 분
+ 4. 마지막까지 프로젝트를 책임감 있게 완수하실 분`, + content3: `1. Server 개발자, PM, 디자이너와의 소통 경험
2. GitHub를 사용한 협업 프로젝트 경험`, }; @@ -204,13 +202,13 @@ export const RECRUIT_EXPLAIN_WEB_DEVELOPER = { content1: `팀 내에서 웹 프론트엔드 개발을 담당합니다.
Server, PM, 디자인분들과 함께 프로젝트를 진행하며,
원할 경우 팀 내에서 세미나를 열 수도 있으며 스터디를 진행할 수도 있습니다.`, - content2: `1. HTML과 CSS 기본을 이해하고 계신 분
- 2. 자바스크립트로 프로젝트를 해보고 싶은 분
- 3. 마지막까지 프로젝트를 완수하실 분
- 4. 나만의 서비스를 만들어서 운영까지 진행해 보고 싶으신 분`, - content3: `1. react vue angular중 하나 이상 다뤄 본 경험
- 2. Git을 이용한 프로젝트 관리 경험
- 3. 디자이너, 백엔드 개발자, PM과 소통 경험`, + content2: `1. HTML, CSS, Javascript, React를 이해하고 계신 분
+ 2. 코드 리뷰와 기술 관련 논의에 적극적이며 열정과 의지를 가지신 분
+ 3. 마지막까지 책임감을 가지고 프로젝트를 완수하실 분
+ 4. 우리의 서비스를 만들어서 YAPP 활동 이후 운영까지 진행해 보고 싶으신 분`, + content3: `1. Server 개발자, PM, 디자이너와의 소통 경험
+ 2. GitHub를 사용한 협업 프로젝트 경험
+ 3. 새로운 프론트엔드 기술에 도전해본 경험`, }; /* Server */ @@ -218,12 +216,13 @@ export const RECRUIT_EXPLAIN_SERVER_DEVELOPER = { content1: `팀 내에서 Server 개발을 담당합니다.
클라이언트 개발자, PM, 디자인분들과 함께 프로젝트를 진행하며,
원할 경우 팀 내에서 세미나를 열 수도 있으며 스터디를 진행할 수도 있습니다.`, - content2: `1. 데이터베이스의 기초가 있으신 분
-2. 일반적으로 사용하는 RESTful에 대한 이해가 있으신 분
-3. 마지막까지 프로젝트를 완수하실분
-4. 나만의 서비스를 만들어서 운영까지 진행해 보고 싶으신 분`, - content3: `1. 언어 상관 없이 RESTful API를 만들어 본 경험
-2. PM와의 소통 경험
+ content2: `1. Kotlin/Java와 Spring Framework에 대한 이해가 있으신 분
+2. 데이터베이스의 기초가 있으신 분
+3. 일반적으로 사용하는 RESTful에 대한 이해가 있으신 분
+4. 책임감을 가지고 마지막까지 프로젝트를 완수하실 분
+5. 나만의 서비스를 만들어서 운영까지 진행해 보고 싶으신 분`, + content3: `1. Kotlin/Java로 Spring Framework 기반의 서비스를 개발한 경험
+2. PM 직군과의 소통 경험
3. Git을 이용한 프로젝트 관리 경험`, }; diff --git a/public/assets/images/25th/banner-pc.png b/public/assets/images/25th/banner-pc.png new file mode 100644 index 0000000..339926d Binary files /dev/null and b/public/assets/images/25th/banner-pc.png differ diff --git a/public/assets/images/25th/banner-phone.png b/public/assets/images/25th/banner-phone.png new file mode 100644 index 0000000..477a91b Binary files /dev/null and b/public/assets/images/25th/banner-phone.png differ diff --git a/public/assets/images/25th/banner-tablet.png b/public/assets/images/25th/banner-tablet.png new file mode 100644 index 0000000..4cd060f Binary files /dev/null and b/public/assets/images/25th/banner-tablet.png differ diff --git a/public/assets/images/25th/social.png b/public/assets/images/25th/social.png new file mode 100644 index 0000000..166b71b Binary files /dev/null and b/public/assets/images/25th/social.png differ diff --git a/public/assets/images/25th/yapp_subtitle.svg b/public/assets/images/25th/yapp_subtitle.svg new file mode 100644 index 0000000..4263456 --- /dev/null +++ b/public/assets/images/25th/yapp_subtitle.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/25th/yappu.svg b/public/assets/images/25th/yappu.svg new file mode 100644 index 0000000..88b52a5 --- /dev/null +++ b/public/assets/images/25th/yappu.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/og_25th.png b/public/assets/images/og_25th.png new file mode 100644 index 0000000..b2de5ad Binary files /dev/null and b/public/assets/images/og_25th.png differ diff --git a/styles/theme.ts b/styles/theme.ts index 563c168..872f885 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -21,6 +21,10 @@ const palette = { yellow_500: '#FABB00', yellow_600: '#F5A810', + //blue + blue_100: '#007CFF', + blue_200: '#00B5FE', + // Orange orange_100: '#FFC9A5', orange_200: '#FFB27C',