rails-bootstrap-material-design 0.5.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/README.md +18 -0
  4. data/Rakefile +1 -0
  5. data/app/.DS_Store +0 -0
  6. data/app/assets/.DS_Store +0 -0
  7. data/app/assets/images/.DS_Store +0 -0
  8. data/app/assets/images/bootstrap-material-design/material-design-color-palette.jpg +0 -0
  9. data/app/assets/javascripts/.DS_Store +0 -0
  10. data/app/assets/javascripts/bootstrap-material-design.js +2 -0
  11. data/app/assets/javascripts/bootstrap-material-design/material.js +350 -0
  12. data/app/assets/javascripts/bootstrap-material-design/ripples.js +325 -0
  13. data/app/assets/stylesheets/.DS_Store +0 -0
  14. data/app/assets/stylesheets/bootstrap-material-design.scss +4 -0
  15. data/app/assets/stylesheets/bootstrap-material-design/.DS_Store +0 -0
  16. data/app/assets/stylesheets/bootstrap-material-design/_alerts.scss +17 -0
  17. data/app/assets/stylesheets/bootstrap-material-design/_buttons.scss +244 -0
  18. data/app/assets/stylesheets/bootstrap-material-design/_cards.scss +66 -0
  19. data/app/assets/stylesheets/bootstrap-material-design/_checkboxes.scss +270 -0
  20. data/app/assets/stylesheets/bootstrap-material-design/_colors-map.scss +311 -0
  21. data/app/assets/stylesheets/bootstrap-material-design/_colors.scss +359 -0
  22. data/app/assets/stylesheets/bootstrap-material-design/_core.scss +93 -0
  23. data/app/assets/stylesheets/bootstrap-material-design/_dialogs.scss +52 -0
  24. data/app/assets/stylesheets/bootstrap-material-design/_dividers.scss +71 -0
  25. data/app/assets/stylesheets/bootstrap-material-design/_form.scss +40 -0
  26. data/app/assets/stylesheets/bootstrap-material-design/_import-bs-sass.scss +2 -0
  27. data/app/assets/stylesheets/bootstrap-material-design/_inputs-size.scss +221 -0
  28. data/app/assets/stylesheets/bootstrap-material-design/_inputs.scss +352 -0
  29. data/app/assets/stylesheets/bootstrap-material-design/_labels.scss +4 -0
  30. data/app/assets/stylesheets/bootstrap-material-design/_lists.scss +102 -0
  31. data/app/assets/stylesheets/bootstrap-material-design/_mixins-utilities.scss +31 -0
  32. data/app/assets/stylesheets/bootstrap-material-design/_mixins.scss +241 -0
  33. data/app/assets/stylesheets/bootstrap-material-design/_navbar.scss +232 -0
  34. data/app/assets/stylesheets/bootstrap-material-design/_panels.scss +21 -0
  35. data/app/assets/stylesheets/bootstrap-material-design/_plugins.scss +5 -0
  36. data/app/assets/stylesheets/bootstrap-material-design/_popups.scss +18 -0
  37. data/app/assets/stylesheets/bootstrap-material-design/_progress.scss +10 -0
  38. data/app/assets/stylesheets/bootstrap-material-design/_radios.scss +115 -0
  39. data/app/assets/stylesheets/bootstrap-material-design/_shadows.scss +82 -0
  40. data/app/assets/stylesheets/bootstrap-material-design/_table.scss +15 -0
  41. data/app/assets/stylesheets/bootstrap-material-design/_tabs.scss +24 -0
  42. data/app/assets/stylesheets/bootstrap-material-design/_themes.scss +6 -0
  43. data/app/assets/stylesheets/bootstrap-material-design/_togglebutton.scss +83 -0
  44. data/app/assets/stylesheets/bootstrap-material-design/_typography.scss +15 -0
  45. data/app/assets/stylesheets/bootstrap-material-design/_variables.scss +169 -0
  46. data/app/assets/stylesheets/bootstrap-material-design/_welljumbo.scss +26 -0
  47. data/app/assets/stylesheets/bootstrap-material-design/plugins/_plugin-dropdownjs.scss +15 -0
  48. data/app/assets/stylesheets/bootstrap-material-design/plugins/_plugin-nouislider.scss +110 -0
  49. data/app/assets/stylesheets/bootstrap-material-design/plugins/_plugin-selectize.scss +91 -0
  50. data/app/assets/stylesheets/bootstrap-material-design/plugins/_plugin-snackbarjs.scss +32 -0
  51. data/app/assets/stylesheets/bootstrap-material-design/ripples.scss +36 -0
  52. data/lib/rails-bootstrap-material-design.rb +25 -0
  53. data/lib/rails-bootstrap-material-design/version.rb +3 -0
  54. data/rails-bootstrap-material-design.gemspec +20 -0
  55. metadata +124 -0
