Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
create-emotion
Advanced tools
The main emotion repo can be thought of as a call to createEmotion
with sensible defaults for most applications.
import createEmotion from 'create-emotion'
const context = typeof global !== 'undefined' ? global : {}
export const {
flush,
hydrate,
cx,
merge,
getRegisteredStyles,
injectGlobal,
keyframes,
css,
sheet,
caches
} = createEmotion(context)
Calling it directly will allow for some low level customization.
Create custom names for emotion APIs to help with migration from other, similar libraries.
Could set custom key
to 👩🎤
, 🥞
, ⚛️
, 👩🎨
Introduces some amount of complexity to your application that can vary depending on developer experience.
Required to keep up with changes in the repo and API at a lower level than if using emotion
directly
Using emotion in embedded contexts such as an <iframe/>
Setting a nonce on any <style/>
tag emotion creates for security purposes
Use emotion with a developer defined <style/>
tag
Using emotion with custom stylis plugins
import createEmotion from 'create-emotion'
const context = typeof global !== 'undefined' ? global : {}
export const {
flush,
hydrate,
cx,
merge,
getRegisteredStyles,
injectGlobal,
keyframes,
css,
sheet,
caches
} = createEmotion(context)
create-emotion
accepts a context
and a set of options.
emotion
requires a global object for server-side rendering to ensure that even if a module is calling an emotion instance from two paths(e.g. the same emotion instance in multiple node_modules, this can happen often with linking #349) they'll still both work with SSR. If you aren't using SSR, context
can be an empty object. This isn't required in the browser because your bundler should deduplicate modules.
import createEmotion from 'create-emotion'
const context = typeof global !== 'undefined' ? global : {}
if (context.__MY_EMOTION_INSTANCE__ === undefined) {
context.__MY_EMOTION_INSTANCE__ = {}
}
export const {
flush,
hydrate,
cx,
merge,
getRegisteredStyles,
injectGlobal,
keyframes,
css,
sheet,
caches
} = createEmotion(context.__MY_EMOTION_INSTANCE__, {
// The key option is required when there will be multiple instances in a single app
key: 'some-key'
})
Note: calling createEmotion
twice with the same context
will use the same instance, so options provided in another call of createEmotion
with the same context will be ignored.
A nonce that will be set on each style tag that emotion inserts for Content Security Policies.
A Stylis plugin or plugins that will be run by stylis during preprocessing. Read Stylis' docs to find out more. This can for be used for many purposes such as RTL.
Allows changing Stylis' prefixing settings, this defaults to true
. It can be a boolean or a function to dynamicly set which properties are prefixed. More information can be found in Stylis' docs
The prefix before class names, this defaults to css
. It will also be set as the value of the data-emotion
attribute on the style tags that emotion inserts and it's used in the attribute name that marks style elements in renderStylesToString
and renderStylesToNodeStream
. This is required if using multiple emotion instances in the same app.
A DOM Node that emotion will insert all of it's style tags into, this is useful for inserting styles into iframes.
FAQs
The Next Generation of CSS-in-JS.
The npm package create-emotion receives a total of 452,822 weekly downloads. As such, create-emotion popularity was classified as popular.
We found that create-emotion demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.