pageflow-text-page 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,674 @@
1
+ @include pageflow-page-type(text_page);
2
+
3
+ $nav-bar-margin: 85px;
4
+
5
+ $inverted-background-color: black;
6
+
7
+ @mixin pageflow-text-page-block-image {
8
+ @include wide_desktop {
9
+ width: 42%;
10
+ }
11
+ @include narrow_desktop {
12
+ display: block;
13
+ position: relative;
14
+ top: 0 !important;
15
+ width: auto;
16
+ margin: 0 0 1em 0;
17
+ padding: 0;
18
+ /*padding-right: 20px; */
19
+ float: none;
20
+ max-width: 100%;
21
+ @content;
22
+ }
23
+ }
24
+
25
+ .page .text_page, .js .page .text_page, .js .page:first-child .text_page, .page:first-child .text_page {
26
+
27
+ .backgroundArea {
28
+
29
+ .fixed_header_area {
30
+ position: absolute;
31
+ width: 100%;
32
+ .page_header_wrapper {
33
+ padding: 200px 12% 0% 8%;
34
+ @include mobile {
35
+ padding: 85px 12% 0% 8%;
36
+ }
37
+
38
+ .page_header {
39
+
40
+ h2 {
41
+ margin: 0;
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+
48
+ .scroller, .scroller {
49
+ > div {
50
+ padding: 0;
51
+ position: relative;
52
+
53
+ width: auto;
54
+
55
+ .contentInnerWrapper {
56
+ position: relative;
57
+ color: black;
58
+
59
+ .content_background_layer {
60
+ height: 100%;
61
+ position: absolute;
62
+ top: 0;
63
+ left: 0;
64
+ width: 100%;
65
+ content: "";
66
+ display: block;
67
+ background-color: white;
68
+ z-index: -1;
69
+ }
70
+
71
+ .page_header {
72
+ position: absolute;
73
+ bottom: 100%;
74
+ width: 100%;
75
+ color: white;
76
+ display: none;
77
+
78
+ h2 {
79
+ text-align:center;
80
+ padding: 2em 0;
81
+ margin: 0;
82
+ span {
83
+ margin: 0 auto;
84
+ }
85
+
86
+ padding-right: $nav-bar-margin;
87
+
88
+ @include pad_portrait {
89
+ padding-right: 0;
90
+ }
91
+
92
+ }
93
+
94
+ .header_background_layer {
95
+ content: "";
96
+ position: absolute;
97
+ width: 100%;
98
+ height: 100%;
99
+ top: 0;
100
+ left: 0;
101
+ background-color: black;
102
+ opacity: 1;
103
+ z-index: -1;
104
+ }
105
+ }
106
+
107
+ .contentText > * {
108
+ margin: 0 auto;
109
+
110
+ @include phone {
111
+ margin: 0;
112
+ }
113
+ }
114
+
115
+ .contentText {
116
+ font-size: 0.8em;
117
+ max-width: 500px;
118
+ margin: auto;
119
+ min-height: 300px;
120
+ padding: 6em 0 12em 0;
121
+ box-sizing: border-box;
122
+
123
+ @include phone {
124
+ max-width: 84%;
125
+ font-size: 1em;
126
+ }
127
+
128
+ padding-right: $nav-bar-margin;
129
+
130
+ @include pad_portrait {
131
+ padding-right: 0;
132
+ }
133
+
134
+ h3 {
135
+ width: 100%;
136
+ padding-bottom: 2em;
137
+ font-size: 1.5em;
138
+ }
139
+
140
+ @include pad_portrait {
141
+ padding-right: 0;
142
+ }
143
+
144
+ .inline_image {
145
+ max-width: 380px;
146
+ height: auto;
147
+ background-size: cover;
148
+ background-position: center;
149
+ float: right;
150
+ position: relative;
151
+ display: block;
152
+ margin-left: 20px;
153
+ margin-top: 0px;
154
+ margin-bottom: 20px;
155
+ margin-right: -70px;
156
+ pointer-events: all;
157
+ cursor: default;
158
+ text-decoration: none;
159
+
160
+ &.allow_fullscreen {
161
+ cursor: pointer;
162
+ }
163
+
164
+ padding: 0;
165
+
166
+ &.no_image_assigned {
167
+ display: none;
168
+ }
169
+
170
+ @include phone {
171
+ float: none;
172
+ width: 100%;
173
+ max-width: 500px;
174
+ margin: 0 0 1em 0;
175
+ }
176
+
177
+ .default-image {
178
+ height: 196px;
179
+ background: #efefef;
180
+ }
181
+ img {
182
+ width: 100%;
183
+ height: auto;
184
+ display:block;
185
+ border: 0;
186
+ outline: 0;
187
+ }
188
+ div {
189
+ background-color: black;
190
+ width: auto;
191
+ color: white;
192
+
193
+ span {
194
+ padding: 10px;
195
+ display: block;
196
+ }
197
+ }
198
+
199
+ &:before, &:after {
200
+ display: none;
201
+ }
202
+ div.bigscreen_toggler {
203
+ width: 30px;
204
+ height: 31px;
205
+ background-image: image-url('pageflow/text_page/fs_close_sprite.png');
206
+ background-position: 0 0;
207
+ background-repeat: no-repeat;
208
+ position: absolute;
209
+ background-color: none;
210
+ background-color: transparent;
211
+ top: 18px;
212
+ right: 18px;
213
+ color: transparent;
214
+ text-indent: -4000px;
215
+ opacity: 0;
216
+ cursor: pointer;
217
+ display: none;
218
+
219
+ @include transition(opacity 0.5s ease);
220
+
221
+ .has_mobile_platform & {
222
+ opacity: 1;
223
+ }
224
+
225
+ }
226
+
227
+ &.allow_fullscreen {
228
+ div.bigscreen_toggler {
229
+ display: block;
230
+ }
231
+
232
+ &:hover div.bigscreen_toggler {
233
+ opacity: 1;
234
+ }
235
+ }
236
+ }
237
+ p {
238
+ width: 100%;
239
+ }
240
+ }
241
+ }
242
+ }
243
+
244
+ &.inline_text_position_left {
245
+ > div .contentInnerWrapper .contentText {
246
+ margin-left: 8%;
247
+ padding-right: 0;
248
+
249
+ .inline_image {
250
+ float: none;
251
+ position: absolute;
252
+ right: 0;
253
+ width: 35%;
254
+ margin-right: 8%;
255
+ max-width: 42%;
256
+
257
+ @include pageflow-text-page-block-image;
258
+ }
259
+ }
260
+ }
261
+
262
+ &.inline_text_position_right {
263
+ > div .contentInnerWrapper .contentText {
264
+ margin-right: 12%;
265
+ padding-right: 0;
266
+
267
+ .inline_image {
268
+ float: none;
269
+ position: absolute;
270
+ left: 0;
271
+ width: 35%;
272
+ margin-right: auto;
273
+ margin-left: 8%;
274
+ max-width: 42%;
275
+
276
+ @include pageflow-text-page-block-image;
277
+ }
278
+ }
279
+ }
280
+ }
281
+ }
282
+
283
+ .text_position_center, .text_position_right .text_position_center {
284
+ .text_page {
285
+ .shadow {
286
+ display: none !important;
287
+ }
288
+ .fixed_header_area {
289
+ display: none !important;
290
+ }
291
+ .contentInnerWrapper .page_header {
292
+ display: block !important;
293
+ max-width: initial;
294
+ margin-left: initial;
295
+ }
296
+ }
297
+ }
298
+
299
+ .inline_text_position_center {
300
+ .inline_image {
301
+ float: right;
302
+ margin-right: -80px;
303
+ margin-left: 30px;
304
+
305
+ @include phone {
306
+ float: none;
307
+ width: 100%;
308
+ margin: 0 0 1em 0;
309
+ }
310
+ }
311
+ }
312
+
313
+ .page .text_page, .js .page .text_page, .js .page:first-child .text_page, .page:first-child .text_page {
314
+ &.content_and_background.sticky_inline_image .inline_text_position_center.scroller .contentWrapper {
315
+ .inline_image {
316
+ position: absolute;
317
+ display: inline-block;
318
+ left: 50%;
319
+ width: 35%;
320
+ max-width: 500px;
321
+ margin: 0 0 0 50px;
322
+ padding: 0 0 2em 0;
323
+
324
+ @include narrow_desktop {
325
+ display: block;
326
+ position: static;
327
+ left: auto;
328
+ width: auto;
329
+ max-width: auto;
330
+ margin: 0 0 1em 0;
331
+ padding: 0;
332
+ float: none;
333
+ }
334
+ }
335
+
336
+ .contentText {
337
+ @media screen and (min-width: 1101px) {
338
+ max-width: 1000px;
339
+ width: 84%;
340
+
341
+ h3, p {
342
+ margin: 0;
343
+ }
344
+
345
+ @include narrow_desktop {
346
+ width: 500px;
347
+ padding-right: 20px;
348
+ }
349
+ }
350
+ }
351
+ }
352
+ }
353
+
354
+ .invert {
355
+
356
+ .contentInnerWrapper {
357
+
358
+ .page_header {
359
+ border-bottom: 1px solid rgb(216, 216, 216);
360
+
361
+ h2 {
362
+ color: black;
363
+ }
364
+ }
365
+ }
366
+
367
+ .header_background_layer {
368
+ background-color: white !important;
369
+ }
370
+ }
371
+
372
+ .page .text_page, .js .page .text_page {
373
+ .scroller {
374
+ > div {
375
+ .contentText {
376
+ a {
377
+ color: black;
378
+ }
379
+ }
380
+ }
381
+ }
382
+ &.invert_text .scroller {
383
+ > div {
384
+ .contentInnerWrapper {
385
+ color: white;
386
+
387
+ .content_background_layer {
388
+ background-color: black;
389
+ }
390
+ }
391
+
392
+ .contentText {
393
+ a {
394
+ color: white;
395
+ }
396
+ }
397
+ }
398
+ }
399
+ }
400
+
401
+
402
+ .inline_image.out-of-scroller {
403
+ width: 260px;
404
+ height: 260px;
405
+ background-size: cover;
406
+ background-position: center;
407
+ margin-left: 30px;
408
+ margin-top: 0px;
409
+ margin-bottom: 30px;
410
+ margin-right: -80px;
411
+ display: none;
412
+ position: fixed;
413
+ right: 10%;
414
+ top: 50%;
415
+ z-index: 1;
416
+ }
417
+
418
+ .narrow_background {
419
+ .content_background_layer, .header_background_layer {
420
+ width: 800px !important;
421
+ left: 50% !important;
422
+ margin-left: -400px;
423
+ }
424
+ .contentInnerWrapper .contentText .inline_image {
425
+ margin-right: 0 !important;
426
+ }
427
+
428
+ &.text_position_right {
429
+ .contentInnerWrapper .contentText .inline_image {
430
+ margin-left: 0 !important;
431
+ }
432
+ }
433
+ }
434
+ .transparent_background {
435
+ .content_background-layer, .header_background-layer {
436
+ opacity: 0.9 !important;
437
+ }
438
+ }
439
+
440
+ .slideshow section.fade[data-template="text_page"] {
441
+
442
+ .blackLayer {
443
+ display: none;
444
+ }
445
+ .backgroundArea {
446
+ background-color: black;
447
+ -webkit-backface-visibility: hidden;
448
+ opacity: 1;
449
+ }
450
+
451
+ &.invert .backgroundArea {
452
+ background-color: white;
453
+ }
454
+
455
+ .content_and_background {
456
+ @include transition(1s ease);
457
+ }
458
+
459
+ &.active.animate-in-forwards .content_and_background {
460
+ opacity: 1;
461
+ }
462
+
463
+ &.animate-in-forwards .content_and_background {
464
+ opacity: 0;
465
+ }
466
+ &.animate-out-forwards .content_and_background {
467
+ opacity: 1;
468
+ }
469
+ &.animate-in-backwards .content_and_background{
470
+ opacity: 1;
471
+ }
472
+ &.animate-out-backwards .content_and_background{
473
+ opacity: 0;
474
+ }
475
+
476
+ &.active.animate-in-forwards .backgroundArea {
477
+ opacity: 1;
478
+ }
479
+
480
+ &.animate-in-forwards .backgroundArea {
481
+ opacity: 1;
482
+ }
483
+ &.animate-out-forwards .backgroundArea{
484
+ opacity: 1;
485
+ }
486
+ &.animate-in-backwards .backgroundArea{
487
+ opacity: 1;
488
+ }
489
+ &.animate-out-backwards .backgroundArea{
490
+ opacity: 1;
491
+ }
492
+
493
+ div.content {
494
+ @include transition(1s ease);
495
+ -webkit-backface-visibility: hidden;
496
+ @include transform(translate3d(0,0,0));
497
+ }
498
+
499
+ &.active.animate-in-forwards div.content {
500
+ opacity: 1;
501
+ pointer-events: none;
502
+ @include transform(translate3d(0,0,0));
503
+ }
504
+
505
+ &.animate-in-forwards {
506
+ div.content {
507
+ pointer-events: none;
508
+ opacity: 1;
509
+ @include transform(translate3d(0,0,0));
510
+ }
511
+ }
512
+ &.animate-out-forwards {
513
+ div.content {
514
+ opacity: 1;
515
+ pointer-events: none;
516
+ @include transform(translate3d(0,0,0));
517
+ }
518
+ }
519
+ &.animate-in-backwards {
520
+ .content {
521
+ opacity: 1;
522
+ pointer-events: none;
523
+ @include transform(translate3d(0,0,0));
524
+ }
525
+ }
526
+ &.animate-out-backwards {
527
+ .content {
528
+ opacity: 1;
529
+ pointer-events: none;
530
+ @include transform(translate3d(0,0,0));
531
+ }
532
+ }
533
+ }
534
+
535
+ .slideshow {
536
+ .text_page p, h3 span, .inline_image_text span, .fixed_header_area .page_header_wrapper {
537
+ @include transition(0.5s ease);
538
+ }
539
+ .hiddenByOverlay .text_page {
540
+ .content {
541
+ opacity: 1;
542
+ p, h3 span, .inline_image_text span {
543
+ opacity: 0;
544
+ }
545
+ }
546
+ .fixed_header_area .page_header_wrapper {
547
+ opacity: 0;
548
+ }
549
+ }
550
+ }
551
+
552
+ section.hide_title {
553
+ .fixed_header_area {
554
+ display: none;
555
+ height: 0;
556
+ }
557
+ .contentInnerWrapper .page_header {
558
+ border: 0;
559
+ }
560
+ }
561
+
562
+ .hideText {
563
+ .text_page .shadow {
564
+ opacity: 0 !important;
565
+ -webkit-transition: 0.8s ease !important;
566
+ -moz-transition: 0.8s ease !important;
567
+ -ms-transition: 0.8s ease !important;
568
+ transition: 0.8s ease !important;
569
+ visibility: hidden;
570
+ }
571
+
572
+ .text_page .fixed_header_area .page_header_wrapper {
573
+ opacity: 0;
574
+ }
575
+
576
+ .text_page .content .contentWrapper {
577
+ @include transform(none);
578
+ }
579
+ }
580
+
581
+ .image_fullscreen_view {
582
+ position: absolute;
583
+ height: 100%;
584
+ width: 100%;
585
+ top: 0;
586
+ color: black;
587
+ background-color: white;
588
+ background-color: rgba(255, 255, 255, 0.95);
589
+ text-align: center;
590
+ top: 0;
591
+ left: 0;
592
+ z-index: 1;
593
+ display: none;
594
+
595
+ .bigScreen & {
596
+ display: block;
597
+ }
598
+
599
+ .image_fullscreen_wrapper {
600
+ width: 90%;
601
+ height: 90%;
602
+ position: absolute;
603
+ top: 5%;
604
+ left: 5%;
605
+ cursor: pointer;
606
+
607
+ .image_fullscreen_inner_wrapper {
608
+ position: relative;
609
+ display: inline-block;
610
+ height: 100%;
611
+
612
+ @include desktop {
613
+ margin-right: 85px;
614
+ }
615
+ @include pad_portrait {
616
+ margin-right: 0;
617
+ }
618
+
619
+ img {
620
+ max-width: 100%;
621
+ max-height: 100%;
622
+ position: relative;
623
+ top: 50%;
624
+ transform: translate(0,-50%);
625
+ }
626
+ }
627
+
628
+ .inline_image_text {
629
+ position: absolute;
630
+ bottom: 0;
631
+ background-color: black;
632
+ color: white;
633
+ padding: 15px 2%;
634
+ text-align: left;
635
+ width: 96%;
636
+ }
637
+ }
638
+ .invert_text & {
639
+ background-color: black;
640
+ background-color: rgba(0, 0, 0, 0.95);
641
+ }
642
+ }
643
+
644
+ .js .text_page .close_button, .js .invert .text_page .close_button {
645
+ @include mobile {
646
+ display: none;
647
+ }
648
+
649
+ @include pad_portrait {
650
+ display: none;
651
+ }
652
+ }
653
+
654
+ .js .text_page .close_button .label {
655
+ color: #2b2b2b;
656
+ text-shadow: 1px 1px 4px #fff;
657
+ }
658
+
659
+ .js .text_page.invert_text .close_button .label {
660
+ color: #FFFEFE;
661
+ text-shadow: 1px 1px 4px #2b2b2b;
662
+ }
663
+
664
+ .overview .ov_page {
665
+ &.text_page .pictogram {
666
+ background-image: image-url('pageflow/ov-text.png');
667
+ }
668
+ }
669
+
670
+ .navigation_mobile {
671
+ .text_page:after {
672
+ background-image: image-url('pageflow/text_sprite.png');
673
+ }
674
+ }
@@ -0,0 +1,37 @@
1
+ module Pageflow
2
+ module TextPage
3
+ module ImageHelper
4
+ def content_image(id, alt, format = :medium)
5
+ image = Pageflow::ImageFile.find_by_id(id)
6
+ if image
7
+ image_tag(image.attachment.url(:medium))
8
+ else
9
+ ''
10
+ end
11
+ end
12
+
13
+ def content_image_large(id, alt, format = :large)
14
+ image = Pageflow::ImageFile.find_by_id(id)
15
+ if image
16
+ image_tag(image.attachment.url(:large))
17
+ else
18
+ ''
19
+ end
20
+ end
21
+
22
+ def fullscreen_image_url(id, format = :large)
23
+ image = Pageflow::ImageFile.find_by_id(id)
24
+ if image
25
+ return image.attachment.url(:large)
26
+ else
27
+ '#'
28
+ end
29
+ end
30
+
31
+ def content_image_present_css_class(id)
32
+ image = Pageflow::ImageFile.find_by_id(id)
33
+ image ? '' : 'no_background_image'
34
+ end
35
+ end
36
+ end
37
+ end