Skip to content

docs(site): document Shadcn registry workflow - #2510

Merged
mihar-22 merged 1 commit into
docs/eject-source-owned-uifrom
docs/shadcn-registry
Aug 29, 2026
Merged

docs(site): document Shadcn registry workflow#2510
mihar-22 merged 1 commit into
docs/eject-source-owned-uifrom
docs/shadcn-registry

Conversation

@mihar-22

@mihar-22 mihar-22 commented Aug 27, 2026

Copy link
Copy Markdown
Member

Summary

  • document the hosted @videojs Shadcn registry for React and HTML, Tailwind CSS and vanilla CSS
  • derive installation commands from canonical generated registry metadata for the selected framework, preset, skin, media, and styling
  • document Player blocks, skin-only blocks, media facades, individual React components, discovery, inspection, diffs, updates, and source ownership
  • add hosted item links and exact Shadcn commands to the installation flow, all eight generated skin pages, customization guidance, and skin concepts
  • remove stale eject/GitHub-registry guidance and keep Background package-managed
  • make site development, tests, typecheck, CI, and builds produce the ignored registry before consuming its metadata

Verification

  • site tests: 566 passed
  • registry selection tests cover every editable Player and renderer combination
  • Astro check: 0 errors, 0 warnings
  • full site build
  • anchor validation
  • generated registry remains ignored and untracked

Stacked on #2501.

Closes #2186

@vercel

vercel Bot commented Aug 27, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
v10-sandbox Error Error Aug 29, 2026 6:58pm

Request Review

@pkg-pr-new

pkg-pr-new Bot commented Aug 27, 2026

Copy link
Copy Markdown
@videojs/core

pnpm add https://pkg.pr.new/@videojs/core@2510

@videojs/element

pnpm add https://pkg.pr.new/@videojs/element@2510

@videojs/html

pnpm add https://pkg.pr.new/@videojs/html@2510

@videojs/media

pnpm add https://pkg.pr.new/@videojs/media@2510

@videojs/react

pnpm add https://pkg.pr.new/@videojs/react@2510

@videojs/spf

pnpm add https://pkg.pr.new/@videojs/spf@2510

@videojs/store

pnpm add https://pkg.pr.new/@videojs/store@2510

@videojs/utils

pnpm add https://pkg.pr.new/@videojs/utils@2510

commit: 21d0f9a

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

📦 Bundle Size Report

