Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
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
Binary file modified public/og-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/app/(auth)/signup/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export default function SignupPage() {
{/* 지원자 회원가입 카드 */}
<Link
href="/signup/applicant"
className="flex flex-1 flex-col items-center rounded-lg border-2 border-transparent bg-primary-orange-50 p-8 transition-all hover:scale-105 hover:border-primary-orange-300 hover:shadow-xl"
className="bg-primary-blue-50 flex flex-1 flex-col items-center rounded-lg border-2 border-transparent p-8 transition-all hover:scale-105 hover:border-primary-orange-300 hover:shadow-xl"
>
<div className="flex h-24 w-24 items-center justify-center rounded-full bg-primary-orange-50">
<FaUser className="h-12 w-12 text-primary-orange-300" />
Expand All @@ -41,7 +41,7 @@ export default function SignupPage() {
{/* 사장님 회원가입 카드 */}
<Link
href="/signup/owner"
className="flex flex-1 flex-col items-center rounded-lg border-2 border-transparent bg-primary-orange-50 p-8 transition-all hover:scale-105 hover:border-primary-orange-300 hover:shadow-lg"
className="bg-primary-blue-50 flex flex-1 flex-col items-center rounded-lg border-2 border-transparent p-8 transition-all hover:scale-105 hover:border-primary-orange-300 hover:shadow-lg"
>
<div className="flex h-24 w-24 items-center justify-center rounded-full bg-primary-orange-50">
<MdStorefront className="h-14 w-14 text-primary-orange-300" />
Expand Down
79 changes: 34 additions & 45 deletions src/app/(home)/page.tsx
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
태블릿 사이즈일때 글씨 크기가 좀 큰거같아요!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

모바일일때 인디게이터랑 간섭이 있습니다
image

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

인디게이터 클릭했을때 해당 섹션으로 이동이 된다면 더 좋을거같아요!
지금은 호버했을때 스타일은 바뀌는데 클릭했을때 동작은 따로 없는거같네용?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 없어요 근데 요런 랜딩페이지는 구간마다 링크설정은따로 안해도 될것 같은데 어떤가용🤔
랜딩페이지라 검색 엔진이나 광고성 디자인, 사용자가 얻을 수 있는 혜택에 관한 간단명료한 설명만 있으면 될 것 같아서요 !

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아항 그렇다면 제생각에는 호버했을때 스타일이 없는게 자연스러울거같습니다!

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import Image from "next/image";
import Lenis from "@studio-freight/lenis";
import { useMediaQuery } from "react-responsive";
import TypewriterText from "../components/animation/TypewriterText";
import { IoIosArrowDown } from "react-icons/io";

const slides = [
{
Expand Down Expand Up @@ -38,7 +39,7 @@ const slides = [
content: "언제든 다시 볼 수 있게\n공고를 스크랩하세요",
image: "/images/land/step2-2.jpg",
blackAreaTitle: "사장님 이용 방법",
blackAreaContent: "워크채널 우의 [폼 만들기] 버튼을 클릭하고\n인재 채용을 시작하세요",
blackAreaContent: "워크채널 우측의 [폼 만들기] 버튼을 클릭하고\n인재 채용을 시작하세요",
blackAreaImage: "/images/land/step2-1.jpg",
},
{
Expand Down Expand Up @@ -169,9 +170,7 @@ export default function LandingPage() {
ref={containerRef}
className={`relative h-[400vh] min-h-[768px] overflow-hidden ${isLargeScreen ? "" : "flex flex-col"}`}
>
<div className="absolute inset-0 opacity-20">
<div className="particles-container" />
</div>
<div className="to-black/30 absolute inset-0 bg-gradient-to-b from-transparent" />

<motion.div
className={`fixed inset-0 ${isLargeScreen ? "flex" : "flex flex-col"}`}
Expand All @@ -180,6 +179,7 @@ export default function LandingPage() {
WebkitBackdropFilter: "blur(8px)",
}}
>
{/* 내용 섹션에 새로운 스타일 적용 */}
<motion.div
className={`relative ${
isLargeScreen ? "w-1/2" : "flex h-1/2 w-full items-center justify-center overflow-hidden"
Expand All @@ -190,12 +190,12 @@ export default function LandingPage() {
}}
transition={{ duration: 0.8, ease: "easeInOut" }}
>
{/* 이미지 컨테이너에 새로운 효과 추가 */}
<motion.div
className="relative flex h-full w-full items-center justify-center"
animate={{
scale: currentSlide === 0 ? 1 : 0.8,
}}
transition={{ duration: 0.8, ease: "easeInOut" }}
initial={{ scale: 0.95, opacity: 0 }}
animate={{ scale: 1, opacity: 1 }}
transition={{ duration: 0.8, ease: "easeOut" }}
>
{currentSlide === 0 ? (
<Image
Expand All @@ -221,7 +221,7 @@ export default function LandingPage() {
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.3, duration: 0.6 }}
>
<TypewriterText text={slides[currentSlide].blackAreaTitle || ""} />
{slides[currentSlide].blackAreaTitle}
</motion.h2>
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand All @@ -240,6 +240,7 @@ export default function LandingPage() {
fill
style={{ objectFit: "cover" }}
sizes="(max-width: 768px) 100vw, 600px"
className="transition-transform duration-300 hover:scale-105"
/>
</div>
</motion.div>
Expand Down Expand Up @@ -271,36 +272,29 @@ export default function LandingPage() {
</motion.div>
)}
</motion.div>

{/* 스크롤 인디케이터 개선 */}
{currentSlide === 0 && (
<motion.div
className="absolute bottom-8 left-0 right-0 flex flex-col items-center"
animate={bounceAnimation}
>
<svg width="60" height="30" viewBox="0 0 60 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M2 2L30 28L58 2"
stroke="#71db77"
strokeWidth="4"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
<span className="mt-1 text-2xl font-semibold text-[#71db77]">scroll</span>
<div className="flex flex-col items-center rounded-full bg-white/10 p-3 backdrop-blur-sm">
<IoIosArrowDown className="text-2xl text-[#71db77]" />
<span className="mt-1 text-xs font-semibold text-[#71db77]">scroll</span>
</div>
</motion.div>
)}
</motion.div>

{/* 콘텐츠 섹션에 새로운 디자인 요소 추가 */}
<AnimatePresence mode="wait">
{currentSlide > 0 && (
<motion.div
className={`relative z-40 flex ${isLargeScreen ? "w-1/2" : "h-1/2 w-full"}`}
style={{
background: "linear-gradient(135deg, #71db77 0%, #56c45d 100%)",
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
height: isLargeScreen ? "100%" : "50%",
overflow: "hidden",
boxShadow: "0 0 30px rgba(113, 219, 119, 0.3)",
}}
initial={{ width: 0 }}
animate={{ width: isLargeScreen ? "50%" : "100%" }}
Expand All @@ -321,7 +315,7 @@ export default function LandingPage() {
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.05, duration: 0.3 }}
>
<TypewriterText text={slides[currentSlide].title} />
{slides[currentSlide].title}
</motion.h2>
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down Expand Up @@ -359,6 +353,7 @@ export default function LandingPage() {
</AnimatePresence>
</motion.div>

{/* 네비게이션 도트 개선 */}
{currentSlide > 0 && (
<motion.div
className={`fixed ${
Expand All @@ -368,25 +363,19 @@ export default function LandingPage() {
}`}
>
{slides.slice(1).map((_, index) => (
<motion.div
key={index + 1}
className="h-3 w-3 cursor-pointer rounded-full border-2 border-white/50"
whileHover={{ scale: 1.2 }}
animate={{
backgroundColor: index + 1 === currentSlide ? "#108b2d" : "transparent",
scale: index + 1 === currentSlide ? 1.2 : 1,
}}
onClick={() => {
if (!isScrollingRef.current) {
const targetScroll =
((index + 1) / (slides.length - 1)) * (containerRef.current?.scrollHeight || 0);
lenisRef.current?.scrollTo(targetScroll, {
duration: 1.2,
easing: (t) => t * (2 - t),
});
}
}}
/>
<motion.div key={index + 1} className="group relative h-3 w-3" whileHover={{ scale: 1.2 }}>
<motion.div className="absolute -inset-2 rounded-full bg-white/10 opacity-0 backdrop-blur-sm transition-opacity group-hover:opacity-100" />
<motion.div
className="h-full w-full cursor-pointer rounded-full border-2 border-white/50"
animate={{
backgroundColor: index + 1 === currentSlide ? "#108b2d" : "transparent",
scale: index + 1 === currentSlide ? 1.2 : 1,
}}
onClick={() => {
/* ... (기존 클릭 핸들러) */
}}
/>
</motion.div>
))}
</motion.div>
)}
Expand Down
4 changes: 2 additions & 2 deletions src/app/components/button/dropdown/FilterDropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ const FilterDropdown = ({ options, className = "", onChange, initialValue, readO
}}
disabled={readOnly}
>
<span className={selectedLabel === options[0] ? "text-black-100" : "text-primary-orange-300"}>
<span className={selectedLabel === options[0] ? "text-black-100" : "text-primary-orange-500"}>
{selectedLabel}
</span>
<IoIosArrowDown
className={cn(
"text-orange-400 transition-transform duration-200",
isOpen && "rotate-180",
selectedLabel === options[0] ? "text-grayscale-200" : "text-primary-orange-300"
selectedLabel === options[0] ? "text-grayscale-200" : "text-primary-orange-500"
)}
/>
</button>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const DropdownItem = ({
<li
onClick={handleClick}
className={cn(
"flex w-full cursor-pointer bg-grayscale-50 px-[10px] py-2 text-sm font-normal leading-[18px] text-black-100 hover:bg-primary-orange-50 lg:text-lg lg:leading-[26px]",
"hover:bg-primary-blue-50 flex w-full cursor-pointer bg-grayscale-50 px-[10px] py-2 text-sm font-normal leading-[18px] text-black-100 lg:text-lg lg:leading-[26px]",
itemStyle
)}
>
Expand Down
4 changes: 2 additions & 2 deletions src/app/components/chip/Chip.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ const Chip: React.FC<ChipProps> = ({
variant,
border,
icon,
textStyle = "text-sm md:text-base",
textStyle = "text-sm md:text-base font-bold",
}: ChipProps) => {
const wrapperStyle = "rounded flex items-center justify-center m-1";
const paddingStyle = icon
? "px-[8px] py-1 md:px-[12px] md:py-1 lg:px-[8px] lg:py-[6px]"
: "px-2 py-1 md:px-2 lg:py-[6px] lg:px-2";
const variantStyle =
variant === "positive" ? "bg-primary-orange-50 text-primary-orange-300" : "bg-line-100 text-grayscale-200";
variant === "positive" ? "bg-primary-blue-60 text-primary-orange-300" : "bg-line-100 text-grayscale-200";
const baseTextStyle =
"text-xs leading-[18px] md:leading-[20px] lg:text-sm lg:leading-[22px] font-medium tracking-tighter whitespace-nowrap";
const borderStyle = border ? "border border-primary-orange-100" : "";
Expand Down
25 changes: 24 additions & 1 deletion src/app/components/layout/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,29 @@ export default function Header() {
const [isSideMenuOpen, setIsSideMenuOpen] = useState(false);
const router = useRouter();

if (pathname === "/") {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

랜딩페이지에서 로그인/회원가입 으로 갈수있는 버튼이 있어야할거같아요

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

헤더에 보이는건 별로라 지금바로 시작하세요에 걸어놨어용

return (
<header className="fixed left-0 right-0 top-0 z-40" data-slide-header>
<nav className="mx-auto flex h-16 min-w-[327px] max-w-screen-xl items-center justify-end px-6">
<div className="flex items-center gap-4 md:gap-6">
<Link
href="/work-list"
className="text-sm text-white transition-colors hover:text-lime-400 md:text-base lg:text-lg"
>
워크 채널
</Link>
<Link
href="/work-talk"
className="text-sm text-white transition-colors hover:text-lime-400 md:text-base lg:text-lg"
>
워크톡
</Link>
</div>
</nav>
</header>
);
}

// 인증이 필요없는 공개 경로들
const handleLogout = async (e: React.MouseEvent<HTMLAnchorElement>) => {
e.preventDefault();
Expand Down Expand Up @@ -52,7 +75,7 @@ export default function Header() {
return (
<header className={headerStyle}>
<nav className={navStyle}>
{/* 로고와 메인 네비게이션 */}
{/* 로고의 메인 네비게이션 */}
<div className="flex items-center">
<Link href="/" className="flex items-center gap-[6px] text-xl">
<Image
Expand Down
2 changes: 1 addition & 1 deletion src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
<CustomCursor />
<MouseTrail />
<Header />
<main className="min-h-[80vh] pt-16">{children}</main>
<main className="min-h-[80vh] has-[header]:pt-16">{children}</main>
</ClientLayout>
<GoogleAnalytics gaId={process.env.NEXT_PUBLIC_GA_ID || ""} />
</body>
Expand Down
15 changes: 11 additions & 4 deletions tailwind.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,16 @@ const config: Config = {
primary: {
orange: {
50: "#fbfffd",
100: "#8ab08c",
200: "#64a466",
300: "#388e3c",
400: "#156719",
100: "#bde3bf",
200: "#94d597",
300: "#5ebd63", // 사용자 브랜드 색상
400: "#4b9f4d",
500: "#008957",
},
blue: {
50: "#ebf2ff",
60: "#f1fcff",
70: "#effcff",
100: "#535779",
200: "#3E415B",
300: "#2A2C3D",
Expand All @@ -54,6 +58,9 @@ const config: Config = {
state: {
error: "#FC4100",
},
header: {
100: "#7eca82",
},
},
fontFamily: {
nexon: ["var(--font-nexon)", "sans-serif"],
Expand Down
Loading