From 74f941fa2ae4d75d0faabde2b01b3f36da813b16 Mon Sep 17 00:00:00 2001 From: 7his15CYS <127721339+7his15CYS@users.noreply.github.com> Date: Thu, 2 Apr 2026 01:54:02 +0800 Subject: [PATCH] Update Rule_internal.tsx --- src/page/Rule_internal.tsx | 1209 ++++++++++++++++++++---------------- 1 file changed, 681 insertions(+), 528 deletions(-) diff --git a/src/page/Rule_internal.tsx b/src/page/Rule_internal.tsx index 3da7f06..2129304 100644 --- a/src/page/Rule_internal.tsx +++ b/src/page/Rule_internal.tsx @@ -28,21 +28,21 @@ export function RuleInternal() { { title: "共通核心訓練", subtitle: "Core Curriculum", - color: "#ff6b6b", - bg: "rgba(255, 107, 107, 0.10)", - border: "rgba(255, 107, 107, 0.32)", + accent: "#ff8b8b", + bg: "rgba(255, 122, 122, 0.08)", + border: "rgba(255, 122, 122, 0.22)", items: [ "所有學生必修,不因主軌而免除", "碩一上以建立研究、表達、紀錄、回報能力為主", - "目標是避免只會比賽、不會研究;或只會研究、不會實作", + "避免只會比賽、不會研究;或只會研究、不會實作", ], }, { title: "主軌制度", subtitle: "Primary Track", - color: "#7dd3fc", - bg: "rgba(125, 211, 252, 0.10)", - border: "rgba(125, 211, 252, 0.32)", + accent: "#8dd5ff", + bg: "rgba(94, 201, 255, 0.08)", + border: "rgba(94, 201, 255, 0.22)", items: [ "碩一上結束前完成能力盤點", "碩一下正式確認一個主軌", @@ -52,13 +52,13 @@ export function RuleInternal() { { title: "公共任務制度", subtitle: "Service Role", - color: "#fcd34d", - bg: "rgba(252, 211, 77, 0.10)", - border: "rgba(252, 211, 77, 0.32)", + accent: "#ffd76b", + bg: "rgba(255, 215, 107, 0.08)", + border: "rgba(255, 215, 107, 0.22)", items: [ "每學期原則上一人一項任務", "任務以有限度、可交付、可驗證為原則", - "公共任務與資源配置、可信任度、推薦支持連動", + "與資源配置、可信任度、推薦支持連動", ], }, ]; @@ -67,11 +67,9 @@ export function RuleInternal() { { title: "Research Track", subtitle: "研究型", - color: { - title: "#7dd3fc", - bg: "rgba(6, 147, 227, 0.10)", - border: "rgba(6, 147, 227, 0.35)", - }, + accent: "#7dd3fc", + bg: "rgba(125, 211, 252, 0.08)", + border: "rgba(125, 211, 252, 0.24)", positioning: "適合希望深化研究能力、對升學或研究型工作有興趣的學生。", goals: [ "建立文獻閱讀與問題定義能力", @@ -94,11 +92,9 @@ export function RuleInternal() { { title: "CTF Track", subtitle: "比賽型", - color: { - title: "#fcd34d", - bg: "rgba(252, 185, 0, 0.10)", - border: "rgba(252, 185, 0, 0.35)", - }, + accent: "#fcd34d", + bg: "rgba(252, 211, 77, 0.08)", + border: "rgba(252, 211, 77, 0.24)", positioning: "適合希望提升實戰技術、攻防能力,並以資安實務職涯為目標的學生。", goals: [ "建立可驗證之實戰能力", @@ -126,11 +122,9 @@ export function RuleInternal() { { title: "Project Track", subtitle: "專案型", - color: { - title: "#fda4af", - bg: "rgba(255, 77, 79, 0.10)", - border: "rgba(255, 77, 79, 0.35)", - }, + accent: "#fda4af", + bg: "rgba(253, 164, 175, 0.08)", + border: "rgba(253, 164, 175, 0.24)", positioning: "適合希望累積工程落地、系統設計與工具開發能力,並以業界實作為目標的學生。", goals: [ "建立需求分析、系統設計、實作與驗證能力", @@ -236,7 +230,7 @@ export function RuleInternal() { ["B", "達到基本要求"], ["C", "需改善"], ["D", "嚴重落後或不適任"], - ]; + ] as const; const serviceRoles = [ { @@ -304,624 +298,783 @@ export function RuleInternal() { ]; const pageStyle = { - background: - "radial-gradient(circle at top, rgba(122,27,27,0.28) 0%, rgba(10,10,10,1) 36%, rgba(6,6,6,1) 100%)", minHeight: "100vh", - color: "#f3f4f6", + color: "#f5f7fb", + background: + "radial-gradient(circle at top, rgba(133, 31, 31, 0.22) 0%, rgba(17, 18, 24, 1) 32%, rgba(10, 11, 15, 1) 100%)", } as const; - const heroStyle = { - background: - "linear-gradient(135deg, rgba(122,27,27,0.96) 0%, rgba(64,13,13,0.96) 55%, rgba(20,20,20,0.96) 100%)", - border: "1px solid rgba(255,255,255,0.10)", - boxShadow: "0 24px 60px rgba(0,0,0,0.35)", + const shellStyle = { + maxWidth: "1240px", } as const; - const panelStyle = { - background: "rgba(17,17,17,0.82)", + const glassStyle = { + background: "rgba(20, 24, 31, 0.76)", border: "1px solid rgba(255,255,255,0.08)", - boxShadow: "0 10px 30px rgba(0,0,0,0.18)", - backdropFilter: "blur(4px)", + boxShadow: "0 18px 50px rgba(0,0,0,0.24)", + backdropFilter: "blur(10px)", + } as const; + + const softCardStyle = { + background: "rgba(255,255,255,0.03)", + border: "1px solid rgba(255,255,255,0.07)", + boxShadow: "0 8px 24px rgba(0,0,0,0.12)", + } as const; + + const heroStyle = { + background: + "linear-gradient(135deg, rgba(112, 23, 23, 0.98) 0%, rgba(58, 17, 20, 0.96) 42%, rgba(19, 22, 28, 0.96) 100%)", + border: "1px solid rgba(255,255,255,0.09)", + boxShadow: "0 24px 64px rgba(0,0,0,0.32)", + overflow: "hidden", + position: "relative", } as const; const sectionTitleStyle = { - color: "#ff7b7b", - letterSpacing: "0.02em", + color: "#fff4f4", + fontWeight: 800, + letterSpacing: "0.01em", + marginBottom: "0.65rem", } as const; - const listTextStyle = { - color: "#e5e7eb", - lineHeight: 1.85, - fontSize: "1rem", + const sectionDescStyle = { + color: "#b9c0cf", + lineHeight: 1.8, + fontSize: "0.98rem", + marginBottom: 0, } as const; - const mutedTextStyle = { - color: "#cbd5e1", + const bodyTextStyle = { + color: "#dde3ee", lineHeight: 1.8, fontSize: "0.98rem", } as const; + const mutedTextStyle = { + color: "#aeb7c8", + lineHeight: 1.75, + fontSize: "0.95rem", + } as const; + const chipStyle = { - display: "inline-block", - padding: "0.35rem 0.75rem", + display: "inline-flex", + alignItems: "center", + gap: "0.45rem", + padding: "0.4rem 0.85rem", borderRadius: "999px", - fontSize: "0.85rem", + fontSize: "0.82rem", fontWeight: 700, - backgroundColor: "rgba(255,255,255,0.08)", color: "#fff", - border: "1px solid rgba(255,255,255,0.08)", + background: "rgba(255,255,255,0.08)", + border: "1px solid rgba(255,255,255,0.10)", + } as const; + + const numberCardStyle = { + ...softCardStyle, + borderRadius: "22px", + padding: "1rem 1.1rem", + height: "100%", + } as const; + + const sectionWrapStyle = { + ...glassStyle, + borderRadius: "28px", + padding: "1.6rem", + } as const; + + const listResetStyle = { + marginBottom: 0, + paddingLeft: "1.15rem", } as const; + const renderList = (items: string[], className = "") => ( +
- 本實驗室的目標不是只培養會讀論文的人,也不是只培養會打比賽的人,而是培養能在兩年內完成碩士學位、 - 具備清楚專業成果,並能在畢業後進入資安相關職涯的成員。 -
-+ 本實驗室的目標不是只培養會讀論文的人,也不是只培養會打比賽的人,而是培養能在兩年內完成碩士學位、 + 具備清楚專業成果,並能在畢業後進入資安相關職涯的成員。 +
+ ++ 這一段是整份手冊的底層邏輯。它不是活動規範而已,而是整個實驗室在資源配置、角色期待與訓練排序上的基本立場。 +
所有學生都適用,屬於最低標準,不因主軌不同而免除。
這些能力是所有後續研究、競賽與專案能否穩定推進的底盤。
本實驗室不是單一路線培養,而是三層制度一起運作,彼此補位而不是互相取代。
++ 不論最後走研究、比賽還是專案,所有學生都必須先建立基本的研究閱讀、表達、紀錄、回報與合作能力。 + 這一層是為了避免學生在碩二才第一次面對 proposal、論文寫作與正式報告時完全失速。 +
++ 先建立共同工作語言與基本訓練能力,降低學生在研究、專案或競賽路線上出現結構性失衡的風險。 +
++ 學生於碩一上結束前完成能力盤點,並於碩一下正式確認主軌。主軌代表主要投入方向, + 但不代表可以免除共通核心訓練,也不代表可免除碩士論文基本要求。 +
+下面這條時間線的目的是讓學生知道自己在不同階段應該達成哪些最低里程碑。
++ 本實驗室採用「月檢視、學期總評」制度。KPI 的目的不是製造壓力,而是讓學生知道自己是否在正確軌道上, + 並讓教授能及早介入輔導。 +
+分級不是標籤,而是讓資源配置、改善要求與指導強度能更透明。
++ 公共任務的目的是維持實驗室正常運作,不是將行政壓力無限制轉嫁給學生。任務應有限度、可交付、可驗證, + 並與可信任度、資源支持與團隊貢獻一起評估。 +
+原則並不是一概禁止,而是要求優先順序、相關性與事前溝通。
++ 管理不是單向要求。既然學生被要求承擔責任,教授也必須對制度清晰度、公平性與回饋品質負責。 +
+