ratchet_design 0.1.12 → 0.1.13

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/ratchet/base/form.js +9 -3
  3. data/app/assets/javascripts/ratchet/base/sync-input-value.js +9 -18
  4. data/app/assets/javascripts/ratchet/core.js +9 -3
  5. data/app/assets/javascripts/ratchet/enhancement/lightbox.js +6 -6
  6. data/app/assets/javascripts/ratchet/enhancement/mapbox.js +48 -0
  7. data/app/assets/stylesheets/ratchet/_core.scss +4 -2
  8. data/app/assets/stylesheets/ratchet/base/_button.scss +15 -14
  9. data/app/assets/stylesheets/ratchet/base/_document.scss +30 -66
  10. data/app/assets/stylesheets/ratchet/base/_form.scss +162 -529
  11. data/app/assets/stylesheets/ratchet/base/_label-placeholder.scss +97 -0
  12. data/app/assets/stylesheets/ratchet/base/_media.scss +1 -1
  13. data/app/assets/stylesheets/ratchet/base/_multistep-form.scss +65 -11
  14. data/app/assets/stylesheets/ratchet/base/_section.scss +284 -0
  15. data/app/assets/stylesheets/ratchet/base/_table.scss +4 -4
  16. data/app/assets/stylesheets/ratchet/base/_text.scss +50 -45
  17. data/app/assets/stylesheets/ratchet/base/_validation.scss +83 -0
  18. data/app/assets/stylesheets/ratchet/enhancement/_hero.scss +39 -39
  19. data/app/assets/stylesheets/ratchet/utility/_color.scss +135 -0
  20. data/app/assets/stylesheets/ratchet/utility/_global.scss +21 -40
  21. data/app/assets/stylesheets/ratchet/utility/_loader.scss +1 -1
  22. data/app/helpers/ratchet/application_helper.rb +16 -10
  23. data/app/helpers/ratchet/form_helper.rb +302 -18
  24. data/app/views/layouts/ratchet/default.html.slim +2 -2
  25. data/app/views/shared/ratchet/_defs.html.slim +67 -0
  26. data/app/views/shared/ratchet/_footer.html.slim +6 -0
  27. data/app/views/shared/ratchet/_header.html.slim +5 -0
  28. data/app/views/shared/ratchet/_icons.html.slim +53 -6
  29. data/lib/ratchet_design/version.rb +1 -1
  30. data/public/{core-0.1.12.js → core-0.1.13.js} +66 -66
  31. data/public/core-0.1.13.js.gz +0 -0
  32. data/public/core-0.1.13.map.json +1 -0
  33. data/public/{fonts-woff-0.1.12.css → fonts-woff-0.1.13.css} +0 -0
  34. data/public/{fonts-woff-0.1.12.css.gz → fonts-woff-0.1.13.css.gz} +0 -0
  35. data/public/{fonts-woff2-0.1.12.css → fonts-woff2-0.1.13.css} +0 -0
  36. data/public/{fonts-woff2-0.1.12.css.gz → fonts-woff2-0.1.13.css.gz} +0 -0
  37. metadata +36 -32
  38. data/app/assets/javascripts/ratchet/utility/loader.js +0 -84
  39. data/app/assets/stylesheets/ratchet/enhancement/_contrast-section.scss +0 -22
  40. data/public/core-0.1.12.js.gz +0 -0
  41. data/public/core-0.1.12.map.json +0 -1
@@ -1,11 +1,13 @@
1
1
  module Ratchet
2
2
  module FormHelper
3
-
4
3
  INPUT_OPTIONS = {
5
4
  email: {
6
5
  type: "email",
7
6
  placeholder: "Email address",
8
7
  pattern: "[^@]+@[^@]+\\.[a-zA-Z]{2,}",
8
+ autocorrect: "off",
9
+ autocapitalize: "off",
10
+ spellcheck: "false",
9
11
  data: { message: "Please enter a valid email address." }
10
12
  },
11
13
 
@@ -18,6 +20,20 @@ module Ratchet
18
20
  type: "text"
19
21
  },
20
22
 
