form-jekyll 0.3.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 (40) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +83 -0
  3. data/_includes/elements/helptext.html +3 -0
  4. data/_includes/elements/label.html +1 -0
  5. data/_includes/fields/address.html +41 -0
  6. data/_includes/fields/checkbox.html +27 -0
  7. data/_includes/fields/email.html +12 -0
  8. data/_includes/fields/file.html +14 -0
  9. data/_includes/fields/group.html +3 -0
  10. data/_includes/fields/header.html +3 -0
  11. data/_includes/fields/link.html +6 -0
  12. data/_includes/fields/number.html +20 -0
  13. data/_includes/fields/paragraph.html +1 -0
  14. data/_includes/fields/phone.html +14 -0
  15. data/_includes/fields/price.html +16 -0
  16. data/_includes/fields/radio.html +34 -0
  17. data/_includes/fields/select.html +15 -0
  18. data/_includes/fields/text.html +18 -0
  19. data/_includes/fields/textarea.html +12 -0
  20. data/_includes/pagination.html +14 -0
  21. data/_includes/render_field.html +55 -0
  22. data/_includes/render_form.html +34 -0
  23. data/_includes/sfgov/alpha-banner.html +7 -0
  24. data/_includes/sfgov/footer.html +49 -0
  25. data/_includes/sfgov/header.html +47 -0
  26. data/_layouts/default.html +59 -0
  27. data/_sass/sfgov.scss +471 -0
  28. data/_sass/variables.scss +462 -0
  29. data/assets/css/main.scss +886 -0
  30. data/assets/css/style.scss +146 -0
  31. data/assets/favicon.ico +0 -0
  32. data/assets/images/globe-blue.svg +1 -0
  33. data/assets/images/logo-white.svg +100 -0
  34. data/assets/images/logo.svg +1 -0
  35. data/assets/images/settings-toggle.svg +3 -0
  36. data/assets/images/sfgov.svg +8 -0
  37. data/assets/js/jquery.js +2 -0
  38. data/assets/js/script.js +187 -0
  39. data/assets/js/validator.js +9 -0
  40. metadata +129 -0
