diff --git a/package-lock.json b/package-lock.json index 8e8cfeb..9acb102 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,7 @@ "@types/react-dom": "^19", "@types/react-syntax-highlighter": "^15.5.13", "babel-plugin-react-compiler": "1.0.0", + "baseline-browser-mapping": "^2.9.19", "typescript": "^5" } }, @@ -710,15 +711,15 @@ } }, "node_modules/@next/env": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.0.10.tgz", - "integrity": "sha512-8tuaQkyDVgeONQ1MeT9Mkk8pQmZapMKFh5B+OrFUlG3rVmYTXcXlBetBgTurKXGaIZvkoqRT9JL5K3phXcgang==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.6.tgz", + "integrity": "sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==", "license": "MIT" }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.0.10.tgz", - "integrity": "sha512-4XgdKtdVsaflErz+B5XeG0T5PeXKDdruDf3CRpnhN+8UebNa5N2H58+3GDgpn/9GBurrQ1uWW768FfscwYkJRg==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.6.tgz", + "integrity": "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==", "cpu": [ "arm64" ], @@ -732,9 +733,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.0.10.tgz", - "integrity": "sha512-spbEObMvRKkQ3CkYVOME+ocPDFo5UqHb8EMTS78/0mQ+O1nqE8toHJVioZo4TvebATxgA8XMTHHrScPrn68OGw==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.6.tgz", + "integrity": "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==", "cpu": [ "x64" ], @@ -748,9 +749,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.0.10.tgz", - "integrity": "sha512-uQtWE3X0iGB8apTIskOMi2w/MKONrPOUCi5yLO+v3O8Mb5c7K4Q5KD1jvTpTF5gJKa3VH/ijKjKUq9O9UhwOYw==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.6.tgz", + "integrity": "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==", "cpu": [ "arm64" ], @@ -764,9 +765,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.0.10.tgz", - "integrity": "sha512-llA+hiDTrYvyWI21Z0L1GiXwjQaanPVQQwru5peOgtooeJ8qx3tlqRV2P7uH2pKQaUfHxI/WVarvI5oYgGxaTw==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.6.tgz", + "integrity": "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==", "cpu": [ "arm64" ], @@ -780,9 +781,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.0.10.tgz", - "integrity": "sha512-AK2q5H0+a9nsXbeZ3FZdMtbtu9jxW4R/NgzZ6+lrTm3d6Zb7jYrWcgjcpM1k8uuqlSy4xIyPR2YiuUr+wXsavA==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.6.tgz", + "integrity": "sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==", "cpu": [ "x64" ], @@ -796,9 +797,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.0.10.tgz", - "integrity": "sha512-1TDG9PDKivNw5550S111gsO4RGennLVl9cipPhtkXIFVwo31YZ73nEbLjNC8qG3SgTz/QZyYyaFYMeY4BKZR/g==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.6.tgz", + "integrity": "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==", "cpu": [ "x64" ], @@ -812,9 +813,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.0.10.tgz", - "integrity": "sha512-aEZIS4Hh32xdJQbHz121pyuVZniSNoqDVx1yIr2hy+ZwJGipeqnMZBJHyMxv2tiuAXGx6/xpTcQJ6btIiBjgmg==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.6.tgz", + "integrity": "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==", "cpu": [ "arm64" ], @@ -828,9 +829,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.0.10.tgz", - "integrity": "sha512-E+njfCoFLb01RAFEnGZn6ERoOqhK1Gl3Lfz1Kjnj0Ulfu7oJbuMyvBKNj/bw8XZnenHDASlygTjZICQW+rYW1Q==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.6.tgz", + "integrity": "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==", "cpu": [ "x64" ], @@ -988,6 +989,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001760", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", @@ -2360,13 +2370,14 @@ } }, "node_modules/next": { - "version": "16.0.10", - "resolved": "https://registry.npmjs.org/next/-/next-16.0.10.tgz", - "integrity": "sha512-RtWh5PUgI+vxlV3HdR+IfWA1UUHu0+Ram/JBO4vWB54cVPentCD0e+lxyAYEsDTqGGMg7qpjhKh6dc6aW7W/sA==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/next/-/next-16.1.6.tgz", + "integrity": "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==", "license": "MIT", "dependencies": { - "@next/env": "16.0.10", + "@next/env": "16.1.6", "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" @@ -2378,14 +2389,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.0.10", - "@next/swc-darwin-x64": "16.0.10", - "@next/swc-linux-arm64-gnu": "16.0.10", - "@next/swc-linux-arm64-musl": "16.0.10", - "@next/swc-linux-x64-gnu": "16.0.10", - "@next/swc-linux-x64-musl": "16.0.10", - "@next/swc-win32-arm64-msvc": "16.0.10", - "@next/swc-win32-x64-msvc": "16.0.10", + "@next/swc-darwin-arm64": "16.1.6", + "@next/swc-darwin-x64": "16.1.6", + "@next/swc-linux-arm64-gnu": "16.1.6", + "@next/swc-linux-arm64-musl": "16.1.6", + "@next/swc-linux-x64-gnu": "16.1.6", + "@next/swc-linux-x64-musl": "16.1.6", + "@next/swc-win32-arm64-msvc": "16.1.6", + "@next/swc-win32-x64-msvc": "16.1.6", "sharp": "^0.34.4" }, "peerDependencies": { diff --git a/package.json b/package.json index 2c2bfb7..eb1420c 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@types/react-dom": "^19", "@types/react-syntax-highlighter": "^15.5.13", "babel-plugin-react-compiler": "1.0.0", + "baseline-browser-mapping": "^2.9.19", "typescript": "^5" } } diff --git a/src/app/events/[eventId]/page.tsx b/src/app/events/[eventId]/page.tsx index e7a16b6..3ee0ecc 100644 --- a/src/app/events/[eventId]/page.tsx +++ b/src/app/events/[eventId]/page.tsx @@ -3,7 +3,7 @@ import CardList from "@/components/CardList"; import MarkdownContent from "@/components/ui/MarkdownContent"; import PageTitle from "@/components/ui/PageTitle"; import Paper from "@/components/ui/Paper"; -import { getAllEventIds, getEvent, getWorks } from "@/lib/microcms"; +import { getEvent, getWorks } from "@/lib/microcms"; import { unstable_noStore as noStore } from "next/cache"; import { notFound } from "next/navigation"; import styles from "./page.module.css"; @@ -13,17 +13,6 @@ type EventDetailsPageProps = { searchParams: Promise<{ draftKey?: string }>; }; -export const revalidate = 60; - -// 静的パスを生成 -export async function generateStaticParams() { - // getAllEventIdsを使用して全てのイベントIDを取得 - const allEventIds = await getAllEventIds(); - return allEventIds.map((content) => ({ - eventId: content.id, - })); -} - // propsを直接受け取り、paramsをawaitで解決する export default async function EventDetailsPage(props: EventDetailsPageProps) { // paramsオブジェクト自体をawaitで解決 diff --git a/src/app/page.module.css b/src/app/page.module.css index e69de29..8aa9213 100644 --- a/src/app/page.module.css +++ b/src/app/page.module.css @@ -0,0 +1,128 @@ +.container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 4rem 8rem; +} + +.title { + font-family: var(--font-roboto-slab); + font-size: 6rem; + color: #333; + margin-bottom: 2rem; +} + +.lead { + font-size: 1.8rem; + line-height: 1.8; + margin-bottom: 5rem; + text-align: center; +} + +.grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 2rem; + + div { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + svg { + width: 70px; + height: auto; + margin-bottom: 1rem; + } + } +} + +.card-title { + font-size: 2rem; + font-weight: 700; + margin-bottom: 3rem; +} + +.card-body { + font-size: 1.6rem; + color: #444; + margin-bottom: 3rem; +} + +.button { + display: inline-block; + width: 100%; + font-size: 1.6rem; + font-weight: 700; + background: var(--accent); + color: #444; + border-radius: 8px; + text-decoration: none; + text-align: center; + padding: 1.6rem 0; + position: relative; + transition: + background 160ms ease, + transform 160ms ease; + box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.1); +} + +.button::after { + content: "→"; + display: inline-block; + margin-left: 0.6rem; + transform: translateX(0); + transition: transform 160ms ease; + color: inherit; +} + +.button:hover { + background: color-mix(in srgb, var(--accent), #000 10%); +} + +.button:hover::after { + transform: translateX(6px); +} + +.link { + display: inline-block; + text-decoration: underline; + font-size: 1.6rem; + font-weight: 600; + margin-top: 1rem; +} + +@media (max-width: 899px) { + .grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 640px) { + .container { + padding: 2rem 4rem; + } + + .title { + font-size: 4rem; + } + + .lead { + font-size: 1.4rem; + } + + .card-title { + font-size: 1.8rem; + } + + .card-body { + font-size: 1.4rem; + } + + .button { + font-size: 1.4rem; + padding: 1.2rem 0; + } +} diff --git a/src/app/page.tsx b/src/app/page.tsx index ec3dc11..b114182 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,5 +1,54 @@ -import { redirect } from "next/navigation"; +import CalenderIcon from "@/components/CalenderIcon"; +import ProgramCodeIcon from "@/components/ProgramCodeIcon"; +import Paper from "@/components/ui/Paper"; +import Link from "next/link"; +import styles from "./page.module.css"; export default function Home() { - redirect("/events"); + return ( +
+ KCL Works は、KCL(Kyutech Code
+ Lab)に参加する九州工業大学の学生による作品と活動成果を紹介するポートフォリオサイトです。
+
+ ハッカソン、企業連携イベント、開発プロジェクトなど、学生の挑戦の記録を掲載しています。
+
+
+ KCLについてはこちらをご覧ください
+
+
+ KCLで行われたハッカソンや企業連携イベントを紹介します。 +
+ + イベントを見る + ++ 学生が制作したアプリやプロダクトを掲載しています。 +
+ + 作品を見る + +受賞歴
++ {text} +
+