From e34564ffc5b2638d939ff53d2c2d1cf6499de830 Mon Sep 17 00:00:00 2001 From: Last2014 Date: Thu, 5 Jun 2025 05:24:17 +0900 Subject: [PATCH] First Develop --- README.md | 38 +-------- next.config.ts | 5 +- package-lock.json | 110 +++++++++++++++++++++---- package.json | 20 +++-- public/favicon.ico | Bin 0 -> 123599 bytes public/file.svg | 1 - public/globe.svg | 1 - public/last2014.png | Bin 0 -> 10483 bytes public/next.svg | 1 - public/vercel.svg | 1 - public/window.svg | 1 - src/app/favicon.ico | Bin 25931 -> 0 bytes src/app/globals.css | 43 +--------- src/app/layout.tsx | 19 +---- src/app/not-found.tsx | 32 ++++++++ src/app/page.module.css | 168 --------------------------------------- src/app/page.tsx | 107 +++++-------------------- src/app/style.css | 21 +++++ src/cards/aboutMe.tsx | 18 +++++ src/cards/details.tsx | 64 +++++++++++++++ src/cards/links.tsx | 113 ++++++++++++++++++++++++++ src/cards/skill.css | 10 +++ src/cards/skill.tsx | 67 ++++++++++++++++ src/cards/topProfile.tsx | 30 +++++++ 24 files changed, 495 insertions(+), 375 deletions(-) create mode 100644 public/favicon.ico delete mode 100644 public/file.svg delete mode 100644 public/globe.svg create mode 100644 public/last2014.png delete mode 100644 public/next.svg delete mode 100644 public/vercel.svg delete mode 100644 public/window.svg delete mode 100644 src/app/favicon.ico create mode 100644 src/app/not-found.tsx delete mode 100644 src/app/page.module.css create mode 100644 src/app/style.css create mode 100644 src/cards/aboutMe.tsx create mode 100644 src/cards/details.tsx create mode 100644 src/cards/links.tsx create mode 100644 src/cards/skill.css create mode 100644 src/cards/skill.tsx create mode 100644 src/cards/topProfile.tsx diff --git a/README.md b/README.md index e215bc4..6898d08 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,2 @@ -This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. +# Last2014 +Hi! \ No newline at end of file diff --git a/next.config.ts b/next.config.ts index e9ffa30..00c940e 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,7 +1,10 @@ import type { NextConfig } from "next"; const nextConfig: NextConfig = { - /* config options here */ + output: "export", + images: { + unoptimized: true, + }, }; export default nextConfig; diff --git a/package-lock.json b/package-lock.json index 5a4e2f0..ee57b83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,15 +8,21 @@ "name": "last2014", "version": "0.1.0", "dependencies": { - "next": "15.3.3", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "@icons-pack/react-simple-icons": "^13.0.0", + "@types/eslint": "^9.6.1", + "@types/next": "^9.0.0", + "bulma": "^1.0.4", + "next": "^15.3.3", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-fast-marquee": "^1.6.5" }, "devDependencies": { "@eslint/eslintrc": "^3", + "@iconify/react": "^6.0.0", "@types/node": "^20", - "@types/react": "^19", - "@types/react-dom": "^19", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", "eslint": "^9", "eslint-config-next": "15.3.3", "typescript": "^5" @@ -262,6 +268,38 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@iconify/react": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@iconify/react/-/react-6.0.0.tgz", + "integrity": "sha512-eqNscABVZS8eCpZLU/L5F5UokMS9mnCf56iS1nM9YYHdH8ZxqZL9zyjSwW60IOQFsXZkilbBiv+1paMXBhSQnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "react": ">=16" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@icons-pack/react-simple-icons": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@icons-pack/react-simple-icons/-/react-simple-icons-13.0.0.tgz", + "integrity": "sha512-Dmofr27ZlfBHS/2HDBKodKTUTnIjhH7cjw36WPt1CLg+1gytjr+LeabwWZ6khu/QUxmLjs3e1KrNPiuvOkEpJQ==", + "license": "MIT", + "peerDependencies": { + "react": "^16.13 || ^17 || ^18 || ^19" + } + }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.34.2", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz", @@ -903,18 +941,26 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, "license": "MIT" }, "node_modules/@types/json5": { @@ -924,6 +970,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/next": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/next/-/next-9.0.0.tgz", + "integrity": "sha512-gnBXM8rP1mnCgT1uE2z8SnpFTKRWReJlhbZLZkOLq/CH1ifvTNwjIVtXvsywTy1dwVklf+y/MB0Eh6FOa94yrg==", + "deprecated": "This is a stub types definition. next provides its own type definitions, so you do not need this installed.", + "license": "MIT", + "dependencies": { + "next": "*" + } + }, "node_modules/@types/node": { "version": "20.17.57", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.57.tgz", @@ -934,24 +990,32 @@ "undici-types": "~6.19.2" } }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/react": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.6.tgz", - "integrity": "sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==", + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "dev": true, "license": "MIT", "dependencies": { + "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "19.1.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.5.tgz", - "integrity": "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", "dev": true, "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" + "dependencies": { + "@types/react": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -1799,6 +1863,12 @@ "node": ">=8" } }, + "node_modules/bulma": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-1.0.4.tgz", + "integrity": "sha512-Ffb6YGXDiZYX3cqvSbHWqQ8+LkX6tVoTcZuVB3lm93sbAVXlO0D6QlOTMnV6g18gILpAXqkG2z9hf9z4hCjz2g==", + "license": "MIT" + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -4342,6 +4412,16 @@ "react": "^19.1.0" } }, + "node_modules/react-fast-marquee": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/react-fast-marquee/-/react-fast-marquee-1.6.5.tgz", + "integrity": "sha512-swDnPqrT2XISAih0o74zQVE2wQJFMvkx+9VZXYYNSLb/CUcAzU9pNj637Ar2+hyRw6b4tP6xh4GQZip2ZCpQpg==", + "license": "MIT", + "peerDependencies": { + "react": ">= 16.8.0 || ^18.0.0", + "react-dom": ">= 16.8.0 || ^18.0.0" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", diff --git a/package.json b/package.json index 2c2fdc4..91c30f5 100644 --- a/package.json +++ b/package.json @@ -9,17 +9,23 @@ "lint": "next lint" }, "dependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0", - "next": "15.3.3" + "@icons-pack/react-simple-icons": "^13.0.0", + "@types/eslint": "^9.6.1", + "@types/next": "^9.0.0", + "bulma": "^1.0.4", + "next": "^15.3.3", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-fast-marquee": "^1.6.5" }, "devDependencies": { - "typescript": "^5", + "@eslint/eslintrc": "^3", + "@iconify/react": "^6.0.0", "@types/node": "^20", - "@types/react": "^19", - "@types/react-dom": "^19", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", "eslint": "^9", "eslint-config-next": "15.3.3", - "@eslint/eslintrc": "^3" + "typescript": "^5" } } diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..dc1ba0e9f41da2510f816a05497310368e5a6c4f GIT binary patch literal 123599 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 U4c}VgKebX7MNNfrIrHHE0rrH@QUCw| literal 0 HcmV?d00001 diff --git a/public/file.svg b/public/file.svg deleted file mode 100644 index 004145c..0000000 --- a/public/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/globe.svg b/public/globe.svg deleted file mode 100644 index 567f17b..0000000 --- a/public/globe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/last2014.png b/public/last2014.png new file mode 100644 index 0000000000000000000000000000000000000000..9cc4c598eee13e2ed4f1ed0f317405985a1ef6ad GIT binary patch literal 10483 zcmcIq^+S{I*TyjhqepiL5(DYcHDYv^QVvjJ0v{9xNRLrYQqmF93`9Usz#&SCBA|mw zsOV5>K?Er=-iPo1@cy#vy3cd&bI#r8x%b?3w6|bm7GkEOqhqtOG;^k-0|697#{~S+ zQMhl(oR<7;EX?TsW#&yhqob2+wK7Ax3J7iuG6wK0zk|?LlRuP)ny?vYNXl9NypYQK z+tm!lgOC96jX*BITs!=}ioikzSYmgW2t2$UoG=O+$yr?O41zJCCCV31Smf2a%D-*v zc?D{!NBV&B?m_k2WOjOq179%zp9L40%Y$F!K?GSBBY}f4Y z@w97nIOv~{2;NY)qvQ5=zJWqT9JGmomiSiGQ+gTg6cc+}O2v;3TjM<+!gr%HLw`3| zN&h8hnMytxKEL60TQ)EA#bVD9&8lJ`4YbicXn%~vbhF}R{XpEzBrit2MbkP&({P~# z;DqD_(Mudxk-Zzv=wJet`PsOQotJAbfkpe!JDdf|_2Gu08n~qcF{x5)`j|cr>eF1# zB77fRmVCj<>hCpG{YI$mn(g9nheKZgtNQP&5d38tOk7_EY8&jZs4*YJI{X_qRla}@ z3yPh9mF1f*CU!W;5C3L-@qQe#Y_OzijyB=L9u8qOQJN1_8h(-n!5=&r{I7q>Nmk{H9Kr=%ZpRvFD8%dj zVDO-7M~=J9$$V0@!={NYCkfS6W3fPMQraPLl|9HKzDJijvF=G|NMROed)~1;(204w z$;zVCCfjsJA{JNed|_y=LeIsP%+imt)#%ZFF`}xg#+2?)DIkb-Zpgsm7Jq* zbT#3xak6|k!M)}iOwqBKsD>j?Ii&fj%D-Ic~aOFmi~U5F6E3FbNNfkJmK2~Caj)Wxa;VXbp*L`cmH%%(Ikl;;VnRWF)jxHvDPkZGbfkEn(2f1vR$ zZ64M2a>`r!+igsD$2F!3pq)IJlA*Zol(q1Y2NiaKl1@z?swQ%lvxYP5_P{8(V@igv zi{?^jW*#GyIzkSHIlrvpdN(I?!3P9{9Z(3wxDQ{~q69O1CRf_co>k3LZ+XqU!~{}* z?${+(5`PyJz*+hqeffuMv#;VoQIC|PGU$PLh(x;%&(-AMh&Oph5V3$dyg@-q(}D?l zW^=D9xkrB>?nL%DA5__Qa9+SUijoDB3RhBknz%s?Q4cb7cXr+#|2+DtB)NCRyB-+n zCF*acdv=W!8^<3^<%+l)qJIO^@OjZld~W+*QTuBP{ipGo?Vi7>c$X&oO2>qgQ!AxK zioQ=mkBMwomW|w9McC5>-rrm|tOrK(7O6Sq?JR}F1n+#c@HMVXGaXhEWupF%U;o_B z-RP{xqi7?9LfO)j<+m2IiT5{k7MM;|+Hj_1!%Or&>g$ydorb2%>&R0aHg`;eRh75VlN1F99;H%QaShSav{+fvtM_B5K|hr*T0%Z4CD&#C3&4x(Nj$yBp_1Fs zUZjtR{6+P;VsMO?drPx zoM$~kcX?ddY6d+=BHxaxd=C}+h8G1lCfHB9blCS{go=hA4i$#-^wJSB-k=Sq{iWI5 zhuJ|c?k-)Nvx25|>nh)&nhPJQRlMl5?YXW6b8!UkRGECk;5t4dZV*JnZK zAUB>%p0BDO1kWSU*7AsZ=sT^}Laioer&v0iXeOlQ`fc6%(W@HTjHlJP5LY@Tu4s@2 zp*L`L-97l*Y8!24o~?~a`Sf~Bwl_+MchPr_HAvxkX;Jf&GUpuCO37CX_?D?*ndiZc z6SXT27gn@{p5%h<(1qk%HJ`aQ2nBq_)I>TjCfhqGJ4EYs%^W3*)XpUT!pg0hflF4C zJoR`Z%SD!s^noJ1X6TjSvw1VsYQi^l`+rIc{}F~)H8g_P-`s^94)B3oo;%Gk@X0p~ zDp;DdKTh5&qD9E9xlIOMEnw%Lp<(7t(BoJtTN>h5T5!ZU;_+*NlQ(<+wf&0o8eQU! z?5t`0@{oD<1i{ZN7TDEqSU+f|Api!#dR#${^vii467lWhwb9YhFO8*&{~nh>t~4Q? zX3N^GrczT|l^0r>LR2crDdOFnWzJ@c5f=gk-CP}v)7s|reSiJPz}nczu$uHP-NTQ? z86%$!hdQTf#O9KX&>T4VAg34u#U(vsgpD3@ZvCV32I+Wz0mq~syktx2l^;PR9~Hzk zP>Tn}KrX+Ww4f#0cUz);Q)DXd8Vp4YUcti}>5KG7WqQu;yF2x;9&naT7n4IeMglaB z?mPgm1TGa_D-M<4vDGVE^?Hut-72{L$6EiNAue%h6r9(Ie>~j)yz;GS#p^7~L3W+{#z$aq)nhT1Y2iE}+k25nHgaz~?b);?VUI zHiwII&}Owtavqu+r}Lf!mH3n3M!jz?667*EY?=Kmt*PkHgrIM|$Te?wYaZkR}+m2vIjqPeY`ZB|L_iVkpT$dqUmCT zWlu5%E$~^u!W>_a9j)Bui*Dqwic2Buora*$+$Xdit$@Xf!p36ZWR91D$$*Egn_oZJ zElQuZ(Rw4?m^@jxEjtoP&wJnO_SCznxOioA=kS_vQ0Q5epmSL6{P3$J1#^AV=Cv$w ztBuZreGtb{ep&%F2M>%wg4rTZ{rm6K#app)&TmI8-KXO9uOuc*Z<}n$3<525chaH{ zDG{yS<{EiaPN*`T?ws8%lIl6@*W?nzaq0kp?aB{i(0F0${fb0leYx3L%2u*0i4<*) z7tn;2brH!y1%Xne_xPhmN2f4Z>F<1+@BS!DuL&R`Puq8u6n`c}vzUy{`mWI;l>YU~ zpFz}Eo2h?NQzQ7adI_1qvTK#(MaS^WiE_&l#}LZZD+oO%5JykD_Yt+9pb>wId{Ry0 zh5r(ik6=n3q0Xc~|?HgHYKThMMh)i)*DIu8j7d&C0{(dJ0y+vhfi~ z{A0YRLM>>}r524eWppB;)w<`i%HRvf{B@913)Xlh;cH@|8mj*1b1gpg$%l1u@ z7Yjn%g(74&^S7iXODg%iRPo@GRyu^kkQgX(oOHsxjz}lR)T|)kx*Ha*9PMJu7OtWe z$~seg&n3%7j4ksfE;{m z?vc~CdWTmJ6gnDXC{0tqjGqR2g&JlW*KfP%P5QCbRNKU9`tLgN`YuTNvk&HA7zn|z zVOy(yj*)6WXa3!pGMCk`$VI#+&ZSmPo&wI2ioE6%?)66nyS7%C^Zh^3`r5ffOWQ*U#1}snoQ}AoN6ycd>Tr;2 zSW~TeR=^w07E=6&OtVCb$-+|y=G02FI5(#lb=Q6~b3K?t(?5vd9PVC0uMYJIhZobt z<6N>M-}HtwR?GNpaLYzsFXYdON&x)XGpXB-oc>*x(14GNmz+!UqA(Wt2aa!bjLl<= zktZ*|dptn6J!>tGiAx6y!aRuk{^9 zdAlTxufg^+_;@Rw-XMhKuW=*l{1|Z|cn`G?OO@q@@Wcb$&AE!Xu{^4vE#9j-l$}>} zXE1u9Z{eHyJTgD!)hj`}w+A_|_zaU)*KYk?7C!YT6{`~oY6w3Re>-W~w)TfUfuOZmB)6|j?yau3?<$j-6GQ)oK zNdI?6(P=mD{l(6Vm#*4AR^nIXnL+DP6V1#w^P#(|V*dCmfN`hAmAh!W^M#%JtY$I7 zY*i`b5Lee3F~OQW)8tOyYVlTCOYdi+XJppb%*>XB_vjJl9AjkMd~UK9AXdC?v!D%- zYEzzK{MeYAE8F4coitq$=$85EpnSnTzXIuDPduL91@i9YKK3f~+3veJ zYn_DT0DO$!keBOEQMH%P_+Fh@$`Dx4=LV$_8#sFQ*)0zkbaZ~Dbxo?Z~f((Qp5R9b;p_(cU`MmO=;o@yvMm$Q$m{x32N2lCxHyGb09P<~AkJ?s0jzZoZsGwP{p|{i!{}qEct`RJT1({ z2S>rV`%Ju|`@{XFi!IYt&$4~pc@hAagqCVEffIp zTlKZ2G*1v?{2fB~@FOsLG`-tC-U}+y8ks_n8NLs;@4iDQ83OQthu7^F%^4&sZ0{B{ z+yJ&;X>Y7$1Oygdrsh|d04ztEk3}xogDe#4Tb3eZaa~(AwM{@d$jik1(?BJ7O7kXR zgFI9Wo+=Tqt$h%24mbSA*1Ub77|h<2LP$zifQp3kxUr=PLq*!YSiy-PEiP>zLEe5w z02d2gU5gp`0W#`}HT1TmMJ;4DuQ~PR5BzX4H`_VfD5Cy}1JnPn&AB00Dn2j_@~SlgS$`?Z%e+p2@q~ zhmCiUz6aJj807l%%m)+=lIKJz2<^=tU?Y$=OaMeJlurDOI9a0eQHY2=$?Q^|O3eXx zuV3mct%{4U`p)>CDResW+Ia&z%%#mU@VHuSD!n`Rg)mhEr+&~q zsN!sUNfim>fFA|(Db&bjtoo_q9(5kP;U4}Ndcg*L-)8ORy2&Y7_&M@Zp!HnGtaY5f z=b5X})<>09W!;0GpsS*_vW@Ul70)<-T`2Ix&Bno2*6%#-5j%z3h4-{hbe#V?$Z4J1 zRb}o2K%L1(*~U8^B?F%PGu$(drypeZ|`u=H)9_>`^wkKL1Ffnp8<|dH^J6{ z<*M!g1f+L#sZMt2)oDNF{c!s!AflLI0M=apJ8l(6tnj9?X~O0kzwaeeT)wy8Nc0oN z<#Z|~gpPKbK8m{k&eZ6BnT`gFCRgu-xhwX}2Vb^%Rmg4-Td68Hc?+oOC!5)Kdb zzRK#hpBV}Dz6Wds+bNOI51R^bPsl1)@0>SWmxd1j1kNqG{JG~Mluu6@)-kT$c{uzR z4=-K4fC(D)+a&^chASvjUhq?cMq#=W$vAwz-<37dJ=3ovHOInrZJB3)*13t1Dy-R*zg&&*XQA5BzbWpc#5}`FNT? z=%aT^cC;*z`Oq{{sT7~2qCH45rT5G7Tg`0veH2z}XadcB>EuE)O-L=2&!yYqfr4S2` zUuaxy4nALDo?oxEFx_^dTg_mERWAq;tFHa>ID!XxecO*Ev+x$rHKWjPvh&ARn>&UJFb}-kmGnY)f4XSq;D|C&L6*0^2 z$YG7)@Lw0G22y-^R*GD&UxLzfQ#PSw5DC6XE?eq8;(WENaRG9!A=`D|Uvhfc3f_`} zXX1Kv+b@-0vXM(jAIxju(7}6&Bh%_QiPT%xLLSxuL*Yzn6KW#|>TF7Qg6u-eJ1_Lq z{bbvHsi)tDU0uPeoYI&P2MwmGoHEE8T8B9Ebp^pdr*py#;VJTSg?&xGU~|@RA$mY< z!syX$;&RrOq|g%%-X7HntpzF5P}fA6iQd%xq&pQk+S^UF8Of}lQP4w_wGU; zAiPG?q!mS)x#sZ{2X{v2;K9p_Ss^OGDg_KS913Igm-)s0g-r0q9CE$4{lvg;l4Q## zQlUW)UcMeR9O*2_C}l=6-FEFQ*$1%PFa)q!fm#@sD?g?C{ra3f2?Uw6g}7mo<)*d7^Ys_~c(TFNH(7v^mBxr1!Z3 znl7V?z;jS3WzAVGwhZM^w{Ru&AW_rR&FPTMKQ@ioBxnc;<~z!Q7#SlE!i7YpOw~Ur zX_iCWPDoyv0&!L71Yuxm{nS&p#Ou|d6?3Z6wm*eN*YopiHEz?7IFBDaAFu+idsySg z4;(wHAjzvptyJP_O|UHXKgp6AjKFI?@d~s2=tTQBG)XxDp8CO1fv;jgT^stO1=OO+ zh(_i$uu@7L({x)ABsnHEl?#XfPr+ask#;)R*Ag=Sda}cmfVCDL#1O0^%>0`%M1|jP zyDrdxnqaqRJEB>A`$58Oh9Fq|dyJ543@+74gS4HY!a$`)XWUk9j;FiEaVz z&dtSRh6UzZyYk7glSr1&x=M5JZqr~axc)GoMpS91{_Ba4(SjmXsc-yv37UX zg8o=G6h+&d{AXsP+%-s?d4qyZ!~Zd{u}9+w|D5>YX7vZM3$02VaCb*7F*rn-1$aMd z(yeK@7P|ZTgUCax)Q54Us6(WAUmf+nsZDwFV?OxDx^P7*Yit}N0(;kCE6bg=t#PHv zhQbG(4&lj(KC1Z)5z02VIY%ur9_^$0FkYb_d+oLRG6T_WpxMddS=>_zscA5v957AG z{l}4mGI`0h!G1)U-lvA*2r;BSA^F1ok|p-nFHF3oEbFv_ABtH2&LoxRxks^dUaVH< zDRR~lk?%?=Ncx`BjmkHi1Fkh6Di>u}BPBiegb`9TG`5W?ixykI`mp2RNN~tZq*0Do z3bB;*KHL3%^~y!L3nq)k^)GfjQAY^zusjK$gsUMB-*Oq%@mfu@u? zYJbk`ep4IWkNb5iD$ccghuIO?dNM(ETd;bIo<)scA34mgP}wXt6V6}=uuFmnUQ335 zaVS!i$@TaL9AP;U=R1w+oa`iduxyT9uQTNi9QPDIpOg^47l58NWJi1^Z0ld~0u*ma zoL^C&=yycqlIJ+>bPx)hpENN~jhTO!!#2Vp?45%ps=+Sc^$5n{gm3tkQK}Ch;7uDx~KJ9`^@H6KtK8Uj{}dBN)7=Gg$o;U|pTe=Y2Mw9F8hn@VnlW5!{NQq;wi*k3L&!nf7BOJKeSH3i=V z5VCIoy?ZW#!y*Dq+|14KXD9}!MevA=~%jCxQ2Vmg@Pl?o>J{j4c!@fCJ_Eed?mX+oX7tHYOyXW zNE3lIl$JSR1GLgiskWwoR`Jz)f^Dq^wnQ5rL;nj7i>xDiAVg+3RZwUL0k!PjiW@oOmPS#jvbZb8k{JaW0=HrhT=ve|3j0nnF;1Co!b$SR!jhJ=`C-`))%b6g zSxl;m`}f|340C2G8&8IoA$G-4N0BPEz+GZ-uoU>^%ed-{f{#C>a>dd;Y-4FR_0vwW zh<9PHKtdJi+GJ-fUYQ)7L8d+y&Pheg_NnFZYUTMMkho{@;^AlECZogIcf0*(H0Kiq zhkhGRdX9ABAO@Uc=#B6+9d1x|M;%A4kkzF3Ls+WxSAE}MOY98i)FqYQvljeGN0T3Q zQOpzj!!$ZXy9DHux z?>kmv|Ma*0LKUao#c9DD0;vzITJ#33`Wg7E3av@y6%9zcOP1^&Ykp~wCg!34^OGnx zbZ2t?1y8Ek!{k6L}ZoO9$kjT`2LHnXm8 zNP!s~caUh`1JU?0YurU3v5>{y$O`AoX+!A?Hy<;M?IHdN=w+^oYVpPeJ0fXvFb^yeq)Wl{vjgF85WTz>1^ z#nr;6I%H(-=!nAB%;^m!rJ5bxZLWhBe@g5{KhH5g&I(aNSaA9v^C1c_2l0)MDQA-r z!wh3*W&TyeVu}-XOwUiwe_-k6mR_k9&2A?rEV#sYBYH)PCK>{bYU8U=d6HE&q>hJO8)zdDOUkQ?&_}xpZI;|V9oh1 zuL2oiqu`9@DRX@t;LTyEVrEYLT35Rv+Z~7e`UA^5|II7r=eSp1oK$I-XfqLtO1r4_ z+ukLW>YdYVoUilO&d$(tX4xYH`iJG(qS+#{tW_BlL|*lI&da$r zBzY4B-B5I|Th{k$8&6HolBe{ZlXAZwCA@qRqUAl$lJm>43mk@%z$d&6?5S&*5*Ad7 zGW;B0N?x|KZT}}yO`-Jbb+;xh-+bSuG+|ng(L8~jYI_U$7sgOb{`O=$GBYewCoO6_ z<9MkGif}kwVE%2U!1zL|CSzENMB$T3nUgL~Kk6A2=^Npw^Iy$&QvD}2%oIvk;)Qf& zPshtEOf!4MoKiXX)UJ>S(dqw`5Lz{CoWRBCr7lXO%9_vh?DJ39c?&}vvwoHvPbxk< zlREJ^xjT0s6!5;r>fg=pvz-m?k=6cZ*mNcT5J)$K0jDz+&(fP*+hZe~e~egsYD3?H z$ClKfWnu{i-}o3ekTbP9kn!{u)C82yWoIfR_bOYXTZA!evEz7;7P|& z9yQ8hh5K^7-zW8qVxJmP8RYdavqJM@Ffc@SIvd5L1urXLf{v;&Vr<)~ynK$4!fJOV zT(CFf2i()#Su@BEz^7ZSDwV|5{A2K)&4=m#R7`^1U=zIoMp%Z9Apy+CQ|p~dE>Bq< zBmEcgK?C*d>Kt8G62k7zv>U0F4-_il`50f67c79QehT*Pj3ivv#K~4d jKHw()f4}s5_mBQ&ThnEhy#%MzuNke(?akUu(5e3i^lo6D literal 0 HcmV?d00001 diff --git a/public/next.svg b/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index 7705396..0000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/window.svg b/public/window.svg deleted file mode 100644 index b2b2a44..0000000 --- a/public/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/app/favicon.ico b/src/app/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 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 LrJugUA?W`A8`#=m diff --git a/src/app/globals.css b/src/app/globals.css index e3734be..b001a00 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,42 +1,7 @@ -:root { - --background: #ffffff; - --foreground: #171717; -} - -@media (prefers-color-scheme: dark) { - :root { - --background: #0a0a0a; - --foreground: #ededed; - } -} - -html, -body { - max-width: 100vw; - overflow-x: hidden; -} - -body { - color: var(--foreground); - background: var(--background); - font-family: Arial, Helvetica, sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} +@import "bulma/css/bulma.min.css"; * { - box-sizing: border-box; - padding: 0; margin: 0; -} - -a { - color: inherit; - text-decoration: none; -} - -@media (prefers-color-scheme: dark) { - html { - color-scheme: dark; - } -} + padding: 0; + border-radius: 0; +} \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 42fc323..81a891d 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,20 +1,9 @@ import type { Metadata } from "next"; -import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; -const geistSans = Geist({ - variable: "--font-geist-sans", - subsets: ["latin"], -}); - -const geistMono = Geist_Mono({ - variable: "--font-geist-mono", - subsets: ["latin"], -}); - export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "Last2014", + description: "Last2014 Website", }; export default function RootLayout({ @@ -23,8 +12,8 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - - + + {children} diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx new file mode 100644 index 0000000..11080a0 --- /dev/null +++ b/src/app/not-found.tsx @@ -0,0 +1,32 @@ +import Link from "next/link"; + +export default function NotFound() { + return( +
+ +

