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

stylus-svg

v1.3.1

Published

Stylus function to import svg from a path and include it inline

Downloads

483

Readme

Stylus-svg

Node.js CI Libraries.io dependency status for latest release FOSSA Status

Add stylus function to import svg from a path and include it inline in css.

Why?

This js module add to stylus a function to read a svg file and import it inline in your css.

Installation

npm install stylus-svg

Initalize

Directly with stylus

use('./node_modules/stylus-svg/index.js')

With stylus API

var stylus = require('stylus'),
    stylusSvgImport = require('stylus-svg');

stylus(str)
  .set('filename', 'nesting.css')
  .use(stylusSvgImport())
  .render(function(err, css){
    // logic
  });

With gulp-stylus

var gulp = require('gulp'),
    stylus = require('gulp-stylus'),
    stylusSvgImport = require('stylus-svg');

// css
gulp.task('styles', function () {
  return gulp.src('*.styl')
    .pipe(stylus({
      use: [
        stylusSvgImport()
      ]
    }))
    .pipe(gulp.dest('css'));
});

options

You can add some bases directories to resolve path of your svg files.

  stylusSvgImport({svgDirs: __dirname})
  use('./node_modules/stylus-svg/index.js', {svgDirs: '/assets'})

It’s possible to add several paths:

  stylusSvgImport({svgDirs: [__dirname, './other/path']})

But stylus syntax can be annoying:

  svgDirs = '../node_modules' 'assets'
  use('./node_modules/stylus-svg/index.js', {svgDirs: '/assets'})

How to use?

basic usage

.foo
  background-image: svgImport('../svg/logo.svg')

With custom CSS

You can also use the second argument to give some css to your svg (in stylus language)

.foo
  background-image: svgImport('../svg/logo.svg', '
    path
      fill: rgba(255, 255, 255, .5)
  ')

This Stylus code do not access to outside stylus context (do not use variable defined outside).

Do not remove width and height attributes

By default, svg import remove width and height attributes to be sure that svg would not be considered as an non-vectorial background image by the browser:

It’s worth noting that the sizing algorithm only cares about the image's dimensions and proportions, or lack thereof. An SVG image with fixed dimensions will be treated just like a raster image of the same size.

Sources: MDN – Scaling of SVG backgrounds

You can set the third argument to false to not delete it.

.foo
  background-image: svgImport('../svg/logo.svg', '', false)

License

FOSSA Status