🎨 @videojs/html — no changes
Presets (7)
Entry Initial Lazy
/video (default) 20.16 kB 56.87 kB
/video (default + hls) 160.09 kB 56.87 kB
/video (minimal) 20.02 kB 56.87 kB
/video (minimal + hls) 159.76 kB 56.87 kB
/audio (default) 13.47 kB 56.87 kB
/audio (minimal) 13.62 kB 56.87 kB
/background 11.48 kB 56.87 kB
Media (20)
Entry Initial
/media/mux-video 142.40 kB
/media/mux-audio 142.23 kB
/media/background-video 1.16 kB
/media/cloudflare-video 6.28 kB
/media/dash-video 211.61 kB
/media/google-cast 6.52 kB
/media/hls-audio 22.04 kB
/media/hls-background-video 16.80 kB
/media/hls-video 27.97 kB
/media/hlsjs-video 141.22 kB
/media/mux-background-video 16.84 kB
/media/mux-data 26.70 kB
/media/native-hls-video 7.57 kB
/media/shaka-video 199.18 kB
/media/spotify-audio 6.27 kB
/media/tiktok-video 6.33 kB
/media/twitch-video 6.22 kB
/media/vimeo-video 13.05 kB
/media/wistia-video 60.23 kB
/media/youtube-video 6.81 kB
Players (5)
Entry Initial Lazy
/video/player 9.64 kB 56.87 kB
/audio/player 6.09 kB 56.87 kB
/background/player 4.46 kB 56.87 kB
/live-video/player 9.02 kB 56.87 kB
/live-audio/player 6.12 kB 56.87 kB
Skins (29)
Entry Type Initial Lazy
/video/minimal-skin.css css 7.57 kB
/video/skin.css css 7.66 kB
/video/minimal-skin js 11.16 kB 56.87 kB
/video/minimal-skin2 js 7.99 kB
/video/skin js 11.31 kB 56.87 kB
/video/skin2 js 8.19 kB
/audio/minimal-skin.css css 5.62 kB
/audio/skin.css css 5.54 kB
/audio/minimal-skin js 8.29 kB 56.87 kB
/audio/minimal-skin2 js 5.93 kB
/audio/skin js 8.18 kB 56.87 kB
/audio/skin2 js 5.86 kB
/background/skin.css css 139 B
/background/skin js 9.71 kB 56.87 kB
/background/skin2 js 187 B
/live-video/minimal-skin.css css 6.05 kB
/live-video/skin.css css 6.21 kB
/live-video/minimal-skin js 8.95 kB 56.87 kB
/live-video/minimal-skin2 js 6.38 kB
/live-video/skin js 9.16 kB 56.87 kB
/live-video/skin2 js 6.65 kB
/live-audio/minimal-skin.css css 4.27 kB
/live-audio/skin.css css 4.29 kB
/live-audio/minimal-skin js 6.45 kB 56.87 kB
/live-audio/minimal-skin2 js 4.50 kB
/live-audio/skin js 6.50 kB 56.87 kB
/live-audio/skin2 js 4.56 kB
/global.css css 190 B
/shared.css css 118 B
UI Components (62)
Entry Initial Lazy
/ui/airplay-button 11.21 kB 56.87 kB
/ui/alert-dialog 8.79 kB 56.87 kB
/ui/audio-track-radio-group 11.34 kB 56.87 kB
/ui/buffering-indicator 8.55 kB 56.87 kB
/ui/captions-button 11.47 kB 56.87 kB
/ui/captions-radio-group 11.43 kB 56.87 kB
/ui/cast-button 11.19 kB 56.87 kB
/ui/container 9.42 kB 56.87 kB
/ui/controls 8.61 kB 56.87 kB
/ui/controls-backdrop 1.69 kB 56.87 kB
/ui/controls-content 1.67 kB 56.87 kB
/ui/dialog 8.74 kB 56.87 kB
/ui/dialog-backdrop 1.70 kB 56.87 kB
/ui/dialog-close 2.07 kB 56.87 kB
/ui/dialog-description 1.69 kB 56.87 kB
/ui/dialog-popup 1.91 kB 56.87 kB
/ui/dialog-title 1.70 kB 56.87 kB
/ui/error-dialog 12.34 kB 56.87 kB
/ui/fullscreen-button 11.21 kB 56.87 kB
/ui/gesture 9.51 kB 56.87 kB
/ui/hotkey 9.92 kB 56.87 kB
/ui/live-button 9.70 kB 56.87 kB
/ui/menu 18.22 kB 56.87 kB
/ui/menu-checkbox-item 1.98 kB 56.87 kB
/ui/menu-content 7.47 kB 56.87 kB
/ui/menu-group 2.09 kB 56.87 kB
/ui/menu-group-label 1.64 kB
/ui/menu-item 2.29 kB 56.87 kB
/ui/menu-item-indicator 1.38 kB 56.87 kB
/ui/menu-radio-group 3.02 kB 56.87 kB
/ui/menu-radio-item 2.13 kB 56.87 kB
/ui/menu-separator 1.30 kB 56.87 kB
/ui/mute-button 11.21 kB 56.87 kB
/ui/pip-button 11.16 kB 56.87 kB
/ui/play-button 11.19 kB 56.87 kB
/ui/playback-rate-button 11.27 kB 56.87 kB
/ui/playback-rate-radio-group 11.33 kB 56.87 kB
/ui/popover 8.56 kB 56.87 kB
/ui/poster 8.63 kB 56.87 kB
/ui/quality-radio-group 11.93 kB 56.87 kB
/ui/seek-button 11.22 kB 56.87 kB
/ui/seek-indicator 12.63 kB 56.87 kB
/ui/seek-indicator-value 1.10 kB
/ui/slider 11.60 kB 56.87 kB
/ui/slider-preview 2.01 kB 56.87 kB
/ui/status-announcer 10.55 kB 56.87 kB
/ui/status-indicator 12.98 kB 56.87 kB
/ui/status-indicator-value 1.10 kB
/ui/thumbnail 9.78 kB 56.87 kB
/ui/time 10.75 kB 56.87 kB
/ui/time-slider 12.93 kB 56.87 kB
/ui/time-slider-chapter-title 8.75 kB 56.87 kB
/ui/time-slider-chapters 9.60 kB 56.87 kB
/ui/title 8.13 kB 56.87 kB
/ui/tooltip 9.94 kB 56.87 kB
/ui/tooltip-label 1.21 kB
/ui/tooltip-shortcut 1.18 kB
/ui/volume-indicator 12.97 kB 56.87 kB
/ui/volume-indicator-fill 1.11 kB
/ui/volume-indicator-value 1.10 kB
/ui/volume-popover 14.69 kB 56.87 kB
/ui/volume-slider 12.27 kB 56.87 kB
⚛️ @videojs/react — no changes
Presets (7)
Entry Initial Lazy
/video (default) 50.15 kB 56.87 kB
/video (default + hls) 187.98 kB 56.87 kB
/video (minimal) 50.28 kB 56.87 kB
/video (minimal + hls) 188.22 kB 56.87 kB
/audio (default) 39.21 kB 56.87 kB
/audio (minimal) 39.25 kB 56.87 kB
/background 581 B 56.87 kB
Media (24)
Entry Initial
/media/mux-video/hls-js 140.61 kB
/media/mux-video/spf 27.31 kB
/media/mux-audio/hls-js 140.55 kB
/media/mux-audio/spf 21.28 kB
/media/background-video 402 B
/media/cloudflare-video 4.35 kB
/media/dash-video 210.29 kB
/media/google-cast 5.34 kB
/media/hls-audio 20.32 kB
/media/hls-background-video 16.42 kB
/media/hls-video 26.29 kB
/media/hlsjs-video 139.44 kB
/media/mux-audio 140.56 kB
/media/mux-background-video 16.42 kB
/media/mux-data 25.49 kB
/media/mux-video 140.54 kB
/media/native-hls-video 5.76 kB
/media/shaka-video 197.52 kB
/media/spotify-audio 4.22 kB
/media/tiktok-video 4.18 kB
/media/twitch-video 4.30 kB
/media/vimeo-video 11.21 kB
/media/wistia-video 60.05 kB
/media/youtube-video 4.86 kB
Players (5)
Entry Initial Lazy
/video/player 7.51 kB 56.87 kB
/audio/player 3.95 kB 56.87 kB
/background/player 2.27 kB 56.87 kB
/live-video/player 6.91 kB 56.87 kB
/live-audio/player 3.95 kB 56.87 kB
Skins (18)
Entry Type Initial Lazy
/video/minimal-skin.css css 7.43 kB
/video/skin.css css 7.51 kB
/video/minimal-skin js 50.13 kB 56.87 kB
/video/skin js 50.06 kB 56.87 kB
/audio/minimal-skin.css css 5.51 kB
/audio/skin.css css 5.42 kB
/audio/minimal-skin js 39.12 kB 56.87 kB
/audio/skin js 39.12 kB 56.87 kB
/background/skin.css css 90 B
/background/skin js 277 B
/live-video/minimal-skin.css css 5.90 kB
/live-video/skin.css css 6.07 kB
/live-video/minimal-skin js 42.22 kB 56.87 kB
/live-video/skin js 42.22 kB 56.87 kB
/live-audio/minimal-skin.css css 4.16 kB
/live-audio/skin.css css 4.17 kB
/live-audio/minimal-skin js 30.18 kB 56.87 kB
/live-audio/skin js 30.24 kB 56.87 kB
UI Components (39)
Entry Initial Lazy
/ui/airplay-button 10.38 kB 56.87 kB
/ui/alert-dialog 4.71 kB 56.87 kB
/ui/audio-track 7.89 kB 56.87 kB
/ui/audio-track-radio-group 9.19 kB 56.87 kB
/ui/buffering-indicator 7.72 kB 56.87 kB
/ui/captions-button 10.36 kB 56.87 kB
/ui/captions-radio-group 9.30 kB 56.87 kB
/ui/cast-button 10.36 kB 56.87 kB
/ui/controls 7.51 kB 56.87 kB
/ui/dialog 4.73 kB 56.87 kB
/ui/error-dialog 11.72 kB 56.87 kB
/ui/fullscreen-button 10.32 kB 56.87 kB
/ui/gesture 7.95 kB 56.87 kB
/ui/hotkey 8.33 kB 56.87 kB
/ui/live-button 8.71 kB 56.87 kB
/ui/menu 19.37 kB 56.87 kB
/ui/mute-button 10.37 kB 56.87 kB
/ui/pip-button 10.33 kB 56.87 kB
/ui/play-button 10.30 kB 56.87 kB
/ui/playback-rate 7.95 kB 56.87 kB
/ui/playback-rate-button 10.31 kB 56.87 kB
/ui/playback-rate-radio-group 9.23 kB 56.87 kB
/ui/popover 8.13 kB 56.87 kB
/ui/poster 7.50 kB 56.87 kB
/ui/quality 8.37 kB 56.87 kB
/ui/quality-radio-group 9.67 kB 56.87 kB
/ui/seek-button 10.33 kB 56.87 kB
/ui/seek-indicator 11.89 kB 56.87 kB
/ui/slider 12.66 kB 56.87 kB
/ui/status-announcer 10.01 kB 56.87 kB
/ui/status-indicator 12.20 kB 56.87 kB
/ui/thumbnail 8.65 kB 56.87 kB
/ui/time 9.70 kB 56.87 kB
/ui/time-slider 14.10 kB 56.87 kB
/ui/title 7.19 kB 56.87 kB
/ui/tooltip 8.90 kB 56.87 kB
/ui/volume-indicator 12.25 kB 56.87 kB
/ui/volume-popover 14.12 kB 56.87 kB
/ui/volume-slider 12.06 kB 56.87 kB
🧩 @videojs/core — no changes
Entries (76)
Entry Initial Lazy
. 13.14 kB
/dom 22.36 kB 56.87 kB
/vjsc 1.82 kB
/i18n 3.23 kB 56.87 kB
/i18n/locales/all 34.97 kB
/i18n/locales/ar 1.22 kB
/i18n/locales/az 1.09 kB
/i18n/locales/bg 1.29 kB
/i18n/locales/bn 1.23 kB
/i18n/locales/bs 1.00 kB
/i18n/locales/ca 1.07 kB
/i18n/locales/cs 1.07 kB
/i18n/locales/cy 1.02 kB
/i18n/locales/da 1006 B
/i18n/locales/de 1.09 kB
/i18n/locales/el 1.49 kB
/i18n/locales/en 785 B
/i18n/locales/es 1018 B
/i18n/locales/et 1.05 kB
/i18n/locales/eu 1.03 kB
/i18n/locales/fa 1.22 kB
/i18n/locales/fi 1.04 kB
/i18n/locales/fr 1.07 kB
/i18n/locales/gd 1.10 kB
/i18n/locales/gl 1022 B
/i18n/locales/he 1.14 kB
/i18n/locales/hi 1.30 kB
/i18n/locales/hr 1.02 kB
/i18n/locales/hu 1.10 kB
/i18n/locales/id 919 B
/i18n/locales/it 1.01 kB
/i18n/locales/ja 1.18 kB
/i18n/locales/ko 1.14 kB
/i18n/locales/lt 1.02 kB
/i18n/locales/lv 1.09 kB
/i18n/locales/mr 1.30 kB
/i18n/locales/nb 987 B
/i18n/locales/ne 1.29 kB
/i18n/locales/nl 1.00 kB
/i18n/locales/nn 987 B
/i18n/locales/oc 1.08 kB
/i18n/locales/pl 1.14 kB
/i18n/locales/pt 1.03 kB
/i18n/locales/pt-BR 1.03 kB
/i18n/locales/pt-PT 1.01 kB
/i18n/locales/ro 1.07 kB
/i18n/locales/ru 1.40 kB
/i18n/locales/sk 1.10 kB
/i18n/locales/sl 1.04 kB
/i18n/locales/sr 1.07 kB
/i18n/locales/sv 1.01 kB
/i18n/locales/te 1.32 kB
/i18n/locales/th 1.29 kB
/i18n/locales/tr 1.08 kB
/i18n/locales/uk 1.41 kB
/i18n/locales/vi 1.11 kB
/i18n/locales/zh 1.02 kB
/i18n/locales/zh-CN 1.02 kB
/i18n/locales/zh-TW 1.02 kB
/i18n/text/airplay 101 B
/i18n/text/buttons 137 B
/i18n/text/captions 93 B
/i18n/text/cast 114 B
/i18n/text/common 90 B
/i18n/text/container 75 B
/i18n/text/errors 285 B
/i18n/text/fullscreen 98 B
/i18n/text/live 126 B
/i18n/text/menu 249 B
/i18n/text/pip 101 B
/i18n/text/playback 80 B
/i18n/text/seek 105 B
/i18n/text/slider 65 B
/i18n/text/status 222 B
/i18n/text/time 280 B
/i18n/text/volume 133 B
🏷️ @videojs/element — no changes
Entries (2)
Entry Initial
. 1.05 kB
/context 943 B
📦 @videojs/store — no changes
Entries (3)
Entry Initial
. 1.72 kB
/html 703 B
/react 365 B
🔧 @videojs/utils — no changes
Entries (13)
Entry Initial
/array 271 B
/dom 5.02 kB
/events 320 B
/function 386 B
/i18n 249 B
/jwt 176 B
/object 535 B
/predicate 297 B
/percent 281 B
/string 239 B
/style 212 B
/time 976 B
/number 199 B

