prettydocs-jekyll 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bbd230ca23c23928440527f9688e75961f01352c
4
- data.tar.gz: 8f68f901c9d0b333ff449673c07f0ddc7cada8c5
3
+ metadata.gz: bc7b42bbe2e3bfd84289bd8eb5d9af9c8da23f18
4
+ data.tar.gz: dbce1ffdf00e0719cde4ca8ccdc1877936a7ffb2
5
5
  SHA512:
6
- metadata.gz: 1ebe62d28d3be9099787173de672af8a8c149797bb4d5185d7662fb7a81450bfd151b8977b2d54b4e3b378b24832bdcab5e8021fa6a627a16f6d45468d67cecd
7
- data.tar.gz: 61d6e1d1af90b391ad632bbf84195e07e3c558e8ea4a0b645c23940d2020db47b28f967e53ee71fe635b2a744777967eb4cfe0bd4d29ca96a69e3643689dceb1
6
+ metadata.gz: 46215c4ae1ddca6eb6a08d4499ee18f51a5efdbcfc11d23f11a3cc9337d2dd9c69f4f307e13735c32d47afe53420b22cb6a2304f86141c63f54931883bfb78cc
7
+ data.tar.gz: 5184273077a94b0cde56a0efc15e2b5e20ba72e8a4593268fd09ee3b87634447381c027b0e5ccb8263a4cfce35464e34a7d7976c2cff3f871f5553a593643727
@@ -0,0 +1,39 @@
1
+ {% capture strip_whitespace %}
2
+
3
+ # Set all the things
4
+
5
+ {% capture width %}{% if page.width %}{{ page.width }}{% else %}{{ site.default_width }}{% endif %}{% endcapture %}
6
+ {% capture lang %}{% if page.lang %}{{ page.lang }}{% else %}{{ site.default_lang }}{% endif %}{% endcapture %}
7
+ {% capture body_class %}{% if page.body_class %}{{ page.body_class }}{% else %}{{ site.default_body_class }}{% endif %}{% endcapture %}
8
+
9
+ {% capture author_name %}{% if page.author %}{% if page.author.name %}{{ page.author.name }}{% else %}{{ page.author }}{% endif %}{% else %}{{ site.author.name }}{% endif %}{% endcapture %}
10
+ {% capture author_url %}{% if page.author %}{{ page.author.url }}{% else %}{% if site.author.url %}{{ site.author.url }}{% endif %}{% endif %}{% endcapture %}
11
+
12
+ {% capture company_name %}{% if page.author.company %}{% if page.author.company.name %}{{ page.author.company.name }}{% else %}{{ page.author.company }}{% endif %}{% elsif page.company %}{% if page.company.name %}{{ page.company.name }}{% else %}{{ page.company }}{% endif %}{% else %}{{ site.author.company.name }}{% endif %}{% endcapture %}
13
+ {% capture company_url %}{% if page.author.company %}{{ page.author.company.url }}{% elsif page.company %}{{ page.company.url }}{% else %}{% if site.author.company.url %}{{ site.author.company.url }}{% endif %}{% endif %}{% endcapture %}
14
+
15
+ {% capture title %}{% if page.title %}{{ page.title }}{% else %}{{ supertitle }}{% endif %}{% endcapture %}
16
+
17
+ {% capture subtitle %}{% if page.subtitle %}{{ page.subtitle }}{% else %}{% if author_url != '' %}[{{ author_name }}]({{ author_url }}){% else %}{{ author_name }}{% endif %}{% if company_name != '' %}, {% if company_url != '' %}[{{ company_name }}]({{ company_url }}){% else %}{{ company_name }}{% endif %}{% endif %}{% endif %}{% endcapture %}{% capture subtitle %}{{ subtitle | markdownify }}{% endcapture %}
18
+
19
+ {% capture fork_url %}{% if page.fork_url %}{{ page.fork_url }}{% else %}{{ site.fork_url }}{% endif %}{% endcapture %}
20
+
21
+ ## Set the progress var
22
+
23
+ {% assign progress = page.progress | append:'' | size %}
24
+ {% if progress == 0 %}
25
+ {% assign progress = site.progress %}
26
+ {% else %}
27
+ {% assign progress = page.progress %}
28
+ {% endif %}
29
+
30
+ ## Set the line numbers var
31
+
32
+ {% assign line_numbers = page.line_numbers | append:'' | size %}
33
+ {% if line_numbers == 0 %}
34
+ {% assign line_numbers = site.line_numbers %}
35
+ {% else %}
36
+ {% assign line_numbers = page.line_numbers %}
37
+ {% endif %}
38
+
39
+ {% endcapture %}
@@ -0,0 +1,125 @@
1
+ {% capture strip_whitespace %}
2
+ {% include _shower/setup.md %}
3
+ {% assign items = showerify_input | split:'<h1' %}
4
+ {% for item in items %}
5
+ {% assign subitems = item | split:'</h1>' %}
6
+ {% assign subsubitems = subitems[0] %}
7
+
8
+ {% capture subsubitems2 %}{{ subsubitems }}{% endcapture %}
9
+ {% assign subsubitems2 = subsubitems2 | split: '>' %}
10
+ {% assign lol = subsubitems2[0] | append:">" %}
11
+ {% capture supertitle %}{{ subsubitems | remove_first:lol }}{% endcapture %}
12
+ {% endfor %}
13
+
14
+ {% assign flag = false %}
15
+ {% for item in items %}
16
+ {% capture h1_attrs %}{{ item | split:'>' | first }}{% endcapture %}
17
+ {% if flag != false %}
18
+ {% capture showerify_middle %}<section{{ h1_attrs | replace_first:'class="','class="slide ' }}{% unless h1_attrs contains 'class' %} class="slide cover"{% endunless %}><div><h2{% endcapture %}
19
+ {% assign slides = item | remove_first:h1_attrs | replace_first:'</h1>','</h2>' | split: '<h2' %}
20
+
21
+ {% assign flag = false %}
22
+ {% for slide in slides %}
23
+ {% capture slide_attrs %}{{ slide | split:'>' | first }}{% endcapture %}
24
+
25
+ <!-- Looking for strong in header for shout -->
26
+ {% capture slide_header_content %}^BEGIN^{{ slide | remove_first:slide_attrs | split:'</h2>' | first }}$END${% endcapture %}
27
+ {% assign slide_extra_class = '' %}
28
+ {% if slide_header_content contains '^BEGIN^><strong>' and slide_header_content contains '</strong>$END$' %}
29
+ {% assign slide_extra_class = ' shout' %}
30
+ {% endif %}
31
+
32
+ {% if flag == false %}
33
+ {% capture showerify_middle %}{{ showerify_middle }}{{ slide }}{% endcapture %}
34
+ {% assign flag = true %}
35
+ {% else %}
36
+ {% capture showerify_middle %}{{ showerify_middle }}</div></section>
37
+ <section class="slide{{ slide_extra_class }}"{{ slide_attrs }}><div><h2{% endcapture %}
38
+ {% assign newslide = slide | remove_first:slide_attrs %}
39
+ {% if slide_extra_class %}
40
+ {% assign newslide = newslide | replace_first:'><strong>','>' %}
41
+ {% assign newslide = newslide | replace_first:'</strong></h2>','</h2>' %}
42
+ {% endif %}
43
+ {% capture showerify_middle %}{{ showerify_middle }}{{ newslide }}{% endcapture %}
44
+ {% endif %}
45
+ {% endfor %}
46
+ {% capture showerify_middle %}{{ showerify_middle }}</div></section>{% endcapture %}
47
+ {% else %}
48
+ {% assign flag = true %}
49
+ {% endif %}
50
+ {% endfor %}
51
+ <!-- There is a difference between Liquid 1.4.1 and 1.5.0 in replace syntax, and in 1.4.1 you can't chain the one that is only there in 1.5.0, so multiple assigns there -->
52
+ {% assign showerify_middle = showerify_middle | replace:'class="slide" class="','class="slide ' %}
53
+ {% assign showerify_middle = showerify_middle | replace:'&lt;/mark&gt;','</mark>' %}
54
+ {% assign showerify_middle = showerify_middle | replace:'&lt;mark&gt;','<mark>' %}
55
+ {% assign showerify_middle = showerify_middle | replace:'&lt;mark class="next"&gt;','<mark class="next">' %}
56
+ {% assign showerify_middle = showerify_middle | replace:'&lt;mark class="comment"&gt;','<mark class="comment">' %}
57
+ {% assign showerify_middle = showerify_middle | replace:'&lt;mark class="important"&gt;','<mark class="important">' %}
58
+
59
+ <!-- Replacing inline “comment” with <footer> -->
60
+ {% assign footers = showerify_middle | split:'<p>// ' %}
61
+ {% assign iteration = 0 %}
62
+ {% for footer in footers %}
63
+ {% if iteration > 0 %}
64
+ {% assign footer_content = footer | split:'</p>' | first %}
65
+ {% capture footer_oldcontent %}<p>// {{ footer_content }}</p>{% endcapture %}
66
+ {% capture footer_newcontent %}<footer>{{ footer_content }}</footer>{% endcapture %}
67
+ {% assign showerify_middle = showerify_middle | replace_first:footer_oldcontent,footer_newcontent %}
68
+ {% endif %}
69
+ {% assign iteration = iteration | plus:1 %}
70
+ {% endfor %}
71
+
72
+ <!-- The same thing, but this time for comment without the space -->
73
+ {% assign footers = showerify_middle | split:'<p>//' %}
74
+ {% assign iteration = 0 %}
75
+ {% for footer in footers %}
76
+ {% if iteration > 0 %}
77
+ {% assign footer_content = footer | split:'</p>' | first %}
78
+ {% capture footer_oldcontent %}<p>//{{ footer_content }}</p>{% endcapture %}
79
+ {% capture footer_newcontent %}<footer>{{ footer_content }}</footer>{% endcapture %}
80
+ {% assign showerify_middle = showerify_middle | replace_first:footer_oldcontent,footer_newcontent %}
81
+ {% endif %}
82
+ {% assign iteration = iteration | plus:1 %}
83
+ {% endfor %}
84
+
85
+ <!-- Code with line-numbers -->
86
+ {% if line_numbers %}
87
+ {% assign code_blocks = showerify_middle | split:'<pre><code>' %}
88
+ {% assign iteration = 0 %}
89
+ {% for code_block in code_blocks %}
90
+ {% if iteration > 0 %}
91
+ {% assign code_block_content = code_block | split:'</code></pre>' | first %}
92
+ {% capture code_block_oldcontent %}<pre><code>{{ code_block_content }}</code></pre>{% endcapture %}
93
+ {% assign code_block_newcontent = code_block_oldcontent | newline_to_br | strip_newlines | replace:'<br />','</code><code>' %}
94
+ {% assign code_block_newcontent = code_block_newcontent | replace:'<code></code></pre>','</pre>' %}
95
+ {% assign code_block_newcontent = code_block_newcontent | replace:'<code></code>','<code> </code>' %}
96
+ {% assign showerify_middle = showerify_middle | replace_first:code_block_oldcontent,code_block_newcontent %}
97
+ {% endif %}
98
+ {% assign iteration = iteration | plus:1 %}
99
+ {% endfor %}
100
+ {% endif %}
101
+
102
+ <!-- Adding .next to list items -->
103
+ {% assign showerify_middle = showerify_middle | replace:'>...',' class="next">' %}
104
+ {% assign showerify_middle = showerify_middle | replace:'>&hellip;',' class="next">' %}
105
+ {% assign showerify_middle = showerify_middle | replace:'>…',' class="next">' %}
106
+ {% assign showerify_middle = showerify_middle | replace:' class="next"> ',' class="next">' %}
107
+ {% assign showerify_middle = showerify_middle | replace:'>\...','>...' %}
108
+ {% assign showerify_middle = showerify_middle | replace:'>\&hellip;','>&hellip;' %}
109
+ {% assign showerify_middle = showerify_middle | replace:'>\…','>…' %}
110
+
111
+ <!-- By default all the simple `<th>` are for cols -->
112
+ {% assign showerify_middle = showerify_middle | replace:'<th>','<th scope="col">' %}
113
+ <!-- And all the td starting/ending with asteriks are row ths -->
114
+ {% assign showerify_middle = showerify_middle | replace:'<td>* ','<th scope="row">' %}
115
+ {% assign showerify_middle = showerify_middle | replace:' *</td>','</th>' %}
116
+
117
+ <!-- Kramdown mailto problem -->
118
+ {% assign showerify_middle = showerify_middle | replace:'href="mail:','href="mailto:' %}
119
+
120
+ <!-- Prototype of #3, need to split things here -->
121
+ <!-- is there a way to declare <hr/> with classes/attributes? -->
122
+ {% assign showerify_middle = showerify_middle | replace:'<hr />','</div></section><section class="slide"><div>' %}
123
+
124
+ {% capture showerify_output %}{{ showerify_middle }}{% endcapture %}
125
+ {% endcapture %}
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE HTML>
2
+ {% capture showerify_input %}{{ content }}{% endcapture %}
3
+ {% include _shower/showerify.html %}
4
+ {% include _shower/setup.md %}
5
+ <html lang="{{ lang }}">
6
+ <head>
7
+ <title>{{ title | strip_html }}</title>
8
+ <meta charset="utf-8">
9
+ <meta name="viewport" content="width={% if width %}{{ width }}{% else %}792{% endif %}, user-scalable=no">
10
+ <link id="theme-style" rel="stylesheet" href="{{ "/assets/css/shower.css" | prepend: site.baseurl }}">
11
+ </head>
12
+ <body class="shower {{ body_class }}">
13
+ <header class="caption">
14
+ <h1>{{ title }}</h1>
15
+ {% if subtitle %}{{ subtitle }}{% endif %}
16
+ </header>
17
+ {{ showerify_output }}
18
+ {% if progress %}
19
+ <div class="progress"><div></div></div>
20
+ {% endif %}
21
+ </body>
22
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/shower-core/2.1.0/shower.min.js" integrity="sha256-q52BKo1uAiqrR1kBKY6LWvBcwF4ujCgQokN5u8AwWzQ=" crossorigin="anonymous"></script>
23
+ </html>
@@ -0,0 +1,549 @@
1
+ // Bright theme for Shower HTML presentation engine: github.com/shower/shower
2
+ // Copyright © 2010–2015 Vadim Makeev, pepelsbey.net
3
+ // Licensed under MIT license: github.com/shower/shower/wiki/MIT-License
4
+
5
+ @import 'shower/defaults';
6
+ @import 'shower/fonts';
7
+ @import 'shower/reset';
8
+
9
+ .shower {
10
+ counter-reset:slide;
11
+ font:24px/2 'Open Sans', sans-serif;
12
+ @media print {
13
+ text-rendering:geometricPrecision;
14
+ }
15
+ a {
16
+ color:$color;
17
+ @include underline(currentColor, 0.09);
18
+ text-decoration:none;
19
+ }
20
+ }
21
+
22
+ // Caption
23
+ // -------------------------------
24
+ .caption {
25
+ display:none;
26
+ margin:0 0 60px;
27
+ padding:0 50px 0 0;
28
+ color:#555;
29
+ h1 {
30
+ font:50px 'Open Sans Light', sans-serif;
31
+ }
32
+ }
33
+
34
+ // Badge
35
+ // -------------------------------
36
+ .badge {
37
+ position:absolute;
38
+ top:0;
39
+ right:0;
40
+ display:none;
41
+ overflow:hidden;
42
+ visibility:hidden;
43
+ width:11em;
44
+ height:11em;
45
+ line-height:2.5;
46
+ font-size:15px;
47
+ }
48
+ .badge a {
49
+ position:absolute;
50
+ bottom:50%;
51
+ right:-50%;
52
+ left:-50%;
53
+ visibility:visible;
54
+ background:$color;
55
+ color:#FFF;
56
+ text-align:center;
57
+ transform-origin:50% 100%;
58
+ transform:rotate(45deg) translateY(-1em);
59
+ }
60
+
61
+ // Region
62
+ // -------------------------------
63
+ .region {
64
+ display:none;
65
+ }
66
+
67
+ // Slide
68
+ // -------------------------------
69
+ .slide {
70
+ position:relative;
71
+ width:$width;
72
+ height:$height;
73
+ background:#FFF;
74
+ color:#000;
75
+ -webkit-print-color-adjust:exact;
76
+ -webkit-text-size-adjust:none;
77
+ -moz-text-size-adjust:none;
78
+ -ms-text-size-adjust:none;
79
+ @media print {
80
+ page-break-before:always;
81
+ }
82
+ // Number
83
+ &:after {
84
+ position:absolute;
85
+ right:0;
86
+ bottom:45px;
87
+ left:0;
88
+ color:#AAA;
89
+ counter-increment:slide;
90
+ content:counter(slide);
91
+ text-align:center;
92
+ line-height:1;
93
+ }
94
+ // Inner
95
+ > div {
96
+ position:absolute;
97
+ top:0;
98
+ left:0;
99
+ overflow:hidden;
100
+ padding:$top $right 0 $left;
101
+ width:$width - $left - $right;
102
+ height:$height - $top;
103
+ }
104
+ }
105
+
106
+ // Elements
107
+ // -------------------------------
108
+ .slide {
109
+ // Header
110
+ h2 {
111
+ margin:0 0 58px;
112
+ font:48px/1 'Open Sans Light', sans-serif;
113
+ }
114
+ // Text
115
+ p {
116
+ margin:0 0 48px;
117
+ }
118
+ p.note {
119
+ color:#AAA;
120
+ }
121
+ b, strong {
122
+ font-weight:bold;
123
+ }
124
+ i, em {
125
+ font-style:italic;
126
+ }
127
+ code, kbd, samp {
128
+ padding:5px 7px 1px;
129
+ background:rgba(#000, 0.08);
130
+ color:#000;
131
+ line-height:1;
132
+ font-family:'Anka Coder', monospace;
133
+ }
134
+ mark {
135
+ padding:2px 7px;
136
+ background:$yellow;
137
+ color:#000;
138
+ }
139
+ sub, sup {
140
+ position: relative;
141
+ line-height:0;
142
+ font-size:75%;
143
+ }
144
+ sub {
145
+ bottom:-0.25em;
146
+ }
147
+ sup {
148
+ top:-0.5em;
149
+ }
150
+ // Quote
151
+ blockquote {
152
+ font-style:italic;
153
+ &:before {
154
+ position:absolute;
155
+ margin:-49px 0 0 -100px;
156
+ color:#DDD;
157
+ content:'\201C';
158
+ line-height:1;
159
+ font-size:200px;
160
+ }
161
+ & + figcaption {
162
+ margin:-48px 0 48px;
163
+ font-style:italic;
164
+ font-weight:bold;
165
+ }
166
+ }
167
+ // Lists
168
+ ol, ul {
169
+ margin:0 0 48px;
170
+ counter-reset:list;
171
+ li {
172
+ text-indent:-2em;
173
+ &:before {
174
+ display:inline-block;
175
+ width:2em;
176
+ color:#AAA;
177
+ text-align:right;
178
+ }
179
+ }
180
+ ol, ul {
181
+ margin:0 0 0 2em;
182
+ }
183
+ }
184
+ ul > li:before {
185
+ content:'\2022\00A0\00A0\2009';
186
+ }
187
+ ul > li:lang(ru):before {
188
+ content:'\2014\00A0\2009';
189
+ }
190
+ ol > li:before {
191
+ counter-increment:list;
192
+ content:counter(list)'.\00A0\2009';
193
+ }
194
+ // Code
195
+ pre {
196
+ margin:0 0 45px;
197
+ padding:3px 0 0;
198
+ counter-reset:code;
199
+ white-space:normal;
200
+ tab-size:4;
201
+ code {
202
+ display:block;
203
+ padding:0;
204
+ background:none;
205
+ white-space:pre;
206
+ line-height:2;
207
+ &:before {
208
+ position:absolute;
209
+ margin-left:-50px;
210
+ color:#AAA;
211
+ counter-increment:code;
212
+ content:counter(code, decimal-leading-zero)'.';
213
+ }
214
+ &:only-child:before {
215
+ content:'';
216
+ }
217
+ }
218
+ // Mark
219
+ mark {
220
+ padding:5px 7px 1px;
221
+ &.important {
222
+ background:$color;
223
+ color:#FFF;
224
+ }
225
+ &.comment {
226
+ padding:0;
227
+ background:none;
228
+ color:#AAA;
229
+ }
230
+ }
231
+ }
232
+ // Table
233
+ table {
234
+ margin:0 0 50px;
235
+ width:100%;
236
+ border-collapse:collapse;
237
+ border-spacing:0;
238
+ th, td {
239
+ @include underline($color, 0.055);
240
+ }
241
+ th {
242
+ text-align:left;
243
+ font-weight:bold;
244
+ }
245
+ &.striped {
246
+ tr:nth-child(even) {
247
+ background:mix($color, #FFF, 8%);
248
+ }
249
+ }
250
+ }
251
+ // Cover Shout
252
+ &.cover,
253
+ &.shout {
254
+ z-index:1;
255
+ &:after {
256
+ content:'';
257
+ }
258
+ }
259
+ // Cover
260
+ &.cover {
261
+ background:#000;
262
+ @mixin cover {
263
+ img, svg, video,
264
+ object, canvas, iframe {
265
+ @content;
266
+ }
267
+ }
268
+ @include cover {
269
+ position:absolute;
270
+ top:0;
271
+ left:0;
272
+ z-index:-1;
273
+ }
274
+ &.w {
275
+ @include cover {
276
+ top:50%;
277
+ width:100%;
278
+ transform:translateY(-50%);
279
+ }
280
+ }
281
+ &.h {
282
+ @include cover {
283
+ left:50%;
284
+ height:100%;
285
+ transform:translateX(-50%);
286
+ }
287
+ }
288
+ &.w.h {
289
+ @include cover {
290
+ top:0;
291
+ left:0;
292
+ transform:none;
293
+ }
294
+ }
295
+ }
296
+ // Shout
297
+ &.shout {
298
+ background:$color;
299
+ h2 {
300
+ position:absolute;
301
+ top:50%;
302
+ left:128px;
303
+ right:96px;
304
+ color:#FFF;
305
+ font-size:100px;
306
+ transform:translateY(-50%);
307
+ a {
308
+ @include underline(currentColor, 0.055);
309
+ color:#FFF;
310
+ }
311
+ }
312
+ }
313
+ // Place
314
+ .place {
315
+ position:absolute;
316
+ top:50%;
317
+ left:50%;
318
+ transform:translate(-50%, -50%);
319
+ &.t.l, &.t.r, &.b.r, &.b.l {
320
+ transform:none;
321
+ }
322
+ &.t, &.b {
323
+ transform:translate(-50%, 0);
324
+ }
325
+ &.l, &.r {
326
+ transform:translate(0, -50%);
327
+ }
328
+ &.t, &.t.l, &.t.r {
329
+ top:0;
330
+ }
331
+ &.r {
332
+ right:0;
333
+ left:auto;
334
+ }
335
+ &.b, &.b.r, &.b.l {
336
+ top:auto;
337
+ bottom:0;
338
+ }
339
+ &.l {
340
+ left:0;
341
+ }
342
+ }
343
+ // Notes
344
+ footer {
345
+ position:absolute;
346
+ left:0;
347
+ right:0;
348
+ bottom:-$height;
349
+ z-index:1;
350
+ display:none;
351
+ padding:21px $right 4px $left;
352
+ background:$yellow;
353
+ box-shadow:0 0 0 2px rgba(#000, 0.05);
354
+ transition:bottom 0.3s;
355
+ p {
356
+ margin:0 0 16px;
357
+ }
358
+ mark {
359
+ background:rgba(#FFF, 0.7);
360
+ }
361
+ }
362
+ &:hover footer {
363
+ bottom:0;
364
+ }
365
+ }
366
+
367
+ // Screen
368
+ @media screen {
369
+ // List
370
+ .shower.list {
371
+ position:absolute;
372
+ clip:rect(0, auto, auto, 0); // Having fun with IE10
373
+ padding:50px 0 50px 50px;
374
+ background:desaturate(lighten($color, 30%), 60%);
375
+ text-align:center;
376
+ // Outfit
377
+ .caption,
378
+ .badge {
379
+ display:block;
380
+ }
381
+ // Slide
382
+ .slide {
383
+ // Gap between slides
384
+ $gap:50px;
385
+ position:relative;
386
+ top:$height/2 - $gap;
387
+ display:inline-block;
388
+ margin:($gap - $height/2) ($gap - $width/2) 0 0;
389
+ text-align:left;
390
+ transform-origin:0 0;
391
+ transform:scale(0.5);
392
+ @media (max-width:$break) {
393
+ top:$height/2 + $height/4 - $gap;
394
+ margin:($gap - ($height/2 + $height/4)) ($gap - ($width/2 + $width/4)) 0 0;
395
+ transform:scale(0.25);
396
+ }
397
+ // Frame
398
+ &:before {
399
+ position:absolute;
400
+ top:0;
401
+ left:0;
402
+ z-index:-1;
403
+ width:$width/2;
404
+ height:$height/2;
405
+ box-shadow:0 0 0 1px #DDD;
406
+ content:'';
407
+ transform-origin:0 0;
408
+ transform:scale(2);
409
+ @media (max-width:$break) {
410
+ width:$width/4;
411
+ height:$height/4;
412
+ transform:scale(4);
413
+ }
414
+ }
415
+ // Number
416
+ &:after {
417
+ top:100%;
418
+ bottom:auto;
419
+ padding-top:50px;
420
+ @media (max-width:$break) {
421
+ width:$width/2;
422
+ transform-origin:0 0;
423
+ transform:scale(2);
424
+ }
425
+ }
426
+ // Hover
427
+ &:hover:before {
428
+ box-shadow:
429
+ 0 0 0 1px #EEE,
430
+ 0 0 0 12px rgba(#FFF, 0.5);
431
+ }
432
+ // Current
433
+ &:target {
434
+ &:before {
435
+ box-shadow:
436
+ 0 0 10px 0 darken($color, 5%),
437
+ 0 0 0 12px $color;
438
+ }
439
+ &:after {
440
+ color:$color;
441
+ }
442
+ }
443
+ // Inner
444
+ > div {
445
+ &:before {
446
+ position:absolute;
447
+ top:0;
448
+ right:0;
449
+ bottom:0;
450
+ left:0;
451
+ z-index:2;
452
+ content:'';
453
+ }
454
+ }
455
+ // Cover Shout
456
+ &.cover,
457
+ &.shout {
458
+ &:after {
459
+ content:counter(slide);
460
+ }
461
+ }
462
+ // Notes
463
+ footer {
464
+ display:block;
465
+ }
466
+ }
467
+ }
468
+ // Full
469
+ .shower.full {
470
+ position:absolute;
471
+ top:50%;
472
+ left:50%;
473
+ overflow:hidden;
474
+ margin:(-$height/2) 0 0 (-$width/2);
475
+ width:$width;
476
+ height:$height;
477
+ background:#000;
478
+ // Debug
479
+ &.debug:after {
480
+ position:absolute;
481
+ top:0;
482
+ right:0;
483
+ bottom:0;
484
+ left:0;
485
+ z-index:2;
486
+ background:url(../images/grid-#{$ratio}.svg) no-repeat;
487
+ content:'';
488
+ }
489
+ // Region
490
+ .region {
491
+ @include offscreen;
492
+ display:block;
493
+ }
494
+ // Slide
495
+ .slide {
496
+ position:absolute;
497
+ top:0;
498
+ left:0;
499
+ margin-left:150%;
500
+ // Next
501
+ .next {
502
+ visibility:hidden;
503
+ &.active {
504
+ visibility:visible;
505
+ }
506
+ }
507
+ // Current
508
+ &:target {
509
+ margin:0;
510
+ }
511
+ // Shout
512
+ &.shout {
513
+ &.right, &.up {
514
+ h2 {
515
+ opacity:0;
516
+ transition:all 0.4s ease-out;
517
+ }
518
+ &:target h2 {
519
+ opacity:1;
520
+ transform:translateX(0) translateY(-50%);
521
+ }
522
+ }
523
+ &.right h2 {
524
+ transform:translateX(-100%) translateY(-50%);
525
+ }
526
+ &.up h2 {
527
+ transform:translateX(0) translateY(100%);
528
+ }
529
+ }
530
+ }
531
+ // Progress
532
+ .progress {
533
+ position:absolute;
534
+ bottom:0;
535
+ left:0;
536
+ z-index:1;
537
+ width:0;
538
+ height:8px;
539
+ background:$color;
540
+ transition:width 0.2s linear;
541
+ }
542
+ }
543
+ }
544
+
545
+ // Print
546
+ @page {
547
+ margin:0;
548
+ size:$width $height;
549
+ }