ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.