slide-em-up 0.2.4 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +16 -23
- data/lib/slide-em-up.rb +1 -0
- data/lib/slide-em-up/markdown.rb +41 -0
- data/lib/slide-em-up/presentation.rb +14 -32
- data/lib/slide-em-up/remote_api.rb +2 -1
- data/lib/slide-em-up/version.rb +1 -1
- data/themes/CSSS/css/slideshow.css +69 -123
- data/themes/CSSS/css/theme.css +11 -36
- data/themes/CSSS/index.erb +1 -0
- data/themes/CSSS/js/prefixfree.min.js +13 -0
- data/themes/CSSS/js/slideshow.js +319 -234
- data/themes/common/css/pygments/manni.css +61 -0
- data/themes/common/fonts/Lato-BoldItalic.woff +0 -0
- data/themes/common/fonts/Lato-Italic.woff +0 -0
- data/themes/common/fonts/Lato-bold.woff +0 -0
- data/themes/common/fonts/Lato.woff +0 -0
- data/themes/common/fonts/OpenSans-Bold.woff +0 -0
- data/themes/common/fonts/OpenSans-BoldItalic.woff +0 -0
- data/themes/common/fonts/OpenSans-Italic.woff +0 -0
- data/themes/common/fonts/OpenSans.woff +0 -0
- data/themes/common/fonts/PTMono.woff +0 -0
- data/themes/common/fonts/PTSans.Bold.Italic.woff +0 -0
- data/themes/common/fonts/PTSans.Bold.woff +0 -0
- data/themes/common/fonts/PTSans.Italic.woff +0 -0
- data/themes/common/fonts/PTSans.Narrow.Bold.woff +0 -0
- data/themes/common/fonts/PTSans.Narrow.woff +0 -0
- data/themes/common/fonts/PTSans.woff +0 -0
- data/themes/io2012/README +2 -0
- data/themes/io2012/css/default.css +1481 -0
- data/themes/io2012/css/fonts.css +24 -0
- data/themes/io2012/css/phone.css +27 -0
- data/themes/io2012/images/google_developers_icon_128.png +0 -0
- data/themes/io2012/images/io2012_logo.png +0 -0
- data/themes/io2012/index.erb +73 -0
- data/themes/io2012/js/hammer.js +586 -0
- data/themes/io2012/js/modernizr.custom.45394.js +4 -0
- data/themes/io2012/js/order.js +8 -0
- data/themes/io2012/js/polyfills/classList.min.js +2 -0
- data/themes/io2012/js/polyfills/dataset.min.js +2 -0
- data/themes/io2012/js/polyfills/history.min.js +1 -0
- data/themes/io2012/js/prettify/lang-apollo.js +2 -0
- data/themes/io2012/js/prettify/lang-clj.js +18 -0
- data/themes/io2012/js/prettify/lang-css.js +2 -0
- data/themes/io2012/js/prettify/lang-go.js +1 -0
- data/themes/io2012/js/prettify/lang-hs.js +2 -0
- data/themes/io2012/js/prettify/lang-lisp.js +3 -0
- data/themes/io2012/js/prettify/lang-lua.js +2 -0
- data/themes/io2012/js/prettify/lang-ml.js +2 -0
- data/themes/io2012/js/prettify/lang-n.js +4 -0
- data/themes/io2012/js/prettify/lang-proto.js +1 -0
- data/themes/io2012/js/prettify/lang-scala.js +2 -0
- data/themes/io2012/js/prettify/lang-sql.js +2 -0
- data/themes/io2012/js/prettify/lang-tex.js +1 -0
- data/themes/io2012/js/prettify/lang-vb.js +2 -0
- data/themes/io2012/js/prettify/lang-vhdl.js +3 -0
- data/themes/io2012/js/prettify/lang-wiki.js +2 -0
- data/themes/io2012/js/prettify/lang-xq.js +3 -0
- data/themes/io2012/js/prettify/lang-yaml.js +2 -0
- data/themes/io2012/js/prettify/prettify.css +1 -0
- data/themes/io2012/js/prettify/prettify.js +28 -0
- data/themes/io2012/js/require-1.0.8.min.js +33 -0
- data/themes/io2012/js/slide-controller.js +109 -0
- data/themes/io2012/js/slide-deck.js +768 -0
- data/themes/io2012/js/slides.js +5 -0
- data/themes/memories/css/slideshow.css +191 -50
- data/themes/memories/css/theme.css +10 -4
- data/themes/memories/index.erb +2 -0
- data/themes/memories/js/prefixfree.min.js +13 -0
- data/themes/memories/js/slideshow.js +526 -371
- data/themes/reveal/README +2 -0
- data/themes/reveal/css/main.css +1029 -0
- data/themes/reveal/css/reset.css +57 -0
- data/themes/reveal/index.erb +102 -0
- data/themes/reveal/js/classList.js +2 -0
- data/themes/reveal/js/head.min.js +8 -0
- data/themes/reveal/js/reveal.js +951 -0
- data/themes/shower/css/fonts.css +39 -7
- data/themes/shower/css/reset.css +21 -21
- data/themes/shower/css/style.css +108 -75
- data/themes/shower/index.erb +3 -0
- data/themes/shower/js/script.js +160 -92
- metadata +80 -18
data/README.md
CHANGED
@@ -38,6 +38,15 @@ How to do your first presentation with Slide'em up?
|
|
38
38
|
8. Use the arrows keys to navigate between the slides
|
39
39
|
|
40
40
|
|
41
|
+
Themes
|
42
|
+
------
|
43
|
+
|
44
|
+
Several themes are available: `io2012`, `shower`, `3d_slideshow`, `reveal`,
|
45
|
+
`html5rocks`, `CSSS` and `memories`. To choose the theme for your
|
46
|
+
presentation, edit the `presentation.json` file and change the `"theme"`
|
47
|
+
element.
|
48
|
+
|
49
|
+
|
41
50
|
Markup for the slides
|
42
51
|
---------------------
|
43
52
|
|
@@ -82,14 +91,6 @@ like this:
|
|
82
91
|
```
|
83
92
|
|
84
93
|
|
85
|
-
Themes
|
86
|
-
------
|
87
|
-
|
88
|
-
Several themes are available: shower, 3d_slideshow, html5rocks, CSSS
|
89
|
-
and memories. To choose the theme for your presentation, edit the
|
90
|
-
`presentation.json` file and change the `"theme"` element.
|
91
|
-
|
92
|
-
|
93
94
|
Remote Control
|
94
95
|
--------------
|
95
96
|
|
@@ -111,16 +112,6 @@ setting the `APIKEY` environment variable:
|
|
111
112
|
APIKEY=foobar slide-em-up
|
112
113
|
|
113
114
|
|
114
|
-
TODO
|
115
|
-
----
|
116
|
-
|
117
|
-
* Same command line stuff than showoff
|
118
|
-
* Add a showoff theme for compatibility
|
119
|
-
* Many more themes and features
|
120
|
-
* Favicon
|
121
|
-
* Optimize process_code (pygments.rb?)
|
122
|
-
|
123
|
-
|
124
115
|
Issues or Suggestions
|
125
116
|
---------------------
|
126
117
|
|
@@ -129,21 +120,23 @@ Found an issue or have a suggestion? Please report it on
|
|
129
120
|
|
130
121
|
If you wants to make a pull request, please check the specs before:
|
131
122
|
|
132
|
-
|
123
|
+
bundle exec spec/slide-em-up_spec.rb
|
133
124
|
|
134
125
|
|
135
126
|
Credits
|
136
127
|
-------
|
137
128
|
|
138
129
|
Scott Chacon is the guy who made [ShowOff](https://github.com/schacon/showoff).
|
139
|
-
Slide'em up is only a copy of ShowOff
|
130
|
+
Slide'em up is only a copy of ShowOff with multiple themes and sinatra
|
131
|
+
replaced by Goliath.
|
140
132
|
|
141
133
|
Themes were picked from the internet. Thanks to:
|
142
134
|
|
143
|
-
- Hakim El Hattab for 3d_slideshow
|
135
|
+
- Hakim El Hattab for 3d_slideshow and reveal
|
144
136
|
- Google for html5rocks
|
145
137
|
- Vadim Makeev for shower
|
146
|
-
- Lea Verou for CSSS
|
138
|
+
- Lea Verou for CSSS (and its modified version, memories)
|
139
|
+
- Google for io2012
|
147
140
|
|
148
|
-
|
141
|
+
♡2011 by Bruno Michel. Copying is an act of love. Please copy and share.
|
149
142
|
Released under the MIT license
|
data/lib/slide-em-up.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Encoding: utf-8
|
2
|
+
require "albino"
|
3
|
+
require "redcarpet"
|
4
|
+
|
5
|
+
|
6
|
+
module SlideEmUp
|
7
|
+
class Markdown < Redcarpet::Render::HTML
|
8
|
+
PARSER_OPTIONS = {
|
9
|
+
:no_intra_emphasis => true,
|
10
|
+
:tables => true,
|
11
|
+
:fenced_code_blocks => true,
|
12
|
+
:autolink => true,
|
13
|
+
:strikethrough => true,
|
14
|
+
:superscript => true
|
15
|
+
}
|
16
|
+
|
17
|
+
def self.render(text)
|
18
|
+
text ||= ""
|
19
|
+
markdown = Redcarpet::Markdown.new(self, PARSER_OPTIONS)
|
20
|
+
markdown.render(text)
|
21
|
+
end
|
22
|
+
|
23
|
+
def block_code(code, lang)
|
24
|
+
colorized = Albino.new(code, lang || "text").colorize(:P => "nowrap")
|
25
|
+
"<pre><code class=\"#{lang}\">#{colorized}</code></pre>"
|
26
|
+
end
|
27
|
+
|
28
|
+
def strikethrough(text)
|
29
|
+
"<s>#{text}</s>"
|
30
|
+
end
|
31
|
+
|
32
|
+
def normal_text(text)
|
33
|
+
text.gsub!('« ', '« ')
|
34
|
+
text.gsub!(/ ([:;»!?])/, ' \1')
|
35
|
+
text.gsub!(' -- ', '—')
|
36
|
+
text.gsub!('...', '…')
|
37
|
+
text
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -1,23 +1,27 @@
|
|
1
|
-
require "albino"
|
2
|
-
require "digest/sha1"
|
3
1
|
require "erubis"
|
4
|
-
require "redcarpet"
|
5
2
|
require "yajl"
|
6
3
|
|
7
4
|
|
8
5
|
module SlideEmUp
|
9
6
|
class Presentation
|
10
|
-
Meta = Struct.new(:title, :dir, :css, :js, :duration)
|
7
|
+
Meta = Struct.new(:title, :dir, :css, :js, :author, :duration)
|
11
8
|
Theme = Struct.new(:title, :dir, :css, :js)
|
12
9
|
Section = Struct.new(:number, :title, :dir, :slides)
|
13
|
-
|
10
|
+
|
11
|
+
class Slide < Struct.new(:number, :classes, :html)
|
12
|
+
def extract_title
|
13
|
+
return @title if @title
|
14
|
+
html.sub!(/<h(\d)>(.*)<\/h\1>/) { @title = $2; "" }
|
15
|
+
@title
|
16
|
+
end
|
17
|
+
end
|
14
18
|
|
15
19
|
attr_accessor :meta, :theme, :common, :parts
|
16
20
|
|
17
21
|
def initialize(dir)
|
18
22
|
infos = extract_normal_infos(dir) || extract_infos_from_showoff(dir) || {}
|
19
23
|
infos = { "title" => "No title", "theme" => "shower", "duration" => 60 }.merge(infos)
|
20
|
-
@meta = build_meta(infos["title"], dir, infos["duration"])
|
24
|
+
@meta = build_meta(infos["title"], dir, infos["author"], infos["duration"])
|
21
25
|
@theme = build_theme(infos["theme"])
|
22
26
|
@common = build_theme("common")
|
23
27
|
@parts = infos["sections"] || raise(Exception, "check your presentation.json or showoff.json file")
|
@@ -52,7 +56,7 @@ module SlideEmUp
|
|
52
56
|
{ "title" => infos["name"], "theme" => "showoff", "sections" => sections }
|
53
57
|
end
|
54
58
|
|
55
|
-
def build_meta(title, dir, duration)
|
59
|
+
def build_meta(title, dir, author, duration)
|
56
60
|
Meta.new.tap do |m|
|
57
61
|
m.title = title
|
58
62
|
m.dir = dir
|
@@ -60,6 +64,7 @@ module SlideEmUp
|
|
60
64
|
m.css = Dir["**/*.css"]
|
61
65
|
m.js = Dir["**/*.js"]
|
62
66
|
end
|
67
|
+
m.author = author
|
63
68
|
m.duration = duration
|
64
69
|
end
|
65
70
|
end
|
@@ -83,34 +88,11 @@ module SlideEmUp
|
|
83
88
|
slides = parts.map.with_index do |slide,j|
|
84
89
|
@codemap = {}
|
85
90
|
classes, md = slide.split("\n", 2)
|
86
|
-
|
87
|
-
|
88
|
-
html = process_code(html)
|
89
|
-
Slide.new(j, classes, md, html)
|
91
|
+
html = Markdown.render(md)
|
92
|
+
Slide.new(j, classes, html)
|
90
93
|
end
|
91
94
|
Section.new(i, title, dir, slides)
|
92
95
|
end
|
93
96
|
end
|
94
|
-
|
95
|
-
# Code taken from gollum (http://github.com/github/gollum)
|
96
|
-
def extract_code(md)
|
97
|
-
md.gsub(/^``` ?(.+?)\r?\n(.+?)\r?\n```\r?$/m) do
|
98
|
-
id = Digest::SHA1.hexdigest($2)
|
99
|
-
@codemap[id] = { :lang => $1, :code => $2 }
|
100
|
-
id
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def process_code(data)
|
105
|
-
@codemap.each do |id, spec|
|
106
|
-
lang, code = spec[:lang], spec[:code]
|
107
|
-
if code.lines.all? { |line| line =~ /\A\r?\n\Z/ || line =~ /^( |\t)/ }
|
108
|
-
code.gsub!(/^( |\t)/m, '')
|
109
|
-
end
|
110
|
-
output = Albino.new(code, lang).colorize(:P => "nowrap")
|
111
|
-
data.gsub!(id, "<pre><code class=\"#{lang}\">#{output}</code></pre>")
|
112
|
-
end
|
113
|
-
data
|
114
|
-
end
|
115
97
|
end
|
116
98
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require "goliath/api"
|
2
2
|
|
3
|
+
|
3
4
|
module SlideEmUp
|
4
5
|
class RemoteAPI < Goliath::API
|
5
6
|
def initialize(key)
|
@@ -39,7 +40,7 @@ module SlideEmUp
|
|
39
40
|
env['subscription'] = @chan.subscribe do |msg|
|
40
41
|
env.stream_send("data: #{msg}\n\n")
|
41
42
|
end
|
42
|
-
streaming_response(
|
43
|
+
streaming_response(202, {"Content-Type" => "text/event-stream"})
|
43
44
|
end
|
44
45
|
|
45
46
|
def forbidden
|
data/lib/slide-em-up/version.rb
CHANGED
@@ -10,16 +10,8 @@
|
|
10
10
|
.slide,
|
11
11
|
.delayed,
|
12
12
|
.delayed-children > * {
|
13
|
-
|
14
|
-
-
|
15
|
-
-moz-transition:1s;
|
16
|
-
-o-transition:1s;
|
17
|
-
transition:1s;
|
18
|
-
-moz-transition-property: -webkit-transform, opacity, left, top, right, bottom;
|
19
|
-
-ms-transition-property: -webkit-transform, opacity, left, top, right, bottom;
|
20
|
-
-o-transition-property: -webkit-transform, opacity, left, top, right, bottom;
|
21
|
-
-webkit-transition-property: -webkit-transform, opacity, left, top, right, bottom;
|
22
|
-
transition-property: -webkit-transform, opacity, left, top, right, bottom;
|
13
|
+
transition:.5s;
|
14
|
+
transition-property: transform, opacity, left, top, right, bottom, background;
|
23
15
|
}
|
24
16
|
|
25
17
|
/**
|
@@ -31,50 +23,40 @@
|
|
31
23
|
}
|
32
24
|
|
33
25
|
body {
|
34
|
-
counter-reset: slide;
|
35
26
|
margin: 0;
|
36
27
|
}
|
37
28
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
opacity:0;
|
51
|
-
height:0;
|
52
|
-
width:0;
|
53
|
-
overflow:hidden;
|
54
|
-
|
55
|
-
counter-increment: slide;
|
56
|
-
}
|
29
|
+
.slide {
|
30
|
+
display: none;
|
31
|
+
position:absolute;
|
32
|
+
top:0;
|
33
|
+
right:0;
|
34
|
+
bottom:0;
|
35
|
+
left:0;
|
36
|
+
z-index:1;
|
37
|
+
|
38
|
+
font-size:250%;
|
39
|
+
line-height:1.6;
|
40
|
+
}
|
57
41
|
|
58
42
|
.slide.previous,
|
59
43
|
.slide:target,
|
60
|
-
.slide:target + .slide, /* just in case, not really needed */
|
61
44
|
.slide.next {
|
62
|
-
|
45
|
+
display: block;
|
46
|
+
opacity:0;
|
47
|
+
overflow:hidden;
|
63
48
|
}
|
64
49
|
|
65
50
|
.slide:target {
|
66
51
|
z-index:100;
|
67
52
|
opacity:1;
|
68
|
-
height:auto;
|
69
|
-
width: auto;
|
70
53
|
overflow: visible;
|
71
54
|
}
|
72
55
|
|
73
56
|
/**
|
74
57
|
Slide numbers
|
75
58
|
*/
|
76
|
-
|
77
|
-
content: counter(slide);
|
59
|
+
#indicator {
|
78
60
|
position: absolute;
|
79
61
|
top: .05in;
|
80
62
|
right: .5em;
|
@@ -88,12 +70,7 @@
|
|
88
70
|
text-align: center;
|
89
71
|
padding: .1em .3em 0;
|
90
72
|
min-width: 1.6em;
|
91
|
-
-moz-box-sizing: border-box;
|
92
|
-
-webkit-box-sizing: border-box;
|
93
73
|
box-sizing: border-box;
|
94
|
-
|
95
|
-
-moz-border-radius: 999px;
|
96
|
-
-webkit-border-radius: 999px;
|
97
74
|
border-radius: 999px;
|
98
75
|
}
|
99
76
|
|
@@ -116,10 +93,48 @@
|
|
116
93
|
.delayed.current,
|
117
94
|
.delayed-children > .current,
|
118
95
|
.delayed.displayed.non-dismissable,
|
119
|
-
.delayed-children > .displayed.non-dismissable
|
96
|
+
.delayed-children > .displayed.non-dismissable, /* non-dismissable name is deprecated */
|
97
|
+
.delayed.displayed.persistent,
|
98
|
+
.delayed-children > .displayed.persistent,
|
99
|
+
.delayed-children.persistent > .displayed {
|
120
100
|
opacity: 1;
|
121
101
|
}
|
122
102
|
|
103
|
+
/**
|
104
|
+
iframe slides
|
105
|
+
*/
|
106
|
+
.iframe.slide {
|
107
|
+
padding: 0 !important;
|
108
|
+
text-align: center;
|
109
|
+
}
|
110
|
+
|
111
|
+
.iframe.slide > h1 {
|
112
|
+
position: absolute;
|
113
|
+
bottom: 0; right: 0; left: 0;
|
114
|
+
background: rgba(0,0,0,.5);
|
115
|
+
font-size: 100%;
|
116
|
+
}
|
117
|
+
|
118
|
+
.iframe.slide > h1 > a {
|
119
|
+
display: inline-block;
|
120
|
+
padding: .2em .5em;
|
121
|
+
|
122
|
+
color: white;
|
123
|
+
text-align: center;
|
124
|
+
text-decoration: none;
|
125
|
+
text-shadow: 0 -.05em .05em black;
|
126
|
+
}
|
127
|
+
|
128
|
+
.slide > iframe:only-of-type {
|
129
|
+
position: absolute;
|
130
|
+
top: 0;
|
131
|
+
left: 0;
|
132
|
+
border: 0;
|
133
|
+
width: 100%;
|
134
|
+
height: 100%;
|
135
|
+
margin: 0;
|
136
|
+
}
|
137
|
+
|
123
138
|
/**
|
124
139
|
Show thumbnails
|
125
140
|
*/
|
@@ -132,9 +147,6 @@
|
|
132
147
|
.presenter .slide.next {
|
133
148
|
width: 1024px;
|
134
149
|
height: 768px;
|
135
|
-
|
136
|
-
-moz-box-sizing: border-box;
|
137
|
-
-webkit-box-sizing: border-box;
|
138
150
|
box-sizing: border-box;
|
139
151
|
|
140
152
|
float: left;
|
@@ -144,14 +156,7 @@
|
|
144
156
|
margin:-292px -395px;
|
145
157
|
cursor: pointer;
|
146
158
|
|
147
|
-
-moz-transform: scale(.2, .2);
|
148
|
-
-o-transform: scale(.2, .2);
|
149
|
-
-webkit-transform: scale(.2, .2);
|
150
159
|
transform: scale(.2, .2);
|
151
|
-
|
152
|
-
-webkit-transition:1s -webkit-transform;
|
153
|
-
-moz-transition:1s -moz-transform;
|
154
|
-
-o-transition:1s -o-transform;
|
155
160
|
transition:1s transform;
|
156
161
|
}
|
157
162
|
|
@@ -172,7 +177,7 @@
|
|
172
177
|
.show-thumbnails .slide:target,
|
173
178
|
.presenter .slide:target + .slide {
|
174
179
|
outline: 20px solid rgba(255, 255, 255, .6);
|
175
|
-
|
180
|
+
outline-radius:5px;
|
176
181
|
|
177
182
|
box-shadow: 5px 5px 10px black;
|
178
183
|
}
|
@@ -198,46 +203,15 @@
|
|
198
203
|
font-size: 250%;
|
199
204
|
text-align: center;
|
200
205
|
text-shadow: .05em .05em .1em black;
|
201
|
-
|
202
|
-
-moz-transform: none;
|
203
|
-
-ms-transform: none;
|
204
|
-
-o-transform: none;
|
205
|
-
-webkit-transform: none;
|
206
206
|
transform: none;
|
207
207
|
}
|
208
208
|
|
209
209
|
/* Hide all elements in slide by hitting Ctrl + J or Shift + J */
|
210
210
|
.hide-elements .slide:target > * {
|
211
211
|
opacity: 0;
|
212
|
-
|
213
|
-
-moz-transition:.5s;
|
214
|
-
-webkit-transition:.5s;
|
215
|
-
-o-transition:.5s;
|
216
212
|
transition:.5s;
|
217
213
|
}
|
218
214
|
|
219
|
-
/* Mark slides as incomplete to spot them easier */
|
220
|
-
.incomplete.slide::after {
|
221
|
-
content: 'INCOMPLETE';
|
222
|
-
font-weight: bold;
|
223
|
-
position: absolute;
|
224
|
-
top: 40%;
|
225
|
-
left: 30%;
|
226
|
-
padding: .1em .4em 0;
|
227
|
-
border: .1em solid;
|
228
|
-
color: rgba(255, 0, 0, .8);
|
229
|
-
font-size: 140%;
|
230
|
-
|
231
|
-
-moz-border-radius: .2em;
|
232
|
-
-webkit-border-radius: .2em;
|
233
|
-
border-radius: .2em;
|
234
|
-
|
235
|
-
-moz-transform: rotate(30deg);
|
236
|
-
-o-transform: rotate(30deg);
|
237
|
-
-webkit-transform: rotate(30deg);
|
238
|
-
transform: rotate(30deg);
|
239
|
-
}
|
240
|
-
|
241
215
|
/* Timer */
|
242
216
|
|
243
217
|
#timer {
|
@@ -252,50 +226,25 @@
|
|
252
226
|
background:rgba(0,0,0,.5);
|
253
227
|
overflow: hidden;
|
254
228
|
text-align: right;
|
255
|
-
|
256
|
-
-moz-box-sizing: border-box;
|
257
|
-
-webkit-box-sizing: border-box;
|
258
229
|
box-sizing: border-box;
|
230
|
+
transition: linear;
|
259
231
|
}
|
260
232
|
|
261
|
-
#timer:before {
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
}
|
233
|
+
#timer:before {
|
234
|
+
content: 'Progress ';
|
235
|
+
text-transform: uppercase;
|
236
|
+
color: white;
|
237
|
+
font-size: 9px;
|
238
|
+
}
|
267
239
|
|
268
240
|
#timer.end {
|
269
241
|
width: 100%;
|
270
242
|
}
|
271
243
|
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
position: fixed;
|
276
|
-
top: 0;
|
244
|
+
#timer.end.overtime {
|
245
|
+
width: 0%;
|
246
|
+
left: auto;
|
277
247
|
right: 0;
|
278
|
-
color: white;
|
279
|
-
font-size: 50%;
|
280
|
-
text-align: center;
|
281
|
-
text-transform: uppercase;
|
282
|
-
font-weight: bold;
|
283
|
-
background: hsl(40,100%,50%);
|
284
|
-
background-image: -webkit-linear-gradient(rgba(255, 255, 255, .3), rgba(255, 255, 255, 0));
|
285
|
-
background-image: -moz-linear-gradient(rgba(255, 255, 255, .3), rgba(255, 255, 255, 0));
|
286
|
-
background-image: -o-linear-gradient(rgba(255, 255, 255, .3), rgba(255, 255, 255, 0));
|
287
|
-
line-height: 1.6;
|
288
|
-
min-width: 20em;
|
289
|
-
|
290
|
-
-moz-box-shadow: 0 10px 5px -5px rgba(0,0,0,.3);
|
291
|
-
-webkit-box-shadow: 0 10px 5px -5px rgba(0,0,0,.3);
|
292
|
-
box-shadow: 0 10px 5px -5px rgba(0,0,0,.3);
|
293
|
-
|
294
|
-
-moz-transform: rotate(45deg) translate(6em, -2em);
|
295
|
-
-ms-transform: rotate(45deg) translate(6em, -2em);
|
296
|
-
-webkit-transform: rotate(45deg) translate(6em, -2em);
|
297
|
-
-o-transform: rotate(45deg) translate(6em, -2em);
|
298
|
-
transform: rotate(45deg) translate(6em, -2em);
|
299
248
|
}
|
300
249
|
|
301
250
|
/* Presenter & projector views */
|
@@ -320,9 +269,6 @@
|
|
320
269
|
background: rgba(255, 255, 255, .5);
|
321
270
|
color: black;
|
322
271
|
text-shadow: 0 1px white;
|
323
|
-
|
324
|
-
-moz-box-shadow: .1em .1em .3em rgba(0,0,0,.5) inset;
|
325
|
-
-webkit-box-shadow: .1em .1em .3em rgba(0,0,0,.5) inset;
|
326
272
|
box-shadow: .1em .1em .3em rgba(0,0,0,.5) inset;
|
327
273
|
}
|
328
274
|
|
@@ -337,4 +283,4 @@
|
|
337
283
|
|
338
284
|
.presenter .slide:target > .presenter-notes {
|
339
285
|
display: block;
|
340
|
-
}
|
286
|
+
}
|