codelation_assets 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8471ba4e0412a2eb886441917e98998382df5a70
4
- data.tar.gz: f81588591520e9f2d691a0aca6ff212be7f1c8bd
3
+ metadata.gz: 99d0048b807a011e81c8237d7ad960557745f504
4
+ data.tar.gz: c0ba29d216ecd9a2ce69a24305ae368cd2162089
5
5
  SHA512:
6
- metadata.gz: b03f53088d94d8423daea79a1c955d23c2d2e5b5d043afc281c99efc3b0cf07720e0c3480d3265ea8360b271412cf2a5c3beaa69798b2f79de115fad620cd889
7
- data.tar.gz: fe5027944440fd636ea101daba7a1248d5fe6ae1822b55be1bd979717cf6d24e4033810bddecedb3f87e012d19d04beaa17a2b28411a49951ee7fc16ccfc5016
6
+ metadata.gz: 89f802369ab7a1cced4c97fb2a1da09325ee60d022c0c10245bdc5245e2bf864038a79eb4d232443a9eb603a29a622f24926efe7348b7269bcdd2316717c0768
7
+ data.tar.gz: 4391b62d4d6b92a07e78e12407e669e321db9018cf101b4aa1246a25f0cb09f78cc84bcd7634df3151c9dd18274ee5a5d9513894496c58fa724e5a0e0f0952a6
data/README.md CHANGED
@@ -27,6 +27,75 @@ Add to `application.js`:
27
27
  //= require codelation
28
28
  ```
29
29
 
30
+ #### App Functions
31
+
32
+ The `App` object is used in Codelation's Rails projects to register components that
33
+ need to be initialized on every page and to sprinkle in JavaScript on specific pages.
34
+
35
+ ##### Registering JavaScript Components
36
+
37
+ By using `App.register('component')`, you can fire some JavaScript on every page load.
38
+
39
+ The function passed to `enter` will fire for `$(document).on('ready page:load')`, so
40
+ it will work with or without Turbolinks.
41
+
42
+ The function passed to `exit` will fire for `$(document).on('page:before-unload')`,
43
+ so it will only work with Turbolinks, but will not be needed when not using Turbolinks.
44
+
45
+ Example:
46
+
47
+ ```javascript
48
+ (function() {
49
+ "use strict"
50
+
51
+ var body, links;
52
+
53
+ App.register('component').enter(function() {
54
+ body = $('body');
55
+ links = $('a[href]:not([href^="#"]):not([target="_blank"])');
56
+
57
+ // Add 'loading' class to the body when a link is clicked,
58
+ // add add 'active' class to the clicked link.
59
+ links.click(function() {
60
+ links.removeClass('active');
61
+ body.addClass('loading');
62
+ $(this).addClass('active');
63
+ });
64
+ }).exit(function() {
65
+ // Remove the classes when the body is unloaded
66
+ body.removeClass('loading');
67
+ links.removeClass('active');
68
+ });
69
+ })();
70
+ ```
71
+
72
+ ##### Registering Per Page JavaScript Snippets
73
+
74
+ You can use `App.register('[controller-name].[action-name]')` to fire some JavaScript any time
75
+ that page is loaded and unloaded. The `enter` and `exit` functions work the same as components.
76
+
77
+ Example:
78
+
79
+ ```javascript
80
+ (function() {
81
+ "use strict"
82
+
83
+ var refreshInterval;
84
+
85
+ // This will only fire when entering and exiting the `AwesomeStatsController#index` page.
86
+ App.register('awesome-stats.index').enter(function() {
87
+ // Poll a URL for new data at a set interval
88
+ refreshInterval = setInterval(pollStats, 5000);
89
+ }).exit(function() {
90
+ // Clear the interval when the page is unloaded
91
+ clearInterval(refreshInterval);
92
+ });
93
+ })();
94
+ ```
95
+
96
+ You can also use `App.register('[controller-name]')` to fire JavaScript on all pages
97
+ for the given controller name.
98
+
30
99
  ### Sass
31
100
 
32
101
  Add to `application.scss`:
@@ -91,11 +160,62 @@ A good use case is centering an image of unknown height inside a container with
91
160
 
92
161
  ###### has-cards($columns, $margin: 0)
93
162
 
94
- TODO: Write description/usage
163
+ This mixin uses flexbox to create a cards layout like that used by Google Material Design. The
164
+ mixin is used on the container element. This will create a fixed margin between each card element
165
+ and adds padding around the outside of the cards. Useful for creating a dashboard widgets look.
166
+
167
+ Example:
168
+
169
+ ```html
170
+ <div class="dashboard">
171
+ <div class="card"><div>
172
+ <div class="card"><div>
173
+ <div class="card"><div>
174
+ <div class="card"><div>
175
+ </div>
176
+ ```
177
+
178
+ ```scss
179
+ // This will create a cards layout with two cards per row.
180
+ // There will be a fixed margin of 1em between and around the cards.
181
+ // The cards in each row will stretch to be the same height.
182
+ .dashboard {
183
+ @include has-cards(2, 1em);
184
+ background-color: #ccc;
185
+
186
+ .card {
187
+ background-color: #fff;
188
+ border-radius: 2px;
189
+ box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
190
+ }
191
+ }
192
+ ```
95
193
 
96
194
  ###### has-columns($columns, $gutter: 0)
97
195
 
98
- TODO: Write description/usage
196
+ This mixin uses flexbox to create a layout with the specified number of columns
197
+ that stretch to fill the container's height. The given gutter size will the margin
198
+ between the columns. There is no need to set a margin-right of 0 to the nth-child
199
+ or anything like that. Flexbox rules!
200
+
201
+ Example:
202
+
203
+ ```html
204
+ <div class="row">
205
+ <div class="column"><div>
206
+ <div class="column"><div>
207
+ <div class="column"><div>
208
+ </div>
209
+ ```
210
+
211
+ ```scss
212
+ // This will create a layout with three columns.
213
+ // The columns will all fill the container height.
214
+ // There will be a fixed gutter of 12px between the columns.
215
+ .row {
216
+ @include has-columns(3, 12px);
217
+ }
218
+ ```
99
219
 
100
220
  ## Contributing
101
221
 
@@ -13,7 +13,6 @@ $mobile-breakpoint: 767px !default;
13
13
 
14
14
  > * {
15
15
  @include flex(1 1 auto);
16
- margin: 0;
17
16
  width: (1 / $columns) * 85%;
18
17
 
19
18
  @if $gutter > 0 {
@@ -1,3 +1,3 @@
1
1
  module CodelationAssets
2
- VERSION = "0.1.1".freeze
2
+ VERSION = "0.1.2".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codelation_assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Pattison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-20 00:00:00.000000000 Z
11
+ date: 2016-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bourbon