NotFound - HTTP404

+ +
+

+ {"The page you requested"} +
+ {"could not be found"} +

+
+ + + Go to Home + + +
+ ) +} \ No newline at end of file diff --git a/src/app/page.module.css b/src/app/page.module.css deleted file mode 100644 index a11c8f3..0000000 --- a/src/app/page.module.css +++ /dev/null @@ -1,168 +0,0 @@ -.page { - --gray-rgb: 0, 0, 0; - --gray-alpha-200: rgba(var(--gray-rgb), 0.08); - --gray-alpha-100: rgba(var(--gray-rgb), 0.05); - - --button-primary-hover: #383838; - --button-secondary-hover: #f2f2f2; - - display: grid; - grid-template-rows: 20px 1fr 20px; - align-items: center; - justify-items: center; - min-height: 100svh; - padding: 80px; - gap: 64px; - font-family: var(--font-geist-sans); -} - -@media (prefers-color-scheme: dark) { - .page { - --gray-rgb: 255, 255, 255; - --gray-alpha-200: rgba(var(--gray-rgb), 0.145); - --gray-alpha-100: rgba(var(--gray-rgb), 0.06); - - --button-primary-hover: #ccc; - --button-secondary-hover: #1a1a1a; - } -} - -.main { - display: flex; - flex-direction: column; - gap: 32px; - grid-row-start: 2; -} - -.main ol { - font-family: var(--font-geist-mono); - padding-left: 0; - margin: 0; - font-size: 14px; - line-height: 24px; - letter-spacing: -0.01em; - list-style-position: inside; -} - -.main li:not(:last-of-type) { - margin-bottom: 8px; -} - -.main code { - font-family: inherit; - background: var(--gray-alpha-100); - padding: 2px 4px; - border-radius: 4px; - font-weight: 600; -} - -.ctas { - display: flex; - gap: 16px; -} - -.ctas a { - appearance: none; - border-radius: 128px; - height: 48px; - padding: 0 20px; - border: none; - border: 1px solid transparent; - transition: - background 0.2s, - color 0.2s, - border-color 0.2s; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - font-size: 16px; - line-height: 20px; - font-weight: 500; -} - -a.primary { - background: var(--foreground); - color: var(--background); - gap: 8px; -} - -a.secondary { - border-color: var(--gray-alpha-200); - min-width: 158px; -} - -.footer { - grid-row-start: 3; - display: flex; - gap: 24px; -} - -.footer a { - display: flex; - align-items: center; - gap: 8px; -} - -.footer img { - flex-shrink: 0; -} - -/* Enable hover only on non-touch devices */ -@media (hover: hover) and (pointer: fine) { - a.primary:hover { - background: var(--button-primary-hover); - border-color: transparent; - } - - a.secondary:hover { - background: var(--button-secondary-hover); - border-color: transparent; - } - - .footer a:hover { - text-decoration: underline; - text-underline-offset: 4px; - } -} - -@media (max-width: 600px) { - .page { - padding: 32px; - padding-bottom: 80px; - } - - .main { - align-items: center; - } - - .main ol { - text-align: center; - } - - .ctas { - flex-direction: column; - } - - .ctas a { - font-size: 14px; - height: 40px; - padding: 0 16px; - } - - a.secondary { - min-width: auto; - } - - .footer { - flex-wrap: wrap; - align-items: center; - justify-content: center; - } -} - -@media (prefers-color-scheme: dark) { - .logo { - filter: invert(); - } -} diff --git a/src/app/page.tsx b/src/app/page.tsx index 84af2cb..e37eb4c 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,95 +1,24 @@ -import Image from "next/image"; -import styles from "./page.module.css"; +import "./style.css"; + +// Cards +import TopProfile from "@/cards/topProfile"; +import AboutMe from "@/cards/aboutMe"; +import Skill from "@/cards/skill"; +import Links from "@/cards/links"; +import Details from "@/cards/details"; export default function Home() { return ( -
-
- Next.js logo -
    -
  1. - Get started by editing src/app/page.tsx. -
  2. -
  3. Save and see your changes instantly.
  4. -
+ <> + - -
- -
+ + + + + + +
+ ); } diff --git a/src/app/style.css b/src/app/style.css new file mode 100644 index 0000000..64fb626 --- /dev/null +++ b/src/app/style.css @@ -0,0 +1,21 @@ +.card { + width: 40em; + display: block; + margin: 0 auto; + margin-top: 1em; + margin-bottom: 1em; +} + +.topCard { + margin-top: 3em; +} + +.media-content { + overflow: hidden; + word-wrap: break-word; + word-break: break-all; +} + +#icon { + border-radius: 100%; +} \ No newline at end of file diff --git a/src/cards/aboutMe.tsx b/src/cards/aboutMe.tsx new file mode 100644 index 0000000..735defa --- /dev/null +++ b/src/cards/aboutMe.tsx @@ -0,0 +1,18 @@ +import { Icon } from "@iconify/react"; + +export default function AboutMe() { + return( +
+
+

