ratchet_design 0.1.7 → 0.1.8

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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/ratchet/favicon.ico +0 -0
  3. data/app/assets/images/ratchet/safari-pinned-tab.svg +1 -0
  4. data/app/assets/javascripts/ratchet/core.js +2 -0
  5. data/app/assets/javascripts/ratchet/enhancement/_swap.js +71 -64
  6. data/app/assets/javascripts/ratchet/enhancement/lightbox.js +256 -0
  7. data/app/assets/javascripts/ratchet/enhancement/loader.js +4 -4
  8. data/app/assets/javascripts/ratchet/shim/classlist.js +1 -1
  9. data/app/assets/javascripts/ratchet/shim/scope.js +94 -0
  10. data/app/assets/stylesheets/ratchet/_core.scss +2 -1
  11. data/app/assets/stylesheets/ratchet/base/_button.scss +1 -1
  12. data/app/assets/stylesheets/ratchet/base/_form.scss +58 -38
  13. data/app/assets/stylesheets/ratchet/base/_text.scss +8 -8
  14. data/app/assets/stylesheets/ratchet/enhancement/_lightbox.scss +93 -0
  15. data/app/assets/stylesheets/ratchet/enhancement/_loader.scss +1 -1
  16. data/app/assets/stylesheets/ratchet/enhancement/_tooltip.scss +6 -1
  17. data/app/assets/stylesheets/ratchet/utility/_global.scss +1 -2
  18. data/app/helpers/ratchet/application_helper.rb +5 -0
  19. data/app/helpers/ratchet/form_helper.rb +140 -0
  20. data/app/views/layouts/ratchet/default.html.slim +2 -1
  21. data/app/views/shared/ratchet/_footer.html.slim +1 -1
  22. data/lib/ratchet_design/version.rb +1 -1
  23. data/lib/ratchet_design.rb +1 -0
  24. data/public/assets/ratchet/core-0.1.8.js +107 -0
  25. data/public/assets/ratchet/core-0.1.8.js.gz +0 -0
  26. data/public/assets/ratchet/core-0.1.8.map.json +1 -0
  27. data/public/assets/ratchet/{fonts-woff-0.1.7.css → fonts-woff-0.1.8.css} +0 -0
  28. data/public/assets/ratchet/{fonts-woff-0.1.7.css.gz → fonts-woff-0.1.8.css.gz} +0 -0
  29. data/public/assets/ratchet/{fonts-woff2-0.1.7.css → fonts-woff2-0.1.8.css} +0 -0
  30. data/public/assets/ratchet/{fonts-woff2-0.1.7.css.gz → fonts-woff2-0.1.8.css.gz} +0 -0
  31. metadata +42 -10
  32. data/app/assets/javascripts/ratchet/enhancement/_lightbox.js +0 -93
  33. data/public/assets/ratchet/core-0.1.7.js +0 -105
  34. data/public/assets/ratchet/core-0.1.7.js.gz +0 -0
  35. data/public/assets/ratchet/core-0.1.7.map.json +0 -1
@@ -6,18 +6,25 @@
6
6
  * i. Utility
7
7
  * ------------------------------------- */
8
8
 
9
+ // Universal text-based input variable
10
+ $text-inputs: 'textarea, input[type=url], input[type=tel], input[type=text], input[type=email], input[type=number], input[type=password]';
11
+
9
12
  // Nested labels
