From 61669a11793ac3de33d2dc5a4efc4f79fba7bd5c Mon Sep 17 00:00:00 2001 From: Last2014 Date: Mon, 28 Jul 2025 15:45:37 +0900 Subject: [PATCH] =?UTF-8?q?Initial=20Commit=20=E3=82=B5=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E9=83=A8=E5=88=86=E3=81=AA=E3=81=A9=E3=81=AE?= =?UTF-8?q?=E3=83=A1=E3=82=A4=E3=83=B3=E8=A6=81=E7=B4=A0=E3=82=92=E9=99=A4?= =?UTF-8?q?=E3=81=84=E3=81=9F=E3=82=B3=E3=83=BC=E3=83=89=E3=82=92=E4=BD=9C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 42 +++++++++ LICENSE | 13 +++ README.md | 36 ++++++++ eslint.config.mjs | 16 ++++ next.config.ts | 20 ++++ package.json | 43 +++++++++ postcss.config.mjs | 5 + public/uwuzu.svg | 147 ++++++++++++++++++++++++++++++ public/uwuzuMini.png | Bin 0 -> 2067 bytes src/app/developers/card.tsx | 79 ++++++++++++++++ src/app/developers/page.tsx | 45 +++++++++ src/app/favicon.ico | Bin 0 -> 15406 bytes src/app/globals.css | 26 ++++++ src/app/layout.tsx | 45 +++++++++ src/app/license/button.tsx | 54 +++++++++++ src/app/license/page.tsx | 43 +++++++++ src/app/not-found.tsx | 70 ++++++++++++++ src/app/page.tsx | 122 +++++++++++++++++++++++++ src/app/signin/page.tsx | 3 + src/components/footer/content.tsx | 41 +++++++++ src/components/footer/main.tsx | 54 +++++++++++ tsconfig.json | 27 ++++++ 22 files changed, 931 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 eslint.config.mjs create mode 100644 next.config.ts create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 public/uwuzu.svg create mode 100644 public/uwuzuMini.png create mode 100644 src/app/developers/card.tsx create mode 100644 src/app/developers/page.tsx create mode 100644 src/app/favicon.ico create mode 100644 src/app/globals.css create mode 100644 src/app/layout.tsx create mode 100644 src/app/license/button.tsx create mode 100644 src/app/license/page.tsx create mode 100644 src/app/not-found.tsx create mode 100644 src/app/page.tsx create mode 100644 src/app/signin/page.tsx create mode 100644 src/components/footer/content.tsx create mode 100644 src/components/footer/main.tsx create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c942d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/package-lock.json +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..dc11dcc --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright 2025 Last2014 + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e215bc4 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +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. diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..c85fb67 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,16 @@ +import { dirname } from "path"; +import { fileURLToPath } from "url"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const eslintConfig = [ + ...compat.extends("next/core-web-vitals", "next/typescript"), +]; + +export default eslintConfig; diff --git a/next.config.ts b/next.config.ts new file mode 100644 index 0000000..28b905f --- /dev/null +++ b/next.config.ts @@ -0,0 +1,20 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + images: { + remotePatterns: [ + { + protocol: "https", + hostname: "**", + pathname: "**", + }, + { + protocol: "http", + hostname: "**", + pathname: "**", + }, + ], + }, +}; + +export default nextConfig; diff --git a/package.json b/package.json new file mode 100644 index 0000000..11177bb --- /dev/null +++ b/package.json @@ -0,0 +1,43 @@ +{ + "name": "uwuzu_light_client", + "version": "1.0", + "type": "module", + "license": "Apache-2.0", + "author": { + "name": "Last2014", + "email": "info@last2014.com", + "url": "https://last2014.com/" + }, + "contributors": [ + { + "name": "K.Yuzen", + "url": "https://x.com/K_Yuzen_67854/" + } + ], + "scripts": { + "dev": "next dev --turbopack", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@eslint/eslintrc": "^3", + "@iconify/react": "^6.0.0", + "@tailwindcss/postcss": "^4", + "@types/eslint": "^9.6.1", + "@types/js-cookie": "^3.0.6", + "@types/next": "^8.0.7", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "@types/tailwindcss": "^3.0.11", + "eslint": "^9", + "eslint-config-next": "15.3.4", + "js-cookie": "^3.0.5", + "next": "15.3.4", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "tailwindcss": "^4", + "typescript": "^5" + } +} diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 0000000..c7bcb4b --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,5 @@ +const config = { + plugins: ["@tailwindcss/postcss"], +}; + +export default config; diff --git a/public/uwuzu.svg b/public/uwuzu.svg new file mode 100644 index 0000000..2abb114 --- /dev/null +++ b/public/uwuzu.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/uwuzuMini.png b/public/uwuzuMini.png new file mode 100644 index 0000000000000000000000000000000000000000..75777f7734ea87a223e706439a820f9e467f0261 GIT binary patch literal 2067 zcmd^=>sOKq9>*WTvTVvU%eICvDXml-OV4yf#k?V6;Sx>-m`!P3FfUDB0!61LEX|qJ z)SyAkLCwT%uKL_l}cBvTR)OYm{+oc#y(&F+gm=X*K7bAE3=uf8|K zj^j32?6d#?U=uz#fVA3OpS^zFYLZ41%vWnea`5Tz0AO?XXTwUIHtzxeb16RHC^_Tj zS;b5~EgjK2FXM1{FO)?R&4`DGZT_&Z0wy)w{F?NEU4NBwG%TRW;>?z;v69L$IKOs3 z1ltyn8P@GsXkTO(c=K$nM-Ux!kdCIczffL?NxP7l%&it3!x%9!Q&BAb;zn(P%*1*> z$9#*48T@%K4`-QfcK6^m39KU6450r{R8skM*n=ia)%dkKp4AY5-Wj&U`GRCa-N55U$~VD-12P<0^Fu;B;WrQ z2)G63DZ9q(fm5iQ9bc_k`|tdJI9D0}BjudUoH^G;bR$1&MXxj2`0p#JOizxu_}7C! zZI|SKKY{SAL9h}?14+o!vtsHTwl8c-CHi7<>w#gdJZL*Uko#-el z$88^88~6Ul%5=BJet0Y!$!zW)-I`R^cRo;a?(7xwS4sUpDMQ5*%g&i<45p_gHX~s#9!7- zC*&fiyN{vvKl?}(G-2{jV-6`{2@Pz%#WA)Zf~ivwTW6Ho+Iuq;0c;B4OZS#@D#qnn zIib~IuBb;fx{`{TMEJ%KM$T-&vh)U%0W1*MyRcgRVXG>1v#fBr$g{+5gcsD5*PoX$n%&`W#M>brJVxW8n<+#4Vu&l zt8|w0YmUGN>m!;kg~rqRp$kKLtJ)_xPn~})q<@s16;0!IMpAywemh==MSB~28?*eZ zVYEMJrD$(w7Z%!he)h_}%f0@fR3(r(FB~S(PpA)v7Abq8G9s7k(+&RMtG^BYF)b7{ zV`YZlSX;XCX_=?El9LYyqqFO@H}qU$hz?o8EgQ<74Pr2wJyGG+pzYK9r7Lz3%LGH# zDuQi1?Kav(88J#tyPL@b*QiG>Q;T;8qSd3aZVvx_hLy=4p*Fb=&0I_ThWE|V%Sc(W z6|x)$tTaTFl|v~l?L7;i76neKwn_41w{*P}U!t|?<(294q=jbi1hx;VMy!6j)(n*n zE|V$Dx@q1jT@kcAa2diSt{)3(Ia%e1ytA_`Pl;!U4QgamXRM{`QJ_J<3SwxfZ+wpM z!)uV+3PhcYiHP8T^2T^^v`|@h=+hG;#vJ#j zk)N{cI#BgK4&J(r>OQ{o`4AHS_Vw?XHU8u@!U;{`1q~tT_BKWYk?v1ndP$NKCo?`) z4GfDLnKq(Uka&k`XBE2FvR67~JB3b{^T&kMclavxu?q}E%T z>k+VtdLiNAU^U-q|4%;YnBwD}@}!240v+kkOD!w+t;ORWzRHmWebIFWn~JVXIS literal 0 HcmV?d00001 diff --git a/src/app/developers/card.tsx b/src/app/developers/card.tsx new file mode 100644 index 0000000..c2cfe25 --- /dev/null +++ b/src/app/developers/card.tsx @@ -0,0 +1,79 @@ +"use client"; +import Image from "next/image"; +import Link from "next/link"; + +interface DeveloperCardProps { + name: string; + icon: string; + link: string; + tags: Array; +}; + +interface Tags { + name: string; +}; + +function Tag({ name }: Tags) { + return ( + + {name} + + ); +}; + +export default function DeveloperCard({ + name, + icon, + link, + tags +}: DeveloperCardProps) { + return ( +
+ {`${name} +
+
+ {name} +
+
+
+ {tags.map((tag, index) => ( + + ))} +
+
+ ); +}; diff --git a/src/app/developers/page.tsx b/src/app/developers/page.tsx new file mode 100644 index 0000000..5ddb2ae --- /dev/null +++ b/src/app/developers/page.tsx @@ -0,0 +1,45 @@ +"use client"; +import DeveloperCard from "./card"; + +export default function Developers() { + return ( +
+

+ 開発者 +

+ + + + + +
+ ); +} diff --git a/src/app/favicon.ico b/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..9d03613f51c8a1776dfff9beb265d2ad575cce42 GIT binary patch literal 15406 zcmeHNNoy2A6fV&p5D(txBsm6`;EEgKg1B8IXxuJ(5EVqd2!aZdqauW$CVEluph84k zPA-TsW;3D*CQ+kFjEOO7_U-fg=qYB5=}BgiaoVIF^i)rGzphtby{cFBy*6f=nQqe3 z49k$&Kf{Z4bHuXMq0Y&X&*MHCo+zQv1Sp?K~$EW|K4Y>R{ zQeQzseELtn1DB%ob3Zx#c>3>1HL&M(1pi$;Kgw%C9Vg?lYs5(*j*FUSLOho9(EQ{l z@zr&hQvTC>|G*HC$Jlj@?JQ>e0U1B8} z^`EWt-mbovuUY(Uxs^8A{z*ptIq$vt`&qx%k+xo2$`5+OW5d<|H$E1pL`#Ri^FJZr z#^2POe-wYd^Z*UqGcWd;f3=_1GdYYEiOw^z^t8s(;rGmF_x<$Tb$?79Hj^70KVD#} zTo+G5iq`Dr;dqkC?dxtXbN%al!1+KBd|)2evEotIkULtK0vD}3{JdQA*yi{I2+xar}eka?nH3FTqTRd8{=zleN-Gk)$WWREg zmQPeWx3fKoVm1+a+S>?A?Z5p*ZBSpx)}Yy+P42ppdqXSY3Wc|FsMpyibMz4pPOp?mvNpfrB7HAMk$ z>=(YVa)*i&kJv}H4}xI7#Zxw2<(#Q}hsAq%sTf?qSP_)*EBvGFzasl-<8Zs}e~p1$ zt{IeTk^~KZXTN{n**=`e()mwn*Pjl5hyQrSv-2P4KhA%=wT#wpZvEia5AlqL|9$=x zub}S+#EXb~yU1?`=Z~`f7vG|NymZ>Qm&_u!7!PI>`K) { + return ( + + +
+ {children} +
+