metro-ui-rails 0.1.3

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 (99) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/README.md +44 -0
  4. data/Rakefile +1 -0
  5. data/lib/generators/metro/layout/layout_generator.rb +19 -0
  6. data/lib/generators/metro/layout/templates/layout.html.erb +89 -0
  7. data/lib/metro-ui-rails.rb +10 -0
  8. data/lib/metro/ui/rails/engine.rb +15 -0
  9. data/lib/metro/ui/rails/metro.rb +2 -0
  10. data/lib/metro/ui/rails/version.rb +7 -0
  11. data/metro-ui-rails.gemspec +26 -0
  12. data/vendor/assets/images/.DS_Store +0 -0
  13. data/vendor/assets/images/metro/.DS_Store +0 -0
  14. data/vendor/assets/images/metro/ui/.DS_Store +0 -0
  15. data/vendor/assets/images/metro/ui/Calendar128.png +0 -0
  16. data/vendor/assets/images/metro/ui/Camera48.png +0 -0
  17. data/vendor/assets/images/metro/ui/InternetExplorer128.png +0 -0
  18. data/vendor/assets/images/metro/ui/Mail128.png +0 -0
  19. data/vendor/assets/images/metro/ui/Market128.png +0 -0
  20. data/vendor/assets/images/metro/ui/Music128.png +0 -0
  21. data/vendor/assets/images/metro/ui/Picture128.png +0 -0
  22. data/vendor/assets/images/metro/ui/Rss128.png +0 -0
  23. data/vendor/assets/images/metro/ui/Video128.png +0 -0
  24. data/vendor/assets/images/metro/ui/YouTube128.png +0 -0
  25. data/vendor/assets/images/metro/ui/armor.png +0 -0
  26. data/vendor/assets/images/metro/ui/bage-activity.png +0 -0
  27. data/vendor/assets/images/metro/ui/bage-alert.png +0 -0
  28. data/vendor/assets/images/metro/ui/bage-attention.png +0 -0
  29. data/vendor/assets/images/metro/ui/bage-available.png +0 -0
  30. data/vendor/assets/images/metro/ui/bage-away.png +0 -0
  31. data/vendor/assets/images/metro/ui/bage-busy.png +0 -0
  32. data/vendor/assets/images/metro/ui/bage-error.png +0 -0
  33. data/vendor/assets/images/metro/ui/bage-newMessage.png +0 -0
  34. data/vendor/assets/images/metro/ui/bage-paused.png +0 -0
  35. data/vendor/assets/images/metro/ui/bage-playing.png +0 -0
  36. data/vendor/assets/images/metro/ui/bage-unavailable.png +0 -0
  37. data/vendor/assets/images/metro/ui/chrome.png +0 -0
  38. data/vendor/assets/images/metro/ui/collapse24-black.png +0 -0
  39. data/vendor/assets/images/metro/ui/collapse24.png +0 -0
  40. data/vendor/assets/images/metro/ui/collapse32-black.png +0 -0
  41. data/vendor/assets/images/metro/ui/collapse32.png +0 -0
  42. data/vendor/assets/images/metro/ui/download-32.png +0 -0
  43. data/vendor/assets/images/metro/ui/excel2013icon.png +0 -0
  44. data/vendor/assets/images/metro/ui/expand24-black.png +0 -0
  45. data/vendor/assets/images/metro/ui/expand24.png +0 -0
  46. data/vendor/assets/images/metro/ui/expand32-black.png +0 -0
  47. data/vendor/assets/images/metro/ui/expand32.png +0 -0
  48. data/vendor/assets/images/metro/ui/firefox.png +0 -0
  49. data/vendor/assets/images/metro/ui/fork-32.png +0 -0
  50. data/vendor/assets/images/metro/ui/github.png +0 -0
  51. data/vendor/assets/images/metro/ui/grid.png +0 -0
  52. data/vendor/assets/images/metro/ui/ie.png +0 -0
  53. data/vendor/assets/images/metro/ui/lock-open.png +0 -0
  54. data/vendor/assets/images/metro/ui/lock.png +0 -0
  55. data/vendor/assets/images/metro/ui/logo32.png +0 -0
  56. data/vendor/assets/images/metro/ui/onenote2013icon.png +0 -0
  57. data/vendor/assets/images/metro/ui/opera.png +0 -0
  58. data/vendor/assets/images/metro/ui/pull24-dark.png +0 -0
  59. data/vendor/assets/images/metro/ui/pull24.png +0 -0
  60. data/vendor/assets/images/metro/ui/responsive.png +0 -0
  61. data/vendor/assets/images/metro/ui/row24.png +0 -0
  62. data/vendor/assets/images/metro/ui/shield-user.png +0 -0
  63. data/vendor/assets/images/metro/ui/simple.png +0 -0
  64. data/vendor/assets/images/metro/ui/star32.png +0 -0
  65. data/vendor/assets/images/metro/ui/stock-up.png +0 -0
  66. data/vendor/assets/images/metro/ui/view-32.png +0 -0
  67. data/vendor/assets/images/metro/ui/word2013icon.png +0 -0
  68. data/vendor/assets/javascripts/metro-ui.js +4 -0
  69. data/vendor/assets/javascripts/metro-ui/accordion.js +44 -0
  70. data/vendor/assets/javascripts/metro-ui/buttonset.js +34 -0
  71. data/vendor/assets/javascripts/metro-ui/dropdown.js +94 -0
  72. data/vendor/assets/javascripts/metro-ui/pagecontrol.js +41 -0
  73. data/vendor/toolkit/metro-ui/accordion.less +61 -0
  74. data/vendor/toolkit/metro-ui/bricks.less +57 -0
  75. data/vendor/toolkit/metro-ui/buttons.less +124 -0
  76. data/vendor/toolkit/metro-ui/cards.less +113 -0
  77. data/vendor/toolkit/metro-ui/code.less +48 -0
  78. data/vendor/toolkit/metro-ui/colors.less +67 -0
  79. data/vendor/toolkit/metro-ui/forms.less +427 -0
  80. data/vendor/toolkit/metro-ui/grid.less +112 -0
  81. data/vendor/toolkit/metro-ui/hero.less +18 -0
  82. data/vendor/toolkit/metro-ui/images.less +121 -0
  83. data/vendor/toolkit/metro-ui/layout.less +273 -0
  84. data/vendor/toolkit/metro-ui/menus.less +320 -0
  85. data/vendor/toolkit/metro-ui/modern-responsive-max480.less +195 -0
  86. data/vendor/toolkit/metro-ui/modern-responsive-max767.less +74 -0
  87. data/vendor/toolkit/metro-ui/modern-responsive-max979.less +66 -0
  88. data/vendor/toolkit/metro-ui/modern-responsive-min1200.less +16 -0
  89. data/vendor/toolkit/metro-ui/modern-responsive.less +5 -0
  90. data/vendor/toolkit/metro-ui/modern.less +26 -0
  91. data/vendor/toolkit/metro-ui/notices.less +181 -0
  92. data/vendor/toolkit/metro-ui/pagecontrol.less +90 -0
  93. data/vendor/toolkit/metro-ui/reset.less +504 -0
  94. data/vendor/toolkit/metro-ui/routines.less +136 -0
  95. data/vendor/toolkit/metro-ui/tables.less +157 -0
  96. data/vendor/toolkit/metro-ui/theme-dark.less +50 -0
  97. data/vendor/toolkit/metro-ui/tiles.less +293 -0
  98. data/vendor/toolkit/metro-ui/typography.less +361 -0
  99. metadata +192 -0
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .idea
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in metro-ui-rails.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # Metro UI for Rails 3.1 Asset Pipeline
2
+
3
+ This gem integrates [Metro-UI-CSS](https://github.com/olton/Metro-UI-CSS) toolkit into Rails 3.1 Asset Pipeline.
4
+
5
+ [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/ViliusLuneckas/metro-ui-rails)
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'metro-ui-rails'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ ## Installing to Rails project:
18
+
19
+ Require metro-ui/metro.less in your application.less:
20
+
21
+ @import 'metro-ui/modern.less';
22
+ @import 'metro-ui/modern-responsive.less'; // for responsive design
23
+
24
+ And then require metro-ui in your js or coffee application file:
25
+
26
+ #= require metro-ui
27
+
28
+
29
+ ## Layout generator
30
+
31
+ You can generate Metro UI compatible .erb layout.
32
+
33
+ Usage:
34
+
35
+ rails generate metro:layout [LAYOUT_NAME]
36
+
37
+ Example:
38
+
39
+ rails generate metro:layout application
40
+
41
+ ## License
42
+
43
+ This project only integrates [Metro-UI-CSS](https://github.com/olton/Metro-UI-CSS),
44
+ thus all credits go to Sergey Pimenov, see his [license](https://github.com/olton/Metro-UI-CSS).
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,19 @@
1
+ require 'rails/generators'
2
+
3
+ module Metro
4
+ module Generators
5
+ class LayoutGenerator < ::Rails::Generators::Base
6
+ source_root File.expand_path("../templates", __FILE__)
7
+ desc "This generator generates layout file with navigation."
8
+ argument :layout_name, :type => :string, :default => "application"
9
+
10
+ attr_reader :app_name
11
+
12
+ def generate_layout
13
+ app = ::Rails.application
14
+ @app_name = app.class.to_s.split("::").first
15
+ template "layout.html.erb", "app/views/layouts/#{layout_name}.html.erb"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,89 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title><%%= content_for?(:title) ? yield(:title) : "<%= app_name %>" %></title>
8
+ <%%= csrf_meta_tags %>
9
+
10
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
11
+ <!--[if lt IE 9]>
12
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
13
+ <![endif]-->
14
+
15
+ <%%= stylesheet_link_tag "application", :media => "all" %>
16
+
17
+ <!-- For third-generation iPad with high-resolution Retina display: -->
18
+ <!-- Size should be 144 x 144 pixels -->
19
+ <%%= favicon_link_tag 'images/apple-touch-icon-144x144-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '144x144' %>
20
+
21
+ <!-- For iPhone with high-resolution Retina display: -->
22
+ <!-- Size should be 114 x 114 pixels -->
23
+ <%%= favicon_link_tag 'images/apple-touch-icon-114x114-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '114x114' %>
24
+
25
+ <!-- For first- and second-generation iPad: -->
26
+ <!-- Size should be 72 x 72 pixels -->
27
+ <%%= favicon_link_tag 'images/apple-touch-icon-72x72-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '72x72' %>
28
+
29
+ <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
30
+ <!-- Size should be 57 x 57 pixels -->
31
+ <%%= favicon_link_tag 'images/apple-touch-icon-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png' %>
32
+
33
+ <!-- For all other devices -->
34
+ <!-- Size should be 32 x 32 pixels -->
35
+ <%%= favicon_link_tag 'images/favicon.ico', :rel => 'shortcut icon' %>
36
+ </head>
37
+
38
+ <body class="modern-ui">
39
+ <div class="page">
40
+ <div class="navigation-bar">
41
+ <div class="navigation-bar-inner">
42
+ <span class="menu-pull"></span>
43
+
44
+ <div class="brand">
45
+ <a href="/"><span class="metro-ui-logo place-left"></span></a>
46
+ <a href="/"><span class="name"><%= app_name %></span></a>
47
+ </div>
48
+
49
+ <ul>
50
+ <li><%%= link_to "Home", "/" %></li>
51
+
52
+ <li data-role="dropdown">
53
+ <a href="#">Menu</a>
54
+ <ul class="dropdown-menu">
55
+ <li><%%= link_to "Link1", "/path1" %></li>
56
+ <li><%%= link_to "Link2", "/path2" %></li>
57
+ <li class="divider"></li>
58
+ <li><%%= link_to "Link3", "/path3" %></li>
59
+ </ul>
60
+ </li>
61
+ </ul>
62
+ </div>
63
+ </div>
64
+
65
+ <div class="page-region">
66
+ <div class="page-region-content">
67
+ <div class="grid">
68
+ <div class="row">
69
+ <%%= yield %>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ </div>
74
+
75
+ <div class="header-bar">
76
+ <div class="header-bar-inner bg-color-darken" style="padding: 10px 10px 5px;">
77
+ <p class="tertiary-text fg-color-white">&copy; Company 2012</p>
78
+ </div>
79
+ </div>
80
+
81
+ </div>
82
+
83
+ <!-- Javascripts
84
+ ================================================== -->
85
+ <!-- Placed at the end of the document so the pages load faster -->
86
+ <%%= javascript_include_tag "application" %>
87
+
88
+ </body>
89
+ </html>
@@ -0,0 +1,10 @@
1
+ module Metro
2
+ module Ui
3
+ module Rails
4
+ require 'metro/ui/rails/engine' if defined?(Rails)
5
+ end
6
+ end
7
+ end
8
+
9
+ require 'less-rails'
10
+ require 'metro/ui/rails/metro' if defined?(Rails)
@@ -0,0 +1,15 @@
1
+ require 'rails'
2
+
3
+ module Metro
4
+ module Ui
5
+ module Rails
6
+ class Engine < ::Rails::Engine
7
+ initializer 'metro-ui-rails.setup',
8
+ :after => 'less-rails.after.load_config_initializers',
9
+ :group => :all do |app|
10
+ app.config.less.paths << File.join(config.root, 'vendor', 'toolkit')
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,2 @@
1
+ require 'metro/ui/rails/engine'
2
+ require 'metro/ui/rails/version'
@@ -0,0 +1,7 @@
1
+ module Metro
2
+ module Ui
3
+ module Rails
4
+ VERSION = "0.1.3"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'metro/ui/rails/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "metro-ui-rails"
8
+ gem.version = Metro::Ui::Rails::VERSION
9
+ gem.authors = ["Vilius Luneckas"]
10
+ gem.email = ["vilius.luneckas@gmail.com"]
11
+ gem.description = %q{metro-ui-rails project integrates Metro-UI CSS toolkit for Rails 3.1 Asset Pipeline}
12
+ gem.summary = %q{Metro-UI CSS toolkit for Rails 3.1 Asset Pipeline}
13
+ gem.homepage = "https://github.com/viliusluneckas/metro-ui-rails"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.require_paths = ["lib"]
17
+
18
+ if RUBY_PLATFORM == 'java'
19
+ gem.add_dependency 'therubyrhino', '~> 1.73.4'
20
+ else
21
+ gem.add_dependency 'therubyracer', '>= 0.10.2'
22
+ end
23
+
24
+ gem.add_runtime_dependency 'less-rails', '~> 2.2.3'
25
+ gem.add_development_dependency 'rails', '>= 3.1'
26
+ end
Binary file
@@ -0,0 +1,4 @@
1
+ //= require metro-ui/accordion
2
+ //= require metro-ui/buttonset
3
+ //= require metro-ui/dropdown
4
+ //= require metro-ui/pagecontrol
@@ -0,0 +1,44 @@
1
+ (function($){
2
+ $.fn.Accordion = function( options ){
3
+ var defaults = {
4
+ };
5
+
6
+ var $this = $(this)
7
+ , $li = $this.children("li")
8
+ , $triggers = $li.children("a")
9
+ , $frames = $this.find("li div")
10
+ ;
11
+
12
+ var initTriggers = function(triggers){
13
+ triggers.on('click', function(e){
14
+ e.preventDefault();
15
+ var $a = $(this)
16
+ , target = $($a.parent('li').find("div"));
17
+
18
+ if ( $a.parent('li').hasClass('active') ) {
19
+ target.slideUp();
20
+ $(this).parent("li").removeClass("active");
21
+ } else {
22
+ $frames.slideUp();
23
+ $li.removeClass("active");
24
+ target.slideDown();
25
+ $(this).parent("li").addClass("active");
26
+ }
27
+ });
28
+ }
29
+
30
+ return this.each(function(){
31
+ if ( options ) {
32
+ $.extend(defaults, options)
33
+ }
34
+
35
+ initTriggers($triggers);
36
+ });
37
+ }
38
+
39
+ $(function () {
40
+ $('[data-role="accordion"]').each(function () {
41
+ $(this).Accordion();
42
+ })
43
+ })
44
+ })(window.jQuery);
@@ -0,0 +1,34 @@
1
+ (function($){
2
+ $.fn.ButtonSet = function( options ){
3
+ var defaults = {
4
+ };
5
+
6
+ var $this = $(this)
7
+ , $buttons = $this.find("button")
8
+ ;
9
+
10
+ var initButtons = function(buttons){
11
+ buttons.on('click', function(e){
12
+ e.preventDefault();
13
+ var $a = $(this);
14
+ if ( $a.hasClass('active') ) return false;
15
+ $buttons.removeClass("active");
16
+ $(this).addClass("active");
17
+ });
18
+ }
19
+
20
+ return this.each(function(){
21
+ if ( options ) {
22
+ $.extend(defaults, options)
23
+ }
24
+
25
+ initButtons($buttons);
26
+ });
27
+ }
28
+
29
+ $(function () {
30
+ $('[data-role="button-set"]').each(function () {
31
+ $(this).ButtonSet();
32
+ })
33
+ })
34
+ })(window.jQuery);