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,96 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Global Variables & Styles
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ // Layout & Grid
6
+ $global-width: 1200px !default;
7
+ $global-left: left;
8
+ $global-right: right;
9
+
10
+ $breakpoints: (
11
+ small: 0,
12
+ medium: 640px,
13
+ large: 1024px,
14
+ xlarge: 1200px,
15
+ xxlarge: 1440px,
16
+ ) !default;
17
+
18
+ $breakpoint-classes: (small medium large) !default;
19
+
20
+ $grid-row-width: $global-width;
21
+ $grid-column-count: 12 !default;
22
+ $grid-column-gutter: (
23
+ small: 20px,
24
+ medium: 30px,
25
+ ) !default;
26
+
27
+ $grid-column-align-edge: true;
28
+ $block-grid-max: 8;
29
+
30
+ // Base Colour Palette
31
+ $color-palette: (
32
+ primary: #549eff,
33
+ secondary: #977fda,
34
+ developer: #58d794,
35
+ success: #2bc78a,
36
+ warning: #ffae00,
37
+ danger: #b74a48,
38
+ information: #34495e,
39
+ alert: #b74a48,
40
+ beta: #a57cec
41
+ ) !default;
42
+
43
+ $color-primary: map-get($color-palette, primary);
44
+ $color-secondary: map-get($color-palette, secondary);
45
+ $color-developer: map-get($color-palette, developer);
46
+ $color-success: map-get($color-palette, success);
47
+ $color-warning: map-get($color-palette, warning);
48
+ $color-danger: map-get($color-palette, danger);
49
+ $color-information: map-get($color-palette, information);
50
+ $color-beta: map-get($color-palette, beta);
51
+
52
+ // Neutrals Colour Palette
53
+ $color-neutrals: (
54
+ white: #ffffff,
55
+ black: #2b303b,
56
+ slate: #414859,
57
+ silver: #8690a6,
58
+ smoke: #d3dce7,
59
+ snow: #f4f8fb
60
+ ) !default;
61
+
62
+ $color-white: map-get($color-neutrals, white);
63
+ $color-black: map-get($color-neutrals, black);
64
+ $color-slate: map-get($color-neutrals, slate);
65
+ $color-silver: map-get($color-neutrals, silver);
66
+ $color-smoke: map-get($color-neutrals, smoke);
67
+ $color-snow: map-get($color-neutrals, snow);
68
+ // Legacy
69
+ $color-off-white: $color-snow;
70
+ $color-grey-one: $color-silver;
71
+
72
+
73
+ // Typography
74
+ $global-font-size: 100% !default;
75
+ $global-font-smoothing: false !default;
76
+
77
+ $font-family-primary: 'pusher-realtime-text', Helmet, Freesans, sans-serif !default;
78
+ $font-family-secondary: 'proxima-nova', Helmet, Freesans, sans-serif !default;
79
+ $font-family-monospace: Menlo, Consolas, Monaco, 'Andale Mono', monospace !default;
80
+
81
+ $syntax-highlighting-style: 'light' !default;
82
+
83
+
84
+ %font-family-primary {
85
+ font-family: $font-family-primary;
86
+ }
87
+
88
+ %font-family-secondary {
89
+ font-family: $font-family-secondary;
90
+ }
91
+
92
+ $cdn-font-url: "https://d3ulslzrwa6w0a.cloudfront.net";
93
+
94
+ // Misc
95
+ $border-radius: 0px !default;
96
+ $button-namespace: 'btn' !default;
@@ -0,0 +1,30 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ //
3
+ // PUSHER CHAMELEON
4
+ // =-=-=-=-=-=-=-=-=
5
+ // The base layer of front-end Pusher assets
6
+ // Based on Foundation for Sites by ZURB
7
+ //
8
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
9
+
10
+ // Utilities
11
+ @import 'util/util';
12
+
13
+ // Globals
14
+ @import 'global';
15
+
16
+ // Base
17
+ @import 'base';
18
+ @import 'typography/typography';
19
+ @import 'grid/grid';
20
+ @import 'forms/forms';
21
+
22
+ @import 'components/code_box';
23
+ @import 'components/signpost';
24
+ @import 'components/statistic';
25
+ @import 'components/flex_aligners';
26
+ @import 'components/visibility';
27
+ @import 'components/spacers';
28
+ @import 'components/alert';
29
+ @import 'components/tooltip';
30
+ @import 'components/label';
@@ -0,0 +1,102 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Alerts
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ @mixin CHAMELEON-alert {
6
+ .alert {
7
+ background-color: #fff;
8
+ border-radius: $border-radius;
9
+ border-style: solid;
10
+ border-width: 1px;
11
+ display: block;
12
+ margin: rem-calc(10px) 0;
13
+ max-width: 100%;
14
+ padding: 12px 30px 12px 60px;
15
+ text-align: left;
16
+ width: auto;
17
+ line-height: 1.4em;
18
+ position: relative;
19
+
20
+ &:before {
21
+ background-repeat: no-repeat;
22
+ content: "";
23
+ height: 18px;
24
+ left: 12px;
25
+ position: absolute;
26
+ top: 50%;
27
+ transform: translateY(-50%);
28
+ width: 18px;
29
+ }
30
+
31
+ &__title {
32
+ font-size: rem-calc(14px);
33
+ display: block;
34
+ color: inherit;
35
+ }
36
+
37
+ &__copy {
38
+ font-size: rem-calc(14px);
39
+ color: inherit;
40
+
41
+ ul {
42
+ margin-left: 16px;
43
+
44
+ li {
45
+ font-size: rem-calc(14px) !important;
46
+ }
47
+ }
48
+
49
+ }
50
+
51
+ &__icon,
52
+ &__icon svg {
53
+ display: inline;
54
+ vertical-align: bottom;
55
+ }
56
+
57
+ &__icon {
58
+ margin-right: 1em;
59
+ }
60
+
61
+ &--danger,
62
+ &--error {
63
+ border-color: lighten($color-danger, 40%);
64
+ color: $color-danger;
65
+ box-shadow: inset 40px 0 0 0 $color-danger;
66
+
67
+ &:before {
68
+ background-image: file-url('ui_icons/alert_warning.svg');
69
+ }
70
+ }
71
+
72
+ &--success {
73
+ color: darken($color-success, 5%);
74
+ border-color: lighten($color-success, 40%);
75
+ box-shadow: inset 40px 0 0 0 $color-success;
76
+
77
+ &:before {
78
+ background-image: file-url('ui_icons/alert_tick.svg');
79
+ }
80
+ }
81
+
82
+ &--beta {
83
+ color: darken($color-beta, 5%);
84
+ border-color: lighten($color-beta, 20%);
85
+ box-shadow: inset 40px 0 0 0 $color-beta;
86
+
87
+ &:before {
88
+ background-image: file-url('ui_icons/alert_beta.svg');
89
+ }
90
+ }
91
+
92
+ &--information {
93
+ border-color: $color-smoke;
94
+ color: $color-information;
95
+ box-shadow: inset 40px 0 0 0 $color-information;
96
+
97
+ &:before {
98
+ background-image: file-url('ui_icons/alert_info.svg');
99
+ }
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,84 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Code Box
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ @mixin CHAMELEON-code-box {
6
+ $_code-box-nav-bg: #3b4a59;
7
+
8
+ .c-code {
9
+ width: 100%;
10
+ position: relative;
11
+ margin-bottom: 20px;
12
+ overflow: hidden;
13
+
14
+ @media #{$medium-up} {
15
+ margin-bottom: 0;
16
+ }
17
+ }
18
+
19
+ .c-code__nav {
20
+ width: 100%;
21
+ height: 30px;
22
+ background-color: darken($_code-box-nav-bg, 5%);
23
+ overflow-x: auto;
24
+ overflow-y: hidden;
25
+
26
+ @media #{$medium-up} {
27
+ height: 30px;
28
+ }
29
+
30
+ &::-webkit-scrollbar {
31
+ display: none;
32
+ }
33
+ }
34
+
35
+ .c-code__nav__list {
36
+ display: flex;
37
+ list-style: none;
38
+ width: 100%;
39
+ margin: 0;
40
+ padding: 0;
41
+
42
+ li {
43
+ @extend %font-family-secondary;
44
+ color: #fff;
45
+ font-size: rem-calc(12px);
46
+ font-weight: 500;
47
+ text-align: center;
48
+ text-shadow: 0 0 1px rgba(0, 0, 0, .05);
49
+ width: auto;
50
+ float: left;
51
+ height: 30px;
52
+ padding: 8px 10px;
53
+ border-left: 1px solid lighten($_code-box-nav-bg, 5%);
54
+ cursor: pointer;
55
+
56
+ &:hover {
57
+ background-color: darken($_code-box-nav-bg, 5%);
58
+ }
59
+
60
+ &.current {
61
+ background-color: darken($_code-box-nav-bg, 10%);
62
+ border-top: 2px solid $color-developer;
63
+ }
64
+ }
65
+
66
+ &__title {
67
+ background-color: darken($_code-box-nav-bg, 5%);
68
+ cursor: normal;
69
+ }
70
+ }
71
+
72
+ .c-code__content {
73
+ background: $_code-box-nav-bg;
74
+
75
+ &__container {
76
+ display: none;
77
+ font-size: 15px;
78
+
79
+ &.current {
80
+ display: block;
81
+ }
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,38 @@
1
+ @mixin CHAMELEON-flex-aligners {
2
+ // // Horizontal alignment using justify-content
3
+ // @each $hdir, $prop in map-remove($-zf-flex-justify, left) {
4
+ // .align-#{$hdir} {
5
+ // @include flex-align($x: $hdir);
6
+ // }
7
+ // }
8
+
9
+ // // Vertical alignment using align-items and align-self
10
+ // @each $vdir, $prop in $-zf-flex-align {
11
+ // .align-#{$vdir} {
12
+ // @include flex-align($y: $vdir);
13
+ // }
14
+
15
+ // .align-self-#{$vdir} {
16
+ // @include flex-align-self($y: $vdir);
17
+ // }
18
+ // }
19
+
20
+ // // Source ordering
21
+ // @include -zf-each-breakpoint {
22
+ // @for $i from 1 through 6 {
23
+ // .#{$-zf-size} {
24
+ // @include flex-order($i);
25
+ // }
26
+ // }
27
+ // }
28
+
29
+ .u-vertical-align {
30
+ display: flex;
31
+ align-items: center;
32
+ }
33
+
34
+ .u-horizontal-align {
35
+ display: flex;
36
+ justify-content: center;
37
+ }
38
+ }
@@ -0,0 +1,41 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Labels
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ @mixin CHAMELEON-labels {
6
+ .label {
7
+ @extend %font-family-primary;
8
+ border-radius: 0;
9
+ color: #fff;
10
+ display: inline-block;
11
+ font-size: rem-calc(11px);
12
+ font-weight: 700;
13
+ height: 21px;
14
+ letter-spacing: 0;
15
+ line-height: 1.1em;
16
+ padding: 4px 14px;
17
+ text-align: center;
18
+ text-transform: uppercase;
19
+ width: auto;
20
+
21
+ &--success {
22
+ background-color: $color-success;
23
+ }
24
+
25
+ &--warning {
26
+ background-color: $color-warning;
27
+ }
28
+
29
+ &--danger {
30
+ background-color: $color-danger;
31
+ }
32
+
33
+ &--information {
34
+ background-color: $color-information;
35
+ }
36
+
37
+ &--beta {
38
+ background-color: $color-beta;
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,150 @@
1
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
2
+ // Signpost
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4
+
5
+ @mixin CHAMELEON-signpost {
6
+ .signpost {
7
+ position: relative;
8
+ width: 100%;
9
+ }
10
+
11
+ .signpost__left,
12
+ .signpost__right {
13
+ position: relative;
14
+ display: flex;
15
+ align-items: center;
16
+ padding: 40px 20px;
17
+
18
+ > div {
19
+ flex: 1;
20
+ width: 0;
21
+ }
22
+
23
+ @media #{$large-up} {
24
+ height: 400px;
25
+ }
26
+
27
+ }
28
+
29
+ .signpost--no-flex {
30
+ .c-signpost__left,
31
+ .c-signpost__right {
32
+ display: block;
33
+ }
34
+ }
35
+
36
+ .signpost__left:before,
37
+ .signpost__right:after {
38
+ position: absolute;
39
+ top: 0;
40
+ width: 70px;
41
+ height: 100%;
42
+ content: "";
43
+ display: none;
44
+
45
+ @media #{$large-up} {
46
+ display: block;
47
+ }
48
+ }
49
+
50
+ .signpost__left {
51
+ z-index: 4;
52
+
53
+ @media #{$large-up} {
54
+ transform: translate3d(15px, -10px, 0);
55
+ padding: 50px 70px 50px 0;
56
+ margin-left: initial;
57
+ }
58
+
59
+ &:before {
60
+ transform: translateX(-70px);
61
+ background: inherit;
62
+ left: 0;
63
+ }
64
+
65
+ &:after {
66
+ display: none;
67
+ width: 0;
68
+ height: 0;
69
+ border-style: solid;
70
+ border-width: 20px 30px 0 0;
71
+ content: "";
72
+ bottom: -20px;
73
+ right: 0;
74
+ position: absolute;
75
+
76
+ @media #{$large-up} {
77
+ display: inline;
78
+ }
79
+ }
80
+ }
81
+
82
+ .signpost__right {
83
+ z-index: 3;
84
+
85
+ @media #{$large-up} {
86
+ transform: translate3d(-15px, 10px, 0);
87
+ padding: 50px 200px 50px 90px !important;
88
+ }
89
+
90
+
91
+ &:after {
92
+ background: inherit;
93
+ right: 0;
94
+ transform: translateX(70px);
95
+ }
96
+ }
97
+
98
+ .signpost__square {
99
+ @media #{$large-up} {
100
+ padding: 50px 20px 50px 90px !important;
101
+ }
102
+ }
103
+
104
+ .signpost__enterprise {
105
+ background-color: $color-white;
106
+
107
+ &:after {
108
+ border-color: darken($color-white, 16%) transparent transparent transparent;
109
+ }
110
+ }
111
+
112
+ .signpost__color-white {
113
+ background-color: $color-white;
114
+
115
+ &:after {
116
+ border-color: darken($color-white, 16%) transparent transparent transparent;
117
+ }
118
+ }
119
+
120
+ .signpost__color-developer {
121
+ background-color: $color-developer;
122
+
123
+ &:after {
124
+ border-color: darken($color-developer, 15%) transparent transparent transparent;
125
+ background-position: calc(100% + 78px) center;
126
+ background-size: cover;
127
+ }
128
+ }
129
+
130
+ .signpost__color-primary {
131
+ background-color: $color-primary;
132
+
133
+ &:after {
134
+ border-color: darken($color-primary, 16%) transparent transparent transparent;
135
+ }
136
+ }
137
+
138
+ .signpost__signup {
139
+ background: $color-primary file-url('pattern_1_faded.png') no-repeat left center;
140
+ background-color: $color-primary;
141
+
142
+ &:before {
143
+ background-position: 20% center;
144
+ }
145
+
146
+ &:after {
147
+ border-color: darken($color-primary, 10%) transparent transparent;
148
+ }
149
+ }
150
+ }