Skip to content

v0.17.0

Choose a tag to compare

@JackUait JackUait released this 19 Jun 10:04

Features

  • Video — New native Video block with a custom Airbnb-style player, brought to YouTube parity: full keyboard control (j/l/k, 09, Home/End, frame-step, volume, speed), a scrubber with buffered range, hover frame-preview tooltip and mini progress bar, an in-player gear menu (Notion-style playback speed with glide, loop, ambient-glow intensity), and view modes — picture-in-picture, a FLIP-morphed theater/cinema mode, and a fade-in ambient glow. Player polish includes click-to-toggle play/pause, a centre play/pause burst, press-and-hold for 2× playback, arrow-key ±5s seek with side indicators, idle auto-hide, buffer spinner, time-remaining toggle, right-click menu, stats overlay and persisted preferences.
  • Video — Custom fullscreen surface with a top caption bar, a "Hide controls" tune for a control-free player, and GIF-style autoplay/loop tunes.
  • Image — Auto-convert dropped, pasted and remote-URL GIFs into a looping Video block via WebCodecs + webm-muxer, gated by the convertGifToVideo config (default on); the original GIF is kept on CORS failure, with a "Converting…" label shown during conversion.
  • Media — 30MB default upload limit with per-type maxSize configuration and human-readable too-large errors.

Bug Fixes

  • Paste — URL paste always prompts now; the previous auto-embed behaviour has been removed. Breaking: consumers relying on silent auto-embed must opt in through the paste menu.
  • Video — Reserve the aspect ratio before metadata loads to prevent squeeze-on-load, centre and letterbox the fullscreen player, strip editor chrome in fullscreen, and hide the bottom mini progress bar while fullscreen.
  • Video — Exit theater mode reliably on Escape via a capture-phase listener with a smooth deferred dismiss, and drive the scrubber fill with requestAnimationFrame for smooth playback tracking.

Maintenance

  • Build — Move webm-muxer to devDependencies so it is bundled rather than treated as an external runtime dependency.
  • README — Replace the logo with the optimized noodle mascot.
  • Playground — Use real self-hosted videos in the block-states gallery.