modular-scale 0.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.mdown +84 -0
- data/lib/modular-scale.rb +9 -0
- data/stylesheets/_modular-scale.sass +56 -0
- metadata +74 -0
data/README.mdown
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
# Sassy Modular Scale
|
2
|
+
#### Put down the calculator and let Sass do the work.
|
3
|
+
|
4
|
+
# Usage and Installation
|
5
|
+
|
6
|
+
Sassy Modular Scale is written in Sass and requires Sass to be used. Visit [sass-lang.com](http://sass-lang.com) to learn more and install.
|
7
|
+
|
8
|
+
* Copy either `stylesheets/_modular-scale.sass` or `stylesheets/_modular-scale.scss` into your project
|
9
|
+
* Import the file into your Sass stylesheet to access the mixins and functions
|
10
|
+
|
11
|
+
Sassy Modular Scale can be used as a function, mixin or a mixin that generates a range of classes to `@extend`.
|
12
|
+
|
13
|
+
Examples using the Sass syntax:
|
14
|
+
|
15
|
+
// Use as a function. Fill in the multiple, base-size, and ratio
|
16
|
+
height: modular-scale(7, 14px, $golden)
|
17
|
+
|
18
|
+
// Use as a mixin. Fill in the property, multiple, base-size, and ratio
|
19
|
+
+modular-scale(line-height, 1, 14px, $golden)
|
20
|
+
|
21
|
+
// This method will generate a range of classes to `@extend`
|
22
|
+
+modular-scale-classes(6)
|
23
|
+
|
24
|
+
[role="main"]
|
25
|
+
h1
|
26
|
+
@extend .ms-2
|
27
|
+
h2
|
28
|
+
@extend .ms-1
|
29
|
+
h3
|
30
|
+
@extend .ms-0
|
31
|
+
|
32
|
+
Examples using the SCSS syntax:
|
33
|
+
|
34
|
+
// Use as a function. Fill in the multiple, base-size, and ratio
|
35
|
+
height: modular-scale(7, 14px, $golden);
|
36
|
+
|
37
|
+
// Use as a mixin. Fill in the property, multiple, base-size, and ratio
|
38
|
+
@include modular-scale(line-height, 1, 14px, $golden);
|
39
|
+
|
40
|
+
// This method will generate a range of classes to `@extend`
|
41
|
+
@ionclude modular-scale-classes(6);
|
42
|
+
|
43
|
+
[role="main"] {
|
44
|
+
h1 { @extend .ms-2; }
|
45
|
+
h2 { @extend .ms-1; }
|
46
|
+
h3 { @extend .ms-0; }
|
47
|
+
}
|
48
|
+
|
49
|
+
# Ratios
|
50
|
+
|
51
|
+
Below is a list of Ratios to choose from. By default, the variable `$ratio` is set to `$golden`.
|
52
|
+
|
53
|
+
* $golden: 1.618
|
54
|
+
* $octave: 2 / 1
|
55
|
+
* $major-seventh: 15 / 8
|
56
|
+
* $minor-seventh: 16 / 9
|
57
|
+
* $major-sixth: 5 / 3
|
58
|
+
* $minor-sixth: 8 / 5
|
59
|
+
* $fifth: 3 / 2
|
60
|
+
* $fourth: 4 / 3
|
61
|
+
* $major-third: 5 / 4
|
62
|
+
* $minor-third: 6 / 5
|
63
|
+
* $major-second: 9 / 8
|
64
|
+
* $minor-second: 16 / 15
|
65
|
+
|
66
|
+
# Credits
|
67
|
+
|
68
|
+
#### Sass mixin by Scott Kellum
|
69
|
+
|
70
|
+
* [https://github.com/scottkellum/modular-scale](https://github.com/scottkellum/modular-scale)
|
71
|
+
* [@scottkellum](http://twitter.com/scottkellum)
|
72
|
+
|
73
|
+
#### Adapted from modularscale.com by Tim Brown
|
74
|
+
|
75
|
+
* [http://modularscale.com/](http://modularscale.com/)
|
76
|
+
* [@nicewebtype](http://twitter.com/nicewebtype)
|
77
|
+
|
78
|
+
#### Related link:
|
79
|
+
|
80
|
+
* [http://alistapart.com/articles/more-meaningful-typography/](http://alistapart.com/articles/more-meaningful-typography/)
|
81
|
+
|
82
|
+
#### Additional credit to Robert Bringhurst
|
83
|
+
|
84
|
+
* The Elements of Typographic Style (Chapter 8: Shaping the page)
|
@@ -0,0 +1,56 @@
|
|
1
|
+
// Ratios
|
2
|
+
$golden: 1.618
|
3
|
+
$octave: (2 / 1)
|
4
|
+
$major-seventh: (15 / 8)
|
5
|
+
$minor-seventh: (16 / 9)
|
6
|
+
$major-sixth: (5 / 3)
|
7
|
+
$minor-sixth: (8 / 5)
|
8
|
+
$fifth: (3 / 2)
|
9
|
+
$fourth: (4 / 3)
|
10
|
+
$major-third: (5 / 4)
|
11
|
+
$minor-third: (6 / 5)
|
12
|
+
$major-second: (9 / 8)
|
13
|
+
$minor-second: (16 / 15)
|
14
|
+
|
15
|
+
// Defaults
|
16
|
+
$ratio: $golden !default
|
17
|
+
$base-size: 12px !default
|
18
|
+
$property: font-size !default
|
19
|
+
$class-slug: ms !default
|
20
|
+
|
21
|
+
// Modular Scale function
|
22
|
+
@function modular-scale($multiple, $base-size, $ratio)
|
23
|
+
|
24
|
+
// On init, $modular-scale equals the default value of $base-size or the value passed to the function
|
25
|
+
$modular-scale: $base-size
|
26
|
+
|
27
|
+
// If $multiple is a positive integer (up the scale)
|
28
|
+
@if $multiple > 0
|
29
|
+
@for $i from 1 through $multiple
|
30
|
+
$modular-scale: $modular-scale * $ratio
|
31
|
+
|
32
|
+
// If $multiple is a negative integer (down the scale)
|
33
|
+
@if $multiple < 0
|
34
|
+
@for $i from 1 through ($multiple * -1)
|
35
|
+
$modular-scale: $modular-scale / $ratio
|
36
|
+
|
37
|
+
// Return the new or unchanged value of $modular-scale
|
38
|
+
@return $modular-scale
|
39
|
+
|
40
|
+
// Shortcut
|
41
|
+
@function ms($multiple, $base-size, $ratio)
|
42
|
+
// Return the value from the Modular Scale function
|
43
|
+
@return modular-scale($multiple, $base-size, $ratio)
|
44
|
+
|
45
|
+
// Mixin
|
46
|
+
=modular-scale($property, $multiple, $base-size, $ratio)
|
47
|
+
// Print the $property and return the value from the Modular Scale function
|
48
|
+
#{$property}: modular-scale($multiple, $base-size, $ratio)
|
49
|
+
|
50
|
+
// Classes Mixin
|
51
|
+
=modular-scale-classes($multiple, $property)
|
52
|
+
|
53
|
+
// Loop from 0 through the value of $multiple and generate a range of classes
|
54
|
+
@for $i from 0 through $multiple
|
55
|
+
.#{$class-slug}-#{$i}
|
56
|
+
+modular-scale($property, $i)
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: modular-scale
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Scott Kellum
|
9
|
+
- Adam Stacoviak
|
10
|
+
- Mason Wendell
|
11
|
+
autorequire:
|
12
|
+
bindir: bin
|
13
|
+
cert_chain: []
|
14
|
+
|
15
|
+
date: 2011-08-14 00:00:00 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: compass
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.11.5
|
25
|
+
type: :runtime
|
26
|
+
prerelease: false
|
27
|
+
version_requirements: *id001
|
28
|
+
description: Modular Scale calculates the incremental values of the modular scale.
|
29
|
+
email:
|
30
|
+
- scott@treesaver.net
|
31
|
+
- adam@stacoviak.com
|
32
|
+
- mason@zivtech.com
|
33
|
+
executables: []
|
34
|
+
|
35
|
+
extensions: []
|
36
|
+
|
37
|
+
extra_rdoc_files: []
|
38
|
+
|
39
|
+
files:
|
40
|
+
- README.mdown
|
41
|
+
- lib/modular-scale.rb
|
42
|
+
- stylesheets/_modular-scale.sass
|
43
|
+
homepage: https://github.com/scottkellum/modular-scale
|
44
|
+
licenses: []
|
45
|
+
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: -2151708732276106384
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 1.3.6
|
66
|
+
requirements: []
|
67
|
+
|
68
|
+
rubyforge_project:
|
69
|
+
rubygems_version: 1.8.7
|
70
|
+
signing_key:
|
71
|
+
specification_version: 3
|
72
|
+
summary: Modular Scale calculates the incremental values of the modular scale in proportion to a set size and ratio. Inspired by and adapted from Tim Brown's modularscale.com.
|
73
|
+
test_files: []
|
74
|
+
|