23
+ tel: {
24
+ type: "tel",
25
+ placeholder: "Phone number"
26
+ },
27
+
28
+ url: {
29
+ type: "text",
30
+ placeholder: "Web address",
31
+ autocorrect: "off",
32
+ autocapitalize: "off",
33
+ spellcheck: "false",
34
+ pattern: ".+\\.[a-zA-Z]{2,}"
35
+ },
36
+
21
37
  card_number: {
22
38
  type: "text",
23
39
  required: true,
@@ -55,6 +71,7 @@ module Ratchet
55
71
  type: "text",
56
72
  required: true,
57
73
  pattern: "[0-9]{3,4}",
74
+ placeholder: "CVC",
58
75
  data: {
59
76
  stripe: "cvc",
60
77
  message: "Please enter a valid security code."
@@ -62,6 +79,7 @@ module Ratchet
62
79
  },
63
80
 
64
81
  select_country: {
82
+ type: "select",
65
83
  country_options: {
66
84
  include_blank: "Select a country",
67
85
  priority_countries: ["US", "GB", "CA"],
@@ -71,70 +89,336 @@ module Ratchet
71
89
  }
72
90
  }
73
91
 
92
+ def table_form_for(record, options = {}, &block)
93
+ form_for record, options do |f|
94
+ table_form_tag f, &block
95
+ end
96
+ end
97
+
98
+ def table_form_tag(form = nil)
99
+ form.style = 'table' if form
100
+ content_tag :div, class: ['table', 'table-form'] do
101
+ yield form if block_given?
102
+ end
103
+ end
104
+
105
+ def stacked_form_for(record, options = {}, &block)
106
+ form_for record, options do |f|
107
+ stacked_form_tag f, &block
108
+ end
109
+ end
110
+
111
+ def stacked_form_tag(form = nil)
112
+ form.style = 'stacked' if form
113
+ content_tag :div, class: 'stacked-form' do
114
+ yield form if block_given?
115
+ end
116
+ end
117
+
118
+ def slider_input_tag(name, options={})
119
+ options = options.stringify_keys
120
+ classnames = options.delete('class') || ''
121
+
122
+ if label = options.delete('label')
123
+ label = content_tag(:span, class: 'label-text') { label }
124
+ end
125
+
126
+ data = options['data'] || {}
127
+ data['input'] ||= name
128
+
129
+ if options['position_label']
130
+ data['position_label'] = options['position_label']
131
+ end
132
+
133
+ # Set values (and max based on values size)
134
+ if values = options['values']
135
+ data['values'] = values.join(',')
136
+ options['max'] ||= values.size - 1
137
+ end
138
+
139
+ # Support legacy option
140
+ options['labels'] ||= options['label']
141
+
142
+ if labels = options['labels']
143
+ if labels.is_a?(Array)
144
+ data['label'] = labels.join(';')
145
+ options['max'] ||= labels.size - 1
146
+ elsif labels.is_a?(Hash)
147
+ labels.each do |label, value|
148
+ data['label-'+dasherize(label.to_s.downcase)] = value.join(';')
149
+ options['max'] ||= value.size - 1
150
+ end
151
+ end
152
+ end
153
+
154
+ if labels == false
155
+ data['label'] = 'false'
156
+ end
157
+
158
+ if labels = options['external_labels']
159
+ if labels.is_a?(Hash)
160
+ labels.each do |label, value|
161
+ data['external-label-'+dasherize(label.to_s.downcase)] = value.join(';')
162
+ end
163
+ end
164
+ end
165
+
166
+ if before = options['before']
167
+ if before.is_a?(String)
168
+ data['before-label'] = before
169
+ else
170
+ before.each do |key, value|
171
+ data["before-label-#{key}"] = value
172
+ end
173
+ end
174
+ end
175
+
176
+ if mark = options['mark']
177
+ data['mark'] = mark.join(',')
178
+ end
179
+
180
+ if after = options['after']
181
+ if after.is_a?(String)
182
+ data['after-label'] = after
183
+ else
184
+ after.each do |key, value|
185
+ data["after-label-#{key}"] = value
186
+ end
187
+ end
188
+ end
189
+
190
+ if line_labels = options['line_labels']
191
+ data['line_labels'] = []
192
+ line_labels.each do |k, v|
193
+ data['line_labels'] << "#{k}:#{v}"
194
+ end
195
+ data['line_labels'] = data['line_labels'].join(';')
196
+ end
197
+
198
+ options['value'] ||= options['min'] || 0
199
+
200
+ html_options = {"class" => classnames, "type" => "range", "min" => options['min'], "max" => options['max'], "value" => options['value'] }.update('data' => data)
201
+
202
+ content_tag(:label, class: 'range-label') {
203
+ concat label if label
204
+ concat tag :input, html_options
205
+ }
206
+ end
207
+ alias :range_input_tag :slider_input_tag
208
+
74
209
  # Country select
75
210
  def select_country_tag(name, options = {}, country_options = {})
76
211
  country_options.reverse_merge! INPUT_OPTIONS[:select_country][:country_options]
77
212
 
78
213
  options = INPUT_OPTIONS[:select_country][:html_options].deep_merge options
214
+ options[:class] ||= ' '
215
+ options[:class] += " #{label_class(:select)}"
79
216
 
80
- content_tag(:label) do
217
+ content_tag(:label, class: options.delete(:class) ) do
81
218
  country_select :user, :country, country_options, options
82
219
  end
83
220
  end
84
221
 
85
222
  # Email inputs
86
223
  def email_input_tag(name, value = nil, options = {})
87
- base_input_tag(name, value, options, :email)
224
+ input_tag(:email, name, value, options)
88
225
  end
89
226
 
90
227
  # Passowrd inputs
91
228
  def password_input_tag(name, value = nil, options = {})
92
- base_input_tag(name, value, options, :password)
229
+ input_tag(:password, name, value, options)
93
230
  end
94
231
 
95
232
  def text_input_tag(name, value = nil, options = {})
96
- base_input_tag(name, value, options, :text)
233
+ input_tag(:text, name, value, options)
234
+ end
235
+
236
+ def url_input_tag(name, value = nil, options = {})
237
+ input_tag(:url, name, value, options)
238
+ end
239
+
240
+ def tel_input_tag(name, value = nil, options = {})
241
+ input_tag(:tel, name, value, options)
242
+ end
243
+
244
+ def textarea_tag(name, value = nil, options = {}, &block)
245
+ input_tag(:textarea, name, value, options, &block)
246
+ end
247
+
248
+ def number_input_tag(name, value = nil, options = {})
249
+ input_tag(:number, name, value, options)
250
+ end
251
+
252
+ def search_input_tag(name, value = nil, options = {})
253
+ input_tag(:search, name, value, options)
97
254
  end
98
255
 
99
256
  def card_number_tag(name, value=nil, options={})
100
- base_input_tag(name, value, options, :card_number)
257
+ input_tag(:card_number, name, value, options)
101
258
  end
102
259
 
103
260
  def card_month_tag(name, value=nil, options={})
104
- base_input_tag(name, value, options, :card_month)
261
+ input_tag(:card_month, name, value, options)
105
262
  end
106
263
 
107
264
  def card_year_tag(name, value=nil, options={})
108
- base_input_tag(name, value, options, :card_year)
265
+ input_tag(:card_year, name, value, options)
109
266
  end
110
267
 
111
268
  def card_cvc_tag(name, value=nil, options={})
112
- base_input_tag(name, value, options, :card_cvc)
269
+ input_tag(:card_cvc, name, value, options)
270
+ end
271
+
272
+ def radio_button_input_tag(name, value, checked = false, options = {})
273
+
274
+ if checked.is_a? Hash
275
+ options = checked
276
+ checked = false
277
+ end
278
+
279
+ options[:type] = :radio
280
+
281
+ tick_wrapper( name, options ) do
282
+ radio_button_tag(name, value, checked, options)
283
+ end
284
+
285
+ end
286
+
287
+ def checkbox_input_tag(name, checked = false, options = {})
288
+ value = true
289
+
290
+ if checked.is_a? Hash
291
+ options = checked
292
+ checked = false
293
+ end
294
+
295
+ options[:type] = :checkbox
296
+
297
+ tick_wrapper( name, options ) do
298
+ options.delete(:class)
299
+ concat tag :input, name: name, type: :hidden, value: false
300
+ concat check_box_tag(name, value, checked, options)
301
+ end
302
+ end
303
+
304
+ def select_input_tag(name, option_tags=nil, options={}, &block)
305
+ if option_tags.is_a? Hash
306
+ options = option_tags
307
+ option_tags = nil
308
+ end
309
+
310
+ options[:label] ||= options.delete(:label_placeholder)
311
+
312
+ option_tags ||= extract_block(&block) if block_given?
313
+
314
+ input_tag(:select, name, option_tags.html_safe, options)
315
+ end
316
+
317
+ def switch_input_tag(name, checked = false, options = {})
318
+
319
+ if checked.is_a? Hash
320
+ options = checked
321
+ checked = false
322
+ end
323
+
324
+ if label_text = options.delete(:label)
325
+ label_text = content_tag(:span, class: 'label-text') { label_text }
326
+ end
327
+
328
+ content_tag(:label, class: 'check-switch switch-label', data: { input: 'checkbox' }) do
329
+ concat tag :input, name: name, type: :hidden, value: false
330
+ concat label_text
331
+ concat check_box_tag(name, true, checked, options)
332
+
333
+ concat content_tag(:span, class: 'check-switch-panel') {
334
+ concat content_tag(:span, class: 'check-switch-tick') { '' }
335
+ }
336
+
337
+ concat content_tag(:span, class: 'check-switch-label') { 'Enable' }
338
+ end
339
+
113
340
  end
114
341
 
115
342
  private
116
343
 
117
- def base_input_tag(name, value, options, type)
344
+ def base_tag(name, value, options, type, &block)
345
+ case type
346
+ when :select
347
+ value = value.html_safe if value
348
+ select_tag(name, value, options)
349
+ when :textarea
350
+ value ||= extract_block(&block)
351
+ text_area_tag(name, value, options)
352
+ else
353
+ text_field_tag(name, value, options)
354
+ end
355
+ end
356
+
357
+ def input_tag(type, name, value, options=nil, &block)
358
+ type.to_sym! if type.is_a?( String )
359
+
118
360
  if value.is_a? Hash
119
361
  options = value
120
362
  value = nil
121
363
  end
122
364
 
123
365
  options = (INPUT_OPTIONS[type]||{}).deep_merge options
366
+ options[:type] ||= type
124
367
 
125
- label = options.delete(:label)
126
- tag = text_field_tag(name, value, options)
127
368
 
128
- if label
129
- options[:placeholder] = label
369
+ label_options = {
370
+ class: "#{label_class(options[:type])} #{options.delete(:class)}"
371
+ }
130
372
 
131
- content_tag(:label) do
132
- tag + content_tag(:span) { label }
133
- end
373
+ if label_placeholder = options.delete(:label_placeholder)
374
+ options[:placeholder] = label_placeholder
375
+ label_placeholder = content_tag(:span, class: 'placeholder-label-text') { label_placeholder }
376
+ label_options[:class] += ' placeholder-label'
377
+ end
378
+
379
+ if !label_placeholder && label_text = options.delete(:label)
380
+ label_text = content_tag(:span, class: 'label-text') { label_text }
381
+ end
382
+
383
+ content_tag(:label, label_options) {
384
+ concat label_text
385
+ concat base_tag(name, value, options, type, &block)
386
+ concat label_placeholder
387
+ }
388
+
389
+ end
390
+
391
+ private
392
+
393
+ def label_class( type )
394
+ type = case type
395
+ when :tel, :password, :number, :url, :email, :search
396
+ "text"
397
+ when :checkbox, :radio
398
+ "tick"
134
399
  else
135
- tag
400
+ type.to_s
136
401
  end
137
402
 
403
+ "#{type}-label"
404
+ end
405
+
406
+ def tick_wrapper( name, options, &block )
407
+
408
+ tag = extract_block(&block)
409
+
410
+ tick = content_tag(:span, class: 'tick') {''}
411
+ label = content_tag(:span, class: 'label-text') { options.delete(:label) || name }
412
+
413
+ options[:class] ||= ' '
414
+ options[:class] << "#{label_class( options.delete(:type) )} tick-box"
415
+
416
+ content_tag(:label, options ) {
417
+ concat tag.html_safe
418
+ concat tick
419
+ concat content_tag(:span, class: 'label-text-wrapper') { label }
420
+ }
138
421
  end
422
+
139
423
  end
140
424
  end
@@ -41,11 +41,11 @@ html
41
41
  / Head
42
42
  = yield :head
43
43
 
44
- body class=page_classes
44
+ body class=page_class
45
45
 
46
46
  / Icon inclusion
47
47
  = render "shared/ratchet/icons"
48
-
48
+
49
49
  - if content_for?(:blank)
50
50
 
51
51
  = yield :blank
@@ -0,0 +1,67 @@
1
+ ruby:
2
+ activeColor = [
3
+ { "name" => "azure" },
4
+ { "name" => "byzantine" },
5
+ { "name" => "mulberry" },
6
+ { "name" => "majorelle" },
7
+ { "name" => "caribbean" },
8
+ { "name" => "grass" },
9
+ { "name" => "gold" },
10
+ { "name" => "tangelo" },
11
+ { "name" => "rusty" }
12
+ ]
13
+
14
+ passiveColor = [
15
+ { "name" => "space" },
16
+ { "name" => "shark" },
17
+ { "name" => "steel" },
18
+ { "name" => "pewter" },
19
+ { "name" => "alabaster" },
20
+ { "name" => "smoke" },
21
+ { "name" => "white" }
22
+ ]
23
+
24
+ gradient = [
25
+ { "name" => "earthrise" },
26
+ { "name" => "royalty" },
27
+ { "name" => "lagoon" },
28
+ { "name" => "pearlescent" },
29
+ { "name" => "firestorm" },
30
+ { "name" => "sunset" },
31
+ { "name" => "berries" },
32
+ { "name" => "supernova" },
33
+ { "name" => "emerald" }
34
+ ]
35
+
36
+ defs#svg-defs
37
+
38
+ // Active Colors
39
+ - activeColor.each do | a |
40
+ linearGradient id="#{a["name"]}" gradientUnits="objectBoundingBox"
41
+ stop offset="0"
42
+
43
+ // Passive Colors
44
+ - passiveColor.each do | a |
45
+ linearGradient id="#{a["name"]}" gradientUnits="objectBoundingBox"
46
+ stop offset="0"
47
+
48
+ // Standard Gradients
49
+ - gradient.each do | a |
50
+ linearGradient id="#{a["name"]}" gradientUnits="objectBoundingBox" gradientTransform="rotate(55)"
51
+ stop offset="0"
52
+ stop offset="1"
53
+
54
+ - gradient.each do | a |
55
+ linearGradient id="#{a["name"]}-darken" gradientUnits="objectBoundingBox" gradientTransform="rotate(55)"
56
+ stop offset="0"
57
+ stop offset="1"
58
+
59
+ - gradient.each do | a |
60
+ linearGradient id="#{a["name"]}-lighten" gradientUnits="objectBoundingBox" gradientTransform="rotate(55)"
61
+ stop offset="0"
62
+ stop offset="1"
63
+
64
+ // White
65
+ linearGradient#white gradientUnits="objectBoundingBox"
66
+ stop offset="0" style="stop-color:#FFFFFF"
67
+ stop offset="1" style="stop-color:#FFFFFF"
@@ -1,3 +1,9 @@
1
+ / Render Ratchet footer
1
2
  - if content_for?(:footer)
2
3
  footer role="contentinfo"
3
4
  = yield :footer
5
+
6
+ / Render Kraken footer
7
+ - else
8
+ footer.kraken role="contentinfo"
9
+ = render "pages/kraken/partials/footer"
@@ -13,3 +13,8 @@ header role="banner"
13
13
  / Main site navigation
14
14
  nav.main-nav role="navigation"
15
15
  = yield :top_nav
16
+
17
+ - if content_for?(:app_nav)
18
+
19
+ nav.app-nav role="navigation"
20
+ = yield :app_nav
@@ -1,7 +1,9 @@
1
- svg#icons style="display: none;" xmlns="http://www.w3.org/2000/svg"
1
+ svg#icons style="height: 0; width: 0; position: absolute; display: none" xmlns="http://www.w3.org/2000/svg" height="0" width="0"
2
+
3
+ = render "/shared/ratchet/defs"
2
4
 
3
5
  /! Compose logo (viewBox="0 0 650 122")
4
- symbol id="compose-logo" fill="currentColor"
6
+ symbol#compose-logo fill="currentColor"
5
7
  path d="M325.4 28.6c-16.7 0-28.7 12.2-28.7 29s12.1 29 28.7 29c16.7 0 28.7-12.2 28.7-29 .1-16.8-12-29-28.7-29zm0 46.7c-9.5 0-16.1-7.3-16.1-17.7 0-10.6 6.5-17.7 16.1-17.7 9.5 0 16.1 7.3 16.1 17.7.1 10.4-6.6 17.7-16.1 17.7z"
6
8
  polygon points="394.1,50.2 380.7,28.8 365,28.8 365,84.8 378,84.8 378,48.3 394.5,71.4 411,48.3 411,84.8 423,84.8 423,28.8 407.6,28.8"
7
9
  path d="M461.3 28.8h-25.3v56h12v-18h13.3c11.1 0 18.9-8.3 18.9-19 .1-10.7-7.7-19-18.9-19zm-1.2 27h-12.1v-15h12.1c4.5 0 7.6 3.4 7.6 7.5s-3.1 7.5-7.6 7.5zM516.1 28.6c-16.7 0-28.7 12.2-28.7 29s12.1 29 28.7 29c16.7 0 28.7-12.2 28.7-29 .1-16.8-12-29-28.7-29zm0 46.7c-9.5 0-16.1-7.3-16.1-17.7 0-10.6 6.5-17.7 16.1-17.7 9.5 0 16.1 7.3 16.1 17.7 0 10.4-6.6 17.7-16.1 17.7zM576.9 50.7c-6.5-1.6-10.4-2.8-10.4-5.5 0-3.1 2.9-5.1 7.5-5.1 5.6 0 10.7 2 14.3 5.6l1.2 1.2 7.2-9.4-1-.9c-5.4-5.2-12.5-7.8-21-7.8-12.1 0-20.9 7.2-20.9 17 0 12.3 11 15.1 19.9 17.4 6.9 1.8 11.1 3.1 11.1 6.4 0 2.6-2.4 5.7-9.2 5.7-8.1 0-13.3-4.3-15.7-6.8l-1.3-1.3-7 9.7.9.9c5.5 5.8 13.3 8.9 22.7 8.9 16.3 0 22.1-9.3 22.1-17.9.2-12.9-11.7-15.9-20.4-18.1z"
@@ -23,11 +25,11 @@ svg#icons style="display: none;" xmlns="http://www.w3.org/2000/svg"
23
25
  polygon points="122.1,88.1 155.2,107.8 155.2,73.5 122.1,54"
24
26
 
25
27
  /! Ratchet logo (viewBox="0 0 600 120")
26
- symbol id="ratchet-logo" fill="currentColor"
28
+ symbol#ratchet-logo fill="currentColor"
27
29
  path d="M502.1 2.5h-105.1v39h-20v-39h-37v101.8l-16.8-30.2c-4.5 7.4-12.6 12.4-21.9 12.4-14.2 0-25.7-11.5-25.7-25.7s11.5-25.7 25.7-25.7c8.2 0 15.5 3.8 20.2 9.8l.6-1 18-31.7c-3.1-2.2-6.7-4.2-11-6-3.7-1.6-8-3-13.1-4.3-5-1.3-10.8-1.9-17.3-1.9-8.2 0-16 1.4-23.3 4.2-7.4 2.8-13.8 6.8-19.2 12.1-4.3 4.2-8 9-10.9 14.5 2.2-5.5 5.8-12.5 11.5-18.1 3.8-3.8 8.2-7.2 12.9-9.2h-156.2l-30.7 80.1 13.7 32.9h9.6l2.9-8h36.4l2.9 8h73.7v-77h19.5c-2.1 6.3-3.2 13.1-3.2 20.5 0 8.9 1.5 17.1 4.6 24.4 3.1 7.4 7.4 13.7 12.9 18.9 5.5 5.3 12 9.3 19.5 12.3 7.5 2.9 15.8 4.4 24.7 4.4 6.6 0 12.5-.7 17.7-2.1 5.1-1.4 9.3-2.9 13-4.5 3.6-1.7 7.3-3.5 9.3-5.6v9.6h37v-43h20v43h32l5.8-107.9.6 107.9h67.6v-37h-32v-7h19v-28h-19v-6h31v-36.2l6.3 36.3h23.7v78h38v-78h23.7l6.3-37h-97.9zm-379 71l4.2-10.9 4.2 10.9h-8.4zm19.3-66.4l18.4 32.4h23.2v76.1l-41.6-108.5zm-50.4 36.4c0-22.9-18.5-41-41.4-41h-50.6v114h37v-28.9l16.7 28.9h42.9l-22.4-39.4c10.7-7.4 17.8-19.5 17.8-33.6zm-50.1 13h-4.9v-21h4.9c5.4 0 9.7 4.7 9.8 10.5-.1 5.1-4.5 10.5-9.8 10.5zM293.8 73.7l-7.6-13.2 7.6-13.1h15l7.5 13.1-7.5 13.2h-15z"
28
30
 
29
31
  /! Vertical Logo
30
- symbol id="vert-logo" fill="currentColor"
32
+ symbol#vert-logo" fill="currentColor"
31
33
 
32
34
  / Compose
33
35
  g transform="matrix(1,0,0,1,-545.032,-326.868)"
@@ -80,10 +82,55 @@ svg#icons style="display: none;" xmlns="http://www.w3.org/2000/svg"
80
82
  polygon points="5.8,64.9 38.3,84.7 38.3,50.2 5.8,30.6"
81
83
  polygon points="122.1,88.1 155.2,107.8 155.2,73.5 122.1,54"
82
84
 
83
- /! Logomark
84
- symbol id="logomark" fill="currentColor"
85
+ /! Logomark (viewBox="0 0 210 120")
86
+ symbol#compose-logomark fill="currentColor"
85
87
  path d="M158.1 23.1h-.1l-38.8-22.6-38.3 22.3-39.3-22.8-41.6 24.2v44l80.3 46.8 38.4-22.2 39.4 22.8 41.9-24.2v-44l-41.9-24.3zm-.2 45.1l-32.9-19.1 33.2-19.4 32.9 19.3-33.2 19.2zm-77.9-38.8l33.2 19.2-32.8 19.1-33.1-19.3 32.7-19zm72.2-3l-32.5 18.9-33.1-19.2 32.6-19 33 19.3zm-77.5-.6l-6.7 3.9-27.1 15.3-32.3-19.2 33.1-19.2 33 19.2zm-68.9 4.8l32.5 19.6v34.6l-32.5-19.8v-34.4zm39 23l32.5 19.3v34.5l-32.5-19.3v-34.5zm77.3.4l33.1 19.5v34.2l-33.1-19.7v-34z"
86
88
  g opacity=".5"
87
89
  polygon points="44.8,88.2 77.3,107.3 77.3,72.9 44.8,53.6"
88
90
  polygon points="5.8,64.9 38.3,84.7 38.3,50.2 5.8,30.6"
89
91
  polygon points="122.1,88.1 155.2,107.8 155.2,73.5 122.1,54"
92
+
93
+ /! Icon Placeholder (viewBox="0 0 48 48")
94
+ symbol id="icon-placeholder" fill="currentColor"
95
+ path id="XMLID_1_" class="st0" d="M45,48H3c-1.6,0-3-1.3-3-3V3c0-1.6,1.4-3,3-3h42c1.7,0,3,1.4,3,3v42C48,46.7,46.7,48,45,48z"
96
+ /! Search Icon
97
+ symbol#search-icon fill="currentColor" viewbox="0 0 38 38"
98
+ path d="M26.7 25.1l-3.7-3.8c.7-1.1 1.2-2.4 1.2-3.8-.1-3.6-3-6.5-6.7-6.5-3.6 0-6.6 2.9-6.6 6.6s3 6.6 6.6 6.6c1.4 0 2.7-.5 3.8-1.2l3.7 3.7c.2.2.5.3.9.3.3 0 .6-.1.9-.3.3-.4.3-1.2-.1-1.6m-9.1-2.6c-2.7 0-4.9-2.2-4.9-4.9s2.2-4.9 4.9-4.9 4.9 2.2 4.9 4.9-2.2 4.9-4.9 4.9"
99
+
100
+ /! Twitter Icon
101
+ symbol#twitter fill="currentColor" viewbox="0 0 38 38"
102
+ path d="M27 12.4c-.7.4-1.4.6-2.2.8-.6-.7-1.5-1.1-2.5-1.1-2.3 0-3.9 2.1-3.4 4.3-2.9-.1-5.5-1.5-7.2-3.6-.9 1.5-.4 3.6 1.1 4.6-.6 0-1.1-.1-1.6-.4 0 1.7 1.1 3.2 2.8 3.5-.5.2-1.1.2-1.6.1.4 1.4 1.7 2.4 3.2 2.4-1.5 1.1-3.4 1.6-5.2 1.4 1.5 1 3.3 1.6 5.3 1.6 6.5 0 10.1-5.4 9.9-10.3.7-.5 1.3-1.1 1.9-1.9-.6.2-1.3.4-2 .5.7-.4 1.3-1.2 1.5-1.9z"
103
+
104
+ /! Facebook Icon
105
+ symbol#facebook fill="currentColor" viewbox="0 0 38 38"
106
+ path d="M21.4 12.8h2.1v-3.4h-2.7c-2.9 0-4.2 1.3-4.2 3.7v2.6h-2v3.3h2v9.6h3.9v-9.7h2.7l.3-3.2h-3v-1.8c0-.8.2-1.1.9-1.1z"
107
+
108
+ /! Y Combinator Icon
109
+ symbol#y-combinator fill="currentColor" viewbox="0 0 38 38"
110
+ path d="M22.4 10.9h3.8l-5.3 10v6h-3.3v-6l-5.5-10h3.9l3.3 7 3.1-7z"
111
+
112
+ /! LinkedIn Icon
113
+ symbol#linkedin fill="currentColor" viewbox="0 0 38 38"
114
+ rect x="11.6" y="15.5" width="3.4" height="10.8"
115
+ ellipse cx="13.3" cy="12.1" rx="2" ry="2"
116
+ path d="M27.5 26.4v-6.9c0-2.9-1.6-4.3-3.9-4.3s-3.3 1.8-3.3 1.8v-1.5h-3.2v10.8h3.2v-5.7c0-1.5.7-2.4 2-2.4 1.2 0 1.8.9 1.8 2.4v5.7h3.4z"
117
+
118
+ /! Github Icon
119
+ symbol#github fill="currentColor" viewbox="0 0 38 38"
120
+ path d="M23 35.9v-4.5c0-1.6-.5-2.5-1.1-3 3.6-.4 7.5-1.8 7.5-8.1 0-1.8-.6-3.3-1.7-4.4.2-.4.7-2.1-.2-4.3 0 0-1.4-.4-4.5 1.6-1.3-.3-2.7-.5-4.2-.5-1.4 0-2.8.2-4.2.5-3.1-2.1-4.5-1.6-4.5-1.6-.9 2.3-.3 3.9-.2 4.3-1 1.1-1.7 2.6-1.7 4.4 0 6.3 3.8 7.7 7.4 8.1-.4.4-.9 1.1-1 2.2-1 .4-3.3 1.1-4.8-1.4 0 0-.9-1.6-2.5-1.7 0 0-1.6 0-.1 1 0 0 1 .5 1.8 2.4 0 0 1 2.9 5.5 1.9v3c0 .4-.3 1-1 .8 1.6.5 3.4.9 5.2.9 1.8 0 3.5-.3 5.2-.9-.6.3-.9-.2-.9-.7z"
121
+
122
+ /! Google Plus Icon
123
+ symbol#google-plus fill="currentColor" viewBox="0 0 38 38"
124
+ path d="M14 18v2.4h3.97c-.16 1.029-1.2 3.02-3.97 3.02-2.39 0-4.34-1.979-4.34-4.42 0-2.44 1.95-4.42 4.34-4.42 1.36 0 2.27.58 2.79 1.08l1.9-1.83c-1.22-1.14-2.8-1.83-4.69-1.83-3.87 0-7 3.13-7 7s3.13 7 7 7c4.04 0 6.721-2.84 6.721-6.84 0-.46-.051-.81-.111-1.16h-6.61zm0 0l17 2h-3v3h-2v-3h-3v-2h3v-3h2v3h3v2l-17-2z"
125
+
126
+ /! YouTube Icon
127
+ symbol#youtube fill="currentColor" viewBox="0 0 38 38"
128
+ path d="M29.3,14.8c0,0-0.2-1.4-0.8-2.1c-0.8-0.8-1.7-0.8-2.1-0.9c-2.9-0.2-7.3-0.2-7.3-0.2h0 c0,0-4.4,0-7.3,0.2c-0.4,0-1.3,0.1-2.1,0.9c-0.6,0.6-0.8,2.1-0.8,2.1s-0.2,1.7-0.2,3.4v1.6c0,1.7,0.2,3.4,0.2,3.4 s0.2,1.4,0.8,2.1c0.8,0.8,1.8,0.8,2.3,0.9c1.7,0.2,7.1,0.2,7.1,0.2s4.4,0,7.3-0.2c0.4,0,1.3-0.1,2.1-0.9c0.6-0.6,0.8-2.1,0.8-2.1 s0.2-1.7,0.2-3.4v-1.6C29.5,16.5,29.3,14.8,29.3,14.8z M16.8,21.7l0-5.9l5.7,3L16.8,21.7z"
129
+
130
+ /! Subscribe Icon
131
+ symbol#subscribe fill="currentColor" viewBox="0 0 38 38"
132
+ path d="M21.6 26.9c0-5.8-4.7-10.5-10.5-10.5v3.2c4 0 7.3 3.3 7.3 7.3h3.2zm-6.2-2.2c0-1.2-1-2.2-2.2-2.2-1.2 0-2.2 1-2.2 2.2s1 2.2 2.2 2.2c1.2 0 2.2-.9 2.2-2.2zm11.6 2.3c0-8.8-7.1-16-15.9-16v3.2c3.4 0 6.6 1.3 9 3.7s3.7 5.6 3.7 9l3.2.1z"
133
+
134
+ /! Index Icon
135
+ symbol#index" stroke="currentColor" fill="none" stroke-width=".75" stroke-linecap="round" viewBox="0 0 15 13"
136
+ path d="M7.5 2.606c0-1.233 3.335-2.231 7.125-2.231v9.939c-3.79 0-7.125.828-7.125 2.061 0-1.233-3.335-2.061-7.125-2.061v-9.939c3.79 0 7.125.998 7.125 2.231zm0 0v9.769m-1.619-9.036c-1.043-.393-2.518-.677-4.211-.79m4.211 2.703c-1.043-.393-2.518-.677-4.211-.791m4.211 2.703c-1.043-.393-2.518-.677-4.211-.79m4.211 2.703c-1.043-.393-2.518-.677-4.211-.791m7.449-4.947c1.044-.393 2.518-.677 4.211-.79m-4.211 2.703c1.044-.393 2.518-.677 4.211-.791m-4.211 2.703c1.044-.393 2.518-.677 4.211-.79m-4.211 2.703c1.044-.393 2.518-.677 4.211-.791"
@@ -1,3 +1,3 @@
1
1
  module RatchetDesign
2
- VERSION = "0.1.12"
2
+ VERSION = "0.1.13"
3
3
  end