sassy_noise 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ Sassy noise
2
+ ===========
3
+
4
+ A Sass port of Noisy JS (https://github.com/DanielRapp/Noisy) for generating
5
+ noise background images as base64 data URIs.
6
+
7
+ Based on work of @philippbosch & @aaronrussell.
8
+
9
+ No templates?
10
+ =============
11
+
12
+ I've omitted the project template because probably no-one wants to build a
13
+ project based on noise. I might add another pattern later.
14
+
15
+ Basic usage
16
+ ===========
17
+
18
+ In your config.rb etc:
19
+
20
+ require "sassy_noise"
21
+
22
+ In your .scss:
23
+
24
+ // Default values
25
+ // $bg-noise-intensity-default: 0.5;
26
+ // $bg-noise-opacity-default: 0.08;
27
+ // $bg-noise-size-default: 200;
28
+ // $bg-noise-mono-default: false;
29
+
30
+ @import "sassy_noise";
31
+ // Example usage
32
+ body {
33
+ @include bg-noise();
34
+ }
35
+ // Monochrome example
36
+ body {
37
+ @include bg-noise($mono: true);
38
+ }
39
+
@@ -0,0 +1,44 @@
1
+ # -----------------------------------------------
2
+ # Sass implementation of the Noisy jquery plugin:
3
+ # https://github.com/DanielRapp/Noisy
4
+ # by @philippbosch
5
+ # https://gist.github.com/1021332
6
+ # -----------------------------------------------
7
+
8
+ module Sass::Script::Functions
9
+ def background_noise(kwargs = {})
10
+ opts = {}
11
+ Sass::Util.map_hash({
12
+ "intensity" => [0..1, "", :Number, Sass::Script::Number.new(0.5) ],
13
+ "opacity" => [0..1, "", :Number, Sass::Script::Number.new(0.08)],
14
+ "size" => [1..512, "px", :Number, Sass::Script::Number.new(200) ],
15
+ "monochrome" => [[true, false], "", :Bool, Sass::Script::Bool.new(false) ]
16
+ }) do |name, (range, units, type, default)|
17
+
18
+ if val = kwargs.delete(name)
19
+ assert_type val, type, name
20
+ if range && !range.include?(val.value)
21
+ raise ArgumentError.new("$#{name}: Amount #{val} must be between #{range.first}#{units} and #{range.last}#{units}")
22
+ end
23
+ else
24
+ val = default
25
+ end
26
+ opts[name] = val
27
+ end
28
+
29
+ image = ChunkyPNG::Image.new(opts["size"].to_i, opts["size"].to_i)
30
+
31
+ for i in (0..(opts["intensity"].to_s.to_f * (opts["size"].to_i**2)))
32
+ x = rand(opts["size"].to_i)
33
+ y = rand(opts["size"].to_i)
34
+ r = rand(255)
35
+ a = rand(255 * opts["opacity"].to_s.to_f)
36
+ color = opts["monochrome"] ? ChunkyPNG::Color.rgba(r, r, r, a) : ChunkyPNG::Color.rgba(r, rand(255), rand(255), a)
37
+ image.set_pixel(x, y, color)
38
+ end
39
+
40
+ data = Base64.encode64(image.to_blob).gsub("\n", "")
41
+ Sass::Script::String.new("url('data:image/png;base64,#{data}')")
42
+ end
43
+ declare :background_noise, [], :var_kwargs => true
44
+ end
@@ -0,0 +1,7 @@
1
+ require 'compass'
2
+ require "chunky_png"
3
+ require "base64"
4
+ require File.join(File.dirname(__FILE__), 'sassy_noise', 'sass_extensions')
5
+
6
+ extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
7
+ Compass::Frameworks.register('my_extension', :path => extension_path)
@@ -0,0 +1,10 @@
1
+ $sassy-noise-intensity-default: 0.5 !default;
2
+ $sassy-noise-opacity-default: 0.08 !default;
3
+ $sassy-noise-size-default: 200 !default;
4
+ $sassy-noise-mono-default: false !default;
5
+
6
+ ._sassy_noise_repeat {
7
+ background-repeat: repeat;
8
+ }
9
+
10
+ @import "sassy_noise/_sassy_noise";
@@ -0,0 +1,14 @@
1
+ @mixin sassy-noise(
2
+ $intensity: $sassy-noise-intensity-default,
3
+ $opacity: $sassy-noise-opacity-default,
4
+ $size: $sassy-noise-size-default,
5
+ $mono: $sassy-noise-mono-default
6
+ ) {
7
+ background-image: background_noise(
8
+ $intensity: $intensity,
9
+ $opacity: $opacity,
10
+ $size: $size,
11
+ $mono: $mono
12
+ );
13
+ @extend ._sassy_noise_repeat;
14
+ }
@@ -0,0 +1,28 @@
1
+ description "A Sass port of the Noisy JS plugin as a Compass extension"
2
+
3
+ help %Q{
4
+ sassy_noise
5
+
6
+ A Sass port of the Noisy JS plugin as a Compass extension
7
+ Based on work of @philippbosch & @aaronrussell
8
+
9
+ Usage:
10
+
11
+ @import "sassy_noise";
12
+ body {@include sassy_noise();}
13
+
14
+ More info from Github: https://github.com/antsa/sassy_noise
15
+
16
+ }
17
+
18
+ welcome_message %Q{
19
+ sassy_noise
20
+
21
+ Usage:
22
+
23
+ @import "sassy_noise";
24
+ body {@include sassy_noise();}
25
+
26
+ More info from Github: https://github.com/antsa/sassy_noise
27
+
28
+ }
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sassy_noise
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Antti Salonen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-09 00:00:00.000000000 +03:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: compass
17
+ requirement: &2156207300 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2156207300
26
+ - !ruby/object:Gem::Dependency
27
+ name: chunky_png
28
+ requirement: &2156206860 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *2156206860
37
+ description: a sass port of the noisy js plugin as a compass extension that creates
38
+ backgrond noise images as base64 data URIs
39
+ email: salosen.antti@gmail.com
40
+ executables: []
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - README.md
45
+ - lib/sassy_noise/sass_extensions.rb
46
+ - lib/sassy_noise.rb
47
+ - stylesheets/_sassy_noise.scss
48
+ - stylesheets/sassy_noise/_sassy_noise.scss
49
+ - templates/project/manifest.rb
50
+ has_rdoc: true
51
+ homepage: https://github.com/antsa/sassy_noise
52
+ licenses: []
53
+ post_install_message:
54
+ rdoc_options: []
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ requirements: []
70
+ rubyforge_project:
71
+ rubygems_version: 1.6.2
72
+ signing_key:
73
+ specification_version: 3
74
+ summary: a sass port of the noisy js plugin as a compass extension
75
+ test_files: []