dlegr250_material_design 0.1.0

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 (72) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +4 -0
  6. data/README.md +66 -0
  7. data/Rakefile +6 -0
  8. data/app/controllers/styleguide_controller.rb +5 -0
  9. data/app/views/styleguide/_buttons.html.erb +79 -0
  10. data/app/views/styleguide/_menus.html.erb +189 -0
  11. data/app/views/styleguide/_navigation.html.erb +28 -0
  12. data/app/views/styleguide/index.html.erb +9 -0
  13. data/bin/console +14 -0
  14. data/bin/setup +7 -0
  15. data/dlegr250_material_design.gemspec +34 -0
  16. data/lib/dlegr250_material_design.rb +6 -0
  17. data/lib/dlegr250_material_design/version.rb +3 -0
  18. data/vendor/assets/javascripts/base/init.js.coffee +14 -0
  19. data/vendor/assets/javascripts/components/dialog.coffee +54 -0
  20. data/vendor/assets/javascripts/components/forms.coffee +17 -0
  21. data/vendor/assets/javascripts/components/layout.coffee +76 -0
  22. data/vendor/assets/javascripts/components/menus.coffee +87 -0
  23. data/vendor/assets/javascripts/components/snackbar_handler.coffee +8 -0
  24. data/vendor/assets/javascripts/components/tabs.coffee +18 -0
  25. data/vendor/assets/javascripts/components/utility.coffee +8 -0
  26. data/vendor/assets/javascripts/dlegr250_material_design.js +20 -0
  27. data/vendor/assets/javascripts/extensions/coffeescript.js.coffee +9 -0
  28. data/vendor/assets/javascripts/extensions/jquery.js.coffee +30 -0
  29. data/vendor/assets/javascripts/third_party/hammer.min.js +7 -0
  30. data/vendor/assets/javascripts/third_party/handlebars.latest.js +4454 -0
  31. data/vendor/assets/javascripts/third_party/jquery.hammer.js +33 -0
  32. data/vendor/assets/javascripts/third_party/snackbarlight.js +218 -0
  33. data/vendor/assets/stylesheets/base/base.scss +73 -0
  34. data/vendor/assets/stylesheets/base/global_classes.scss +261 -0
  35. data/vendor/assets/stylesheets/base/mixins.scss +202 -0
  36. data/vendor/assets/stylesheets/base/normalize.scss +229 -0
  37. data/vendor/assets/stylesheets/base/variables.scss +177 -0
  38. data/vendor/assets/stylesheets/components/badges.scss +28 -0
  39. data/vendor/assets/stylesheets/components/blank_slates.scss +58 -0
  40. data/vendor/assets/stylesheets/components/boxes.scss +34 -0
  41. data/vendor/assets/stylesheets/components/buttons.scss +225 -0
  42. data/vendor/assets/stylesheets/components/cards.scss +110 -0
  43. data/vendor/assets/stylesheets/components/code.scss +13 -0
  44. data/vendor/assets/stylesheets/components/dialogs.scss +57 -0
  45. data/vendor/assets/stylesheets/components/dividers.scss +35 -0
  46. data/vendor/assets/stylesheets/components/forms/error_messages.scss +27 -0
  47. data/vendor/assets/stylesheets/components/forms/fields.scss +56 -0
  48. data/vendor/assets/stylesheets/components/forms/labels.scss +17 -0
  49. data/vendor/assets/stylesheets/components/forms/radios.scss +90 -0
  50. data/vendor/assets/stylesheets/components/forms/selects.scss +15 -0
  51. data/vendor/assets/stylesheets/components/forms/text_fields.scss +38 -0
  52. data/vendor/assets/stylesheets/components/forms/toggles.scss +70 -0
  53. data/vendor/assets/stylesheets/components/lists.scss +242 -0
  54. data/vendor/assets/stylesheets/components/menus.scss +164 -0
  55. data/vendor/assets/stylesheets/components/overlay.scss +27 -0
  56. data/vendor/assets/stylesheets/components/snackbarlight.scss +77 -0
  57. data/vendor/assets/stylesheets/components/spinners.scss +67 -0
  58. data/vendor/assets/stylesheets/components/tabs.scss +62 -0
  59. data/vendor/assets/stylesheets/components/tooltips.scss +75 -0
  60. data/vendor/assets/stylesheets/dlegr250_material_design.scss +47 -0
  61. data/vendor/assets/stylesheets/fonts/material_design_iconic_font.scss +5168 -0
  62. data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.eot +0 -0
  63. data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.svg +787 -0
  64. data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.ttf +0 -0
  65. data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.woff +0 -0
  66. data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.woff2 +0 -0
  67. data/vendor/assets/stylesheets/layouts/application/appbar.scss +93 -0
  68. data/vendor/assets/stylesheets/layouts/application/base.scss +27 -0
  69. data/vendor/assets/stylesheets/layouts/application/main.scss +26 -0
  70. data/vendor/assets/stylesheets/layouts/application/sidebars.scss +85 -0
  71. data/vendor/assets/stylesheets/layouts/authentication/base.scss +53 -0
  72. metadata +155 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6af852b75686863498ffbb7ffc138156cd05d67a
