mtl 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/Gemfile +9 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +104 -0
  6. data/Rakefile +6 -0
  7. data/app/assets/javascripts/mtl/clickables.coffee +25 -0
  8. data/app/assets/javascripts/mtl/collapsible.coffee +43 -0
  9. data/app/assets/javascripts/mtl/configuration.coffee.erb +1 -0
  10. data/app/assets/javascripts/mtl/document_modal.coffee +130 -0
  11. data/app/assets/javascripts/mtl/dropdown.coffee +24 -0
  12. data/app/assets/javascripts/mtl/hooks.coffee +14 -0
  13. data/app/assets/javascripts/mtl/icon.coffee.erb +17 -0
  14. data/app/assets/javascripts/mtl/modal.coffee +32 -0
  15. data/app/assets/javascripts/mtl/select.coffee +44 -0
  16. data/app/assets/javascripts/mtl/templates.coffee +4 -0
  17. data/app/assets/javascripts/mtl/toc.coffee +31 -0
  18. data/app/assets/javascripts/mtl.js +42 -0
  19. data/app/assets/stylesheets/mtl/all.scss +69 -0
  20. data/app/assets/stylesheets/mtl/extend/_avatars.scss +37 -0
  21. data/app/assets/stylesheets/mtl/extend/_buttons.scss +31 -0
  22. data/app/assets/stylesheets/mtl/extend/_cards.scss +21 -0
  23. data/app/assets/stylesheets/mtl/extend/_chips.scss +3 -0
  24. data/app/assets/stylesheets/mtl/extend/_collection-files.scss +108 -0
  25. data/app/assets/stylesheets/mtl/extend/_document-modals.scss +95 -0
  26. data/app/assets/stylesheets/mtl/extend/_dropdown.scss +12 -0
  27. data/app/assets/stylesheets/mtl/extend/_forms.scss +66 -0
  28. data/app/assets/stylesheets/mtl/extend/_global.scss +77 -0
  29. data/app/assets/stylesheets/mtl/extend/_grid.scss +25 -0
  30. data/app/assets/stylesheets/mtl/extend/_material-icons.scss +37 -0
  31. data/app/assets/stylesheets/mtl/extend/_mixins.scss +10 -0
  32. data/app/assets/stylesheets/mtl/extend/_roboto-rails.scss +49 -0
  33. data/app/assets/stylesheets/mtl/extend/_side-nav.scss +22 -0
  34. data/app/assets/stylesheets/mtl/extend/_toc.scss +12 -0
  35. data/app/assets/stylesheets/mtl/extend/_typography.scss +32 -0
  36. data/app/assets/stylesheets/mtl/extend/forms/_input-fields.scss +50 -0
  37. data/app/assets/stylesheets/mtl/layouts/_default.scss +220 -0
  38. data/app/assets/stylesheets/mtl/layouts/_single.scss +25 -0
  39. data/app/views/mtl/header.html.erb +25 -0
  40. data/bin/coffeelint.rb +16 -0
  41. data/lib/generators/mtl/install_generator.rb +20 -0
  42. data/lib/generators/mtl/templates/_color.scss +410 -0
  43. data/lib/generators/mtl/templates/_variables.scss +330 -0
  44. data/lib/generators/mtl/templates/mtl.scss +8 -0
  45. data/lib/generators/mtl/templates/simple_form.rb +211 -0
  46. data/lib/mtl/rails/card_file_presenter.rb +70 -0
  47. data/lib/mtl/rails/view_helpers.rb +412 -0
  48. data/lib/mtl/simple_form/suffix.rb +52 -0
  49. data/lib/mtl/version.rb +6 -0
  50. data/lib/mtl.rb +38 -0
  51. data/mtl.gemspec +35 -0
  52. data/package.json +11 -0
  53. data/spec/mtl/rails/card_file_presenter_spec.rb +126 -0
  54. data/spec/mtl/rails/view_helpers_spec.rb +193 -0
  55. data/spec/mtl/simple_form/suffix_spec.rb +39 -0
  56. data/spec/mtl_spec.rb +34 -0
  57. data/spec/spec_helper.rb +18 -0
  58. data/spec/support/dom.rb +15 -0
  59. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.eot +0 -0
  60. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.ijmap +1 -0
  61. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.svg +2373 -0
  62. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.ttf +0 -0
  63. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.woff +0 -0
  64. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.woff2 +0 -0
  65. data/vendor/assets/fonts/roboto/Roboto-Bold.eot +0 -0
  66. data/vendor/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
  67. data/vendor/assets/fonts/roboto/Roboto-Bold.woff +0 -0
  68. data/vendor/assets/fonts/roboto/Roboto-Bold.woff2 +0 -0
  69. data/vendor/assets/fonts/roboto/Roboto-Light.eot +0 -0
  70. data/vendor/assets/fonts/roboto/Roboto-Light.ttf +0 -0
  71. data/vendor/assets/fonts/roboto/Roboto-Light.woff +0 -0
  72. data/vendor/assets/fonts/roboto/Roboto-Light.woff2 +0 -0
  73. data/vendor/assets/fonts/roboto/Roboto-Medium.eot +0 -0
  74. data/vendor/assets/fonts/roboto/Roboto-Medium.ttf +0 -0
  75. data/vendor/assets/fonts/roboto/Roboto-Medium.woff +0 -0
  76. data/vendor/assets/fonts/roboto/Roboto-Medium.woff2 +0 -0
  77. data/vendor/assets/fonts/roboto/Roboto-Regular.eot +0 -0
  78. data/vendor/assets/fonts/roboto/Roboto-Regular.ttf +0 -0
  79. data/vendor/assets/fonts/roboto/Roboto-Regular.woff +0 -0
  80. data/vendor/assets/fonts/roboto/Roboto-Regular.woff2 +0 -0
  81. data/vendor/assets/fonts/roboto/Roboto-Thin.eot +0 -0
  82. data/vendor/assets/fonts/roboto/Roboto-Thin.ttf +0 -0
  83. data/vendor/assets/fonts/roboto/Roboto-Thin.woff +0 -0
  84. data/vendor/assets/fonts/roboto/Roboto-Thin.woff2 +0 -0
  85. data/vendor/assets/javascripts/lodash.js +16607 -0
  86. data/vendor/assets/javascripts/materialize/animation.js +9 -0
  87. data/vendor/assets/javascripts/materialize/buttons.js +91 -0
  88. data/vendor/assets/javascripts/materialize/cards.js +26 -0
  89. data/vendor/assets/javascripts/materialize/carousel.js +454 -0
  90. data/vendor/assets/javascripts/materialize/character_counter.js +72 -0
  91. data/vendor/assets/javascripts/materialize/chips.js +267 -0
  92. data/vendor/assets/javascripts/materialize/collapsible.js +160 -0
  93. data/vendor/assets/javascripts/materialize/date_picker/picker.date.js +1430 -0
  94. data/vendor/assets/javascripts/materialize/date_picker/picker.js +1123 -0
  95. data/vendor/assets/javascripts/materialize/dropdown.js +265 -0
  96. data/vendor/assets/javascripts/materialize/forms.js +681 -0
  97. data/vendor/assets/javascripts/materialize/global.js +45 -0
  98. data/vendor/assets/javascripts/materialize/hammer.min.js +1 -0
  99. data/vendor/assets/javascripts/materialize/init.js +173 -0
  100. data/vendor/assets/javascripts/materialize/initial.js +11 -0
  101. data/vendor/assets/javascripts/materialize/jquery.easing.1.3.js +205 -0
  102. data/vendor/assets/javascripts/materialize/jquery.hammer.js +33 -0
  103. data/vendor/assets/javascripts/materialize/jquery.timeago.min.js +1 -0
  104. data/vendor/assets/javascripts/materialize/leanModal.js +192 -0
  105. data/vendor/assets/javascripts/materialize/materialbox.js +269 -0
  106. data/vendor/assets/javascripts/materialize/parallax.js +58 -0
  107. data/vendor/assets/javascripts/materialize/prism.js +8 -0
  108. data/vendor/assets/javascripts/materialize/pushpin.js +71 -0
  109. data/vendor/assets/javascripts/materialize/scrollFire.js +48 -0
  110. data/vendor/assets/javascripts/materialize/scrollspy.js +283 -0
  111. data/vendor/assets/javascripts/materialize/sideNav.js +352 -0
  112. data/vendor/assets/javascripts/materialize/slider.js +321 -0
  113. data/vendor/assets/javascripts/materialize/tabs.js +148 -0
  114. data/vendor/assets/javascripts/materialize/toasts.js +136 -0
  115. data/vendor/assets/javascripts/materialize/tooltip.js +230 -0
  116. data/vendor/assets/javascripts/materialize/transitions.js +169 -0
  117. data/vendor/assets/javascripts/materialize/velocity.min.js +5 -0
  118. data/vendor/assets/javascripts/materialize/waves.js +338 -0
  119. data/vendor/assets/javascripts/pdfobject.js +254 -0
  120. data/vendor/assets/stylesheets/materialize/_buttons.scss +211 -0
  121. data/vendor/assets/stylesheets/materialize/_cards.scss +185 -0
  122. data/vendor/assets/stylesheets/materialize/_carousel.scss +85 -0
  123. data/vendor/assets/stylesheets/materialize/_chips.scss +74 -0
  124. data/vendor/assets/stylesheets/materialize/_collapsible.scss +90 -0
  125. data/vendor/assets/stylesheets/materialize/_color.scss +412 -0
  126. data/vendor/assets/stylesheets/materialize/_dropdown.scss +57 -0
  127. data/vendor/assets/stylesheets/materialize/_global.scss +781 -0
  128. data/vendor/assets/stylesheets/materialize/_grid.scss +147 -0
  129. data/vendor/assets/stylesheets/materialize/_icons-material-design.scss +5 -0
  130. data/vendor/assets/stylesheets/materialize/_materialbox.scss +42 -0
  131. data/vendor/assets/stylesheets/materialize/_mixins.scss +5 -0
  132. data/vendor/assets/stylesheets/materialize/_modal.scss +90 -0
  133. data/vendor/assets/stylesheets/materialize/_navbar.scss +182 -0
  134. data/vendor/assets/stylesheets/materialize/_normalize.scss +424 -0
  135. data/vendor/assets/stylesheets/materialize/_prefixer.scss +384 -0
  136. data/vendor/assets/stylesheets/materialize/_preloader.scss +334 -0
  137. data/vendor/assets/stylesheets/materialize/_roboto.scss +49 -0
  138. data/vendor/assets/stylesheets/materialize/_sideNav.scss +219 -0
  139. data/vendor/assets/stylesheets/materialize/_slider.scss +92 -0
  140. data/vendor/assets/stylesheets/materialize/_table_of_contents.scss +33 -0
  141. data/vendor/assets/stylesheets/materialize/_tabs.scss +56 -0
  142. data/vendor/assets/stylesheets/materialize/_toast.scss +65 -0
  143. data/vendor/assets/stylesheets/materialize/_tooltip.scss +32 -0
  144. data/vendor/assets/stylesheets/materialize/_typography.scss +61 -0
  145. data/vendor/assets/stylesheets/materialize/_variables.scss +313 -0
  146. data/vendor/assets/stylesheets/materialize/_waves.scss +177 -0
  147. data/vendor/assets/stylesheets/materialize/date_picker/_default.date.scss +435 -0
  148. data/vendor/assets/stylesheets/materialize/date_picker/_default.scss +201 -0
  149. data/vendor/assets/stylesheets/materialize/date_picker/_default.time.scss +125 -0
  150. data/vendor/assets/stylesheets/materialize/forms/_checkboxes.scss +220 -0
  151. data/vendor/assets/stylesheets/materialize/forms/_file-input.scss +38 -0
  152. data/vendor/assets/stylesheets/materialize/forms/_forms.scss +22 -0
  153. data/vendor/assets/stylesheets/materialize/forms/_input-fields.scss +273 -0
  154. data/vendor/assets/stylesheets/materialize/forms/_radio-buttons.scss +119 -0
  155. data/vendor/assets/stylesheets/materialize/forms/_range.scss +159 -0
  156. data/vendor/assets/stylesheets/materialize/forms/_select.scss +116 -0
  157. data/vendor/assets/stylesheets/materialize/forms/_switches.scss +78 -0
  158. metadata +309 -0