📦 @videojs/media

Path Base initial PR initial Initial diff Lazy diff
/dom/dash 209.83 kB 3.28 kB -206.54 kB (-98.4%)
/dom/wistia 60.09 kB 1.89 kB -58.20 kB (-96.9%)
Entries (23)
Entry Initial
. 1.07 kB
/dom 121 B
/dom/dash 3.28 kB
/dom/wistia 1.89 kB
/dom/audio-host 1.10 kB
/dom/cloudflare 3.69 kB
/dom/custom-media-element 2.13 kB
/dom/dash 209.83 kB
/dom/google-cast 4.06 kB
/dom/hls-js 139.16 kB
/dom/media-host 1.20 kB
/dom/media-played-ranges 576 B
/dom/mux 162.78 kB
/dom/native-hls 5.25 kB
/dom/shaka 197.02 kB
/dom/spotify 3.58 kB
/dom/tiktok 3.57 kB
/dom/twitch 3.62 kB
/dom/video-host 1.39 kB
/dom/vimeo 10.62 kB
/dom/wistia 60.09 kB
/dom/youtube 4.25 kB
/media-tracks 2.05 kB
📦 @videojs/spf — no changes
Entries (10)
Entry Initial
. 4.55 kB
/dom 6.60 kB
/hls 22.09 kB
/media-tracks 504 B
/hls-background-video 15.92 kB
/hls-audio 19.84 kB
/hls-video 25.82 kB
/mux-audio 20.75 kB
/mux-background-video 15.87 kB
/mux-video 26.63 kB