10
- @mixin nested-label($size: normal) {
13
+ @mixin nested-label($size: normal, $spacing: on) {
11
14
 
12
15
  // Scoped variables
13
16
  $font-size: if($size == large, 17px, 16px);
14
- $margin: if($size == large, 19px, 25px);
15
17
  $padding-y: if($size == large, 12px, 9px);
16
18
  $padding-x: if($size == large, 14px, 12px);
19
+ $margin: if($size == large, 19px, 25px);
17
20
  $distance: if($size == large, -24px, -22px);
18
21
  $scale: if($size == large, .824, .875);
19
22
  $height: if($size == large, 56px, 50px);
20
23
 
24
+ @if $spacing != on {
25
+ $margin: 0;
26
+ }
27
+
21
28
  // Active state
22
29
  %active {
23
30
  z-index: 2;
@@ -32,9 +39,9 @@
32
39
 
33
40
  // Input labels
34
41
  label {
35
- display: flex;
36
- width: 100%;
37
42
  padding: 0;
43
+ clear: both;
44
+ flex: 1 0 auto;
38
45
  background: $white;
39
46
  font-size: $font-size;
40
47
  margin-bottom: $margin;
@@ -42,8 +49,8 @@
42
49
 
43
50
  // Default active color
44
51
  :not(.valid):not(.invalid) > {
45
- input,
46
- textarea {
52
+ textarea,
53
+ #{$text-inputs} {
47
54
  &:focus + span,
48
55
  &:active + span {
49
56
  color: darken($aluminum, 10);
@@ -53,8 +60,8 @@
53
60
 
54
61
  // Validated label
55
62
  .valid > {
56
- input,
57
- textarea {
63
+ textarea,
64
+ #{$text-inputs} {
58
65
 
59
66
  // Active state
60
67
  + span {
@@ -69,15 +76,15 @@
69
76
 
70
77
  // Required active color
71
78
  &:required + span {
72
- color: $lima;
79
+ color: $apple;
73
80
  }
74
81
  }
75
82
  }
76
83
 
77
84
  // Invalidated label
78
85
  .invalid > {
79
- input,
80
- textarea {
86
+ textarea,
87
+ #{$text-inputs} {
81
88
 
82
89
  // Active state
83
90
  + span {
@@ -99,6 +106,7 @@
99
106
 
100
107
  // Select-specific styles
101
108
  select {
109
+ margin: 0;
102
110
  font-size: $font-size;
103
111
  line-height: inherit;
104
112
  height: $height;
@@ -106,18 +114,13 @@
106
114
  }
107
115
 
108
116
  // Inputs
109
- input,
110
- textarea {
111
- background: transparent;
112
- }
113
-
114
- input,
115
- select,
116
- textarea {
117
+ textarea,
118
+ #{$text-inputs} {
117
119
  z-index: 1;
118
120
  margin: 0;
119
121
  font-size: $font-size;
120
122
  line-height: inherit;
123
+ background: transparent;
121
124
  padding: $padding-y $padding-x;
122
125
 
123
126
  // Faux-placeholder labels
@@ -154,8 +157,25 @@
154
157
  }
155
158
  }
156
159
 
160
+ // Inline forms
161
+ @mixin inline-form($size: normal, $gutter: 10px) {
162
+ @include nested-label($size, off);
163
+ @include grid;
164
+
165
+ // Remove top spacing from submit button
166
+ > [type=submit] {
167
+ margin-top: 0;
168
+ }
169
+
170
+ // Leave right margin off last element
171
+ > :not(:last-child) {
172
+ margin-right: $gutter;
173
+ }
174
+
175
+ }
176
+
157
177
  %success-btn {
158
- @include button($color: $lima);
178
+ @include button($color: $apple);
159
179
  }
160
180
 
161
181
  /* ===================================== *
@@ -304,9 +324,15 @@ select {
304
324
  // Radios & checkboxes
305
325
  input[type=radio],
306
326
  input[type=checkbox] {
307
- display: none;
327
+ position: absolute;
328
+ opacity: 0;
308
329
 
309
- + span {
330
+ &:focus + .tick-label,
331
+ &:active + .tick-label {
332
+ box-shadow: 0 0 0 1px $aluminum inset;
333
+ }
334
+
335
+ + .tick-label {
310
336
  width: 20px;
311
337
  height: 20px;
312
338
  margin: 0 8px 0 0;
@@ -327,11 +353,11 @@ input[type=checkbox] {
327
353
  // Radios
328
354
  input[type=radio] {
329
355
 
330
- + span {
356
+ + .tick-label {
331
357
  border-radius: 50%;
332
358
  }
333
359
 
334
- &:checked + span {
360
+ &:checked + .tick-label {
335
361
  box-shadow: 0 0 0 8px $cerulean inset;
336
362
  }
337
363
  }
@@ -339,7 +365,7 @@ input[type=radio] {
339
365
  // Checkboxes
340
366
  input[type=checkbox] {
341
367
 
342
- + span {
368
+ + .tick-label {
343
369
  border-radius: $radius;
344
370
  position: relative;
345
371
 
@@ -358,11 +384,11 @@ input[type=checkbox] {
358
384
  }
359
385
  }
360
386
 
361
- &:checked + span {
387
+ &:checked + .tick-label {
362
388
  box-shadow: 0 0 0 10px $cerulean inset;
363
389
  }
364
390
 
365
- &:checked + span:before {
391
+ &:checked + .tick-label:before {
366
392
  transform: scale(.5) rotate(-45deg);
367
393
  }
368
394
  }
@@ -514,13 +540,7 @@ button[type=submit] {
514
540
  * ------------------------------------- */
515
541
 
516
542
  // Apply validation styles to inputs & textareas
517
- textarea,
518
- input[type=url],
519
- input[type=tel],
520
- input[type=text],
521
- input[type=email],
522
- input[type=number],
523
- input[type=password] {
543
+ textarea, #{$text-inputs} {
524
544
 
525
545
  // Strip default styling
526
546
  &:invalid {
@@ -531,13 +551,13 @@ input[type=password] {
531
551
  // Apply valid state color to required fields & adjacent labels
532
552
  &.valid:required,
533
553
  .valid &:required {
534
- color: $lima;
554
+ color: $apple;
535
555
  }
536
556
 
537
557
  // Apply valid state to required fields
538
558
  &.valid:required,
539
559
  .valid &:required {
540
- border-color: $lima;
560
+ border-color: $apple;
541
561
  }
542
562
 
543
563
  // Apply invalid state color to required fields & adjacent labels
@@ -555,7 +575,7 @@ input[type=password] {
555
575
  // Apply valid state to Chrome’s autofilled fields
556
576
  &.valid:required:-webkit-autofill,
557
577
  .valid &:required:-webkit-autofill {
558
- -webkit-text-fill-color: $lima;
578
+ -webkit-text-fill-color: $apple;
559
579
  }
560
580
 
561
581
  // Apply invalid state to Chrome’s autofilled fields
@@ -616,4 +636,4 @@ input[type=password] {
616
636
  border-color: transparent transparent $punch transparent;
617
637
  }
618
638
  }
619
- }
639
+ }
@@ -328,7 +328,7 @@ code,
328
328
  kbd,
329
329
  samp {
330
330
  font-family: $mono-font;
331
- color: $aluminum;
331
+ // color: $aluminum;
332
332
  direction: ltr;
333
333
  text-align: left;
334
334
  tab-size: 2;
@@ -365,8 +365,8 @@ pre {
365
365
  * xi. Syntax highlighting
366
366
  * ------------------------------------- */
367
367
 
368
- pre[class*=language-],
369
- code[class*=language-] {
368
+ pre[class*=lang-],
369
+ code[class*=lang-] {
370
370
  color: $aluminum;
371
371
  }
372
372
 
@@ -374,7 +374,7 @@ code[class*=language-] {
374
374
  .cm-keyword { color: $bahama; }
375
375
  .cm-atom { color: $lightning; }
376
376
  .cm-number { color: $rose; }
377
- .cm-def { color: $lima; }
377
+ .cm-def { color: $apple; }
378
378
  .cm-variable { color: $flush; }
379
379
  .cm-variable-2 { color: $orchid; }
380
380
  .cm-variable-3 { color: $flush; }
@@ -382,7 +382,7 @@ code[class*=language-] {
382
382
  .cm-operator { color: $nobel; }
383
383
  .cm-comment { color: $nobel; }
384
384
  .cm-string { color: $cerulean; }
385
- .cm-string-2 { color: $lima; }
385
+ .cm-string-2 { color: $apple; }
386
386
  .cm-meta { color: $nobel; }
387
387
  .cm-error { color: $punch; }
388
388
  .cm-qualifier { color: $nobel; }
@@ -391,7 +391,7 @@ code[class*=language-] {
391
391
  .cm-tag { color: $bahama; }
392
392
  .cm-attribute { color: $flush; }
393
393
  .cm-header { color: $cerulean; }
394
- .cm-quote { color: $lima; }
394
+ .cm-quote { color: $apple; }
395
395
  .cm-hr { color: $nobel; }
396
396
  .cm-link { color: $orchid; }
397
397
  .cm-qualifier.cm-attribute { color: $flush; }
@@ -399,11 +399,11 @@ code[class*=language-] {
399
399
  }
400
400
 
401
401
  .static-code {
402
- .cm-variable { color: $lima; }
402
+ .cm-variable { color: $apple; }
403
403
  }
404
404
 
405
405
  .cm-negative { color: $rose; }
406
- .cm-positive { color: $lima; }
406
+ .cm-positive { color: $apple; }
407
407
  .cm-header,
408
408
  .cm-strong { }
409
409
  .cm-em { }
@@ -0,0 +1,93 @@
1
+ /* ========================================================================== *
2
+ * Lightbox module
3
+ * -------------------------------------------------------------------------- */
4
+
5
+ /* ===================================== *
6
+ * a. Common
7
+ * ------------------------------------- */
8
+
9
+ // Main lightbox element
10
+ .lightbox {
11
+ @extend %hidden;
12
+ display: flex;
13
+ width: 100%;
14
+ height: 100%;
15
+ margin: 0;
16
+ align-items: center;
17
+ justify-content: center;
18
+ background: rgba(0, 0, 0, .9);
19
+ visibility: hidden; // Hidden by default
20
+ cursor: pointer;
21
+
22
+ // Container figure
23
+ figure {
24
+ position: relative;
25
+ margin: 0;
26
+ }
27
+
28
+ // Main image
29
+ img {
30
+ max-width: 90vw;
31
+ max-height: 90vh;
32
+ cursor: default;
33
+ visibility: hidden; // Hidden by default
34
+
35
+ // Make visible once loaded
36
+ &.loaded,
37
+ &.loaded + button {
38
+ visibility: visible;
39
+ }
40
+ }
41
+
42
+ // Close button
43
+ button {
44
+ position: absolute;
45
+ margin: 10px 0 0 10px;
46
+ width: 20px;
47
+ height: 20px;
48
+ appearance: none;
49
+ outline: none;
50
+ border: 0;
51
+ visibility: hidden; // Hidden by default
52
+ background: url("data:image/svg+xml,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg' fill='#FFF'%3E%3Cpath d='M2.663.005c.176.021.349.045.519.095.316.091.613.249.868.455l.184.166 10.765 10.765 10.768-10.768.187-.164c.262-.21.559-.368.882-.46.279-.079.567-.106.856-.089.228.014.456.065.671.143.257.094.498.23.712.401.578.467.922 1.186.925 1.928.001.239-.033.478-.1.707-.093.316-.249.611-.456.867l-.165.184-10.766 10.765 10.768 10.768.165.187c.224.279.388.599.477.947.078.308.097.631.055.946-.041.301-.136.593-.282.859-.113.208-.256.399-.424.566-.152.153-.324.285-.511.393-.584.337-1.296.423-1.945.235-.316-.092-.612-.25-.868-.456l-.183-.166-10.766-10.765-10.768 10.768-.186.165c-.28.224-.599.388-.947.477-.316.08-.646.098-.968.052-.293-.042-.578-.137-.838-.279-.242-.132-.462-.306-.648-.511-.16-.177-.294-.377-.398-.592-.307-.636-.328-1.387-.054-2.039.091-.218.214-.422.362-.606l.166-.183 10.765-10.766-10.765-10.765-.111-.119c-.208-.245-.372-.521-.476-.826-.204-.594-.172-1.259.087-1.832.098-.217.229-.42.385-.601.174-.201.381-.374.61-.51.279-.166.594-.278.916-.323l.353-.025.179.006z'/%3E%3C/svg%3E") 0 0 / 16px 16px no-repeat;
53
+ }
54
+ }
55
+
56
+ // Active state
57
+ .lightbox-active {
58
+
59
+ // Prevent scrolling
60
+ overflow: hidden;
61
+
62
+ // Reposition lightbox
63
+ .lightbox {
64
+ position: fixed;
65
+ left: 0;
66
+ top: 0;
67
+ z-index: 13;
68
+ visibility: visible; // Shown while active
69
+ }
70
+
71
+ // Default loader state
72
+ .loader {
73
+ z-index: 14;
74
+ }
75
+
76
+ // Loader failure state
77
+ .loader.failure {
78
+ &:before {
79
+ border-color: transparent;
80
+ background: rgba($white, .2)
81
+ }
82
+
83
+ &:after {
84
+ content: '';
85
+ background: url("data:image/svg+xml,%3Csvg viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='#FFF' d='M30.51 6.423l5.099-5.099.202-.16c.146-.09.313-.145.485-.16l.129-.004.128.011.126.026c.125.034.243.089.349.163.106.074.198.166.272.272.2.285.254.655.145.984-.041.123-.103.238-.183.339l-.086.096-35.284 35.285-.202.159c-.183.113-.398.171-.614.165-.347-.01-.676-.188-.876-.472l-.122-.227c-.047-.12-.074-.248-.078-.377-.003-.129.016-.258.056-.381.041-.122.103-.237.183-.339l.086-.096 3.989-3.989c-.337-.385-.538-.887-.538-1.424v-22.611c0-1.219.998-2.161 2.161-2.161h24.573zm3.857 26.933h-24.573l1.774-1.773h22.799c.222 0 .388-.166.333-.388v-1.884l-.166-.222-6.429-6.429c-.111-.11-.332-.11-.499 0l-2.937 2.439c-.831.72-2.106.665-2.882-.111l-1.832-1.792 1.295-1.295 1.867 1.812c.111.111.333.111.499 0l2.937-2.383c.832-.72 2.106-.665 2.882.111l5.32 5.32v-18.177l-.031-.158 1.267-1.266c.337.384.538.886.538 1.424v22.611c0 1.219-.998 2.161-2.162 2.161zm-17.556-13.234l-2.561-2.505c-.11-.111-.332-.111-.498 0l-8.202 7.703v5.875l.03.157 11.231-11.23zm1.284-1.284l10.642-10.642h-22.8c-.166 0-.332.166-.332.388v14.243l6.927-6.54c.832-.776 2.162-.776 2.993.056l2.57 2.495zm-8.089-8.465c1.101 0 1.995.894 1.995 1.996 0 1.101-.894 1.995-1.995 1.995s-1.995-.894-1.995-1.995c0-1.102.894-1.996 1.995-1.996z' /%3E%3C/svg%3E") 50% 50% / 28px 28px no-repeat;
86
+ }
87
+ }
88
+ }
89
+
90
+ // Inactive anchor links
91
+ a[data-open-lightbox='inactive'] {
92
+ cursor: default;
93
+ }
@@ -37,7 +37,7 @@
37
37
  .loader {
38
38
  font-size: 14px;
39
39
  color: $white;
40
- position: absolute;
40
+ position: fixed;
41
41
  left: 0;
42
42
  top: 145px;
43
43
  width: 100%;
@@ -34,6 +34,7 @@
34
34
  content: attr(data-tooltip);
35
35
  color: $white;
36
36
  font-size: 14px;
37
+ font-weight: 300;
37
38
  line-height: 20px;
38
39
  padding: 10px 12px;
39
40
  max-width: 100vw;
@@ -129,7 +130,11 @@ article > p:first-of-type > [data-tooltip] {
129
130
  }
130
131
 
131
132
  .tooltip-offset {
132
- @include tooltip($offset: 30px);
133
+ @include tooltip($offset: 10px);
134
+ }
135
+
136
+ .tooltip-width {
137
+ @include tooltip($width: 220px);
133
138
  }
134
139
 
135
140
  // [data-tooltip] {
@@ -19,7 +19,7 @@ $white: #FFFFFF; // White
19
19
  // Active colors
20
20
  $bahama: #006690; // Navy
21
21
  $cerulean: #0FA7DB; // Blue
22
- $lima: #71C638; // Green
22
+ $apple: #3FBE3E; // Green
23
23
  $lightning: #FCB827; // Yellow
24
24
  $flush: #FF7C00; // Orange
25
25
  $punch: #DD3340; // Red
@@ -154,7 +154,6 @@ $content-padding: vr(2); // 30px
154
154
  @for $i from first($level) through last($level) {
155
155
  #{repeat-string('> *', $i) + ','} {
156
156
  @extend %properties;
157
- opacity: 50% !important;
158
157
  }
159
158
  }
160
159
  }
@@ -1,6 +1,11 @@
1
1
  module Ratchet
2
2
  module ApplicationHelper
3
3
 
4
+ # Set custom favicon
5
+ def favicon(&block)
6
+ content_for :favicon, &block
7
+ end
8
+
4
9
  # Set custom logo
5
10
  def logo(&block)
6
11
  content_for :logo, &block
@@ -0,0 +1,140 @@
1
+ module Ratchet
2
+ module FormHelper
3
+
4
+ INPUT_OPTIONS = {
5
+ email: {
6
+ type: "email",
7
+ placeholder: "Email address",
8
+ pattern: "[^@]+@[^@]+\\.[a-zA-Z]{2,}",
9
+ data: { message: "Please enter a valid email address." }
10
+ },
11
+
12
+ password: {
13
+ type: "password",
14
+ placeholder: "Password"
15
+ },
16
+
17
+ text: {
18
+ type: "text"
19
+ },
20
+
21
+ card_number: {
22
+ type: "text",
23
+ required: true,
24
+ pattern: "[0-9 -]{13,20}",
25
+ placeholder: "Credit Card Number",
26
+ data: {
27
+ stripe: "number",
28
+ message: "Please enter a valid credit card number."
29
+ }
30
+ },
31
+
32
+ card_month: {
33
+ type: "text",
34
+ required: true,
35
+ pattern: "0[1-9]|1[012]",
36
+ placeholder: "MM",
37
+ data: {
38
+ stripe: "exp_month",
39
+ message: "Please enter a valid expiration month."
40
+ }
41
+ },
42
+
43
+ card_year: {
44
+ type: "text",
45
+ required: true,
46
+ pattern: "[0-9]{4}",
47
+ placeholder: "YYYY",
48
+ data: {
49
+ stripe: "exp_year",
50
+ message: "Please enter a valid expiration year."
51
+ }
52
+ },
53
+
54
+ card_cvc: {
55
+ type: "text",
56
+ required: true,
57
+ pattern: "[0-9]{3,4}",
58
+ data: {
59
+ stripe: "cvc",
60
+ message: "Please enter a valid security code."
61
+ }
62
+ },
63
+
64
+ select_country: {
65
+ country_options: {
66
+ include_blank: "Select a country",
67
+ priority_countries: ["US", "GB", "CA"],
68
+ },
69
+
70
+ html_options: {}
71
+ }
72
+ }
73
+
74
+ # Country select
75
+ def select_country_tag(name, options = {}, country_options = {})
76
+ country_options.reverse_merge! INPUT_OPTIONS[:select_country][:country_options]
77
+
78
+ options = INPUT_OPTIONS[:select_country][:html_options].deep_merge options
79
+
80
+ content_tag(:label) do
81
+ country_select :user, :country, country_options, options
82
+ end
83
+ end
84
+
85
+ # Email inputs
86
+ def email_input_tag(name, value = nil, options = {})
87
+ base_input_tag(name, value, options, :email)
88
+ end
89
+
90
+ # Passowrd inputs
91
+ def password_input_tag(name, value = nil, options = {})
92
+ base_input_tag(name, value, options, :password)
93
+ end
94
+
95
+ def text_input_tag(name, value = nil, options = {})
96
+ base_input_tag(name, value, options, :text)
97
+ end
98
+
99
+ def card_number_tag(name, value=nil, options={})
100
+ base_input_tag(name, value, options, :card_number)
101
+ end
102
+
103
+ def card_month_tag(name, value=nil, options={})
104
+ base_input_tag(name, value, options, :card_month)
105
+ end
106
+
107
+ def card_year_tag(name, value=nil, options={})
108
+ base_input_tag(name, value, options, :card_year)
109
+ end
110
+
111
+ def card_cvc_tag(name, value=nil, options={})
112
+ base_input_tag(name, value, options, :card_cvc)
113
+ end
114
+
115
+ private
116
+
117
+ def base_input_tag(name, value, options, type)
118
+ if value.is_a? Hash
119
+ options = value
120
+ value = nil
121
+ end
122
+
123
+ options = (INPUT_OPTIONS[type]||{}).deep_merge options
124
+
125
+ label = options.delete(:label)
126
+ tag = text_field_tag(name, value, options)
127
+
128
+ if label
129
+ options[:placeholder] = label
130
+
131
+ content_tag(:label) do
132
+ tag + content_tag(:span) { label }
133
+ end
134
+ else
135
+ tag
136
+ end
137
+
138
+ end
139
+ end
140
+ end
@@ -20,7 +20,8 @@ html
20
20
  meta name="viewport" content="width=device-width, initial-scale=1.0"
21
21
 
22
22
  / Favicon
23
- = favicon_tag sizes: "32x32"
23
+ - if content_for?(:favicon)
24
+ = yield :favicon
24
25
 
25
26
  / Ratchet core JS
26
27
  = javascript_tag "core"
@@ -1,2 +1,2 @@
1
1
  footer role="contentinfo"
2
- p © #{Time.now.year} Compose
2
+ p © #{Time.now.year} #{Site.name}
@@ -1,3 +1,3 @@
1
1
  module RatchetDesign
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -1,4 +1,5 @@
1
1
  require "cyborg"
2
+ require "country_select"
2
3
  require "ratchet_design/version"
3
4
 
4
5
  module RatchetDesign