diff --git a/package.json b/package.json
index 5101e090..546d9910 100644
--- a/package.json
+++ b/package.json
@@ -28,5 +28,5 @@
"prettier-plugin-organize-imports": "^4.3.0",
"prettier-plugin-packagejson": "^2.5.20"
},
- "packageManager": "pnpm@10.25.0+sha512.5e82639027af37cf832061bcc6d639c219634488e0f2baebe785028a793de7b525ffcd3f7ff574f5e9860654e098fe852ba8ac5dd5cefe1767d23a020a92f501"
+ "packageManager": "pnpm@10.26.2+sha512.0e308ff2005fc7410366f154f625f6631ab2b16b1d2e70238444dd6ae9d630a8482d92a451144debc492416896ed16f7b114a86ec68b8404b2443869e68ffda6"
}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
deleted file mode 100644
index d0b7dbe2..00000000
--- a/pnpm-workspace.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-onlyBuiltDependencies:
- - esbuild
- - sharp
diff --git a/public/img/DemoShow/a.jpg b/public/img/DemoShow/a.jpg
new file mode 100644
index 00000000..42779eee
Binary files /dev/null and b/public/img/DemoShow/a.jpg differ
diff --git a/public/img/DemoShow/b.jpg b/public/img/DemoShow/b.jpg
new file mode 100644
index 00000000..bbcd71b3
Binary files /dev/null and b/public/img/DemoShow/b.jpg differ
diff --git a/public/img/DemoShow/c.jpg b/public/img/DemoShow/c.jpg
new file mode 100644
index 00000000..265ea975
Binary files /dev/null and b/public/img/DemoShow/c.jpg differ
diff --git a/public/img/DemoShow/d.jpg b/public/img/DemoShow/d.jpg
new file mode 100644
index 00000000..f8d617bc
Binary files /dev/null and b/public/img/DemoShow/d.jpg differ
diff --git a/public/img/Visual/jam-the-chaos-title.svg b/public/img/Visual/jam-the-chaos-title.svg
new file mode 100644
index 00000000..36207989
--- /dev/null
+++ b/public/img/Visual/jam-the-chaos-title.svg
@@ -0,0 +1,19 @@
+
diff --git a/public/img/Visual/photo-wall/image 13.jpg b/public/img/Visual/photo-wall/image 13.jpg
new file mode 100644
index 00000000..8d655cc1
Binary files /dev/null and b/public/img/Visual/photo-wall/image 13.jpg differ
diff --git a/public/img/Visual/photo-wall/image 14.jpg b/public/img/Visual/photo-wall/image 14.jpg
new file mode 100644
index 00000000..b0ae2014
Binary files /dev/null and b/public/img/Visual/photo-wall/image 14.jpg differ
diff --git a/public/img/Visual/photo-wall/image 6.jpg b/public/img/Visual/photo-wall/image 6.jpg
new file mode 100644
index 00000000..3100de92
Binary files /dev/null and b/public/img/Visual/photo-wall/image 6.jpg differ
diff --git a/public/img/Visual/photo-wall/image 8.jpg b/public/img/Visual/photo-wall/image 8.jpg
new file mode 100644
index 00000000..3b926e32
Binary files /dev/null and b/public/img/Visual/photo-wall/image 8.jpg differ
diff --git a/public/img/Visual/photo-wall/image 9.jpg b/public/img/Visual/photo-wall/image 9.jpg
new file mode 100644
index 00000000..f32cdf21
Binary files /dev/null and b/public/img/Visual/photo-wall/image 9.jpg differ
diff --git a/public/img/Visual/round-metal.svg b/public/img/Visual/round-metal.svg
new file mode 100644
index 00000000..4eabac21
--- /dev/null
+++ b/public/img/Visual/round-metal.svg
@@ -0,0 +1,45 @@
+
diff --git a/public/img/Visual/star-metal.png b/public/img/Visual/star-metal.png
new file mode 100644
index 00000000..6a43cd76
Binary files /dev/null and b/public/img/Visual/star-metal.png differ
diff --git a/public/img/Visual/stone-metal.svg b/public/img/Visual/stone-metal.svg
new file mode 100644
index 00000000..aceaf815
--- /dev/null
+++ b/public/img/Visual/stone-metal.svg
@@ -0,0 +1,43 @@
+
diff --git a/public/img/talker-test.JPG b/public/img/talker-test.JPG
new file mode 100644
index 00000000..4a9ddd4c
Binary files /dev/null and b/public/img/talker-test.JPG differ
diff --git a/src/components/index/DemoShow.astro b/src/components/index/DemoShow.astro
new file mode 100644
index 00000000..9edfda15
--- /dev/null
+++ b/src/components/index/DemoShow.astro
@@ -0,0 +1,247 @@
+
+
+
+
+
+
+
+
+
+ Demo 展投稿以現場專案展示為核心,
+ 輔以靜態海報與短影音呈現學生個人或團隊的專案。
+
+
+
+
+
+
+
diff --git a/src/components/index/Speaker.astro b/src/components/index/Speaker.astro
new file mode 100644
index 00000000..aed0d2a9
--- /dev/null
+++ b/src/components/index/Speaker.astro
@@ -0,0 +1,373 @@
+---
+const speakers = [
+ {
+ name: "OsGa",
+ desc: "崴崴孟孟旅行三百天",
+ img: "https://placehold.co/367x492/png?text=OsGa"
+ },
+ {
+ name: "毛哥EM",
+ desc: "厲害崴孟讓旅途順暢無阻",
+ img: "https://placehold.co/367x492/png?text=EM"
+ },
+ {
+ name: "凱文 Kevin",
+ desc: "崴孟合作 什麼難關都不怕",
+ img: "https://placehold.co/367x492/png?text=Kevin"
+ },
+ {
+ name: "紐爾森 Nelson",
+ desc: "孟寶總是心暖暖 因為崴崴寶",
+ img: "https://placehold.co/367x492/png?text=Nelson"
+ },
+ {
+ name: "yc油成",
+ desc: "擁有豐富的數學背景",
+ img: "https://placehold.co/367x492/png?text=YC"
+ }
+];
+---
+
+
+
+
+
+
+ {
+ speakers.map((person, index) => (
+
+ ))
+ }
+
+
+
+

