---
title: "Video Schema"
description: "Schema for Bricks Video element"
canonical: "https://academy.bricksbuilder.io/developer/schema/elements/video/"
markdownUrl: "https://academy.bricksbuilder.io/developer/schema/elements/video.md"
pageType: "article"
section: "developer"
category: "schema"
lastmod: "2026-05-21T13:58:32.000Z"
---
import SchemaJson from '../../../../../components/SchemaJson.astro'

| Property | Value |
|---|---|
| `name` | video |
| `category` | basic |
| `tag` | div |
| `nestable` | false |

<SchemaJson path="elements/video.json" />

## Controls

| Key | Type | Label | CSS |
|---|---|---|---|
| `videoType` | select | Source | — |
| `iframeTitle` | text | Iframe title | — |
| `aspectRatio` | select | Aspect ratio | `aspect-ratio` |
| `objectFit` | select | Object fit | `object-fit` on `video` |
| `youTubeId` | text | YouTube video ID/URL | — |
| `youtubeAutoplay` | checkbox | Autoplay | — |
| `youtubeControls` | checkbox | Controls | — |
| `youtubeLoop` | checkbox | Loop | — |
| `youtubeMute` | checkbox | Mute | — |
| `youtubeRel` | checkbox | Related videos from other channels | — |
| `youtubeDoNotTrack` | checkbox | Do not track | — |
| `youtubeStart` | number | Start time [s] | — |
| `youtubeEnd` | number | End time [s] | — |
| `youtubeDisableFullscreenButton` | checkbox | Disable fullscreen button | — |
| `youtubeDisableKeyboard` | checkbox | Disable keyboard controls | — |
| `youtubeLanguage` | text | Interface language | — |
| `youtubeCcLang` | text | Captions language | — |
| `youtubeCcLoad` | checkbox | Show captions by default | — |
| `youtubeColor` | select | Progress bar color | — |
| `youtubeHideAnnotationsByDefault` | checkbox | Hide video annotations by default | — |
| `youtubePlaysinline` | checkbox | Play inline | — |
| `vimeoId` | text | Vimeo video ID/URL | — |
| `vimeoHash` | text | Vimeo privacy hash | — |
| `vimeoAutoplay` | checkbox | Autoplay | — |
| `vimeoLoop` | checkbox | Loop | — |
| `vimeoMute` | checkbox | Mute | — |
| `vimeoByline` | checkbox | Byline | — |
| `vimeoTitle` | checkbox | Title | — |
| `vimeoPortrait` | checkbox | User portrait | — |
| `vimeoDoNotTrack` | checkbox | Do not track | — |
| `vimeoColor` | color | Color | — |
| `previewImage` | select | previewImage | — |
| `previewImageCustom` | image | previewImageCustom | — |
| `previewImageSize` | select | Image size | — |
| `media` | video | Media | — |
| `fileUrl` | text | Video file URL | — |
| `useDynamicData` | text | useDynamicData | — |
| `filePreload` | select | Preload | — |
| `fileAutoplay` | checkbox | Autoplay | — |
| `fileLoop` | checkbox | Loop | — |
| `fileMute` | checkbox | Mute | — |
| `fileInline` | checkbox | Play inline | — |
| `fileControls` | checkbox | Controls | — |
| `fileControlNoDownload` | checkbox | Disable | — |
| `fileControlNoFullscreen` | checkbox | Disable | — |
| `fileControlNoRemotePlayback` | checkbox | Disable | — |
| `videoPoster` | image | Poster | — |
| `overlay` | background | Overlay | `background` on `.bricks-video-overlay` |
| `overlayIcon` | icon | Icon | — |
| `overlayAriaLabel` | text | aria-label | — |
| `overlayIconTypography` | typography | Icon typography | `font` on `.bricks-video-overlay-icon` |
| `overlayIconPadding` | spacing | Icon padding | `padding` on `.bricks-video-overlay-icon` |
| `overlayIconBackgroundColor` | color | Icon background color | `background-color` on `.bricks-video-overlay-icon` |
| `overlayIconBorder` | border | Icon border | `border` on `.bricks-video-overlay-icon` |
| `overlayIconBoxShadow` | box-shadow | Icon box shadow | `box-shadow` on `.bricks-video-overlay-icon` |

## Inherited CSS controls