@@ -0,0 +1,886 @@
1
+ ---
2
+ ---
3
+
4
+ @import 'variables';
5
+
6
+ html, body {
7
+ margin: 0;
8
+ padding: 0;
9
+ }
10
+
11
+ fieldset {
12
+ margin: 0;
13
+ padding: 0;
14
+ border: 0;
15
+ }
16
+
17
+ label,
18
+ .label,
19
+ legend {
20
+ display: block;
21
+ margin: 0 0 0.25rem;
22
+ padding: 0;
23
+ line-height: 1.5;
24
+ }
25
+
26
+ div[data-group] {
27
+ display: none;
28
+ }
29
+
30
+ label:empty,
31
+ legend:empty,
32
+ p:empty {
33
+ margin: 0;
34
+ }
35
+
36
+ .field-legend:after,
37
+ .field-wrapper:after,
38
+ .form-group:after {
39
+ display: table;
40
+ content: "";
41
+ clear: both;
42
+ }
43
+
44
+ .valtype {
45
+ input,
46
+ label {
47
+ &:last-of-type {
48
+ margin-bottom: 0;
49
+ }
50
+ }
51
+ }
52
+
53
+ input,
54
+ textarea {
55
+ border: 1px solid #777;
56
+ width: 100%;
57
+ padding: 0.5rem;
58
+ }
59
+
60
+ textarea {
61
+ resize: vertical;
62
+ &.textarea-small {
63
+ height: 1.75rem * 3;
64
+ }
65
+
66
+ &.textarea-medium {
67
+ height: 1.75rem * 5;
68
+ }
69
+
70
+ &.textarea-large {
71
+ height: 1.75rem * 9;
72
+ }
73
+ }
74
+
75
+ .help-block {
76
+ margin: 0.5rem 0 0;
77
+ color: #666;
78
+ }
79
+
80
+ .help-block ul {
81
+ margin: 0;
82
+ }
83
+
84
+ .help-block.with-errors:empty {
85
+ height: 0;
86
+ }
87
+
88
+ .help-block .list-unstyled {
89
+ padding: 0;
90
+ }
91
+
92
+ .has-error .help-block {
93
+ color: red;
94
+ }
95
+
96
+ .form-section,
97
+ .form-section-header {
98
+ display: none;
99
+ }
100
+
101
+ .form-section.active,
102
+ .form-section-header.active {
103
+ display: block;
104
+ }
105
+
106
+ .form-section-header {
107
+ font-size: 1.5em;
108
+ }
109
+
110
+ .form-section-prev,
111
+ .form-section-next {
112
+ margin-top: 1.5rem;
113
+ }
114
+
115
+ .form-section-prev {
116
+ float: left;
117
+ }
118
+
119
+ .form-section-next {
120
+ float: right;
121
+ }
122
+
123
+ .form-section-nav {
124
+ display: none;
125
+ }
126
+
127
+ .form-section-nav li {
128
+ list-style: none;
129
+ padding: 0.5rem 1rem;
130
+ display: block;
131
+ }
132
+
133
+ .form-section-nav li.active {
134
+ font-weight: bold;
135
+ position: relative;
136
+ }
137
+
138
+ .form-section-nav li.active:before {
139
+ content: "";
140
+ border-radius: 50%;
141
+ width: 0.5rem;
142
+ height: 0.5rem;
143
+ position: absolute;
144
+ left: 0;
145
+ top: 50%;
146
+ margin-top: -0.25rem;
147
+ background: currentColor;
148
+ }
149
+
150
+ @media screen and (min-width: 40rem) {
151
+ .form-section-nav,
152
+ .form-horizontal {
153
+ float: left;
154
+ }
155
+
156
+ .form-section-nav {
157
+ display: block;
158
+ width: 20%;
159
+ margin-right: 5%;
160
+ }
161
+
162
+ .form-horizontal {
163
+ width: 60%;
164
+ }
165
+ }
166
+
167
+ @media screen and (min-width: 70rem) {
168
+ .form-section-nav {
169
+ width: 15%;
170
+ margin-right: 5%;
171
+ }
172
+
173
+ .form-horizontal {
174
+ width: 70%;
175
+ }
176
+ }
177
+
178
+ /* Hacks */
179
+
180
+ input[formtype="m11"] {
181
+ display: none;
182
+ }
183
+
184
+ /* Add a cursor to .form-section-nav elements */
185
+ .form-section-nav li {
186
+ cursor: pointer;
187
+ }
188
+
189
+ /* Label .form-section-nav */
190
+
191
+ .form-section-nav {
192
+ position: relative;
193
+ padding-top: 1rem;
194
+ }
195
+
196
+ .form-section-nav:before {
197
+ content: "Choose a Page";
198
+ position: absolute;
199
+ font-size: 1.25rem;
200
+ color: #666;
201
+ top: -1rem;
202
+ }
203
+
204
+ /* Only display legend to screen readers*/
205
+
206
+ #SFDSWFB-legend {
207
+ position: absolute !important;
208
+ height: 1px;
209
+ width: 1px;
210
+ overflow: hidden;
211
+ clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
212
+ clip: rect(1px, 1px, 1px, 1px);
213
+ }
214
+
215
+ // Branding stylesheet
216
+
217
+ @import url('https://fonts.googleapis.com/css?family=Rubik:300,400,500');
218
+
219
+ *,
220
+ *::before,
221
+ *::after {
222
+ box-sizing: border-box;
223
+ }
224
+
225
+ // Mixins
226
+
227
+ @mixin font-smoothing {
228
+ -webkit-font-smoothing: antialiased;
229
+ -moz-osx-font-smoothing: grayscale;
230
+ }
231
+
232
+ @mixin font-size-to-rem($number) {
233
+ font-size: ($number * 1rem) / $base-font-size;
234
+ }
235
+
236
+ @mixin line-height-to-rem($number) {
237
+ line-height: $number * 1rem / $base-font-size;
238
+ }
239
+
240
+ @mixin input-border {
241
+ border-color: $slate-blue;
242
+ border-width: 2px;
243
+ border-style: solid;
244
+ border-radius: 8px;
245
+ background-color: $white;
246
+ }
247
+
248
+ @mixin input-border-focus {
249
+ border-color: $bright-blue;
250
+ box-shadow: inset 0 0 0 2px $bright-blue;
251
+ outline: none;
252
+ }
253
+
254
+ // Global styles
255
+
256
+ body,
257
+ input,
258
+ textarea,
259
+ select,
260
+ button {
261
+ @include rubik;
262
+ @include fs-body-short;
263
+ color: $slate-blue;
264
+ font-weight: $t-normal;
265
+ -webkit-font-size-adjust: 100%;
266
+ }
267
+
268
+ input,
269
+ textarea,
270
+ select {
271
+ color: $slate-blue;
272
+ }
273
+
274
+ .site {
275
+ font-size: 1.0625em;
276
+ }
277
+
278
+ label,
279
+ legend {
280
+ font-size: (24em / 17);
281
+ letter-spacing: -0.016em;
282
+ line-height: 1.5;
283
+ @include font-smoothing;
284
+ margin-bottom: 0.5rem;
285
+ }
286
+
287
+ legend {
288
+ margin-bottom: 0.75rem;
289
+ }
290
+
291
+ b, strong {
292
+ font-weight: $t-bold;
293
+ }
294
+
295
+ // Make italic fonts bold, since we're
296
+ // not loading italic font weights
297
+ em, i {
298
+ font-style: normal;
299
+ font-weight: $t-bold;
300
+ }
301
+
302
+ input,
303
+ textarea,
304
+ select {
305
+ @include input-border;
306
+ border-radius: 8px;
307
+ &:focus {
308
+ @include input-border-focus;
309
+ }
310
+ }
311
+
312
+ input[type='text'],
313
+ input[type='email'],
314
+ input[type='url'],
315
+ input[type='tel'],
316
+ input[type='number'],
317
+ input[type='password'],
318
+ input[type='date'],
319
+ input[type='time'],
320
+ input[type='search'],
321
+ textarea,
322
+ select {
323
+ padding: 0.64rem 1rem;
324
+ }
325
+
326
+ // Cross-browser consistency / bug fixes
327
+
328
+ input::-webkit-outer-spin-button,
329
+ input::-webkit-inner-spin-button,
330
+ input::-webkit-calendar-picker-indicator {
331
+ -webkit-appearance: none;
332
+ margin: 0;
333
+ }
334
+
335
+ input[type=number] {
336
+ -moz-appearance: textfield;
337
+ }
338
+
339
+ input[type='search'] {
340
+ -webkit-appearance: none;
341
+ }
342
+
343
+ ::-webkit-input-placeholder { /* Chrome/Opera/Safari */
344
+ color: rgba($slate-blue, 0.6);
345
+ }
346
+ ::-moz-placeholder { /* Firefox 19+ */
347
+ color: rgba($slate-blue, 0.6);
348
+ }
349
+ :-ms-input-placeholder { /* IE 10+ */
350
+ color: rgba($slate-blue, 0.6);
351
+ }
352
+ :-moz-placeholder { /* Firefox 18- */
353
+ color: rgba($slate-blue, 0.6);
354
+ }
355
+
356
+ button,
357
+ input[type='submit'] {
358
+ -webkit-appearance: none;
359
+ -moz-appearance: none;
360
+ }
361
+
362
+ input[type='date'],
363
+ input[type='time'] {
364
+ // Fix styling inconsistencies with
365
+ // date and time inputs on iOS
366
+ -webkit-appearance: textfield;
367
+ -moz-appearance: textfield;
368
+ min-height: 3rem;
369
+ }
370
+
371
+ input[type='file'] {
372
+ border: none;
373
+ padding: 0;
374
+ }
375
+
376
+ // Checkbox and radio button styles
377
+
378
+ $rc-size: 3rem;
379
+
380
+ .checkbox,
381
+ .radio {
382
+ position: relative;
383
+ padding-left: $rc-size + 0.75rem;
384
+ margin-bottom: 1rem;
385
+ min-height: $rc-size;
386
+
387
+ input,
388
+ span::before {
389
+ position: absolute;
390
+ top: 0;
391
+ left: 0;
392
+ width: $rc-size;
393
+ height: $rc-size;
394
+ }
395
+
396
+ input {
397
+ -webkit-appearance: none;
398
+ -moz-appearance: none;
399
+ opacity: 0;
400
+ padding: 0;
401
+ margin: 0;
402
+ &:focus + span:before {
403
+ @include input-border-focus;
404
+ }
405
+ }
406
+
407
+ span {
408
+ display: block;
409
+ font-size: initial;
410
+ padding-top: 0.75rem;
411
+ &::before {
412
+ content: '';
413
+ @include input-border;
414
+ }
415
+ }
416
+ }
417
+
418
+ .radio {
419
+ span::before,
420
+ span::after {
421
+ border-radius: 50%;
422
+ }
423
+
424
+ span::after {
425
+ content: '';
426
+ width: $rc-size * 0.625;
427
+ height: $rc-size * 0.625;
428
+ top: $rc-size * 0.1875;
429
+ left: $rc-size * 0.1875;
430
+ z-index: 2;
431
+ position: absolute;
432
+ }
433
+
434
+ input:checked {
435
+ + span::after {
436
+ background: $slate-blue;
437
+ }
438
+
439
+ &:focus + span:after {
440
+ background: $bright-blue;
441
+ }
442
+ }
443
+
444
+ input:focus + span:before {
445
+ background: $white;
446
+ }
447
+ }
448
+
449
+
450
+ .checkbox input:checked {
451
+ + span::before {
452
+ background-size: 50% 40%;
453
+ background-repeat: no-repeat;
454
+ background-position: center;
455
+ background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNS43NTAwOSAxNi43NTVDNS41ODU3OSAxNi43NTU2IDUuNDIzIDE2LjcyMzYgNS4yNzExMSAxNi42NjFDNS4xMTkyMSAxNi41OTg0IDQuOTgxMjIgMTYuNTA2MyA0Ljg2NTA5IDE2LjM5TDAuMzY1MDkgMTEuODlDMC4yNDU4NzYgMTEuNzc0NiAwLjE1MDg1NCAxMS42MzY1IDAuMDg1NTY3OCAxMS40ODM5QzAuMDIwMjgxMyAxMS4zMzEzIC0wLjAxMzk2MjMgMTEuMTY3MiAtMC4wMTUxNjQ5IDExLjAwMTNDLTAuMDE2MzY3NiAxMC44MzUzIDAuMDE1NDk0NyAxMC42NzA3IDAuMDc4NTYyOSAxMC41MTcyQzAuMTQxNjMxIDEwLjM2MzcgMC4yMzQ2NDIgMTAuMjI0MyAwLjM1MjE3IDEwLjEwNzFDMC40Njk2OTcgOS45ODk4OCAwLjYwOTM4OCA5Ljg5NzI2IDAuNzYzMDkgOS44MzQ2M0MwLjkxNjc5MyA5Ljc3MiAxLjA4MTQzIDkuNzQwNiAxLjI0NzQgOS43NDIyN0MxLjQxMzM2IDkuNzQzOTQgMS41NzczMyA5Ljc3ODY1IDEuNzI5NzQgOS44NDQzN0MxLjg4MjE1IDkuOTEwMDkgMi4wMTk5NSAxMC4wMDU1IDIuMTM1MDkgMTAuMTI1TDUuNzUwMDkgMTMuNzRMMTcuODcwMSAxLjYyMDA0QzE4LjEwNjIgMS4zOTI2NSAxOC40MjIxIDEuMjY3MDkgMTguNzQ5OSAxLjI3MDM5QzE5LjA3NzYgMS4yNzM2OSAxOS4zOTA5IDEuNDA1NiAxOS42MjI0IDEuNjM3NjlDMTkuODUzOCAxLjg2OTc5IDE5Ljk4NDkgMi4xODM1MSAxOS45ODcyIDIuNTExMjdDMTkuOTg5NiAyLjgzOTAzIDE5Ljg2MzEgMy4xNTQ2MSAxOS42MzUxIDMuMzkwMDRMNi42MzUwOSAxNi4zOUM2LjUxODk2IDE2LjUwNjMgNi4zODA5NyAxNi41OTg0IDYuMjI5MDcgMTYuNjYxQzYuMDc3MTggMTYuNzIzNiA1LjkxNDM5IDE2Ljc1NTYgNS43NTAwOSAxNi43NTVaIiBmaWxsPSIjMUMzRTU3Ii8+Cjwvc3ZnPg==');
456
+ }
457
+
458
+ &:focus + span::before {
459
+ background-color: $bright-blue;
460
+ background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNS43NTAwOSAxNi43NTVDNS41ODU3OSAxNi43NTU2IDUuNDIzIDE2LjcyMzYgNS4yNzExMSAxNi42NjFDNS4xMTkyMSAxNi41OTg0IDQuOTgxMjIgMTYuNTA2MyA0Ljg2NTA5IDE2LjM5TDAuMzY1MDkgMTEuODlDMC4yNDU4NzYgMTEuNzc0NiAwLjE1MDg1NCAxMS42MzY1IDAuMDg1NTY3OCAxMS40ODM5QzAuMDIwMjgxMyAxMS4zMzEzIC0wLjAxMzk2MjMgMTEuMTY3MiAtMC4wMTUxNjQ5IDExLjAwMTNDLTAuMDE2MzY3NiAxMC44MzUzIDAuMDE1NDk0NyAxMC42NzA3IDAuMDc4NTYyOSAxMC41MTcyQzAuMTQxNjMxIDEwLjM2MzcgMC4yMzQ2NDIgMTAuMjI0MyAwLjM1MjE3IDEwLjEwNzFDMC40Njk2OTcgOS45ODk4OCAwLjYwOTM4OCA5Ljg5NzI2IDAuNzYzMDkgOS44MzQ2M0MwLjkxNjc5MyA5Ljc3MiAxLjA4MTQzIDkuNzQwNiAxLjI0NzQgOS43NDIyN0MxLjQxMzM2IDkuNzQzOTQgMS41NzczMyA5Ljc3ODY1IDEuNzI5NzQgOS44NDQzN0MxLjg4MjE1IDkuOTEwMDkgMi4wMTk5NSAxMC4wMDU1IDIuMTM1MDkgMTAuMTI1TDUuNzUwMDkgMTMuNzRMMTcuODcwMSAxLjYyMDA0QzE4LjEwNjIgMS4zOTI2NSAxOC40MjIxIDEuMjY3MDkgMTguNzQ5OSAxLjI3MDM5QzE5LjA3NzYgMS4yNzM2OSAxOS4zOTA5IDEuNDA1NiAxOS42MjI0IDEuNjM3NjlDMTkuODUzOCAxLjg2OTc5IDE5Ljk4NDkgMi4xODM1MSAxOS45ODcyIDIuNTExMjdDMTkuOTg5NiAyLjgzOTAzIDE5Ljg2MzEgMy4xNTQ2MSAxOS42MzUxIDMuMzkwMDRMNi42MzUwOSAxNi4zOUM2LjUxODk2IDE2LjUwNjMgNi4zODA5NyAxNi41OTg0IDYuMjI5MDcgMTYuNjYxQzYuMDc3MTggMTYuNzIzNiA1LjkxNDM5IDE2Ljc1NTYgNS43NTAwOSAxNi43NTVaIiBmaWxsPSIjZmZmIi8+Cjwvc3ZnPg==');
461
+ }
462
+ }
463
+
464
+ // Buttons
465
+
466
+ button,
467
+ input[type='submit'],
468
+ .btn {
469
+ border-radius: $radius;
470
+ font-weight: $t-bold;
471
+ padding: 0.75rem 1.5rem;
472
+ display: inline-block;
473
+ text-decoration: none;
474
+ margin: 0 0.4375rem 0.875rem 0;
475
+ }
476
+
477
+ button,
478
+ input[type='submit'] {
479
+ border: 3px solid $bright-blue;
480
+ background: $bright-blue;
481
+ color: $white;
482
+ line-height: 1.75;
483
+ &:hover, &:focus {
484
+ background: darken($bright-blue, 10%);
485
+ border-color: darken($bright-blue, 10%);
486
+ }
487
+
488
+ &:active {
489
+ background: darken($bright-blue, 15%);
490
+ border-color: darken($bright-blue, 15%);
491
+ }
492
+
493
+ &:hover, &:active, &:focus, &:visited {
494
+ color: $white;
495
+ text-decoration: none;
496
+ }
497
+ }
498
+
499
+ // Dropdowns
500
+
501
+ select {
502
+ display: block;
503
+ background-repeat: no-repeat;
504
+ -moz-appearance: none;
505
+ -webkit-appearance: none;
506
+ // Background gradient needed for <= IE9
507
+ // See https://www.filamentgroup.com/lab/select-css.html
508
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxOCAxMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguOTYwMDggMTAuNzU1QzguNzk1NzcgMTAuNzU1NiA4LjYzMjk4IDEwLjcyMzYgOC40ODEwOSAxMC42NjFDOC4zMjkyIDEwLjU5ODMgOC4xOTEyMSAxMC41MDYyIDguMDc1MDggMTAuMzlMMC41NzUwNzUgMi44OUMwLjM0MDM1OSAyLjY1NTI4IDAuMjA4NDk2IDIuMzM2OTQgMC4yMDg0OTYgMi4wMDVDMC4yMDg0OTYgMS42NzMwNiAwLjM0MDM1OSAxLjM1NDcxIDAuNTc1MDc1IDEuMTJDMC44MDk3OTIgMC44ODUyOCAxLjEyODE0IDAuNzUzNDE4IDEuNDYwMDggMC43NTM0MThDMS43OTIwMSAwLjc1MzQxOCAyLjExMDM2IDAuODg1MjggMi4zNDUwOCAxLjEyTDguOTYwMDggNy43NEwxNS41NzUxIDEuMTJDMTUuODA5OCAwLjg4NTI4IDE2LjEyODEgMC43NTM0MTggMTYuNDYwMSAwLjc1MzQxOEMxNi43OTIgMC43NTM0MTggMTcuMTEwNCAwLjg4NTI4IDE3LjM0NTEgMS4xMkMxNy41Nzk4IDEuMzU0NzEgMTcuNzExNyAxLjY3MzA2IDE3LjcxMTcgMi4wMDVDMTcuNzExNyAyLjMzNjk0IDE3LjU3OTggMi42NTUyOCAxNy4zNDUxIDIuODlMOS44NDUwOCAxMC4zOUM5LjcyODk0IDEwLjUwNjIgOS41OTA5NSAxMC41OTgzIDkuNDM5MDYgMTAuNjYxQzkuMjg3MTcgMTAuNzIzNiA5LjEyNDM4IDEwLjc1NTYgOC45NjAwOCAxMC43NTVaIiBmaWxsPSIjMUMzRTU3Ii8+Cjwvc3ZnPgo='), linear-gradient(#fff, #fff);
509
+ &:focus {
510
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxOCAxMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguOTYwMDggMTAuNzU1QzguNzk1NzcgMTAuNzU1NiA4LjYzMjk4IDEwLjcyMzYgOC40ODEwOSAxMC42NjFDOC4zMjkyIDEwLjU5ODMgOC4xOTEyMSAxMC41MDYyIDguMDc1MDggMTAuMzlMMC41NzUwNzUgMi44OUMwLjM0MDM1OSAyLjY1NTI4IDAuMjA4NDk2IDIuMzM2OTQgMC4yMDg0OTYgMi4wMDVDMC4yMDg0OTYgMS42NzMwNiAwLjM0MDM1OSAxLjM1NDcxIDAuNTc1MDc1IDEuMTJDMC44MDk3OTIgMC44ODUyOCAxLjEyODE0IDAuNzUzNDE4IDEuNDYwMDggMC43NTM0MThDMS43OTIwMSAwLjc1MzQxOCAyLjExMDM2IDAuODg1MjggMi4zNDUwOCAxLjEyTDguOTYwMDggNy43NEwxNS41NzUxIDEuMTJDMTUuODA5OCAwLjg4NTI4IDE2LjEyODEgMC43NTM0MTggMTYuNDYwMSAwLjc1MzQxOEMxNi43OTIgMC43NTM0MTggMTcuMTEwNCAwLjg4NTI4IDE3LjM0NTEgMS4xMkMxNy41Nzk4IDEuMzU0NzEgMTcuNzExNyAxLjY3MzA2IDE3LjcxMTcgMi4wMDVDMTcuNzExNyAyLjMzNjk0IDE3LjU3OTggMi42NTUyOCAxNy4zNDUxIDIuODlMOS44NDUwOCAxMC4zOUM5LjcyODk0IDEwLjUwNjIgOS41OTA5NSAxMC41OTgzIDkuNDM5MDYgMTAuNjYxQzkuMjg3MTcgMTAuNzIzNiA5LjEyNDM4IDEwLjc1NTYgOC45NjAwOCAxMC43NTVaIiBmaWxsPSIjNEY2NkVFIi8+Cjwvc3ZnPgo='), linear-gradient(#fff, #fff);
511
+ }
512
+ background-size: 18px 11px;
513
+ background-position: right 1rem top 50%;
514
+ padding-right: 3rem;
515
+ border: 2px solid $slate-blue;
516
+
517
+ option {
518
+ font-weight: normal;
519
+ font-size: 100%;
520
+ }
521
+ }
522
+
523
+ select:-moz-focusring {
524
+ color: transparent;
525
+ text-shadow: 0 0 0 $bright-blue;
526
+ }
527
+
528
+ select::-ms-expand {
529
+ // Hide browser-standard chevron on IE
530
+ display: none;
531
+ }
532
+
533
+ option:not(:checked) {
534
+ color: $black;
535
+ }
536
+
537
+ // Section headers
538
+
539
+ @mixin h1 {
540
+ color: $slate-blue;
541
+ font-weight: $t-bold;
542
+ margin: 1.75rem 0 0;
543
+ @include font-size-to-rem(33);
544
+ @include line-height-to-rem(44);
545
+ &.title {
546
+ line-height: normal;
547
+ font-weight: $t-light;
548
+ }
549
+ @media screen and (min-width: 40rem) {
550
+ @include font-size-to-rem(62);
551
+ line-height: normal;
552
+ letter-spacing: -0.3px;
553
+ &.title {
554
+ @include font-size-to-rem(50);
555
+ letter-spacing: 0;
556
+ }
557
+ }
558
+ }
559
+
560
+ @mixin h2 {
561
+ color: $slate-blue;
562
+ font-weight: $t-bold;
563
+ margin: 1.25rem 0 0.875rem;
564
+ @include font-size-to-rem(40);
565
+ line-height: normal;
566
+ }
567
+
568
+ @mixin h3 {
569
+ color: $slate-blue;
570
+ font-weight: $t-bold;
571
+ margin: 1.25rem 0 0.875rem;
572
+ @include font-size-to-rem(30);
573
+ @include line-height-to-rem(42);
574
+ }
575
+
576
+ @mixin h4 {
577
+ font-weight: $t-normal;
578
+ margin: 1.25rem 0 0.875rem;
579
+ @include font-size-to-rem(24);
580
+ @include line-height-to-rem(34);
581
+ }
582
+
583
+ @mixin h5 {
584
+ margin: 1rem 0 0.875rem;
585
+ font-weight: $t-bold;
586
+ @include font-size-to-rem(20);
587
+ @include line-height-to-rem(27);
588
+ }
589
+
590
+ h1 {
591
+ @include h1;
592
+ }
593
+
594
+ h2 {
595
+ @include h2;
596
+ }
597
+
598
+ h3 {
599
+ @include h3;
600
+ }
601
+
602
+ h4 {
603
+ @include h4;
604
+ }
605
+
606
+ h5 {
607
+ @include h5;
608
+ }
609
+
610
+ // Form layout
611
+
612
+ .form-section-header {
613
+ @include h3;
614
+ margin-top: 0;
615
+ }
616
+
617
+ .form-group {
618
+ margin-bottom: 2.5rem;
619
+
620
+ p + &,
621
+ ul + & {
622
+ margin-top: 2rem;
623
+ }
624
+ }
625
+
626
+ .form-content {
627
+ @include contain-1090;
628
+ }
629
+
630
+ .form-content-inner {
631
+ max-width: 38rem;
632
+ }
633
+
634
+ .form-section-nav {
635
+ background: $blue-1;
636
+ border-radius: $radius;
637
+ padding: 4.5rem 0 1.5rem;
638
+
639
+ &::before {
640
+ top: 1.75rem;
641
+ left: 2rem;
642
+ @include h5;
643
+ color: $slate-blue;
644
+ margin-top: 0;
645
+ }
646
+
647
+ li {
648
+ padding: 1rem 2rem;
649
+ color: $bright-blue;
650
+ &.active {
651
+ font-weight: $t-bold;
652
+ background: $bright-blue;
653
+ color: $white;
654
+ @include font-smoothing;
655
+
656
+ &::before {
657
+ content: none;
658
+ }
659
+ }
660
+ }
661
+ }
662
+
663
+ @media screen and (min-width: 40rem), screen and (min-width: 70rem) {
664
+ .form-horizontal {
665
+ width: 60%;
666
+ }
667
+
668
+ .form-section-nav {
669
+ width: 33%;
670
+ margin-right: 5%;
671
+ }
672
+ }
673
+
674
+ .help-text {
675
+ color: $slate-blue;
676
+ font-size: (15rem / 17);
677
+
678
+ p:first-child {
679
+ margin-top: 0.5rem;
680
+ }
681
+
682
+ p, ul {
683
+ margin: 0;
684
+ }
685
+
686
+ }
687
+
688
+ .has-error .help-block {
689
+ font-size: 1rem;
690
+ background: $red-4;
691
+ color: $white;
692
+ padding: 0.25rem 0.75rem;
693
+ border-radius: $radius;
694
+ display: inline-block;
695
+ @include font-smoothing;
696
+
697
+ li {
698
+ list-style-type: none;
699
+ }
700
+ }
701
+
702
+ .form-section-prev,
703
+ .form-section-next {
704
+ border: 3px solid $bright-blue;
705
+ color: $bright-blue;
706
+ background-size: 20px 16px;
707
+ font-weight: $t-bold;
708
+
709
+ &:hover, &:focus, &:active {
710
+ box-shadow: 0 0 0 1px $bright-blue;
711
+ background-color: rgba($bright-blue, 0.05);
712
+ }
713
+ }
714
+
715
+ .form-section-prev {
716
+ padding-left: 3rem;
717
+ background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuMzY0NjggOC44ODQ5M0w2LjcyOTY4IDE1LjI0OTlDNi44Mzk5MiAxNS4zODQ2IDYuOTc3MDUgMTUuNDk0NyA3LjEzMjI5IDE1LjU3MzNDNy4yODc1NCAxNS42NTE5IDcuNDU3NDkgMTUuNjk3MiA3LjYzMTI1IDE1LjcwNjNDNy44MDUwMSAxNS43MTU0IDcuOTc4NzcgMTUuNjg4MiA4LjE0MTM5IDE1LjYyNjNDOC4zMDQwMiAxNS41NjQ0IDguNDUxOTMgMTUuNDY5MiA4LjU3NTY3IDE1LjM0NjlDOC42OTk0MSAxNS4yMjQ2IDguNzk2MjQgMTUuMDc3NyA4Ljg1OTk3IDE0LjkxNThDOC45MjM3IDE0Ljc1MzkgOC45NTI5MiAxNC41ODA1IDguOTQ1NzcgMTQuNDA2NkM4LjkzODYxIDE0LjIzMjggOC44OTUyNCAxNC4wNjIzIDguODE4NDMgMTMuOTA2MkM4Ljc0MTYxIDEzLjc1MDEgOC42MzMwNSAxMy42MTE3IDguNDk5NjggMTMuNDk5OUw0LjI2OTY4IDkuMjQ5OTNIMTguNzY5N0MxOS4xMDEyIDkuMjQ5OTMgMTkuNDE5MSA5LjExODIzIDE5LjY1MzYgOC44ODM4MUMxOS44ODggOC42NDkzOSAyMC4wMTk3IDguMzMxNDUgMjAuMDE5NyA3Ljk5OTkzQzIwLjAxOTcgNy42Njg0MSAxOS44ODggNy4zNTA0NiAxOS42NTM2IDcuMTE2MDRDMTkuNDE5MSA2Ljg4MTYyIDE5LjEwMTIgNi43NDk5MyAxOC43Njk3IDYuNzQ5OTNINC4yNjk2OEw4LjQ5OTY4IDIuNDk5OTNDOC42OTY5IDIuMjU5MDcgOC43OTcxNSAxLjk1MzMgOC43ODA4MiAxLjY0MjQzQzguNzY0NDkgMS4zMzE1NyA4LjYzMjc1IDEuMDM3OTggOC40MTEzOCAwLjgxOTExOEM4LjE5MDAyIDAuNjAwMjUzIDcuODk0OTUgMC40NzE4NjIgNy41ODM5MiAwLjQ1OTA2NUM3LjI3Mjg5IDAuNDQ2MjY5IDYuOTY4MjggMC41NDk5ODcgNi43Mjk2OCAwLjc0OTkyN0wwLjM2NDY4IDcuMTE0OTNDMC4xMzA3OTggNy4zNTAwOSAtMC4wMDA0ODgyODEgNy42NjgyNiAtMC4wMDA0ODgyODEgNy45OTk5M0MtMC4wMDA0ODgyODEgOC4zMzE1OSAwLjEzMDc5OCA4LjY0OTc3IDAuMzY0NjggOC44ODQ5M1oiIGZpbGw9IiM0RjY2RUUiLz4KPC9zdmc+Cg==')left 1rem top 50% no-repeat;
718
+ }
719
+
720
+ .form-section-next {
721
+ padding-right: 3rem;
722
+ background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5LjYzNSA3LjExNDkzTDEzLjI3IDAuNzQ5OTI3QzEzLjAzMTQgMC41NDk5ODcgMTIuNzI2OCAwLjQ0NjI2OSAxMi40MTU4IDAuNDU5MDY1QzEyLjEwNDcgMC40NzE4NjIgMTEuODA5NyAwLjYwMDI1MyAxMS41ODgzIDAuODE5MTE4QzExLjM2NjkgMS4wMzc5OCAxMS4yMzUyIDEuMzMxNTcgMTEuMjE4OSAxLjY0MjQzQzExLjIwMjUgMS45NTMzIDExLjMwMjggMi4yNTkwNyAxMS41IDIuNDk5OTNMMTUuNzMgNi43Mjk5M0gxLjI1QzAuOTE4NDc5IDYuNzI5OTMgMC42MDA1MzcgNi44NjE2MiAwLjM2NjExNyA3LjA5NjA0QzAuMTMxNjk2IDcuMzMwNDYgMCA3LjY0ODQxIDAgNy45Nzk5M0MwIDguMzExNDUgMC4xMzE2OTYgOC42MjkzOSAwLjM2NjExNyA4Ljg2MzgxQzAuNjAwNTM3IDkuMDk4MjMgMC45MTg0NzkgOS4yMjk5MyAxLjI1IDkuMjI5OTNIMTUuNzVMMTEuNSAxMy40OTk5QzExLjI2NTMgMTMuNzM0NiAxMS4xMzM0IDE0LjA1MyAxMS4xMzM0IDE0LjM4NDlDMTEuMTMzNCAxNC43MTY5IDExLjI2NTMgMTUuMDM1MiAxMS41IDE1LjI2OTlDMTEuNzM0NyAxNS41MDQ2IDEyLjA1MzEgMTUuNjM2NSAxMi4zODUgMTUuNjM2NUMxMi43MTY5IDE1LjYzNjUgMTMuMDM1MyAxNS41MDQ2IDEzLjI3IDE1LjI2OTlMMTkuNjM1IDguODg0OTNDMTkuODY4OSA4LjY0OTc3IDIwLjAwMDIgOC4zMzE1OSAyMC4wMDAyIDcuOTk5OTNDMjAuMDAwMiA3LjY2ODI2IDE5Ljg2ODkgNy4zNTAwOSAxOS42MzUgNy4xMTQ5M1oiIGZpbGw9IiM0RjY2RUUiLz4KPC9zdmc+Cg==') right 1rem top 50% no-repeat;
723
+ }
724
+
725
+ .btn.submit {
726
+ float: right;
727
+ }
728
+
729
+ // Field-specific styles
730
+
731
+ .field-number {
732
+ input, .units {
733
+ display: inline-block;
734
+ }
735
+
736
+ .units {
737
+ margin-left: 0.5rem;
738
+ }
739
+ }
740
+
741
+ .field-price {
742
+ input {
743
+ width: 10rem;
744
+ }
745
+
746
+ input, .dollar {
747
+ display: inline-block;
748
+ }
749
+
750
+ .dollar {
751
+ font-weight: $t-light;
752
+ font-size: 3rem;
753
+ line-height: 1;
754
+ position: relative;
755
+ top: 0.75rem;
756
+ margin-right: 0.5rem;
757
+ color: $slate-blue;
758
+ }
759
+ }
760
+
761
+ .field-address {
762
+ label {
763
+ font-size: (15rem / 17);
764
+ margin: 0 0 0.25rem;
765
+ }
766
+
767
+ input {
768
+ margin-bottom: 0.75rem;
769
+ }
770
+ }
771
+
772
+ .optional {
773
+ opacity: 0.8;
774
+ }
775
+
776
+ .other-label {
777
+ margin-top: 0.5rem;
778
+ }
779
+
780
+ .other-label,
781
+ .other-input {
782
+ display: inline-block;
783
+ }
784
+
785
+ .other-input label {
786
+ font-size: 0;
787
+ height: 0;
788
+ margin: 0;
789
+ }
790
+
791
+ .other-input input {
792
+ margin-top: 0.25rem;
793
+ margin-left: 0.5rem;
794
+ font-size: 0.88rem;
795
+ line-height: 1;
796
+ padding: 0.5rem;
797
+ height: 2.5rem;
798
+ }
799
+
800
+ @media screen and (min-width: 48rem) {
801
+ .field-address-state,
802
+ .field-address-zip {
803
+ display: inline-block;
804
+ }
805
+
806
+ .field-address-state {
807
+ margin-right: 0.75rem;
808
+ }
809
+ }
810
+
811
+ .field-link {
812
+ a {
813
+ display: block;
814
+ border: 3px solid $bright-blue;
815
+ padding: 2rem;
816
+ @include h5;
817
+ color: $bright-blue;
818
+ text-decoration: none;
819
+ border-radius: 8px;
820
+ }
821
+ }
822
+
823
+ .field-file {
824
+ label {
825
+ position: relative;
826
+ display: inline-block;
827
+ cursor: pointer;
828
+ height: 6.5rem;
829
+ }
830
+
831
+ input {
832
+ min-width: 14rem;
833
+ margin: 0;
834
+ filter: alpha(opacity=0);
835
+ opacity: 0;
836
+ }
837
+
838
+ .file-custom {
839
+ font-size: 1rem;
840
+ position: absolute;
841
+ padding-top: 2.75rem;
842
+ top: 0;
843
+ right: 0;
844
+ left: 0;
845
+ z-index: 5;
846
+ -webkit-user-select: none;
847
+ -moz-user-select: none;
848
+ -ms-user-select: none;
849
+ user-select: none;
850
+
851
+ &::after {
852
+ content: attr(data-filename);
853
+ }
854
+
855
+ &::before {
856
+ @extend button;
857
+ z-index: 6;
858
+ content: "Choose a file";
859
+ background: $white;
860
+ color: $bright-blue;
861
+ background-size: 20px 16px;
862
+ font-weight: $t-bold;
863
+ }
864
+
865
+ &:hover, &:focus, &:active {
866
+ &::before {
867
+ box-shadow: inset 0 0 0 2px darken($bright-blue, 10%);
868
+ color: darken($bright-blue, 10%);
869
+ background-color: rgba($bright-blue, 0.05);
870
+ color: $bright-blue;
871
+ }
872
+ }
873
+ }
874
+ }
875
+
876
+ // Field length
877
+
878
+
879
+ @for $i from 1 to 16 {
880
+ .length-#{$i} {
881
+ width: 2.5rem + (0.65rem * $i);
882
+ margin-bottom: 1rem;
883
+ }
884
+ }
885
+
886
+ @import 'sfgov';