cactu 0.1.2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +10 -15
  3. data/.travis.yml +7 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +1 -1
  6. data/{LICENSE.txt → LICENSE} +1 -1
  7. data/README.md +46 -16
  8. data/Rakefile +9 -0
  9. data/assets/stylesheets/base/_blocks.scss +24 -0
  10. data/assets/stylesheets/base/_global-variables.scss +62 -0
  11. data/assets/stylesheets/base/_reboot.scss +309 -0
  12. data/assets/stylesheets/cactu.scss +46 -0
  13. data/assets/stylesheets/components/_alerts.scss +48 -0
  14. data/assets/stylesheets/components/_buttons.scss +82 -0
  15. data/assets/stylesheets/components/_collapse.scss +84 -0
  16. data/assets/stylesheets/components/_dropdowns.scss +172 -0
  17. data/assets/stylesheets/components/_forms.scss +158 -0
  18. data/assets/stylesheets/components/_grids.scss +95 -0
  19. data/assets/stylesheets/components/_lists.scss +75 -0
  20. data/assets/stylesheets/components/_modals.scss +124 -0
  21. data/assets/stylesheets/components/_navbars.scss +190 -0
  22. data/assets/stylesheets/components/_navs.scss +52 -0
  23. data/assets/stylesheets/components/_paginations.scss +76 -0
  24. data/assets/stylesheets/components/_tables.scss +49 -0
  25. data/assets/stylesheets/components/_tooltips.scss +138 -0
  26. data/assets/stylesheets/elements/_button.scss +94 -0
  27. data/assets/stylesheets/elements/_code.scss +75 -0
  28. data/assets/stylesheets/elements/_icon.scss +66 -0
  29. data/assets/stylesheets/elements/_image.scss +33 -0
  30. data/assets/stylesheets/elements/_typography.scss +130 -0
  31. data/assets/stylesheets/functions/_colors.scss +40 -0
  32. data/assets/stylesheets/functions/_strings.scss +14 -0
  33. data/assets/stylesheets/mixins/_alerts.scss +18 -0
  34. data/assets/stylesheets/mixins/_breakpoints.scss +93 -0
  35. data/assets/stylesheets/mixins/_buttons.scss +96 -0
  36. data/assets/stylesheets/mixins/_forms.scss +44 -0
  37. data/assets/stylesheets/mixins/_grid.scss +18 -0
  38. data/assets/stylesheets/mixins/_hover.scss +27 -0
  39. data/assets/stylesheets/mixins/_icons.scss +22 -0
  40. data/assets/stylesheets/mixins/_navbar.scss +60 -0
  41. data/assets/stylesheets/mixins/_positions.scss +12 -0
  42. data/assets/stylesheets/mixins/_transition.scss +16 -0
  43. data/assets/stylesheets/utilities/_classes.scss +69 -0
  44. data/assets/stylesheets/utilities/_syntax.scss +81 -0
  45. data/cactu.gemspec +15 -15
  46. data/lib/cactu.rb +40 -12
  47. data/lib/cactu/engine.rb +11 -3
  48. data/lib/cactu/version.rb +1 -1
  49. metadata +123 -110
  50. data/app/assets/stylesheets/_cactu.scss +0 -15
  51. data/app/assets/stylesheets/config/_variables.scss +0 -27
  52. data/app/assets/stylesheets/functions/_grid.scss +0 -32
  53. data/app/assets/stylesheets/mixins/_fonts.scss +0 -13
  54. data/app/assets/stylesheets/mixins/_grid.scss +0 -81
  55. data/app/assets/stylesheets/mixins/_menu.scss +0 -47
  56. data/app/assets/stylesheets/ui/_base.scss +0 -53
  57. data/app/assets/stylesheets/ui/_buttons.scss +0 -13
  58. data/app/assets/stylesheets/ui/_forms.scss +0 -3
  59. data/app/assets/stylesheets/ui/_images.scss +0 -3
  60. data/app/assets/stylesheets/ui/_menus.scss +0 -4
  61. data/app/assets/stylesheets/ui/_tables.scss +0 -3
  62. data/app/assets/stylesheets/ui/_text.scss +0 -71
  63. data/bin/cactu +0 -6
  64. data/lib/cactu/generator.rb +0 -80
  65. data/test/cactu_app/.gitignore +0 -16
  66. data/test/cactu_app/Gemfile +0 -49
  67. data/test/cactu_app/README.rdoc +0 -28
  68. data/test/cactu_app/Rakefile +0 -6
  69. data/test/cactu_app/app/assets/images/.keep +0 -0
  70. data/test/cactu_app/app/assets/javascripts/application.js +0 -16
  71. data/test/cactu_app/app/assets/stylesheets/application.css.scss +0 -16
  72. data/test/cactu_app/app/assets/stylesheets/test/_test.css.scss +0 -10
  73. data/test/cactu_app/app/assets/stylesheets/test/config/_responsive_large.css.scss +0 -7
  74. data/test/cactu_app/app/assets/stylesheets/test/config/_responsive_medium.css.scss +0 -7
  75. data/test/cactu_app/app/assets/stylesheets/test/config/_responsive_short.css.scss +0 -3
  76. data/test/cactu_app/app/assets/stylesheets/test/config/_variables.css.scss +0 -7
  77. data/test/cactu_app/app/assets/stylesheets/test/pages/_home.css.scss +0 -2
  78. data/test/cactu_app/app/assets/stylesheets/test/ui/_anchors.css.scss +0 -0
  79. data/test/cactu_app/app/assets/stylesheets/test/ui/_base.css.scss +0 -0
  80. data/test/cactu_app/app/assets/stylesheets/test/ui/_navigations.css.scss +0 -3
  81. data/test/cactu_app/app/assets/stylesheets/test/ui/_text.css.scss +0 -1
  82. data/test/cactu_app/app/controllers/application_controller.rb +0 -5
  83. data/test/cactu_app/app/controllers/concerns/.keep +0 -0
  84. data/test/cactu_app/app/controllers/home_controller.rb +0 -5
  85. data/test/cactu_app/app/controllers/usage_controller.rb +0 -13
  86. data/test/cactu_app/app/helpers/application_helper.rb +0 -2
  87. data/test/cactu_app/app/mailers/.keep +0 -0
  88. data/test/cactu_app/app/models/.keep +0 -0
  89. data/test/cactu_app/app/models/concerns/.keep +0 -0
  90. data/test/cactu_app/app/views/home/index.html.haml +0 -7
  91. data/test/cactu_app/app/views/layouts/application.html.haml +0 -20
  92. data/test/cactu_app/app/views/usage/base.html.haml +0 -19
  93. data/test/cactu_app/app/views/usage/components.html.haml +0 -4
  94. data/test/cactu_app/app/views/usage/started.html.haml +0 -4
  95. data/test/cactu_app/bin/bundle +0 -3
  96. data/test/cactu_app/bin/rails +0 -4
  97. data/test/cactu_app/bin/rake +0 -4
  98. data/test/cactu_app/config.ru +0 -4
  99. data/test/cactu_app/config/application.rb +0 -23
  100. data/test/cactu_app/config/boot.rb +0 -4
  101. data/test/cactu_app/config/database.yml +0 -25
  102. data/test/cactu_app/config/environment.rb +0 -5
  103. data/test/cactu_app/config/environments/development.rb +0 -29
  104. data/test/cactu_app/config/environments/production.rb +0 -80
  105. data/test/cactu_app/config/environments/test.rb +0 -36
  106. data/test/cactu_app/config/initializers/backtrace_silencers.rb +0 -7
  107. data/test/cactu_app/config/initializers/filter_parameter_logging.rb +0 -4
  108. data/test/cactu_app/config/initializers/inflections.rb +0 -16
  109. data/test/cactu_app/config/initializers/mime_types.rb +0 -5
  110. data/test/cactu_app/config/initializers/secret_token.rb +0 -12
  111. data/test/cactu_app/config/initializers/session_store.rb +0 -3
  112. data/test/cactu_app/config/initializers/wrap_parameters.rb +0 -14
  113. data/test/cactu_app/config/locales/en.yml +0 -23
  114. data/test/cactu_app/config/routes.rb +0 -6
  115. data/test/cactu_app/db/seeds.rb +0 -7
  116. data/test/cactu_app/lib/assets/.keep +0 -0
  117. data/test/cactu_app/lib/tasks/.keep +0 -0
  118. data/test/cactu_app/log/.keep +0 -0
  119. data/test/cactu_app/public/404.html +0 -58
  120. data/test/cactu_app/public/422.html +0 -58
  121. data/test/cactu_app/public/500.html +0 -57
  122. data/test/cactu_app/public/favicon.ico +0 -0
  123. data/test/cactu_app/public/robots.txt +0 -5
  124. data/test/cactu_app/test/controllers/.keep +0 -0
  125. data/test/cactu_app/test/fixtures/.keep +0 -0
  126. data/test/cactu_app/test/helpers/.keep +0 -0
  127. data/test/cactu_app/test/integration/.keep +0 -0
  128. data/test/cactu_app/test/mailers/.keep +0 -0
  129. data/test/cactu_app/test/models/.keep +0 -0
  130. data/test/cactu_app/test/test_helper.rb +0 -15
  131. data/test/cactu_app/vendor/assets/javascripts/.keep +0 -0
  132. data/test/cactu_app/vendor/assets/stylesheets/.keep +0 -0