Shared CSS controls available on all elements. Keys are prefixed with `_` and support responsive/pseudo-class variants via colon syntax (e.g. `_typography:tablet_portrait:hover`).

| Key | Type | Label | CSS |
|---|---|---|---|
| `_content` | text | Content | `content` |
| `_margin` | spacing | Margin | `margin` |
| `_padding` | spacing | Padding | `padding` |
| `_width` | number | Width | `width` |
| `_widthMin` | number | Min. width | `min-width` |
| `_widthMax` | number | Max. width | `max-width` |
| `_height` | number | Height | `height` |
| `_heightMin` | number | Min. height | `min-height` |
| `_heightMax` | number | Max. height | `max-height` |
| `_aspectRatio` | text | Aspect ratio | `aspect-ratio` |
| `_position` | select | Position | `position` |
| `_top` | number | Top | `top` |
| `_right` | number | Right | `right` |
| `_bottom` | number | Bottom | `bottom` |
| `_left` | number | Left | `left` |
| `_zIndex` | number | Z-index | `z-index` |
| `_order` | number | Order | `order` |
| `_display` | select | Display | `display`, `align-items` |
| `_visibility` | select | Visibility | `visibility` |
| `_overflow` | text | Overflow | `overflow` |
| `_opacity` | number | Opacity | `opacity` |
| `_cursor` | select | Cursor | `cursor` |
| `_isolation` | select | Isolation | `isolation` |
| `_mixBlendMode` | select | Mix blend mode | `mix-blend-mode` |
| `_pointerEvents` | text | Pointer events | `pointer-events` |
| `_perspective` | number | Perspective | `perspective` |
| `_perspectiveOrigin` | text | Perspective origin | `perspective-origin` |
| `_gridItemJustifySelf` | align-items | Justify self | `justify-self` |
| `_flexDirection` | direction | Direction | `flex-direction` |
| `_alignSelf` | align-items | Align self | `align-self` |
| `_justifyContent` | justify-content | Align main axis | `justify-content` |
| `_alignItems` | align-items | Align cross axis | `align-items` |
| `_gap` | number | Gap | `gap` |
| `_flexGrow` | number | Flex grow | `flex-grow` |
| `_flexShrink` | number | Flex shrink | `flex-shrink` |
| `_flexBasis` | text | Flex basis | `flex-basis` |
| `_useMasonry` | checkbox | %s layout | — |
| `_masonryColumn` | number | Columns | `--columns` |
| `_masonryGutter` | number | Spacing | `--gutter` |
| `_masonryHorizontalOrder` | checkbox | Horizontal order | — |
| `_masonryTransitionDuration` | number | Transition | — |
| `_masonryTransitionMode` | select | Reveal animation | — |
| `_typography` | typography | _typography | `font` |
| `_background` | background | _background | `background` |
| `_shapeDividers` | repeater | Custom shape | — |
| `_gradient` | gradient | _gradient | `background-image` |
| `_border` | border | Border | `border` |
| `_boxShadow` | box-shadow | Box shadow | `box-shadow` |
| `_transform` | transform | Transform | `transform` |
| `_transformOrigin` | text | Transform origin | `transform-origin` |
| `_motionElementParallax` | checkbox | Element parallax | — |
| `_motionElementParallaxSpeedX` | number | Horizontal speed | `--brx-motion-parallax-speed-x` |
| `_motionElementParallaxSpeedY` | number | Vertical speed | `--brx-motion-parallax-speed-y` |
| `_motionBackgroundParallax` | checkbox | Background parallax | — |
| `_motionBackgroundParallaxSpeed` | number | Background speed | `--brx-motion-background-speed` |
| `_motionStartVisiblePercent` | number | Parallax start point | — |
| `_cssCustom` | code | Custom CSS | — |
| `_cssClasses` | text | CSS classes | — |
| `_cssId` | text | CSS ID | — |
| `_cssFilters` | filters | CSS Filters | `filter` |
| `_cssTransition` | text | Transition | `transition` |
| `_attributes` | repeater | Name | — |
| `_scrollSnapType` | select | Type | `scroll-snap-type` on `html`, `scroll-snap-align` on `.brxe-section` |
| `_scrollSnapAlign` | select | Align | `scroll-snap-align` on `.brxe-section` |
| `_scrollSnapStop` | select | Stop | `scroll-snap-stop` on `.brxe-section` |