megatron 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +43 -2
  3. data/app/assets/javascripts/megatron/form.js +36 -0
  4. data/app/assets/javascripts/megatron/index.js +93 -0
  5. data/app/assets/javascripts/megatron/link.js +58 -0
  6. data/app/assets/javascripts/megatron/utils/auto-navigate.js +24 -0
  7. data/app/assets/javascripts/megatron/utils/form-notify.js +39 -0
  8. data/app/assets/javascripts/megatron/utils/index.js +112 -0
  9. data/app/assets/javascripts/megatron/utils/messages.js +97 -0
  10. data/app/assets/javascripts/megatron/utils/time/date-to-html.js +59 -0
  11. data/app/assets/javascripts/megatron/utils/time/time-switch.js +87 -0
  12. data/app/assets/javascripts/megatron/utils/time/timeago.js +95 -0
  13. data/app/assets/javascripts/megatron/utils/toggler.js +163 -0
  14. data/app/assets/stylesheets/_example.scss +76 -0
  15. data/app/assets/stylesheets/_grid.scss +41 -0
  16. data/app/assets/stylesheets/_typography.scss +38 -0
  17. data/app/assets/stylesheets/application.scss +19 -0
  18. data/app/assets/stylesheets/megatron/error-pages.scss +164 -0
  19. data/app/assets/stylesheets/megatron/error-pages/_animations.scss +96 -0
  20. data/app/assets/stylesheets/megatron/error-pages/_csi.scss +41 -0
  21. data/app/assets/stylesheets/megatron/error-pages/_waves.scss +36 -0
  22. data/app/assets/stylesheets/megatron/megatron.scss +3 -0
  23. data/app/assets/stylesheets/megatron/modules/_crop-height.scss +5 -0
  24. data/app/assets/stylesheets/megatron/modules/_index.scss +22 -0
  25. data/app/assets/stylesheets/megatron/modules/_logo.scss +67 -0
  26. data/app/assets/stylesheets/megatron/modules/_new-tag.scss +11 -0
  27. data/app/assets/stylesheets/megatron/modules/_progress.scss +80 -0
  28. data/app/assets/stylesheets/megatron/modules/app/_animation-classes.scss +3 -0
  29. data/app/assets/stylesheets/megatron/modules/app/_animations.scss +62 -0
  30. data/app/assets/stylesheets/megatron/modules/app/_index.scss +5 -0
  31. data/app/assets/stylesheets/megatron/modules/app/_layout.scss +261 -0
  32. data/app/assets/stylesheets/megatron/modules/app/_sizes.scss +28 -0
  33. data/app/assets/stylesheets/megatron/modules/app/_typography.scss +111 -0
  34. data/app/assets/stylesheets/megatron/modules/box/_base.scss +94 -0
  35. data/app/assets/stylesheets/megatron/modules/box/_color-box.scss +33 -0
  36. data/app/assets/stylesheets/megatron/modules/box/_deployment_box.scss +37 -0
  37. data/app/assets/stylesheets/megatron/modules/box/_index.scss +4 -0
  38. data/app/assets/stylesheets/megatron/modules/box/_placeholder.scss +6 -0
  39. data/app/assets/stylesheets/megatron/modules/buttons/_animations.scss +35 -0
  40. data/app/assets/stylesheets/megatron/modules/buttons/_buttons.scss +266 -0
  41. data/app/assets/stylesheets/megatron/modules/buttons/_index.scss +4 -0
  42. data/app/assets/stylesheets/megatron/modules/buttons/_mixins.scss +108 -0
  43. data/app/assets/stylesheets/megatron/modules/buttons/_pills.scss +44 -0
  44. data/app/assets/stylesheets/megatron/modules/code/_codemirror.scss +98 -0
  45. data/app/assets/stylesheets/megatron/modules/code/_highlighted.scss +65 -0
  46. data/app/assets/stylesheets/megatron/modules/code/_index.scss +3 -0
  47. data/app/assets/stylesheets/megatron/modules/code/_syntax.scss +18 -0
  48. data/app/assets/stylesheets/megatron/modules/core/_colored-items.scss +22 -0
  49. data/app/assets/stylesheets/megatron/modules/core/_colors.scss +163 -0
  50. data/app/assets/stylesheets/megatron/modules/core/_index.scss +3 -0
  51. data/app/assets/stylesheets/megatron/modules/core/_mixins.scss +262 -0
  52. data/app/assets/stylesheets/megatron/modules/core/_vars.scss +30 -0
  53. data/app/assets/stylesheets/megatron/modules/core/_z-index.scss +3 -0
  54. data/app/assets/stylesheets/megatron/modules/dialog/_animations.scss +48 -0
  55. data/app/assets/stylesheets/megatron/modules/dialog/_dialog.scss +81 -0
  56. data/app/assets/stylesheets/megatron/modules/dialog/_index.scss +2 -0
  57. data/app/assets/stylesheets/megatron/modules/forms/_base.scss +31 -0
  58. data/app/assets/stylesheets/megatron/modules/forms/_check-radio.scss +99 -0
  59. data/app/assets/stylesheets/megatron/modules/forms/_check-switch.scss +88 -0
  60. data/app/assets/stylesheets/megatron/modules/forms/_footer.scss +13 -0
  61. data/app/assets/stylesheets/megatron/modules/forms/_index.scss +10 -0
  62. data/app/assets/stylesheets/megatron/modules/forms/_login.scss +92 -0
  63. data/app/assets/stylesheets/megatron/modules/forms/_radio-nav.scss +62 -0
  64. data/app/assets/stylesheets/megatron/modules/forms/_select.scss +37 -0
  65. data/app/assets/stylesheets/megatron/modules/forms/_stacked-form.scss +29 -0
  66. data/app/assets/stylesheets/megatron/modules/forms/_table-form.scss +53 -0
  67. data/app/assets/stylesheets/megatron/modules/forms/_text-input.scss +118 -0
  68. data/app/assets/stylesheets/megatron/modules/grids/_alignment.scss +39 -0
  69. data/app/assets/stylesheets/megatron/modules/grids/_grid.scss +144 -0
  70. data/app/assets/stylesheets/megatron/modules/grids/_index.scss +2 -0
  71. data/app/assets/stylesheets/megatron/modules/headers/_actions.scss +10 -0
  72. data/app/assets/stylesheets/megatron/modules/headers/_base.scss +67 -0
  73. data/app/assets/stylesheets/megatron/modules/headers/_index.scss +4 -0
  74. data/app/assets/stylesheets/megatron/modules/headers/_meta.scss +10 -0
  75. data/app/assets/stylesheets/megatron/modules/headers/_site-header.scss +8 -0
  76. data/app/assets/stylesheets/megatron/modules/lib/_codemirror.scss +301 -0
  77. data/app/assets/stylesheets/megatron/modules/lists/_base.scss +13 -0
  78. data/app/assets/stylesheets/megatron/modules/lists/_box-list.scss +53 -0
  79. data/app/assets/stylesheets/megatron/modules/lists/_index.scss +2 -0
  80. data/app/assets/stylesheets/megatron/modules/messages/_index.scss +3 -0
  81. data/app/assets/stylesheets/megatron/modules/messages/_notice.scss +57 -0
  82. data/app/assets/stylesheets/megatron/modules/messages/_notifications.scss +126 -0
  83. data/app/assets/stylesheets/megatron/modules/messages/_pop-message.scss +157 -0
  84. data/app/assets/stylesheets/megatron/modules/nav/_auto-navigate.scss +7 -0
  85. data/app/assets/stylesheets/megatron/modules/nav/_breadcrumbs.scss +35 -0
  86. data/app/assets/stylesheets/megatron/modules/nav/_index.scss +8 -0
  87. data/app/assets/stylesheets/megatron/modules/nav/_main-sidebar.scss +21 -0
  88. data/app/assets/stylesheets/megatron/modules/nav/_mixins.scss +53 -0
  89. data/app/assets/stylesheets/megatron/modules/nav/_nav-toggle.scss +61 -0
  90. data/app/assets/stylesheets/megatron/modules/nav/_primary-nav.scss +120 -0
  91. data/app/assets/stylesheets/megatron/modules/nav/_secondary-nav.scss +105 -0
  92. data/app/assets/stylesheets/megatron/modules/nav/_tabs.scss +87 -0
  93. data/app/assets/stylesheets/megatron/modules/roboticons/_font.scss +62 -0
  94. data/app/assets/stylesheets/megatron/modules/roboticons/_icons.scss +219 -0
  95. data/app/assets/stylesheets/megatron/modules/roboticons/_index.scss +2 -0
  96. data/app/assets/stylesheets/megatron/modules/slider/_base.scss +49 -0
  97. data/app/assets/stylesheets/megatron/modules/slider/_index.scss +4 -0
  98. data/app/assets/stylesheets/megatron/modules/slider/_slider.scss +282 -0
  99. data/app/assets/stylesheets/megatron/modules/slider/_switch.scss +75 -0
  100. data/app/assets/stylesheets/megatron/modules/slider/_themes.scss +42 -0
  101. data/app/assets/stylesheets/megatron/modules/tables/_base.scss +170 -0
  102. data/app/assets/stylesheets/megatron/modules/tables/_border-table.scss +28 -0
  103. data/app/assets/stylesheets/megatron/modules/tables/_box-table.scss +36 -0
  104. data/app/assets/stylesheets/megatron/modules/tables/_columns.scss +8 -0
  105. data/app/assets/stylesheets/megatron/modules/tables/_doc-table.scss +22 -0
  106. data/app/assets/stylesheets/megatron/modules/tables/_icon-cell.scss +9 -0
  107. data/app/assets/stylesheets/megatron/modules/tables/_index.scss +7 -0
  108. data/app/assets/stylesheets/megatron/modules/tables/_link-cell.scss +8 -0
  109. data/app/assets/stylesheets/megatron/modules/tables/_responsive-table.scss +13 -0
  110. data/app/assets/stylesheets/megatron/modules/widgets/_index.scss +1 -0
  111. data/app/assets/stylesheets/megatron/modules/widgets/_time-switch.scss +24 -0
  112. data/lib/megatron.rb +1 -1
  113. data/lib/megatron/engine.rb +5 -0
  114. data/lib/megatron/version.rb +1 -1
  115. data/lib/tasks/megatron_tasks.rake +4 -4
  116. data/public/assets/megatron/megatron-0.0.4.css +3 -0
  117. data/public/assets/megatron/{megatron-0.0.3.css.map → megatron-0.0.4.css.map} +3 -3
  118. data/public/assets/megatron/{megatron-0.0.3.js → megatron-0.0.4.js} +1 -1
  119. data/public/assets/megatron/megatron-0.0.4.map.json +1 -0
  120. metadata +115 -6
  121. data/public/assets/megatron/megatron-0.0.3.css +0 -2
  122. data/public/assets/megatron/megatron-0.0.3.map.json +0 -1