ℹ️ How to interpret

Each entry is independently bundled, minified, and brotli-compressed. Initial size includes its static import graph; lazy dynamic chunks are reported separately.

Entries are not additive because their dependency graphs overlap. Preset rows represent realistic combined bundles.

Changes of 300 B or less across initial, lazy, and total size are collapsed, not discarded.

Run pnpm size locally to check current initial sizes.

@netlify

netlify Bot commented Aug 27, 2026

Copy link
Copy Markdown

Deploy Preview for vjs10-site failed. Why did it fail? →

Name Link
🔨 Latest commit 664ff81
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/6a932bac2f75e500086cddeb

@mihar-22 mihar-22 changed the title docs(site): add Shadcn registry guide docs(site): add shadcn registry guide Aug 28, 2026
@mihar-22
mihar-22 force-pushed the docs/shadcn-registry branch from fa31d40 to 1ed1400 Compare August 28, 2026 18:20
@mihar-22 mihar-22 changed the title docs(site): add shadcn registry guide docs(site): document hosted Shadcn registry Aug 28, 2026
@mihar-22
mihar-22 changed the base branch from test/shadcn-registry-validation to feat/remove-legacy-skins August 28, 2026 18:21
@mihar-22
mihar-22 force-pushed the docs/shadcn-registry branch from 1ed1400 to 4eddbc5 Compare August 28, 2026 18:52
@mihar-22
mihar-22 force-pushed the docs/shadcn-registry branch from 4eddbc5 to 8282937 Compare August 28, 2026 19:00
@mihar-22
mihar-22 force-pushed the docs/shadcn-registry branch from 8282937 to 193aeda Compare August 28, 2026 20:07
@mihar-22
mihar-22 force-pushed the docs/shadcn-registry branch from 21d0f9a to 664ff81 Compare August 29, 2026 18:57
Base automatically changed from feat/remove-legacy-skins to docs/eject-source-owned-ui August 29, 2026 18:57
@mihar-22
mihar-22 merged commit 664ff81 into main Aug 29, 2026
1 of 2 checks passed
@mihar-22
mihar-22 deleted the docs/shadcn-registry branch August 29, 2026 18:57
@mihar-22 mihar-22 changed the title docs(site): document hosted Shadcn registry docs(site): document Shadcn registry workflow Aug 29, 2026
This was referenced Aug 29, 2026
@mihar-22
mihar-22 restored the docs/shadcn-registry branch August 29, 2026 19:02
@mihar-22

Copy link
Copy Markdown
Member Author

GitHub marked this PR merged while the native stack was being rebuilt with the documentation layers moved to the top. Review continues in replacement PR #2549, which preserves this branch’s intended isolated diff and place in stack #2552.

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.

Direct Shadcn Registry Documentation

1 participant