bootstrap_rainbow 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +29 -0
  5. data/Rakefile +1 -0
  6. data/app/helpers/breadcrumb_helper.rb +7 -0
  7. data/app/helpers/sidebar_helper.rb +15 -0
  8. data/bootstrap_rainbow.gemspec +26 -0
  9. data/lib/bootstrap_rainbow/breadcrumbs.rb +41 -0
  10. data/lib/bootstrap_rainbow/engine.rb +13 -0
  11. data/lib/bootstrap_rainbow/version.rb +3 -0
  12. data/lib/bootstrap_rainbow.rb +6 -0
  13. data/lib/generators/bootstrap_rainbow/install/install_generator.rb +21 -0
  14. data/lib/generators/bootstrap_rainbow/install/templates/breadcrumb.html.erb +12 -0
  15. data/lib/generators/bootstrap_rainbow/install/templates/layout.html.erb +46 -0
  16. data/lib/generators/bootstrap_rainbow/install/templates/sidebar.html.erb +36 -0
  17. data/vendor/assets/fonts/OpenSans-Extrabold.woff +0 -0
  18. data/vendor/assets/fonts/OpenSans-Semibold.woff +0 -0
  19. data/vendor/assets/fonts/OpenSans.woff +0 -0
  20. data/vendor/assets/images/avatar.png +0 -0
  21. data/vendor/assets/images/rainbow/body-bg.png +0 -0
  22. data/vendor/assets/images/rainbow/breadcrumb-bg.png +0 -0
  23. data/vendor/assets/images/rainbow/navbar-bg.png +0 -0
  24. data/vendor/assets/javascripts/bootstrap_rainbow.js +1 -0
  25. data/vendor/assets/javascripts/rainbow/rainbow-shrink.js +65 -0
  26. data/vendor/assets/stylesheets/bootstrap_rainbow.css.scss +1 -0
  27. data/vendor/assets/stylesheets/fonts.css.scss +18 -0
  28. data/vendor/assets/stylesheets/rainbow/_box.css.scss +113 -0
  29. data/vendor/assets/stylesheets/rainbow/_breadcrumb.css.scss +30 -0
  30. data/vendor/assets/stylesheets/rainbow/_button.css.scss +111 -0
  31. data/vendor/assets/stylesheets/rainbow/_color.css.scss +18 -0
  32. data/vendor/assets/stylesheets/rainbow/_layouts.css.scss +30 -0
  33. data/vendor/assets/stylesheets/rainbow/_main.css.scss +11 -0
  34. data/vendor/assets/stylesheets/rainbow/_mixins.css.scss +15 -0
  35. data/vendor/assets/stylesheets/rainbow/_navbar.css.scss +62 -0
  36. data/vendor/assets/stylesheets/rainbow/_reset.css.scss +16 -0
  37. data/vendor/assets/stylesheets/rainbow/_sidebar.css.scss +140 -0
  38. data/vendor/assets/stylesheets/rainbow/rainbow.css.scss +13 -0
  39. metadata +148 -0
