ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
SkillUp LMS — Prototype + Mini Storybook
A Next.js 14 prototype of the SkillUp LMS Video lesson flow (Transcript / Notes /
Downloads tabs, sidebar collapse, notes-on-transcript, right-overlay panels) plus a
mini Storybook documenting ~30 reusable UUI Extension components.
Built from the Figma source of truth. Color + type come exclusively from design tokens —
no hardcoded hex, no raw font-size / font-weight.檢視完整 README ↗A Next.js 14 prototype of the SkillUp LMS Video lesson flow (Transcript / Notes / Downloads tabs, sidebar collapse, notes-on-transcript, right-overlay panels) plus a mini Storybook documenting ~30 reusable UUI Extension components.
Built from the Figma source of truth. Color + type come exclusively from design tokens —
no hardcoded hex, no raw font-size / font-weight.
lms color scale that maps every utility to a CSS variable in tokens/colors.css@storybook/nextjs) + a11y + interactions addonsnext/font/googlepnpm install
pnpm dev # prototype → http://localhost:3000
pnpm storybook # storybook → http://localhost:6006
Other scripts:
pnpm build # production build of the app
pnpm build-storybook # static Storybook to ./storybook-static
pnpm lint # next lint
pnpm format # prettier --write .
Requires Node 18+ and pnpm.
esbuild+sharpbuild scripts are pre-approved inpnpm-workspace.yaml, sopnpm installruns clean.
| Route | Screen |
|---|---|
/ | Redirects to the active video topic |
/course/[courseSlug]/topic/[topicId] | Video player · Transcript tab (default) |
/course/[courseSlug]/topic/[topicId]/notes | Notes tab |
/course/[courseSlug]/topic/[topicId]/downloads | Downloads tab |
Start at http://localhost:3000 → you land on
/course/six-sigma/topic/m3-t1 (the Active video from the mock data).
app/ # App Router pages + the player layout/shell
layout.tsx # fonts + global token CSS
page.tsx # → redirect to the active topic
course/[courseSlug]/topic/[topicId]/
layout.tsx # mounts <PlayerShell> (shared chrome)
page.tsx # Transcript tab
notes/page.tsx # Notes tab
downloads/page.tsx # Downloads tab
components/
atoms/ # Button, badges, Avatar, Bookmark, CompletionStatus, …
molecules/ # TopicRow, ModuleHeader, TranscriptLine, NoteItem, panel items, …
organisms/ # Sidebar, Topbar, FooterNav, VideoPlayer, OverlayPanel, panels, …
views/ # PlayerShell + the three tab bodies
lib/
types.ts # Topic / Note / Course / panel / notification-category / video-state
data.ts # loads data-model.json + derived selectors + mock panel data
store.ts # Zustand client state (+ toast model with Undo action)
analytics.ts # track(event, props) shim (Do-Not-Track aware) — ~30 Phase 1 events
icons.tsx # <Icon> wrapper that enforces the stroke-weight rule
useBreakpoint.ts # mobile / tablet / desktop hook
tokens/
colors.css # 28 LMS color variables (source of truth)
typography.css # .lms-text-* utility ramp
spacing.md # spacing scale reference
stories/ # Foundations (Colors / Typography / Spacing)
# component stories are co-located as *.stories.tsx
bg-lms-* / text-lms-* / border-lms-*
(→ var(--lms-*)). Translucent surfaces (backdrops, video chrome) use
color-mix(in srgb, var(--lms-…) N%, transparent) — never rgba() with literals..lms-text-* classes from tokens/typography.css.lib/icons.tsx <Icon> applies 1.5 below 24px and 2 at/above 24px to every SVG.approx. duration prefix applied for estimated topic types only (Reading/Lab/Activity/
Project/Practice/Graded/Peer-graded/Peer Review); never for Video/Recording/Live/timed Quiz.--lms-text-success-primary + a green check.Sidebar collapse (200 ms), module expand/collapse, topic navigation, bookmark toggles, transcript seek + line highlight, note editor anchored to transcript lines (Esc cancels · ⌘/Ctrl+Enter saves), Notes tab search + tag filter + delete, Downloads (mock), tab routing, Notifications + Saved overlay panels, mobile drawer, and the out-of-scope topbar actions (AI / Theme / Exit) surface a toast.
A floating chat on every platform page and in the player (components/assistant,
lib/assistant): it answers questions about the platform and the learner's courses, with
buttons to the right place, and never changes anything. For a learner who has just arrived it opens once with five first steps that tick themselves (lib/first-steps), and it always shows the one thing to do next.
Testing first steps at any moment. Add ?first-steps=restart to any prototype address, for example
https://lms-prototype-mu.vercel.app/platform/dashboard?first-steps=restart: the first steps start again with an
empty conversation, the window opens by itself after a moment (desktop and tablet; on a phone the launcher shows
5), and the parameter leaves the address so a reload does not restart again. The same reset is in the menus:
Restart first steps in the profile panel of the platform pages and in the player's demo menu. Scripted by default; Claude when
ANTHROPIC_API_KEY is set (see DEPLOY.md). Design: docs/superpowers/specs/2026-10-13-assistant-design.md.
window.print() with a
.lms-no-print scope). Share opens a channel menu (LinkedIn / X / Facebook / Copy / Email).aria-live region.aria-labels ("Notifications, 3 unread", "Bookmark {title}",
"Add note at 0:38"), focus traps, and prefers-reduced-motion honored (animations + smooth
scroll disabled).lib/analytics.ts track() wired to key events (bookmark, note, panel,
transcript, video, download, sidebar, drawer).| Breakpoint | Width | Behavior |
|---|---|---|
| Mobile | ≤ 768 | Sidebar hidden → ☰ opens a left drawer; compact topbar + footer |
| Tablet | 769–1024 | Sidebar collapsed (72px); no breadcrumb |
| Desktop | ≥ 1025 | Sidebar expanded (280px), user-collapsible; full breadcrumb |
Verified at 375 / 768 / 1440.
One *.stories.tsx per component (atoms / molecules / organisms) plus
Foundations/Colors, Foundations/Typography, Foundations/Spacing. Stories use
argTypes controls, an in-context story per major component, and the a11y addon.
Real backend / API, auth, real video playback (a branded gradient + scrubber stands in), dark mode, and non-video lesson types — all per the handoff brief.