Skip to content

Latest commit

 

History

History
50 lines (33 loc) · 2.13 KB

README.md

File metadata and controls

50 lines (33 loc) · 2.13 KB

LiveKit Components Styles

Beautiful base styling for LiveKit components that you can use as is, build upon, or create your own.

Monorepo Navigation

Dev notes

Prefix

To avoid collisions CSS all CSS selector used for LiveKit Components (classes, CSS variables, and custom data attributes) are given the same prefix. To avoid typing redundant prefixes and keep the door open for user-defined prefixes, we use PostCSS plugins (see postcss.config.js) to add the prefix during the build step. This means that you should never write a prefix inside this styles package.

The PostCSS plugins transform the CSS selectors as follows, to make it easier to understand here are a few examples with a prefix of "lk":

no prefix with lk prefix 
.button .lk-button
--border-color --lk-border-color
var(--fg) var(--lk-fg)
[data-active='false'] [data-lk-active='false']
&[data-muted='true'] &[data-lk-muted='true']

⚠️ Currently not supported prefix:

no prefix with lk prefix 
attr(data-participant-name) attr(data-lk-participant-name)

@include vs @extend

@mixin is used to group css code that has to be reused a no of times. Whereas the @extend is used in SASS to inherit(share) the properties from another css selector. @extend is most useful when the elements are almost same or identical.

The compiled css output would suggest to use @extend in cases where css classes should inherit from parent classes (e.g. .disconnect-button inherits base properties from .button).