data/.gitignore ADDED
@@ -0,0 +1,17 @@
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
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in bootstrap_rainbow.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 ChuckLee
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # BootstrapRainbow
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'bootstrap_rainbow'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install bootstrap_rainbow
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,7 @@
1
+ module BreadcrumbHelper
2
+
3
+ def render_breadcrumbs(partial = 'rainbow/breadcrumb', divider = '/')
4
+ s = render :partial => partial, :locals => { :divider => divider }
5
+ end
6
+
7
+ end
@@ -0,0 +1,15 @@
1
+ module SidebarHelper
2
+
3
+ def active_li?(options = {})
4
+ result = false
5
+ return '' if options[:controllers].blank?
6
+ options[:value] ||= ''
7
+ unless options[:actions].blank?
8
+ result = true if options[:controllers].include?(controller_name) and options[:actions].include?(action_name)
9
+ else
10
+ result = true if options[:controllers].include?(controller_name)
11
+ end
12
+ result = "#{options[:value]}" if result.present?
13
+ end
14
+
15
+ 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 'bootstrap_rainbow/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "bootstrap_rainbow"
8
+ gem.version = BootstrapRainbow::VERSION
9
+ gem.platform = Gem::Platform::RUBY
10
+ gem.authors = ["SapronLee"]
11
+ gem.email = ["sapronlee@gmail.com"]
12
+ gem.description = %q{extend bootstrap}
13
+ gem.summary = %q{extend bootstrap}
14
+ gem.homepage = "http://github.com/sapronlee"
15
+
16
+ gem.files = `git ls-files`.split($/)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.require_paths = ["lib"]
20
+
21
+ gem.add_dependency 'bootstrap-sass', '~> 2.3.0.0'
22
+ gem.add_dependency 'font-awesome-sass-rails', '~> 3.0.2.1'
23
+
24
+ gem.add_runtime_dependency 'railties', '>= 3.1.1'
25
+ gem.add_runtime_dependency 'sass-rails', '>= 3.1.1'
26
+ end
@@ -0,0 +1,41 @@
1
+ module BootstrapRainbow
2
+ module Breadcrumbs
3
+
4
+ def self.included(base)
5
+ base.extend(ClassMethods)
6
+ end
7
+
8
+ module ClassMethods
9
+ def add_breadcrumb(name, url, options = {})
10
+ class_name = self.name
11
+ before_filter options do |controller|
12
+ name = controller.send :translate_breadcrumb, name, class_name if name.is_a?(Symbol)
13
+ controller.send :add_breadcrumb, name, url
14
+ end
15
+ end
16
+ end
17
+
18
+ protected
19
+
20
+ def add_breadcrumb(name, url = '', options = {})
21
+ @breadcrumbs ||= []
22
+ name = translate_breadcrumb(name, self.class.name) if name.is_a?(Symbol)
23
+ url = eval(url.to_s) if url =~ /_path|_url|@/
24
+ @breadcrumbs << { :name => name, :url => url, :options => options }
25
+ end
26
+
27
+ def translate_breadcrumb(name, class_name)
28
+ scope = []
29
+ namespace = class_name.underscore.split('/')
30
+ namespace.last.sub!('_controller', '')
31
+ scope += namespace.insert(-2, 'breadcrumbs')
32
+ I18n.t name, :scope => scope
33
+ end
34
+
35
+ def render_breadcrumbs(partial = 'rainbow/breadcrumb', divider = '/')
36
+ s = render :partial => partial, :locals => { :divider => divider }
37
+ s.first
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,13 @@
1
+ require 'bootstrap_rainbow/breadcrumbs.rb'
2
+
3
+ module BootstrapRainbow
4
+ class Engine < ::Rails::Engine
5
+
6
+ initializer 'twitter-bootstrap-rails.setup_helpers' do |app|
7
+ app.config.to_prepare do
8
+ ActionController::Base.send :include, Breadcrumbs
9
+ end
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module BootstrapRainbow
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,6 @@
1
+ require "bootstrap_rainbow/version"
2
+ require "bootstrap_rainbow/engine"
3
+
4
+ module BootstrapRainbow
5
+
6
+ end
@@ -0,0 +1,21 @@
1
+ require 'rails/generators'
2
+
3
+ module BootstrapRainbow
4
+ module Generators
5
+ class InstallGenerator < ::Rails::Generators::Base
6
+ source_root File.expand_path("../templates", __FILE__)
7
+ desc "bootstrap_rainbow install."
8
+ argument :layout_name, :type => :string, :default => "application"
9
+
10
+ attr_reader :app_name
11
+
12
+ def generate_install
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
+ template "sidebar.html.erb", "app/views/rainbow/_sidebar_nav.html.erb"
17
+ template "breadcrumb.html.erb", "app/views/rainbow/_breadcrumb.html.erb"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ <%% if @breadcrumbs.present? %>
2
+ <ul class="breadcrumbs">
3
+ <%% separator = divider %>
4
+ <%% @breadcrumbs[0..-2].each do |crumb| %>
5
+ <li>
6
+ <%%= link_to crumb[:name], crumb[:url], crumb[:options] %>
7
+ <span class="divider"><%%= separator %></span>
8
+ </li>
9
+ <%% end %>
10
+ <li class="active"><%%= @breadcrumbs.last[:name] %></li>
11
+ </ul>
12
+ <%% end %>
@@ -0,0 +1,46 @@
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="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.1/html5shiv.js" type="text/javascript"></script>
13
+ <![endif]-->
14
+
15
+ <%%= stylesheet_link_tag "application", :media => "all" %>
16
+ </head>
17
+ <body>
18
+
19
+ <header class="navbar navbar-fixed-top">
20
+ <%%= link_to "<%= app_name %>", root_path, class: :brand %>
21
+ </header>
22
+
23
+ <nav class="sidebar">
24
+ <%%= render "rainbow/sidebar_nav" %>
25
+ </nav>
26
+
27
+ <section class="main">
28
+ <div class="row-fluid">
29
+ <div class="span12">
30
+ <hr class="divider" />
31
+ <%%= render_breadcrumbs %>
32
+ <hr class="divider" />
33
+ </div>
34
+ </div>
35
+
36
+ <%%= yield %>
37
+
38
+ </section>
39
+
40
+ <!-- Javascripts
41
+ ================================================== -->
42
+ <!-- Placed at the end of the document so the pages load faster -->
43
+ <%%= javascript_include_tag "application" %>
44
+
45
+ </body>
46
+ </html>
@@ -0,0 +1,36 @@
1
+ <ul id="sidebar-nav">
2
+
3
+ <li class="accordion-group <%%= "#{active_li?(controllers: %w(home), value: 'active')}" %>">
4
+ <a href="<%%= root_path %>">
5
+ <span class="icon"><i class="icon-dashboard"></i></span>
6
+ <span class="text"><span class="title">Dashboard</span></span>
7
+ </a>
8
+ </li>
9
+
10
+ <li class="accordion-group <%%= "#{active_li?(controllers: %w(examples), value: 'active')}" %>">
11
+ <a data-toggle="collapse" data-parent="#sidebar-nav" href="#example">
12
+ <span class="icon"><i class="icon-magic"></i></span>
13
+ <span class="text"><span class="title">Examples</span><b class="caret"></b></span>
14
+ </a>
15
+ <div id="example" class="collapse <%%= "#{active_li?(controllers: %w(examples), value: 'in')}" %>">
16
+ <ul>
17
+
18
+ <li class="<%%= "#{active_li?(controllers: %w(example), actions: %w(index), value: 'active')}" %>">
19
+ <a href="#">
20
+ <span class="icon"><i class="icon-circle"></i></span>
21
+ <span class="text">Demo</span>
22
+ </a>
23
+ </li>
24
+
25
+ <li class="<%%= "#{active_li?(controllers: %w(example), actions: %w(index), value: 'active')}" %>">
26
+ <a href="#">
27
+ <span class="icon"><i class="icon-circle"></i></span>
28
+ <span class="text">Demo</span>
29
+ </a>
30
+ </li>
31
+
32
+ </ul>
33
+ </div>
34
+ </li>
35
+
36
+ </ul>
Binary file
Binary file
@@ -0,0 +1 @@
1
+ //= require rainbow/rainbow-shrink
@@ -0,0 +1,65 @@
1
+ !function ($) {
2
+
3
+ "use strict"; // jshint ;_;
4
+
5
+ /* SHRINK PUBLIC CLASS DEFINITION
6
+ * ================================ */
7
+
8
+ var Shrink = function(element, options) {
9
+ this.$element = $(element)
10
+ this.options = $.extend({}, $.fn.shrink.defaults, options)
11
+ }
12
+
13
+ Shrink.prototype = {
14
+
15
+ Constructor: Shrink,
16
+
17
+ toggle: function() {
18
+ var $box = this.$element.parents('.box'),
19
+ $icon = this.$element.children('i')
20
+
21
+ $box.toggleClass('closed')
22
+ $icon.toggleClass(this.options.showIcon).toggleClass(this.options.hideIcon)
23
+ }
24
+ }
25
+
26
+ /* SHRINK PLUGIN DEFINITION
27
+ * ========================== */
28
+
29
+ var old = $.fn.shrink
30
+
31
+ $.fn.shrink = function (option) {
32
+ return this.each(function () {
33
+ var $this = $(this),
34
+ data = $this.data('shrink'),
35
+ options = typeof option == 'object' && option
36
+ if (!data) $this.data('shrink', (data = new Shrink(this, options)))
37
+ if (option == 'shrink') data.toggle()
38
+ })
39
+ }
40
+
41
+ $.fn.shrink.defaults = {
42
+ showIcon: 'icon-caret-up',
43
+ hideIcon: 'icon-caret-down'
44
+ }
45
+
46
+ $.fn.shrink.Constructor = Shrink
47
+
48
+ /* SHRINK NO CONFLICT
49
+ * ==================== */
50
+
51
+
52
+ $.fn.shrink.noConflict = function () {
53
+ $.fn.shrink = old
54
+ return this
55
+ }
56
+
57
+ /* SHRINK DATA-API
58
+ * ================= */
59
+
60
+ $(document).on('click.shrink.data-api', '[data-toggle="shrink"]', function (e) {
61
+ var $btn = $(this)
62
+ $btn.shrink('shrink')
63
+ })
64
+
65
+ }(window.jQuery);
@@ -0,0 +1 @@
1
+ @import "rainbow/rainbow";
@@ -0,0 +1,18 @@
1
+ @font-face {
2
+ font-family: 'Open Sans';
3
+ font-style: normal;
4
+ font-weight: 400;
5
+ src: local('Open Sans'), local('OpenSans'), font-url('OpenSans.woff') format('woff');
6
+ }
7
+ @font-face {
8
+ font-family: 'Open Sans';
9
+ font-style: normal;
10
+ font-weight: 600;
11
+ src: local('Open Sans Semibold'), local('OpenSans-Semibold'), font-url('OpenSans-Semibold.woff') format('woff');
12
+ }
13
+ @font-face {
14
+ font-family: 'Open Sans';
15
+ font-style: normal;
16
+ font-weight: 800;
17
+ src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), font-url('OpenSans-Extrabold.woff') format('woff');
18
+ }
@@ -0,0 +1,113 @@
1
+ .box {
2
+ height: 100%;
3
+ background: transparent;
4
+ margin: 10px auto 5px auto;
5
+ padding: 0;
6
+ line-height: 20px;
7
+
8
+ .box-header {
9
+ margin-top: 0px;
10
+ padding: 10px 10px 10px 20px;
11
+ font-size: 1em;
12
+ font-weight: 700;
13
+ line-height: 25px;
14
+ text-align: left;
15
+ text-transform: uppercase;
16
+ color: rgba(51, 86, 106, 0.5);
17
+ text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.6), 0 0 1px rgba(0, 0, 0, 0.3);
18
+ i {
19
+ padding-right: .3em;
20
+ }
21
+ }
22
+
23
+ .page-header {
24
+ padding: 0;
25
+ margin: 0;
26
+ width: 100%;
27
+ margin-bottom: 10px;
28
+ margin-top: 40px;
29
+ border-bottom: 1px solid rgba(51, 86, 106, 0.15);
30
+ font-size: 1.5em;
31
+ text-transform: uppercase;
32
+ line-height: 30px;
33
+ color: rgba(0, 0, 0, 0.25);
34
+ text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.6), 0 0 1px rgba(0, 0, 0, 0.3);
35
+ h2 {
36
+ line-height: 20px;
37
+ }
38
+ &:first-child {
39
+ margin-top: 0;
40
+ }
41
+ }
42
+
43
+ h1, h2, h3, h4, h5, h6 {
44
+ color: rgba(0, 0, 0, 0.25);
45
+ text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.6), 0 0 1px rgba(0, 0, 0, 0.3);
46
+ }
47
+
48
+ &.closed {
49
+ & > .box-content {
50
+ display: none;
51
+ }
52
+ }
53
+
54
+ &.bordered {
55
+ background-color: #fff;
56
+ border: 1px solid #cccccc;
57
+ -webkit-border-radius: 2px;
58
+ -moz-border-radius: 2px;
59
+ -ms-border-radius: 2px;
60
+ -o-border-radius: 2px;
61
+ border-radius: 2px;
62
+ -webkit-box-shadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.2);
63
+ -moz-box-shadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.2);
64
+ box-shadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.2);
65
+ .box-header {
66
+ .pull-right {
67
+ line-height: 22px;
68
+ text-transform: none;
69
+ .btn-group {
70
+ font-size: 1em;
71
+ a {
72
+ &:hover, &:active {
73
+ text-decoration: none;
74
+ }
75
+ }
76
+ &.open .dropdown-toggle {
77
+ -webkit-box-shadow: none;
78
+ -moz-box-shadow: none;
79
+ box-shadow: none;
80
+ }
81
+ & > .btn, & > .dropdown-menu {
82
+ margin-left: -150px;
83
+ margin-top: -2px;
84
+ i {
85
+ text-shadow: none;
86
+ }
87
+ }
88
+ }
89
+ a, i {
90
+ color: rgba(0, 0, 0, 0.2);
91
+ text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.6), 0 0 1px rgba(0, 0, 0, 0.3);
92
+ &:hover, &:active {
93
+ color: rgba(0, 0, 0, 0.4);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ &.medium-blue {
100
+ background: #67a0be;
101
+ border: 1px solid #5595b6;
102
+ &:hover {
103
+ background: #5c99b9;
104
+ }
105
+ }
106
+ &.dark-blue {
107
+ background: #50769b;
108
+ border: 1px solid #47698a;
109
+ &:hover {
110
+ background: #4b6e91;
111
+ }
112
+ }
113
+ }
@@ -0,0 +1,30 @@
1
+ .breadcrumbs {
2
+ width: 100%;
3
+ height: 30px;
4
+ list-style: none;
5
+ font-size: 12px;
6
+ margin: 0;
7
+ padding: 0;
8
+ padding-left: 15px;
9
+ background: image-url('rainbow/breadcrumb-bg.png');
10
+ & > li {
11
+ display: inline-block;
12
+ line-height: 30px;
13
+ a {
14
+ padding: 0px 2px;
15
+ font-weight: 400;
16
+ font-size: 1em;
17
+ color: rgba(0, 0, 0, 0.4);
18
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5);
19
+ }
20
+ .divider {
21
+ color: rgba(0, 0, 0, 0.3);
22
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5);
23
+ padding: 0px 2px;
24
+ }
25
+ &.active, a:hover, a:active {
26
+ color: #67a0be;
27
+ text-decoration: none;
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,111 @@
1
+ .btn {
2
+ @include buttonBackground(#f2f2f2, #e8e8e8, #444, #fff 0 1px 0);
3
+ @include box-shadow(#fff 0 1px 0 inset);
4
+ border: 1px solid #c4c4c4;
5
+ }
6
+
7
+ .btn-primary, .btn-blue {
8
+ @include buttonBackground(#3da0ea, #3983de);
9
+ @include box-shadow(rgba(255,255,255,0.3) 0 1px 0 inset);
10
+ border: 1px solid #3c6791;
11
+ }
12
+
13
+ .btn-cyan, .btn-info {
14
+ @include buttonBackground(#4ec9ce, #45b4bf);
15
+ @include box-shadow(rgba(255,255,255,0.3) 0 1px 0 inset);
16
+ border: 1px solid #36919b;
17
+ }
18
+
19
+ .btn-green, .btn-success {
20
+ @include buttonBackground(#bacf0b, #98ba09);
21
+ @include box-shadow(rgba(255,255,255,0.3) 0 1px 0 inset);
22
+ border: 1px solid #7c9710;
23
+ }
24
+
25
+ .btn-orange, .btn-warning {
26
+ @include buttonBackground(#f2ac1e, #e7912a);
27
+ @include box-shadow(rgba(255,255,255,0.3) 0 1px 0 inset);
28
+ border: 1px solid #c07c1e;
29
+ }
30
+
31
+ .btn-red, .btn-danger {
32
+ @include buttonBackground(#ec7337, #d85837);
33
+ @include box-shadow(rgba(255,255,255,0.3) 0 1px 0 inset);
34
+ border: 1px solid #a1391e;
35
+ }
36
+
37
+ .btn-black, .btn-inverse {
38
+ @include buttonBackground(#616161, #505050);
39
+ @include box-shadow(rgba(255,255,255,0.3) 0 1px 0 inset);
40
+ border: 1px solid #1b1b1b;
41
+ }
42
+
43
+ .btn-pink {
44
+ @include buttonBackground(#f377ab, #e3649a);
45
+ @include box-shadow(rgba(255,255,255,0.3) 0 1px 0 inset);
46
+ border: 1px solid #b4366b;
47
+ }
48
+
49
+ .btn-link {
50
+ background: none!important;
51
+ border: none!important;
52
+ color: #08c;
53
+ @include box-shadow(none);
54
+ }
55
+
56
+ .btn .caret {
57
+ border-top-color: #444;
58
+ }
59
+
60
+ .btn-blue .caret,
61
+ .btn-orange .caret,
62
+ .btn-green .caret,
63
+ .btn-cyan .caret,
64
+ .btn-red .caret,
65
+ .btn-black .caret,
66
+ .btn-black.dropdown-toggle .caret,
67
+ .btn-pink .caret,
68
+ .btn-info .caret,
69
+ .btn-warning .caret,
70
+ .btn-success .caret,
71
+ .btn-danger .caret,
72
+ .btn-inverse .caret {
73
+ border-top-color: #fff;
74
+ }
75
+
76
+ .btn-group.open {
77
+ .btn-primary.dropdown-toggle, .btn-blue.dropdown-toggle,
78
+ .btn-warning.dropdown-toggle, .btn-orange.dropdown-toggle,
79
+ .btn-danger.dropdown-toggle, .btn-red.dropdown-toggle,
80
+ .btn-success.dropdown-toggle, .btn-green.dropdown-toggle,
81
+ .btn-info.dropdown-toggle, .btn-cyan.dropdown-toggle,
82
+ .btn-pink.dropdown-toggle {
83
+ color: #fff;
84
+ }
85
+
86
+ .btn-primary.dropdown-toggle, .btn-blue.dropdown-toggle {
87
+ background-color: #3580dd;
88
+ }
89
+ .btn-warning.dropdown-toggle, .btn-orange.dropdown-toggle {
90
+ background-color: #f89406;
91
+ }
92
+ .btn-danger.dropdown-toggle, .btn-red.dropdown-toggle {
93
+ background-color: #d75433;
94
+ }
95
+ .btn-success.dropdown-toggle, .btn-green.dropdown-toggle {
96
+ background-color: #94b509;
97
+ }
98
+ .btn-info.dropdown-toggle, .btn-cyan.dropdown-toggle {
99
+ background-color: #41b2be;
100
+ }
101
+ .btn-inverse.dropdown-toggle, .btn-black.dropdown-toggle {
102
+ background-color: #505050;
103
+ }
104
+ .btn-pink.dropdown-toggle {
105
+ background-color: #e26097;
106
+ }
107
+ }
108
+
109
+ .dropdown-menu .divider {
110
+ @include box-sizing(content-box);
111
+ }
@@ -0,0 +1,18 @@
1
+ .medium-blue {
2
+ background: #67a0be;
3
+ background-size: 100%;
4
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #79abc6), color-stop(100%, #5595b6));
5
+ background-image: -webkit-linear-gradient(top, #79abc6, #5595b6);
6
+ background-image: -moz-linear-gradient(top, #79abc6, #5595b6);
7
+ background-image: -o-linear-gradient(top, #79abc6, #5595b6);
8
+ background-image: linear-gradient(top, #79abc6, #5595b6);
9
+ }
10
+ .dark-blue {
11
+ background: #50769b;
12
+ background-size: 100%;
13
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5a83aa), color-stop(100%, #47698a));
14
+ background-image: -webkit-linear-gradient(top, #5a83aa, #47698a);
15
+ background-image: -moz-linear-gradient(top, #5a83aa, #47698a);
16
+ background-image: -o-linear-gradient(top, #5a83aa, #47698a);
17
+ background-image: linear-gradient(top, #5a83aa, #47698a);
18
+ }
@@ -0,0 +1,30 @@
1
+ .padded {
2
+ padding: 15px 30px;
3
+ }
4
+ .padded5 {
5
+ padding: 5px;
6
+ }
7
+ .padded10 {
8
+ padding: 10px;
9
+ }
10
+ .padded20 {
11
+ padding: 20px;
12
+ }
13
+ .hpadded {
14
+ padding: 0px 8px;
15
+ }
16
+ .hpadded20 {
17
+ padding: 0px 20px;
18
+ }
19
+ .hpadded30 {
20
+ padding: 0px 30px;
21
+ }
22
+ .vpadded {
23
+ padding: 8px 0px;
24
+ }
25
+ .vpadded20 {
26
+ padding: 20px 0px;
27
+ }
28
+ .vpadded30 {
29
+ padding: 30px 0px;
30
+ }
@@ -0,0 +1,11 @@
1
+ .main {
2
+ overflow: hidden;
3
+ margin-left: 140px;
4
+ padding-top: 50px;
5
+ hr.divider {
6
+ margin: 0;
7
+ border: 0;
8
+ border-top: 1px solid #ddd;
9
+ border-bottom: 1px solid #F5F5F5;
10
+ }
11
+ }
@@ -0,0 +1,15 @@
1
+ @import "bootstrap/mixins";
2
+
3
+ @mixin navbar($backgroundColor: #000, $borderColor: #ccc, $startColor: #555, $endColor: #333) {
4
+ background: $backgroundColor;
5
+ border-bottom: 1px solid #{$borderColor};
6
+ @include box-shadow(rgba(255,255,255,0.25) 0 1px 0 inset);
7
+ @include gradient-vertical($startColor, $endColor);
8
+ }
9
+
10
+ @mixin text-shadow($shadow...) {
11
+ -webkit-text-shadow: $shadow;
12
+ -moz-text-shadow: $shadow;
13
+ -o-text-shadow: $shadow;
14
+ text-shadow: $shadow;
15
+ }
@@ -0,0 +1,62 @@
1
+ .navbar {
2
+ height: 40px;
3
+ margin-top: 0px;
4
+ margin-right: 0px;
5
+ width: 100%;
6
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.3);
7
+ -moz-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.3);
8
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.3);
9
+ background-color: #333;
10
+ background: image-url('rainbow/navbar-bg.png');
11
+ border-bottom: 1px solid #292929;
12
+ a.brand {
13
+ -webkit-transition: all 0.5s linear;
14
+ -moz-transition: all 0.5s linear;
15
+ -o-transition: all 0.5s linear;
16
+ transition: all 0.5s linear;
17
+ padding: 0;
18
+ padding-left: 20px;
19
+ font-size: 24px;
20
+ font-weight: 600;
21
+ line-height: 39px;
22
+ text-align: center;
23
+ color: #222;
24
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 0 30px rgba(255, 255, 255, 0.125);
25
+ margin-left: 0;
26
+ &:hover, &:active, &.active {
27
+ color: #fff;
28
+ }
29
+ }
30
+ .nav {
31
+ &.pull-right {
32
+ margin-right: 20px;
33
+ }
34
+ & > li > a {
35
+ text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
36
+ &:focus, &:hover {
37
+ color: #fff;
38
+ }
39
+ }
40
+ .user-menu {
41
+ img {
42
+ display: inline-block;
43
+ height: 20px;
44
+ vertical-align: top;
45
+ width: 20px;
46
+ -webkit-border-radius: 3px;
47
+ -moz-border-radius: 3px;
48
+ border-radius: 3px;
49
+ -webkit-box-shadow: rgba(0,0,0,0.2) 0 -1px 0;
50
+ -moz-box-shadow: rgba(0,0,0,0.2) 0 -1px 0;
51
+ box-shadow: rgba(0,0,0,0.2) 0 -1px 0;
52
+ }
53
+ .name {
54
+ padding-left: 5px;
55
+ }
56
+ .dropdown-toggle .caret {
57
+ border-top-color: #aaa;
58
+ border-bottom-color: #aaa;
59
+ }
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,16 @@
1
+ * {
2
+ margin: 0px;
3
+ padding: 0px;
4
+ text-decoration: none;
5
+ outline: none;
6
+ }
7
+ body {
8
+ background-image: image-url('rainbow/body-bg.png');
9
+ width: 100%;
10
+ height: 100%;
11
+ margin: 0px;
12
+ -webkit-font-smoothing: antialiased;
13
+ }
14
+ a {
15
+ cursor: pointer;
16
+ }
@@ -0,0 +1,140 @@
1
+ .sidebar {
2
+ background-color: #333;
3
+ background: image-url('rainbow/navbar-bg.png');
4
+ -webkit-box-shadow: rgba(0, 0, 0, 0.2) 3px 0px 5px 0px;
5
+ -moz-box-shadow: rgba(0, 0, 0, 0.2) 3px 0px 5px 0px;
6
+ box-shadow: rgba(0, 0, 0, 0.2) 3px 0px 5px 0px;
7
+ border-right: 1px solid #1D1E21;
8
+ float: left;
9
+ width: 140px;
10
+ height: 100%;
11
+ position: fixed;
12
+ margin-top: 40px;
13
+ font-size: 11px;
14
+ ul, ul li {
15
+ list-style: none;
16
+ margin: 0;
17
+ padding: 0;
18
+ }
19
+ .brand {
20
+ display: none;
21
+ }
22
+ .accordion-group {
23
+ margin-bottom: 0;
24
+ -webkit-border-radius: 0;
25
+ -moz-border-radius: 0;
26
+ border-radius: 0;
27
+ border-left: none;
28
+ border-right: none;
29
+ }
30
+ & > ul > li {
31
+ border-bottom: 1px solid #1D1E21;
32
+ border-top: 1px solid #4A4A54;
33
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
34
+ &.active {
35
+ color: #fff;
36
+ background: rgba(0, 0, 0, 0.3);
37
+ & > a {
38
+ font-weight: bold;
39
+ color: #fff;
40
+ }
41
+ }
42
+ & > a {
43
+ padding: 7px 0;
44
+ padding-left: 12px;
45
+ display: block;
46
+ color: #ddd;
47
+ text-align: left;
48
+ text-decoration: none;
49
+ line-height: 36px;
50
+ opacity: .9;
51
+ .icon {
52
+ display: inline-block;
53
+ margin-top: 3px;
54
+ width: 20%;
55
+ }
56
+ i {
57
+ display: inline-block;
58
+ font-size: 26px;
59
+ height: 18px;
60
+ padding-right: 5px;
61
+ width: 100%;
62
+ }
63
+ .text {
64
+ display: inline-block;
65
+ width: 65%;
66
+ margin-left: 7px;
67
+ .title {
68
+ display: inline-block;
69
+ width: 65px;
70
+ overflow: hidden;
71
+ }
72
+ }
73
+ .caret {
74
+ margin-left: 5px;
75
+ border-top-color: #fff;
76
+ border-bottom-color: #fff;
77
+ margin-top: 16px;
78
+ }
79
+ &:hover, &:active {
80
+ color: #fff;
81
+ background: rgba(0, 0, 0, 0.3);
82
+ -webkit-transition: all 0.3s ease-in-out;
83
+ -moz-transition: all 0.3s ease-in-out;
84
+ -o-transition: all 0.3s ease-in-out;
85
+ transition: all 0.3s ease-in-out;
86
+ }
87
+ }
88
+ & > div.collapse {
89
+ width: 100%;
90
+ background: #333;
91
+ background-image: image-url('rainbow/navbar-bg.png');
92
+ position: relative;
93
+ overflow: hidden;
94
+ -webkit-transition: height 0.35s ease;
95
+ -moz-transition: height 0.35s ease;
96
+ -o-transition: height 0.35s ease;
97
+ transition: height 0.35s ease;
98
+ & li {
99
+ background: rgba(0, 0, 0, 0.3);
100
+ border-bottom: 1px solid #222;
101
+ border-top: 1px solid #353535;
102
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
103
+ &:first-child {
104
+ border-top: 1px solid #222;
105
+ }
106
+ &:last-child {
107
+ border-bottom: 0;
108
+ }
109
+ &.active a {
110
+ color: #fff;
111
+ background: #4888aa;
112
+ font-weight: bold;
113
+ }
114
+ & > a {
115
+ width: 100%;
116
+ display: block;
117
+ color: #eeeeee;
118
+ height: 30px;
119
+ line-height: 30px;
120
+ font-size: 1em;
121
+ text-align: left;
122
+ padding-left: 10px;
123
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
124
+ &:hover, &.active, &:active {
125
+ color: #fff;
126
+ background: #396b86;
127
+ -webkit-transition: all 0.3s ease-in-out;
128
+ -moz-transition: all 0.3s ease-in-out;
129
+ -o-transition: all 0.3s ease-in-out;
130
+ transition: all 0.3s ease-in-out;
131
+ text-decoration: none;
132
+ }
133
+ .icon {
134
+ padding-right: 5px;
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
@@ -0,0 +1,13 @@
1
+ @import "rainbow/mixins";
2
+
3
+ @import "rainbow/reset";
4
+ @import "rainbow/layouts";
5
+
6
+ @import "rainbow/navbar";
7
+ @import "rainbow/sidebar";
8
+ @import "rainbow/breadcrumb";
9
+ @import "rainbow/main";
10
+
11
+ @import "rainbow/box";
12
+
13
+ @import "rainbow/button";
metadata ADDED
@@ -0,0 +1,148 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bootstrap_rainbow
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - SapronLee
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bootstrap-sass
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.3.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.3.0.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: font-awesome-sass-rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 3.0.2.1
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 3.0.2.1
46
+ - !ruby/object:Gem::Dependency
47
+ name: railties
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 3.1.1
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 3.1.1
62
+ - !ruby/object:Gem::Dependency
63
+ name: sass-rails
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 3.1.1
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 3.1.1
78
+ description: extend bootstrap
79
+ email:
80
+ - sapronlee@gmail.com
81
+ executables: []
82
+ extensions: []
83
+ extra_rdoc_files: []
84
+ files:
85
+ - .gitignore
86
+ - Gemfile
87
+ - LICENSE.txt
88
+ - README.md
89
+ - Rakefile
90
+ - app/helpers/breadcrumb_helper.rb
91
+ - app/helpers/sidebar_helper.rb
92
+ - bootstrap_rainbow.gemspec
93
+ - lib/bootstrap_rainbow.rb
94
+ - lib/bootstrap_rainbow/breadcrumbs.rb
95
+ - lib/bootstrap_rainbow/engine.rb
96
+ - lib/bootstrap_rainbow/version.rb
97
+ - lib/generators/bootstrap_rainbow/install/install_generator.rb
98
+ - lib/generators/bootstrap_rainbow/install/templates/breadcrumb.html.erb
99
+ - lib/generators/bootstrap_rainbow/install/templates/layout.html.erb
100
+ - lib/generators/bootstrap_rainbow/install/templates/sidebar.html.erb
101
+ - vendor/assets/fonts/OpenSans-Extrabold.woff
102
+ - vendor/assets/fonts/OpenSans-Semibold.woff
103
+ - vendor/assets/fonts/OpenSans.woff
104
+ - vendor/assets/images/avatar.png
105
+ - vendor/assets/images/rainbow/body-bg.png
106
+ - vendor/assets/images/rainbow/breadcrumb-bg.png
107
+ - vendor/assets/images/rainbow/navbar-bg.png
108
+ - vendor/assets/javascripts/bootstrap_rainbow.js
109
+ - vendor/assets/javascripts/rainbow/rainbow-shrink.js
110
+ - vendor/assets/stylesheets/bootstrap_rainbow.css.scss
111
+ - vendor/assets/stylesheets/fonts.css.scss
112
+ - vendor/assets/stylesheets/rainbow/_box.css.scss
113
+ - vendor/assets/stylesheets/rainbow/_breadcrumb.css.scss
114
+ - vendor/assets/stylesheets/rainbow/_button.css.scss
115
+ - vendor/assets/stylesheets/rainbow/_color.css.scss
116
+ - vendor/assets/stylesheets/rainbow/_layouts.css.scss
117
+ - vendor/assets/stylesheets/rainbow/_main.css.scss
118
+ - vendor/assets/stylesheets/rainbow/_mixins.css.scss
119
+ - vendor/assets/stylesheets/rainbow/_navbar.css.scss
120
+ - vendor/assets/stylesheets/rainbow/_reset.css.scss
121
+ - vendor/assets/stylesheets/rainbow/_sidebar.css.scss
122
+ - vendor/assets/stylesheets/rainbow/rainbow.css.scss
123
+ homepage: http://github.com/sapronlee
124
+ licenses: []
125
+ post_install_message:
126
+ rdoc_options: []
127
+ require_paths:
128
+ - lib
129
+ required_ruby_version: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ none: false
137
+ requirements:
138
+ - - ! '>='
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ requirements: []
142
+ rubyforge_project:
143
+ rubygems_version: 1.8.24
144
+ signing_key:
145
+ specification_version: 3
146
+ summary: extend bootstrap
147
+ test_files: []
148
+ has_rdoc: