pusher-chameleon 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +7 -0
  2. data/.ruby-version +1 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +23 -0
  5. data/README.md +17 -0
  6. data/docs/.gitignore +4 -0
  7. data/docs/Gemfile +10 -0
  8. data/docs/Gemfile.lock +72 -0
  9. data/docs/README.md +15 -0
  10. data/docs/Rakefile +40 -0
  11. data/docs/_config.production.yml +18 -0
  12. data/docs/_config.yml +39 -0
  13. data/docs/_includes/footer.html +38 -0
  14. data/docs/_includes/head.html +15 -0
  15. data/docs/_includes/header.html +27 -0
  16. data/docs/_includes/icon-github.html +1 -0
  17. data/docs/_includes/icon-github.svg +3 -0
  18. data/docs/_includes/logo-pusher.svg +4 -0
  19. data/docs/_includes/sidebar.html +33 -0
  20. data/docs/_layouts/default.html +53 -0
  21. data/docs/_layouts/page.html +14 -0
  22. data/docs/_layouts/post.html +15 -0
  23. data/docs/_plugins/chameleon_version.rb +11 -0
  24. data/docs/_plugins/copy_images_directory.rb +22 -0
  25. data/docs/_plugins/ext.rb +2 -0
  26. data/docs/_posts/2016-03-16-getting-started.md +28 -0
  27. data/docs/_posts/2016-03-16-introduction.md +24 -0
  28. data/docs/_posts/2016-03-17-buttons.md +61 -0
  29. data/docs/_posts/2016-03-17-colors.md +139 -0
  30. data/docs/_posts/2016-03-17-flex.md +24 -0
  31. data/docs/_posts/2016-03-17-forms.md +66 -0
  32. data/docs/_posts/2016-03-17-visibility.md +28 -0
  33. data/docs/_posts/2016-04-04-typography.md +111 -0
  34. data/docs/_posts/2016-04-05-syntax-highlighting.md +28 -0
  35. data/docs/_posts/2016-05-08-alerts.md +50 -0
  36. data/docs/_posts/2016-05-12-labels.md +22 -0
  37. data/docs/_posts/2016-05-13-tooltips.md +33 -0
  38. data/docs/_sass/_base.scss +36 -0
  39. data/docs/_sass/_chameleon_imports.scss +20 -0
  40. data/docs/_sass/_layout.scss +136 -0
  41. data/docs/_sass/_typography.scss +41 -0
  42. data/docs/_sass/layout/_aside.scss +151 -0
  43. data/docs/about.md +15 -0
  44. data/docs/autoprefixer.yml +4 -0
  45. data/docs/css/main.scss +11 -0
  46. data/docs/feed.xml +30 -0
  47. data/docs/index.html +23 -0
  48. data/images/ui_icons/alert_beta.svg +3 -0
  49. data/images/ui_icons/alert_info.svg +3 -0
  50. data/images/ui_icons/alert_tick.svg +6 -0
  51. data/images/ui_icons/alert_warning.svg +6 -0
  52. data/images/ui_icons/chevron_down.svg +3 -0
  53. data/images/ui_icons/github--active.svg +6 -0
  54. data/images/ui_icons/github.svg +6 -0
  55. data/images/ui_icons/google--active.svg +6 -0
  56. data/images/ui_icons/google.svg +10 -0
  57. data/images/ui_icons/plus.svg +3 -0
  58. data/javascripts/chameleon/code_box.js +14 -0
  59. data/javascripts/chameleon/pusher_featurette.js +52 -0
  60. data/javascripts/chameleon/pusher_text_cycler.js +60 -0
  61. data/lib/pusher-chameleon.rb +71 -0
  62. data/lib/pusher-chameleon/engine.rb +13 -0
  63. data/lib/pusher-chameleon/version.rb +8 -0
  64. data/package.json +24 -0
  65. data/pusher-chameleon.gemspec +21 -0
  66. data/stylesheets/.gitkeep +0 -0
  67. data/stylesheets/_base.scss +400 -0
  68. data/stylesheets/_global.scss +96 -0
  69. data/stylesheets/chameleon.scss +30 -0
  70. data/stylesheets/components/_alert.scss +102 -0
  71. data/stylesheets/components/_code_box.scss +84 -0
  72. data/stylesheets/components/_flex_aligners.scss +38 -0
  73. data/stylesheets/components/_label.scss +41 -0
  74. data/stylesheets/components/_signpost.scss +150 -0
  75. data/stylesheets/components/_spacers.scss +11 -0
  76. data/stylesheets/components/_statistic.scss +62 -0
  77. data/stylesheets/components/_tooltip.scss +65 -0
  78. data/stylesheets/components/_visibility.scss +117 -0
  79. data/stylesheets/forms/_base.scss +47 -0
  80. data/stylesheets/forms/_buttons.scss +242 -0
  81. data/stylesheets/forms/_checkbox.scss +31 -0
  82. data/stylesheets/forms/_field.scss +11 -0
  83. data/stylesheets/forms/_fieldset.scss +18 -0
  84. data/stylesheets/forms/_forms.scss +21 -0
  85. data/stylesheets/forms/_input.scss +14 -0
  86. data/stylesheets/forms/_range.scss +110 -0
  87. data/stylesheets/forms/_select.scss +15 -0
  88. data/stylesheets/forms/_textarea.scss +11 -0
  89. data/stylesheets/grid/_classes.scss +152 -0
  90. data/stylesheets/grid/_column.scss +126 -0
  91. data/stylesheets/grid/_flex-grid.scss +268 -0
  92. data/stylesheets/grid/_grid.scss +60 -0
  93. data/stylesheets/grid/_gutter.scss +34 -0
  94. data/stylesheets/grid/_layout.scss +51 -0
  95. data/stylesheets/grid/_position.scss +73 -0
  96. data/stylesheets/grid/_row.scss +95 -0
  97. data/stylesheets/grid/_size.scss +24 -0
  98. data/stylesheets/typography/_base.scss +60 -0
  99. data/stylesheets/typography/_helpers.scss +66 -0
  100. data/stylesheets/typography/_import.scss +54 -0
  101. data/stylesheets/typography/_syntax_highlighting.scss +168 -0
  102. data/stylesheets/typography/_syntax_highlighting_dark.scss +73 -0
  103. data/stylesheets/typography/_syntax_highlighting_light.scss +73 -0
  104. data/stylesheets/typography/_titles.scss +69 -0
  105. data/stylesheets/typography/_typography.scss +12 -0
  106. data/stylesheets/util/_breakpoint.scss +273 -0
  107. data/stylesheets/util/_color.scss +42 -0
  108. data/stylesheets/util/_flex.scss +68 -0
  109. data/stylesheets/util/_mixins.scss +233 -0
  110. data/stylesheets/util/_selector.scss +40 -0
  111. data/stylesheets/util/_unit.scss +90 -0
  112. data/stylesheets/util/_url_helper.scss +30 -0
  113. data/stylesheets/util/_util.scss +13 -0
  114. data/stylesheets/util/_value.scss +107 -0
  115. metadata +199 -0
