Individual skill

fs-notebook-tabs

A computer-science capstone: an on-device ML keyboard that predicts next words privately — problem, method, evaluation, and defense answers. Built as a decision-grade coursework defense deck for professor, defense committee.

packages/vscode/assets/open-design/examples/fs-notebook-tabs/SKILL.md

Read pinned source

Source commit 400641fd6781fa0febad445984ee76440374736d

What was checked

Matches the observed repository HEAD
Yes
Scanner rules are current
Yes
Repository scan complete
No
Skill scan complete
Yes
Observed behavior
Instructions only
Last checked
Nov 4, 2026

These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.

Install this skill

Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.

An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.

Repository context

Repository stars (not skill ratings)
1,044
Repository last updated
Nov 7, 2026
License
MIT

Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.

Files and excerpt

File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.

Browse files
Read excerpt

# Notebook Tabs (索引笔记本)

A theme-locked deck plugin derived from the MIT-licensed [zarazhangrui/frontend-slides](https://github.com/zarazhangrui/frontend-slides) "Notebook Tabs" style preset (STYLE_PRESETS.md section 5). The whole deck reads as one physical, editorially typeset notebook: every slide is a cream paper page floating on a dark desk, with a colorful tab index on the right fore-edge and binder holes on the left.

**Start from `example.html` in this plugin folder. It is the proven seed: keep its stage CSS, the paper/holes/tabs device, the `:root` token block, and the entire `SlidePresentation` controller script verbatim — replace only the slide content. Do not redesign, do not introduce any color or font outside this spec.**

## Fixed 16:9 stage (locked scaling system)

- Every deck is authored on a fixed **1920×1080** canvas: `.deck-viewport` (fills the window) wraps `.deck-stage` (1920×1080, `transform-origin: 0 0`).
- JavaScript scales the whole stage uniformly: `factor = min(innerWidth/1920, innerHeight/1080)`, then `translate(x, y) scale(factor)` to center with letterbox/pillarbox; re-run on `resize`. This is the viewport-base.css system — the full file is already inlined in the seed.
- Never reflow slide content per device. No responsive breakpoints inside slides. All measurements are fixed px at the 1920×1080 design size (the upstream preset's `clamp()` tab sizing is superseded by stage scaling — use fixed px).
- Slide switching toggles `.active`/`.visible` (visibility/opacity/pointer-events) — never `display: none`.
- Keyboard (`←`/`→`/`↑`/`↓`/Space/PageUp/PageDown/Home/End), debounced wheel (~650ms), touch swipe (≥40px), and `#/<index>` hash routing with deep-link restore. The page counter lives in `.deck-controls`, fixed-positioned outside the scaled stage.