Git Product home page Git Product logo

grunt-sprity's Introduction

grunt-sprity

NPM version Build Status Dependencies

Grunt task for generating css sprites and corresponding stylesheets with sprity.

Getting Started

This plugin requires Grunt ~0.4.5

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-sprity --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-sprity');

The "sprity" task

Overview

In your project's Gruntfile, add a section named sprity to the data object passed into grunt.initConfig().

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    sprity: {
      options: {
        'cssPath': '../images',
        'processor': 'css',
        'orientation': 'vertical',
        'margin': 4
      },
      sprite: {
        options: {
          'style': 'dest/css/sprite.css'
        },
        src: ['src/images/*', 'src/images2/*'],
        dest: 'dest/images/sprite.png',
      },
      base64: {
        options: {
          'base64': true
        },
        src: ['src/images/*'],
        dest: 'dest/scss/base64.css',
      }
    }
  });

  // Load the plugin that provides the "sprity" task.
  grunt.loadNpmTasks('sprity');

  // Default task(s).
  grunt.registerTask('default', ['sprity']);
};

Options

  • src: Array or string of globs to find source images to put into the sprite. [required]
  • out: path of directory to write sprite file to [Default: process.cwd()]
  • base64: inlines base64 encoded sprites in the style file
  • cssPath: path or url of sprites on the web server used to reference the sprite in the styles (relative or absolute path or full url) [Default: ../images]
  • dimension: used dimensions for the sprite. A combination of ratio and dpi. Read more about dimensions: How to specify dimensions
  • engine image processing engine. Read more about engines: Image processing engines [Default: lwip]
  • format output format of the sprite (Depends on what engine is used) [Default: png when used with lwip]
  • name name of sprite file without file extension [Default: sprite]
  • processor style processing module. Read more about style processors: Style processors [css]
  • template output template file, overrides processor option. Read more about templates: Templates
  • style file to write css to, if omitted no css is written
  • background background color of the sprite in hex [Default: #FFFFFF]
  • cachebuster appends a "cache buster" to the background image in the form "?<...>" (Boolean) [Default: false]
  • margin margin in px between tiles [Default: 4]
  • opacity background opacity (0 - 100) of the sprite. defaults to 0 when png or 100 when jpg [Default: 0]
  • orientation orientation of the sprite image (vertical|horizontal|binary-tree) [Default: vertical]
  • prefix prefix for the class name used in css (without .)
  • no-sort disable sorting of layout. Read more about: Layout algorithms
  • split create sprite images for every sub folder [Default: false]
  • style-indent-char Character used for indentation of styles (space|tab) [Default: space]
  • style-indent-size Number of characters used for indentation of styles [Default: 2]

More

See sprity documentation

grunt-sprity's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

pmegaocalc

grunt-sprity's Issues

engine sprity-gm

I am using node 4.1.0

The lib lwip doesn't work, so I am trying to use sprity-gm
But when I run my grunt:

    sprity:
      options:
        engine: 'sprity-gm'
        cssPath: 'sprites/'
        orientation: 'vertical'

the output is:

$ grunt sprity
Running "sprity:images" (sprity) task
Fatal error: spawn gm ENOENT

Help!

How could I add some more options for generated scss file?

Hi,

I want to add following options, especially for the scss processor. I modified file sprity-sass/templates/scss.hbs and got expected result, but want it's more flexible :)

Line 29 in file sprity-sass/templates/scss.hbs currently hardcoded mixin name as sprite and $display as block, I think it'd be more flexible to set these values as options.

Current:

@mixin sprite($sprite, $display: block) {

And I modified for my code:

@mixin spritesheet($sprite, $display: inline-block) {

Thanks,

base64 usage

Hi I have switched from css-sprite as recommended. I had a grunt task working fine with css-sprite for some time. Since switching I am seeing different behaviour and it not seeming to work as config examples show.

Here is my task config

sprity: {
options: {
processor: 'css',
out: 'build/css/app/',
base64: true
},
tree: {
options: {
prefix: 'tree-icon',
style: 'tree.sprites.css'
},
src: ['src/css/treesprites/.png'],
dest: 'build/css/app/tree.sprites'
},
buttons: {
options: {
prefix: 'button-icon',
style: 'button.sprites.css'
},
src: ['src/css/buttonsprites/
.png'],
dest: 'build/css/app/button.sprites'
},
items: {
options: {
prefix: 'item-icon',
style: 'item.sprites.css'
},
src: ['src/css/itemsprites/*.png'],
dest: 'build/css/app/item.sprites'
}
},

This is working but it still generates the .png files at dest despite being configured for base64. If I exclude dest the css file does not get generated.

If I try the example base64 config from the home page i.e.

base64: {
options: {
'base64': true
},
src: ['src/images/*'],
dest: 'dest/scss/base64.css',
}

I get an image file named base64.css.png and no css file.

What am I doing wrong?

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.