@@ -0,0 +1,11 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Utility Spacers
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ @mixin CHAMELEON-spacers {
6
+ @for $i from 1 through 10 {
7
+ .u-mt-#{$i} {
8
+ margin-top: 5px * $i;
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,62 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Stat Box
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ @mixin CHAMELEON-statistic {
6
+ .c-statistic {
7
+ position: relative;
8
+ width: 100%;
9
+ padding: 20px 0;
10
+
11
+ @media #{$medium-up} {
12
+ padding: 0;
13
+ }
14
+
15
+ &__subtitle {
16
+ @extend %font-family-secondary;
17
+ }
18
+
19
+ &__stat,
20
+ &__copy {
21
+ @extend %font-family-primary;
22
+ }
23
+
24
+
25
+ &__subtitle,
26
+ &__copy {
27
+ font-size: rem-calc(12px);
28
+ color: #fff;
29
+ display: block;
30
+
31
+ @media #{$medium-up} {
32
+ font-size: rem-calc(14px);
33
+ }
34
+ }
35
+
36
+ &__stat,
37
+ &__copy {
38
+ display: inline-block;
39
+ }
40
+
41
+ &__subtitle {
42
+ display: block;
43
+ }
44
+
45
+ &__stat {
46
+ color: $color-primary !important;
47
+ font-size: rem-calc(44px);
48
+ font-weight: 400;
49
+ letter-spacing: -3px;
50
+
51
+ @media #{$medium-up} {
52
+ font-size: rem-calc(64px);
53
+ }
54
+ }
55
+
56
+ &__copy {
57
+ font-weight: 600;
58
+ line-height: 1.1em;
59
+ padding-left: 10px;
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,65 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Tooltips
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ @mixin CHAMELEON-tooltips {
6
+ .tooltip {
7
+ position: relative;
8
+
9
+ &:before,
10
+ &:after {
11
+ z-index: 600;
12
+ }
13
+
14
+ &:before {
15
+ background-color: $color-black;
16
+ border-radius: 3px;
17
+ color: #fff;
18
+ content: attr(data-tooltip-title);
19
+ display: none;
20
+ font-size: 11px;
21
+ font-weight: 500;
22
+ left: 50%;
23
+ line-height: 1.4;
24
+ margin-top: 5px;
25
+ padding: 7px 9px;
26
+ position: absolute;
27
+ top: 100%;
28
+ max-width: 400px;
29
+ transform-origin: 50% 50%;
30
+ transform: translateX(-50%);
31
+ text-align: left;
32
+ min-width: 120px;
33
+ }
34
+
35
+ &:after {
36
+ border: 5px solid transparent;
37
+ border-bottom-color: $color-black;
38
+ content: "";
39
+ display: none;
40
+ left: 50%;
41
+ margin-left: -5px;
42
+ margin-top: -5px;
43
+ position: absolute;
44
+ top: 100%;
45
+ }
46
+
47
+ &:hover {
48
+ &:after,
49
+ &:before {
50
+ display: block;
51
+ }
52
+ }
53
+
54
+ &--light {
55
+ &:before {
56
+ background-color: #fff;
57
+ color: $color-black;
58
+ }
59
+
60
+ &:after {
61
+ border-bottom-color: #fff;
62
+ }
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,117 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ /// Hide an element by default, only displaying it above a certain screen size.
6
+ /// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**
7
+ @mixin show-for($size) {
8
+ $size: map-get($breakpoints, $size);
9
+ $size: -zf-bp-to-em($size) - (1 / 16);
10
+
11
+ @include breakpoint($size down) {
12
+ display: none !important;
13
+ }
14
+ }
15
+
16
+ /// Hide an element by default, only displaying it within a certain breakpoint.
17
+ /// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**
18
+ @mixin show-for-only($size) {
19
+ $lower-bound-size: map-get($breakpoints, $size);
20
+ $upper-bound-size: -zf-map-next($breakpoints, $size);
21
+
22
+ // more often than not this will be correct, just one time round the loop it won't so set in scope here
23
+ $lower-bound: -zf-bp-to-em($lower-bound-size) - (1 / 16);
24
+ // test actual lower-bound-size, if 0 set it to 0em
25
+ @if strip-unit($lower-bound-size) == 0 {
26
+ $lower-bound: -zf-bp-to-em($lower-bound-size);
27
+ }
28
+
29
+ @if $upper-bound-size == null {
30
+ @media screen and (max-width: $lower-bound) {
31
+ display: none !important;
32
+ }
33
+ }
34
+ @else {
35
+ $upper-bound: -zf-bp-to-em($upper-bound-size);
36
+
37
+ @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {
38
+ display: none !important;
39
+ }
40
+ }
41
+ }
42
+
43
+
44
+ /// Show an element by default, and hide it above a certain screen size.
45
+ /// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**
46
+ @mixin hide-for($size) {
47
+ @include breakpoint($size) {
48
+ display: none !important;
49
+ }
50
+ }
51
+
52
+ /// Show an element by default, and hide it above a certain screen size.
53
+ /// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**
54
+ @mixin hide-for-only($size) {
55
+ @include breakpoint($size only) {
56
+ display: none !important;
57
+ }
58
+ }
59
+
60
+ @mixin CHAMELEON-visibility-classes {
61
+ // Basic hiding classes
62
+ .hide {
63
+ display: none !important;
64
+ }
65
+
66
+ .invisible {
67
+ visibility: hidden;
68
+ }
69
+
70
+ // Responsive visibility classes
71
+ @each $size in $breakpoint-classes {
72
+ @if $size != small {
73
+ .hide-for-#{$size} {
74
+ @include hide-for($size);
75
+ }
76
+
77
+ .show-for-#{$size} {
78
+ @include show-for($size);
79
+ }
80
+ }
81
+
82
+ .hide-for-#{$size}-only {
83
+ @include hide-for-only($size);
84
+ }
85
+
86
+ .show-for-#{$size}-only {
87
+ @include show-for-only($size);
88
+ }
89
+ }
90
+
91
+ // Landscape and portrait visibility
92
+ .show-for-landscape,
93
+ .hide-for-portrait {
94
+ display: block !important;
95
+
96
+ @include breakpoint(landscape) {
97
+ display: block !important;
98
+ }
99
+
100
+ @include breakpoint(portrait) {
101
+ display: none !important;
102
+ }
103
+ }
104
+
105
+ .hide-for-landscape,
106
+ .show-for-portrait {
107
+ display: none !important;
108
+
109
+ @include breakpoint(landscape) {
110
+ display: none !important;
111
+ }
112
+
113
+ @include breakpoint(portrait) {
114
+ display: block !important;
115
+ }
116
+ }
117
+ }
@@ -0,0 +1,47 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Base Input Styles
3
+ // ================
4
+ // These are the very basic input styles.
5
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
6
+
7
+ @mixin base-input() {
8
+ @extend %font-family-secondary;
9
+ background: transparent;
10
+ border-radius: $border-radius;
11
+ border: 1px solid $color-smoke;
12
+ color: $color-black;
13
+ font-size: rem-calc(15px);
14
+ font-weight: 400;
15
+ height: 40px;
16
+ line-height: 2em;
17
+ padding: 4px 20px;
18
+ transition: border 200ms ease-in-out;
19
+ width: 100%;
20
+ text-transform: none;
21
+ appearance: none !important;
22
+ -webkit-appearance: none !important;
23
+
24
+ &:focus {
25
+ border: 1px solid $color-primary;
26
+ outline: 0;
27
+ }
28
+
29
+ &.error {
30
+ border-color: $color-danger;
31
+ border-width: 1px;
32
+ }
33
+
34
+ &.valid {
35
+ border-color: $color-success;
36
+ border-width: 1px;
37
+ }
38
+
39
+ &.input--light {
40
+ border: 1px solid rgba(#ddd, .2);
41
+ color: #fff;
42
+
43
+ &:focus {
44
+ border: 1px solid $color-primary;
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,242 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Buttons
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ @mixin CHAMELEON-forms-buttons {
6
+ .#{$button-namespace} {
7
+ @extend %font-family-primary;
8
+
9
+ box-shadow: none;
10
+ color: #fff;
11
+ border: 0;
12
+ border-radius: 0;
13
+ cursor: pointer;
14
+ height: 40px;
15
+ display: inline-block;
16
+ font-size: rem-calc(15px);
17
+ font-weight: 600;
18
+ line-height: 1em;
19
+ margin: 0;
20
+ padding: 12px 35px;
21
+ position: relative;
22
+ text-align: center;
23
+ text-decoration: none;
24
+ text-shadow: 0 1px 0 rgba(0, 0, 0, .1);
25
+ transition: all .2s ease-in-out;
26
+ user-select: none;
27
+ appearance: none;
28
+
29
+ &:hover {
30
+ text-decoration: none;
31
+ }
32
+
33
+ &:focus {
34
+ outline: 0;
35
+ }
36
+
37
+ &--small {
38
+ padding: 7px 20px;
39
+ font-size: rem-calc(12px);
40
+ height: 30px;
41
+ line-height: 1.2em;
42
+ }
43
+
44
+ &--primary {
45
+ background-color: $color-primary;
46
+ border: 1px solid $color-primary;
47
+ color: #fff;
48
+
49
+ &:hover {
50
+ background-color: lighten($color-primary, 5%);
51
+ color: #fff;
52
+ }
53
+
54
+ &:active {
55
+ background-color: darken($color-primary, 5%);
56
+ color: #fff;
57
+ }
58
+
59
+ &.ghosted {
60
+ border: 1px solid $color-primary;
61
+ color: $color-primary;
62
+ background-color: transparent;
63
+ text-shadow: none;
64
+
65
+ &:hover {
66
+ background-color: $color-primary;
67
+ color: #fff;
68
+ }
69
+
70
+ &:active {
71
+ background-color: darken($color-primary, 5%);
72
+ }
73
+ }
74
+ }
75
+
76
+ &--secondary {
77
+ background-color: $color-white;
78
+ border: 1px solid $color-white;
79
+ color: $color-primary;
80
+ text-shadow: none;
81
+
82
+ &:hover {
83
+ background-color: lighten($color-white, 5%);
84
+ color: $color-primary;
85
+ }
86
+
87
+ &:active {
88
+ background-color: darken($color-white, 5%);
89
+ color: $color-primary;
90
+ }
91
+
92
+ &.ghosted {
93
+ background-color: transparent;
94
+ border: 1px solid $color-white;
95
+ color: $color-white;
96
+
97
+ &:hover {
98
+ background-color: $color-white;
99
+ color: $color-primary;
100
+ }
101
+
102
+ &:active {
103
+ background-color: darken($color-white, 5%);
104
+ }
105
+ }
106
+ }
107
+
108
+ &--tertiary {
109
+ font-weight: 400;
110
+ color: $color-primary;
111
+ padding-right: 10px;
112
+ padding-left: 0;
113
+
114
+ @media #{$medium-up} {
115
+ font-size: rem-calc(15px);
116
+ }
117
+
118
+ &:after {
119
+ content: '»';
120
+ color: inherit;
121
+ right: -5px;
122
+ transform: translateX(0) scale(.8);
123
+ transition: transform 300ms cubic-bezier(0.155, 1.105, 0.295, 1.12);
124
+ position: absolute;
125
+ }
126
+
127
+ &:hover:after {
128
+ transform: translateX(5px) scale(1);
129
+ }
130
+ }
131
+
132
+ &--neutral {
133
+ background: $color-slate;
134
+ border: 1px solid darken($color-slate , 3%);
135
+ color: #fff;
136
+ text-shadow: none;
137
+
138
+ &:hover {
139
+ background: lighten($color-slate, 5%);
140
+ }
141
+
142
+ &:active {
143
+ background: darken($color-slate, 5%);
144
+ }
145
+ }
146
+
147
+ &--disabled {
148
+ cursor: not-allowed;
149
+ opacity: .7;
150
+ background: #d4d4d4;
151
+ border: 1px solid darken(#d4d4d4, 10%);
152
+ color: #444444;
153
+ text-shadow: none;
154
+
155
+ &:hover,
156
+ &:active {
157
+ background: #d4d4d4;
158
+ color: #444444;
159
+ border: 1px solid darken(#d4d4d4, 10%);
160
+ }
161
+ }
162
+ }
163
+
164
+ .#{$button-namespace}--google,
165
+ .#{$button-namespace}--github {
166
+ background: #fff;
167
+ color: $color-silver;
168
+ border: 1px solid $color-smoke;
169
+ padding-left: 40px;
170
+ padding-right: 15px;
171
+ text-shadow: none;
172
+
173
+ &:before {
174
+ background-repeat: no-repeat;
175
+ background-position: center center;
176
+ position: absolute;
177
+ display: inline-block;
178
+ content: "";
179
+ width: 34px;
180
+ height: 34px;
181
+ top: 2px;
182
+ left: 2px;
183
+ }
184
+
185
+ &--active,
186
+ &:hover {
187
+ background-color: $color-primary;
188
+ border-color: darken($color-primary, 5%);
189
+ color: #fff;
190
+ }
191
+ }
192
+
193
+ .#{$button-namespace}--google {
194
+
195
+ &:before {
196
+ background-image: file-url('ui_icons/google.svg');
197
+ }
198
+
199
+ &--active:before,
200
+ &:hover:before {
201
+ background-image: file-url('ui_icons/google--active.svg');
202
+ }
203
+ }
204
+
205
+ .#{$button-namespace}--github {
206
+
207
+ &:before {
208
+ background-image: file-url('ui_icons/github.svg');
209
+ }
210
+
211
+ &--active:before,
212
+ &:hover:before {
213
+ background-image: file-url('ui_icons/github--active.svg');
214
+ }
215
+ }
216
+
217
+ .btn-group {
218
+ .#{$button-namespace} {
219
+ display: table;
220
+
221
+ @media #{$medium-up} {
222
+ display: inline-block;
223
+ }
224
+
225
+ + .#{$button-namespace} {
226
+ margin-top: 5px;
227
+
228
+ @media #{$medium-up} {
229
+ margin-top: 0;
230
+ }
231
+ }
232
+ }
233
+
234
+ .#{$button-namespace} + .#{$button-namespace} {
235
+ margin-left: 0;
236
+
237
+ @media #{$medium-up} {
238
+ margin-left: 10px;
239
+ }
240
+ }
241
+ }
242
+ }