css::spritemaker in action!

40
CSS::SpriteMaker in Action! London.pm Technical Meeting London, Thursday, 19 September 2013 Savio Dimatteo Perl Developer Nestoria Property Search

Upload: lokku

Post on 08-May-2015

329 views

Category:

Technology


0 download

DESCRIPTION

CSS::SpriteMaker is a Perl module that allows you to create CSS Image Sprites. A CSS Image sprite is an image containing smaller images, plus a CSS stylesheet that allows the browser to render each smaller image. In this talk I present CSS::SpriteMaker by example, covering its advanced layouts and features.

TRANSCRIPT

Page 1: CSS::SpriteMaker in action!

CSS::SpriteMakerin Action!

London.pm Technical MeetingLondon, Thursday, 19 September 2013

Savio DimatteoPerl DeveloperNestoria Property Search

Page 2: CSS::SpriteMaker in action!

What is a CSS Image Sprite?

image containing smaller images

+CSS rules to render each smaller image

Page 3: CSS::SpriteMaker in action!

Example of Image Sprite

chess.png

Page 4: CSS::SpriteMaker in action!

Example of associated CSS rule set.white-king-ico,.chess-ico,.white-knight-ico,.white-queen-ico,.chess-board-ico,.white-pawn-ico,.black-queen-2d-ico,.white-bishop-ico,.black-king-2d-ico,.white-castle-ico { background-image: url('chess.png'); background-repeat: no-repeat; }

.white-king-ico { background-position: 0px 0px; width: 256px; height: 256px; }

.chess-ico { background-position: -256px 0px; width: 256px; height: 256px; }

.white-knight-ico { background-position: 0px -256px; width: 256px; height: 256px; }

.white-queen-ico { background-position: -256px -256px; width: 256px; height: 256px; }

.chess-board-ico { background-position: -512px 0px; width: 256px; height: 256px; }

.white-pawn-ico { background-position: -512px -256px; width: 256px; height: 256px; }

.black-queen-2d-ico { background-position: 0px -512px; width: 256px; height: 256px; }

.white-bishop-ico { background-position: -256px -512px; width: 256px; height: 256px; }

.black-king-2d-ico { background-position: -512px -512px; width: 256px; height: 256px; }

.white-castle-ico { background-position: -768px 0px; width: 256px; height: 256px; }

style.css

Page 5: CSS::SpriteMaker in action!

<html> <head> <title>CSS::SpriteMaker Technique</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="white-knight-ico" /> </body></html>

Example of technique

Page 6: CSS::SpriteMaker in action!

<html> <head> <title>CSS::SpriteMaker Technique</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <img src="spacer.png" class="white-knight-ico" /> </body></html>

Example of technique

Page 7: CSS::SpriteMaker in action!

Making a Sprite

● Online batch generators

● WYSIWYG online tools

● Command-line tools written in

Java/Ruby/Python… and only recently in

Perl!

○ CSS::SpriteBuilder

Page 8: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 9: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 10: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 11: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 12: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 13: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 14: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 15: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 16: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 17: CSS::SpriteMaker in action!

CSS::SpriteMaker in Action

Page 18: CSS::SpriteMaker in action!

Remove Padding

Page 19: CSS::SpriteMaker in action!

Remove Padding

Page 20: CSS::SpriteMaker in action!

Group icons: same kind same row

Page 21: CSS::SpriteMaker in action!

Group icons: same kind same row

Page 22: CSS::SpriteMaker in action!

Group icons: Nestoria map markers

Page 23: CSS::SpriteMaker in action!

Group icons: two icons per row

Page 24: CSS::SpriteMaker in action!

Group icons: two icons per row

Page 25: CSS::SpriteMaker in action!

Advanced Layouts

+

=

?

Page 26: CSS::SpriteMaker in action!

Advanced Layouts

Page 27: CSS::SpriteMaker in action!

Advanced Layouts

Page 28: CSS::SpriteMaker in action!

Advanced Layouts

Page 29: CSS::SpriteMaker in action!

Advanced Layouts

Page 30: CSS::SpriteMaker in action!

Advanced Layouts

Page 31: CSS::SpriteMaker in action!

Advanced Layouts

Page 32: CSS::SpriteMaker in action!

Advanced Layouts - Packed

Page 33: CSS::SpriteMaker in action!

Advanced Layouts - FixedDimension

Page 34: CSS::SpriteMaker in action!

Advanced Layouts - DirectoryBased

Page 35: CSS::SpriteMaker in action!

CSS Class Generation

● based on file name of input image

○ no characters collide with CSS syntax

● collisions

○ input image file name: “alice.png”

○ input image file name: “alice.gif”

○ result: .alice .alice-1

Page 36: CSS::SpriteMaker in action!

CSS Class Names Generation

Page 37: CSS::SpriteMaker in action!

CSS Sprite Viewer

Page 38: CSS::SpriteMaker in action!

CSS Sprite Viewer

Page 39: CSS::SpriteMaker in action!

Perl Modules Used

● File::Find

○ discover input images

● Module::Pluggable

○ for pluggable layouts

● Image::Magick

○ read/write/identify images

Page 40: CSS::SpriteMaker in action!

Questions?● twitter.com/darksmo● www.savio.dimatteo.it/talks● github.com/darksmo● github.com/lokku

London.pm Technical MeetingLondon, Thursday, 19 September 2013

CSS::SpriteMakerin Action!

We’r

e hiri

ng!

www.lokk

u.com

/jobs