Skip to content

feat(skin): add pip-enter and pip-exit icons#1015

Merged
sampotts merged 1 commit intomainfrom
feat/pip-icons
Mar 19, 2026
Merged

feat(skin): add pip-enter and pip-exit icons#1015
sampotts merged 1 commit intomainfrom
feat/pip-icons

Conversation

@sampotts
Copy link
Copy Markdown
Collaborator

  • Add specific pip enter and pip exit icons.
  • Update svgo to 4.x.
  • Align versions of tsx in the monorepo.

Original icons are in Figma.

Closes #991

Copilot AI review requested due to automatic review settings March 19, 2026 01:27
@netlify
Copy link
Copy Markdown

netlify bot commented Mar 19, 2026

Deploy Preview for vjs10-site ready!

Name Link
🔨 Latest commit e615cfd
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/69bb50e7deef0c00080f8c40
😎 Deploy Preview https://deploy-preview-1015--vjs10-site.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 19, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v10-sandbox Ready Ready Preview, Comment Mar 19, 2026 1:27am

Request Review

@github-actions
Copy link
Copy Markdown
Contributor

📦 Bundle Size Report

🎨 @videojs/html

(no changes)

Presets (7)
Entry Size
/video (default) 23.11 kB
/video (default + hls) 153.55 kB
/video (minimal) 22.98 kB
/video (minimal + hls) 153.36 kB
/audio (default) 21.40 kB
/audio (minimal) 21.36 kB
/background 6.34 kB
Media (5)
Entry Size
/media/background-video 617 B
/media/container 1.58 kB
/media/dash-video 235.71 kB
/media/hls-video 131.17 kB
/media/simple-hls-video 11.94 kB
Players (3)
Entry Size
/video/player 6.21 kB
/audio/player 6.20 kB
/background/player 6.19 kB
Skins (16)
Entry Type Size
/video/minimal-skin.css css 3.11 kB
/video/skin.css css 3.14 kB
/video/minimal-skin js 22.24 kB
/video/minimal-skin.tailwind js 22.47 kB
/video/skin js 22.36 kB
/video/skin.tailwind js 22.69 kB
/audio/minimal-skin.css css 2.25 kB
/audio/skin.css css 2.29 kB
/audio/minimal-skin js 20.62 kB
/audio/minimal-skin.tailwind js 20.68 kB
/audio/skin js 20.64 kB
/audio/skin.tailwind js 20.88 kB
/background/skin.css css 124 B
/background/skin js 999 B
/base.css css 157 B
/shared.css css 43 B
UI Components (21)
Entry Size
/ui/alert-dialog 2.10 kB
/ui/alert-dialog-close 1.58 kB
/ui/alert-dialog-description 1.47 kB
/ui/alert-dialog-title 1.48 kB
/ui/buffering-indicator 1.76 kB
/ui/captions-button 1.75 kB
/ui/controls 1.57 kB
/ui/fullscreen-button 1.76 kB
/ui/mute-button 1.76 kB
/ui/pip-button 1.76 kB
/ui/play-button 1.77 kB
/ui/playback-rate-button 1.79 kB
/ui/popover 3.25 kB
/ui/poster 1.66 kB
/ui/seek-button 1.78 kB
/ui/slider 1.99 kB
/ui/thumbnail 2.11 kB
/ui/time 1.60 kB
/ui/time-slider 2.06 kB
/ui/tooltip 2.44 kB
/ui/volume-slider 2.17 kB

Sizes are marginal over the root entry point.

⚛️ @videojs/react

(no changes)

Presets (7)
Entry Size
/video (default) 18.94 kB
/video (default + hls) 149.81 kB
/video (minimal) 18.98 kB
/video (minimal + hls) 149.69 kB
/audio (default) 14.94 kB
/audio (minimal) 14.98 kB
/background 3.13 kB
Media (4)
Entry Size
/media/background-video 476 B
/media/dash-video 236.19 kB
/media/hls-video 131.59 kB
/media/simple-hls-video 12.34 kB
Skins (14)
Entry Type Size
/video/minimal-skin.css css 3.11 kB
/video/skin.css css 3.14 kB
/video/minimal-skin js 18.90 kB
/video/minimal-skin.tailwind js 22.08 kB
/video/skin js 18.89 kB
/video/skin.tailwind js 22.08 kB
/audio/minimal-skin.css css 2.25 kB
/audio/skin.css css 2.29 kB
/audio/minimal-skin js 14.90 kB
/audio/minimal-skin.tailwind js 16.98 kB
/audio/skin js 14.90 kB
/audio/skin.tailwind js 17.24 kB
/background/skin.css css 90 B
/background/skin js 272 B
UI Components (18)
Entry Size
/ui/alert-dialog 2.23 kB
/ui/buffering-indicator 2.20 kB
/ui/captions-button 2.24 kB
/ui/controls 2.21 kB
/ui/fullscreen-button 2.22 kB
/ui/mute-button 2.24 kB
/ui/pip-button 2.22 kB
/ui/play-button 2.22 kB
/ui/playback-rate-button 2.25 kB
/ui/popover 2.86 kB
/ui/poster 2.03 kB
/ui/seek-button 2.22 kB
/ui/slider 3.12 kB
/ui/thumbnail 2.01 kB
/ui/time 1.93 kB
/ui/time-slider 2.63 kB
/ui/tooltip 2.69 kB
/ui/volume-slider 2.70 kB