@@ -0,0 +1,31 @@
1
+ // This file is here to emulate the less #contrast function
2
+
3
+ // TODO: this may be useful for the inverse theme, but if not, remove (it is unused after the removal of fullpalette)
4
+
5
+ // contrast-color and brightness borrowed from compass
6
+ // Copyright (c) 2009-2014 Christopher M. Eppstein
7
+ // Complies with license: https://github.com/Compass/compass/blob/stable/LICENSE.markdown
8
+ @function contrast-color($color, $dark: $contrasted-dark-default, $light: $contrasted-light-default, $threshold: null) {
9
+ @if $threshold {
10
+ // Deprecated in Compass 0.13
11
+ @warn "The $threshold argment to contrast-color is no longer needed and will be removed in the next release.";
12
+ }
13
+ @if $color == null {
14
+ @return null;
15
+ }
16
+ @else {
17
+ $color-brightness: brightness($color);
18
+ $dark-text-brightness: brightness($dark);
19
+ $light-text-brightness: brightness($light);
20
+ @return if(abs($color-brightness - $light-text-brightness) > abs($color-brightness - $dark-text-brightness), $light, $dark);
21
+ }
22
+ }
23
+
24
+ @function brightness($color) {
25
+ @if type-of($color) == color {
26
+ @return (red($color) * 0.299 + green($color) * 0.587 + blue($color) * 0.114) / 255 * 100%;
27
+ }
28
+ @else {
29
+ @return unquote("brightness(#{$color})");
30
+ }
31
+ }
@@ -0,0 +1,241 @@
1
+ @import "mixins-utilities";
2
+
3
+ // Placeholder text
4
+ @mixin material-placeholder() {
5
+ &::-moz-placeholder {@content; } // Firefox
6
+ &:-ms-input-placeholder {@content; } // Internet Explorer 10+
7
+ &::-webkit-input-placeholder {@content; } // Safari and Chrome
8
+ }
9
+
10
+
11
+ // variations(unquote(""), background-color, #FFF);
12
+ @mixin variations($component, $selector-suffix, $mdb-param-1, $color-default) {
13
+ @include generic-variations($component, $selector-suffix, $color-default, "variations-content", $mdb-param-1);
14
+ }
15
+
16
+ @mixin variations-content($args) {
17
+ //@debug "#{map-get($args, mixin-name)}{ #{map-get($args, material-param-1)}: #{map-get($args, variation-color)}; }";
18
+ //@debug "#{inspect($args)}";
19
+ //@error "break here";
20
+ #{map-get($args, material-param-1)}: map-get($args, variation-color);
21
+ }
22
+
23
+ @mixin background-variations($component, $selector-suffix, $color-default) {
24
+ @include generic-variations($component, $selector-suffix, $color-default, "background-variations-content", null);
25
+ }
26
+
27
+ @mixin background-variations-content($args) {
28
+ background-color: map-get($args, variation-color);
29
+ @if (map-get($args, variation-color) == $mdb-btn-background-color) {
30
+ color: $mdb-text-color-primary;
31
+ } @else {
32
+ color: map-get($args, variation-color-text);
33
+ }
34
+ }
35
+
36
+ //@mixin text-variations($component, $selector-suffix, $color-default) {
37
+ // @include generic-variations($component, $selector-suffix, $color-default, "text-variations-content", null);
38
+ //}
39
+ //
40
+ //@mixin text-variations-content($args) {
41
+ // color: map-get($args, variation-color);
42
+ //}
43
+
44
+ @mixin button-variations($component, $selector-suffix, $color-default) {
45
+ @include generic-variations($component, $selector-suffix, $color-default, "button-variations-content", 4%);
46
+ }
47
+
48
+ @mixin button-variations-content($args) {
49
+ //@debug "#{inspect($args)}";
50
+ $variation-color: map-get($args, variation-color);
51
+ $mdb-param-1: map-get($args, material-param-1);
52
+ background-color: contrast-color($variation-color,
53
+ darken($variation-color, $mdb-param-1),
54
+ lighten($variation-color, $mdb-param-1));
55
+ }
56
+
57
+ //@mixin bg-color-variations($component, $selector-suffix, $color-default, $mdb-param-1) {
58
+ // @include generic-variations($component, $selector-suffix, $color-default, "bg-color-variations-content", $mdb-param-1);
59
+ //}
60
+ //
61
+ //@mixin bg-color-variations-content($args) {
62
+ // background-color: rgba(map-get($args, variation-color), map-get($args, material-param-1));
63
+ //}
64
+ //
65
+ //// bg-box-shadow-variations(" label input[type=checkbox]:checked + .toggle:active:after", $brand-primary
66
+ //@mixin bg-box-shadow-variations($component, $selector-suffix, $color-default) {
67
+ // @include generic-variations($component, $selector-suffix, $color-default, "bg-box-shadow-variations-content", null);
68
+ //}
69
+ //
70
+ //@mixin bg-box-shadow-variations-content($args){
71
+ // $variation-color: map-get($args, variation-color);
72
+ // box-shadow: 0 1px 3px 1px rgba(0,0,0,0.4), 0 0 0 15px rgba($variation-color, (10/100));
73
+ //}
74
+ //
75
+ //// bg-img-variations(" label input[type=checkbox]:checked + .toggle:active:after", $brand-primary
76
+ //@mixin bg-img-variations($component, $selector-suffix, $color-default) {
77
+ // @include generic-variations($component, $selector-suffix, $color-default, "bg-img-variations-content", null);
78
+ //}
79
+ //
80
+ //@mixin bg-img-variations-content($args){
81
+ // $variation-color: map-get($args, variation-color);
82
+ // //@debug "bg-img-variations-content called for #{map-get($args, extra)} #{map-get($args, default)} #{map-get($args, variation-color-name)} #{map-get($args, variation-color)}"; //#{inspect($args)}";
83
+ // background-image: linear-gradient($variation-color, $variation-color), linear-gradient($mdb-input-underline-color, $mdb-input-underline-color);
84
+ //}
85
+
86
+ // navbar-variations(" label input[type=checkbox]:checked + .toggle:active:after", $brand-primary
87
+ @mixin navbar-variations($component, $selector-suffix, $color-default) {
88
+ @include generic-variations($component, $selector-suffix, $color-default, "navbar-variations-content", null);
89
+ }
90
+
91
+ @mixin navbar-variations-content($args){
92
+ $variation-color: map-get($args, variation-color);
93
+ $variation-color-text: map-get($args, variation-color-text);
94
+
95
+ background-color: $variation-color;
96
+ color: $variation-color-text;
97
+ // deeply defined to override welljumbo class without !impotant need
98
+ .navbar-form .form-group input.form-control,
99
+ .navbar-form input.form-control {
100
+ @include material-placeholder {
101
+ color: $variation-color-text;
102
+ }
103
+ }
104
+ .dropdown-menu {
105
+ border-radius: $border-radius-base;
106
+ li > a {
107
+ font-size: $mdb-dropdown-font-size;
108
+ padding: 13px 16px;
109
+ &:hover,
110
+ &:focus {
111
+ color: $variation-color;
112
+ background-color: $grey-200;
113
+ }
114
+ }
115
+ .active > a {
116
+ &:hover,
117
+ &:focus {
118
+ color: $variation-color-text;
119
+ }
120
+ background-color: $variation-color;
121
+ color: $variation-color-text;
122
+ }
123
+ }
124
+ }
125
+
126
+ // alert-variations("", $brand-primary)
127
+ @mixin alert-variations($component, $selector-suffix, $color-default) {
128
+ @include generic-variations($component, $selector-suffix, $color-default, "alert-variations-content", null);
129
+ }
130
+
131
+ @mixin alert-variations-content($args){
132
+ $variation-color: map-get($args, variation-color);
133
+ $variation-color-text: map-get($args, variation-color-text);
134
+
135
+ background-color: $variation-color;
136
+ color: $variation-color-text;
137
+
138
+ a, .alert-link {
139
+ color: $variation-color-text;
140
+ }
141
+ }
142
+
143
+ // interpolation of mixin-name is not allowed evidently, so we statically include based on the mixin-name given
144
+ @mixin call-variations-content-mixin($args) {
145
+ $mixin-name: map-get($args, mixin-name);
146
+ @if $mixin-name == variations-content {
147
+ @include variations-content($args);
148
+ } @else if $mixin-name == background-variations-content {
149
+ @include background-variations-content($args);
150
+ } @else if $mixin-name == text-variations-content {
151
+ @include text-variations-content($args);
152
+ } @else if $mixin-name == button-variations-content {
153
+ @include button-variations-content($args);
154
+ } @else if $mixin-name == bg-color-variations-content {
155
+ @include bg-color-variations-content($args);
156
+ } @else if $mixin-name == bg-box-shadow-variations-content {
157
+ @include bg-box-shadow-variations-content($args);
158
+ } @else if $mixin-name == bg-img-variations-content {
159
+ @include bg-img-variations-content($args);
160
+ } @else if $mixin-name == navbar-variations-content {
161
+ @include navbar-variations-content($args);
162
+ }@else if $mixin-name == alert-variations-content {
163
+ @include alert-variations-content($args);
164
+ } @else {
165
+ @error "Unknown mixin: #{$mixin-name}"
166
+ }
167
+ }
168
+
169
+ //
170
+ // To use this mixin you should pass a function as final parameter to define
171
+ // the style. In that definition you can use the following variables to define it.
172
+ //
173
+ // $variation-color-name ---> "red", "green", "indigo" ...
174
+ // $variation-color-full-name ---> "red", "green-50", "indigo-400" ...
175
+ // $variation-color ---> #f44336, #e8f5e9, #5c6bc0 ...
176
+ // $variation-color-text ---> rgba(255,255,255,0.84), rgba(0,0,0,0.84), rgba(255,255,255,0.84) ...
177
+ //
178
+
179
+ @mixin generic-variations($component, $selector-suffix, $color-default, $mixin-name, $mdb-param-1) {
180
+
181
+ //setup map to pass parameters (instead of the incredibly long-error-prone list for each and every @include)
182
+ $args: (
183
+ //extra: $selector-suffix,
184
+ //default: $color-default,
185
+ mixin-name: $mixin-name,
186
+ material-param-1: $mdb-param-1
187
+ );
188
+
189
+ // bootstrap styles
190
+ &#{$selector-suffix},
191
+ &#{$component}-default#{$selector-suffix} {
192
+
193
+ $args-extra: map-merge($args, (
194
+ variation-color: $color-default,
195
+ variation-color-text: $mdb-text-color-light
196
+ ));
197
+ @include call-variations-content-mixin($args-extra);
198
+ }
199
+ &#{$component}-inverse#{$selector-suffix} {
200
+ $args-inverse: map-merge($args, (
201
+ variation-color: $mdb-brand-inverse,
202
+ variation-color-text: contrast-color($mdb-brand-inverse, $mdb-text-color-primary-hex, $mdb-text-color-light-hex)
203
+ ));
204
+ @include call-variations-content-mixin($args-inverse);
205
+ }
206
+ &#{$component}-primary#{$selector-suffix} {
207
+ $args-primary: map-merge($args, (
208
+ variation-color: $brand-primary,
209
+ variation-color-text: $mdb-text-color-light
210
+ ));
211
+ @include call-variations-content-mixin($args-primary);
212
+ }
213
+ &#{$component}-success#{$selector-suffix} {
214
+ $args-success: map-merge($args, (
215
+ variation-color: $brand-success,
216
+ variation-color-text: $mdb-text-color-light
217
+ ));
218
+ @include call-variations-content-mixin($args-success);
219
+ }
220
+ &#{$component}-info#{$selector-suffix} {
221
+ $args-info: map-merge($args, (
222
+ variation-color: $brand-info,
223
+ variation-color-text: $mdb-text-color-light
224
+ ));
225
+ @include call-variations-content-mixin($args-info);
226
+ }
227
+ &#{$component}-warning#{$selector-suffix} {
228
+ $args-warning: map-merge($args, (
229
+ variation-color: $brand-warning,
230
+ variation-color-text: $mdb-text-color-light
231
+ ));
232
+ @include call-variations-content-mixin($args-warning);
233
+ }
234
+ &#{$component}-danger#{$selector-suffix} {
235
+ $args-danger: map-merge($args, (
236
+ variation-color: $brand-danger,
237
+ variation-color-text: $mdb-text-color-light
238
+ ));
239
+ @include call-variations-content-mixin($args-danger);
240
+ }
241
+ }
@@ -0,0 +1,232 @@
1
+ .navbar {
2
+ background-color: $brand-primary;
3
+ border: 0;
4
+ border-radius: 0;
5
+
6
+ .navbar-brand {
7
+ position: relative;
8
+ height: 60px;
9
+ line-height: 30px;
10
+ color: inherit;
11
+ &:hover,
12
+ &:focus {
13
+ color: inherit;
14
+ background-color: transparent;
15
+ }
16
+ }
17
+
18
+ .navbar-text {
19
+ color: inherit;
20
+ margin-top: 20px;
21
+ margin-bottom: 20px;
22
+ }
23
+
24
+ .navbar-nav {
25
+ > li > a {
26
+ color: inherit;
27
+ padding-top: 20px;
28
+ padding-bottom: 20px;
29
+
30
+ &:hover,
31
+ &:focus {
32
+ color: inherit;
33
+ background-color: transparent;
34
+ }
35
+ }
36
+ > .active > a {
37
+ &,
38
+ &:hover,
39
+ &:focus {
40
+ color: inherit;
41
+ background-color: rgba(255, 255, 255, 0.1);
42
+ }
43
+ }
44
+ > .disabled > a {
45
+ &,
46
+ &:hover,
47
+ &:focus {
48
+ color: inherit;
49
+ background-color: transparent;
50
+ opacity: 0.9;
51
+ }
52
+ }
53
+ }
54
+
55
+ // Darken the responsive nav toggle
56
+ .navbar-toggle {
57
+ border: 0;
58
+ &:hover,
59
+ &:focus {
60
+ background-color: transparent;
61
+ }
62
+ .icon-bar {
63
+ background-color: inherit;
64
+ border: 1px solid;
65
+ }
66
+ }
67
+
68
+ .navbar-default .navbar-toggle,
69
+ .navbar-inverse .navbar-toggle {
70
+ border-color: transparent;
71
+ }
72
+
73
+ .navbar-collapse,
74
+ .navbar-form {
75
+ border-color: rgba(0,0,0,0.1);
76
+ }
77
+
78
+ // Dropdowns
79
+ .navbar-nav {
80
+ > .open > a {
81
+ &,
82
+ &:hover,
83
+ &:focus {
84
+ background-color: transparent;
85
+ color: inherit;
86
+ }
87
+ }
88
+
89
+ @media (max-width: $grid-float-breakpoint-max) {
90
+ .navbar-text {
91
+ color: inherit;
92
+ margin-top: 15px;
93
+ margin-bottom: 15px;
94
+ }
95
+
96
+ // Dropdowns get custom display
97
+ .dropdown{
98
+ .dropdown-toggle{
99
+ .caret{
100
+ display:none;
101
+ }
102
+ &:after{
103
+ content: 'keyboard_arrow_right';
104
+ font-family: 'Material Icons';
105
+ font-size: 1.5em;
106
+ float:right;
107
+ }
108
+ }
109
+ .dropdown-menu{
110
+ margin-left:20px;
111
+ }
112
+ &.open{
113
+ .dropdown-toggle:after{
114
+ content: 'keyboard_arrow_down';
115
+ }
116
+ .dropdown-menu {
117
+ > .dropdown-header {
118
+ border: 0;
119
+ color: inherit;
120
+ }
121
+ .divider {
122
+ border-bottom: 1px solid;
123
+ opacity: 0.08;
124
+ }
125
+ > li > a {
126
+ color: inherit;
127
+ font-size: inherit;
128
+ &:hover,
129
+ &:focus {
130
+ color: inherit;
131
+ background-color: transparent;
132
+ }
133
+ }
134
+ > .active > a {
135
+ &,
136
+ &:hover,
137
+ &:focus {
138
+ color: inherit;
139
+ background-color: transparent;
140
+ }
141
+ }
142
+ > .disabled > a {
143
+ &,
144
+ &:hover,
145
+ &:focus {
146
+ color: inherit;
147
+ background-color: transparent;
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+
156
+ .navbar-link {
157
+ color: inherit;
158
+ &:hover {
159
+ color: inherit;
160
+ }
161
+ }
162
+
163
+ .btn-link {
164
+ color: inherit;
165
+ &:hover,
166
+ &:focus {
167
+ color: inherit;
168
+ }
169
+ &[disabled],
170
+ fieldset[disabled] & {
171
+ &:hover,
172
+ &:focus {
173
+ color: inherit;
174
+ }
175
+ }
176
+ }
177
+
178
+ .navbar-form {
179
+ margin-top: 16px;
180
+ .form-group {
181
+ margin: 0;
182
+ padding: 0;
183
+
184
+ .material-input:before,
185
+ &.is-focused .material-input:after {
186
+ background-color: inherit;
187
+ }
188
+ }
189
+
190
+ .form-group .form-control,
191
+ .form-control {
192
+ border-color: inherit;
193
+ color: inherit;
194
+ padding: 0;
195
+ margin: 0;
196
+
197
+ // re-normalize inputs in a navbar the size of standard bootstrap since our normal inputs are larger by spec than bootstrap
198
+ //---
199
+ //height: $mdb-input-height-base;
200
+ $bs-line-height-base: 1.428571429 !default;
201
+ $bs-line-height-computed: floor(($font-size-base * $bs-line-height-base)) !default; // ~20px
202
+ height: ($bs-line-height-computed + 8px);
203
+ font-size: $font-size-base;
204
+ line-height: $bs-line-height-base;
205
+ //---
206
+ }
207
+ }
208
+
209
+ // SASS conversion note: please mirror any content change in _mixins-shared.scss navbar-variations-content
210
+ @include navbar-variations(unquote(".navbar"), unquote(""), $brand-primary);
211
+
212
+
213
+ &-inverse {
214
+ background-color: $indigo;
215
+ }
216
+
217
+ @media (max-width: $screen-md-max) {
218
+
219
+ .navbar-brand {
220
+ height: 50px;
221
+ padding: 10px 15px;
222
+ }
223
+ .navbar-form {
224
+ margin-top: 10px;
225
+ }
226
+
227
+ .navbar-nav > li > a {
228
+ padding-top: 15px;
229
+ padding-bottom: 15px;
230
+ }
231
+ }
232
+ }