fastlane-plugin-polidea 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +52 -0
  4. data/lib/fastlane/plugin/polidea.rb +16 -0
  5. data/lib/fastlane/plugin/polidea/actions/extract_app_icon.rb +155 -0
  6. data/lib/fastlane/plugin/polidea/actions/extract_app_name.rb +91 -0
  7. data/lib/fastlane/plugin/polidea/actions/extract_version.rb +96 -0
  8. data/lib/fastlane/plugin/polidea/actions/get_binary_size.rb +53 -0
  9. data/lib/fastlane/plugin/polidea/actions/mailgun.rb +173 -0
  10. data/lib/fastlane/plugin/polidea/actions/polidea_store_action.rb +248 -0
  11. data/lib/fastlane/plugin/polidea/actions/qr_generator.rb +76 -0
  12. data/lib/fastlane/plugin/polidea/actions/s3.rb +551 -0
  13. data/lib/fastlane/plugin/polidea/helper/polidea_helper.rb +12 -0
  14. data/lib/fastlane/plugin/polidea/templates/images/icon-placeholder.png +0 -0
  15. data/lib/fastlane/plugin/polidea/templates/images/logo.png +0 -0
  16. data/lib/fastlane/plugin/polidea/templates/images/polidea-facebook-icon.png +0 -0
  17. data/lib/fastlane/plugin/polidea/templates/images/polidea-github-icon.png +0 -0
  18. data/lib/fastlane/plugin/polidea/templates/images/polidea-logo.png +0 -0
  19. data/lib/fastlane/plugin/polidea/templates/images/polidea-twitter-icon.png +0 -0
  20. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css +3142 -0
  21. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css.map +7 -0
  22. data/lib/fastlane/plugin/polidea/templates/installation-page/img/bg.png +0 -0
  23. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg.jpg +0 -0
  24. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1024.jpg +0 -0
  25. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1280.jpg +0 -0
  26. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1360.jpg +0 -0
  27. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1440.jpg +0 -0
  28. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1680.jpg +0 -0
  29. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_768.jpg +0 -0
  30. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_1024.jpg +0 -0
  31. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_768.jpg +0 -0
  32. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo.svg +32 -0
  33. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo_square.svg +12 -0
  34. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation.min.js +10 -0
  35. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.abide.js +294 -0
  36. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.accordion.js +65 -0
  37. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.alert.js +43 -0
  38. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.clearing.js +558 -0
  39. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.dropdown.js +313 -0
  40. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.equalizer.js +74 -0
  41. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.interchange.js +344 -0
  42. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.joyride.js +915 -0
  43. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.js +625 -0
  44. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.magellan.js +189 -0
  45. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.offcanvas.js +139 -0
  46. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.orbit.js +472 -0
  47. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.reveal.js +443 -0
  48. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.slider.js +231 -0
  49. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tab.js +167 -0
  50. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tooltip.js +298 -0
  51. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.topbar.js +436 -0
  52. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/aes.js +35 -0
  53. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/enc-base64-min.js +8 -0
  54. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/fastclick.js +9 -0
  55. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.cookie.js +8 -0
  56. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.js +26 -0
  57. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/modernizr.js +8 -0
  58. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/pbkdf2.js +19 -0
  59. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/placeholder.js +2 -0
  60. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/fonts.scss +64 -0
  61. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation.scss +45 -0
  62. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_functions.scss +101 -0
  63. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_settings.scss +1441 -0
  64. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_accordion.scss +156 -0
  65. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_alert-boxes.scss +126 -0
  66. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_block-grid.scss +132 -0
  67. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_breadcrumbs.scss +132 -0
  68. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_button-groups.scss +200 -0
  69. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_buttons.scss +252 -0
  70. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_clearing.scss +247 -0
  71. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown-buttons.scss +129 -0
  72. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown.scss +248 -0
  73. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_flex-video.scss +51 -0
  74. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_forms.scss +570 -0
  75. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_global.scss +447 -0
  76. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_grid.scss +275 -0
  77. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_icon-bar.scss +293 -0
  78. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_inline-lists.scss +57 -0
  79. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_joyride.scss +222 -0
  80. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_keystrokes.scss +61 -0
  81. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_labels.scss +105 -0
  82. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_magellan.scss +34 -0
  83. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_offcanvas.scss +510 -0
  84. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_orbit.scss +368 -0
  85. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pagination.scss +162 -0
  86. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_panels.scss +93 -0
  87. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pricing-tables.scss +150 -0
  88. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_progress-bars.scss +79 -0
  89. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_range-slider.scss +168 -0
  90. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_reveal.scss +220 -0
  91. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_side-nav.scss +116 -0
  92. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_split-buttons.scss +191 -0
  93. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_sub-nav.scss +125 -0
  94. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_switches.scss +226 -0
  95. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tables.scss +135 -0
  96. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tabs.scss +123 -0
  97. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_thumbs.scss +66 -0
  98. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_toolbar.scss +70 -0
  99. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tooltips.scss +142 -0
  100. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_top-bar.scss +676 -0
  101. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_type.scss +523 -0
  102. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_visibility.scss +408 -0
  103. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/installation-page.scss +171 -0
  104. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/normalize.scss +425 -0
  105. data/lib/fastlane/plugin/polidea/templates/installation_template.erb +58 -0
  106. data/lib/fastlane/plugin/polidea/templates/mailgun_template.erb +1225 -0
  107. data/lib/fastlane/plugin/polidea/version.rb +5 -0
  108. metadata +323 -0
