rhythm 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7f7461a4a02bea1f9e5637dea6af00d51c24a86d
4
+ data.tar.gz: 329f7657a950381e73e34073254f519afbf70c91
5
+ SHA512:
6
+ metadata.gz: a06cce7d98baf803b985547eaf568991948f65466c19233375e084106335d8128d15bc56424d17474355c74a472afbae9192349a3a5a216951203042b9ecedb7
7
+ data.tar.gz: 3033c4a56f3588a9ac0bccb2f622a0356f7cb48df35316191c924132541864b258e3dd650dc6dcdbcfc2b2b0915aecdc661e79c39bf3bf59b5383761f7e81e71
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in character.gemspec
4
+ gemspec
@@ -0,0 +1,14 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rhythm (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+
10
+ PLATFORMS
11
+ ruby
12
+
13
+ DEPENDENCIES
14
+ rhythm!
@@ -0,0 +1,35 @@
1
+ # Rhythm
2
+
3
+ **Responsive typography foundation with vertical rhythm.**
4
+
5
+ Inspired by [Medium.com](https://medium.com/), based on [Typebase.css](http://devinhunt.github.io/typebase.css/) & [Normalize.css](http://necolas.github.io/normalize.css/).
6
+
7
+ Usage:
8
+
9
+ //= require normalize
10
+
11
+ @import "rhythm/typography";
12
+
13
+ $baseColor: rgba(0,0,0,0.8);
14
+ $linkColor: #222;
15
+ $baseFontFamily: 'Georgia', serif;
16
+ $headerFontFamily: 'Myriad Pro', sans-serif;
17
+ $codeFontFamily: 'Monaco', monospace;
18
+ $baseFontSize: 20;
19
+ $baseLineHeight: 1.5;
20
+ $h1: 0.33 * 7.3;
21
+ $h2: 0.33 * 4.3;
22
+ $h3: 0.33 * 3.3;
23
+
24
+ html {
25
+ @include typography( $baseColor,
26
+ $linkColor,
27
+ $baseFontFamily,
28
+ $headerFontFamily,
29
+ $codeFontFamily,
30
+ $baseFontSize,
31
+ $baseLineHeight,
32
+ $h1,
33
+ $h2,
34
+ $h3 );
35
+ }
@@ -0,0 +1,5 @@
1
+ require 'rubygems/package_task'
2
+
3
+ spec = Gem::Specification.load(Dir['*.gemspec'].first)
4
+ gem = Gem::PackageTask.new(spec)
5
+ gem.define()
@@ -0,0 +1,179 @@
1
+ /*
2
+ Rhythm Typography v0.1
3
+
4
+ Author: Alexander Kravets @ http://www.slatestudio.com
5
+
6
+ Inspired by Medium.com, based on Typebase.css & Normalize.css
7
+ - http://necolas.github.io/normalize.css/
8
+ - http://devinhunt.github.io/typebase.css/
9
+
10
+ Usage:
11
+
12
+ //= require normalize
13
+
14
+ @import "rhythm/typography";
15
+
16
+ $baseColor: rgba(0,0,0,0.8);
17
+ $linkColor: #222;
18
+ $baseFontFamily: 'Georgia', serif;
19
+ $headerFontFamily: 'Myriad Pro', sans-serif;
20
+ $codeFontFamily: 'Monaco', monospace;
21
+ $baseFontSize: 20;
22
+ $baseLineHeight: 1.5;
23
+ $h1: 0.33 * 7.3;
24
+ $h2: 0.33 * 4.3;
25
+ $h3: 0.33 * 3.3;
26
+
27
+ html {
28
+ @include typography( $baseColor,
29
+ $linkColor,
30
+ $baseFontFamily,
31
+ $headerFontFamily,
32
+ $codeFontFamily,
33
+ $baseFontSize,
34
+ $baseLineHeight,
35
+ $h1,
36
+ $h2,
37
+ $h3 );
38
+ }
39
+ */
40
+
41
+ @mixin mediumLinkUnderline($color) { color: $color;
42
+ background-clip: border-box;
43
+ background-image: linear-gradient(rgb(255, 255, 255) 50%, $color 50%);
44
+ background-position: 0 1em;
45
+ background-repeat: repeat-x;
46
+ background-size: 2px 2px;
47
+ text-decoration: none;
48
+ word-break: break-all;
49
+ }
50
+
51
+ @mixin mediumHorizontalRule($color) { position: relative;
52
+ left: 50%;
53
+ width: 4em;
54
+ margin: 2.25em 0 2.25em -2em;
55
+ border-top-style: solid;
56
+ border-top-color: $color;
57
+ border-left-width: 0px;
58
+ border-right-width: 0px;
59
+ border-bottom-width: 0px;
60
+ }
61
+
62
+ @mixin mediumUnorderedList($leading) { list-style: none;
63
+ list-style-image: none;
64
+ padding: 0;
65
+ li { margin-left: $leading;
66
+ &:before { content: '•';
67
+ display: inline-block;
68
+ position: absolute;
69
+ list-style-type: none;
70
+ list-style-image: none;
71
+ font-size: 1em;
72
+ padding: 0;
73
+ margin-left: -1em;
74
+ }
75
+ }
76
+ }
77
+
78
+ @mixin headerSize($fontSize, $baseLineHeight) {
79
+ $lineHeight: ceil(100 * $baseLineHeight * ceil($fontSize / $baseLineHeight) / $fontSize);
80
+ $margin: $lineHeight / 100;
81
+ font-size: $fontSize * 1em;
82
+ line-height: $lineHeight * 1%;
83
+ margin-top: $margin * 1em;
84
+ margin-bottom: $margin * 1em;
85
+ word-break: normal;
86
+ }
87
+
88
+ @mixin typography( $baseColor: rgba(0,0,0,0.8),
89
+ $linkColor: #222,
90
+ $baseFontFamily: serif,
91
+ $headerFontFamily: sans-serif,
92
+ $codeFontFamily: monospace,
93
+ $baseFontSize: 20,
94
+ $baseLineHeight: 1.5,
95
+ $h1: 0.33 * 7.3,
96
+ $h2: 0.33 * 4.3,
97
+ $h3: 0.33 * 3.3 ) {
98
+
99
+ $leading: $baseLineHeight * 1em;
100
+
101
+ /* Container font settings */
102
+ font-family: $baseFontFamily;
103
+ font-size: $baseFontSize * 1px;
104
+ color: $baseColor;
105
+ letter-spacing: 0.02em;
106
+
107
+ /* Copy & Lists */
108
+ p { line-height: $leading;
109
+ margin-top: $leading;
110
+ margin-bottom: $leading;
111
+ }
112
+
113
+ /* First passage after h3 */
114
+ h3 + p { margin-top: 0; }
115
+
116
+ ul, ol { margin-top: $leading;
117
+ margin-bottom: $leading;
118
+ li { line-height: $leading; }
119
+ ul, ol { margin-top: 0;
120
+ margin-bottom: 0;
121
+ }
122
+ }
123
+ ul { @include mediumUnorderedList($leading); }
124
+ blockquote { line-height: $leading;
125
+ margin-top: $leading;
126
+ margin-bottom: $leading;
127
+ font-style: italic;
128
+ text-align: center;
129
+ }
130
+
131
+ /* Headings */
132
+ h1, h2, h3 { /* Change heading typefaces here */
133
+ font-family: $headerFontFamily;
134
+ line-height: $leading;
135
+ letter-spacing: 0em;
136
+ }
137
+ h1 { @include headerSize($h1, $baseLineHeight);
138
+ margin-bottom: 0;
139
+ }
140
+ h2 { @include headerSize($h2, $baseLineHeight); }
141
+ h3 { @include headerSize($h3, $baseLineHeight);
142
+ margin-bottom: 0;
143
+ }
144
+
145
+ /* Images */
146
+ img { max-width: 100%; }
147
+
148
+ /* Links */
149
+ a { @include mediumLinkUnderline($linkColor);
150
+ }
151
+
152
+ /* Horizontal Rule */
153
+ hr { @include mediumHorizontalRule(lighten($baseColor, 80%));
154
+ }
155
+
156
+ /* Tables */
157
+ table { margin-top: $leading;
158
+ border-spacing: 0px;
159
+ border-collapse: collapse;
160
+ }
161
+ td, th { padding: 0;
162
+ line-height: $baseLineHeight * $baseFontSize - 0px;
163
+ }
164
+
165
+ /* Code blocks */
166
+ code { // Forces text to constrain to the line-height.
167
+ // Not ideal, but works.
168
+ vertical-align: bottom;
169
+ }
170
+
171
+ pre { font-family: $codeFontFamily;
172
+ font-size: .67em;
173
+ line-height: $leading;
174
+ margin-top: 0;
175
+ margin-bottom: 0;
176
+ padding: .65em 1em;
177
+ vertical-align: bottom;
178
+ }
179
+ }
@@ -0,0 +1 @@
1
+ require 'rhythm/rails'
@@ -0,0 +1,2 @@
1
+ require 'rhythm/rails/engine'
2
+ require 'rhythm/rails/version'
@@ -0,0 +1,7 @@
1
+ module Rhythm
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ isolate_namespace Rhythm::Rails
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module Rhythm
2
+ module Rails
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,20 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rhythm/rails/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "rhythm"
8
+ spec.version = Rhythm::Rails::VERSION
9
+ spec.authors = ["Alexander Kravets"]
10
+ spec.email = ["alex@slatestudio.com"]
11
+ spec.description = %q{Responsive typography foundation with vertical rhythm}
12
+ spec.summary = %q{Responsive typography foundation with vertical rhythm}
13
+ spec.homepage = "https://github.com/slate-studio/rhythm"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+ end
@@ -0,0 +1,425 @@
1
+ /*! normalize.css v3.0.1 | MIT License | git.io/normalize */
2
+
3
+ /**
4
+ * 1. Set default font family to sans-serif.
5
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
6
+ * user zoom.
7
+ */
8
+
9
+ html {
10
+ font-family: sans-serif; /* 1 */
11
+ -ms-text-size-adjust: 100%; /* 2 */
12
+ -webkit-text-size-adjust: 100%; /* 2 */
13
+ }
14
+
15
+ /**
16
+ * Remove default margin.
17
+ */
18
+
19
+ body {
20
+ margin: 0;
21
+ }
22
+
23
+ /* HTML5 display definitions
24
+ ========================================================================== */
25
+
26
+ /**
27
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
28
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
29
+ * Correct `block` display not defined for `main` in IE 11.
30
+ */
31
+
32
+ article,
33
+ aside,
34
+ details,
35
+ figcaption,
36
+ figure,
37
+ footer,
38
+ header,
39
+ hgroup,
40
+ main,
41
+ nav,
42
+ section,
43
+ summary {
44
+ display: block;
45
+ }
46
+
47
+ /**
48
+ * 1. Correct `inline-block` display not defined in IE 8/9.
49
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
50
+ */
51
+
52
+ audio,
53
+ canvas,
54
+ progress,
55
+ video {
56
+ display: inline-block; /* 1 */
57
+ vertical-align: baseline; /* 2 */
58
+ }
59
+
60
+ /**
61
+ * Prevent modern browsers from displaying `audio` without controls.
62
+ * Remove excess height in iOS 5 devices.
63
+ */
64
+
65
+ audio:not([controls]) {
66
+ display: none;
67
+ height: 0;
68
+ }
69
+
70
+ /**
71
+ * Address `[hidden]` styling not present in IE 8/9/10.
72
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
73
+ */
74
+
75
+ [hidden],
76
+ template {
77
+ display: none;
78
+ }
79
+
80
+ /* Links
81
+ ========================================================================== */
82
+
83
+ /**
84
+ * Remove the gray background color from active links in IE 10.
85
+ */
86
+
87
+ a {
88
+ background: transparent;
89
+ }
90
+
91
+ /**
92
+ * Improve readability when focused and also mouse hovered in all browsers.
93
+ */
94
+
95
+ a:active,
96
+ a:hover {
97
+ outline: 0;
98
+ }
99
+
100
+ /* Text-level semantics
101
+ ========================================================================== */
102
+
103
+ /**
104
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
105
+ */
106
+
107
+ abbr[title] {
108
+ border-bottom: 1px dotted;
109
+ }
110
+
111
+ /**
112
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
113
+ */
114
+
115
+ b,
116
+ strong {
117
+ font-weight: bold;
118
+ }
119
+
120
+ /**
121
+ * Address styling not present in Safari and Chrome.
122
+ */
123
+
124
+ dfn {
125
+ font-style: italic;
126
+ }
127
+
128
+ /**
129
+ * Address variable `h1` font-size and margin within `section` and `article`
130
+ * contexts in Firefox 4+, Safari, and Chrome.
131
+ */
132
+
133
+ h1 {
134
+ font-size: 2em;
135
+ margin: 0.67em 0;
136
+ }
137
+
138
+ /**
139
+ * Address styling not present in IE 8/9.
140
+ */
141
+
142
+ mark {
143
+ background: #ff0;
144
+ color: #000;
145
+ }
146
+
147
+ /**
148
+ * Address inconsistent and variable font size in all browsers.
149
+ */
150
+
151
+ small {
152
+ font-size: 80%;
153
+ }
154
+
155
+ /**
156
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
157
+ */
158
+
159
+ sub,
160
+ sup {
161
+ font-size: 75%;
162
+ line-height: 0;
163
+ position: relative;
164
+ vertical-align: baseline;
165
+ }
166
+
167
+ sup {
168
+ top: -0.5em;
169
+ }
170
+
171
+ sub {
172
+ bottom: -0.25em;
173
+ }
174
+
175
+ /* Embedded content
176
+ ========================================================================== */
177
+
178
+ /**
179
+ * Remove border when inside `a` element in IE 8/9/10.
180
+ */
181
+
182
+ img {
183
+ border: 0;
184
+ }
185
+
186
+ /**
187
+ * Correct overflow not hidden in IE 9/10/11.
188
+ */
189
+
190
+ svg:not(:root) {
191
+ overflow: hidden;
192
+ }
193
+
194
+ /* Grouping content
195
+ ========================================================================== */
196
+
197
+ /**
198
+ * Address margin not present in IE 8/9 and Safari.
199
+ */
200
+
201
+ figure {
202
+ margin: 1em 40px;
203
+ }
204
+
205
+ /**
206
+ * Address differences between Firefox and other browsers.
207
+ */
208
+
209
+ hr {
210
+ -moz-box-sizing: content-box;
211
+ box-sizing: content-box;
212
+ height: 0;
213
+ }
214
+
215
+ /**
216
+ * Contain overflow in all browsers.
217
+ */
218
+
219
+ pre {
220
+ overflow: auto;
221
+ }
222
+
223
+ /**
224
+ * Address odd `em`-unit font size rendering in all browsers.
225
+ */
226
+
227
+ code,
228
+ kbd,
229
+ pre,
230
+ samp {
231
+ font-family: monospace, monospace;
232
+ font-size: 1em;
233
+ }
234
+
235
+ /* Forms
236
+ ========================================================================== */
237
+
238
+ /**
239
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
240
+ * styling of `select`, unless a `border` property is set.
241
+ */
242
+
243
+ /**
244
+ * 1. Correct color not being inherited.
245
+ * Known issue: affects color of disabled elements.
246
+ * 2. Correct font properties not being inherited.
247
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
248
+ */
249
+
250
+ button,
251
+ input,
252
+ optgroup,
253
+ select,
254
+ textarea {
255
+ color: inherit; /* 1 */
256
+ font: inherit; /* 2 */
257
+ margin: 0; /* 3 */
258
+ }
259
+
260
+ /**
261
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
262
+ */
263
+
264
+ button {
265
+ overflow: visible;
266
+ }
267
+
268
+ /**
269
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
270
+ * All other form control elements do not inherit `text-transform` values.
271
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
272
+ * Correct `select` style inheritance in Firefox.
273
+ */
274
+
275
+ button,
276
+ select {
277
+ text-transform: none;
278
+ }
279
+
280
+ /**
281
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
282
+ * and `video` controls.
283
+ * 2. Correct inability to style clickable `input` types in iOS.
284
+ * 3. Improve usability and consistency of cursor style between image-type
285
+ * `input` and others.
286
+ */
287
+
288
+ button,
289
+ html input[type="button"], /* 1 */
290
+ input[type="reset"],
291
+ input[type="submit"] {
292
+ -webkit-appearance: button; /* 2 */
293
+ cursor: pointer; /* 3 */
294
+ }
295
+
296
+ /**
297
+ * Re-set default cursor for disabled elements.
298
+ */
299
+
300
+ button[disabled],
301
+ html input[disabled] {
302
+ cursor: default;
303
+ }
304
+
305
+ /**
306
+ * Remove inner padding and border in Firefox 4+.
307
+ */
308
+
309
+ button::-moz-focus-inner,
310
+ input::-moz-focus-inner {
311
+ border: 0;
312
+ padding: 0;
313
+ }
314
+
315
+ /**
316
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
317
+ * the UA stylesheet.
318
+ */
319
+
320
+ input {
321
+ line-height: normal;
322
+ }
323
+
324
+ /**
325
+ * It's recommended that you don't attempt to style these elements.
326
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
327
+ *
328
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
329
+ * 2. Remove excess padding in IE 8/9/10.
330
+ */
331
+
332
+ input[type="checkbox"],
333
+ input[type="radio"] {
334
+ box-sizing: border-box; /* 1 */
335
+ padding: 0; /* 2 */
336
+ }
337
+
338
+ /**
339
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
340
+ * `font-size` values of the `input`, it causes the cursor style of the
341
+ * decrement button to change from `default` to `text`.
342
+ */
343
+
344
+ input[type="number"]::-webkit-inner-spin-button,
345
+ input[type="number"]::-webkit-outer-spin-button {
346
+ height: auto;
347
+ }
348
+
349
+ /**
350
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
351
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
352
+ * (include `-moz` to future-proof).
353
+ */
354
+
355
+ input[type="search"] {
356
+ -webkit-appearance: textfield; /* 1 */
357
+ -moz-box-sizing: content-box;
358
+ -webkit-box-sizing: content-box; /* 2 */
359
+ box-sizing: content-box;
360
+ }
361
+
362
+ /**
363
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
364
+ * Safari (but not Chrome) clips the cancel button when the search input has
365
+ * padding (and `textfield` appearance).
366
+ */
367
+
368
+ input[type="search"]::-webkit-search-cancel-button,
369
+ input[type="search"]::-webkit-search-decoration {
370
+ -webkit-appearance: none;
371
+ }
372
+
373
+ /**
374
+ * Define consistent border, margin, and padding.
375
+ */
376
+
377
+ fieldset {
378
+ border: 1px solid #c0c0c0;
379
+ margin: 0 2px;
380
+ padding: 0.35em 0.625em 0.75em;
381
+ }
382
+
383
+ /**
384
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
385
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
386
+ */
387
+
388
+ legend {
389
+ border: 0; /* 1 */
390
+ padding: 0; /* 2 */
391
+ }
392
+
393
+ /**
394
+ * Remove default vertical scrollbar in IE 8/9/10/11.
395
+ */
396
+
397
+ textarea {
398
+ overflow: auto;
399
+ }
400
+
401
+ /**
402
+ * Don't inherit the `font-weight` (applied by a rule above).
403
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
404
+ */
405
+
406
+ optgroup {
407
+ font-weight: bold;
408
+ }
409
+
410
+ /* Tables
411
+ ========================================================================== */
412
+
413
+ /**
414
+ * Remove most spacing between table cells.
415
+ */
416
+
417
+ table {
418
+ border-collapse: collapse;
419
+ border-spacing: 0;
420
+ }
421
+
422
+ td,
423
+ th {
424
+ padding: 0;
425
+ }
metadata ADDED
@@ -0,0 +1,55 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rhythm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Kravets
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-12 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Responsive typography foundation with vertical rhythm
14
+ email:
15
+ - alex@slatestudio.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - Gemfile
21
+ - Gemfile.lock
22
+ - README.md
23
+ - Rakefile
24
+ - app/assets/stylesheets/rhythm/typography.scss
25
+ - lib/rhythm.rb
26
+ - lib/rhythm/rails.rb
27
+ - lib/rhythm/rails/engine.rb
28
+ - lib/rhythm/rails/version.rb
29
+ - rhythm.gemspec
30
+ - vendor/assets/stylesheets/normalize.css
31
+ homepage: https://github.com/slate-studio/rhythm
32
+ licenses:
33
+ - MIT
34
+ metadata: {}
35
+ post_install_message:
36
+ rdoc_options: []
37
+ require_paths:
38
+ - lib
39
+ required_ruby_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ requirements: []
50
+ rubyforge_project:
51
+ rubygems_version: 2.2.1
52
+ signing_key:
53
+ specification_version: 4
54
+ summary: Responsive typography foundation with vertical rhythm
55
+ test_files: []