diff --git a/bun.lockb b/bun.lockb
index 356c4b7..19908dc 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/package.json b/package.json
index 04c0585..b737906 100644
--- a/package.json
+++ b/package.json
@@ -21,10 +21,8 @@
"@nextui-org/kbd": "^2.0.33",
"@nextui-org/react": "^2.4.6",
"@tippyjs/react": "^4.2.6",
- "autoprefixer": "^10.4.20",
"framer-motion": "^11.3.21",
"highlight.js": "^11.10.0",
- "postcss": "^8.4.40",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-draggable": "^4.4.6",
@@ -32,8 +30,6 @@
"react-router-dom": "^6.26.0",
"rehype-highlight": "^7.0.0",
"styled-components": "^6.1.12",
- "tailwind": "^4.0.0",
- "tailwindcss": "^3.4.7",
"tippy.js": "^6.3.7"
},
"devDependencies": {
@@ -42,9 +38,12 @@
"@typescript-eslint/eslint-plugin": "^7.15.0",
"@typescript-eslint/parser": "^7.15.0",
"@vitejs/plugin-react-swc": "^3.5.0",
+ "autoprefixer": "^10.4.20",
"eslint": "^8.57.0",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-react-refresh": "^0.4.7",
+ "postcss": "^8.4.49",
+ "tailwindcss": "^3.4.15",
"typescript": "^5.2.2",
"vite": "^5.3.4"
},
diff --git a/postcss.config.js b/postcss.config.js
index 8def97b..52012d2 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,4 +1,6 @@
-export const plugins = {
+export default {
+ plugins: {
tailwindcss: {},
autoprefixer: {},
-};
\ No newline at end of file
+ }
+}
\ No newline at end of file
diff --git a/src/App.tsx b/src/App.tsx
index 00d3d7e..fa5207d 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,5 +1,5 @@
import Root from './pages/Root';
-import Timeline from './pages/Timeline_Page';
+import Timeline_Page from './pages/Timeline_Page';
import { Route, Routes } from 'react-router-dom';
import { useEffect } from 'react';
@@ -39,7 +39,7 @@ function App() {
<>
-
+
>
);
diff --git a/src/components/Timeline.tsx b/src/components/Timeline.tsx
new file mode 100644
index 0000000..d97fcd9
--- /dev/null
+++ b/src/components/Timeline.tsx
@@ -0,0 +1,49 @@
+//import { Link } from 'react-router-dom';
+
+const events = [
+ { date: '2024-12-07', description: '??? ???? ?? ?? ??? ?? (??: ????)', link: 'https://ncf.or.kr/' },
+ { date: '2024-08-18', description: '29회 해킹캠프 CTF 1위 (고민중독)', link: 'https://ctf.hackingcamp.org/' },
+ { date: '2024-08-05', description: '29회 해킹캠프 선발', link: 'https://hackingcamp.org/' },
+ { date: '2024-08-01', description: '글로벌 스타트업 학교 2기 베트남 해외 연수 데모데이 대상 (1위)', link: 'http://ncf.or.kr' },
+ { date: '2024-05-16', description: '글로벌 스타트업 학교 2기 합격', link: 'http://ncf.or.kr' },
+ { date: '2024-05-11', description: 'LG AI 청소년 캠프 1기 LG 탐색상 수상', link: 'https://lgaiyouthcamp.or.kr/' },
+ { date: '2024-05-11', description: 'LG AI 청소년 캠프 1기 수료', link: 'https://lgaiyouthcamp.or.kr/' },
+ { date: '2024-04-22', description: '@isangjeong.today (인천상정중학교의 오늘 급식)', link: 'https://www.instagram.com/isangjeong.today/' },
+ { date: '2024-04-06', description: 'TimeTable (Sekai 개조판 배포) [API 유실]', link: 'https://timeline.imnyang.xyz' },
+ { date: '2024-03-24', description: 'Dreamhack #133', link: 'https://dreamhack.io/users/40116/wargame' },
+ { date: '2024-03-24', description: 'Ubuntu Mirror', link: 'https://launchpad.net/ubuntu/+mirror/mirror.imnyang.xyz-release' },
+ { date: '2024-03-24', description: '내 목소리로 AI Cover 만들기', link: 'https://colab.research.google.com/drive/1a4G4hD9huBeGRZhEL2HNDMpqSuf4y61k?usp=sharing' },
+ { date: '2024-01-26', description: 'Fastapi를 통해 API 제작', link: 'https://github.com/imnyang/api' },
+ { date: '2023-12-20', description: 'LG AI 청소년 캠프 1기 합격' },
+ { date: '2023-11-14', description: '인천상정중학교 2023학년도 SW 문제 해결 활동 우수상(2위) 수여' },
+ { date: '2023-11-01', description: '블로그 시작', link: 'https://blog.imnyang.xyz' },
+ { date: '2023-10-12', description: '나는 로컬 시간을 알고 싶다', link: 'https://time.imnyang.xyz/' },
+ { date: '2023-09-24', description: 'sqlr.kr 기획 및 초기 개발', link: 'https://github.com/sqlare/sqlr.kr/tree/main' },
+ { date: '2023-09-02', description: '선린인터넷고등학교 제6회 소프트웨어나늠축제 Layer7 부서 과정 이수' },
+ { date: '2023-08-26', description: '컴시간 시간표를 더 나아보이게 Sekai', link: 'https://github.com/imnyang/Sekai' },
+ { date: '2023-08-23', description: '디스코드 통화방 녹음', link: 'https://github.com/imnyang/discord-voice-rec'},
+ { date: '2023-07-24', description: '한국정보기술연구원이 주도하는 사이버 가디언즈 보안캠프 수료' },
+ { date: '2023-03-20', description: '디스코드에서 대화형 인공지능 Siru 제작', link: 'https://github.com/imnyang/siru' },
+ { date: '2023-05-15', description: '한국 코드페어 예선 진출' },
+ { date: '2023-03-14', description: '타이머', link: 'https://github.com/imnyang/imnyang-timer' },
+ { date: '2022-12-20', description: '2022 SW영재 창작대회 은상 수상'},
+ { date: '2022-09-27', description: '2022 삼성 주니어 SW 창작대회 본선 진출' },
+ { date: '2022-05-23', description: '2022학년도 석정초SW영재학급 첫 수업' },
+ { date: '2022-07-26', description: '제 14회 맑은하늘 맑은웃음 공모전에서 맑은웃음상 수여' },
+ { date: '2021-11-14', description: 'Become a ZEPETO Creator 이수' },
+ { date: '2021-05-19', description: '소프트웨어와 전자신문이 주관한 소프트웨어재단 꿈찾기 캠프 이수' },
+ { date: '2018-01-27', description: '제4회 맑은하늘 맑은웃음 어린이 문예공모전에서 위닉스상(2위) 수여' },
+];
+
+export default function Timeline() {
+ return (
+
+ {events.map((event, index) => (
+
+ ))}
+
+ );
+}
diff --git a/src/index.css b/src/index.css
index 7b2b8c3..3495ed5 100644
--- a/src/index.css
+++ b/src/index.css
@@ -1,7 +1,13 @@
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
* {
font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
+ margin: 0;
+ padding: 0;
}
:root {
@@ -30,6 +36,7 @@ a:hover {
body {
margin: 0;
padding: 0;
+ width: 100vw;
min-height: 100vh;
display: flex;
flex-direction: row;
diff --git a/src/pages/Timeline_Page.tsx b/src/pages/Timeline_Page.tsx
index 8327a10..b42cd28 100644
--- a/src/pages/Timeline_Page.tsx
+++ b/src/pages/Timeline_Page.tsx
@@ -1,69 +1,12 @@
-import { Link } from 'react-router-dom';
-import Timeline from '@mui/lab/Timeline';
-import TimelineItem from '@mui/lab/TimelineItem';
-import TimelineSeparator from '@mui/lab/TimelineSeparator';
-import TimelineConnector from '@mui/lab/TimelineConnector';
-import TimelineContent from '@mui/lab/TimelineContent';
-import TimelineDot from '@mui/lab/TimelineDot';
-import TimelineOppositeContent from '@mui/lab/TimelineOppositeContent';
+import { Link } from "react-router-dom";
+import Timeline from "../components/Timeline";
-const events = [
- { date: '2024-12-07', description: '??? ???? ?? ?? ??? ?? (??: ????)', link: 'https://ncf.or.kr/', dotColor: 'grey' },
- { date: '2024-08-18', description: '29회 해킹캠프 CTF 1위 (고민중독)', link: 'https://ctf.hackingcamp.org/', dotColor: 'success' },
- { date: '2024-08-05', description: '29회 해킹캠프 선발', link: 'https://hackingcamp.org/', dotColor: 'success' },
- { date: '2024-08-01', description: '글로벌 스타트업 학교 2기 베트남 해외 연수 데모데이 대상 (1위)', link: 'http://ncf.or.kr', dotColor: 'success' },
- { date: '2024-05-16', description: '글로벌 스타트업 학교 2기 합격', link: 'http://ncf.or.kr', dotColor: 'success' },
- { date: '2024-05-11', description: 'LG AI 청소년 캠프 1기 LG 탐색상 수상', link: 'https://lgaiyouthcamp.or.kr/', dotColor: 'success' },
- { date: '2024-05-11', description: 'LG AI 청소년 캠프 1기 수료', link: 'https://lgaiyouthcamp.or.kr/', dotColor: 'success' },
- { date: '2024-04-22', description: '@isangjeong.today (인천상정중학교의 오늘 급식)', link: 'https://www.instagram.com/isangjeong.today/', dotColor: 'success' },
- { date: '2024-04-06', description: 'TimeTable (Sekai 개조판 배포) [API 유실]', link: 'https://timeline.imnyang.xyz', dotColor: 'grey' },
- { date: '2024-03-24', description: 'Dreamhack #133', link: 'https://dreamhack.io/users/40116/wargame', dotColor: 'success' },
- { date: '2024-03-24', description: 'Ubuntu Mirror', link: 'https://launchpad.net/ubuntu/+mirror/mirror.imnyang.xyz-release', dotColor: 'success' },
- { date: '2024-03-24', description: '내 목소리로 AI Cover 만들기', link: 'https://colab.research.google.com/drive/1a4G4hD9huBeGRZhEL2HNDMpqSuf4y61k?usp=sharing', dotColor: 'success' },
- { date: '2024-01-26', description: 'Fastapi를 통해 API 제작', link: 'https://github.com/imnyang/api', dotColor: 'grey' },
- { date: '2023-12-20', description: 'LG AI 청소년 캠프 1기 합격', dotColor: 'success' },
- { date: '2023-11-14', description: '인천상정중학교 2023학년도 SW 문제 해결 활동 우수상(2위) 수여', dotColor: 'success' },
- { date: '2023-11-01', description: '블로그 시작', link: 'https://blog.imnyang.xyz', dotColor: 'secondary' },
- { date: '2023-10-12', description: '나는 로컬 시간을 알고 싶다', link: 'https://time.imnyang.xyz/', dotColor: 'success' },
- { date: '2023-09-24', description: 'sqlr.kr 기획 및 초기 개발', link: 'https://github.com/sqlare/sqlr.kr/tree/main', dotColor: 'success' },
- { date: '2023-09-02', description: '선린인터넷고등학교 제6회 소프트웨어나늠축제 Layer7 부서 과정 이수', dotColor: 'success' },
- { date: '2023-08-26', description: '컴시간 시간표를 더 나아보이게 Sekai', link: 'https://github.com/imnyang/Sekai', dotColor: 'grey' },
- { date: '2023-08-23', description: '디스코드 통화방 녹음', link: 'https://github.com/imnyang/discord-voice-rec', dotColor: 'grey' },
- { date: '2023-07-24', description: '한국정보기술연구원이 주도하는 사이버 가디언즈 보안캠프 수료', dotColor: 'success' },
- { date: '2023-03-20', description: '디스코드에서 대화형 인공지능 Siru 제작', link: 'https://github.com/imnyang/siru', dotColor: 'success' },
- { date: '2023-05-15', description: '한국 코드페어 예선 진출', dotColor: 'success' },
- { date: '2023-03-14', description: '타이머', link: 'https://github.com/imnyang/imnyang-timer', dotColor: 'success' },
- { date: '2022-12-20', description: '2022 SW영재 창작대회 은상 수상', dotColor: 'success' },
- { date: '2022-09-27', description: '2022 삼성 주니어 SW 창작대회 본선 진출', dotColor: 'success' },
- { date: '2022-05-23', description: '2022학년도 석정초SW영재학급 첫 수업', dotColor: 'success' },
- { date: '2022-07-26', description: '제 14회 맑은하늘 맑은웃음 공모전에서 맑은웃음상 수여', dotColor: 'success' },
- { date: '2021-11-14', description: 'Become a ZEPETO Creator 이수', dotColor: 'success' },
- { date: '2021-05-19', description: '소프트웨어와 전자신문이 주관한 소프트웨어재단 꿈찾기 캠프 이수', dotColor: 'success' },
- { date: '2018-01-27', description: '제4회 맑은하늘 맑은웃음 어린이 문예공모전에서 위닉스상(2위) 수여', dotColor: 'success' },
-];
export default function Timeline_Page() {
return (
-
-
-
🏠 Back
-
Timeline
-
- {events.map((event, index) => (
-
-
- {event.date}
-
-
-
- {index < events.length - 1 && }
-
-
- {event.link ? {event.description} : event.description}
-
-
- ))}
-
-
+
+ Back
+
Timeline
+
);
}
diff --git a/tailwind.config.js b/tailwind.config.js
index c189a4a..a3ee00c 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,6 +1,8 @@
/** @type {import('tailwindcss').Config} */
export default {
- content: [],
+ content: [
+ "./src/**/*.{js,jsx,ts,tsx}",
+ ],
theme: {
extend: {},
},