@@ -0,0 +1,95 @@
1
+ //
2
+ // Grid
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Variables
7
+ $column-gap: 15px !default;
8
+ $column-tablet-gap: 10px !default;
9
+ $size-name-tablets: 'tablet' !default;
10
+ $size-name-cellphones: 'cellphone' !default;
11
+
12
+
13
+ .container {
14
+ width: 100%;
15
+ margin: 0 auto;
16
+ position: relative;
17
+
18
+ @include breakpoint-small-desktop {
19
+ width: $small-desktop-size;
20
+ }
21
+
22
+ @include breakpoint-medium-desktop {
23
+ width: $medium-desktop-size;
24
+ }
25
+
26
+ @include breakpoint-large-desktop {
27
+ width: $large-desktop-size;
28
+ }
29
+ }
30
+
31
+ .columns {
32
+ display: flex;
33
+ flex-wrap: wrap;
34
+ margin: 0;
35
+
36
+ .columns {
37
+ padding: 0;
38
+ }
39
+ }
40
+
41
+ .column {
42
+ flex-basis: 0;
43
+ flex-grow: 1;
44
+ flex-shrink: 1;
45
+
46
+ &[class*="column-of-"] {
47
+ flex-basis: inherit;
48
+ }
49
+ }
50
+
51
+ // For nested columns
52
+ //
53
+ .column,
54
+ [class*="column-of-"] {
55
+ padding: 0 $column-gap;
56
+ min-height: 1px;
57
+ }
58
+
59
+ // Fix the global gap for column clases
60
+ @include breakpoint-cellphone-medium-desktop {
61
+ .column,
62
+ [class*="column-of-"] {
63
+ padding: 0 $column-tablet-gap;
64
+ }
65
+ }
66
+
67
+ // Columns generator
68
+ // for different breakpoints
69
+ // column-of-[x]
70
+ //
71
+ @include make-specific-columns;
72
+
73
+ // tablet-column-of-[x]
74
+ @include breakpoint-tablet {
75
+ @include make-specific-columns($size-name-tablets)
76
+ }
77
+
78
+ // cellphone-column-of-[x]
79
+ @include breakpoint-cellphone-tablet {
80
+ @include make-specific-columns($size-name-cellphones);
81
+ }
82
+
83
+ @include breakpoint-cellphone {
84
+ .column,
85
+ [class*="column-of-"] {
86
+ width: 100%;
87
+ flex-basis: inherit;
88
+ }
89
+ // Example:
90
+ // if you want to set a columns name:
91
+ // small-column-of-[x] for this breakpoint,
92
+ // you need to add a specific columns mixin with 'small' name
93
+ // and the number of columns you need
94
+ // @include make-specific-columns('small', 5);
95
+ }
@@ -0,0 +1,75 @@
1
+ //
2
+ // Lists
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Variables
7
+ //
8
+ $list-padding-left: 1.75rem !default;
9
+ $list-item-padding: .625rem 1rem !default;
10
+ $list-item-border: $border-base !default;
11
+ $list-item-background: transparent !default;
12
+ $list-item-radius: $radius !default;
13
+ $list-item-interleaved: $white-smoke !default;
14
+
15
+
16
+ ul, ol {
17
+ padding-left: $list-padding-left;
18
+ }
19
+
20
+ .list-group,
21
+ .list-group-flush,
22
+ .list-group-interleaved {
23
+ list-style: none;
24
+ padding: 0;
25
+ margin-bottom: 1rem;
26
+
27
+ * {
28
+ display: block;
29
+ width: 100%;
30
+ padding: $list-item-padding;
31
+ margin-bottom: -1px;
32
+ text-align: left;
33
+ border: $list-item-border;
34
+ border-radius: 0;
35
+ background-color: $list-item-background;
36
+ }
37
+ }
38
+
39
+ .list-group,
40
+ .list-group-interleaved {
41
+ * {
42
+ &:first-child {
43
+ border-top-left-radius: $list-item-radius;
44
+ border-top-right-radius: $list-item-radius;
45
+ }
46
+
47
+ &:last-child {
48
+ border-bottom-left-radius: $list-item-radius;
49
+ border-bottom-right-radius: $list-item-radius;
50
+ }
51
+ }
52
+ }
53
+
54
+ .list-group-flush {
55
+ * {
56
+ border-left: 0;
57
+ border-right: 0;
58
+
59
+ &:first-child {
60
+ border-top: 0;
61
+ }
62
+
63
+ &:last-child {
64
+ border-bottom: 0;
65
+ }
66
+ }
67
+ }
68
+
69
+ .list-group-interleaved {
70
+ * {
71
+ &:nth-child(2n) {
72
+ background-color: $list-item-interleaved;
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,124 @@
1
+ //
2
+ // Modals
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Variables
7
+ //
8
+ $modal-background: rgba(0, 0, 0, .7) !default;
9
+ $modal-content-width: 500px !default;
10
+ $modal-content-margin: 2rem auto auto !default;
11
+ $modal-content-radius: $radius !default;
12
+ $modal-content-background: $white !default;
13
+ $modal-content-transition: all .35s ease-in-out !default;
14
+ $modal-close-size: 30px !default;
15
+ $modal-close-gap: -25px !default;
16
+ $modal-close-color: $white !default;
17
+ $modal-close-radio: 50% !default;
18
+ $modal-close-background: rgba(30, 30, 30, .8) !default;
19
+ $modal-close-background-hover: rgba(0, 0, 0, 1) !default;
20
+ $modal-close-icon-size: 1.25rem !default;
21
+
22
+
23
+ .modal,
24
+ .modal-center {
25
+ position: fixed;
26
+ display: flex;
27
+ top: 0;
28
+ left: 0;
29
+ right: 0;
30
+ bottom: 0;
31
+ opacity: 0;
32
+ z-index: -1;
33
+ overflow-x: hidden;
34
+ overflow-y: auto;
35
+ background-color: $modal-background;
36
+ @include transition($transition-all);
37
+
38
+ .modal-content {
39
+ position: relative;
40
+ top: 0;
41
+ left: 0;
42
+ right: 0;
43
+ flex-direction: column;
44
+ width: $modal-content-width;
45
+ margin: $modal-content-margin;
46
+ border-radius: $modal-content-radius;
47
+ background-color: $modal-content-background;
48
+ transform: translate(0, -25%);
49
+ @include transition(all .35s ease-in-out);
50
+
51
+ > * {
52
+ &:not(:last-child) {
53
+ border-bottom: $border-base;
54
+ }
55
+
56
+ &:not(:nth-child(1):not(:nth-child(2))) {
57
+ padding: 1rem;
58
+ margin: 0;
59
+ }
60
+ }
61
+
62
+ > .close {
63
+ display: flex;
64
+ position: absolute;
65
+ top: $modal-close-gap;
66
+ right: $modal-close-gap;
67
+ width: $modal-close-size;
68
+ height: $modal-close-size;
69
+ justify-content: center;
70
+ line-height: 0;
71
+ color: $modal-close-color;
72
+ border: 0 !important;
73
+ border-radius: $modal-close-radio;
74
+ background-color: $modal-close-background;
75
+
76
+ > span {
77
+ font-size: $modal-close-icon-size;
78
+ margin-top: -2px; // to force the centered
79
+ }
80
+
81
+ @include hover-focus {
82
+ background-color: $modal-close-background-hover;
83
+ }
84
+ }
85
+ }
86
+
87
+ .modal-header {
88
+ align-items: center;
89
+
90
+ h4 { margin: 0; }
91
+ }
92
+
93
+ .modal-body {
94
+ flex-direction: column;
95
+ }
96
+
97
+ .modal-footer {
98
+ justify-content: flex-end;
99
+ }
100
+
101
+ &.active {
102
+ opacity: 1;
103
+ z-index: $zindex-top;
104
+
105
+ .modal-content {
106
+ transform: translate(0,0);
107
+ }
108
+ }
109
+ }
110
+
111
+ .modal-center {
112
+ .modal-content {
113
+ margin: auto;
114
+ }
115
+ }
116
+
117
+ @include breakpoint-cellphone {
118
+ .modal,
119
+ .modal-center {
120
+ .modal-content {
121
+ width: 84%;
122
+ }
123
+ }
124
+ }
@@ -0,0 +1,190 @@
1
+ //
2
+ // Navbars
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Variables
7
+ //
8
+ $navbar-padding-y: 0 !default;
9
+ $navbar-padding-x: 15px !default;
10
+ $navbar-base-color: $white-smoke !default;
11
+ $navbar-last-padding: .5rem !default;
12
+ $toggler-color: $text-color !default;
13
+ $link-padding-y: .9375rem !default;
14
+ $brand-padding-y: .75rem !default;
15
+ $brand-padding-x: 0 !default;
16
+ $brand-gap: .625rem !default;
17
+ $brand-font-size: 1.25rem !default;
18
+ $search-gap: .5rem !default;
19
+ $breakpoint-mobile: $tablet-size !default; // Set you breakpoint to get the navbar mobile
20
+
21
+
22
+ // Blocks
23
+ //
24
+ %show-menu {
25
+ opacity: 1;
26
+ height: auto;
27
+ }
28
+
29
+
30
+ .navbar,
31
+ .navbar-expanded {
32
+ position: relative;
33
+ @extend %flex-wrap-center;
34
+ // The base navbar-variant get the base grays colors
35
+ @include navbar-theme($navbar-base-color);
36
+
37
+ * {
38
+ @extend %flex-wrap-center;
39
+ }
40
+
41
+ a {
42
+ text-decoration: none;
43
+ }
44
+
45
+ nav {
46
+ height: 0;
47
+ opacity: 0;
48
+ @include transition($transition-all);
49
+
50
+ a {
51
+ padding: $link-padding-y;
52
+ }
53
+
54
+ &.navigation-end {
55
+ margin-left: auto;
56
+ }
57
+ }
58
+
59
+ .navbar-toggler {
60
+ width: auto;
61
+ height: 40px;
62
+ margin: 7px 0;
63
+ @extend %flex-wrap-center;
64
+ background: none;
65
+ }
66
+
67
+ .show-menu {
68
+ @extend %show-menu;
69
+ }
70
+
71
+ [type="checkbox"] {
72
+ display: none;
73
+
74
+ &:checked {
75
+ & ~ nav {
76
+ @extend %show-menu;
77
+ }
78
+
79
+ & ~ .navbar-toggler > .menu-icon {
80
+ &:before {
81
+ transform: rotate(45deg);
82
+ margin-top: 5px;
83
+ }
84
+
85
+ &:after {
86
+ transform: rotate(-45deg);
87
+ margin-top: -7px;
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ .dropdown {
94
+ .toggle { padding: $link-padding-y; }
95
+ .drop-menu { top: 3rem; }
96
+ }
97
+ }
98
+
99
+ .navbar-brand {
100
+ font-size: $brand-font-size;
101
+ padding: $brand-padding-y $brand-padding-x;
102
+ margin-right: $brand-gap;
103
+ }
104
+
105
+ .navbar-expanded {
106
+ width: 100%;
107
+ padding: $navbar-padding-y $navbar-padding-x;
108
+
109
+ // Set grid padding between cellphone and medium desktop sizes
110
+ @include breakpoint-cellphone-medium-desktop {
111
+ padding: $navbar-padding-y ($navbar-padding-x - 5px);
112
+ }
113
+ }
114
+
115
+ // Responsive navbars
116
+ //
117
+ @include breakpoint-max($breakpoint-mobile - 1) {
118
+ .navbar,
119
+ .navbar-expanded {
120
+ justify-content: space-between;
121
+
122
+ nav {
123
+ width: 100%;
124
+ flex-direction: column;
125
+
126
+ * {
127
+ display: block;
128
+ width: 100%;
129
+ }
130
+
131
+ a,
132
+ .dropdown {
133
+ padding: .625rem 0;
134
+ }
135
+
136
+ .dropdown {
137
+ .toggle {
138
+ display: flex;
139
+ justify-content: space-between;
140
+ align-content: center;
141
+ padding: 0;
142
+ }
143
+ }
144
+
145
+ &:not([class*="show-menu"]) {
146
+ overflow: hidden;
147
+ }
148
+
149
+ .navbar-search {
150
+ input {
151
+ margin-bottom: $search-gap;
152
+ }
153
+ }
154
+ }
155
+
156
+ .show-menu {
157
+ &:last-child() {
158
+ padding-bottom: $navbar-last-padding;
159
+ }
160
+ }
161
+ }
162
+
163
+ .navbar {
164
+ [class*="column"] {
165
+ justify-content: space-between;
166
+ }
167
+ }
168
+ }
169
+
170
+ @include breakpoint-min($breakpoint-mobile) {
171
+ .navbar,
172
+ .navbar-expanded {
173
+ justify-content: start;
174
+
175
+ nav {
176
+ height: auto;
177
+ opacity: 1;
178
+ }
179
+
180
+ .navbar-toggler {
181
+ display: none;
182
+ }
183
+
184
+ .navbar-search {
185
+ input {
186
+ margin-right: $search-gap;
187
+ }
188
+ }
189
+ }
190
+ }