This addon provides a {{style}}
element modifier to set element's style.
This allows to set custom CSS of an element without requiring a Content Security Policy style-src-attr: "unsafe-inline"
.
- Ember.js v3.28 or above
- Ember CLI v3.28 or above
- Node.js v18 or above
ember install ember-style-modifier
It expects CSS declarations as named arguments or as a hash as positional
argument. Property names are supported in dasherized as well as in camelCase
spelling. Value must be a string or undefined
. You may set a priority by
adding an "!important"
suffix.
You may pass multiple hashes as positional arguments and combine hashes with named arguments. If multiple hashes are passed and contain CSS declarations for the same property, last one wins. If hashes and named arguments declare same property, named argument wins.
Adding styles to pseudo-elements is not supported.
Ember Style Modifier suffers from two known limitations of Modifiers in Ember. Both need to be addressed by extending modifiers capabilities. Doing so, is discussed in a RFC issue.
Modifiers do not run in server-side rendering (SSR). Styles set using
ember-style-modifier
are therefore not applied if application is
run with FastBoot or prerendered using
Prember. This may lead to wrong
layout before rehydration and layout shifts on rehydration.
Modifiers run after browser has printed the page. If styles are applied to an elements immediately, the browser first renders the element without those styles applied and immediately afterwards with these styles applied.
This may theoretically cause the experience of a flickering user interface. But such a case has not been noticed yet in practice.
Rendering the element twice has a performance impact. But it should not have any noticeable impact in practice.
See the Contributing guide for details.
This project is licensed under the MIT License.