27 Commits

Author SHA1 Message Date
Your Name
58847c018f docs: strip emojis from README list items, keep only in headers 2026-02-19 18:29:29 +02:00
Your Name
c0a8eca955 fix: WCAG AAA contrast compliance, speed menu z-index, custom app icon
- Fix all text colors to meet WCAG 2.2 AAA 7:1 contrast ratios against
  dark backgrounds (--textMuted, --textDim, hover states across playlist,
  player, panels, tooltips)
- Fix speed menu rendering behind seek bar by correcting z-index stacking
  context (.controls z-index:10, .miniCtl z-index:3, .seek z-index:2)
- Replace default Tauri icons with custom TutorialVault icon across all
  required sizes (32-512px PNGs, ICO, ICNS, Windows Square logos)
- Update README: Fraunces → Bricolage Grotesque font reference
- Add collapsible dock pane persistence and keyboard-adjustable dividers
v1.1.0
2026-02-19 18:23:38 +02:00
Your Name
a571a33415 docs: update README with all recent features and changes
- Add new playback features: mute toggle, PiP, fullscreen, seek feedback, error overlay
- Expand keyboard shortcuts table with F, M, [, ], ? bindings
- Add playlist search/filter, scroll-to-current, mini progress bars
- Add timestamp insertion for notes
- Add two-click reset confirmation, collapsible dock panes, custom titlebar
- Add full accessibility section (WCAG 2.2 AAA)
- Add architecture module breakdown and Cold Open design theme details
2026-02-19 17:10:33 +02:00
Your Name
1b2ebd807c chore: update fonts, Tauri config, and reduced-motion support
- Switch font deps from Sora/Manrope/IBM Plex Mono to Fraunces/Inter/Space Mono (Cold Open theme)
- Add Tauri window permissions for custom titlebar controls
- Disable native decorations and drag-drop in Tauri config
- Add prefers-reduced-motion media query for WCAG compliance
2026-02-19 17:03:39 +02:00
Your Name
715c3c713a feat: add 15 UI enhancements
1. Mute toggle (M key + volume icon click)
2. Fullscreen shortcut (F key)
3. Seek feedback overlay (±5s flash with accumulation)
4. Playlist search/filter with clear button
5. Scroll-to-current button (IntersectionObserver)
6. Picture-in-Picture button
7. Timestamp insertion in notes
8. Keyboard shortcut help panel (? key)
9. Playback speed shortcuts ([ and ] keys)
10. Reset progress two-click confirmation
11. Video load error state overlay
12. Double-click video to fullscreen
13. Playlist stats in header (count + done)
14. Mini progress bars per playlist item
15. Collapsible dock panes with chevron icons

All enhancements are WCAG 2.2 AAA compliant with proper
aria-labels, aria-live regions, focus-visible states,
keyboard accessibility, and 44x44 touch targets.
2026-02-19 17:01:01 +02:00
Your Name
98011cf604 style: remove controls container and bump surface contrast
Strip background/border-radius from .controlsStrip so playback
controls float freely. Roughly double all --surface opacity values
for better element visibility against the dark slate background.
2026-02-19 16:54:12 +02:00
Your Name
c2533e8a76 docs: add design for 15 UI enhancements
Mute toggle, fullscreen shortcut, seek feedback overlay, playlist
search, scroll-to-current, PiP, timestamp insertion, keyboard help,
speed shortcuts, reset confirmation, error state, double-click
fullscreen, playlist stats, per-item progress bars, collapsible docks.
2026-02-19 16:51:54 +02:00
Your Name
a6f1aef489 fix: reset heading margins and button chrome from semantic HTML changes
The WCAG pass changed <div> to <h3> for dock headers and <span> to
<button> for the zoom reset label. Browser defaults for those elements
(heading margins, button border/background) were never overridden,
causing bloated headers and a Windows-XP-style zoom button.
2026-02-19 16:40:39 +02:00
Your Name
cd362a29b1 a11y: bring UI to WCAG 2.2 AAA compliance
Semantic HTML: lang attr, landmarks (header/main/region/complementary),
heading hierarchy (h1-h3), dl/dt/dd for info panel.

ARIA: labels on all icon buttons, aria-hidden on decorative icons,
progressbar role with dynamic aria-valuenow, aria-haspopup/expanded
on all menu triggers, role=listbox/option on playlist, aria-selected,
computed aria-labels on playlist rows.

Contrast: raised --textMuted/--textDim/--icon to AAA 7:1 ratios.

Focus: global :focus-visible outline, slider thumb glow, menu item
highlight, switch focus-within, row focus styles.

Target sizes: 44x44 hit areas on zoom/window/remove buttons via
::before pseudo-elements.

