Giter Club home page Giter Club logo

rework-sass-images's Introduction

rework-sass-images

Sass/Compass image size functions written in JavaScript as a Rework plugin. Uses Imagesize to read an image's size and replaces directives in CSS with that size. Inspired by rework-imagesize and Compass Image Dimension Helpers.

Usage

var rework = require('rework');
var sass_images = require('rework-sass-images');

var css = rework(str)
  .use(sass_images('path/to/images/folder'))
  .toString();

Using the above JavaScript. This:

h1 {
  background: url('myimage.png');
  background-size: image-size('myimage.png');
  width: image-width('myimage.png');
  height: image-height('myimage.png');
  text-indent: 100%;
}

Will produce this CSS:

h1 {
  background: url('myimage.png');
  background-size: 518px 202px;
  width: 518px;
  height: 202px;
  text-indent: 100%;
}

HiDPI support

Use special functions hidpi-image-width|height|size to insert dimesnions divided by 2 if the image filename contains @2x in it. For example, considering the [email protected] size is 640x480:

div {
  background-size: hidpi-image-size('[email protected]');
  width: hidpi-image-width('[email protected]');
  height: hidpi-image-height('[email protected]');
}

will produce:

div {
  background-size: 320px 240px;
  width: 320px;
  height: 240px;
}

Functions

Insert actual size of the image in px:

  • image-width('path/to/image') -- inserts the width of the image in px;
  • image-height('path/to/image') -- inserts the height of the image in px;
  • image-size('path/to/image') -- inserts the width AND the height of the image separated by white-space;

Insert image dimensions divided by 2 only if filename contains @2x in it. Otherwise insert real dimensions:

  • hidpi-image-width('path/to/image@2x') -- inserts the width of the image divided by 2 for HiDPI images in px;
  • hidpi-image-height('path/to/image@2x') -- inserts the height of the image divided by 2 for HiDPI images in px;
  • hidpi-image-size('path/to/image@2x') -- inserts the width AND the height of the image divided by 2 for HiDPI images separated by white-space;

License

MIT

rework-sass-images's People

Contributors

okonet avatar

Stargazers

Patrick Wang avatar Vadim Sikora avatar

Watchers

Cristi Balan avatar Leah Neukirchen avatar Dieter Komendera avatar Holger Amann avatar Christian avatar Philippa Markovics avatar  avatar  avatar thattommyhall avatar Günter Glück avatar  avatar James Cloos avatar

rework-sass-images's Issues

Line comments on lines result in error

This breaks with Cannot call method 'indexOf' of undefined:

.class {
  color:red /* my line comment */
}

I noticed this because I was importing normalize.css, which has comments like this.

If add some more conditions, it seems to fix it, though I'm not sure if that's the best way or not:

This:

          if (rule.value.indexOf(value) !== -1) {...

Becomes:

          if (rule.type == 'declaration' && rule.value && rule.value.indexOf(value) !== -1) {...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.