How to use @emotion/serialize - 10 common examples

To help you get started, we’ve selected a few @emotion/serialize examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github emotion-js / next / packages / styled-base / src / index.js View on Github external
const Styled = withCSSContext((props, context) => {
      let className = ''
      let classInterpolations = []
      let mergedProps = pickAssign(testAlwaysTrue, {}, props, {
        theme: props.theme || context.theme
      })
      if (typeof props.className === 'string') {
        className += getRegisteredStyles(
          context.registered,
          classInterpolations,
          props.className
        )
      }
      const serialized = serializeStyles.call(
        mergedProps,
        context.registered,
        styles.concat(classInterpolations)
      )
      const rules = insertStyles(context, serialized)
      className += `${context.key}-${serialized.name}`
      if (targetClassName !== undefined) {
        className += ` ${targetClassName}`
      }

      const ele = React.createElement(
        baseTag,
        // $FlowFixMe
        pickAssign(shouldForwardProp, {}, props, {
          className,
          ref: props.innerRef
github emotion-js / emotion / packages / core / __tests__ / css-cache-hash.js View on Github external
test('does not rehash if value is css call return value', () => {
  const val = css`
    color: hotpink;
  `
  const tree = renderer.create(
    <div>
      <div>
    </div>
  )
  expect(serializeStyles([val])).toBe(val)

  expect(spy.mock.calls[0][1]).toBe(val)
  expect(tree.toJSON()).toMatchSnapshot()
})
</div>
github emotion-js / emotion / packages / core / src / class-names.js View on Github external
let css = (...args: Array) =&gt; {
          if (hasRendered &amp;&amp; process.env.NODE_ENV !== 'production') {
            throw new Error('css can only be used during render')
          }
          let serialized = serializeStyles(args, context.registered)
          if (isBrowser) {
            insertStyles(context, serialized, false)
          } else {
            let res = insertStyles(context, serialized, false)
            if (res !== undefined) {
              rules += res
            }
          }
          if (!isBrowser) {
            serializedHashes += ` ${serialized.name}`
          }
          return `${context.key}-${serialized.name}`
        }
        let cx = (...args: Array) =&gt; {
github egoist / vue-emotion / src / styled.js View on Github external
const mergedProps = {
          ...data.attrs,
          theme: injections.theme,
          ...parent.$evergarden
        }
        const domProps = { value }

        if (data.class) {
          className += getRegisteredStyles(
            cache.registered,
            classInterpolations,
            clsx(data.class)
          )
        }

        const serialized = serializeStyles(
          styles.concat(classInterpolations),
          cache.registered,
          mergedProps
        )

        insertStyles(
          cache,
          serialized,
          typeof finalTag === 'string'
        )

        className += `${cache.key}-${serialized.name}`
        if (targetClassName !== undefined) {
          className += ` ${targetClassName}`
        }
github emotion-js / next / packages / dynamic / src / index.js View on Github external
renderChild = (context: CSSContextType) =&gt; {
    const { css } = this.props
    const serialized = serializeStyles([css])
    const rules = context.stylis(`.css-${serialized.name}`, serialized.styles)
    if (this.sheet === undefined &amp;&amp; isBrowser) {
      this.sheet = new DynamicStyleSheet(StyleSheetOptions)
      this.sheet.inject()
    }
    if (isBrowser) {
      this.sheet.insertRules(rules)
    }

    const child = this.props.render(serialized.cls)
    if (shouldSerializeToReactTree &amp;&amp; rules.length !== 0) {
      return (
github emotion-js / emotion / packages / css / src / index.js View on Github external
function css(...args: Array): SerializedStyles {
  return serializeStyles(args)
}
github evergarden-ui / evergarden / packages / emotion / src / styled.js View on Github external
render(h, { children, data, parent }) {
      const cache = parent.$emotionCache

      const { value, as, ...restAttrs } = data.attrs || {}
      const mergedProps = { ...data.attrs, ...parent.$evergarden }
      const finalTag = as || tag

      const serialized = serializeStyles(
        styles,
        cache.registered,
        mergedProps
      )
      insertStyles(cache, serialized, typeof finalTag === 'string')
      
      const className = `${cache.key}-${serialized.name}`

      return h(
        finalTag,
        {
          ...data,
          class: className,
          attrs: getAttrs ? getAttrs(restAttrs) : restAttrs,
          domProps: {
            ...(value && { value })
github emotion-js / emotion / packages / core / src / global.js View on Github external
warnedAboutCssPropForGlobal = true
  }
  let styles = props.styles

  if (typeof styles === 'function') {
    return (
      
        {theme =&gt; {
          let serialized = serializeStyles([styles(theme)])

          return 
        }}
      
    )
  }
  let serialized = serializeStyles([styles])

  return 
})
github emotion-js / emotion / packages / create-emotion / src / index.js View on Github external
let css = function(...args) {
    let serialized = serializeStyles(
      args,
      cache.registered,
      this !== undefined ? this.mergedProps : undefined
    )
    insertStyles(cache, serialized, false)
    return `${cache.key}-${serialized.name}`
  }
github emotion-js / emotion / packages / core / src / jsx.js View on Github external
let render = (cache, props, theme: null | Object, ref) => {
  let type = props[typePropName]
  let registeredStyles = []

  let className = ''
  if (props.className !== undefined) {
    className = getRegisteredStyles(
      cache.registered,
      registeredStyles,
      props.className
    )
  }
  registeredStyles.push(theme === null ? props.css : props.css(theme))
  const serialized = serializeStyles(cache.registered, registeredStyles)
  const rules = insertStyles(cache, serialized, typeof type === 'string')
  className += `${cache.key}-${serialized.name}`

  const newProps = {}
  for (let key in props) {
    if (
      hasOwnProperty.call(props, key) &&
      key !== 'css' &&
      key !== typePropName
    ) {
      newProps[key] = props[key]
    }
  }
  newProps.ref = ref
  newProps.className = className

@emotion/serialize

serialization utils for emotion

MIT
Latest version published 1 month ago

Package Health Score

84 / 100
Full package analysis

Similar packages