themepile-abstractio 1.0.2

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 (84) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +28 -0
  3. data/.rbenv-version +1 -0
  4. data/CONTRIBUTING.md +53 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +22 -0
  7. data/README.md +136 -0
  8. data/Rakefile +2 -0
  9. data/abstractio.gemspec +18 -0
  10. data/js/foundation/foundation.alerts.js +50 -0
  11. data/js/foundation/foundation.clearing.js +516 -0
  12. data/js/foundation/foundation.cookie.js +74 -0
  13. data/js/foundation/foundation.dropdown.js +159 -0
  14. data/js/foundation/foundation.forms.js +516 -0
  15. data/js/foundation/foundation.joyride.js +842 -0
  16. data/js/foundation/foundation.js +403 -0
  17. data/js/foundation/foundation.magellan.js +130 -0
  18. data/js/foundation/foundation.orbit.js +373 -0
  19. data/js/foundation/foundation.placeholder.js +159 -0
  20. data/js/foundation/foundation.reveal.js +276 -0
  21. data/js/foundation/foundation.section.js +409 -0
  22. data/js/foundation/foundation.tooltips.js +206 -0
  23. data/js/foundation/foundation.topbar.js +252 -0
  24. data/js/foundation/index.js +16 -0
  25. data/js/vendor/custom.modernizr.js +4 -0
  26. data/js/vendor/jquery.js +9597 -0
  27. data/js/vendor/zepto.js +1884 -0
  28. data/lib/abstractio.rb +17 -0
  29. data/lib/abstractio/engine.rb +20 -0
  30. data/lib/abstractio/generators/USAGE +15 -0
  31. data/lib/abstractio/generators/install_generator.rb +54 -0
  32. data/lib/abstractio/generators/templates/application.html.erb +46 -0
  33. data/lib/abstractio/generators/templates/application.html.haml +31 -0
  34. data/lib/abstractio/generators/templates/application.html.slim +28 -0
  35. data/lib/abstractio/version.rb +3 -0
  36. data/lib/themepile-abstractio.rb +17 -0
  37. data/scss/abstractio.scss +46 -0
  38. data/scss/abstractio/_variables.scss +1224 -0
  39. data/scss/abstractio/components/_alert-boxes.scss +107 -0
  40. data/scss/abstractio/components/_block-grid.scss +68 -0
  41. data/scss/abstractio/components/_breadcrumbs.scss +125 -0
  42. data/scss/abstractio/components/_button-groups.scss +89 -0
  43. data/scss/abstractio/components/_buttons.scss +227 -0
  44. data/scss/abstractio/components/_clearing.scss +224 -0
  45. data/scss/abstractio/components/_custom-forms.scss +263 -0
  46. data/scss/abstractio/components/_dropdown-buttons.scss +115 -0
  47. data/scss/abstractio/components/_dropdown.scss +150 -0
  48. data/scss/abstractio/components/_flex-video.scss +46 -0
  49. data/scss/abstractio/components/_forms.scss +362 -0
  50. data/scss/abstractio/components/_global.scss +280 -0
  51. data/scss/abstractio/components/_grid.scss +186 -0
  52. data/scss/abstractio/components/_inline-lists.scss +53 -0
  53. data/scss/abstractio/components/_joyride.scss +215 -0
  54. data/scss/abstractio/components/_keystrokes.scss +57 -0
  55. data/scss/abstractio/components/_labels.scss +85 -0
  56. data/scss/abstractio/components/_magellan.scss +23 -0
  57. data/scss/abstractio/components/_orbit.scss +213 -0
  58. data/scss/abstractio/components/_pagination.scss +100 -0
  59. data/scss/abstractio/components/_panels.scss +77 -0
  60. data/scss/abstractio/components/_pricing-tables.scss +131 -0
  61. data/scss/abstractio/components/_progress-bars.scss +71 -0
  62. data/scss/abstractio/components/_reveal.scss +132 -0
  63. data/scss/abstractio/components/_section.scss +318 -0
  64. data/scss/abstractio/components/_side-nav.scss +69 -0
  65. data/scss/abstractio/components/_split-buttons.scss +167 -0
  66. data/scss/abstractio/components/_sub-nav.scss +68 -0
  67. data/scss/abstractio/components/_switch.scss +251 -0
  68. data/scss/abstractio/components/_tables.scss +84 -0
  69. data/scss/abstractio/components/_thumbs.scss +48 -0
  70. data/scss/abstractio/components/_tooltips.scss +117 -0
  71. data/scss/abstractio/components/_top-bar.scss +495 -0
  72. data/scss/abstractio/components/_type.scss +426 -0
  73. data/scss/abstractio/components/_visibility.scss +322 -0
  74. data/scss/normalize.scss +402 -0
  75. data/templates/project/.gitignore +44 -0
  76. data/templates/project/MIT-LICENSE.txt +20 -0
  77. data/templates/project/config.rb +26 -0
  78. data/templates/project/humans.txt +8 -0
  79. data/templates/project/index.html +124 -0
  80. data/templates/project/manifest.rb +45 -0
  81. data/templates/project/robots.txt +4 -0
  82. data/templates/project/scss/app.scss +48 -0
  83. data/templates/upgrade/manifest.rb +34 -0
  84. metadata +153 -0