+
+
+
+ {speakers.map(person =>

)}
+ {speakers.map(person =>

)}
+
+
+
+
+
+ 查看議程表
+
+
+
+
+
+
+
diff --git a/src/components/index/Visual.astro b/src/components/index/Visual.astro
new file mode 100644
index 00000000..4f3e2879
--- /dev/null
+++ b/src/components/index/Visual.astro
@@ -0,0 +1,203 @@
+---
+import Landing from "./Visual/Landing.astro";
+import Dialogue from "./Visual/Dialogue.astro";
+import PhotoWall from "./Visual/PhotoWall.astro";
+---
+
+
+
+
+
+
diff --git a/src/components/index/Visual/Dialogue.astro b/src/components/index/Visual/Dialogue.astro
new file mode 100644
index 00000000..82b860c3
--- /dev/null
+++ b/src/components/index/Visual/Dialogue.astro
@@ -0,0 +1,183 @@
+
+
+
時代的劇本已被打破,劃一的旋律變得七零八落
+ 在這混沌的時代,平衡能否被我們重新尋回?
+
+
+
+
+
+ 身處 2026,作為資訊人與學生的我們,正身在時代變革的風口浪尖。AI
+ 的崛起挑戰了傳統的開發模式,定義資訊人價值的技術壁壘正逐漸崩塌。當創造的權力民主化,個體技術不再能作為我們的護城河時,「協作」成了我們最重要的課題。我們正迎向一場尋求與
+ AI、同儕、跨域夥伴協奏平衡的盛大混沌。但,如果「亂」不是阻礙,而是新平衡的起點呢?
+
+
+ 在即興音樂的 JamSession 中,演奏不再有指揮,當 Jam 的節拍對不上,就讓我們一起創造新的節拍。當 Jam 的合聲不完美,這正是我們這個世代,兼容並蓄、豪邁不羈、百家爭鳴的聲音。在 SITCON
+ 2026,我們邀請你一起加入這場 Jam。讓我們駕馭混沌,在紛亂中找到節奏,在協作中尋求共鳴。
+
+
+
+
+
+
+
+
+ 學生計算機年會(Students’ Information Technology Conference)自 2012
+ 年發起,以學生為本、由學生自發舉辦,長期投身學生資訊教育與推廣開源精神,希望引領更多學子踏入資訊的殿堂,更冀望所有對資訊有興趣的學生,能夠在年會裏齊聚一堂,彼此激盪、傳承、啟發,達到「學以致用」、「教學相長」的實際展現。
+
+
+
+
+
+
+
+
diff --git a/src/components/index/Visual/Landing.astro b/src/components/index/Visual/Landing.astro
new file mode 100644
index 00000000..e0521fbf
--- /dev/null
+++ b/src/components/index/Visual/Landing.astro
@@ -0,0 +1,285 @@
+---
+
+---
+
+
+
+
+