@@ -0,0 +1,99 @@
1
+ input[type=checkbox]:not(.switch), input[type=radio]:not(.switch) {
2
+ position: absolute;
3
+ z-index: -100;
4
+ opacity: 0;
5
+ + label {
6
+ margin-right: .4em;
7
+ font-size: 16px;
8
+ position: relative;
9
+ display: inline-block;
10
+ cursor: pointer;
11
+ $size: 18px;
12
+ &:before {
13
+ transition: background-color .3s ease-out, box-shadow .15s ease, border-color .15s ease;
14
+ content: "";
15
+ width: $size; height: $size;
16
+ position: relative;
17
+ display: inline-block;
18
+ text-align: center;
19
+ top: 3px;
20
+ margin-right: 8px;
21
+ border: 1px solid hsl(0, 0%, 79%);
22
+ cursor: pointer;
23
+ background-color: #fff;
24
+ }
25
+ &:after {
26
+ content: "";
27
+ position: absolute;
28
+ }
29
+ }
30
+ &:focus + label:before {
31
+ box-shadow: lighten($blue, 20) 0 0 0 2px inset;
32
+ border-color: lighten($blue, 10);
33
+
34
+ }
35
+ &:checked + label {
36
+ &:before {
37
+ background-color: $blue;
38
+ border-color: darken($blue, 10);
39
+ }
40
+ }
41
+ }
42
+
43
+ input[type=checkbox]:not(.switch) {
44
+ + label {
45
+ &:before {
46
+ border-radius: 4px;
47
+ }
48
+ &:after {
49
+ left: 5px;
50
+ width: 8px; height: 4px;
51
+ border: 3px solid rgba($blue, 0) { top: none; right: none;};
52
+ top: .55em;
53
+ transform: rotate(-45deg);
54
+ }
55
+
56
+ &:hover:after {
57
+ border-color: rgba(#000, .2);
58
+ }
59
+ }
60
+
61
+ + label.plain {
62
+ &:before { top: 1px; }
63
+ &:after { top: 3px; }
64
+ }
65
+
66
+ &:checked + label {
67
+ &:after {
68
+ border-color: #fff;
69
+ }
70
+ }
71
+ }
72
+
73
+ input[type=radio]:not(.switch) {
74
+ + label {
75
+ &:before {
76
+ border-radius: 50%;
77
+ }
78
+
79
+ &:after {
80
+ $size: 6px;
81
+ width: $size; height: $size;
82
+ border-radius: 50%;
83
+ left: 7px;
84
+ top: 55%;
85
+ transform: translateY(-50%);
86
+ }
87
+
88
+ &:hover:after {
89
+ background-color: rgba(#000, .2);
90
+ }
91
+
92
+ }
93
+ &:checked + label {
94
+ &:after {
95
+ background-color: #fff;
96
+ }
97
+ }
98
+ }
99
+
@@ -0,0 +1,88 @@
1
+ .check-switch {
2
+
3
+ display: inline-block;
4
+ position: relative;
5
+
6
+ border-radius: 1em;
7
+ background-color: #fafafa;
8
+ box-shadow: #fff 0 1px 1px, $lightgray 0 0 0 1px inset;
9
+ width: 76px;
10
+ font-weight: bold;
11
+ line-height: 0;
12
+
13
+ &:before, label:after {
14
+ padding-top: 1px;
15
+ line-height: 22px;
16
+ font-size: 11px;
17
+ display: inline-block;
18
+ width: 50%;
19
+ text-align: center;
20
+ color: #888;
21
+ text-shadow: #fff 0 1px;
22
+ transition: color .2s ease-in-out;
23
+ }
24
+
25
+ &:before {
26
+ content: "OFF";
27
+ margin-right: 50%;
28
+ }
29
+
30
+ label:after {
31
+ content: "ON";
32
+ transform: translateX(100%);
33
+ }
34
+
35
+ label {
36
+ text-align: left;
37
+ color: transparent; font-size: 0;
38
+ z-index: 1;
39
+ border-radius: 15px;
40
+ cursor: pointer;
41
+ position: absolute;
42
+ left: 0px;
43
+ top: 0px;
44
+ bottom: 0px;
45
+ right: 0px;
46
+ z-index: 1;
47
+
48
+ &:before {
49
+ position: absolute;
50
+ content: "";
51
+ width: 50%;
52
+ height: 100%;
53
+ left: 0;
54
+ border-radius: 15px;
55
+ z-index: 1;
56
+ background-color: rgba(#000, .06);
57
+ background-image: linear-gradient(rgba(#fff, .4), rgba(#fff, 0) 80%);
58
+ transition: .15s ease;
59
+ transition-property: background-color transform;
60
+ box-shadow: $lightgray 0 0 0 1px inset, rgba(#fff, .5) 0 1px inset;
61
+ }
62
+ }
63
+
64
+ input {
65
+ position: absolute;
66
+ z-index: -100;
67
+ opacity: 0;
68
+ top: 0;
69
+ left: 0;
70
+
71
+ &:checked + label {
72
+ &:before {
73
+ transform: translateX(100%);
74
+ background-color: rgba($boyblue, .1);
75
+ box-shadow: rgba($boyblue, .3) 0 0 0 1px inset;
76
+ }
77
+
78
+ &:after {
79
+ color: $boyblue;
80
+ }
81
+ }
82
+
83
+ &:focus + label:before {
84
+ box-shadow: $babyblue 0 0 0 1px inset, $babyblue 0 0 0 2px inset;
85
+ }
86
+
87
+ }
88
+ }
@@ -0,0 +1,13 @@
1
+ .form-footer {
2
+ text-align: right;
3
+ overflow: hidden;
4
+ margin: 1.3em 0 $block-margin;
5
+ padding-top: 1.3em;
6
+ border-top: 1px solid $page-border;
7
+ box-shadow: #fff 0 1px inset;
8
+
9
+ a, button {
10
+ float: right;
11
+ margin-left: 8px;
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ @import "base";
2
+ @import "text-input";
3
+ @import "select";
4
+ @import "check-radio";
5
+ @import "check-switch";
6
+ @import "radio-nav";
7
+ @import "table-form";
8
+ @import "stacked-form";
9
+ @import "footer";
10
+ @import "login";
@@ -0,0 +1,92 @@
1
+ .login-layout {
2
+ background-color: #232a2f;
3
+ }
4
+
5
+ .login-page {
6
+ max-width: 400px;
7
+ margin: 0 auto;
8
+ padding: 0 1em;
9
+ position: relative;
10
+ @media all and (min-width: 500px) and (min-height: 560px) {
11
+ top: 45%;
12
+ transform: translateY(-50%);
13
+ }
14
+ }
15
+
16
+ .login-svg-logo {
17
+ opacity: .7;
18
+ .svg-logo-text {
19
+ fill: #91979f;
20
+ }
21
+ .svg-logo-mark path {
22
+ fill: #91979f;
23
+ }
24
+ }
25
+
26
+ .logo-header {
27
+ text-align: center;
28
+ padding: 1em 15% 0;
29
+ margin: 0 auto;
30
+ max-width: 325px;
31
+ max-height: 200px;
32
+ }
33
+
34
+ .login-input {
35
+ font-size: 25px;
36
+ margin-bottom: 15px;
37
+ border-color: transparent;
38
+ font-family: "Hevetical Neue", Helvetica, Arial, sans;
39
+ font-weight: 200;
40
+ }
41
+
42
+ .login-form {
43
+ animation: login-form-fade-in .6s cubic-bezier(0.190, 1.000, 0.980, 1.000);
44
+ }
45
+
46
+ .login-footer {
47
+ margin: 30px 0;
48
+ text-align: center;
49
+ color: darken(#8f959e, 20);
50
+ a {
51
+ color: #8f959e;
52
+ margin-bottom: $block-margin;
53
+ text-decoration: none;
54
+ font-family: "Hevetical Neue", Helvetica, Arial, sans;
55
+ font-weight: 200;
56
+ &:hover {
57
+ color: lighten(#8f959e, 10);
58
+ text-decoration: underline;
59
+ }
60
+ }
61
+ }
62
+
63
+ @keyframes login-logo-fade-in {
64
+ 0%, 20% {
65
+ opacity: 0;
66
+ transform: translateY(30px) scale(0.85, 0.85);
67
+ }
68
+ 20% {
69
+ opacity: 0;
70
+ transform: translateY(30px) scale(0.85, 0.85);
71
+ }
72
+ 100% {
73
+ opacity: .7;
74
+ transform: translateY(0px) scale(1, 1);
75
+ }
76
+ }
77
+
78
+ @keyframes login-form-fade-in {
79
+ 0%, 20% {
80
+ opacity: 0;
81
+ }
82
+ 21% {
83
+ transform: translateY(-10px) scale(0.85, 0.85);
84
+ }
85
+ 50% {
86
+ opacity: 1;
87
+ }
88
+ 100% {
89
+ opacity: 1;
90
+ transform: translateY(0px) scale(1, 1);
91
+ }
92
+ }
@@ -0,0 +1,62 @@
1
+ .radio-nav {
2
+
3
+ display: inline-block;
4
+ position: relative;
5
+ /*overflow: hidden;*/
6
+ /*border-radius: 5px;*/
7
+ /*box-shadow: #fff 0 1px 1px, rgba(#000, .18) 0 0 0 1px inset;*/
8
+ margin: { top: $block-margin/2; bottom: $block-margin/2; }
9
+ letter-spacing: -4px;
10
+ z-index: 1;
11
+
12
+ input {
13
+ position: absolute;
14
+ z-index: -100;
15
+ opacity: 0;
16
+ top: 0;
17
+ left: 0;
18
+ }
19
+
20
+ label {
21
+ text-align: left;
22
+ letter-spacing: normal;
23
+ cursor: pointer;
24
+ display: inline-block;
25
+ padding: 2px 12px;
26
+ line-height: 1.8em;
27
+ font-size: 13px;
28
+ color: $gray;
29
+ background-color: $silver;
30
+ box-shadow: $lightgray 0 0 0 1px;
31
+ position: relative;
32
+ }
33
+
34
+ input:first-child + label {
35
+ border-top-left-radius: 15px;
36
+ border-bottom-left-radius: 15px;
37
+ }
38
+
39
+ label:last-child {
40
+ border-top-right-radius: 15px;
41
+ border-bottom-right-radius: 15px;
42
+ border-right: 0;
43
+ }
44
+
45
+ input:focus + label, label:hover {
46
+ background-color: $offwhite;
47
+ color: $mediumgray;
48
+ }
49
+
50
+ input:focus + label {
51
+ box-shadow: hsl(204, 67%, 70%) 0 0 0 1px, hsl(204, 67%, 70%) 0 0 0 1px inset;
52
+ z-index: 1;
53
+ }
54
+
55
+ input:checked + label {
56
+ color: $night;
57
+ background-image: linear-gradient(#fff, rgba(#fff, 0));
58
+ background-color: $offwhite;
59
+ }
60
+ }
61
+
62
+
@@ -0,0 +1,37 @@
1
+ .select_box {
2
+ max-width: 100%;
3
+ background: #fff;
4
+ font-size: 1em;
5
+ position: relative;
6
+ display: inline-block;
7
+
8
+ &.fill {
9
+ display: block;
10
+ select { width: 100%; }
11
+ }
12
+
13
+ select {
14
+ -webkit-appearance: none;
15
+ -moz-appearance: window;
16
+ appearance: none;
17
+ cursor: pointer;
18
+
19
+ @extend %text-input;
20
+ font-size: 14px;
21
+ padding-right: 2.2em;
22
+ &, &:focus {
23
+ background: transparent;
24
+ }
25
+ position: relative;
26
+ z-index: 1;
27
+ }
28
+
29
+ &:after {
30
+ content: "";
31
+ z-index: 0;
32
+ position: absolute;
33
+ right: .8em;
34
+ @include triangle(down, rgba(#000, .2), 6px);
35
+ bottom: 40%;
36
+ }
37
+ }
@@ -0,0 +1,29 @@
1
+ .stacked-form {
2
+ margin: .8em 0;
3
+
4
+ label:first-child {
5
+ font-size: .9em;
6
+ display: block;
7
+ margin: .8em 0;
8
+ }
9
+
10
+ [type=checkbox] + label,
11
+ [type=radio] + label {
12
+ font-size: 1em;
13
+ }
14
+
15
+ [type=text],[type=password] {
16
+ width: 100%;
17
+ }
18
+
19
+ .auto {
20
+ width: auto;
21
+ }
22
+
23
+ @include at-least($medium) {
24
+ label {
25
+ font-size: 1em;
26
+ }
27
+ }
28
+ }
29
+
@@ -0,0 +1,53 @@
1
+ .table-form {
2
+ margin: .8em 0;
3
+
4
+ .table-row {
5
+ margin: .8em 0;
6
+ }
7
+
8
+ .table-cell:empty {
9
+ padding: 0;
10
+ }
11
+
12
+ [type=text],[type=password] {
13
+ width: 100%;
14
+ }
15
+ .auto {
16
+ width: auto;
17
+ }
18
+
19
+ @include until($medium) {
20
+ .table-cell {
21
+ padding: 0;
22
+ }
23
+ label:first-child {
24
+ font-size: .8em;
25
+ display: inline-block;
26
+ margin: .4em 0;
27
+ }
28
+ }
29
+
30
+ @include at-least($medium) {
31
+ @include auto-table;
32
+
33
+ .table-cell {
34
+ padding: .4em 0;
35
+ vertical-align: middle;
36
+ margin: 0;
37
+
38
+ }
39
+
40
+ // Ensure labels do not wrap
41
+ //
42
+ label.table-cell,
43
+ .table-cell:first-child:not(:last-child) {
44
+ width: 1%;
45
+ label {
46
+ white-space: pre;
47
+ line-height: 2em;
48
+ padding-right: 1em;
49
+ }
50
+ }
51
+ }
52
+ }
53
+