speedo 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.
Files changed (126) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +39 -0
  3. data/Rakefile +39 -0
  4. data/app/assets/images/speedo/logo.png +0 -0
  5. data/app/assets/javascripts/home.coffee +59 -0
  6. data/app/assets/javascripts/speedo.js +25 -0
  7. data/app/assets/stylesheets/_style.scss +475 -0
  8. data/app/assets/stylesheets/speedo.scss +20 -0
  9. data/app/controllers/speedo/application_controller.rb +4 -0
  10. data/app/controllers/speedo/home_controller.rb +6 -0
  11. data/app/helpers/speedo/layout_helper.rb +18 -0
  12. data/app/views/layouts/speedo/application.haml +19 -0
  13. data/app/views/speedo/home/how.html.haml +107 -0
  14. data/app/views/speedo/home/index.haml +1 -0
  15. data/app/views/speedo/shared/_footer.haml +5 -0
  16. data/app/views/speedo/shared/_header.haml +8 -0
  17. data/app/views/speedo/shared/_html_head.haml +18 -0
  18. data/app/views/speedo/shared/_nav_flash.haml +19 -0
  19. data/config/locales/en.yml +5 -0
  20. data/config/routes.rb +4 -0
  21. data/lib/speedo/engine.rb +5 -0
  22. data/lib/speedo/sass.rb +5 -0
  23. data/lib/speedo/version.rb +3 -0
  24. data/lib/speedo.rb +7 -0
  25. data/lib/tasks/speedo_tasks.rake +4 -0
  26. data/test/dummy/Rakefile +7 -0
  27. data/test/dummy/app/assets/javascripts/application.js +9 -0
  28. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  29. data/test/dummy/app/controllers/application_controller.rb +3 -0
  30. data/test/dummy/app/helpers/application_helper.rb +2 -0
  31. data/test/dummy/app/views/layouts/application.haml +19 -0
  32. data/test/dummy/config/application.rb +45 -0
  33. data/test/dummy/config/boot.rb +10 -0
  34. data/test/dummy/config/database.yml +25 -0
  35. data/test/dummy/config/environment.rb +5 -0
  36. data/test/dummy/config/environments/development.rb +30 -0
  37. data/test/dummy/config/environments/production.rb +60 -0
  38. data/test/dummy/config/environments/test.rb +39 -0
  39. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  40. data/test/dummy/config/initializers/inflections.rb +10 -0
  41. data/test/dummy/config/initializers/mime_types.rb +5 -0
  42. data/test/dummy/config/initializers/secret_token.rb +7 -0
  43. data/test/dummy/config/initializers/session_store.rb +8 -0
  44. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  45. data/test/dummy/config/locales/en.yml +5 -0
  46. data/test/dummy/config/routes.rb +4 -0
  47. data/test/dummy/config.ru +4 -0
  48. data/test/dummy/db/development.sqlite3 +0 -0
  49. data/test/dummy/db/schema.rb +16 -0
  50. data/test/dummy/log/development.log +1439 -0
  51. data/test/dummy/public/404.html +26 -0
  52. data/test/dummy/public/422.html +26 -0
  53. data/test/dummy/public/500.html +26 -0
  54. data/test/dummy/public/favicon.ico +0 -0
  55. data/test/dummy/script/rails +6 -0
  56. data/test/dummy/tmp/cache/assets/C3E/DC0/sprockets%2F1403a9a2a343047662a08c94236e18d3 +0 -0
  57. data/test/dummy/tmp/cache/assets/C55/A00/sprockets%2F64a4807c3605709b4a90f49218d0f657 +0 -0
  58. data/test/dummy/tmp/cache/assets/C58/AC0/sprockets%2Fb3fe8d12404f3909651c796f53704264 +0 -0
  59. data/test/dummy/tmp/cache/assets/C5D/720/sprockets%2F9fa57e616e980217a86a752645602a67 +0 -0
  60. data/test/dummy/tmp/cache/assets/C66/D10/sprockets%2F2464fdef14068c5758619d407575745f +0 -0
  61. data/test/dummy/tmp/cache/assets/C7F/F30/sprockets%2F634e6d3c0a9b00971070936b1858d9f0 +0 -0
  62. data/test/dummy/tmp/cache/assets/C86/790/sprockets%2F91e781f0651760fa67f67441d22f526a +0 -0
  63. data/test/dummy/tmp/cache/assets/C8E/F50/sprockets%2Fd8870c8cd6268b552059e4165dd41395 +0 -0
  64. data/test/dummy/tmp/cache/assets/C95/800/sprockets%2F1e2c6a6ef746de4672d8479058663283 +0 -0
  65. data/test/dummy/tmp/cache/assets/C99/860/sprockets%2F17c461a57e0176f6d2a42ac2d5601332 +0 -0
  66. data/test/dummy/tmp/cache/assets/C9E/CB0/sprockets%2F851e8854f40e4f6c954924cbc8574955 +0 -0
  67. data/test/dummy/tmp/cache/assets/CA1/670/sprockets%2F5078d436b1e840b24a45a0fd808e0370 +0 -0
  68. data/test/dummy/tmp/cache/assets/CA2/A50/sprockets%2F802a418e2ec671e229b6b0bc15282914 +0 -0
  69. data/test/dummy/tmp/cache/assets/CA4/550/sprockets%2F5b90b6195ec8acd0012526e32493a707 +0 -0
  70. data/test/dummy/tmp/cache/assets/CB6/AB0/sprockets%2Fbf1147aa08d0479c55c2491d6548697b +0 -0
  71. data/test/dummy/tmp/cache/assets/CCD/3C0/sprockets%2F4813042234e4809bbba5f31fa53d613e +0 -0
  72. data/test/dummy/tmp/cache/assets/CD2/A30/sprockets%2F82bf9b41b2475c3630e1c241c2f386b3 +0 -0
  73. data/test/dummy/tmp/cache/assets/CE6/370/sprockets%2Ff2af9583b1651f2b85a55312652fc88e +0 -0
  74. data/test/dummy/tmp/cache/assets/CE7/7E0/sprockets%2F614ac05673f4071a775e97aae45a788d +0 -0
  75. data/test/dummy/tmp/cache/assets/CEF/9F0/sprockets%2Fd4655b68b55de913f9df60e5726d2128 +0 -0
  76. data/test/dummy/tmp/cache/assets/CF3/100/sprockets%2Fc892faf01e9f78893b2ec023f8930917 +0 -0
  77. data/test/dummy/tmp/cache/assets/CF4/5F0/sprockets%2Ff3c268595dbff812347d6ed70474d809 +0 -0
  78. data/test/dummy/tmp/cache/assets/CF6/250/sprockets%2F3f5b661c64b00a08d2a4405a04a478fb +0 -0
  79. data/test/dummy/tmp/cache/assets/CFC/9C0/sprockets%2Fcc2735935442c2435fa1da09a2ab17f3 +0 -0
  80. data/test/dummy/tmp/cache/assets/D04/570/sprockets%2Fb977dd2e1b11efd95d1635b106311a48 +0 -0
  81. data/test/dummy/tmp/cache/assets/D07/570/sprockets%2Fdcf54a08e524f281b585442e47ceb102 +0 -0
  82. data/test/dummy/tmp/cache/assets/D15/5F0/sprockets%2F57b1816da5eb950bb6583945a2c9dd63 +0 -0
  83. data/test/dummy/tmp/cache/assets/D16/F90/sprockets%2F9d50fa2529140487789bc8b2eb7c3e0e +0 -0
  84. data/test/dummy/tmp/cache/assets/D18/720/sprockets%2F3a0f8a5ca889201c9c5ecd4748f91328 +0 -0
  85. data/test/dummy/tmp/cache/assets/D21/650/sprockets%2Fb2cb6c556ff05f3999e4e2d747840a56 +0 -0
  86. data/test/dummy/tmp/cache/assets/D36/850/sprockets%2F6f3211de66f1a692600d1eea5c37ff50 +0 -0
  87. data/test/dummy/tmp/cache/assets/D39/300/sprockets%2F208a3e8f241d173ac294a5675d64bbed +0 -0
  88. data/test/dummy/tmp/cache/assets/D44/F90/sprockets%2F08a167ea587d545985dbb299df0b2d0a +0 -0
  89. data/test/dummy/tmp/cache/assets/D46/610/sprockets%2Fb9cd82e86bf9f23497ea1a82380f4d00 +0 -0
  90. data/test/dummy/tmp/cache/assets/D4E/AA0/sprockets%2F56cf4d3668ca40d9767ef3923b90ccf3 +0 -0
  91. data/test/dummy/tmp/cache/assets/D50/140/sprockets%2Feacc6366c2e070f9a8b9676b9269eb81 +0 -0
  92. data/test/dummy/tmp/cache/assets/D54/BE0/sprockets%2Fd69188ce1fa675cf95ac60199c94c82a +0 -0
  93. data/test/dummy/tmp/cache/assets/D56/5B0/sprockets%2Ff9b967b41f1a607574688dbe5fd48d2e +0 -0
  94. data/test/dummy/tmp/cache/assets/D5D/1B0/sprockets%2F6df1b3eb63813007efc0c624c4e1be70 +0 -0
  95. data/test/dummy/tmp/cache/assets/D64/000/sprockets%2F3eaa6b6f62e23fc95c100b67024ff6a5 +0 -0
  96. data/test/dummy/tmp/cache/assets/D67/E00/sprockets%2Faf58442fa3b47f73c51e534a32de1fe1 +0 -0
  97. data/test/dummy/tmp/cache/assets/D6A/E70/sprockets%2F3d5d96c133daefa7261bf5183c1d727c +0 -0
  98. data/test/dummy/tmp/cache/assets/D6C/E60/sprockets%2F8d38aff5c20f91c2a106ffc422907e7b +0 -0
  99. data/test/dummy/tmp/cache/assets/D6D/7E0/sprockets%2Ffb0ae6d7ff92dbd1b16353268f0464d4 +0 -0
  100. data/test/dummy/tmp/cache/assets/D6D/900/sprockets%2F470cd1d4e43c64e9fa812a75e95ad11f +0 -0
  101. data/test/dummy/tmp/cache/assets/D74/B80/sprockets%2F53e914bce7197b5392ad7f285aeca3e3 +0 -0
  102. data/test/dummy/tmp/cache/assets/D7A/330/sprockets%2Fa1683ec0e94aebfa47c559940db6d677 +0 -0
  103. data/test/dummy/tmp/cache/assets/D7B/AD0/sprockets%2F80f6555eabf8e7a66ef7bdd0309239d3 +0 -0
  104. data/test/dummy/tmp/cache/assets/D7C/250/sprockets%2Fb5bb46dee0118a0a88f099ed6ed85767 +0 -0
  105. data/test/dummy/tmp/cache/assets/D7D/7E0/sprockets%2Fe38072fc712ee2f8d944e6c62a88eb2f +0 -0
  106. data/test/dummy/tmp/cache/assets/D90/4F0/sprockets%2F4f2c511baacacdff3561bdc676214656 +0 -0
  107. data/test/dummy/tmp/cache/assets/D94/FD0/sprockets%2F41225e07b4e82f7c5bca58a6acbe6b34 +0 -0
  108. data/test/dummy/tmp/cache/assets/D99/410/sprockets%2F0d41e90fb416d25b0690caf5f56ed8ea +0 -0
  109. data/test/dummy/tmp/cache/assets/D9C/2D0/sprockets%2F04c0f7c86528653cbf3ce46f2ca0dd9a +0 -0
  110. data/test/dummy/tmp/cache/assets/DA1/670/sprockets%2Fb71f32bbfb530e59ad7a177cf54a888b +0 -0
  111. data/test/dummy/tmp/cache/assets/DB3/FA0/sprockets%2F58f5736fc67cabe1d1f87b9d6e1a864e +0 -0
  112. data/test/dummy/tmp/cache/assets/DBB/910/sprockets%2F73b846ffea908d76e668197bea7fa4de +0 -0
  113. data/test/dummy/tmp/cache/assets/DC5/B10/sprockets%2F4e8d3beabb66a33753cdf2538b0dc70d +0 -0
  114. data/test/dummy/tmp/cache/assets/DC8/550/sprockets%2F94cb607caf211aafa576d8db3e0d583f +0 -0
  115. data/test/dummy/tmp/cache/assets/DDE/B60/sprockets%2Fee0b5f55e5438bf6ea38eb85c57c48af +0 -0
  116. data/test/dummy/tmp/cache/assets/DEF/030/sprockets%2F829f9ef48f8cd4fbbf9191e67a2ce3e8 +0 -0
  117. data/test/dummy/tmp/cache/assets/DEF/C20/sprockets%2Fab241dc1f5aee3812dfd46ffb4bf1910 +0 -0
  118. data/test/dummy/tmp/cache/assets/DF2/CB0/sprockets%2F4500acae993e0fa07bd48dceee07e2b3 +0 -0
  119. data/test/dummy/tmp/cache/assets/E0E/AA0/sprockets%2Fb4a3ce3ff273a9e3c67ef8791cfb6dd6 +0 -0
  120. data/test/dummy/tmp/cache/assets/E1C/290/sprockets%2Fb73d1b3a2d1e21efea1b01dd5dd8d79d +0 -0
  121. data/test/dummy/tmp/cache/assets/E20/350/sprockets%2Fd8a3386671fbdadea2a5e5ba27a43eab +0 -0
  122. data/test/dummy/tmp/pids/server.pid +1 -0
  123. data/test/integration/navigation_test.rb +10 -0
  124. data/test/speedo_test.rb +7 -0
  125. data/test/test_helper.rb +10 -0
  126. metadata +344 -0
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2012 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,39 @@
1
+ = Speedo
2
+
3
+ This is a layout gem intended as a backdrop for developing rails applications quickly. Its intention is to speed initial development, removing the need for (hopefully) any intensive front-end development until the app is functional (i.e. near completion). It provides the common tools CrankApps typically uses for front-end development.
4
+
5
+ This gem is designed with both web-sites and web-apps in mind. A few minor changes can convert one into the other. See the bottom of styles.scss for code to uncomment, as well as home.coffee.
6
+
7
+ There is a link in the footer ("How") to a page that contains many examples of the implementation of the various tools and plugins.
8
+
9
+ This project uses MIT-LICENSE.
10
+
11
+ == Usage
12
+
13
+ In your Gemfile:
14
+
15
+ <tt>gem 'speedo'</tt>
16
+
17
+ == Inventory of plugins and gems:
18
+ === Gems
19
+ * Haml
20
+ * Haml-rails
21
+ * Bourbon
22
+
23
+ === jQuery Plugins
24
+ * jQuery-UI
25
+ * jQuery.autogrow
26
+ * jQuery.autoSuggest
27
+ * jQuery.dataTables
28
+ * jQuery.easing
29
+ * jQuery.fancybox
30
+ * jQuery.livequery
31
+ * jQuery.mousewheel
32
+ * jQuery.placeholder
33
+ * jQuery.uniform
34
+
35
+ === Other Plugins
36
+ * Modernizr
37
+ * Chosen
38
+ * Respond
39
+ * ghbuttons
data/Rakefile ADDED
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'Speedo'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
25
+
26
+
27
+ Bundler::GemHelper.install_tasks
28
+
29
+ require 'rake/testtask'
30
+
31
+ Rake::TestTask.new(:test) do |t|
32
+ t.libs << 'lib'
33
+ t.libs << 'test'
34
+ t.pattern = 'test/**/*_test.rb'
35
+ t.verbose = false
36
+ end
37
+
38
+
39
+ task :default => :test
Binary file
@@ -0,0 +1,59 @@
1
+ $ ->
2
+
3
+ # For Web-app mode, uncomment this (and the CSS in style.scss) to make the cols fill the browser
4
+ # $('.col1, .col2, .col3').css('height',$(window).height() - $('.main_nav').outerHeight() - $('.branding').outerHeight() - 60 + 'px')
5
+ # $(window).resize ->
6
+ # $('.col1, .col2, .col3').css('height',$(window).height() - $('.main_nav').outerHeight() - $('.branding').outerHeight() - 60 + 'px')
7
+
8
+
9
+ $('.popup').livequery ->
10
+ $(this).fancybox
11
+ overlayColor: "#fff"
12
+ transitionIn:"none"
13
+ transitionOut:"none"
14
+ titlePosition:"outside"
15
+ showCloseButton:false
16
+ titleFormat: (title, currentArray, currentIndex, currentOpts) ->
17
+ return if title == ''
18
+ return '<h3 class="popup-title">' + title + '</h3>'
19
+
20
+ $('#fancybox-content .close').live 'click', (e) -> #close_lightbox_from_link(e)
21
+ e.preventDefault()
22
+ $.fancybox.close()
23
+
24
+ $('input[type="date"]').livequery ->
25
+ $(this).datepicker
26
+ numberOfMonths: 2
27
+ dateFormat: 'yy-mm-dd'
28
+ showOn: 'focus'
29
+
30
+ $('textarea.autoGrow').livequery ->
31
+ $(this).autogrow()
32
+
33
+ $("select:not(.chzn), input:checkbox, input:radio, input:file").livequery ->
34
+ $(this).uniform()
35
+
36
+ $('select.chzn').livequery ->
37
+ $(this).chosen()
38
+
39
+ $('input.autoSuggest').livequery ->
40
+ # $(this).autoSuggest "/path/to/script",
41
+ # minChars: 2
42
+ autoSuggestData = [{value: "21", name: "Mick Jagger"},{value: "43", name: "Johnny Storm"},{value: "46", name: "Richard Hatch"}]
43
+ $(this).autoSuggest autoSuggestData,
44
+ startText: "AutoSuggesting"
45
+ selectedItemProp: "name"
46
+ searchObjProps: "name"
47
+
48
+ $('input, textarea').livequery ->
49
+ $(this).placeholder()
50
+
51
+
52
+ $('.dataTable').livequery ->
53
+ $(this).dataTable
54
+ "bPaginate": false # Don't paginate
55
+ "aaSorting": [] # No initial sorting
56
+ # "bJQueryUI": true # Use jQueryUI styling
57
+ # "aoColumnDefs": [ # Use this to make the final column un-sortable
58
+ # { "bSortable": false, "aTargets": [ -1 ] }
59
+ # ]
@@ -0,0 +1,25 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // the compiled file.
9
+ //
10
+ // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
+ // GO AFTER THE REQUIRES BELOW.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require jquery-ui
16
+ //= require chosen.jquery
17
+ //= require jquery.autoSuggest
18
+ //= require jquery.autogrow
19
+ //= require jquery.dataTables
20
+ //= require jquery.fancybox-1.3.4
21
+ //= require jquery.livequery
22
+ //= require jquery.mousewheel-3.0.4.pack
23
+ //= require jquery.placeholder.min
24
+ //= require jquery.uniform
25
+ //= require_tree .
@@ -0,0 +1,475 @@
1
+ #wrapper {
2
+ max-width: 964px; /* Set the width of the page here, +4px for colmask box-shadow */
3
+ margin: 0 auto;
4
+ padding:0 2px 4px; /* for colmask box-shadow */
5
+ }
6
+
7
+ /* Base Styles - Set HTML element styles here */
8
+ body {
9
+ background: #ddd;
10
+ }
11
+ a, a:visited, .link {
12
+ color: #0090d5;
13
+ text-decoration: none;
14
+ cursor:pointer;
15
+ }
16
+ a:hover, .link:hover { color: #17639b; }
17
+ ul, ol {
18
+ margin: 0;
19
+ padding: 0;
20
+ li {
21
+ list-style: none;
22
+ }
23
+ }
24
+ h1,h2,h3,h4,h5,h6 {
25
+ margin:10px 0 0.5em;
26
+ font-weight:normal;
27
+ font-weight:200;
28
+ }
29
+ h1 {font-size:2em;}
30
+ h2,h3 {font-size:1.5em;}
31
+ h4,h5 {font-size:1.2em;}
32
+ h6 {font-size:1em;}
33
+ h2,h4,h6{font-weight:normal;}
34
+ footer {
35
+ position:relative;
36
+ margin:-1.8em 10px 0 0; // So it appears at the bottom of the right column
37
+ float: right;
38
+ font-size: 0.8em;
39
+ opacity:0.5;
40
+ }
41
+ input:not(.button), textarea {
42
+ border:1px solid #999;
43
+ @include border-radius(3px);
44
+ padding:5px;
45
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,0.2));
46
+ &:focus {
47
+ border-color:#acd;
48
+ @include box-shadow(0 0 3px rgba(150,180,230,1));
49
+ }
50
+ }
51
+
52
+
53
+
54
+ /* Basic styles */
55
+ .no-js body {
56
+ margin-top:30px;
57
+ }
58
+ #noscript_warning {
59
+ position: fixed;
60
+ top: 0;
61
+ left: 0;
62
+ width: 100%;
63
+ padding: 5px 0 6px;
64
+ text-align: center;
65
+ font-size: 120%;
66
+ font-weight: bold;
67
+ color: #fff;
68
+ background:#AE0000;
69
+ z-index: 101;
70
+ }
71
+ .branding {
72
+ padding:5px 0;
73
+ background:#eee;
74
+ .logo {
75
+ float: left;
76
+ margin-left:2%;
77
+ img {
78
+ display:block;
79
+ height: 40px;
80
+ }
81
+ }
82
+ .user {
83
+ float:right;
84
+ margin:10px 2% 0;
85
+ a {
86
+ }
87
+ .user-name {
88
+ }
89
+ .user-logout {
90
+ }
91
+ }
92
+ }
93
+ .main_nav {
94
+ padding:5px 0;
95
+ background:#eee;
96
+ .search {
97
+ margin-right:10px;
98
+ }
99
+ .home {
100
+ margin-left:10px;
101
+ }
102
+ a {
103
+ display:inline-block; zoom:1;*display:inline;
104
+ padding:0.2em 0.5em;
105
+ background:#ccc;
106
+ @include border-radius(0.3em);
107
+ &:hover {
108
+ background:#ddd;
109
+ }
110
+ &.active {
111
+ @include box-shadow(inset 0 1px 2px rgba(0,0,0,0.5));
112
+ }
113
+ }
114
+ }
115
+ .flash {
116
+ padding:0.5em 2em;
117
+ font-size:1.5em;
118
+ text-align:center;
119
+ text-shadow:-1px -1px 1px #FFFFFF, 1px 1px 1px rgba(0, 0, 0, 0.3);
120
+ &.success {
121
+ background:$bggreen;
122
+ color:#090;
123
+ }
124
+ &.notice {
125
+ background:$bgblue;
126
+ color:#009;
127
+ }
128
+ &.alert {
129
+ background:$bgyellow;
130
+ color:#770;
131
+ }
132
+ &.error {
133
+ background:$bgred;
134
+ color:#900;
135
+ }
136
+ }
137
+ /* Fancybox Popups */
138
+ .popups {
139
+ display:none;
140
+ }
141
+ .popup_content {
142
+ min-width:400px;
143
+ }
144
+ #fancybox-wrap {
145
+ padding-top:40px;
146
+ #fancybox-title {
147
+ position:absolute;
148
+ top:0px;
149
+ left:19px;
150
+ height:28px;
151
+ border:1px solid #333;
152
+ @include border-radius(3px);
153
+ padding:5px 10px;
154
+ @include box-shadow(0 1px 3px rgba(0,0,0,0.5));
155
+ @include linear-gradient(#355b92, #274674);
156
+ h3.popup-title {
157
+ margin-top:3px;
158
+ font-weight:normal;
159
+ text-shadow:1px 1px #333;
160
+ }
161
+ }
162
+ }
163
+
164
+ /* Plugin fixes */
165
+ .dataTables_wrapper {
166
+ @include clearfix;
167
+ }
168
+ div.selector, div.uploader {
169
+ margin-left:-2px;
170
+ }
171
+ ul.as-selections {
172
+ border:1px solid #999;
173
+ @include border-radius(3px);
174
+ padding:5px;
175
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,0.2));
176
+ li.as-original input {
177
+ @include box-shadow(none);
178
+ color:#999; /* For the placeholder colour */
179
+ &:focus {color:inherit;}
180
+ }
181
+ }
182
+ .button-group, .button {
183
+ vertical-align:top;
184
+ }
185
+
186
+
187
+ /* =============================================================================
188
+ Non-semantic helper classes
189
+ ========================================================================== */
190
+
191
+ /* For image replacement */
192
+ .ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
193
+ .ir br { display: none; }
194
+
195
+ /* Hide for both screenreaders and browsers:
196
+ css-discuss.incutio.com/wiki/Screenreader_Visibility */
197
+ .hidden { display: none !important; visibility: hidden !important; }
198
+
199
+ /* Hide only visually, but have it available for screenreaders: by Jon Neal.
200
+ www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden */
201
+ .visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
202
+
203
+ /* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: drupal.org/node/897638 */
204
+ .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
205
+
206
+ /* Hide visually and from screenreaders, but maintain layout */
207
+ .invisible { visibility: hidden; }
208
+
209
+ /* Contain floats: nicolasgallagher.com/micro-clearfix-hack/ */
210
+ .clearfix:before, .clearfix:after { content: ""; display: table; }
211
+ .clearfix:after { clear: both; }
212
+ .clearfix { zoom: 1; }
213
+
214
+ /* Float and clear */
215
+ .left { float: left; }
216
+ .right { float: right; }
217
+ .clear { clear: both; }
218
+
219
+ /* Inline-block */
220
+ .ib { display:inline-block; zoom:1; *display:inline; }
221
+
222
+
223
+
224
+ /* =============================================================================
225
+ Print styles.
226
+ Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
227
+ ========================================================================== */
228
+
229
+ @media print {
230
+ * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */
231
+ a, a:visited { color: #444 !important; text-decoration: underline; }
232
+ a[href]:after { content: " (" attr(href) ")"; }
233
+ abbr[title]:after { content: " (" attr(title) ")"; }
234
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */
235
+ pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
236
+ thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
237
+ tr, img { page-break-inside: avoid; }
238
+ img { max-width: 100% !important; }
239
+ @page { margin: 0.5cm; }
240
+ p, h2, h3 { orphans: 3; widows: 3; }
241
+ h2, h3{ page-break-after: avoid; }
242
+ }
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+ /* Column Layout */
264
+ /*
265
+ This layout is designed for mobile-first, so that the 'side' columns go below the main
266
+ content on narrower screen-widths.
267
+ Most of the styles that will be seen by the typical browser (i.e. the 960 design) are
268
+ in the @media queries below.
269
+ Set the column background colours using the variables for consistent column colouration.
270
+ */
271
+
272
+
273
+ /* Column background colors */
274
+ $maincolbg: #fff;
275
+ $leftcolbg: #f6f6f6;
276
+ $rightcolbg: #fafafa;
277
+
278
+ /* Layout for mobile < 480px width screens (see below for media queries) */
279
+ .colmask {
280
+ position:relative; /* This fixes the IE7 overflow hidden bug */
281
+ clear:both;
282
+ float:left;
283
+ width:100%; /* width of whole page */
284
+ @include border-radius(0 0 3px 3px);
285
+ @include box-shadow(0 2px 2px rgba(0,0,0,0.5));
286
+ background:#fff;
287
+ overflow:hidden; /* This chops off any overhanging divs, including the leftcol bg */
288
+ }
289
+ .colright,.colmid,.colleft {
290
+ float:left;
291
+ width:100%;
292
+ position:relative;
293
+ }
294
+ .col1,.col2,.col3 {
295
+ float:left;
296
+ position:relative;
297
+ padding:0 0 5em;
298
+ }
299
+ .onecol { /* Full page settings */
300
+ background:$maincolbg; /* page background colour */
301
+ .col1 {
302
+ width:96%; /* page width minus left and right padding */
303
+ left:2%; /* page left padding */
304
+ }
305
+ }
306
+ .threecol, .leftcol, .rightcol {
307
+ background:$maincolbg; /* main column background colour */
308
+ .col1, .col2, .col3 {
309
+ width:100%; /* page width minus left and right padding */
310
+ padding:0 2% 50px; /* page left padding */
311
+ }
312
+ .col2 {background:$leftcolbg;} /* left column background colour */
313
+ .col3 {background:$rightcolbg;} /* right column background colour */
314
+ }
315
+ .rightcol .col2, .leftcol .col3, .onecol .col2, .onecol .col3 { display:none; }
316
+
317
+
318
+ /* Media Queries for Responsive Design. These override the primary ('mobile first') styles */
319
+
320
+ @media only screen and (min-width: 480px) {
321
+ /* Style adjustments for viewports 480px and over go here */
322
+ /* 2 Column (double page) settings */
323
+ .threecol {
324
+ .col2 {
325
+ width:46%; /* left column content width (column width minus left and right padding) */
326
+ left:0%; /* right column width plus left column left padding */
327
+ }
328
+ .col3 {
329
+ width:46%; /* right column content width (column width minus left and right padding) */
330
+ left:0%; /* (right column width) plus (left column left and right padding) plus (right column left padding) */
331
+ }
332
+ }
333
+ }
334
+
335
+ @media only screen and (min-width: 768px) {
336
+ /* Style adjustments for viewports 768px and over (most desktop browsers) go here */
337
+ .colleft { box-shadow:inset -1px 0 0 #ccc; } /* 0 spread so it isn't visible at the top and bottom */
338
+ .colmid { box-shadow:1px 0 0 #ccc; } /* Use box-shadow for 'borders' so the layout isn't affected */
339
+ .colmask {
340
+ .col1, .col2, .col3 {
341
+ padding:0 0 5em;
342
+ background:transparent
343
+ }
344
+ }
345
+ .col1 { min-height:400px; }
346
+ .leftcol { /* 2 Column (left menu) settings */
347
+ background:$maincolbg; /* right column background colour */
348
+ .colleft {
349
+ right:75%; /* right column width */
350
+ background:$leftcolbg; /* left column background colour */
351
+ }
352
+ .col1 {
353
+ width:71%; /* right column content width */
354
+ left:102%; /* 100% plus left column left padding */
355
+ }
356
+ .col2 {
357
+ width:21%; /* left column content width (column width minus left and right padding) */
358
+ left:6%; /* (right column left and right padding) plus (left column left padding) */
359
+ }
360
+ .col3 {
361
+ display:none;
362
+ }
363
+ }
364
+ .rightcol { /* 2 Column (right menu) settings */
365
+ background:$rightcolbg; /* right column background colour */
366
+ .colleft {
367
+ right:25%; /* right column width */
368
+ background:$maincolbg; /* left column background colour */
369
+ }
370
+ .col1 {
371
+ width:71%; /* left column content width (left column width minus left and right padding) */
372
+ left:27%; /* (right column width) plus (left column left padding) */
373
+ }
374
+ .col2 {
375
+ display:none;
376
+ }
377
+ .col3 {
378
+ width:21%; /* right column content width (right column width minus left and right padding) */
379
+ left:31%; /* (right column width) plus (left column left and right padding) plus (right column left padding) */
380
+ }
381
+ }
382
+ .threecol { /* 3 Column settings */
383
+ background:$rightcolbg; /* right column background colour */
384
+ .colmid {
385
+ right:25%; /* width of the right column */
386
+ background:$maincolbg; /* left column background colour */
387
+ }
388
+ .colleft {
389
+ right:50%; /* width of the middle column */
390
+ background:$leftcolbg; /* left column background colour */
391
+ }
392
+ .col1 {
393
+ width:46%; /* width of center column content (column width minus padding on either side) */
394
+ left:102%; /* 100% plus left padding of center column */
395
+ }
396
+ .col2 {
397
+ width:21%; /* Width of left column content (column width minus padding on either side) */
398
+ left:31%; /* width of (right column) plus (center column left and right padding) plus (left column left padding) */
399
+ }
400
+ .col3 {
401
+ width:21%; /* Width of right column content (column width minus padding on either side) */
402
+ left:85%; /* Please make note of the brackets here:
403
+ (100% - left column width) plus (center column left and right padding) plus (left column left and right padding) plus (right column left padding) */
404
+ }
405
+ }
406
+ }
407
+
408
+
409
+
410
+ /* Below are three options for variations on theming:
411
+ 1. Web-app mode: Full-width, full-height page that doesn't scroll (the columns scroll instead) - also requires JS
412
+ 2. Full-width page, fixed-position header, with scrolling content
413
+ 3. Fixed-position header, with scrolling content (2 sections of CSS to uncomment)
414
+ */
415
+
416
+
417
+
418
+ @media only screen and (min-width: 768px) {
419
+ /* For Web-app mode, uncomment this (and the JS in home.coffee) * /
420
+ #wrapper {
421
+ max-width: 100%;
422
+ width:100%;
423
+ margin:0;
424
+ padding:0;
425
+ }
426
+ .col1,.col2,.col3 {
427
+ overflow-y:auto;
428
+ }
429
+ /* */
430
+
431
+ /* For full-width fixed header+nav, uncomment this * /
432
+ #wrapper {
433
+ max-width: 100%;
434
+ width:100%;
435
+ margin:0;
436
+ padding:0;
437
+ }
438
+ .branding, .main_nav {
439
+ position:fixed;
440
+ width:100%;
441
+ top:0;
442
+ margin:0 auto;
443
+ z-index:1000;
444
+ }
445
+ .main_nav {
446
+ top:50px; // Height of .branding
447
+ }
448
+ .col1,.col2,.col3 {
449
+ margin-top:83px; // Height of .branding + .main_nav
450
+ }
451
+ /* */
452
+
453
+ /* For fixed header+nav, uncomment this (and 963 CSS below) * /
454
+ .branding, .main_nav {
455
+ position:fixed;
456
+ width:964px;
457
+ top:0;
458
+ margin:0 auto;
459
+ z-index:1000;
460
+ }
461
+ .main_nav {
462
+ top:50px; // Height of .branding
463
+ }
464
+ .col1,.col2,.col3 {
465
+ margin-top:83px; // Height of .branding + .main_nav
466
+ }
467
+ /* */
468
+ }
469
+ @media only screen and (max-width: 963px) {
470
+ /* For fixed header+nav, uncomment this (and above) * /
471
+ .branding, .main_nav {
472
+ width:100%;
473
+ }
474
+ /* */
475
+ }
@@ -0,0 +1,20 @@
1
+ /*
2
+ *= require normalize
3
+ *= require autoSuggest
4
+ *= require chosen
5
+ *= require gh-buttons
6
+ *= require jquery.dataTables
7
+ *= require jquery.fancybox-1.3.4
8
+ *= require jquery-ui-1.8.18.custom
9
+ *= require uniform.default
10
+ */
11
+
12
+ @import "bourbon";
13
+
14
+ /* Set variables here */
15
+ $bggreen: #e3fde4;
16
+ $bgblue: #bcf;
17
+ $bgyellow:#ffc;
18
+ $bgred: #f99;
19
+
20
+ @import "style";
@@ -0,0 +1,4 @@
1
+ module Speedo
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ module Speedo
2
+ class HomeController < ApplicationController
3
+ def index; end
4
+ def how; end
5
+ end
6
+ end