+
+
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
diff --git a/src/components/index/Visual/PhotoWall.astro b/src/components/index/Visual/PhotoWall.astro
new file mode 100644
index 00000000..feac6e66
--- /dev/null
+++ b/src/components/index/Visual/PhotoWall.astro
@@ -0,0 +1,123 @@
+---
+const images = [
+ { src: "/2026/img/Visual/photo-wall/image 6.jpg", alt: "SITCON 講者在舞台上進行技術演講的照片" },
+ { src: "/2026/img/Visual/photo-wall/image 8.jpg", alt: "SITCON 進行夏令營在大教室的照片" },
+ { src: "/2026/img/Visual/photo-wall/image 9.jpg", alt: "SITCON 在中央研究院中,最大的會議廳進行講座的照片" },
+ { src: "/2026/img/Visual/photo-wall/image 13.jpg", alt: "SITCON 講者在舞台上進行技術演講的照片" },
+ { src: "/2026/img/Visual/photo-wall/image 14.jpg", alt: "SITCON 場外交流區,參與者彼此聊天與交換心得的照片" }
+];
+---
+
+
+
+ {
+ images.map((img, index) => (
+
+
+

+
+
+ ))
+ }
+
+
+
+
+
+
diff --git a/src/components/venue/FloorButton.astro b/src/components/venue/FloorButton.astro
new file mode 100644
index 00000000..6e7bd2fe
--- /dev/null
+++ b/src/components/venue/FloorButton.astro
@@ -0,0 +1,70 @@
+---
+interface Props {
+ id: string;
+ label: string;
+ description: string;
+}
+
+const { id, label, description } = Astro.props;
+---
+
+
+
+
diff --git a/src/components/venue/RoomItem.astro b/src/components/venue/RoomItem.astro
new file mode 100644
index 00000000..399f70f3
--- /dev/null
+++ b/src/components/venue/RoomItem.astro
@@ -0,0 +1,64 @@
+---
+interface Props {
+ name: string;
+ description: string;
+ badge?: string;
+}
+
+const { name, description, badge = "12" } = Astro.props;
+---
+
+
+
{badge}
+
+
{name}
+
{description}
+
+
+
+
diff --git a/src/data/venue.json b/src/data/venue.json
new file mode 100644
index 00000000..4757829e
--- /dev/null
+++ b/src/data/venue.json
@@ -0,0 +1,83 @@
+[
+ {
+ "id": "2F",
+ "label": "2F",
+ "description": "入口、咖啡廳",
+ "items": [
+ {
+ "id": "entrance",
+ "name": "入口",
+ "description": "報到處"
+ },
+ {
+ "id": "cafe",
+ "name": "咖啡廳",
+ "description": "休息空間"
+ }
+ ]
+ },
+ {
+ "id": "3F",
+ "label": "3F",
+ "description": "報到、攤位、R0~R3",
+ "items": [
+ {
+ "id": "r0",
+ "name": "R0",
+ "description": "演講廳"
+ },
+ {
+ "id": "r1",
+ "name": "R1",
+ "description": "演講廳"
+ },
+ {
+ "id": "r2",
+ "name": "R2",
+ "description": "演講廳"
+ },
+ {
+ "id": "r3",
+ "name": "R3",
+ "description": "演講廳"
+ },
+ {
+ "id": "r0",
+ "name": "R0",
+ "description": "演講廳"
+ },
+ {
+ "id": "r1",
+ "name": "R1",
+ "description": "演講廳"
+ },
+ {
+ "id": "r2",
+ "name": "R2",
+ "description": "演講廳"
+ },
+ {
+ "id": "r3",
+ "name": "R3",
+ "description": "演講廳"
+ }
+ ]
+ },
+ {
+ "id": "4F",
+ "label": "4F",
+ "description": "攤位、午餐、交誼廳",
+ "items": [
+ {
+ "id": "lounge",
+ "name": "交誼廳",
+ "description": "交流空間"
+ },
+ {
+ "id": "lunch",
+ "name": "午餐區",
+ "description": "用餐空間"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 2cf80fc8..c2eab0fe 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -1,18 +1,25 @@
---
import Layout from "@/layout/Layout.astro";
import Footer from "@/components/Footer.astro";
+import Speaker from "@/components/index/Speaker.astro";
+import DemoShow from "@/components/index/DemoShow.astro";
+import Visual from "@/components/index/Visual.astro";
---
-
- SITCON 2026
-
+
+
+
diff --git a/src/pages/venue.astro b/src/pages/venue.astro
index 4d7f8d79..43ca97bc 100644
--- a/src/pages/venue.astro
+++ b/src/pages/venue.astro
@@ -1,18 +1,416 @@
---
import Layout from "@/layout/Layout.astro";
-import Footer from "@/components/Footer.astro";
+// import { ShieldAlert } from "lucide-astro";
+import FloorButton from "@/components/venue/FloorButton.astro";
+import RoomItem from "@/components/venue/RoomItem.astro";
+import venueData from "@/data/venue.json";
+
+const floors = venueData;
---
-
+
- 會場地圖
+
+
會場地圖
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ floors.map(floor => (
+
+
{floor.label} Floor Plan
+
+ ))
+ }
+
+
-
+
+