@@ -0,0 +1,37 @@
1
+ // avatars
2
+ .mtl-avatar {
3
+ display: inline-block;
4
+ border-radius: 50%;
5
+ height: $mtl-avatar-size-medium !important;
6
+ width: $mtl-avatar-size-medium !important;
7
+ overflow: hidden;
8
+ text-align: center;
9
+ line-height: $mtl-avatar-size-medium !important;
10
+ position: relative;
11
+ font-size: 11px !important;
12
+ font-weight: normal;
13
+
14
+ @extend .grey, .lighten-2;
15
+ color: $mtl-layout-default-text;
16
+
17
+ img {
18
+ display: block;
19
+ width: 100%;
20
+ height: 100%;
21
+ position: absolute;
22
+ border-radius: 50%;
23
+ }
24
+ }
25
+
26
+ .mtl-avatar.small {
27
+ height: $mtl-avatar-size-small !important;
28
+ width: $mtl-avatar-size-small !important;
29
+ line-height: $mtl-avatar-size-small !important;
30
+ font-size: 10px !important;
31
+ }
32
+ .mtl-avatar.large {
33
+ height: $mtl-avatar-size-large !important;
34
+ width: $mtl-avatar-size-large !important;
35
+ line-height: $mtl-avatar-size-large !important;
36
+ font-size: 15px !important;
37
+ }
@@ -0,0 +1,31 @@
1
+ .btn-square,
2
+ .btn-more {
3
+ padding: 0 !important;
4
+ width: $button-height;
5
+ text-align: center;
6
+ }
7
+
8
+ .btn-more {
9
+ color: $mtl-layout-default-text;
10
+
11
+ .material-icons {
12
+ display: inline;
13
+ height: $button-height;
14
+ line-height: $button-height;
15
+ font-size: 1.6rem;
16
+ }
17
+ }
18
+
19
+ .btn-more-wrapper {
20
+ float: right;
21
+ margin-right: 1rem;
22
+ }
23
+
24
+ .card-content .btn-more-wrapper {
25
+ margin-right: $card-padding * -.5;
26
+ margin-top: $card-padding * -.5;
27
+ }
28
+
29
+ .card-action .btn-more-wrapper {
30
+ margin-right: 0;
31
+ }
@@ -0,0 +1,21 @@
1
+ .card {
2
+ .card-content .card-title {
3
+ font-size: $h3-fontsize;
4
+ font-weight: 400;
5
+ line-height: 1.5;
6
+ }
7
+
8
+ .card-content > .row {
9
+ margin-left: -.75rem;
10
+ margin-right: -.75rem;
11
+ }
12
+
13
+ .card-action {
14
+ padding: $card-padding / 2;
15
+ }
16
+
17
+ .card-action .btn {
18
+ padding-left: $card-padding / 2;
19
+ padding-right: $card-padding / 2;
20
+ }
21
+ }
@@ -0,0 +1,3 @@
1
+ .chip {
2
+ white-space: nowrap;
3
+ }
@@ -0,0 +1,108 @@
1
+ // variables / colors
2
+ $mtl-collection-files-spacing: 11px;
3
+ $mtl-collection-file-width: 193px;
4
+ $mtl-collection-file-height: 93px;
5
+
6
+ $mtl-collection-file-bg: color('grey', 'lighten-5');
7
+ $mtl-collection-file-text-primary: color('grey', 'darken-4');
8
+ $mtl-collection-file-text-secondary: color('grey', 'base');
9
+
10
+ // collection of file cards
11
+ .collection-files {
12
+ margin: (-$mtl-collection-files-spacing) 0 0 (-$mtl-collection-files-spacing);
13
+ @include clearafter;
14
+
15
+ // extending the card panel
16
+ .card-panel {
17
+ background-color: $mtl-collection-file-bg;
18
+ color: $mtl-collection-file-text-primary;
19
+ margin: $mtl-collection-files-spacing 0 0 $mtl-collection-files-spacing;
20
+ float: left;
21
+ width: $mtl-collection-file-width;
22
+ height: $mtl-collection-file-height;
23
+ position: relative;
24
+ overflow: visible;
25
+ font-size: 13px;
26
+ line-height: 16px;
27
+ background-size: cover;
28
+ background-position: center;
29
+ padding: 12px 13px 0;
30
+
31
+ @media #{$small-and-down} {
32
+ width: 100%;
33
+ }
34
+
35
+ &:hover {
36
+ box-shadow: 0 4px 8px rgba(color('shades', 'black'), .26);
37
+ }
38
+
39
+ > strong,
40
+ > span {
41
+ display: block;
42
+ font-size: 13px;
43
+ line-height: 16px;
44
+ color: $mtl-collection-file-text-primary;
45
+ }
46
+
47
+ > span {
48
+ vertical-align: middle;
49
+
50
+ // icon override 1
51
+ .material-icons {
52
+ line-height: 16px;
53
+ height: 16px;
54
+ font-size: 20px;
55
+ vertical-align: middle;
56
+ }
57
+
58
+ &.secondary {
59
+ color: $mtl-collection-file-text-secondary;
60
+ }
61
+ }
62
+
63
+ // image only panel
64
+ &.card-panel-image {
65
+ text-indent: -6000px;
66
+
67
+ * {
68
+ display: none;
69
+ }
70
+ }
71
+
72
+ // remove button for file cards
73
+ .close {
74
+ text-indent: 0;
75
+ display: none;
76
+ position: absolute;
77
+ right: 0;
78
+ top: 0;
79
+ transform: translate(50%, -50%);
80
+ width: 20px;
81
+ height: 20px;
82
+ background-color: color('shades', 'white');
83
+ box-shadow: 0 1px 2px rgba(color('shades', 'black'), .26);
84
+ border-radius: 50%;
85
+ transition-duration: .2s;
86
+ transition-property: color, background-color;
87
+ z-index: 2;
88
+
89
+ // icon override 2
90
+ line-height: 20px;
91
+ font-size: 14px;
92
+ text-align: center;
93
+ color: color('grey', 'darken-3');
94
+
95
+ &:hover {
96
+ color: color('shades', 'white');
97
+ background-color: color('grey', 'darken-3');
98
+ }
99
+ &:active {
100
+ color: color('shades', 'white');
101
+ background-color: color('grey', 'darken-4');
102
+ }
103
+ }
104
+ &:hover .close {
105
+ display: block !important;
106
+ }
107
+ }
108
+ }
@@ -0,0 +1,95 @@
1
+ // variables / colors
2
+
3
+
4
+ // basic modal wrapping
5
+ .document-modal {
6
+ position: fixed;
7
+ left: 0;
8
+ top: 0;
9
+ right: 0;
10
+ bottom: 0;
11
+ z-index: 10000;
12
+
13
+ // modal bg dimmer
14
+ &-dimmer {
15
+ position: fixed;
16
+ left: 0;
17
+ top: 0;
18
+ right: 0;
19
+ bottom: 0;
20
+ background-color: rgba(color('shades', 'black'), .7);
21
+ }
22
+
23
+ // header bar
24
+ &-header {
25
+ position: fixed;
26
+ left: 0;
27
+ top: 0;
28
+ right: 0;
29
+ background-color: rgba(color('shades', 'black'), .6);
30
+ padding: 9px;
31
+ z-index: 2;
32
+
33
+ .left {
34
+ padding-right: 10px;
35
+ }
36
+ .right:last-of-type {
37
+ padding-right: 40px;
38
+ }
39
+ }
40
+
41
+ // modal content
42
+ &-content {
43
+ position: fixed;
44
+ left: 50%;
45
+ top: 50%;
46
+ overflow: auto;
47
+ max-width: 100%;
48
+ max-height: calc(100% - #{(2.4 * $navbar-height)});
49
+ transform: translate3d(-50%, -50%, 0);
50
+ background-color: color('shades', 'white');
51
+ z-index: 1;
52
+ box-shadow: 0 2px 4px rgba(color('shades', 'black'), .5);
53
+
54
+ .pdfobject-container {
55
+ height: 100%;
56
+ }
57
+
58
+ iframe,
59
+ embed {
60
+ height: 100%;
61
+ border: 0;
62
+ margin: 0;
63
+ display: block;
64
+ }
65
+ img {
66
+ display: block;
67
+ width: 100%;
68
+ height: auto;
69
+ }
70
+
71
+ .no-preview {
72
+ padding: $card-padding;
73
+ }
74
+ }
75
+
76
+ // left & right controls
77
+ &-prev,
78
+ &-next {
79
+ position: fixed;
80
+ top: 50%;
81
+ transform: translate(0, -50%, 0);
82
+ padding: 0 1.5rem;
83
+ z-index: 3;
84
+
85
+ .material-icons {
86
+ font-size: 32px;
87
+ }
88
+ }
89
+ &-next {
90
+ right: 1rem;
91
+ }
92
+ &-prev {
93
+ left: 1rem;
94
+ }
95
+ }
@@ -0,0 +1,12 @@
1
+ .dropdown-content,
2
+ .dropdown-content li > a {
3
+ font-size: 1rem;
4
+ }
5
+
6
+ .dropdown-content li > a > .material-icons {
7
+ float: left;
8
+ width: auto;
9
+ color: lighten($dropdown-color, 30%);
10
+ font-size: 1.4rem;
11
+ margin-right: 8px;
12
+ }
@@ -0,0 +1,66 @@
1
+ // scss-lint:disable QualifyingElement SelectorFormat
2
+ .simple_form .check_boxes > label,
3
+ .simple_form .radio_buttons > label {
4
+ display: none;
5
+ }
6
+ .select-wrapper span.caret {
7
+ color: inherit;
8
+ }
9
+
10
+ // fix for too long labels
11
+ .input-field label {
12
+ overflow: hidden;
13
+ text-overflow: ellipsis;
14
+ white-space: nowrap;
15
+ max-width: 100%;
16
+ }
17
+ .input-field.col label {
18
+ padding-right: $gutter-width;
19
+ }
20
+
21
+ // fields with text suffix/unit
22
+ .input-field.has-suffix {
23
+ input:not([type]),
24
+ input[type=text],
25
+ input[type=password],
26
+ input[type=email],
27
+ input[type=url],
28
+ input[type=time],
29
+ input[type=date],
30
+ input[type=datetime],
31
+ input[type=datetime-local],
32
+ input[type=tel],
33
+ input[type=number],
34
+ input[type=search] {
35
+ padding-right: 4rem;
36
+ width: calc(100% - 4rem);
37
+ }
38
+
39
+ label {
40
+ padding-right: 4rem;
41
+ width: 100%;
42
+ }
43
+
44
+ .suffix {
45
+ position: absolute;
46
+ right: 0;
47
+ top: 0;
48
+ line-height: 3rem;
49
+ color: $input-border-color;
50
+ font-size: $input-font-size;
51
+ text-align: right;
52
+ max-width: 3.8rem;
53
+ text-overflow: ellipsis;
54
+ white-space: nowrap;
55
+ overflow: hidden;
56
+ }
57
+
58
+ &.col {
59
+ label {
60
+ padding-right: 5.5rem;
61
+ }
62
+ .suffix {
63
+ right: .75rem;
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,77 @@
1
+ td,
2
+ th {
3
+ border-radius: 0;
4
+ }
5
+
6
+ table {
7
+ &.responsive-table {
8
+ th,
9
+ td {
10
+ &:first-child {
11
+ padding-left: 47px;
12
+ }
13
+ }
14
+
15
+ thead {
16
+ tr {
17
+ padding: 0;
18
+
19
+ th {
20
+ padding-right: 10px;
21
+
22
+ &:first-child {
23
+ padding-left: 47px;
24
+ }
25
+ }
26
+ }
27
+ }
28
+ td {
29
+ @media #{$medium-and-down} {
30
+ padding-left: 0;
31
+ padding-right: 0;
32
+ }
33
+ }
34
+
35
+ tbody tr {
36
+ @media #{$medium-and-down} {
37
+ border-bottom-width: 0;
38
+ padding-right: 0;
39
+ }
40
+ }
41
+ tbody tr td {
42
+ @media #{$medium-and-down} {
43
+ border-right: 1px solid $table-border-color;
44
+ padding-right: 10px;
45
+ }
46
+ }
47
+ }
48
+
49
+ &.no-side-padding {
50
+ th,
51
+ td {
52
+ &:first-child {
53
+ padding-left: 0;
54
+ }
55
+ &:last-child {
56
+ padding-right: 0;
57
+ }
58
+ }
59
+ }
60
+
61
+ &.compressed {
62
+ th,
63
+ td {
64
+ padding-top: 8px;
65
+ padding-bottom: 8px;
66
+ }
67
+ }
68
+ }
69
+
70
+ // horizontal ruler
71
+ hr {
72
+ line-height: 0;
73
+ overflow: hidden;
74
+ border-color: $table-border-color;
75
+ border-width: 0 0 1px;
76
+ border-style: solid;
77
+ }
@@ -0,0 +1,25 @@
1
+ .col {
2
+ &.no-pad {
3
+ padding: 0;
4
+ }
5
+ &.no-pad-left {
6
+ padding-left: 0;
7
+ }
8
+ &.no-pad-right {
9
+ padding-right: 0;
10
+ }
11
+ }
12
+
13
+ .scroll-y {
14
+ overflow-y: auto;
15
+ overflow-x: hidden;
16
+ margin: 0;
17
+
18
+ // fix for iOS rendering
19
+ -webkit-overflow-scrolling: touch;
20
+ transform: translate3d(0, 0, 0);
21
+ }
22
+
23
+ .no-scroll {
24
+ overflow: hidden;
25
+ }
@@ -0,0 +1,37 @@
1
+ @font-face {
2
+ font-family: 'Material Icons';
3
+ font-style: normal;
4
+ font-weight: 400;
5
+ src: local('Material Icons'),
6
+ local('MaterialIcons-Regular'),
7
+ asset-url('material-icons/MaterialIcons-Regular.woff2') format('woff2'),
8
+ asset-url('material-icons/MaterialIcons-Regular.woff') format('woff'),
9
+ asset-url('material-icons/MaterialIcons-Regular.ttf') format('truetype');
10
+ }
11
+
12
+ .material-icons {
13
+ font-family: 'Material Icons';
14
+ font-weight: normal;
15
+ font-style: normal;
16
+ font-size: 24px; // Preferred icon size
17
+ display: inline-block;
18
+ width: 1em;
19
+ height: 1em;
20
+ line-height: 1;
21
+ text-transform: none;
22
+ letter-spacing: normal;
23
+ word-wrap: normal;
24
+ white-space: nowrap;
25
+ direction: ltr;
26
+
27
+ // Support for all WebKit browsers.
28
+ -webkit-font-smoothing: antialiased;
29
+ // Support for Safari and Chrome.
30
+ text-rendering: optimizeLegibility;
31
+
32
+ // Support for Firefox.
33
+ -moz-osx-font-smoothing: grayscale;
34
+
35
+ // Support for IE.
36
+ font-feature-settings: 'liga';
37
+ }
@@ -0,0 +1,10 @@
1
+ @mixin clearafter() {
2
+ &::after {
3
+ content: '';
4
+ display: block;
5
+ width: 100%;
6
+ height: 0;
7
+ overflow: hidden;
8
+ clear: both;
9
+ }
10
+ }
@@ -0,0 +1,49 @@
1
+ @font-face {
2
+ font-family: 'Roboto';
3
+ src: local(Roboto Thin), asset-url('roboto/Roboto-Thin.eot');
4
+ src: asset-url('roboto/Roboto-Thin.eot?#iefix') format('embedded-opentype'),
5
+ asset-url('roboto/Roboto-Thin.woff2') format('woff2'),
6
+ asset-url('roboto/Roboto-Thin.woff') format('woff'),
7
+ asset-url('roboto/Roboto-Thin.ttf') format('truetype');
8
+ font-weight: 200;
9
+ }
10
+
11
+ @font-face {
12
+ font-family: 'Roboto';
13
+ src: local(Roboto Light), asset-url('roboto/Roboto-Light.eot');
14
+ src: asset-url('roboto/Roboto-Light.eot?#iefix') format('embedded-opentype'),
15
+ asset-url('roboto/Roboto-Light.woff2') format('woff2'),
16
+ asset-url('roboto/Roboto-Light.woff') format('woff'),
17
+ asset-url('roboto/Roboto-Light.ttf') format('truetype');
18
+ font-weight: 300;
19
+ }
20
+
21
+ @font-face {
22
+ font-family: 'Roboto';
23
+ src: local(Roboto Regular), asset-url('roboto/Roboto-Regular.eot');
24
+ src: asset-url('roboto/Roboto-Regular.eot?#iefix') format('embedded-opentype'),
25
+ asset-url('roboto/Roboto-Regular.woff2') format('woff2'),
26
+ asset-url('roboto/Roboto-Regular.woff') format('woff'),
27
+ asset-url('roboto/Roboto-Regular.ttf') format('truetype');
28
+ font-weight: 400;
29
+ }
30
+
31
+ @font-face {
32
+ font-family: 'Roboto';
33
+ src: asset-url('roboto/Roboto-Medium.eot');
34
+ src: asset-url('roboto/Roboto-Medium.eot?#iefix') format('embedded-opentype'),
35
+ asset-url('roboto/Roboto-Medium.woff2') format('woff2'),
36
+ asset-url('roboto/Roboto-Medium.woff') format('woff'),
37
+ asset-url('roboto/Roboto-Medium.ttf') format('truetype');
38
+ font-weight: 500;
39
+ }
40
+
41
+ @font-face {
42
+ font-family: 'Roboto';
43
+ src: asset-url('roboto/Roboto-Bold.eot');
44
+ src: asset-url('roboto/Roboto-Bold.eot?#iefix') format('embedded-opentype'),
45
+ asset-url('roboto/Roboto-Bold.woff2') format('woff2'),
46
+ asset-url('roboto/Roboto-Bold.woff') format('woff'),
47
+ asset-url('roboto/Roboto-Bold.ttf') format('truetype');
48
+ font-weight: 700;
49
+ }
@@ -0,0 +1,22 @@
1
+ // sidebar
2
+ .side-nav {
3
+
4
+ // scss-lint:disable QualifyingElement
5
+ li.active > a,
6
+ li.active > a i.material-icons {
7
+ // scss-lint:enable QualifyingElement
8
+ background-color: $mtl-sidenav-bg-active-color;
9
+ color: $mtl-sidenav-font-active-color;
10
+ }
11
+
12
+ ul {
13
+ margin: 0;
14
+ }
15
+ .divider {
16
+ margin: 0;
17
+ }
18
+ }
19
+
20
+ .side-nav-user {
21
+ margin: 0;
22
+ }
@@ -0,0 +1,12 @@
1
+ .table-of-contents {
2
+ a {
3
+ color: $mtl-toc-text;
4
+ &:hover {
5
+ color: lighten($mtl-toc-text, 20%);
6
+ border-color: $mtl-toc-border;
7
+ }
8
+ &.active {
9
+ border-color: $mtl-toc-border;
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,32 @@
1
+ // variables / colors
2
+ $mtl-typography-h5: $input-border-color;
3
+
4
+ // bold elements
5
+ h1,
6
+ h4,
7
+ strong {
8
+ font-weight: 500;
9
+ }
10
+
11
+ // h4
12
+ h4 {
13
+ line-height: 1.5;
14
+ margin-top: 0;
15
+ }
16
+
17
+ // h5 - look like form labels
18
+ h5 {
19
+ color: $mtl-typography-h5;
20
+ }
21
+
22
+ // smaller elements
23
+ small {
24
+ font-size: 85%;
25
+ }
26
+
27
+ // normalize buttons and tabs
28
+ .btn,
29
+ .tab {
30
+ letter-spacing: 0;
31
+ font-weight: 500;
32
+ }
@@ -0,0 +1,50 @@
1
+ // invalid input style compatible with simple_form error markup
2
+ .has-error {
3
+ // scss-lint:disable QualifyingElement
4
+ input:not([type]),
5
+ // scss-lint:enable QualifyingElement
6
+ input[type=text],
7
+ input[type=password],
8
+ input[type=email],
9
+ input[type=url],
10
+ input[type=time],
11
+ input[type=date],
12
+ input[type=datetime],
13
+ input[type=datetime-local],
14
+ input[type=tel],
15
+ input[type=number],
16
+ input[type=search],
17
+ textarea.materialize-textarea {
18
+ border-bottom: $input-invalid-border;
19
+ box-shadow: 0 1px 0 0 $input-error-color;
20
+
21
+ &:focus {
22
+ border-bottom: $input-invalid-border;
23
+ box-shadow: 0 1px 0 0 $input-error-color;
24
+ }
25
+ }
26
+ .error-block {
27
+ color: $input-error-color;
28
+ display: block;
29
+ font-size: .8rem;
30
+ cursor: text;
31
+ position: relative;
32
+ top: -15px;
33
+ line-height: 2rem;
34
+ }
35
+
36
+ &.boolean {
37
+ label::before {
38
+ border-color: $input-error-color !important;
39
+ }
40
+ [type="checkbox"]:checked + label::before {
41
+ // scss-lint:disable Shorthand
42
+ border-color: transparent $input-error-color $input-error-color transparent !important;
43
+ // scss-lint:enable Shorthand
44
+ }
45
+ .error-block {
46
+ top: 0;
47
+ padding-left: 10px;
48
+ }
49
+ }
50
+ }