@@ -0,0 +1,51 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ @import "global";
6
+
7
+ //
8
+ // @variables
9
+ //
10
+ $include-html-media-classes: $include-html-classes !default;
11
+
12
+ // We use these to control video container padding and margins
13
+ $flex-video-padding-top: rem-calc(25) !default;
14
+ $flex-video-padding-bottom: 67.5% !default;
15
+ $flex-video-margin-bottom: rem-calc(16) !default;
16
+
17
+ // We use this to control widescreen bottom padding
18
+ $flex-video-widescreen-padding-bottom: 56.34% !default;
19
+
20
+ //
21
+ // @mixins
22
+ //
23
+
24
+ @mixin flex-video-container {
25
+ position: relative;
26
+ padding-top: $flex-video-padding-top;
27
+ padding-bottom: $flex-video-padding-bottom;
28
+ height: 0;
29
+ margin-bottom: $flex-video-margin-bottom;
30
+ overflow: hidden;
31
+
32
+ &.widescreen { padding-bottom: $flex-video-widescreen-padding-bottom; }
33
+ &.vimeo { padding-top: 0; }
34
+
35
+ iframe,
36
+ object,
37
+ embed,
38
+ video {
39
+ position: absolute;
40
+ top: 0;
41
+ #{$default-float}: 0;
42
+ width: 100%;
43
+ height: 100%;
44
+ }
45
+ }
46
+
47
+ @include exports("flex-video") {
48
+ @if $include-html-media-classes {
49
+ .flex-video { @include flex-video-container; }
50
+ }
51
+ }
@@ -0,0 +1,570 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ @import "global";
6
+ @import "buttons";
7
+
8
+ //
9
+ // @variables
10
+ //
11
+ $include-html-form-classes: $include-html-classes !default;
12
+
13
+ // We use this to set the base for lots of form spacing and positioning styles
14
+ $form-spacing: rem-calc(16) !default;
15
+
16
+ // We use these to style the labels in different ways
17
+ $form-label-pointer: pointer !default;
18
+ $form-label-font-size: rem-calc(14) !default;
19
+ $form-label-font-weight: $font-weight-normal !default;
20
+ $form-label-line-height: 1.5 !default;
21
+ $form-label-font-color: scale-color($black, $lightness: 30%) !default;
22
+ $form-label-small-transform: capitalize !default;
23
+ $form-label-bottom-margin: 0 !default;
24
+ $input-font-family: inherit !default;
25
+ $input-font-color: rgba(0,0,0,0.75) !default;
26
+ $input-font-size: rem-calc(14) !default;
27
+ $input-bg-color: $white !default;
28
+ $input-focus-bg-color: scale-color($white, $lightness: -2%) !default;
29
+ $input-border-color: scale-color($white, $lightness: -20%) !default;
30
+ $input-focus-border-color: scale-color($white, $lightness: -40%) !default;
31
+ $input-border-style: solid !default;
32
+ $input-border-width: 1px !default;
33
+ $input-border-radius: $global-radius !default;
34
+ $input-disabled-bg: $gainsboro !default;
35
+ $input-disabled-cursor: $cursor-default-value !default;
36
+ $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1) !default;
37
+ $input-include-glowing-effect: true !default;
38
+
39
+ // We use these to style the fieldset border and spacing.
40
+ $fieldset-border-style: solid !default;
41
+ $fieldset-border-width: 1px !default;
42
+ $fieldset-border-color: $gainsboro !default;
43
+ $fieldset-padding: rem-calc(20) !default;
44
+ $fieldset-margin: rem-calc(18 0) !default;
45
+
46
+ // We use these to style the legends when you use them
47
+ $legend-bg: $white !default;
48
+ $legend-font-weight: $font-weight-bold !default;
49
+ $legend-padding: rem-calc(0 3) !default;
50
+
51
+ // We use these to style the prefix and postfix input elements
52
+ $input-prefix-bg: scale-color($white, $lightness: -5%) !default;
53
+ $input-prefix-border-color: scale-color($white, $lightness: -20%) !default;
54
+ $input-prefix-border-size: 1px !default;
55
+ $input-prefix-border-type: solid !default;
56
+ $input-prefix-overflow: hidden !default;
57
+ $input-prefix-font-color: $oil !default;
58
+ $input-prefix-font-color-alt: $white !default;
59
+
60
+ // We use this setting to turn on/off HTML5 number spinners (the up/down arrows)
61
+ $input-number-spinners: true !default;
62
+
63
+ // We use these to style the error states for inputs and labels
64
+ $input-error-message-padding: rem-calc(6 9 9) !default;
65
+ $input-error-message-top: -1px !default;
66
+ $input-error-message-font-size: rem-calc(12) !default;
67
+ $input-error-message-font-weight: $font-weight-normal !default;
68
+ $input-error-message-font-style: italic !default;
69
+ $input-error-message-font-color: $white !default;
70
+ $input-error-message-font-color-alt: $oil !default;
71
+
72
+ // We use this to style the glowing effect of inputs when focused
73
+ $glowing-effect-fade-time: 0.45s !default;
74
+ $glowing-effect-color: $input-focus-border-color !default;
75
+
76
+ // Select variables
77
+ $select-bg-color: $ghost !default;
78
+ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
79
+
80
+ //
81
+ // @MIXINS
82
+ //
83
+
84
+ // We use this mixin to give us form styles for rows inside of forms
85
+ @mixin form-row-base {
86
+ .row { margin: 0 ((-$form-spacing) / 2);
87
+
88
+ .column,
89
+ .columns { padding: 0 $form-spacing / 2; }
90
+
91
+ // Use this to collapse the margins of a form row
92
+ &.collapse { margin: 0;
93
+
94
+ .column,
95
+ .columns { padding: 0; }
96
+ input {
97
+ @include side-radius($opposite-direction, 0);
98
+ }
99
+
100
+ }
101
+ }
102
+ input.column,
103
+ input.columns,
104
+ textarea.column,
105
+ textarea.columns { padding-#{$default-float}: $form-spacing / 2; }
106
+ }
107
+
108
+ // @MIXIN
109
+ //
110
+ // We use this mixin to give all basic form elements their style
111
+ @mixin form-element {
112
+ background-color: $input-bg-color;
113
+ font-family: $input-font-family;
114
+ border: $input-border-width $input-border-style $input-border-color;
115
+ box-shadow: $input-box-shadow;
116
+ color: $input-font-color;
117
+ display: block;
118
+ font-size: $input-font-size;
119
+ margin: 0 0 $form-spacing 0;
120
+ padding: $form-spacing / 2;
121
+ height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
122
+ width: 100%;
123
+ @include box-sizing(border-box);
124
+ @if $input-include-glowing-effect {
125
+ @include block-glowing-effect(focus, $glowing-effect-fade-time, $glowing-effect-color);
126
+ }
127
+ // Basic focus styles
128
+ &:focus {
129
+ background: $input-focus-bg-color;
130
+ border-color: $input-focus-border-color;
131
+ outline: none;
132
+ }
133
+ // Disbaled Styles
134
+ &:disabled {
135
+ background-color: $input-disabled-bg;
136
+ cursor: $input-disabled-cursor;
137
+ }
138
+
139
+ // Disabled background input background color
140
+ &[disabled],
141
+ &[readonly],
142
+ fieldset[disabled] & {
143
+ background-color: $input-disabled-bg;
144
+ cursor: $input-disabled-cursor;
145
+ }
146
+ }
147
+
148
+ // @MIXIN
149
+ //
150
+ // We use this mixin to create form labels
151
+ //
152
+ // $alignment - Alignment options. Default: false. Options: [right, inline, false]
153
+ // $base-style - Control whether or not the base styles come through. Default: true.
154
+ @mixin form-label($alignment:false, $base-style:true) {
155
+
156
+ // Control whether or not the base styles come through.
157
+ @if $base-style {
158
+ font-size: $form-label-font-size;
159
+ color: $form-label-font-color;
160
+ cursor: $form-label-pointer;
161
+ display: block;
162
+ font-weight: $form-label-font-weight;
163
+ line-height: $form-label-line-height;
164
+ margin-bottom: $form-label-bottom-margin;
165
+ }
166
+
167
+ // Alignment options
168
+ @if $alignment == right {
169
+ float: none !important;
170
+ text-align: right;
171
+ }
172
+ @else if $alignment == inline {
173
+ margin: 0 0 $form-spacing 0;
174
+ padding: $form-spacing / 2 + rem-calc($input-border-width) 0;
175
+ }
176
+ }
177
+
178
+ // We use this mixin to create postfix/prefix form Labels
179
+ @mixin prefix-postfix-base {
180
+ display: block;
181
+ position: relative;
182
+ z-index: 2;
183
+ text-align: center;
184
+ width: 100%;
185
+ padding-top: 0;
186
+ padding-bottom: 0;
187
+ border-style: $input-prefix-border-type;
188
+ border-width: $input-prefix-border-size;
189
+ overflow: $input-prefix-overflow;
190
+ font-size: $form-label-font-size;
191
+ height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
192
+ line-height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
193
+ }
194
+
195
+ // @MIXIN
196
+ //
197
+ // We use this mixin to create prefix label styles
198
+ // $bg - Default:$input-prefix-bg || scale-color($white, $lightness: -5%) !default;
199
+ // $is-button - Toggle position settings if prefix is a button. Default:false
200
+ //
201
+ @mixin prefix($bg:$input-prefix-bg, $border:$input-prefix-border-color, $is-button:false) {
202
+
203
+ @if $bg {
204
+ $bg-lightness: lightness($bg);
205
+ background: $bg;
206
+ border-#{$opposite-direction}: none;
207
+
208
+ // Control the font color based on background brightness
209
+ @if $bg-lightness > 70% or $bg == yellow { color: $input-prefix-font-color; }
210
+ @else { color: $input-prefix-font-color-alt; }
211
+ }
212
+
213
+ @if $border {
214
+ border-color: $border;
215
+ }
216
+
217
+ @if $is-button {
218
+ padding-#{$default-float}: 0;
219
+ padding-#{$opposite-direction}: 0;
220
+ padding-top: 0;
221
+ padding-bottom: 0;
222
+ text-align: center;
223
+ line-height: rem-calc(34);
224
+ border: none;
225
+ }
226
+
227
+ }
228
+
229
+ // @MIXIN
230
+ //
231
+ // We use this mixin to create postfix label styles
232
+ // $bg - Default:$input-prefix-bg || scale-color($white, $lightness: -5%) !default;
233
+ // $is-button - Toggle position settings if prefix is a button. Default: false
234
+ @mixin postfix($bg:$input-prefix-bg, $border:$input-prefix-border-color, $is-button:false) {
235
+
236
+ @if $bg {
237
+ $bg-lightness: lightness($bg);
238
+ background: $bg;
239
+ border-#{$default-float}: none;
240
+
241
+ // Control the font color based on background brightness
242
+ @if $bg-lightness > 70% or $bg == yellow { color: $input-prefix-font-color; }
243
+ @else { color: $input-prefix-font-color-alt; }
244
+ }
245
+
246
+ @if $border {
247
+ border-color: $border;
248
+ }
249
+
250
+ @if $is-button {
251
+ padding-#{$default-float}: 0;
252
+ padding-#{$opposite-direction}: 0;
253
+ padding-top: 0;
254
+ padding-bottom: 0;
255
+ text-align: center;
256
+ line-height: rem-calc(34);
257
+ border: none;
258
+ }
259
+
260
+ }
261
+
262
+ // We use this mixin to style fieldsets
263
+ @mixin fieldset {
264
+ border: $fieldset-border-width $fieldset-border-style $fieldset-border-color;
265
+ padding: $fieldset-padding;
266
+ margin: $fieldset-margin;
267
+
268
+ // and legend styles
269
+ legend {
270
+ font-weight: $legend-font-weight;
271
+ background: $legend-bg;
272
+ padding: $legend-padding;
273
+ margin: 0;
274
+ margin-#{$default-float}: rem-calc(-3);
275
+ }
276
+ }
277
+
278
+ // @MIXIN
279
+ //
280
+ // We use this mixin to control border and background color of error inputs
281
+ // $color - Default: $alert-color (found in settings file)
282
+ @mixin form-error-color($color:$alert-color) {
283
+ border-color: $color;
284
+ background-color: rgba($color, 0.1);
285
+
286
+ // Go back to normal on focus
287
+ &:focus {
288
+ background: $input-focus-bg-color;
289
+ border-color: $input-focus-border-color;
290
+ }
291
+ }
292
+
293
+ // @MIXIN
294
+ //
295
+ // We use this simple mixin to style labels for error inputs
296
+ // $color - Default:$alert-color. Found in settings file
297
+ @mixin form-label-error-color($color:$alert-color) { color: $color; }
298
+
299
+ // @MIXIN
300
+ //
301
+ // We use this mixin to create error message styles
302
+ // $bg - Default: $alert-color (Found in settings file)
303
+ @mixin form-error-message($bg:$alert-color) {
304
+ display: block;
305
+ padding: $input-error-message-padding;
306
+ margin-top: $input-error-message-top;
307
+ margin-bottom: $form-spacing;
308
+ font-size: $input-error-message-font-size;
309
+ font-weight: $input-error-message-font-weight;
310
+ font-style: $input-error-message-font-style;
311
+
312
+ // We can control the text color based on the brightness of the background.
313
+ $bg-lightness: lightness($bg);
314
+ background: $bg;
315
+ @if $bg-lightness < 70% or $bg == yellow { color: $input-error-message-font-color; }
316
+ @else { color: $input-error-message-font-color-alt; }
317
+ }
318
+
319
+ // We use this mixin to style select elements
320
+ @mixin form-select {
321
+ -webkit-appearance: none !important;
322
+ -webkit-border-radius: 0px;
323
+ background-color: $select-bg-color;
324
+
325
+ // The custom arrow have some fake horizontal padding so we can align it
326
+ // from the right side of the element without relying on CSS3
327
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
328
+
329
+ // We can safely use leftmost and rightmost now
330
+ background-position: if($text-direction == 'rtl', 0%, 100%) center;
331
+
332
+ background-repeat: no-repeat;
333
+ border: $input-border-width $input-border-style $input-border-color;
334
+ padding: $form-spacing / 2;
335
+ font-size: $input-font-size;
336
+ color: $input-font-color;
337
+ line-height: normal;
338
+ @include radius(0);
339
+ &.radius { @include radius($global-radius); }
340
+ &:hover {
341
+ background-color: $select-hover-bg-color;
342
+ border-color: $input-focus-border-color;
343
+ }
344
+ // Disbaled Styles
345
+ &:disabled {
346
+ background-color: $input-disabled-bg;
347
+ cursor: $input-disabled-cursor;
348
+ }
349
+ }
350
+
351
+ // We use this mixin to turn on/off HTML5 number spinners
352
+ @mixin html5number($browser, $on:true) {
353
+ @if $on==false {
354
+ @if $browser==webkit {
355
+ -webkit-appearance: none;
356
+ margin: 0;
357
+ } @else if $browser==moz {
358
+ -moz-appearance: textfield;
359
+ }
360
+ }
361
+ }
362
+
363
+ @include exports("form") {
364
+ @if $include-html-form-classes {
365
+ /* Standard Forms */
366
+ form { margin: 0 0 $form-spacing; }
367
+
368
+ /* Using forms within rows, we need to set some defaults */
369
+ form .row { @include form-row-base; }
370
+
371
+ /* Label Styles */
372
+ label { @include form-label;
373
+ &.right { @include form-label(right,false); }
374
+ &.inline { @include form-label(inline,false); }
375
+ /* Styles for required inputs */
376
+ small {
377
+ text-transform: $form-label-small-transform;
378
+ color: scale-color($form-label-font-color, $lightness: 15%);
379
+ }
380
+ }
381
+
382
+ select::-ms-expand {
383
+ display:none;
384
+ }
385
+
386
+ /* Attach elements to the beginning or end of an input */
387
+ .prefix,
388
+ .postfix { @include prefix-postfix-base; }
389
+
390
+ /* Adjust padding, alignment and radius if pre/post element is a button */
391
+ .postfix.button { @include button-size(false,false); @include postfix(false, false, true); }
392
+ .prefix.button { @include button-size(false,false); @include prefix(false, false, true); }
393
+
394
+ .prefix.button.radius { @include radius(0); @include side-radius($default-float, $button-radius); }
395
+ .postfix.button.radius { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
396
+ .prefix.button.round { @include radius(0); @include side-radius($default-float, $button-round); }
397
+ .postfix.button.round { @include radius(0); @include side-radius($opposite-direction, $button-round); }
398
+
399
+ /* Separate prefix and postfix styles when on span or label so buttons keep their own */
400
+ span.prefix,label.prefix { @include prefix(); }
401
+ span.postfix,label.postfix { @include postfix(); }
402
+
403
+ /* We use this to get basic styling on all basic form elements */
404
+ input[type="text"],
405
+ input[type="password"],
406
+ input[type="date"],
407
+ input[type="datetime"],
408
+ input[type="datetime-local"],
409
+ input[type="month"],
410
+ input[type="week"],
411
+ input[type="email"],
412
+ input[type="number"],
413
+ input[type="search"],
414
+ input[type="tel"],
415
+ input[type="time"],
416
+ input[type="url"],
417
+ input[type="color"],
418
+ textarea {
419
+ -webkit-appearance: none;
420
+ -webkit-border-radius: 0px;
421
+ @include form-element;
422
+ @if $input-include-glowing-effect == false {
423
+ @include single-transition(all, 0.15s, linear);
424
+ }
425
+ &.radius {
426
+ @include radius($input-border-radius);
427
+ }
428
+ }
429
+
430
+ form {
431
+ .row {
432
+ .prefix-radius.row.collapse {
433
+ input,
434
+ textarea,
435
+ select { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
436
+ .prefix { @include radius(0); @include side-radius($default-float, $button-radius); }
437
+ }
438
+ .postfix-radius.row.collapse {
439
+ input,
440
+ textarea,
441
+ select { @include radius(0); @include side-radius($default-float, $button-radius); }
442
+ .postfix { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
443
+ }
444
+ .prefix-round.row.collapse {
445
+ input,
446
+ textarea,
447
+ select { @include radius(0); @include side-radius($opposite-direction, $button-round); }
448
+ .prefix { @include radius(0); @include side-radius($default-float, $button-round); }
449
+ }
450
+ .postfix-round.row.collapse {
451
+ input,
452
+ textarea,
453
+ select { @include radius(0); @include side-radius($default-float, $button-round); }
454
+ .postfix { @include radius(0); @include side-radius($opposite-direction, $button-round); }
455
+ }
456
+ }
457
+ }
458
+
459
+ input[type="submit"] {
460
+ -webkit-appearance: none;
461
+ -webkit-border-radius: 0px;
462
+ }
463
+
464
+ /* Respect enforced amount of rows for textarea */
465
+ textarea[rows] {
466
+ height: auto;
467
+ }
468
+
469
+ /* Add height value for select elements to match text input height */
470
+ select {
471
+ @include form-select;
472
+ height: ($input-font-size + ($form-spacing * 1.5) - rem-calc(1));
473
+ }
474
+
475
+ /* Adjust margin for form elements below */
476
+ input[type="file"],
477
+ input[type="checkbox"],
478
+ input[type="radio"],
479
+ select {
480
+ margin: 0 0 $form-spacing 0;
481
+ }
482
+
483
+ input[type="checkbox"] + label,
484
+ input[type="radio"] + label {
485
+ display: inline-block;
486
+ margin-#{$default-float}: $form-spacing * .5;
487
+ margin-#{$opposite-direction}: $form-spacing;
488
+ margin-bottom: 0;
489
+ vertical-align: baseline;
490
+ }
491
+
492
+ /* Normalize file input width */
493
+ input[type="file"] {
494
+ width:100%;
495
+ }
496
+
497
+ /* HTML5 Number spinners settings */
498
+ input[type=number] {
499
+ @include html5number(moz, $input-number-spinners)
500
+ }
501
+ input[type="number"]::-webkit-inner-spin-button,
502
+ input[type="number"]::-webkit-outer-spin-button {
503
+ @include html5number(webkit, $input-number-spinners);
504
+ }
505
+
506
+ /* We add basic fieldset styling */
507
+ fieldset {
508
+ @include fieldset;
509
+ }
510
+
511
+ /* Error Handling */
512
+
513
+ #{data('abide')} {
514
+ .error small.error, .error span.error, span.error, small.error {
515
+ @include form-error-message;
516
+ }
517
+ span.error, small.error { display: none; }
518
+ }
519
+
520
+ span.error, small.error {
521
+ @include form-error-message;
522
+ }
523
+
524
+ .error {
525
+ input,
526
+ textarea,
527
+ select {
528
+ margin-bottom: 0;
529
+ }
530
+
531
+ input[type="checkbox"],
532
+ input[type="radio"] {
533
+ margin-bottom: $form-spacing
534
+ }
535
+
536
+ label,
537
+ label.error {
538
+ @include form-label-error-color;
539
+ }
540
+
541
+ small.error {
542
+ @include form-error-message;
543
+ }
544
+
545
+ > label {
546
+ > small {
547
+ color: scale-color($form-label-font-color, $lightness: 15%);
548
+ background: transparent;
549
+ padding: 0;
550
+ text-transform: $form-label-small-transform;
551
+ font-style: normal;
552
+ font-size: 60%;
553
+ margin: 0;
554
+ display: inline;
555
+ }
556
+ }
557
+
558
+ span.error-message {
559
+ display: block;
560
+ }
561
+ }
562
+
563
+ input.error,
564
+ textarea.error,
565
+ select.error {
566
+ margin-bottom: 0;
567
+ }
568
+ label.error { @include form-label-error-color; }
569
+ }
570
+ }