Keyboard: playlist arrow nav + Enter/Space activate + Alt+Arrow
reorder with live region announcements + move buttons. Speed menu,
subtitles menu, and recent menu all keyboard-navigable with
Arrow/Enter/Space/Escape. Dividers resizable via Arrow keys.

Dynamic document.title updates on video/folder load.
2026-02-19 16:35:19 +02:00
Your Name
600188eb1a docs: add WCAG 2.2 AAA implementation plan 2026-02-19 16:00:19 +02:00
Your Name
17e4ffd28f docs: add WCAG 2.2 AAA remediation design 2026-02-19 15:54:04 +02:00
Your Name
f3aa5f7937 Move and expand philosophy section 2026-02-19 12:58:55 +02:00
Your Name
1579e146b5 Replace fancy dashes and quotes with plain ASCII 2026-02-19 12:56:30 +02:00
Your Name
17b57dbab0 Fancy up README header with badges 2026-02-19 12:54:43 +02:00
Your Name
8860188055 Add emoji to README 2026-02-19 12:53:50 +02:00
Your Name
26ff5cd95b Add README 2026-02-19 12:52:21 +02:00
Your Name
9c8d7d94cd TutorialVault: complete Tauri v2 port with runtime fixes
Rename from TutorialDock to TutorialVault. Remove legacy Python app
and scripts. Fix video playback, subtitles, metadata display, window
state persistence, and auto-download of ffmpeg/ffprobe on first run.
Bundle fonts via npm instead of runtime download.
2026-02-19 12:44:57 +02:00
Your Name
a459efae45 feat: implement all frontend TypeScript modules
Create player.ts (video controls, seek, volume, speed, overlay),
playlist.ts (list rendering, tree SVG, drag-and-drop reorder, scrollbar),
subtitles.ts (subtitle menu, track management, sidecar/embedded),
ui.ts (zoom, splits, info panel, notes, toasts, recent menu),
tooltips.ts (zoom-aware tooltip system with delays),
store.ts (shared state and utility functions), and
main.ts (boot sequence, tick loop, keyboard shortcuts).

All modules compile with strict TypeScript. Vite build produces
34KB JS + 41KB CSS. 115 Rust tests pass.
2026-02-19 11:44:48 +02:00
Your Name
4e454084a8 feat: implement video_protocol.rs, commands.rs, wire up main.rs, and index.html
- video_protocol.rs: tutdock:// custom protocol with HTTP Range support
  for video streaming, subtitle/font serving with path traversal protection
- commands.rs: all 26 Tauri command handlers as thin wrappers
- main.rs: full Tauri bootstrap with state management, window restore,
  async font caching, and ffmpeg discovery
- index.html: complete HTML markup extracted from Python app
- lib.rs: updated with all module declarations and AppPaths struct
2026-02-19 11:23:37 +02:00
Your Name
9c8474d24f feat: implement library.rs, types.ts, api.ts, and extract CSS
- library.rs: full video library management (1948 lines, 10 tests)
  folder scanning, progress tracking, playlists, subtitle integration,
  background duration scanning
- types.ts: all TypeScript interfaces for Tauri command responses
- api.ts: typed wrappers for all 26 Tauri invoke commands
- 6 CSS files extracted from Python HTML into src/styles/
2026-02-19 02:08:23 +02:00
Your Name
4e91fe679f feat: implement ffmpeg.rs, subtitles.rs, and fonts.rs
- ffmpeg.rs: discovery, duration extraction, metadata probing, download
- subtitles.rs: SRT-to-VTT conversion, sidecar discovery, storage, extraction
- fonts.rs: Google Fonts and Font Awesome local caching
2026-02-19 01:59:21 +02:00
Your Name
3280d60f71 feat: implement recents.rs - recent folders management 2026-02-19 01:50:28 +02:00
Your Name
b95094c50f feat: implement prefs.rs - preferences with save/load/update 2026-02-19 01:50:20 +02:00
Your Name
6ecbeb9a9b feat: implement utils.rs and state.rs
utils.rs: natural sort, file fingerprinting, library ID computation,
pretty title formatting, path helpers, clamp, truthy (38 tests)

state.rs: atomic JSON persistence with backup rotation and
fallback loading (8 tests)
2026-02-19 01:47:37 +02:00
Your Name
40d7ce4291 fix: remove protocol-asset feature, add app icons for build 2026-02-19 01:29:50 +02:00
Your Name
24746bb33d feat: scaffold Tauri v2 + Vite + TypeScript project 2026-02-19 01:23:27 +02:00
Your Name
47d4409bcc initial: existing TutorialDock Python app + conversion design and plan 2026-02-19 01:16:17 +02:00