@@ -0,0 +1,318 @@
1
+ //
2
+ // Section Variables
3
+ //
4
+ $include-html-section-classes: $include-html-classes !default;
5
+
6
+ // We use these to set padding and hover factor
7
+ $section-title-padding: emCalc(15px) !default;
8
+ $section-content-padding: emCalc(15px) !default;
9
+ $section-function-factor: 10% !default;
10
+
11
+ // These style the titles
12
+ $section-title-color: #333 !default;
13
+ $section-title-bg: #efefef !default;
14
+ $section-title-bg-active: darken($section-title-bg, $section-function-factor) !default;
15
+ $section-title-bg-active-tabs: #fff !default;
16
+ $section-title-bg-hover: darken($section-title-bg, $section-function-factor/2) !default;
17
+
18
+ // Want to control border size, here ya go!
19
+ $section-border-size: 1px !default;
20
+ $section-border-style: solid !default;
21
+ $section-border-color: #ccc !default;
22
+
23
+ // Font controls
24
+ $section-font-size: emCalc(14px) !default;
25
+
26
+ // Control the color of the background and some size options
27
+ $section-content-bg: #fff !default;
28
+ $section-vertical-nav-min-width: emCalc(200px) !default;
29
+ $section-vertical-tabs-title-width: emCalc(200px) !default;
30
+ $section-bottom-margin: emCalc(20px) !default;
31
+
32
+
33
+ //
34
+ // Section Mixins
35
+ //
36
+
37
+ // We use this mixin to create the basic container styles for sections when they act like accordions
38
+ @mixin section-container($base-style:true, $section-type:accordion) {
39
+
40
+ /// We can set this to false to not include these styles to avoid repeated CSS on classes.
41
+ @if $base-style {
42
+ width: 100%;
43
+ display: block;
44
+ margin-bottom: $section-bottom-margin;
45
+ }
46
+
47
+ // Accordion container border styles
48
+ @if $section-type == accordion {
49
+ border: $section-border-size $section-border-style $section-border-color;
50
+ border-top: none;
51
+ }
52
+
53
+ // Tabs container border styles
54
+ @else if $section-type == tabs {
55
+ border: 0;
56
+ position: relative;
57
+ }
58
+
59
+ // Vertical Tabs container border styles
60
+ @else if $section-type == vertical-tabs {
61
+ border: $section-border-size $section-border-style $section-border-color;
62
+ position: relative;
63
+ }
64
+
65
+ // Vertical Nav container border styles
66
+ @else if $section-type == vertical-nav {
67
+ border: 0;
68
+ position: relative;
69
+ }
70
+
71
+ // Horizontal Nav container border styles
72
+ @else if $section-type == horizontal-nav {
73
+ position: relative;
74
+ background: $section-title-bg;
75
+ border: $section-border-size $section-border-style $section-border-color;
76
+ }
77
+
78
+ }
79
+
80
+
81
+ @mixin section($section-type:accordion, $title-selector:".title", $content-selector:".content", $title-padding:$section-title-padding, $title-color:$section-title-color, $title-font-size:$section-font-size, $title-bg:$section-title-bg, $title-bg-hover:$section-title-bg-hover, $title-bg-active:$section-title-bg-active, $title-color-active:$section-title-color, $content-bg:$section-content-bg, $content-padding:$section-content-padding, $section-border-size:$section-border-size, $section-border-style:$section-border-style, $section-border-color: $section-border-color) {
82
+
83
+ // Default Styles
84
+ > #{$title-selector} {
85
+ background-color: $title-bg;
86
+ cursor: pointer;
87
+ margin-bottom: 0;
88
+
89
+ a {
90
+ padding: $title-padding;
91
+ display: inline-block;
92
+ color: $title-color;
93
+ font-size: $title-font-size;
94
+ white-space: nowrap;
95
+ }
96
+ &:hover { background-color: $title-bg-hover; }
97
+ }
98
+
99
+ #{$content-selector} {
100
+ display: none;
101
+ padding: $content-padding;
102
+ background-color: $content-bg;
103
+
104
+ &>*:last-child { margin-bottom: 0; }
105
+ &>*:first-child { padding-top: 0; }
106
+ &>*:last-child { padding-bottom: 0; }
107
+ }
108
+
109
+ &.active {
110
+ & > #{$content-selector} { display: block; }
111
+ & > #{$title-selector} { background: $title-bg-active;
112
+ a { color: $title-color-active; }
113
+ }
114
+ }
115
+
116
+ // Style for when Accordion
117
+ @if $section-type == accordion {
118
+ // border-top: $section-border-size $section-border-style $section-border-color;
119
+ position: relative;
120
+
121
+ > #{$title-selector} {
122
+ top: 0;
123
+ width: 100%;
124
+ margin: 0;
125
+ border-top: $section-border-style $section-border-size $section-border-color;
126
+
127
+ a { width: 100%; }
128
+ }
129
+ }
130
+
131
+ // Styles for when tabs
132
+ @else if $section-type == tabs {
133
+ border: 0;
134
+ position: static;
135
+
136
+ > #{$title-selector} {
137
+ width: auto;
138
+ border: $section-border-style $section-border-size $section-border-color;
139
+ border-#{$opposite-direction}: 0;
140
+ border-bottom: 0;
141
+ position: absolute;
142
+ top: 0;
143
+ z-index: 1;
144
+
145
+ a { width: 100%; }
146
+ }
147
+ &:last-child #{$title-selector} { border-#{$opposite-direction}: $section-border-style $section-border-size $section-border-color; }
148
+
149
+ #{$content-selector} {
150
+ border: $section-border-style $section-border-size $section-border-color;
151
+ position: absolute;
152
+ z-index: 10;
153
+ display: none;
154
+ top: -1px;
155
+ }
156
+
157
+ &.active {
158
+ & > #{$title-selector} {
159
+ z-index: 11;
160
+ border-bottom: 0;
161
+ background-color: $title-bg-active;
162
+ }
163
+ & > #{$content-selector} { position: relative; }
164
+ }
165
+ }
166
+
167
+ // Styles for when Vertical Tabs
168
+ @else if $section-type == vertical-tabs {
169
+ padding-top: 0 !important;
170
+ border: 0;
171
+ position: static;
172
+
173
+ > #{$title-selector} {
174
+ position: absolute;
175
+ border-top: $section-border-style $section-border-size $section-border-color;
176
+ width: $section-vertical-tabs-title-width;
177
+ }
178
+ &:first-child #{$title-selector} { border-top: 0; }
179
+
180
+ #{$content-selector} {
181
+ // Display all content blocks to account for the scrollbar
182
+ // in the outerWidth measurements. JavaScript will toggle the active tabs.
183
+ display: block;
184
+ position: relative;
185
+ left: $section-vertical-tabs-title-width;
186
+ border-left: $section-border-style $section-border-size $section-border-color;
187
+ z-index: 10;
188
+ }
189
+
190
+ &.active {
191
+ & > #{$title-selector} {
192
+ background-color: $title-bg-active;
193
+ width: $section-vertical-tabs-title-width + emCalc(1px); // Cover the content's left border
194
+ border-right: solid 0 transparent;
195
+ z-index: 11; // Put active title on top of the content
196
+ }
197
+ &:last-child #{$title-selector} { border-bottom: 0; }
198
+ }
199
+ }
200
+
201
+ // Styles for when Vertical Nav
202
+ @else if $section-type == vertical-nav {
203
+ padding-top: 0 !important;
204
+ position: relative;
205
+
206
+ > #{$title-selector} {
207
+ border-top: none;
208
+ border: $section-border-style $section-border-size $section-border-color;
209
+
210
+ a {
211
+ display: block;
212
+ width: 100%;
213
+ }
214
+ }
215
+ #{$content-selector} { display: none; }
216
+ &:first-child #{$title-selector} { border-bottom: none; }
217
+
218
+ &.active {
219
+ & > #{$content-selector} {
220
+ display: block;
221
+ position: absolute;
222
+ #{$default-float}: 100%;
223
+ top: 0px;
224
+ z-index: 999;
225
+ min-width: $section-vertical-nav-min-width;
226
+ border: $section-border-style $section-border-size $section-border-color;
227
+ }
228
+ }
229
+ }
230
+
231
+ // Styles for when Horizontal Nav
232
+ @else if $section-type == horizontal-nav {
233
+ padding-top: 0;
234
+ border: 0;
235
+ position: static;
236
+
237
+ > #{$title-selector} {
238
+ width: auto;
239
+ border: $section-border-style $section-border-size $section-border-color;
240
+ border-#{$default-float}: 0;
241
+ top: -1px;
242
+ position: absolute;
243
+ z-index: 1;
244
+
245
+ a { width: 100%; }
246
+ }
247
+
248
+ #{$content-selector} { display: none; }
249
+
250
+ &.active {
251
+ & > #{$content-selector} {
252
+ display: block;
253
+ position: absolute;
254
+ z-index: 999;
255
+ #{$default-float}: 0;
256
+ top: -2px;
257
+ min-width: $section-vertical-nav-min-width;
258
+ border: $section-border-style $section-border-size $section-border-color;
259
+ }
260
+ }
261
+ }
262
+
263
+ }
264
+
265
+
266
+
267
+ @if $include-html-section-classes != false {
268
+
269
+ /* Sections */
270
+ .section-container, .section-container.auto {
271
+ @include section-container(accordion);
272
+
273
+ &>section,
274
+ &>.section { @include section(accordion); }
275
+ }
276
+
277
+ .section-container.tabs {
278
+ @include section-container(false, tabs);
279
+
280
+ &>section,
281
+ &>.section { @include section(tabs, $title-bg-active:#fff); }
282
+ }
283
+
284
+ @media #{$small} {
285
+
286
+ .section-container.auto {
287
+ @include section-container(false, tabs);
288
+
289
+ &>section,
290
+ &>.section { @include section(tabs, $title-bg-active:#fff); }
291
+ }
292
+ .section-container.accordion .section {
293
+ padding-top: 0 !important;
294
+ }
295
+
296
+ .section-container.vertical-tabs {
297
+ @include section-container(false, vertical-tabs);
298
+
299
+ section,
300
+ .section { @include section(vertical-tabs); }
301
+ }
302
+
303
+ .section-container.vertical-nav {
304
+ @include section-container(false, vertical-nav);
305
+
306
+ &>section,
307
+ &>.section { @include section(vertical-nav); }
308
+ }
309
+
310
+ .section-container.horizontal-nav {
311
+ @include section-container(false, horizontal-nav);
312
+
313
+ &>section,
314
+ &>.section { @include section(horizontal-nav); }
315
+ }
316
+ }
317
+
318
+ }
@@ -0,0 +1,69 @@
1
+ //
2
+ // Side Nav Variables
3
+ //
4
+ $include-html-nav-classes: $include-html-classes !default;
5
+
6
+ // We use this to control padding.
7
+ $side-nav-padding: emCalc(14px) 0 !default;
8
+
9
+ // We use these to control list styles.
10
+ $side-nav-list-type: none !default;
11
+ $side-nav-list-position: inside !default;
12
+ $side-nav-list-margin: 0 0 emCalc(7px) 0 !default;
13
+
14
+ // We use these to control link styles.
15
+ $side-nav-link-color: $primary-color !default;
16
+ $side-nav-link-color-active: lighten(#000, 30%) !default;
17
+ $side-nav-font-size: emCalc(14px) !default;
18
+ $side-nav-font-weight: bold !default;
19
+
20
+ // We use these to control border styles
21
+ $side-nav-divider-size: 1px !default;
22
+ $side-nav-divider-style: solid !default;
23
+ $side-nav-divider-color: darken(#fff, 10%) !default;
24
+
25
+
26
+ //
27
+ // Side Nav Mixins
28
+ //
29
+
30
+
31
+ // We use this to style the side-nav
32
+ @mixin side-nav($divider-color:$side-nav-divider-color, $font-size:$side-nav-font-size, $link-color:$side-nav-link-color) {
33
+ display: block;
34
+ margin: 0;
35
+ padding: $side-nav-padding;
36
+ list-style-type: $side-nav-list-type;
37
+ list-style-position: $side-nav-list-position;
38
+
39
+ li {
40
+ margin: $side-nav-list-margin;
41
+ font-size: $font-size;
42
+
43
+ a {
44
+ display: block;
45
+ color: $link-color;
46
+ }
47
+
48
+ &.active > a:first-child {
49
+ color: $side-nav-link-color-active;
50
+ font-weight: $side-nav-font-weight;
51
+ }
52
+
53
+ &.divider {
54
+ border-top: $side-nav-divider-size $side-nav-divider-style;
55
+ height: 0;
56
+ padding: 0;
57
+ list-style: none;
58
+ border-top-color: $divider-color;
59
+ }
60
+ }
61
+ }
62
+
63
+
64
+ @if $include-html-nav-classes != false {
65
+
66
+ /* Side Nav */
67
+ .side-nav { @include side-nav; }
68
+
69
+ }
@@ -0,0 +1,167 @@
1
+ //
2
+ // Split Button Variables
3
+ //
4
+ $include-html-button-classes: $include-html-classes !default;
5
+
6
+ // We use these to control different shared styles for Split Buttons
7
+ $split-button-function-factor: 15% !default;
8
+ $split-button-pip-color: #fff !default;
9
+ $split-button-pip-color-alt: #333 !default;
10
+ $split-button-active-bg-tint: rgba(0,0,0,0.1) !default;
11
+
12
+ // We use these to control tiny split buttons
13
+ $split-button-padding-tny: $button-tny * 9 !default;
14
+ $split-button-span-width-tny: $button-tny * 6.5 !default;
15
+ $split-button-pip-size-tny: $button-tny !default;
16
+ $split-button-pip-top-tny: $button-tny * 2 !default;
17
+ $split-button-pip-default-float-tny: emCalc(-5px) !default;
18
+
19
+ // We use these to control small split buttons
20
+ $split-button-padding-sml: $button-sml * 7 !default;
21
+ $split-button-span-width-sml: $button-sml * 5 !default;
22
+ $split-button-pip-size-sml: $button-sml !default;
23
+ $split-button-pip-top-sml: $button-sml * 1.5 !default;
24
+ $split-button-pip-default-float-sml: emCalc(-9px) !default;
25
+
26
+ // We use these to control medium split buttons
27
+ $split-button-padding-med: $button-med * 6.4 !default;
28
+ $split-button-span-width-med: $button-med * 4 !default;
29
+ $split-button-pip-size-med: $button-med - emCalc(3px) !default;
30
+ $split-button-pip-top-med: $button-med * 1.5 !default;
31
+ $split-button-pip-default-float-med: emCalc(-9px) !default;
32
+
33
+ // We use these to control large split buttons
34
+ $split-button-padding-lrg: $button-lrg * 6 !default;
35
+ $split-button-span-width-lrg: $button-lrg * 3.75 !default;
36
+ $split-button-pip-size-lrg: $button-lrg - emCalc(6px) !default;
37
+ $split-button-pip-top-lrg: $button-lrg + emCalc(5px) !default;
38
+ $split-button-pip-default-float-lrg: emCalc(-9px) !default;
39
+
40
+
41
+ //
42
+ // Split Button Mixin
43
+ //
44
+
45
+ // We use this mixin to create split buttons that build upon the button mixins
46
+ @mixin split-button($padding:medium, $pip-color:$split-button-pip-color, $span-border:$primary-color, $base-style:true) {
47
+
48
+ // With this, we can control whether or not the base styles come through.
49
+ @if $base-style {
50
+ position: relative;
51
+
52
+ // Styling for the split arrow clickable area
53
+ span {
54
+ display: block;
55
+ height: 100%;
56
+ position: absolute;
57
+ #{$opposite-direction}: 0;
58
+ top: 0;
59
+ border-#{$default-float}: solid 1px;
60
+
61
+ // Building the triangle pip indicator
62
+ &:before {
63
+ position: absolute;
64
+ content: "";
65
+ width: 0;
66
+ height: 0;
67
+ display: block;
68
+ border-style: inset;
69
+
70
+ #{$default-float}: 50%;
71
+ }
72
+
73
+ &:active { background-color: $split-button-active-bg-tint; }
74
+ }
75
+ }
76
+
77
+ // Control the border color for the span area of the split button
78
+ @if $span-border {
79
+ span {
80
+ border-#{$default-float}-color: darken($span-border, $split-button-function-factor);
81
+ }
82
+ }
83
+
84
+ // Style of the button and clickable area for tiny sizes
85
+ @if $padding == tiny {
86
+ padding-#{$opposite-direction}: $split-button-padding-tny;
87
+
88
+ span { width: $split-button-span-width-tny;
89
+ &:before {
90
+ border-top-style: solid;
91
+ border-width: $split-button-pip-size-tny;
92
+ top: $split-button-pip-top-tny;
93
+ margin-#{$default-float}: $split-button-pip-default-float-tny;
94
+ }
95
+ }
96
+ }
97
+
98
+ // Style of the button and clickable area for small sizes
99
+ @else if $padding == small {
100
+ padding-#{$opposite-direction}: $split-button-padding-sml;
101
+
102
+ span { width: $split-button-span-width-sml;
103
+ &:before {
104
+ border-top-style: solid;
105
+ border-width: $split-button-pip-size-sml;
106
+ top: $split-button-pip-top-sml;
107
+ margin-#{$default-float}: $split-button-pip-default-float-sml;
108
+ }
109
+ }
110
+ }
111
+
112
+ // Style of the button and clickable area for default (medium) sizes
113
+ @else if $padding == medium {
114
+ padding-#{$opposite-direction}: $split-button-padding-med;
115
+
116
+ span { width: $split-button-span-width-med;
117
+ &:before {
118
+ border-top-style: solid;
119
+ border-width: $split-button-pip-size-med;
120
+ top: $split-button-pip-top-med;
121
+ margin-#{$default-float}: $split-button-pip-default-float-med;
122
+ }
123
+ }
124
+ }
125
+
126
+ // Style of the button and clickable area for large sizes
127
+ @else if $padding == large {
128
+ padding-#{$opposite-direction}: $split-button-padding-lrg;
129
+
130
+ span { width: $split-button-span-width-lrg;
131
+ &:before {
132
+ border-top-style: solid;
133
+ border-width: $split-button-pip-size-lrg;
134
+ top: $split-button-pip-top-lrg;
135
+ margin-#{$default-float}: $split-button-pip-default-float-lrg;
136
+ }
137
+ }
138
+ }
139
+
140
+ // Control the color of the triangle pip
141
+ @if $pip-color {
142
+ span:before { border-color: $pip-color transparent transparent transparent; }
143
+ }
144
+ }
145
+
146
+
147
+ @if $include-html-button-classes != false {
148
+
149
+ /* Split Buttons */
150
+ .split.button { @include split-button;
151
+
152
+ &.secondary { @include split-button(false, $split-button-pip-color, $secondary-color, false); }
153
+ &.alert { @include split-button(false, false, $alert-color, false); }
154
+ &.success { @include split-button(false, false, $success-color, false); }
155
+
156
+ &.tiny { @include split-button(tiny, false, false, false); }
157
+ &.small { @include split-button(small, false, false, false); }
158
+ &.large { @include split-button(large, false, false, false); }
159
+ &.expand { padding-left: 2em; }
160
+
161
+ &.secondary { @include split-button(false, $split-button-pip-color-alt, false, false); }
162
+
163
+ &.radius span { @include side-radius($opposite-direction, $global-radius); }
164
+ &.round span { @include side-radius($opposite-direction, 1000px); }
165
+ }
166
+
167
+ }