# video-neutral-skin

The video preset's visually lighter skin, closer to a classic control bar

The neutral skin of the video preset: the same player and the same controls in a visually lighter design, closer to a classic control bar. The [default video skin](https://videojs.org/docs/framework/html/reference/components/video-skin) is the same preset’s other variant. See [Skins](https://videojs.org/docs/framework/html/guides/skins) for how packaged skins work and [Presets](https://videojs.org/docs/framework/html/guides/presets) for what the video preset ships.

## Import

```ts
import '@videojs/html/video/neutral-skin';
```

The import registers the skin and every UI element it composes. The [CDN](https://videojs.org/docs/framework/html/guides/cdn) player bundle registers this skin together with its player:

```html
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.1/video-neutral.js"></script>
```

## Anatomy

The skin goes between the player and the media component. It renders its controls around the media.

```html
<video-player>
  <video-neutral-skin>
    <video></video>
  </video-neutral-skin>
</video-player>
```

## Poster

The skin renders a poster image before playback starts. An element with `slot="poster"` replaces it.

See [Add a poster and loading placeholder](https://videojs.org/docs/framework/html/guides/poster) for complete examples.

## Thumbnail

The skin renders a storyboard preview image while scrubbing the time slider. An `<img slot="thumbnail">` replaces it, so image attributes such as `crossorigin`, `loading`, and `fetchpriority` go on it.

See [Show timeline thumbnail previews](https://videojs.org/docs/framework/html/guides/thumbnails) for complete examples.

## Styling

Packaged skins style themselves and expose a small set of public CSS custom properties. Everything else inside the skin is private and may change between releases. [Customize skins](https://videojs.org/docs/framework/html/guides/customize-skins#style-a-packaged-skin) documents the properties. For deeper changes, the Video.js registry provides the skin files.

## Examples

### Basic Usage

**index.html**

```html
<video-player poster="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.jpg">
  <video-neutral-skin class="html-video-neutral-skin-basic">
    <video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline crossorigin="anonymous">
      <track kind="metadata" label="thumbnails" src="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/storyboard.vtt" default />
    </video>
  </video-neutral-skin>
</video-player>
```

**index.css**

```css
.html-video-neutral-skin-basic {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
}
```

**index.ts**

```ts
import '@videojs/html/video/player';
import '@videojs/html/video/neutral-skin';
```

## Own the UI

Packaged skins keep their controls and layout inside Video.js. When you need to add, remove, rearrange, or deeply restyle controls, use Shadcn to add the skin source to your project. Its components, layout, styles, and interactions become local files you can change.

- [Install Video.js with Shadcn](https://videojs.org/docs/guides/installation/shadcn?framework=html#choose-how-to-install): Add editable skin source and build a working React or HTML player

---

HTML documentation: https://videojs.org/docs/framework/html/llms.txt
All documentation: https://videojs.org/llms.txt
