Skip to content

Commit 91221c7

Browse files
authored
Merge pull request #4 from Team-Stracker/feature/3-main-page-publishing
Feature/3 main page publishing
2 parents dd3c178 + d2d8901 commit 91221c7

File tree

6 files changed

+129
-6
lines changed

6 files changed

+129
-6
lines changed
Lines changed: 11 additions & 0 deletions
Loading

apps/web/src/app/page.tsx

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,54 @@
1+
"use client";
2+
import { Button, SearchInput, Contents } from "@web/components";
3+
4+
import { useRouter } from "next/navigation";
5+
16
export default function Home() {
2-
return <></>;
7+
const router = useRouter();
8+
return (
9+
<div className="flex flex-col gap-4">
10+
<div className="flex items-center justify-between pl-5 pr-7 pt-4 pb-4 border-b border-solid border-zinc-300">
11+
<img src="/assets/logoWithTexts.svg" />
12+
<Button
13+
size="small"
14+
backColor="blue"
15+
borderColor="blue"
16+
onClick={() => {
17+
router.push(`/login`);
18+
}}
19+
>
20+
시작하기
21+
</Button>
22+
</div>
23+
<div className="flex flex-col pt-6 pl-32 gap-10">
24+
<SearchInput />
25+
<div className="grid grid-cols-2 gap-10">
26+
<Contents
27+
img=""
28+
title="test"
29+
date="2025-06-01"
30+
tags={["test", "test", "test"]}
31+
/>
32+
<Contents
33+
img=""
34+
title="test"
35+
date="2025-06-01"
36+
tags={["test", "test", "test"]}
37+
/>
38+
<Contents
39+
img=""
40+
title="test"
41+
date="2025-06-01"
42+
tags={["test", "test", "test"]}
43+
/>
44+
<Contents
45+
img=""
46+
title="test"
47+
date="2025-06-01"
48+
tags={["test", "test", "test"]}
49+
/>
50+
</div>
51+
</div>
52+
</div>
53+
);
354
}

apps/web/src/components/button.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ interface ButtonProps {
88
backColor?: string;
99
textColor?: string;
1010
borderColor?: string;
11+
onClick?: () => void;
1112
}
1213

1314
const Button = ({
@@ -16,19 +17,21 @@ const Button = ({
1617
backColor,
1718
textColor,
1819
borderColor,
20+
onClick,
1921
}: ButtonProps) => {
2022
return (
2123
<div
2224
className={clsx(
23-
"flex items-center justify-center rounded-lg cursor-pointer hover:bg-blue-500",
25+
"flex items-center justify-center rounded-lg cursor-pointer hover:bg-blue-400",
2426
{
25-
"px-4 py-2 text-b2": size === "small",
26-
"px-6 py-3 text-b2": size === "medium",
27+
"w-[7rem] h-[3rem] text-b2": size === "small",
28+
"w-[10rem] h-[3rem] text-b2": size === "medium",
2729
"w-[27rem] h-[3rem] text-b2": size === "large",
2830
},
29-
{ "bg-blue-600 text-white": backColor === "blue" },
30-
{ "border border-blue-600": borderColor === "blue" },
31+
{ "bg-blue-500 text-white": backColor === "blue" },
32+
{ "border border-blue-500": borderColor === "blue" },
3133
)}
34+
onClick={onClick}
3235
>
3336
{children}
3437
</div>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import clsx from "clsx";
2+
3+
interface ContentsProps {
4+
img: string;
5+
title: string;
6+
date: string;
7+
tags: string[];
8+
}
9+
10+
const Contents = ({ img, title, date, tags }: ContentsProps) => {
11+
return (
12+
<div className="flex gap-11 rounded-2xl border border-solid border-zinc-200 hover:border-blue-200 cursor-pointer pl-4 pb-24 pt-6 w-[38rem] h-[15rem] ">
13+
<div
14+
className={clsx(
15+
"w-[20rem] h-[9rem] flex items-center justify-center rounded-lg",
16+
img === "" ? "bg-zinc-100" : "bg-white",
17+
)}
18+
>
19+
<img
20+
src={img === "" ? "/assets/baseImg.svg" : img}
21+
alt="contentImg"
22+
className="w-[6rem] h-[6rem]"
23+
/>
24+
</div>
25+
<div className="flex flex-col gap-4">
26+
<div className="flex flex-col">
27+
<div className="text-h3">{title}</div>
28+
<div className="text-b2 text-zinc-500">생성일자 | {date}</div>
29+
</div>
30+
<div className="flex gap-4">
31+
{tags.map((tag, index) => (
32+
<div key={index} className="text-b2 text-blue-500">
33+
{tag}
34+
</div>
35+
))}
36+
</div>
37+
</div>
38+
</div>
39+
);
40+
};
41+
42+
export default Contents;

apps/web/src/components/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
export { default as Input } from "./input";
22
export { default as Button } from "./button";
3+
export { default as SearchInput } from "./searchInput";
4+
export { default as Contents } from "./contents";
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const SearchInput = () => {
2+
return (
3+
<div className="flex items-center bg-zinc-50 border border-solid border-zinc-200 rounded-lg py-3 pl-4 w-[24rem] gap-2">
4+
<img src="./assets/search.svg" alt="searchIcon" />
5+
<input
6+
type="text"
7+
className="text-t1 focus:outline-none bg-zinc-50 w-[20rem]"
8+
placeholder="검색"
9+
/>
10+
</div>
11+
);
12+
};
13+
14+
export default SearchInput;

0 commit comments

Comments
 (0)