csssasscompass-sasscompass

Compass mixin - folder-sprite(imagename) - prints all images when it shouldn't


I'm using compass to generate a sprite-sheet, which it pulls off magically. My issue is when I attempt to include a single png via div {@include folder-sprite(js);} it includes the whole sprite-sheet, how do I go about fixing this? Any help is much appreciated, thank you :)

Current Faulty Implementation:

    sass
    $icons-layout: horizontal;
    @import "icons/*.png";
    div {@include icons-sprite(js);}

    css
    .icons-sprite, div {
     background-image: url('../images/generated/icons-s119197eae9.png');
     background-repeat: no-repeat; }

The css should load the sprite-sheet and automatically utilize background-position, but it doesn't

EDIT: compass config.rb

##
## This file is only needed for Compass/Sass integration. If you are not using
## Compass, you may safely ignore or delete this file.
##
## If you'd like to learn more about Sass and Compass, see the sass/README.txt
## file for more information.
##

# Default to development if environment is not set.
saved = environment
if (environment.nil?)
  environment = :development
else
  environment = saved
end

# Location of the theme's resources.
css_dir = "css"
sass_dir = "sass"
images_dir = "images"
generated_images_dir = images_dir + "/generated"
javascripts_dir = "js"

# Require any additional compass plugins installed on your system.
require 'compass-normalize'
require 'rgbapng'
require 'toolkit'
require 'breakpoint'
require 'singularitygs'
require 'susy'
require 'sass-globbing'

##
## You probably don't need to edit anything below this.
##

# You can select your preferred output style here (:expanded, :nested, :compact
# or :compressed).
output_style = (environment == :production) ? :expanded : :nested

# To enable relative paths to assets via compass helper functions. Since Drupal
# themes can be installed in multiple locations, we don't need to worry about
# the absolute path to the theme from the server omega.
relative_assets = true

# Output source maps in development mode.
sass_options = (environment == :production) ? {} : {:sourcemap => true}

Solution

  • HTML must have sprite name / sprite folder as a class, as compass outputs to that specific class. As to why all images printed, simply because I didn't set a width/height on the specified class and the whole spritesheet was output.