
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
gulp-css-spriter-retina
Advanced tools
Sprite Sheet Generation from CSS source files. The best and different approach to sprite sheets.support Retina screen
gulp-css-spriter
, a gulp plugin, looks through the CSS you pipe in and gathers all of the background images. It then creates a sprite sheet and updates the references in the CSS.
You can easily exclude/include certain background image declarations using meta info in your styles(see meta section below) and includeMode
option(see options section below) depending on your use case.
npm install gulp-css-spriter-retina
gulp-css-spriter
uses spritesmith behind the scenes for creating the sprite sheet.
This is most likely the setup you will probably end up using.
var gulp = require('gulp');
var spriter = require('gulp-css-spriter-retina');
gulp.task('css', function() {
return gulp.src('./src/css/styles.css')
.pipe(spriter({
// The path and file name of where we will save the sprite sheet
'spriteSheet': './dist/images/spritesheet.png',
// Because we don't know where you will end up saving the CSS file at this point in the pipe,
// support retina screen, scale:0.5 = @2x
'scale': 0.5,
// we need a litle help identifying where it will be.
'pathToSpriteSheetFromCSS': '../images/spritesheet.png'
}))
.pipe(gulp.dest('./dist/css'));
});
The slimmest usage possible.
var gulp = require('gulp');
var spriter = require('gulp-css-spriter-retina');
gulp.task('css', function() {
return gulp.src('./styles.css')
.pipe(spriter())
.pipe(gulp.dest('./'));
});
If you want to use @meta data but are using a preprocessor such as Sass or Less, you will need to use a output style that doesn't strip comments. After piping the CSS through gulp-css-spriter
, you can then run it through a CSS minifier(separate plugin), such as gulp-minify-css
.
var gulp = require('gulp');
var spriter = require('gulp-css-spriter-retina');
var minifyCSS = require('gulp-minify-css'); // https://www.npmjs.com/package/gulp-minify-css
gulp.task('css', function() {
return gulp.src('./styles.css')
.pipe(spriter())
.pipe(minifyCSS())
.pipe(gulp.dest('./'));
});
options
: object - hash of options
includeMode
: string - Determines whether meta data is necessary or not
explicit
, you must have meta include
as true
in order for the image declarations to be included in the spritesheet: /* @meta {"spritesheet": {"include": true}} */
implicit
, all images will be included in the spritesheet; except for image declarations with meta include
as false
: /* @meta {"spritesheet": {"include": false}} */
spriteSheet
: string - The path and file name of where we will save the sprite sheet
pathToSpriteSheetFromCSS
: string - Because we don't know where you will end up saving the CSS file at this point in the pipe, we need a litle help identifying where it will be. We will use this as the reference to the sprite sheet image in the CSS piped in.
spriteSheetBuildCallback
: function - Same as the spritesmith callback
function(err, result)
result.image
: Binary string representation of imageresult.coordinates
: Object mapping filename to {x, y, width, height} of imageresult.properties
: Object with metadata about spritesheet {width, height}silent
: bool - We ignore any images that are not found but are supposed to be sprited by default
shouldVerifyImagesExist
: bool - Check to make sure each image declared in the CSS exists before passing it to the spriter. Although silenced by default(options.silent
), if an image is not found, an error is thrown.
spritesmithOptions
: object - Any option you pass in here, will be passed through to spritesmith. See spritesmith options documenation
outputIndent
: bool - Used to format output CSS. You should be using a separate beautifier plugin. The reason the output code is reformatted is because it is easier to "parse->stringify" than "replace in place".
gulp-css-spriter-retina
emits the transformed CSS with updated image references to the sprite sheet as a normal Gulp vinyl file.
We also attach the binary sprite sheet image in chunk.spriteSheet
in case you want to consume it later down the pipe.
gulp-css-spriter-retina
uses a JSON format to add info onto CSS declarations.
The example below will exclude this declaration from the spritesheet.
/* @meta {"spritesheet": {"include": false}} */
background: url('../images/dummy-blue.png');
Please note that if you are compiling from Sass/Less and are not getting correct results, to check the outputted CSS and make sure the comments are still in tact and on the line you expect. For Sass, use multiline /* */
comment syntax and put them above declarations. This is because gulp-sass/node-sass/libsass removes single line comments and puts mult-line comments that are on the same line as a declaration, below the declaraton.
The @meta
comment data can be above or on the same line as the declaration for it to apply.
/* @meta {"spritesheet": {"include": false}} */
background: url('../images/dummy-blue.png'); /* @meta {"spritesheet": {"include": false}} */
spritesheet
: object - hash of options that gulp-css-spriter
will factor in
include
: bool - determines whether or not the declaration should be included in the spritesheet. This can be left undefined if the includeMode
is 'implicit'gulp-css-spriter-retina
transforms your CSS image paths to the spritesheet appropriately then emits the CSS as a normal Gulp vinyl file.
.on('log', function(message) { })
We emit log messages such as when a image defined in the CSS can't be found on disk.
.on('error', function(err) { })
A normal gulp error. There are a variety of errors. See source code for more details.
We have a series of unit tests. We use Mocha.
Install Mocha globally:
npm install -g mocha
Run tests with: mocha
or npm test
FAQs
Sprite Sheet Generation from CSS source files. The best and different approach to sprite sheets.support Retina screen
The npm package gulp-css-spriter-retina receives a total of 0 weekly downloads. As such, gulp-css-spriter-retina popularity was classified as not popular.
We found that gulp-css-spriter-retina demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.