+ + About Me +

+
+ +
+ {"A programmer in elementary school. I'm playing around with Next.js and home servers."} +
+
+ ) +} \ No newline at end of file diff --git a/src/cards/details.tsx b/src/cards/details.tsx new file mode 100644 index 0000000..d5955d1 --- /dev/null +++ b/src/cards/details.tsx @@ -0,0 +1,64 @@ +"use client"; + +import { useState } from "react"; +import { Icon } from "@iconify/react"; + +export default function Details() { + const [open, setOpen] = useState(false); + + type DetailItem = { + icon: string, + name: string, + value?: string, + }; + + const details: DetailItem[] = [ + { + icon: "iconoir:calendar", + name: "Birthday", + value: "2014-12-08", + }, + { + icon: "iconoir:map-pin", + name: "Location", + value: "Kanagawa, Japan", + }, + ]; + + return ( +
+
+ + Details + setOpen((prev) => !prev)} + > + + +
+ + {open && ( +
+ {details.map((item, idx) => ( +
+
+ + {item.name} + {item.value && ( + + {item.value} + + )} +
+
+ ))} +
+ )} +
+ ); +} diff --git a/src/cards/links.tsx b/src/cards/links.tsx new file mode 100644 index 0000000..d399aab --- /dev/null +++ b/src/cards/links.tsx @@ -0,0 +1,113 @@ +"use client"; + +import { useState } from "react"; +import { Icon } from "@iconify/react"; + +import { + SiQiita, + SiGitea +} from "@icons-pack/react-simple-icons"; +import { IconType } from "@icons-pack/react-simple-icons"; + +type LinkItem = { + icon: string; + iconType: "iconify" | "simpleicons"; + name: string; + about?: string; + url?: string; +}; + +const links: LinkItem[] = [ + { + icon: "iconoir:home", + iconType: "iconify", + name: "Home Page", + about: "This Page", + url: "/", + }, + { + icon: "carbon:blog", + iconType: "iconify", + name: "Blog", + about: "Coming soon...", + url: "https://blog.last2014.f5.si" + }, + { + icon: "SiQiita", + iconType: "simpleicons", + name: "Qiita", + about: "Qiita Profile", + url: "https://qiita.com/last2014", + }, + { + icon: "SiGitea", + iconType: "simpleicons", + name: "Gitea", + about: "Public Sourcecode", + url: "https://gitea.last2014.f5.si/last2014", + }, +]; + +const simpleIconMap: { [key: string]: IconType } = { + SiQiita, + SiGitea, +}; + +export default function Link() { + const [open, setOpen] = useState(false); + + return ( +
+
+ + Links + setOpen((prev) => !prev)} + > + + +
+ + {open && ( +
+ {links.map((item, idx) => { + let iconElement; + if (item.iconType === "iconify") { + iconElement = ; + } else if (item.iconType === "simpleicons") { + const SimpleIcon = simpleIconMap[item.icon]; + iconElement = SimpleIcon ? : null; + } + + return ( + +
+ {iconElement} + {item.name} + {item.about && ( + + {item.about} + + )} +
+
+ ); + })} +
+ )} +
+ ); +} diff --git a/src/cards/skill.css b/src/cards/skill.css new file mode 100644 index 0000000..b13b1b9 --- /dev/null +++ b/src/cards/skill.css @@ -0,0 +1,10 @@ +.SkillIcon { + --SkillIconMargin: 5px; + margin-right: var(--SkillIconMargin); + margin-left: var(--SkillIconMargin); +} + +.skillsContainer { + display: flex; + gap: 0; +} \ No newline at end of file diff --git a/src/cards/skill.tsx b/src/cards/skill.tsx new file mode 100644 index 0000000..77ccb04 --- /dev/null +++ b/src/cards/skill.tsx @@ -0,0 +1,67 @@ +import { + SiHtml5, + SiCss, + SiJavascript, + SiTypescript, + SiPhp, + SiReact, + SiNextdotjs, + SiNodedotjs, + SiBulma, + SiGit, + SiGitea, + SiCloudflare, +} from "@icons-pack/react-simple-icons"; + +// アイコン配列を作成 +const icons = [ + SiHtml5, + SiCss, + SiJavascript, + SiTypescript, + SiPhp, + SiReact, + SiNextdotjs, + SiNodedotjs, + SiBulma, + SiGit, + SiGitea, + SiCloudflare +]; + +const repeat = 3; +const iconList = Array.from({ length: repeat }) +.flatMap(() => icons); + +import { Icon } from "@iconify/react"; + +import Marquee from "react-fast-marquee"; + +import "./skill.css"; + +export default function Skill() { + return ( +
+

+ + Skills +

+
+
+ Use these to create websites etc. +
+ + + {iconList.map((Icon, i) => ( + + ))} + +
+
+ ); +} diff --git a/src/cards/topProfile.tsx b/src/cards/topProfile.tsx new file mode 100644 index 0000000..f409b76 --- /dev/null +++ b/src/cards/topProfile.tsx @@ -0,0 +1,30 @@ +import Image from "next/image"; + +export default function TopProfile() { + return( +
+
+
+
+ Last2014 Icon +
+
+ +
+

Last2014

+

@last2014

+
+
+ +
+ Web Developer +
+
+ ) +} \ No newline at end of file