Sizes are marginal over the root entry point.

🧩 @videojs/core

(no changes)

Entries (6)
Entry Size
. 4.80 kB
/dom 8.41 kB
/dom/media/custom-media-element 1.81 kB
/dom/media/dash 235.62 kB
/dom/media/hls 131.27 kB
/dom/media/simple-hls 11.85 kB

🏷️ @videojs/element

(no changes)

Entries (2)
Entry Size
. 999 B
/context 936 B

📦 @videojs/store

(no changes)

Entries (3)
Entry Size
. 1.32 kB
/html 700 B
/react 360 B

🔧 @videojs/utils

(no changes)

Entries (10)
Entry Size
/array 104 B
/dom 1.25 kB
/events 227 B
/function 261 B
/object 119 B
/predicate 265 B
/string 148 B
/style 190 B
/time 478 B
/number 158 B

📦 @videojs/spf

(no changes)

Entries (3)
Entry Size
. 40 B
/dom 10.04 kB
/playback-engine 9.94 kB

ℹ️ How to interpret

All sizes are standalone totals (minified + brotli).

Icon Meaning
No change
🔺 Increased ≤ 10%
🔴 Increased > 10%
🔽 Decreased
🆕 New (no baseline)

Run pnpm size locally to check current sizes.

@sampotts sampotts merged commit 81781ca into main Mar 19, 2026
23 checks passed
@sampotts sampotts deleted the feat/pip-icons branch March 19, 2026 01:30
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds distinct Picture-in-Picture enter/exit icons and wires them through the HTML/React skins so the PiP control visually reflects current state, while also updating the icons toolchain and aligning some monorepo tool versions.

Changes:

  • Introduce pip-enter / pip-exit icons (default + minimal sets) and update icon exports/docs accordingly.
  • Update HTML + React video skins (and Tailwind variants) to render both PiP icons and toggle visibility via data-pip-driven icon-state rules.
  • Upgrade svgo to 4.x and align tsx (and related lockfile entries) across the repo.

Reviewed changes

Copilot reviewed 17 out of 23 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
site/src/content/docs/concepts/skins.mdx Doc formatting tweaks; contains a PiP example snippet that should be updated to match new icons/state classes.
site/scripts/build-ejected-skins.ts Updates known icon list for ejected skin builds to use pip-enter/pip-exit.
site/package.json Aligns tsx version used by the site scripts.
pnpm-lock.yaml Lockfile updates for svgo@4, tsx alignment, and related dependency bumps.
packages/skins/src/shared/tailwind/icon-state.ts Adds Tailwind iconState.pip mapping using group-data-pip variants.
packages/skins/src/shared/css/video/icon-state.css Adds CSS selectors to toggle PiP icons based on data-pip and media-button--pip.
packages/sandbox/package.json Aligns tsx/TypeScript versions used by the sandbox.
packages/react/src/presets/video/skin.tsx Replaces single PiP icon with enter/exit icons and adds media-button--pip class.
packages/react/src/presets/video/skin.tailwind.tsx Uses new PiP icons and Tailwind iconState.pip visibility classes.
packages/react/src/presets/video/minimal-skin.tsx Same PiP icon swap and media-button--pip class addition for minimal skin.
packages/react/src/presets/video/minimal-skin.tailwind.tsx Same PiP icon swap using Tailwind iconState.pip.
packages/icons/src/assets/minimal/pip-exit.svg Adds minimal pip-exit SVG asset.
packages/icons/src/assets/minimal/pip-enter.svg Updates minimal pip-enter SVG asset.
packages/icons/src/assets/default/pip-exit.svg Adds default pip-exit SVG asset.
packages/icons/src/assets/default/pip-enter.svg Updates default pip-enter SVG asset.
packages/icons/src/assets/default/captions-on.svg SVG re-optimization change (likely from tooling update).
packages/icons/scripts/build.ts Adjusts SVGO config for v4 upgrade.
packages/icons/package.json Bumps svgo and aligns tsx/React dev deps for icon builds.
packages/icons/README.md Documents the new PiP icon names/exports.
packages/html/src/define/video/skin.ts Updates PiP button template to render enter/exit icons with state classes.
packages/html/src/define/video/skin.tailwind.ts Same update for Tailwind HTML video skin template.
packages/html/src/define/video/minimal-skin.ts Same update for minimal HTML video skin template.
packages/html/src/define/video/minimal-skin.tailwind.ts Same update for Tailwind minimal HTML video skin template.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +281 to 282
<Button {...props} className="media-button--icon ">
<PipIcon className="media-icon" />
@luwes luwes mentioned this pull request Mar 18, 2026
This was referenced Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skins: Add exit PiP icon

2 participants