npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

inline-style-prefixer-fork

v3.0.5

Published

Run-time Autoprefixer for JavaScript style objects

Downloads

5

Readme

Autoprefixer for Style Objects

inline-style-prefixer adds required vendor prefixes to your style object. It only adds prefixes if they're actually required by evaluating the browser's userAgent against data from caniuse.com.

Alternatively it ships a static version that adds all available vendor prefixes.

Build Status Test Coverage npm downloads Dependencies

Installation

yarn add inline-style-prefixer

If you're still using npm, you may run npm i --save inline-style-prefixer. We also provide UMD builds for each package in the dist folder. You can easily use them via unpkg.

<!-- Unminified versions -->
<script src="https://unpkg.com/[email protected]/dist/inline-style-prefixer.js"></script>
<script src="https://unpkg.com/[email protected]/dist/inline-style-prefix-all.js"></script>
<!-- Minified versions -->
<script src="https://unpkg.com/[email protected]/dist/inline-style-prefixer.min.js"></script>
<script src="https://unpkg.com/[email protected]/dist/inline-style-prefix-all.min.js"></script>

Browser Support

It supports all major browsers with the following versions. For other, unsupported browses, we automatically use a fallback.

  • Chrome: 46+
  • Android (Chrome): 46+
  • Android (Stock Browser): 4+
  • Android (UC): 9+
  • Firefox: 40+
  • Safari: 8+
  • iOS (Safari): 8+
  • Opera: 16+
  • Opera (Mini): 12+
  • IE: 11+
  • IE (Mobile): 11+
  • Edge: 12+

It will only add prefixes if a property still needs them in one of the above mentioned versions. Therefore, e.g. border-radius will not be prefixed at all.

Need to support legacy browser versions? Don't worry - we got you covered. Check this guide.

Dynamic vs. Static

Before using the prefixer, you have to decide which one you want to use. We ship two different versions - a dynamic and a static version.

The dynamic prefixer evaluates the userAgent to identify the browser environment. Using this technique, we are able to only add the bare minimum of prefixes. Browser detection is quite accurate (~90% correctness), but yet also expensive which is why the package is almost 3 times as big as the static version.

It uses the static prefixer as a fallback.

Gzipped Size

import Prefixer from 'inline-style-prefixer'

const style = {
  transition: '200ms all linear',
  userSelect: 'none',
  boxSizing: 'border-box',
  display: 'flex',
  color: 'blue'
}

const prefixer = new Prefixer()
const prefixedStyle = prefixer.prefix(style)

// prefixedStyle === output
const output = {
  transition: '200ms all linear',
  WebkitUserSelect: 'none',
  boxSizing: 'border-box',
  display: '-webkit-flex',
  color: 'blue'
}

The static prefixer, on the other hand, adds all required prefixes according the above mentioned browser versions. Removing the browser detection makes it both smaller and fast, but also drastically increases the output.

Gzipped Size

import prefixAll from 'inline-style-prefixer/static'

const style = {
  transition: '200ms all linear',
  boxSizing: 'border-box',
  display: 'flex',
  color: 'blue'
}

const prefixedStyle = prefixAll(style)

// prefixedStyle === output
const output = {
  WebkitTransition: '200ms all linear',
  transition: '200ms all linear',
  MozBoxSizing: 'border-box',
  boxSizing: 'border-box',
  display: [ '-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex' ]
  color: 'blue'
}

Documentation

If you got any issue using this prefixer, please first check the FAQ's. Most cases are already covered and provide a solid solution.

Community

Here are some popular users of this library:

PS: Feel free to add your solution!

Support

Join us on Gitter. We highly appreciate any contribution. We also love to get feedback.

License

inline-style-prefixer is licensed under the MIT License. Documentation is licensed under Creative Common License. Created with ♥ by @rofrischmann and all contributors.