Introduction to Vanilla JS UI Kit
Dyte's UI Kit is a prebuilt design library of UI components that makes it easy to integrate video and voice calls into any app or website within minutes.
To learn more about web components, see Web Components Overview.
The Anatomy of UI Kit
The UI Kit is a design library of prebuilt UI components built on top of the core SDKs. Core SDK handles all the low-level media and network handling parts of a meeting and exposes simpler APIs to use. You can create a meeting object using the web-core components and pass it to the UI Kit components.
- Uses a layered design structure, allowing you to start with one prebuilt component and slowly add further layers as the needs evolve.
How to Use UI Kit?
Dyte's UI Kit offers a couple of ways to get started with your live video and voice calling applications.
- Use prebuilt components: You can use prebuilt
dyte-meetingcomponent to create your meeting quickly. With this component, you don't have to handle all the states, dialogs, and other aspects of managing the application. This loads your preset and renders the UI based on it. For more information, see UI Kit Quickstart.
- Build your own UI: Dyte also offers the flexibility to build your own UI using various individual components. This offers limitless customization options, ranging from colors and font to spacing, participant tiles, screen share views, logo, height, width and more, you can tailor the UI to fit your exact needs. See Build you own UI section.
The DyteMeeting component can be broken down into 3 major subcomponents:
Displays information about the meeting, such as the meeting title and the participant count.
The grid displays the video feeds of meeting participants. The grid component in Dyte's UI Kit adjusts the layout of video feeds based on the meeting's participant count, ensuring a smooth meeting experience. It provides a variety of layouts and variants.
Dyte Control Bar
The control bar displays various controls for the meetings. It can easily be customized to match the look and feel of your web application. Customizing the control bar gives you the flexibility to show or hide controls, add or remove buttons, and make other adjustments to enhance the meeting experience for your users.
Here are the browser requirements:
- Chrome (or Chromium based) 74+
- Firefox 78+
- Opera 64+
- Safari 12+
- Edge 79+
- iOS (Safari) 12.1+
- iOS (Non-Safari) 15+
The entire UI has a small <500KB bundle size. If you use individual components, the size will be even smaller.
- Dyte UI Kit is built using
web components. Web Components are a built-in browser specification that enables you to develop reusable custom elements without relying on any third-party frameworks. Web components provides the following advantages:
- Encapsulation: Web components utilize Shadow DOM, which provides DOM and style encapsulation, isolating the styling of each component. This ensures that the CSS on your page does not interfere with Dyte's component styling and vice versa.
- Fast: DOM updates are very heavy, that is why React offers Virtual DOM to offer iterative updates. We also use our own Virtual DOM, but combing with Shadow DOM is even faster because styles are scoped. The browser can make assumptions about new changes to affect only one component and therefore it only needs to repaint that component.
- Third-party dependencies: There are almost no third-party dependencies, giving you complete code ownership.
- Small bundle size: The UI kit adds only 300KB (without gzipping) to your bundle size and includes everything from the meeting UI, chat, polls, emojis, plugins, host controls, and so on.
- Each component uses design tokens in conjunction with CSS variables for styling. This makes the customization super simple and easy. Other than the design tokens, we've also attempted to improve the customization options, with features like Internationalisation (i18n) and Icon Packs Support.
- In addition, we've also focused on accessibility (a11y) so that users can
easily navigate through the UI without having to move their mouse across the
screen. For example, closing dialogues with the
Escapekey and navigating through visual elements with the