4
+ data.tar.gz: 790aeb973b5c6677ebf80347000c379a47e01895
5
+ SHA512:
6
+ metadata.gz: 04cac0c39ab283e9d16f5d45641eb33d2129b0ab8aa86621afca28133d3d9ab7e25c52112817d996d2020115b2a0e4dc12c36097fa6bcbe476a25d141aec89bb
7
+ data.tar.gz: 44a68e755a9449c2a405cd22d0857eac6aa4be2de0992962decb008cc3ddff36a54131f84210bc7f3ea070147c0e6791904ff943a66b726eaa44a74f8b82b0c7
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.3
4
+ before_install: gem install bundler -v 1.10.6
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in dlegr250_material_design.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # BIG WARNING: as of 2016-02-11 15:00
2
+
3
+ This is Alpha code that will change rapidly throughout 2016 as I work on it. Do not use this in a production system until it has reached a stable 1.0.0 version (sometime later in 2016).
4
+
5
+ # Dlegr250MaterialDesign
6
+
7
+ This is a custom implementation of the [Google Material Design Spec](http://www.google.com/design/spec/material-design/introduction.html).
8
+
9
+ It is built from the ground-up trying to use best practices but is still a work-in-progress. I extracted this code to a gem so I could use it in several projects simultaneously without updating code in each of them.
10
+
11
+ It is only engineered to support the latest browser versions that auto-update. Basically that means Internet Explorer 10+ and Edge, because all other major browsers already auto-update and usually follow the specs set forth for `CSS`.
12
+
13
+ ## Installation
14
+
15
+ Add this line to your application's `Gemfile`:
16
+
17
+ ```ruby
18
+ gem 'dlegr250_material_design'
19
+ ```
20
+
21
+ And then execute:
22
+
23
+ $ bundle
24
+
25
+ Or install it yourself as:
26
+
27
+ $ gem install dlegr250_material_design
28
+
29
+ ## Usage
30
+
31
+ Add this line to your application's `app/assets/javascripts/application.js`:
32
+
33
+ ```js
34
+ //= require dlegr250_material_design
35
+ ```
36
+
37
+ Add this line to your application's `app/assets/stylesheets/application.scss`:
38
+
39
+ ```css
40
+ @import "dlegr250_material_design";
41
+ ```
42
+
43
+ Note that this assumes you renamed the default `application.css` to `application.SCSS` to utilize SASS/SCSS.
44
+
45
+ Using the `.scss` extension lets you control the order in which files are loaded/imported, which is a very good thing. This lets you use variables later on that were defined once in a previous file.
46
+
47
+ If you aren't using `.scss` extensions on all your stylesheets, you're doing it wrong ;)p
48
+
49
+ ## Todo
50
+
51
+ * Finalize components that will be implemented
52
+ * Cleanup all stylesheets and remove unused styles
53
+ * Cleanup all JS/Coffee and use a global `App` object instead of `window`
54
+ * Implement simple way to config application-specific default values for styles
55
+ * Test in major browser versions and mobile devices
56
+ * Update JS/CoffeeScript to use ES6 when that becomes mainstream, and IF the Rails Core is going to adopt ES6 as a standard; this gem is more about building Rails applications than using a specific JavaScript implementation
57
+
58
+ ## Development
59
+
60
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
61
+
62
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
63
+
64
+ ## Contributing
65
+
66
+ Bug reports and pull requests are welcome on GitHub at https://github.com/dlegr250/dlegr250_material_design.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,5 @@
1
+ class StyleguideController < ApplicationController
2
+ def index
3
+ # NOOP - page to demo interface
4
+ end
5
+ end
@@ -0,0 +1,79 @@
1
+ <div class="card full-width" id="buttons">
2
+ <header>
3
+ <div class="card-title">Buttons</div>
4
+ </header>
5
+ <div class="card-content">
6
+ All buttons use the base <code>.button</code> class.
7
+ It can be applied to any HTML element.
8
+ They can have various colors applied to them.
9
+
10
+ <hr class="spacer" />
11
+
12
+ <div class="card full-width" id="buttons-raised">
13
+ <header>
14
+ <div class="card-title">Raised</div>
15
+ <div class="card-subtitle">
16
+ <code>.button .button-raised-{COLOR} [.button-dense .button-large]</code>
17
+ </div>
18
+ </header>
19
+ <div class="card-content">
20
+ <div class="button button-raised-blue button-dense">Dense</div>
21
+ <div class="button button-raised-blue">Normal</div>
22
+ <div class="button button-raised-red button-large">Large</div>
23
+ </div>
24
+ </div>
25
+
26
+ <hr class="spacer" />
27
+
28
+ <div class="card full-width" id="buttons-flat">
29
+ <header>
30
+ <div class="card-title">Flat</div>
31
+ <div class="card-subtitle">
32
+ <code>.button .button-flat-{COLOR} [.button-dense .button-large]</code>
33
+ </div>
34
+ </header>
35
+ <div class="card-content">
36
+ <div class="button button-flat-blue button-dense">Dense</div>
37
+ <div class="button button-flat-blue">Normal</div>
38
+ <div class="button button-flat-red button-large">Large</div>
39
+ </div>
40
+ </div>
41
+
42
+ <hr class="spacer" />
43
+
44
+ <div class="card full-width" id="buttons-outline">
45
+ <header>
46
+ <div class="card-title">Outline</div>
47
+ <div class="card-subtitle">
48
+ <code>.button .button-outline-{COLOR} [.button-dense .button-large]</code>
49
+ </div>
50
+ </header>
51
+ <div class="card-content">
52
+ <div class="button button-outline-blue button-dense">Dense</div>
53
+ <div class="button button-outline-blue">Normal</div>
54
+ <div class="button button-outline-red button-large">Large</div>
55
+ </div>
56
+ </div>
57
+
58
+ <hr class="spacer" />
59
+
60
+ <div class="card full-width" id="buttons-icon">
61
+ <header>
62
+ <div class="card-title">Icon</div>
63
+ <div class="card-subtitle">
64
+ Does not support size classes yet.
65
+ Using without any color classes leaves a simple icon without a colored background
66
+ but the same dimensions and hover as colored icons.
67
+ </div>
68
+ <div class="card-subtitle">
69
+ <code>.button .button-icon [.button-icon-{COLOR}]</code>
70
+ </div>
71
+ </header>
72
+ <div class="card-content">
73
+ <div class="button button-icon"><i class="zmdi zmdi-settings"></i></div>
74
+ <div class="button button-icon button-icon-blue"><i class="zmdi zmdi-settings"></i></div>
75
+ <div class="button button-icon button-icon-red"><i class="zmdi zmdi-settings"></i></div>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </div>
@@ -0,0 +1,189 @@
1
+ <div class="card full-width" id="menus">
2
+ <header>
3
+ <div class="card-title">Menus</div>
4
+ </header>
5
+ <div class="card-content">
6
+ Menus consist of a <code>.menu-container</code> wrapper that includes
7
+ a trigger via <code>role="menu-trigger" data-menu-id="menu-id"</code> and an actual
8
+ <code>.menu#menu-id</code>.
9
+
10
+ <p>
11
+ They will also adjust their padding on various device sizes. Try resizing this
12
+ window and clicking a menu.
13
+ </p>
14
+
15
+ <hr class="spacer" />
16
+
17
+ <div class="card full-width" id="menus-position">
18
+ <header>
19
+ <div class="card-title">Position</div>
20
+ <div class="card-subtitle">
21
+ Use the <code>data-position="{TOP|BOTTOM}-{LEFT|RIGHT}"</code> class to specify
22
+ the start point of the menu.
23
+ If the menu would overflow the visible window, it's position will be
24
+ changed dynamically to fit inside the visible window.
25
+ </div>
26
+ </header>
27
+ <div class="card-content">
28
+ <span class="menu-container">
29
+ <div class="button button-raised-grey" role="menu-trigger" data-menu-id="menu-1">
30
+ Bottom-left
31
+ </div>
32
+ <div class="menu menu-width-4" id="menu-1" data-position="bottom-left">
33
+ <div class="menu-item">
34
+ <div class="menu-item-primary">Menu Item 1</div>
35
+ </div>
36
+ <div class="menu-item">
37
+ <div class="menu-item-primary">Menu Item 2</div>
38
+ </div>
39
+ <div class="menu-item">
40
+ <div class="menu-item-primary">Menu Item 3</div>
41
+ </div>
42
+ </div>
43
+ </span>
44
+
45
+ <span class="menu-container">
46
+ <div class="button button-raised-grey" role="menu-trigger" data-menu-id="menu-2">
47
+ Bottom-right
48
+ </div>
49
+ <div class="menu menu-width-4" id="menu-2" data-position="bottom-right">
50
+ <div class="menu-item">
51
+ <div class="menu-item-primary">Menu Item 1</div>
52
+ </div>
53
+ <div class="menu-item">
54
+ <div class="menu-item-primary">Menu Item 2</div>
55
+ </div>
56
+ <div class="menu-item">
57
+ <div class="menu-item-primary">Menu Item 3</div>
58
+ </div>
59
+ </div>
60
+ </span>
61
+ </div>
62
+ </div>
63
+
64
+ <hr class="spacer" />
65
+
66
+ <div class="card full-width" id="menus-widths">
67
+ <header>
68
+ <div class="card-title">Widths</div>
69
+ <div class="card-subtitle">
70
+ Menus use a multiple width: <code>.menu-width-[1,2,3,4,5,6,7]</code>.
71
+ </div>
72
+ </header>
73
+ <div class="card-content">
74
+ <span class="menu-container">
75
+ <div class="button button-icon" role="menu-trigger" data-menu-id="menu-4">
76
+ <i class="zmdi zmdi-settings"></i>
77
+ </div>
78
+ <div class="menu menu-width-1" id="menu-4" data-position="bottom-left">
79
+ <div class="menu-item">
80
+ <div class="menu-item-primary">Item</div>
81
+ </div>
82
+ <div class="menu-item">
83
+ <div class="menu-item-primary">Item</div>
84
+ </div>
85
+ <div class="menu-item">
86
+ <div class="menu-item-primary">Item</div>
87
+ </div>
88
+ </div>
89
+ </span>
90
+ <span class="menu-container">
91
+ <div class="button button-icon" role="menu-trigger" data-menu-id="menu-5">
92
+ <i class="zmdi zmdi-settings"></i>
93
+ </div>
94
+ <div class="menu menu-width-2" id="menu-5" data-position="bottom-left">
95
+ <div class="menu-item">
96
+ <div class="menu-item-primary">Item</div>
97
+ </div>
98
+ <div class="menu-item">
99
+ <div class="menu-item-primary">Item</div>
100
+ </div>
101
+ <div class="menu-item">
102
+ <div class="menu-item-primary">Item</div>
103
+ </div>
104
+ </div>
105
+ </span>
106
+ <span class="menu-container">
107
+ <div class="button button-icon" role="menu-trigger" data-menu-id="menu-6">
108
+ <i class="zmdi zmdi-settings"></i>
109
+ </div>
110
+ <div class="menu menu-width-3" id="menu-6" data-position="bottom-left">
111
+ <div class="menu-item">
112
+ <div class="menu-item-primary">Item</div>
113
+ </div>
114
+ <div class="menu-item">
115
+ <div class="menu-item-primary">Item</div>
116
+ </div>
117
+ <div class="menu-item">
118
+ <div class="menu-item-primary">Item</div>
119
+ </div>
120
+ </div>
121
+ </span>
122
+ <span class="menu-container">
123
+ <div class="button button-icon" role="menu-trigger" data-menu-id="menu-7">
124
+ <i class="zmdi zmdi-settings"></i>
125
+ </div>
126
+ <div class="menu menu-width-4" id="menu-7" data-position="bottom-left">
127
+ <div class="menu-item">
128
+ <div class="menu-item-primary">Item</div>
129
+ </div>
130
+ <div class="menu-item">
131
+ <div class="menu-item-primary">Item</div>
132
+ </div>
133
+ <div class="menu-item">
134
+ <div class="menu-item-primary">Item</div>
135
+ </div>
136
+ </div>
137
+ </span>
138
+ <span class="menu-container">
139
+ <div class="button button-icon" role="menu-trigger" data-menu-id="menu-8">
140
+ <i class="zmdi zmdi-settings"></i>
141
+ </div>
142
+ <div class="menu menu-width-5" id="menu-8" data-position="bottom-left">
143
+ <div class="menu-item">
144
+ <div class="menu-item-primary">Item</div>
145
+ </div>
146
+ <div class="menu-item">
147
+ <div class="menu-item-primary">Item</div>
148
+ </div>
149
+ <div class="menu-item">
150
+ <div class="menu-item-primary">Item</div>
151
+ </div>
152
+ </div>
153
+ </span>
154
+ <span class="menu-container">
155
+ <div class="button button-icon" role="menu-trigger" data-menu-id="menu-9">
156
+ <i class="zmdi zmdi-settings"></i>
157
+ </div>
158
+ <div class="menu menu-width-6" id="menu-9" data-position="bottom-left">
159
+ <div class="menu-item">
160
+ <div class="menu-item-primary">Item</div>
161
+ </div>
162
+ <div class="menu-item">
163
+ <div class="menu-item-primary">Item</div>
164
+ </div>
165
+ <div class="menu-item">
166
+ <div class="menu-item-primary">Item</div>
167
+ </div>
168
+ </div>
169
+ </span>
170
+ <span class="menu-container">
171
+ <div class="button button-icon" role="menu-trigger" data-menu-id="menu-10">
172
+ <i class="zmdi zmdi-settings"></i>
173
+ </div>
174
+ <div class="menu menu-width-7" id="menu-10" data-position="bottom-left">
175
+ <div class="menu-item">
176
+ <div class="menu-item-primary">Item</div>
177
+ </div>
178
+ <div class="menu-item">
179
+ <div class="menu-item-primary">Item</div>
180
+ </div>
181
+ <div class="menu-item">
182
+ <div class="menu-item-primary">Item</div>
183
+ </div>
184
+ </div>
185
+ </span>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
@@ -0,0 +1,28 @@
1
+ <%= content_for(:left_sidebar) do %>
2
+ <div class="list list-hoverable" id="navigation">
3
+ <%= link_to "#buttons", class: "list-item" do %>
4
+ <div class="list-item-primary">Buttons</div>
5
+ <% end %>
6
+ <%= link_to "#buttons-raised", class: "list-item list-item-nested" do %>
7
+ <div class="list-item-primary">Raised</div>
8
+ <% end %>
9
+ <%= link_to "#buttons-flat", class: "list-item list-item-nested" do %>
10
+ <div class="list-item-primary">Flat</div>
11
+ <% end %>
12
+ <%= link_to "#buttons-outline", class: "list-item list-item-nested" do %>
13
+ <div class="list-item-primary">Outline</div>
14
+ <% end %>
15
+ <%= link_to "#buttons-icon", class: "list-item list-item-nested" do %>
16
+ <div class="list-item-primary">Icon</div>
17
+ <% end %>
18
+ <%= link_to "#menus", class: "list-item" do %>
19
+ <div class="list-item-primary">Menus</div>
20
+ <% end %>
21
+ <%= link_to "#menus-position", class: "list-item list-item-nested" do %>
22
+ <div class="list-item-primary">Position</div>
23
+ <% end %>
24
+ <%= link_to "#menus-widths", class: "list-item list-item-nested" do %>
25
+ <div class="list-item-primary">Widths</div>
26
+ <% end %>
27
+ </div>
28
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <%= content_for(:title) { "Styleguide" } %>
2
+
3
+ <%= render "styleguide/navigation" %>
4
+
5
+ <div class="constrained constrained-large">
6
+ <%= render "styleguide/buttons" %>
7
+ <hr class="spacer" />
8
+ <%= render "styleguide/menus" %>
9
+ </div>
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "dlegr250_material_design"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here