├── .gitignore ├── Procfile ├── README.md ├── requirements.txt ├── routes.py ├── static ├── bmh_matplotlibrc.json ├── css │ ├── eNNA2vlZnUPtgq9g__E3cA.woff │ ├── images │ │ ├── 282.GIF │ │ ├── arrows.png │ │ ├── bullets.png │ │ └── loading.gif │ ├── jquery-ui.css │ ├── lean-slider.css │ ├── main.css │ ├── print │ │ ├── paper.css │ │ └── pdf.css │ ├── reveal.css │ ├── reveal.min.css │ ├── sample-styles.css │ ├── sofia.css │ └── theme │ │ ├── README.md │ │ ├── beige.css │ │ ├── default.css │ │ ├── moon.css │ │ ├── night.css │ │ ├── serif.css │ │ ├── simple.css │ │ ├── sky.css │ │ ├── solarized.css │ │ ├── source │ │ ├── beige.scss │ │ ├── default.scss │ │ ├── moon.scss │ │ ├── night.scss │ │ ├── serif.scss │ │ ├── simple.scss │ │ ├── sky.scss │ │ └── solarized.scss │ │ └── template │ │ ├── mixins.scss │ │ ├── settings.scss │ │ └── theme.scss ├── eNNA2vlZnUPtgq9g__E3cA.woff └── js │ ├── jquery-1.9.1.js │ └── jquery-ui.js └── templates ├── examples.html~ ├── index.html └── layout.html /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | static/img/temp/* 3 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn routes:app 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | NB: The mpld3 API has changed a bit. I shall update the code soon to reflect that. 2 | The changes are fairly minimal (such as `fig_to_d3` to `fig_to_html`) 3 | 4 | mpld3-flask 5 | ----------- 6 | 7 | Minimal flask app for rendering D3 figures generated via mpld3. 8 | 9 | Demo: http://frozen-brushlands-3876.herokuapp.com/ 10 | 11 | #### TODO 12 | 13 | Adding following plots: 14 | 15 | 1. Timeseries (maybe Yahoo Stock) 16 | 2. Scatter (maybe iris) 17 | 18 | 19 | Add another tab on the app which plot different statistical distributions and uses sliders etc. to understand the behavior with varying parameters. 20 | 21 | Add loading... so that the end user is aware of the state. 22 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==0.10.1 2 | Jinja2==2.6 3 | Markdown==2.2.1 4 | MarkupSafe==0.15 5 | Werkzeug==0.9.4 6 | gunicorn==18.0 7 | matplotlib==1.3.1 8 | numpy==1.8.0 9 | mpld3 10 | -------------------------------------------------------------------------------- /routes.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, render_template, json, request 2 | import numpy as np 3 | 4 | import matplotlib 5 | import json 6 | import random 7 | 8 | matplotlib.use('Agg') 9 | import matplotlib.pyplot as plt 10 | plt.ioff() 11 | 12 | from threading import Lock 13 | lock = Lock() 14 | import datetime 15 | import mpld3 16 | from mpld3 import plugins 17 | 18 | # Setting up matplotlib sytles using BMH 19 | s = json.load(open("./static/bmh_matplotlibrc.json")) 20 | matplotlib.rcParams.update(s) 21 | 22 | x = range(100) 23 | y = [a * 2 + random.randint(-20, 20) for a in x] 24 | 25 | pie_fracs = [20, 30, 40, 10] 26 | pie_labels = ["A", "B", "C", "D"] 27 | 28 | 29 | def draw_fig(fig_type): 30 | """Returns html equivalent of matplotlib figure 31 | 32 | Parameters 33 | ---------- 34 | fig_type: string, type of figure 35 | one of following: 36 | * line 37 | * bar 38 | 39 | Returns 40 | -------- 41 | d3 representation of figure 42 | """ 43 | 44 | with lock: 45 | fig, ax = plt.subplots() 46 | if fig_type == "line": 47 | ax.plot(x, y) 48 | elif fig_type == "bar": 49 | ax.bar(x, y) 50 | elif fig_type == "pie": 51 | ax.pie(pie_fracs, labels=pie_labels) 52 | elif fig_type == "scatter": 53 | ax.scatter(x, y) 54 | elif fig_type == "hist": 55 | ax.hist(y, 10, normed=1) 56 | elif fig_type == "area": 57 | ax.plot(x, y) 58 | ax.fill_between(x, 0, y, alpha=0.2) 59 | 60 | 61 | return mpld3.fig_to_html(fig) 62 | 63 | app = Flask(__name__) 64 | 65 | 66 | @app.route('/') 67 | def home(): 68 | return render_template('index.html') 69 | 70 | 71 | @app.route('/query', methods=['POST']) 72 | def query(): 73 | data = json.loads(request.data) 74 | return draw_fig(data["plot_type"]) 75 | 76 | 77 | if __name__ == '__main__': 78 | app.run(debug=True, host='0.0.0.0') 79 | -------------------------------------------------------------------------------- /static/bmh_matplotlibrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "lines.linewidth": 2.0, 3 | "examples.download": true, 4 | "axes.edgecolor": "#bcbcbc", 5 | "patch.linewidth": 0.5, 6 | "legend.fancybox": true, 7 | "axes.color_cycle": [ 8 | "#348ABD", 9 | "#A60628", 10 | "#7A68A6", 11 | "#467821", 12 | "#CF4457", 13 | "#188487", 14 | "#E24A33" 15 | ], 16 | "axes.facecolor": "#eeeeee", 17 | "axes.labelsize": "large", 18 | "axes.grid": true, 19 | "grid.color":"white", 20 | "grid.linestyle":"solid", 21 | "patch.edgecolor": "#eeeeee", 22 | "axes.titlesize": "x-large", 23 | "svg.embed_char_paths": "path", 24 | "examples.directory": "" 25 | } -------------------------------------------------------------------------------- /static/css/eNNA2vlZnUPtgq9g__E3cA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nipunbatra/mpld3-flask/f3bc223173ee71711d9849184bcd178e5d0d5283/static/css/eNNA2vlZnUPtgq9g__E3cA.woff -------------------------------------------------------------------------------- /static/css/images/282.GIF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nipunbatra/mpld3-flask/f3bc223173ee71711d9849184bcd178e5d0d5283/static/css/images/282.GIF -------------------------------------------------------------------------------- /static/css/images/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nipunbatra/mpld3-flask/f3bc223173ee71711d9849184bcd178e5d0d5283/static/css/images/arrows.png -------------------------------------------------------------------------------- /static/css/images/bullets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nipunbatra/mpld3-flask/f3bc223173ee71711d9849184bcd178e5d0d5283/static/css/images/bullets.png -------------------------------------------------------------------------------- /static/css/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nipunbatra/mpld3-flask/f3bc223173ee71711d9849184bcd178e5d0d5283/static/css/images/loading.gif -------------------------------------------------------------------------------- /static/css/jquery-ui.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.10.3 - 2013-05-03 2 | * http://jqueryui.com 3 | * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css 4 | * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px 5 | * Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ 6 | 7 | /* Layout helpers 8 | ----------------------------------*/ 9 | .ui-helper-hidden { 10 | display: none; 11 | } 12 | .ui-helper-hidden-accessible { 13 | border: 0; 14 | clip: rect(0 0 0 0); 15 | height: 1px; 16 | margin: -1px; 17 | overflow: hidden; 18 | padding: 0; 19 | position: absolute; 20 | width: 1px; 21 | } 22 | .ui-helper-reset { 23 | margin: 0; 24 | padding: 0; 25 | border: 0; 26 | outline: 0; 27 | line-height: 1.3; 28 | text-decoration: none; 29 | font-size: 100%; 30 | list-style: none; 31 | } 32 | .ui-helper-clearfix:before, 33 | .ui-helper-clearfix:after { 34 | content: ""; 35 | display: table; 36 | border-collapse: collapse; 37 | } 38 | .ui-helper-clearfix:after { 39 | clear: both; 40 | } 41 | .ui-helper-clearfix { 42 | min-height: 0; /* support: IE7 */ 43 | } 44 | .ui-helper-zfix { 45 | width: 100%; 46 | height: 100%; 47 | top: 0; 48 | left: 0; 49 | position: absolute; 50 | opacity: 0; 51 | filter:Alpha(Opacity=0); 52 | } 53 | 54 | .ui-front { 55 | z-index: 100; 56 | } 57 | 58 | 59 | /* Interaction Cues 60 | ----------------------------------*/ 61 | .ui-state-disabled { 62 | cursor: default !important; 63 | } 64 | 65 | 66 | /* Icons 67 | ----------------------------------*/ 68 | 69 | /* states and images */ 70 | .ui-icon { 71 | display: block; 72 | text-indent: -99999px; 73 | overflow: hidden; 74 | background-repeat: no-repeat; 75 | } 76 | 77 | 78 | /* Misc visuals 79 | ----------------------------------*/ 80 | 81 | /* Overlays */ 82 | .ui-widget-overlay { 83 | position: fixed; 84 | top: 0; 85 | left: 0; 86 | width: 100%; 87 | height: 100%; 88 | } 89 | .ui-accordion .ui-accordion-header { 90 | display: block; 91 | cursor: pointer; 92 | position: relative; 93 | margin-top: 2px; 94 | padding: .5em .5em .5em .7em; 95 | min-height: 0; /* support: IE7 */ 96 | } 97 | .ui-accordion .ui-accordion-icons { 98 | padding-left: 2.2em; 99 | } 100 | .ui-accordion .ui-accordion-noicons { 101 | padding-left: .7em; 102 | } 103 | .ui-accordion .ui-accordion-icons .ui-accordion-icons { 104 | padding-left: 2.2em; 105 | } 106 | .ui-accordion .ui-accordion-header .ui-accordion-header-icon { 107 | position: absolute; 108 | left: .5em; 109 | top: 50%; 110 | margin-top: -8px; 111 | } 112 | .ui-accordion .ui-accordion-content { 113 | padding: 1em 2.2em; 114 | border-top: 0; 115 | overflow: auto; 116 | } 117 | .ui-autocomplete { 118 | position: absolute; 119 | top: 0; 120 | left: 0; 121 | cursor: default; 122 | } 123 | .ui-button { 124 | display: inline-block; 125 | position: relative; 126 | padding: 0; 127 | line-height: normal; 128 | margin-right: .1em; 129 | cursor: pointer; 130 | vertical-align: middle; 131 | text-align: center; 132 | overflow: visible; /* removes extra width in IE */ 133 | } 134 | .ui-button, 135 | .ui-button:link, 136 | .ui-button:visited, 137 | .ui-button:hover, 138 | .ui-button:active { 139 | text-decoration: none; 140 | } 141 | /* to make room for the icon, a width needs to be set here */ 142 | .ui-button-icon-only { 143 | width: 2.2em; 144 | } 145 | /* button elements seem to need a little more width */ 146 | button.ui-button-icon-only { 147 | width: 2.4em; 148 | } 149 | .ui-button-icons-only { 150 | width: 3.4em; 151 | } 152 | button.ui-button-icons-only { 153 | width: 3.7em; 154 | } 155 | 156 | /* button text element */ 157 | .ui-button .ui-button-text { 158 | display: block; 159 | line-height: normal; 160 | } 161 | .ui-button-text-only .ui-button-text { 162 | padding: .4em 1em; 163 | } 164 | .ui-button-icon-only .ui-button-text, 165 | .ui-button-icons-only .ui-button-text { 166 | padding: .4em; 167 | text-indent: -9999999px; 168 | } 169 | .ui-button-text-icon-primary .ui-button-text, 170 | .ui-button-text-icons .ui-button-text { 171 | padding: .4em 1em .4em 2.1em; 172 | } 173 | .ui-button-text-icon-secondary .ui-button-text, 174 | .ui-button-text-icons .ui-button-text { 175 | padding: .4em 2.1em .4em 1em; 176 | } 177 | .ui-button-text-icons .ui-button-text { 178 | padding-left: 2.1em; 179 | padding-right: 2.1em; 180 | } 181 | /* no icon support for input elements, provide padding by default */ 182 | input.ui-button { 183 | padding: .4em 1em; 184 | } 185 | 186 | /* button icon element(s) */ 187 | .ui-button-icon-only .ui-icon, 188 | .ui-button-text-icon-primary .ui-icon, 189 | .ui-button-text-icon-secondary .ui-icon, 190 | .ui-button-text-icons .ui-icon, 191 | .ui-button-icons-only .ui-icon { 192 | position: absolute; 193 | top: 50%; 194 | margin-top: -8px; 195 | } 196 | .ui-button-icon-only .ui-icon { 197 | left: 50%; 198 | margin-left: -8px; 199 | } 200 | .ui-button-text-icon-primary .ui-button-icon-primary, 201 | .ui-button-text-icons .ui-button-icon-primary, 202 | .ui-button-icons-only .ui-button-icon-primary { 203 | left: .5em; 204 | } 205 | .ui-button-text-icon-secondary .ui-button-icon-secondary, 206 | .ui-button-text-icons .ui-button-icon-secondary, 207 | .ui-button-icons-only .ui-button-icon-secondary { 208 | right: .5em; 209 | } 210 | 211 | /* button sets */ 212 | .ui-buttonset { 213 | margin-right: 7px; 214 | } 215 | .ui-buttonset .ui-button { 216 | margin-left: 0; 217 | margin-right: -.3em; 218 | } 219 | 220 | /* workarounds */ 221 | /* reset extra padding in Firefox, see h5bp.com/l */ 222 | input.ui-button::-moz-focus-inner, 223 | button.ui-button::-moz-focus-inner { 224 | border: 0; 225 | padding: 0; 226 | } 227 | .ui-datepicker { 228 | width: 17em; 229 | padding: .2em .2em 0; 230 | display: none; 231 | } 232 | .ui-datepicker .ui-datepicker-header { 233 | position: relative; 234 | padding: .2em 0; 235 | } 236 | .ui-datepicker .ui-datepicker-prev, 237 | .ui-datepicker .ui-datepicker-next { 238 | position: absolute; 239 | top: 2px; 240 | width: 1.8em; 241 | height: 1.8em; 242 | } 243 | .ui-datepicker .ui-datepicker-prev-hover, 244 | .ui-datepicker .ui-datepicker-next-hover { 245 | top: 1px; 246 | } 247 | .ui-datepicker .ui-datepicker-prev { 248 | left: 2px; 249 | } 250 | .ui-datepicker .ui-datepicker-next { 251 | right: 2px; 252 | } 253 | .ui-datepicker .ui-datepicker-prev-hover { 254 | left: 1px; 255 | } 256 | .ui-datepicker .ui-datepicker-next-hover { 257 | right: 1px; 258 | } 259 | .ui-datepicker .ui-datepicker-prev span, 260 | .ui-datepicker .ui-datepicker-next span { 261 | display: block; 262 | position: absolute; 263 | left: 50%; 264 | margin-left: -8px; 265 | top: 50%; 266 | margin-top: -8px; 267 | } 268 | .ui-datepicker .ui-datepicker-title { 269 | margin: 0 2.3em; 270 | line-height: 1.8em; 271 | text-align: center; 272 | } 273 | .ui-datepicker .ui-datepicker-title select { 274 | font-size: 1em; 275 | margin: 1px 0; 276 | } 277 | .ui-datepicker select.ui-datepicker-month-year { 278 | width: 100%; 279 | } 280 | .ui-datepicker select.ui-datepicker-month, 281 | .ui-datepicker select.ui-datepicker-year { 282 | width: 49%; 283 | } 284 | .ui-datepicker table { 285 | width: 100%; 286 | font-size: .9em; 287 | border-collapse: collapse; 288 | margin: 0 0 .4em; 289 | } 290 | .ui-datepicker th { 291 | padding: .7em .3em; 292 | text-align: center; 293 | font-weight: bold; 294 | border: 0; 295 | } 296 | .ui-datepicker td { 297 | border: 0; 298 | padding: 1px; 299 | } 300 | .ui-datepicker td span, 301 | .ui-datepicker td a { 302 | display: block; 303 | padding: .2em; 304 | text-align: right; 305 | text-decoration: none; 306 | } 307 | .ui-datepicker .ui-datepicker-buttonpane { 308 | background-image: none; 309 | margin: .7em 0 0 0; 310 | padding: 0 .2em; 311 | border-left: 0; 312 | border-right: 0; 313 | border-bottom: 0; 314 | } 315 | .ui-datepicker .ui-datepicker-buttonpane button { 316 | float: right; 317 | margin: .5em .2em .4em; 318 | cursor: pointer; 319 | padding: .2em .6em .3em .6em; 320 | width: auto; 321 | overflow: visible; 322 | } 323 | .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { 324 | float: left; 325 | } 326 | 327 | /* with multiple calendars */ 328 | .ui-datepicker.ui-datepicker-multi { 329 | width: auto; 330 | } 331 | .ui-datepicker-multi .ui-datepicker-group { 332 | float: left; 333 | } 334 | .ui-datepicker-multi .ui-datepicker-group table { 335 | width: 95%; 336 | margin: 0 auto .4em; 337 | } 338 | .ui-datepicker-multi-2 .ui-datepicker-group { 339 | width: 50%; 340 | } 341 | .ui-datepicker-multi-3 .ui-datepicker-group { 342 | width: 33.3%; 343 | } 344 | .ui-datepicker-multi-4 .ui-datepicker-group { 345 | width: 25%; 346 | } 347 | .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, 348 | .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { 349 | border-left-width: 0; 350 | } 351 | .ui-datepicker-multi .ui-datepicker-buttonpane { 352 | clear: left; 353 | } 354 | .ui-datepicker-row-break { 355 | clear: both; 356 | width: 100%; 357 | font-size: 0; 358 | } 359 | 360 | /* RTL support */ 361 | .ui-datepicker-rtl { 362 | direction: rtl; 363 | } 364 | .ui-datepicker-rtl .ui-datepicker-prev { 365 | right: 2px; 366 | left: auto; 367 | } 368 | .ui-datepicker-rtl .ui-datepicker-next { 369 | left: 2px; 370 | right: auto; 371 | } 372 | .ui-datepicker-rtl .ui-datepicker-prev:hover { 373 | right: 1px; 374 | left: auto; 375 | } 376 | .ui-datepicker-rtl .ui-datepicker-next:hover { 377 | left: 1px; 378 | right: auto; 379 | } 380 | .ui-datepicker-rtl .ui-datepicker-buttonpane { 381 | clear: right; 382 | } 383 | .ui-datepicker-rtl .ui-datepicker-buttonpane button { 384 | float: left; 385 | } 386 | .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, 387 | .ui-datepicker-rtl .ui-datepicker-group { 388 | float: right; 389 | } 390 | .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, 391 | .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { 392 | border-right-width: 0; 393 | border-left-width: 1px; 394 | } 395 | .ui-dialog { 396 | position: absolute; 397 | top: 0; 398 | left: 0; 399 | padding: .2em; 400 | outline: 0; 401 | } 402 | .ui-dialog .ui-dialog-titlebar { 403 | padding: .4em 1em; 404 | position: relative; 405 | } 406 | .ui-dialog .ui-dialog-title { 407 | float: left; 408 | margin: .1em 0; 409 | white-space: nowrap; 410 | width: 90%; 411 | overflow: hidden; 412 | text-overflow: ellipsis; 413 | } 414 | .ui-dialog .ui-dialog-titlebar-close { 415 | position: absolute; 416 | right: .3em; 417 | top: 50%; 418 | width: 21px; 419 | margin: -10px 0 0 0; 420 | padding: 1px; 421 | height: 20px; 422 | } 423 | .ui-dialog .ui-dialog-content { 424 | position: relative; 425 | border: 0; 426 | padding: .5em 1em; 427 | background: none; 428 | overflow: auto; 429 | } 430 | .ui-dialog .ui-dialog-buttonpane { 431 | text-align: left; 432 | border-width: 1px 0 0 0; 433 | background-image: none; 434 | margin-top: .5em; 435 | padding: .3em 1em .5em .4em; 436 | } 437 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { 438 | float: right; 439 | } 440 | .ui-dialog .ui-dialog-buttonpane button { 441 | margin: .5em .4em .5em 0; 442 | cursor: pointer; 443 | } 444 | .ui-dialog .ui-resizable-se { 445 | width: 12px; 446 | height: 12px; 447 | right: -5px; 448 | bottom: -5px; 449 | background-position: 16px 16px; 450 | } 451 | .ui-draggable .ui-dialog-titlebar { 452 | cursor: move; 453 | } 454 | .ui-menu { 455 | list-style: none; 456 | padding: 2px; 457 | margin: 0; 458 | display: block; 459 | outline: none; 460 | } 461 | .ui-menu .ui-menu { 462 | margin-top: -3px; 463 | position: absolute; 464 | } 465 | .ui-menu .ui-menu-item { 466 | margin: 0; 467 | padding: 0; 468 | width: 100%; 469 | /* support: IE10, see #8844 */ 470 | list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); 471 | } 472 | .ui-menu .ui-menu-divider { 473 | margin: 5px -2px 5px -2px; 474 | height: 0; 475 | font-size: 0; 476 | line-height: 0; 477 | border-width: 1px 0 0 0; 478 | } 479 | .ui-menu .ui-menu-item a { 480 | text-decoration: none; 481 | display: block; 482 | padding: 2px .4em; 483 | line-height: 1.5; 484 | min-height: 0; /* support: IE7 */ 485 | font-weight: normal; 486 | } 487 | .ui-menu .ui-menu-item a.ui-state-focus, 488 | .ui-menu .ui-menu-item a.ui-state-active { 489 | font-weight: normal; 490 | margin: -1px; 491 | } 492 | 493 | .ui-menu .ui-state-disabled { 494 | font-weight: normal; 495 | margin: .4em 0 .2em; 496 | line-height: 1.5; 497 | } 498 | .ui-menu .ui-state-disabled a { 499 | cursor: default; 500 | } 501 | 502 | /* icon support */ 503 | .ui-menu-icons { 504 | position: relative; 505 | } 506 | .ui-menu-icons .ui-menu-item a { 507 | position: relative; 508 | padding-left: 2em; 509 | } 510 | 511 | /* left-aligned */ 512 | .ui-menu .ui-icon { 513 | position: absolute; 514 | top: .2em; 515 | left: .2em; 516 | } 517 | 518 | /* right-aligned */ 519 | .ui-menu .ui-menu-icon { 520 | position: static; 521 | float: right; 522 | } 523 | .ui-progressbar { 524 | height: 2em; 525 | text-align: left; 526 | overflow: hidden; 527 | } 528 | .ui-progressbar .ui-progressbar-value { 529 | margin: -1px; 530 | height: 100%; 531 | } 532 | .ui-progressbar .ui-progressbar-overlay { 533 | background: url("images/animated-overlay.gif"); 534 | height: 100%; 535 | filter: alpha(opacity=25); 536 | opacity: 0.25; 537 | } 538 | .ui-progressbar-indeterminate .ui-progressbar-value { 539 | background-image: none; 540 | } 541 | .ui-resizable { 542 | position: relative; 543 | } 544 | .ui-resizable-handle { 545 | position: absolute; 546 | font-size: 0.1px; 547 | display: block; 548 | } 549 | .ui-resizable-disabled .ui-resizable-handle, 550 | .ui-resizable-autohide .ui-resizable-handle { 551 | display: none; 552 | } 553 | .ui-resizable-n { 554 | cursor: n-resize; 555 | height: 7px; 556 | width: 100%; 557 | top: -5px; 558 | left: 0; 559 | } 560 | .ui-resizable-s { 561 | cursor: s-resize; 562 | height: 7px; 563 | width: 100%; 564 | bottom: -5px; 565 | left: 0; 566 | } 567 | .ui-resizable-e { 568 | cursor: e-resize; 569 | width: 7px; 570 | right: -5px; 571 | top: 0; 572 | height: 100%; 573 | } 574 | .ui-resizable-w { 575 | cursor: w-resize; 576 | width: 7px; 577 | left: -5px; 578 | top: 0; 579 | height: 100%; 580 | } 581 | .ui-resizable-se { 582 | cursor: se-resize; 583 | width: 12px; 584 | height: 12px; 585 | right: 1px; 586 | bottom: 1px; 587 | } 588 | .ui-resizable-sw { 589 | cursor: sw-resize; 590 | width: 9px; 591 | height: 9px; 592 | left: -5px; 593 | bottom: -5px; 594 | } 595 | .ui-resizable-nw { 596 | cursor: nw-resize; 597 | width: 9px; 598 | height: 9px; 599 | left: -5px; 600 | top: -5px; 601 | } 602 | .ui-resizable-ne { 603 | cursor: ne-resize; 604 | width: 9px; 605 | height: 9px; 606 | right: -5px; 607 | top: -5px; 608 | } 609 | .ui-selectable-helper { 610 | position: absolute; 611 | z-index: 100; 612 | border: 1px dotted black; 613 | } 614 | .ui-slider { 615 | position: relative; 616 | text-align: left; 617 | } 618 | .ui-slider .ui-slider-handle { 619 | position: absolute; 620 | z-index: 2; 621 | width: 1.2em; 622 | height: 1.2em; 623 | cursor: default; 624 | } 625 | .ui-slider .ui-slider-range { 626 | position: absolute; 627 | z-index: 1; 628 | font-size: .7em; 629 | display: block; 630 | border: 0; 631 | background-position: 0 0; 632 | } 633 | 634 | /* For IE8 - See #6727 */ 635 | .ui-slider.ui-state-disabled .ui-slider-handle, 636 | .ui-slider.ui-state-disabled .ui-slider-range { 637 | filter: inherit; 638 | } 639 | 640 | .ui-slider-horizontal { 641 | height: .8em; 642 | } 643 | .ui-slider-horizontal .ui-slider-handle { 644 | top: -.3em; 645 | margin-left: -.6em; 646 | } 647 | .ui-slider-horizontal .ui-slider-range { 648 | top: 0; 649 | height: 100%; 650 | } 651 | .ui-slider-horizontal .ui-slider-range-min { 652 | left: 0; 653 | } 654 | .ui-slider-horizontal .ui-slider-range-max { 655 | right: 0; 656 | } 657 | 658 | .ui-slider-vertical { 659 | width: .8em; 660 | height: 100px; 661 | } 662 | .ui-slider-vertical .ui-slider-handle { 663 | left: -.3em; 664 | margin-left: 0; 665 | margin-bottom: -.6em; 666 | } 667 | .ui-slider-vertical .ui-slider-range { 668 | left: 0; 669 | width: 100%; 670 | } 671 | .ui-slider-vertical .ui-slider-range-min { 672 | bottom: 0; 673 | } 674 | .ui-slider-vertical .ui-slider-range-max { 675 | top: 0; 676 | } 677 | .ui-spinner { 678 | position: relative; 679 | display: inline-block; 680 | overflow: hidden; 681 | padding: 0; 682 | vertical-align: middle; 683 | } 684 | .ui-spinner-input { 685 | border: none; 686 | background: none; 687 | color: inherit; 688 | padding: 0; 689 | margin: .2em 0; 690 | vertical-align: middle; 691 | margin-left: .4em; 692 | margin-right: 22px; 693 | } 694 | .ui-spinner-button { 695 | width: 16px; 696 | height: 50%; 697 | font-size: .5em; 698 | padding: 0; 699 | margin: 0; 700 | text-align: center; 701 | position: absolute; 702 | cursor: default; 703 | display: block; 704 | overflow: hidden; 705 | right: 0; 706 | } 707 | /* more specificity required here to overide default borders */ 708 | .ui-spinner a.ui-spinner-button { 709 | border-top: none; 710 | border-bottom: none; 711 | border-right: none; 712 | } 713 | /* vertical centre icon */ 714 | .ui-spinner .ui-icon { 715 | position: absolute; 716 | margin-top: -8px; 717 | top: 50%; 718 | left: 0; 719 | } 720 | .ui-spinner-up { 721 | top: 0; 722 | } 723 | .ui-spinner-down { 724 | bottom: 0; 725 | } 726 | 727 | /* TR overrides */ 728 | .ui-spinner .ui-icon-triangle-1-s { 729 | /* need to fix icons sprite */ 730 | background-position: -65px -16px; 731 | } 732 | .ui-tabs { 733 | position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 734 | padding: .2em; 735 | } 736 | .ui-tabs .ui-tabs-nav { 737 | margin: 0; 738 | padding: .2em .2em 0; 739 | } 740 | .ui-tabs .ui-tabs-nav li { 741 | list-style: none; 742 | float: left; 743 | position: relative; 744 | top: 0; 745 | margin: 1px .2em 0 0; 746 | border-bottom-width: 0; 747 | padding: 0; 748 | white-space: nowrap; 749 | } 750 | .ui-tabs .ui-tabs-nav li a { 751 | float: left; 752 | padding: .5em 1em; 753 | text-decoration: none; 754 | } 755 | .ui-tabs .ui-tabs-nav li.ui-tabs-active { 756 | margin-bottom: -1px; 757 | padding-bottom: 1px; 758 | } 759 | .ui-tabs .ui-tabs-nav li.ui-tabs-active a, 760 | .ui-tabs .ui-tabs-nav li.ui-state-disabled a, 761 | .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { 762 | cursor: text; 763 | } 764 | .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ 765 | .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { 766 | cursor: pointer; 767 | } 768 | .ui-tabs .ui-tabs-panel { 769 | display: block; 770 | border-width: 0; 771 | padding: 1em 1.4em; 772 | background: none; 773 | } 774 | .ui-tooltip { 775 | padding: 8px; 776 | position: absolute; 777 | z-index: 9999; 778 | max-width: 300px; 779 | -webkit-box-shadow: 0 0 5px #aaa; 780 | box-shadow: 0 0 5px #aaa; 781 | } 782 | body .ui-tooltip { 783 | border-width: 2px; 784 | } 785 | 786 | /* Component containers 787 | ----------------------------------*/ 788 | .ui-widget { 789 | font-family: Verdana,Arial,sans-serif; 790 | font-size: 1.1em; 791 | } 792 | .ui-widget .ui-widget { 793 | font-size: 1em; 794 | } 795 | .ui-widget input, 796 | .ui-widget select, 797 | .ui-widget textarea, 798 | .ui-widget button { 799 | font-family: Verdana,Arial,sans-serif; 800 | font-size: 1em; 801 | } 802 | .ui-widget-content { 803 | border: 1px solid #aaaaaa; 804 | background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; 805 | color: #222222; 806 | } 807 | .ui-widget-content a { 808 | color: #222222; 809 | } 810 | .ui-widget-header { 811 | border: 1px solid #aaaaaa; 812 | background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; 813 | color: #222222; 814 | font-weight: bold; 815 | } 816 | .ui-widget-header a { 817 | color: #222222; 818 | } 819 | 820 | /* Interaction states 821 | ----------------------------------*/ 822 | .ui-state-default, 823 | .ui-widget-content .ui-state-default, 824 | .ui-widget-header .ui-state-default { 825 | border: 1px solid #d3d3d3; 826 | background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; 827 | font-weight: normal; 828 | color: #555555; 829 | } 830 | .ui-state-default a, 831 | .ui-state-default a:link, 832 | .ui-state-default a:visited { 833 | color: #555555; 834 | text-decoration: none; 835 | } 836 | .ui-state-hover, 837 | .ui-widget-content .ui-state-hover, 838 | .ui-widget-header .ui-state-hover, 839 | .ui-state-focus, 840 | .ui-widget-content .ui-state-focus, 841 | .ui-widget-header .ui-state-focus { 842 | border: 1px solid #999999; 843 | background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; 844 | font-weight: normal; 845 | color: #212121; 846 | } 847 | .ui-state-hover a, 848 | .ui-state-hover a:hover, 849 | .ui-state-hover a:link, 850 | .ui-state-hover a:visited { 851 | color: #212121; 852 | text-decoration: none; 853 | } 854 | .ui-state-active, 855 | .ui-widget-content .ui-state-active, 856 | .ui-widget-header .ui-state-active { 857 | border: 1px solid #aaaaaa; 858 | background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; 859 | font-weight: normal; 860 | color: #212121; 861 | } 862 | .ui-state-active a, 863 | .ui-state-active a:link, 864 | .ui-state-active a:visited { 865 | color: #212121; 866 | text-decoration: none; 867 | } 868 | 869 | /* Interaction Cues 870 | ----------------------------------*/ 871 | .ui-state-highlight, 872 | .ui-widget-content .ui-state-highlight, 873 | .ui-widget-header .ui-state-highlight { 874 | border: 1px solid #fcefa1; 875 | background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; 876 | color: #363636; 877 | } 878 | .ui-state-highlight a, 879 | .ui-widget-content .ui-state-highlight a, 880 | .ui-widget-header .ui-state-highlight a { 881 | color: #363636; 882 | } 883 | .ui-state-error, 884 | .ui-widget-content .ui-state-error, 885 | .ui-widget-header .ui-state-error { 886 | border: 1px solid #cd0a0a; 887 | background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; 888 | color: #cd0a0a; 889 | } 890 | .ui-state-error a, 891 | .ui-widget-content .ui-state-error a, 892 | .ui-widget-header .ui-state-error a { 893 | color: #cd0a0a; 894 | } 895 | .ui-state-error-text, 896 | .ui-widget-content .ui-state-error-text, 897 | .ui-widget-header .ui-state-error-text { 898 | color: #cd0a0a; 899 | } 900 | .ui-priority-primary, 901 | .ui-widget-content .ui-priority-primary, 902 | .ui-widget-header .ui-priority-primary { 903 | font-weight: bold; 904 | } 905 | .ui-priority-secondary, 906 | .ui-widget-content .ui-priority-secondary, 907 | .ui-widget-header .ui-priority-secondary { 908 | opacity: .7; 909 | filter:Alpha(Opacity=70); 910 | font-weight: normal; 911 | } 912 | .ui-state-disabled, 913 | .ui-widget-content .ui-state-disabled, 914 | .ui-widget-header .ui-state-disabled { 915 | opacity: .35; 916 | filter:Alpha(Opacity=35); 917 | background-image: none; 918 | } 919 | .ui-state-disabled .ui-icon { 920 | filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ 921 | } 922 | 923 | /* Icons 924 | ----------------------------------*/ 925 | 926 | /* states and images */ 927 | .ui-icon { 928 | width: 16px; 929 | height: 16px; 930 | } 931 | .ui-icon, 932 | .ui-widget-content .ui-icon { 933 | background-image: url(images/ui-icons_222222_256x240.png); 934 | } 935 | .ui-widget-header .ui-icon { 936 | background-image: url(images/ui-icons_222222_256x240.png); 937 | } 938 | .ui-state-default .ui-icon { 939 | background-image: url(images/ui-icons_888888_256x240.png); 940 | } 941 | .ui-state-hover .ui-icon, 942 | .ui-state-focus .ui-icon { 943 | background-image: url(images/ui-icons_454545_256x240.png); 944 | } 945 | .ui-state-active .ui-icon { 946 | background-image: url(images/ui-icons_454545_256x240.png); 947 | } 948 | .ui-state-highlight .ui-icon { 949 | background-image: url(images/ui-icons_2e83ff_256x240.png); 950 | } 951 | .ui-state-error .ui-icon, 952 | .ui-state-error-text .ui-icon { 953 | background-image: url(images/ui-icons_cd0a0a_256x240.png); 954 | } 955 | 956 | /* positioning */ 957 | .ui-icon-blank { background-position: 16px 16px; } 958 | .ui-icon-carat-1-n { background-position: 0 0; } 959 | .ui-icon-carat-1-ne { background-position: -16px 0; } 960 | .ui-icon-carat-1-e { background-position: -32px 0; } 961 | .ui-icon-carat-1-se { background-position: -48px 0; } 962 | .ui-icon-carat-1-s { background-position: -64px 0; } 963 | .ui-icon-carat-1-sw { background-position: -80px 0; } 964 | .ui-icon-carat-1-w { background-position: -96px 0; } 965 | .ui-icon-carat-1-nw { background-position: -112px 0; } 966 | .ui-icon-carat-2-n-s { background-position: -128px 0; } 967 | .ui-icon-carat-2-e-w { background-position: -144px 0; } 968 | .ui-icon-triangle-1-n { background-position: 0 -16px; } 969 | .ui-icon-triangle-1-ne { background-position: -16px -16px; } 970 | .ui-icon-triangle-1-e { background-position: -32px -16px; } 971 | .ui-icon-triangle-1-se { background-position: -48px -16px; } 972 | .ui-icon-triangle-1-s { background-position: -64px -16px; } 973 | .ui-icon-triangle-1-sw { background-position: -80px -16px; } 974 | .ui-icon-triangle-1-w { background-position: -96px -16px; } 975 | .ui-icon-triangle-1-nw { background-position: -112px -16px; } 976 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; } 977 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; } 978 | .ui-icon-arrow-1-n { background-position: 0 -32px; } 979 | .ui-icon-arrow-1-ne { background-position: -16px -32px; } 980 | .ui-icon-arrow-1-e { background-position: -32px -32px; } 981 | .ui-icon-arrow-1-se { background-position: -48px -32px; } 982 | .ui-icon-arrow-1-s { background-position: -64px -32px; } 983 | .ui-icon-arrow-1-sw { background-position: -80px -32px; } 984 | .ui-icon-arrow-1-w { background-position: -96px -32px; } 985 | .ui-icon-arrow-1-nw { background-position: -112px -32px; } 986 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; } 987 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } 988 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; } 989 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } 990 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; } 991 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; } 992 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; } 993 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; } 994 | .ui-icon-arrowthick-1-n { background-position: 0 -48px; } 995 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } 996 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; } 997 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; } 998 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; } 999 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } 1000 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; } 1001 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } 1002 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } 1003 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } 1004 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } 1005 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } 1006 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } 1007 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } 1008 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } 1009 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } 1010 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } 1011 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } 1012 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } 1013 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } 1014 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } 1015 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } 1016 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } 1017 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } 1018 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } 1019 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } 1020 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } 1021 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } 1022 | .ui-icon-arrow-4 { background-position: 0 -80px; } 1023 | .ui-icon-arrow-4-diag { background-position: -16px -80px; } 1024 | .ui-icon-extlink { background-position: -32px -80px; } 1025 | .ui-icon-newwin { background-position: -48px -80px; } 1026 | .ui-icon-refresh { background-position: -64px -80px; } 1027 | .ui-icon-shuffle { background-position: -80px -80px; } 1028 | .ui-icon-transfer-e-w { background-position: -96px -80px; } 1029 | .ui-icon-transferthick-e-w { background-position: -112px -80px; } 1030 | .ui-icon-folder-collapsed { background-position: 0 -96px; } 1031 | .ui-icon-folder-open { background-position: -16px -96px; } 1032 | .ui-icon-document { background-position: -32px -96px; } 1033 | .ui-icon-document-b { background-position: -48px -96px; } 1034 | .ui-icon-note { background-position: -64px -96px; } 1035 | .ui-icon-mail-closed { background-position: -80px -96px; } 1036 | .ui-icon-mail-open { background-position: -96px -96px; } 1037 | .ui-icon-suitcase { background-position: -112px -96px; } 1038 | .ui-icon-comment { background-position: -128px -96px; } 1039 | .ui-icon-person { background-position: -144px -96px; } 1040 | .ui-icon-print { background-position: -160px -96px; } 1041 | .ui-icon-trash { background-position: -176px -96px; } 1042 | .ui-icon-locked { background-position: -192px -96px; } 1043 | .ui-icon-unlocked { background-position: -208px -96px; } 1044 | .ui-icon-bookmark { background-position: -224px -96px; } 1045 | .ui-icon-tag { background-position: -240px -96px; } 1046 | .ui-icon-home { background-position: 0 -112px; } 1047 | .ui-icon-flag { background-position: -16px -112px; } 1048 | .ui-icon-calendar { background-position: -32px -112px; } 1049 | .ui-icon-cart { background-position: -48px -112px; } 1050 | .ui-icon-pencil { background-position: -64px -112px; } 1051 | .ui-icon-clock { background-position: -80px -112px; } 1052 | .ui-icon-disk { background-position: -96px -112px; } 1053 | .ui-icon-calculator { background-position: -112px -112px; } 1054 | .ui-icon-zoomin { background-position: -128px -112px; } 1055 | .ui-icon-zoomout { background-position: -144px -112px; } 1056 | .ui-icon-search { background-position: -160px -112px; } 1057 | .ui-icon-wrench { background-position: -176px -112px; } 1058 | .ui-icon-gear { background-position: -192px -112px; } 1059 | .ui-icon-heart { background-position: -208px -112px; } 1060 | .ui-icon-star { background-position: -224px -112px; } 1061 | .ui-icon-link { background-position: -240px -112px; } 1062 | .ui-icon-cancel { background-position: 0 -128px; } 1063 | .ui-icon-plus { background-position: -16px -128px; } 1064 | .ui-icon-plusthick { background-position: -32px -128px; } 1065 | .ui-icon-minus { background-position: -48px -128px; } 1066 | .ui-icon-minusthick { background-position: -64px -128px; } 1067 | .ui-icon-close { background-position: -80px -128px; } 1068 | .ui-icon-closethick { background-position: -96px -128px; } 1069 | .ui-icon-key { background-position: -112px -128px; } 1070 | .ui-icon-lightbulb { background-position: -128px -128px; } 1071 | .ui-icon-scissors { background-position: -144px -128px; } 1072 | .ui-icon-clipboard { background-position: -160px -128px; } 1073 | .ui-icon-copy { background-position: -176px -128px; } 1074 | .ui-icon-contact { background-position: -192px -128px; } 1075 | .ui-icon-image { background-position: -208px -128px; } 1076 | .ui-icon-video { background-position: -224px -128px; } 1077 | .ui-icon-script { background-position: -240px -128px; } 1078 | .ui-icon-alert { background-position: 0 -144px; } 1079 | .ui-icon-info { background-position: -16px -144px; } 1080 | .ui-icon-notice { background-position: -32px -144px; } 1081 | .ui-icon-help { background-position: -48px -144px; } 1082 | .ui-icon-check { background-position: -64px -144px; } 1083 | .ui-icon-bullet { background-position: -80px -144px; } 1084 | .ui-icon-radio-on { background-position: -96px -144px; } 1085 | .ui-icon-radio-off { background-position: -112px -144px; } 1086 | .ui-icon-pin-w { background-position: -128px -144px; } 1087 | .ui-icon-pin-s { background-position: -144px -144px; } 1088 | .ui-icon-play { background-position: 0 -160px; } 1089 | .ui-icon-pause { background-position: -16px -160px; } 1090 | .ui-icon-seek-next { background-position: -32px -160px; } 1091 | .ui-icon-seek-prev { background-position: -48px -160px; } 1092 | .ui-icon-seek-end { background-position: -64px -160px; } 1093 | .ui-icon-seek-start { background-position: -80px -160px; } 1094 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ 1095 | .ui-icon-seek-first { background-position: -80px -160px; } 1096 | .ui-icon-stop { background-position: -96px -160px; } 1097 | .ui-icon-eject { background-position: -112px -160px; } 1098 | .ui-icon-volume-off { background-position: -128px -160px; } 1099 | .ui-icon-volume-on { background-position: -144px -160px; } 1100 | .ui-icon-power { background-position: 0 -176px; } 1101 | .ui-icon-signal-diag { background-position: -16px -176px; } 1102 | .ui-icon-signal { background-position: -32px -176px; } 1103 | .ui-icon-battery-0 { background-position: -48px -176px; } 1104 | .ui-icon-battery-1 { background-position: -64px -176px; } 1105 | .ui-icon-battery-2 { background-position: -80px -176px; } 1106 | .ui-icon-battery-3 { background-position: -96px -176px; } 1107 | .ui-icon-circle-plus { background-position: 0 -192px; } 1108 | .ui-icon-circle-minus { background-position: -16px -192px; } 1109 | .ui-icon-circle-close { background-position: -32px -192px; } 1110 | .ui-icon-circle-triangle-e { background-position: -48px -192px; } 1111 | .ui-icon-circle-triangle-s { background-position: -64px -192px; } 1112 | .ui-icon-circle-triangle-w { background-position: -80px -192px; } 1113 | .ui-icon-circle-triangle-n { background-position: -96px -192px; } 1114 | .ui-icon-circle-arrow-e { background-position: -112px -192px; } 1115 | .ui-icon-circle-arrow-s { background-position: -128px -192px; } 1116 | .ui-icon-circle-arrow-w { background-position: -144px -192px; } 1117 | .ui-icon-circle-arrow-n { background-position: -160px -192px; } 1118 | .ui-icon-circle-zoomin { background-position: -176px -192px; } 1119 | .ui-icon-circle-zoomout { background-position: -192px -192px; } 1120 | .ui-icon-circle-check { background-position: -208px -192px; } 1121 | .ui-icon-circlesmall-plus { background-position: 0 -208px; } 1122 | .ui-icon-circlesmall-minus { background-position: -16px -208px; } 1123 | .ui-icon-circlesmall-close { background-position: -32px -208px; } 1124 | .ui-icon-squaresmall-plus { background-position: -48px -208px; } 1125 | .ui-icon-squaresmall-minus { background-position: -64px -208px; } 1126 | .ui-icon-squaresmall-close { background-position: -80px -208px; } 1127 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } 1128 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } 1129 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; } 1130 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } 1131 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } 1132 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; } 1133 | 1134 | 1135 | /* Misc visuals 1136 | ----------------------------------*/ 1137 | 1138 | /* Corner radius */ 1139 | .ui-corner-all, 1140 | .ui-corner-top, 1141 | .ui-corner-left, 1142 | .ui-corner-tl { 1143 | border-top-left-radius: 4px; 1144 | } 1145 | .ui-corner-all, 1146 | .ui-corner-top, 1147 | .ui-corner-right, 1148 | .ui-corner-tr { 1149 | border-top-right-radius: 4px; 1150 | } 1151 | .ui-corner-all, 1152 | .ui-corner-bottom, 1153 | .ui-corner-left, 1154 | .ui-corner-bl { 1155 | border-bottom-left-radius: 4px; 1156 | } 1157 | .ui-corner-all, 1158 | .ui-corner-bottom, 1159 | .ui-corner-right, 1160 | .ui-corner-br { 1161 | border-bottom-right-radius: 4px; 1162 | } 1163 | 1164 | /* Overlays */ 1165 | .ui-widget-overlay { 1166 | background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; 1167 | opacity: .3; 1168 | filter: Alpha(Opacity=30); 1169 | } 1170 | .ui-widget-shadow { 1171 | margin: -8px 0 0 -8px; 1172 | padding: 8px; 1173 | background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; 1174 | opacity: .3; 1175 | filter: Alpha(Opacity=30); 1176 | border-radius: 8px; 1177 | } 1178 | -------------------------------------------------------------------------------- /static/css/lean-slider.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Lean Slider v1.0 3 | * http://dev7studios.com/lean-slider 4 | * 5 | * Copyright 2012, Dev7studios 6 | * Free to use and abuse under the MIT license. 7 | * http://www.opensource.org/licenses/mit-license.php 8 | */ 9 | 10 | .lean-slider { 11 | position: relative; 12 | *zoom: 1; 13 | } 14 | .lean-slider:before, 15 | .lean-slider:after { 16 | content: " "; 17 | display: table; 18 | } 19 | .lean-slider:after { 20 | clear: both; 21 | } 22 | 23 | .lean-slider-slide { 24 | float: left; 25 | width: 100%; 26 | margin-right: -100%; 27 | display: none; 28 | } 29 | .lean-slider-slide.current { display: block; } -------------------------------------------------------------------------------- /static/css/main.css: -------------------------------------------------------------------------------- 1 | .menu { 2 | float: right; 3 | margin-top: 8px; 4 | } 5 | 6 | .menu li { 7 | display: inline; 8 | } 9 | 10 | .menu li + li { 11 | margin-left: 35px; 12 | } 13 | 14 | .menu li a { 15 | color: #999; 16 | text-decoration: none; 17 | } 18 | 19 | body { 20 | margin: 0; 21 | padding: 0; 22 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 23 | color: #444; 24 | } 25 | 26 | /* 27 | * Create dark grey header with a white logo 28 | */ 29 | 30 | header { 31 | background-color: #2B2B2B; 32 | height: 35px; 33 | width: 100%; 34 | opacity: .9; 35 | margin-bottom: 10px; 36 | } 37 | 38 | header h1.logo { 39 | margin: 0; 40 | font-size: 1.7em; 41 | color: #fff; 42 | /*text-transform: uppercase;*/ 43 | float: left; 44 | } 45 | 46 | header h1.logo:hover { 47 | color: #fff; 48 | text-decoration: none; 49 | } 50 | 51 | /* 52 | * Center the body content 53 | */ 54 | 55 | .container { 56 | width: 940px; 57 | margin: 0 auto; 58 | } 59 | 60 | div.jumbo { 61 | padding: 10px 0 30px 0; 62 | background-color: #eeeeee; 63 | -webkit-border-radius: 6px; 64 | -moz-border-radius: 6px; 65 | border-radius: 6px; 66 | } 67 | 68 | h2 { 69 | font-size: 3em; 70 | margin-top: 40px; 71 | text-align: center; 72 | letter-spacing: -2px; 73 | } 74 | 75 | h3 { 76 | font-size: 1.7em; 77 | font-weight: 100; 78 | margin-top: 30px; 79 | text-align: center; 80 | letter-spacing: -1px; 81 | color: #999; 82 | } 83 | 84 | #sidebar { 85 | float: left; 86 | width: 20%; 87 | } 88 | 89 | #container { 90 | float: right; 91 | width: 75%; 92 | } 93 | 94 | .params{ 95 | font-size: .7em; 96 | color: #999; 97 | 98 | } 99 | 100 | 101 | 102 | #loading-div-background 103 | { 104 | display:none; 105 | position:fixed; 106 | top:0; 107 | left:0; 108 | background:black; 109 | width:100%; 110 | height:100%; 111 | } 112 | 113 | #loading-div 114 | { 115 | width: 300px; 116 | height: 200px; 117 | background-color: #0c0b0b; 118 | text-align:center; 119 | position:absolute; 120 | left: 50%; 121 | top: 50%; 122 | margin-left:-150px; 123 | margin-top: -100px; 124 | } -------------------------------------------------------------------------------- /static/css/print/paper.css: -------------------------------------------------------------------------------- 1 | /* Default Print Stylesheet Template 2 | by Rob Glazebrook of CSSnewbie.com 3 | Last Updated: June 4, 2008 4 | 5 | Feel free (nay, compelled) to edit, append, and 6 | manipulate this file as you see fit. */ 7 | 8 | 9 | /* SECTION 1: Set default width, margin, float, and 10 | background. This prevents elements from extending 11 | beyond the edge of the printed page, and prevents 12 | unnecessary background images from printing */ 13 | body { 14 | background: #fff; 15 | font-size: 13pt; 16 | width: auto; 17 | height: auto; 18 | border: 0; 19 | margin: 0 5%; 20 | padding: 0; 21 | float: none !important; 22 | overflow: visible; 23 | } 24 | html { 25 | background: #fff; 26 | width: auto; 27 | height: auto; 28 | overflow: visible; 29 | } 30 | 31 | /* SECTION 2: Remove any elements not needed in print. 32 | This would include navigation, ads, sidebars, etc. */ 33 | .nestedarrow, 34 | .controls, 35 | .reveal .progress, 36 | .reveal.overview, 37 | .fork-reveal, 38 | .share-reveal, 39 | .state-background { 40 | display: none !important; 41 | } 42 | 43 | /* SECTION 3: Set body font face, size, and color. 44 | Consider using a serif font for readability. */ 45 | body, p, td, li, div, a { 46 | font-size: 16pt!important; 47 | font-family: Georgia, "Times New Roman", Times, serif !important; 48 | color: #000; 49 | } 50 | 51 | /* SECTION 4: Set heading font face, sizes, and color. 52 | Differentiate your headings from your body text. 53 | Perhaps use a large sans-serif for distinction. */ 54 | h1,h2,h3,h4,h5,h6 { 55 | color: #000!important; 56 | height: auto; 57 | line-height: normal; 58 | font-family: Georgia, "Times New Roman", Times, serif !important; 59 | text-shadow: 0 0 0 #000 !important; 60 | text-align: left; 61 | letter-spacing: normal; 62 | } 63 | /* Need to reduce the size of the fonts for printing */ 64 | h1 { font-size: 26pt !important; } 65 | h2 { font-size: 22pt !important; } 66 | h3 { font-size: 20pt !important; } 67 | h4 { font-size: 20pt !important; font-variant: small-caps; } 68 | h5 { font-size: 19pt !important; } 69 | h6 { font-size: 18pt !important; font-style: italic; } 70 | 71 | /* SECTION 5: Make hyperlinks more usable. 72 | Ensure links are underlined, and consider appending 73 | the URL to the end of the link for usability. */ 74 | a:link, 75 | a:visited { 76 | color: #000 !important; 77 | font-weight: bold; 78 | text-decoration: underline; 79 | } 80 | /* 81 | .reveal a:link:after, 82 | .reveal a:visited:after { 83 | content: " (" attr(href) ") "; 84 | color: #222 !important; 85 | font-size: 90%; 86 | } 87 | */ 88 | 89 | 90 | /* SECTION 6: more reveal.js specific additions by @skypanther */ 91 | ul, ol, div, p { 92 | visibility: visible; 93 | position: static; 94 | width: auto; 95 | height: auto; 96 | display: block; 97 | overflow: visible; 98 | margin: auto; 99 | text-align: left !important; 100 | } 101 | .reveal .slides { 102 | position: static; 103 | width: auto; 104 | height: auto; 105 | 106 | left: auto; 107 | top: auto; 108 | margin-left: auto; 109 | margin-top: auto; 110 | padding: auto; 111 | 112 | overflow: visible; 113 | display: block; 114 | 115 | text-align: center; 116 | -webkit-perspective: none; 117 | -moz-perspective: none; 118 | -ms-perspective: none; 119 | perspective: none; 120 | 121 | -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */ 122 | -moz-perspective-origin: 50% 50%; 123 | -ms-perspective-origin: 50% 50%; 124 | perspective-origin: 50% 50%; 125 | } 126 | .reveal .slides>section, 127 | .reveal .slides>section>section { 128 | 129 | visibility: visible !important; 130 | position: static !important; 131 | width: 90% !important; 132 | height: auto !important; 133 | display: block !important; 134 | overflow: visible !important; 135 | 136 | left: 0% !important; 137 | top: 0% !important; 138 | margin-left: 0px !important; 139 | margin-top: 0px !important; 140 | padding: 20px 0px !important; 141 | 142 | opacity: 1 !important; 143 | 144 | -webkit-transform-style: flat !important; 145 | -moz-transform-style: flat !important; 146 | -ms-transform-style: flat !important; 147 | transform-style: flat !important; 148 | 149 | -webkit-transform: none !important; 150 | -moz-transform: none !important; 151 | -ms-transform: none !important; 152 | transform: none !important; 153 | } 154 | .reveal section { 155 | page-break-after: always !important; 156 | display: block !important; 157 | } 158 | .reveal section .fragment { 159 | opacity: 1 !important; 160 | visibility: visible !important; 161 | 162 | -webkit-transform: none !important; 163 | -moz-transform: none !important; 164 | -ms-transform: none !important; 165 | transform: none !important; 166 | } 167 | .reveal section:last-of-type { 168 | page-break-after: avoid !important; 169 | } 170 | .reveal section img { 171 | display: block; 172 | margin: 15px 0px; 173 | background: rgba(255,255,255,1); 174 | border: 1px solid #666; 175 | box-shadow: none; 176 | } -------------------------------------------------------------------------------- /static/css/print/pdf.css: -------------------------------------------------------------------------------- 1 | /* Default Print Stylesheet Template 2 | by Rob Glazebrook of CSSnewbie.com 3 | Last Updated: June 4, 2008 4 | 5 | Feel free (nay, compelled) to edit, append, and 6 | manipulate this file as you see fit. */ 7 | 8 | 9 | /* SECTION 1: Set default width, margin, float, and 10 | background. This prevents elements from extending 11 | beyond the edge of the printed page, and prevents 12 | unnecessary background images from printing */ 13 | 14 | * { 15 | -webkit-print-color-adjust: exact; 16 | } 17 | 18 | body { 19 | font-size: 18pt; 20 | width: 297mm; 21 | height: 229mm; 22 | margin: 0 auto !important; 23 | border: 0; 24 | padding: 0; 25 | float: none !important; 26 | overflow: visible; 27 | } 28 | 29 | html { 30 | width: 100%; 31 | height: 100%; 32 | overflow: visible; 33 | } 34 | 35 | @page { 36 | size: letter landscape; 37 | margin: 0; 38 | } 39 | 40 | /* SECTION 2: Remove any elements not needed in print. 41 | This would include navigation, ads, sidebars, etc. */ 42 | .nestedarrow, 43 | .controls, 44 | .reveal .progress, 45 | .reveal.overview, 46 | .fork-reveal, 47 | .share-reveal, 48 | .state-background { 49 | display: none !important; 50 | } 51 | 52 | /* SECTION 3: Set body font face, size, and color. 53 | Consider using a serif font for readability. */ 54 | body, p, td, li, div { 55 | font-size: 18pt; 56 | } 57 | 58 | /* SECTION 4: Set heading font face, sizes, and color. 59 | Differentiate your headings from your body text. 60 | Perhaps use a large sans-serif for distinction. */ 61 | h1,h2,h3,h4,h5,h6 { 62 | text-shadow: 0 0 0 #000 !important; 63 | } 64 | 65 | /* SECTION 5: Make hyperlinks more usable. 66 | Ensure links are underlined, and consider appending 67 | the URL to the end of the link for usability. */ 68 | a:link, 69 | a:visited { 70 | font-weight: bold; 71 | text-decoration: underline; 72 | } 73 | 74 | .reveal pre code { 75 | overflow: hidden !important; 76 | font-family: monospace !important; 77 | } 78 | 79 | 80 | /* SECTION 6: more reveal.js specific additions by @skypanther */ 81 | ul, ol, div, p { 82 | visibility: visible; 83 | position: static; 84 | width: auto; 85 | height: auto; 86 | display: block; 87 | overflow: visible; 88 | margin: auto; 89 | } 90 | .reveal { 91 | width: auto !important; 92 | height: auto !important; 93 | overflow: hidden !important; 94 | } 95 | .reveal .slides { 96 | position: static; 97 | width: 100%; 98 | height: auto; 99 | 100 | left: auto; 101 | top: auto; 102 | margin: 0 !important; 103 | padding: 0 !important; 104 | 105 | overflow: visible; 106 | display: block; 107 | 108 | text-align: center; 109 | 110 | -webkit-perspective: none; 111 | -moz-perspective: none; 112 | -ms-perspective: none; 113 | perspective: none; 114 | 115 | -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */ 116 | -moz-perspective-origin: 50% 50%; 117 | -ms-perspective-origin: 50% 50%; 118 | perspective-origin: 50% 50%; 119 | } 120 | .reveal .slides section { 121 | 122 | page-break-after: always !important; 123 | 124 | visibility: visible !important; 125 | position: relative !important; 126 | width: 100% !important; 127 | height: 229mm !important; 128 | min-height: 229mm !important; 129 | display: block !important; 130 | overflow: hidden !important; 131 | 132 | left: 0 !important; 133 | top: 0 !important; 134 | margin: 0 !important; 135 | padding: 2cm 2cm 0 2cm !important; 136 | box-sizing: border-box !important; 137 | 138 | opacity: 1 !important; 139 | 140 | -webkit-transform-style: flat !important; 141 | -moz-transform-style: flat !important; 142 | -ms-transform-style: flat !important; 143 | transform-style: flat !important; 144 | 145 | -webkit-transform: none !important; 146 | -moz-transform: none !important; 147 | -ms-transform: none !important; 148 | transform: none !important; 149 | } 150 | .reveal section.stack { 151 | margin: 0 !important; 152 | padding: 0 !important; 153 | page-break-after: avoid !important; 154 | height: auto !important; 155 | min-height: auto !important; 156 | } 157 | .reveal .absolute-element { 158 | margin-left: 2.2cm; 159 | margin-top: 1.8cm; 160 | } 161 | .reveal section .fragment { 162 | opacity: 1 !important; 163 | visibility: visible !important; 164 | 165 | -webkit-transform: none !important; 166 | -moz-transform: none !important; 167 | -ms-transform: none !important; 168 | transform: none !important; 169 | } 170 | .reveal section .slide-background { 171 | position: absolute; 172 | top: 0; 173 | left: 0; 174 | width: 100%; 175 | z-index: 0; 176 | } 177 | .reveal section>* { 178 | position: relative; 179 | z-index: 1; 180 | } 181 | .reveal img { 182 | box-shadow: none; 183 | } 184 | .reveal .roll { 185 | overflow: visible; 186 | line-height: 1em; 187 | } 188 | .reveal small a { 189 | font-size: 16pt !important; 190 | } 191 | -------------------------------------------------------------------------------- /static/css/reveal.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /*! 4 | * reveal.js 5 | * http://lab.hakim.se/reveal-js 6 | * MIT licensed 7 | * 8 | * Copyright (C) 2013 Hakim El Hattab, http://hakim.se 9 | */ 10 | 11 | 12 | /********************************************* 13 | * RESET STYLES 14 | *********************************************/ 15 | 16 | html, body, .reveal div, .reveal span, .reveal applet, .reveal object, .reveal iframe, 17 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6, .reveal p, .reveal blockquote, .reveal pre, 18 | .reveal a, .reveal abbr, .reveal acronym, .reveal address, .reveal big, .reveal cite, .reveal code, 19 | .reveal del, .reveal dfn, .reveal em, .reveal img, .reveal ins, .reveal kbd, .reveal q, .reveal s, .reveal samp, 20 | .reveal small, .reveal strike, .reveal strong, .reveal sub, .reveal sup, .reveal tt, .reveal var, 21 | .reveal b, .reveal u, .reveal i, .reveal center, 22 | .reveal dl, .reveal dt, .reveal dd, .reveal ol, .reveal ul, .reveal li, 23 | .reveal fieldset, .reveal form, .reveal label, .reveal legend, 24 | .reveal table, .reveal caption, .reveal tbody, .reveal tfoot, .reveal thead, .reveal tr, .reveal th, .reveal td, 25 | .reveal article, .reveal aside, .reveal canvas, .reveal details, .reveal embed, 26 | .reveal figure, .reveal figcaption, .reveal footer, .reveal header, .reveal hgroup, 27 | .reveal menu, .reveal nav, .reveal output, .reveal ruby, .reveal section, .reveal summary, 28 | .reveal time, .reveal mark, .reveal audio, video { 29 | margin: 0; 30 | padding: 0; 31 | border: 0; 32 | font-size: 100%; 33 | font: inherit; 34 | vertical-align: baseline; 35 | } 36 | 37 | .reveal article, .reveal aside, .reveal details, .reveal figcaption, .reveal figure, 38 | .reveal footer, .reveal header, .reveal hgroup, .reveal menu, .reveal nav, .reveal section { 39 | display: block; 40 | } 41 | 42 | 43 | /********************************************* 44 | * GLOBAL STYLES 45 | *********************************************/ 46 | 47 | html, 48 | body { 49 | width: 100%; 50 | height: 100%; 51 | overflow: hidden; 52 | } 53 | 54 | body { 55 | position: relative; 56 | line-height: 1; 57 | } 58 | 59 | ::selection { 60 | background: #FF5E99; 61 | color: #fff; 62 | text-shadow: none; 63 | } 64 | 65 | 66 | /********************************************* 67 | * HEADERS 68 | *********************************************/ 69 | 70 | .reveal h1, 71 | .reveal h2, 72 | .reveal h3, 73 | .reveal h4, 74 | .reveal h5, 75 | .reveal h6 { 76 | -webkit-hyphens: auto; 77 | -moz-hyphens: auto; 78 | hyphens: auto; 79 | 80 | word-wrap: break-word; 81 | line-height: 1; 82 | } 83 | 84 | .reveal h1 { font-size: 3.77em; } 85 | .reveal h2 { font-size: 2.11em; } 86 | .reveal h3 { font-size: 1.55em; } 87 | .reveal h4 { font-size: 1em; } 88 | 89 | 90 | /********************************************* 91 | * VIEW FRAGMENTS 92 | *********************************************/ 93 | 94 | .reveal .slides section .fragment { 95 | opacity: 0; 96 | 97 | -webkit-transition: all .2s ease; 98 | -moz-transition: all .2s ease; 99 | -ms-transition: all .2s ease; 100 | -o-transition: all .2s ease; 101 | transition: all .2s ease; 102 | } 103 | .reveal .slides section .fragment.visible { 104 | opacity: 1; 105 | } 106 | 107 | .reveal .slides section .fragment.grow { 108 | opacity: 1; 109 | } 110 | .reveal .slides section .fragment.grow.visible { 111 | -webkit-transform: scale( 1.3 ); 112 | -moz-transform: scale( 1.3 ); 113 | -ms-transform: scale( 1.3 ); 114 | -o-transform: scale( 1.3 ); 115 | transform: scale( 1.3 ); 116 | } 117 | 118 | .reveal .slides section .fragment.shrink { 119 | opacity: 1; 120 | } 121 | .reveal .slides section .fragment.shrink.visible { 122 | -webkit-transform: scale( 0.7 ); 123 | -moz-transform: scale( 0.7 ); 124 | -ms-transform: scale( 0.7 ); 125 | -o-transform: scale( 0.7 ); 126 | transform: scale( 0.7 ); 127 | } 128 | 129 | .reveal .slides section .fragment.zoom-in { 130 | opacity: 0; 131 | 132 | -webkit-transform: scale( 0.1 ); 133 | -moz-transform: scale( 0.1 ); 134 | -ms-transform: scale( 0.1 ); 135 | -o-transform: scale( 0.1 ); 136 | transform: scale( 0.1 ); 137 | } 138 | 139 | .reveal .slides section .fragment.zoom-in.visible { 140 | opacity: 1; 141 | 142 | -webkit-transform: scale( 1 ); 143 | -moz-transform: scale( 1 ); 144 | -ms-transform: scale( 1 ); 145 | -o-transform: scale( 1 ); 146 | transform: scale( 1 ); 147 | } 148 | 149 | .reveal .slides section .fragment.roll-in { 150 | opacity: 0; 151 | 152 | -webkit-transform: rotateX( 90deg ); 153 | -moz-transform: rotateX( 90deg ); 154 | -ms-transform: rotateX( 90deg ); 155 | -o-transform: rotateX( 90deg ); 156 | transform: rotateX( 90deg ); 157 | } 158 | .reveal .slides section .fragment.roll-in.visible { 159 | opacity: 1; 160 | 161 | -webkit-transform: rotateX( 0 ); 162 | -moz-transform: rotateX( 0 ); 163 | -ms-transform: rotateX( 0 ); 164 | -o-transform: rotateX( 0 ); 165 | transform: rotateX( 0 ); 166 | } 167 | 168 | .reveal .slides section .fragment.fade-out { 169 | opacity: 1; 170 | } 171 | .reveal .slides section .fragment.fade-out.visible { 172 | opacity: 0; 173 | } 174 | 175 | .reveal .slides section .fragment.semi-fade-out { 176 | opacity: 1; 177 | } 178 | .reveal .slides section .fragment.semi-fade-out.visible { 179 | opacity: 0.5; 180 | } 181 | 182 | .reveal .slides section .fragment.highlight-red, 183 | .reveal .slides section .fragment.highlight-green, 184 | .reveal .slides section .fragment.highlight-blue { 185 | opacity: 1; 186 | } 187 | .reveal .slides section .fragment.highlight-red.visible { 188 | color: #ff2c2d 189 | } 190 | .reveal .slides section .fragment.highlight-green.visible { 191 | color: #17ff2e; 192 | } 193 | .reveal .slides section .fragment.highlight-blue.visible { 194 | color: #1b91ff; 195 | } 196 | 197 | 198 | /********************************************* 199 | * DEFAULT ELEMENT STYLES 200 | *********************************************/ 201 | 202 | /* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */ 203 | .reveal:after { 204 | content: ''; 205 | font-style: italic; 206 | } 207 | 208 | .reveal iframe { 209 | z-index: 1; 210 | } 211 | 212 | /* Ensure certain elements are never larger than the slide itself */ 213 | .reveal img, 214 | .reveal video, 215 | .reveal iframe { 216 | max-width: 100%; 217 | max-height: 95%; 218 | } 219 | 220 | /** Prevents layering issues in certain browser/transition combinations */ 221 | .reveal a { 222 | position: relative; 223 | } 224 | 225 | .reveal strong, 226 | .reveal b { 227 | font-weight: bold; 228 | } 229 | 230 | .reveal em, 231 | .reveal i { 232 | font-style: italic; 233 | } 234 | 235 | .reveal ol, 236 | .reveal ul { 237 | display: inline-block; 238 | 239 | text-align: left; 240 | margin: 0 0 0 1em; 241 | } 242 | 243 | .reveal ol { 244 | list-style-type: decimal; 245 | } 246 | 247 | .reveal ul { 248 | list-style-type: disc; 249 | } 250 | 251 | .reveal ul ul { 252 | list-style-type: square; 253 | } 254 | 255 | .reveal ul ul ul { 256 | list-style-type: circle; 257 | } 258 | 259 | .reveal ul ul, 260 | .reveal ul ol, 261 | .reveal ol ol, 262 | .reveal ol ul { 263 | display: block; 264 | margin-left: 40px; 265 | } 266 | 267 | .reveal p { 268 | margin-bottom: 10px; 269 | line-height: 1.2em; 270 | } 271 | 272 | .reveal q, 273 | .reveal blockquote { 274 | quotes: none; 275 | } 276 | 277 | .reveal blockquote { 278 | display: block; 279 | position: relative; 280 | width: 70%; 281 | margin: 5px auto; 282 | padding: 5px; 283 | 284 | font-style: italic; 285 | background: rgba(255, 255, 255, 0.05); 286 | box-shadow: 0px 0px 2px rgba(0,0,0,0.2); 287 | } 288 | .reveal blockquote p:first-child, 289 | .reveal blockquote p:last-child { 290 | display: inline-block; 291 | } 292 | 293 | .reveal q { 294 | font-style: italic; 295 | } 296 | 297 | .reveal pre { 298 | display: block; 299 | position: relative; 300 | width: 90%; 301 | margin: 15px auto; 302 | 303 | text-align: left; 304 | font-size: 0.55em; 305 | font-family: monospace; 306 | line-height: 1.2em; 307 | 308 | word-wrap: break-word; 309 | 310 | box-shadow: 0px 0px 6px rgba(0,0,0,0.3); 311 | } 312 | .reveal code { 313 | font-family: monospace; 314 | } 315 | .reveal pre code { 316 | padding: 5px; 317 | overflow: auto; 318 | max-height: 400px; 319 | word-wrap: normal; 320 | } 321 | .reveal pre.stretch code { 322 | height: 100%; 323 | max-height: 100%; 324 | 325 | -webkit-box-sizing: border-box; 326 | -moz-box-sizing: border-box; 327 | box-sizing: border-box; 328 | } 329 | 330 | .reveal table th, 331 | .reveal table td { 332 | text-align: left; 333 | padding-right: .3em; 334 | } 335 | 336 | .reveal table th { 337 | text-shadow: rgb(255,255,255) 1px 1px 2px; 338 | } 339 | 340 | .reveal sup { 341 | vertical-align: super; 342 | } 343 | .reveal sub { 344 | vertical-align: sub; 345 | } 346 | 347 | .reveal small { 348 | display: inline-block; 349 | font-size: 0.6em; 350 | line-height: 1.2em; 351 | vertical-align: top; 352 | } 353 | 354 | .reveal small * { 355 | vertical-align: top; 356 | } 357 | 358 | .reveal .stretch { 359 | max-width: none; 360 | max-height: none; 361 | } 362 | 363 | 364 | /********************************************* 365 | * CONTROLS 366 | *********************************************/ 367 | 368 | .reveal .controls { 369 | display: none; 370 | position: fixed; 371 | width: 110px; 372 | height: 110px; 373 | z-index: 30; 374 | right: 10px; 375 | bottom: 10px; 376 | } 377 | 378 | .reveal .controls div { 379 | position: absolute; 380 | opacity: 0.05; 381 | width: 0; 382 | height: 0; 383 | border: 12px solid transparent; 384 | 385 | -moz-transform: scale(.9999); 386 | 387 | -webkit-transition: all 0.2s ease; 388 | -moz-transition: all 0.2s ease; 389 | -ms-transition: all 0.2s ease; 390 | -o-transition: all 0.2s ease; 391 | transition: all 0.2s ease; 392 | } 393 | 394 | .reveal .controls div.enabled { 395 | opacity: 0.7; 396 | cursor: pointer; 397 | } 398 | 399 | .reveal .controls div.enabled:active { 400 | margin-top: 1px; 401 | } 402 | 403 | .reveal .controls div.navigate-left { 404 | top: 42px; 405 | 406 | border-right-width: 22px; 407 | border-right-color: #eee; 408 | } 409 | .reveal .controls div.navigate-left.fragmented { 410 | opacity: 0.3; 411 | } 412 | 413 | .reveal .controls div.navigate-right { 414 | left: 74px; 415 | top: 42px; 416 | 417 | border-left-width: 22px; 418 | border-left-color: #eee; 419 | } 420 | .reveal .controls div.navigate-right.fragmented { 421 | opacity: 0.3; 422 | } 423 | 424 | .reveal .controls div.navigate-up { 425 | left: 42px; 426 | 427 | border-bottom-width: 22px; 428 | border-bottom-color: #eee; 429 | } 430 | .reveal .controls div.navigate-up.fragmented { 431 | opacity: 0.3; 432 | } 433 | 434 | .reveal .controls div.navigate-down { 435 | left: 42px; 436 | top: 74px; 437 | 438 | border-top-width: 22px; 439 | border-top-color: #eee; 440 | } 441 | .reveal .controls div.navigate-down.fragmented { 442 | opacity: 0.3; 443 | } 444 | 445 | 446 | /********************************************* 447 | * PROGRESS BAR 448 | *********************************************/ 449 | 450 | .reveal .progress { 451 | position: fixed; 452 | display: none; 453 | height: 3px; 454 | width: 100%; 455 | bottom: 0; 456 | left: 0; 457 | z-index: 10; 458 | } 459 | .reveal .progress:after { 460 | content: ''; 461 | display: 'block'; 462 | position: absolute; 463 | height: 20px; 464 | width: 100%; 465 | top: -20px; 466 | } 467 | .reveal .progress span { 468 | display: block; 469 | height: 100%; 470 | width: 0px; 471 | 472 | -webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 473 | -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 474 | -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 475 | -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 476 | transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 477 | } 478 | 479 | 480 | /********************************************* 481 | * SLIDES 482 | *********************************************/ 483 | 484 | .reveal { 485 | position: relative; 486 | width: 100%; 487 | height: 100%; 488 | 489 | -ms-touch-action: none; 490 | } 491 | 492 | .reveal .slides { 493 | position: absolute; 494 | width: 100%; 495 | height: 100%; 496 | left: 50%; 497 | top: 50%; 498 | 499 | overflow: visible; 500 | z-index: 1; 501 | text-align: center; 502 | 503 | -webkit-transition: -webkit-perspective .4s ease; 504 | -moz-transition: -moz-perspective .4s ease; 505 | -ms-transition: -ms-perspective .4s ease; 506 | -o-transition: -o-perspective .4s ease; 507 | transition: perspective .4s ease; 508 | 509 | -webkit-perspective: 600px; 510 | -moz-perspective: 600px; 511 | -ms-perspective: 600px; 512 | perspective: 600px; 513 | 514 | -webkit-perspective-origin: 0px -100px; 515 | -moz-perspective-origin: 0px -100px; 516 | -ms-perspective-origin: 0px -100px; 517 | perspective-origin: 0px -100px; 518 | } 519 | 520 | .reveal .slides>section { 521 | -ms-perspective: 600px; 522 | } 523 | 524 | .reveal .slides>section, 525 | .reveal .slides>section>section { 526 | display: none; 527 | position: absolute; 528 | width: 100%; 529 | padding: 20px 0px; 530 | 531 | z-index: 10; 532 | line-height: 1.2em; 533 | font-weight: normal; 534 | 535 | -webkit-transform-style: preserve-3d; 536 | -moz-transform-style: preserve-3d; 537 | -ms-transform-style: preserve-3d; 538 | transform-style: preserve-3d; 539 | 540 | -webkit-transition: -webkit-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 541 | -webkit-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 542 | visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 543 | opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 544 | -moz-transition: -moz-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 545 | -moz-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 546 | visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 547 | opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 548 | -ms-transition: -ms-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 549 | -ms-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 550 | visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 551 | opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 552 | -o-transition: -o-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 553 | -o-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 554 | visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 555 | opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 556 | transition: transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 557 | transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 558 | visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), 559 | opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 560 | } 561 | 562 | /* Global transition speed settings */ 563 | .reveal[data-transition-speed="fast"] .slides section { 564 | -webkit-transition-duration: 400ms; 565 | -moz-transition-duration: 400ms; 566 | -ms-transition-duration: 400ms; 567 | transition-duration: 400ms; 568 | } 569 | .reveal[data-transition-speed="slow"] .slides section { 570 | -webkit-transition-duration: 1200ms; 571 | -moz-transition-duration: 1200ms; 572 | -ms-transition-duration: 1200ms; 573 | transition-duration: 1200ms; 574 | } 575 | 576 | /* Slide-specific transition speed overrides */ 577 | .reveal .slides section[data-transition-speed="fast"] { 578 | -webkit-transition-duration: 400ms; 579 | -moz-transition-duration: 400ms; 580 | -ms-transition-duration: 400ms; 581 | transition-duration: 400ms; 582 | } 583 | .reveal .slides section[data-transition-speed="slow"] { 584 | -webkit-transition-duration: 1200ms; 585 | -moz-transition-duration: 1200ms; 586 | -ms-transition-duration: 1200ms; 587 | transition-duration: 1200ms; 588 | } 589 | 590 | .reveal .slides>section { 591 | left: -50%; 592 | top: -50%; 593 | } 594 | 595 | .reveal .slides>section.stack { 596 | padding-top: 0; 597 | padding-bottom: 0; 598 | } 599 | 600 | .reveal .slides>section.present, 601 | .reveal .slides>section>section.present { 602 | display: block; 603 | z-index: 11; 604 | opacity: 1; 605 | } 606 | 607 | .reveal.center, 608 | .reveal.center .slides, 609 | .reveal.center .slides section { 610 | min-height: auto !important; 611 | } 612 | 613 | /* Don't allow interaction with invisible slides */ 614 | .reveal .slides>section.future, 615 | .reveal .slides>section>section.future, 616 | .reveal .slides>section.past, 617 | .reveal .slides>section>section.past { 618 | pointer-events: none; 619 | } 620 | 621 | .reveal.overview .slides>section, 622 | .reveal.overview .slides>section>section { 623 | pointer-events: auto; 624 | } 625 | 626 | 627 | 628 | /********************************************* 629 | * DEFAULT TRANSITION 630 | *********************************************/ 631 | 632 | .reveal .slides>section[data-transition=default].past, 633 | .reveal .slides>section.past { 634 | display: block; 635 | opacity: 0; 636 | 637 | -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); 638 | -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); 639 | -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); 640 | transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); 641 | } 642 | .reveal .slides>section[data-transition=default].future, 643 | .reveal .slides>section.future { 644 | display: block; 645 | opacity: 0; 646 | 647 | -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); 648 | -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); 649 | -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); 650 | transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); 651 | } 652 | 653 | .reveal .slides>section>section[data-transition=default].past, 654 | .reveal .slides>section>section.past { 655 | display: block; 656 | opacity: 0; 657 | 658 | -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); 659 | -moz-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); 660 | -ms-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); 661 | transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); 662 | } 663 | .reveal .slides>section>section[data-transition=default].future, 664 | .reveal .slides>section>section.future { 665 | display: block; 666 | opacity: 0; 667 | 668 | -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); 669 | -moz-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); 670 | -ms-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); 671 | transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); 672 | } 673 | 674 | 675 | /********************************************* 676 | * CONCAVE TRANSITION 677 | *********************************************/ 678 | 679 | .reveal .slides>section[data-transition=concave].past, 680 | .reveal.concave .slides>section.past { 681 | -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); 682 | -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); 683 | -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); 684 | transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); 685 | } 686 | .reveal .slides>section[data-transition=concave].future, 687 | .reveal.concave .slides>section.future { 688 | -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); 689 | -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); 690 | -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); 691 | transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); 692 | } 693 | 694 | .reveal .slides>section>section[data-transition=concave].past, 695 | .reveal.concave .slides>section>section.past { 696 | -webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); 697 | -moz-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); 698 | -ms-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); 699 | transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); 700 | } 701 | .reveal .slides>section>section[data-transition=concave].future, 702 | .reveal.concave .slides>section>section.future { 703 | -webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); 704 | -moz-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); 705 | -ms-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); 706 | transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); 707 | } 708 | 709 | 710 | /********************************************* 711 | * ZOOM TRANSITION 712 | *********************************************/ 713 | 714 | .reveal .slides>section[data-transition=zoom].past, 715 | .reveal.zoom .slides>section.past { 716 | opacity: 0; 717 | visibility: hidden; 718 | 719 | -webkit-transform: scale(16); 720 | -moz-transform: scale(16); 721 | -ms-transform: scale(16); 722 | -o-transform: scale(16); 723 | transform: scale(16); 724 | } 725 | .reveal .slides>section[data-transition=zoom].future, 726 | .reveal.zoom .slides>section.future { 727 | opacity: 0; 728 | visibility: hidden; 729 | 730 | -webkit-transform: scale(0.2); 731 | -moz-transform: scale(0.2); 732 | -ms-transform: scale(0.2); 733 | -o-transform: scale(0.2); 734 | transform: scale(0.2); 735 | } 736 | 737 | .reveal .slides>section>section[data-transition=zoom].past, 738 | .reveal.zoom .slides>section>section.past { 739 | -webkit-transform: translate(0, -150%); 740 | -moz-transform: translate(0, -150%); 741 | -ms-transform: translate(0, -150%); 742 | -o-transform: translate(0, -150%); 743 | transform: translate(0, -150%); 744 | } 745 | .reveal .slides>section>section[data-transition=zoom].future, 746 | .reveal.zoom .slides>section>section.future { 747 | -webkit-transform: translate(0, 150%); 748 | -moz-transform: translate(0, 150%); 749 | -ms-transform: translate(0, 150%); 750 | -o-transform: translate(0, 150%); 751 | transform: translate(0, 150%); 752 | } 753 | 754 | 755 | /********************************************* 756 | * LINEAR TRANSITION 757 | *********************************************/ 758 | 759 | .reveal.linear section { 760 | -webkit-backface-visibility: hidden; 761 | -moz-backface-visibility: hidden; 762 | -ms-backface-visibility: hidden; 763 | backface-visibility: hidden; 764 | } 765 | 766 | .reveal .slides>section[data-transition=linear].past, 767 | .reveal.linear .slides>section.past { 768 | -webkit-transform: translate(-150%, 0); 769 | -moz-transform: translate(-150%, 0); 770 | -ms-transform: translate(-150%, 0); 771 | -o-transform: translate(-150%, 0); 772 | transform: translate(-150%, 0); 773 | } 774 | .reveal .slides>section[data-transition=linear].future, 775 | .reveal.linear .slides>section.future { 776 | -webkit-transform: translate(150%, 0); 777 | -moz-transform: translate(150%, 0); 778 | -ms-transform: translate(150%, 0); 779 | -o-transform: translate(150%, 0); 780 | transform: translate(150%, 0); 781 | } 782 | 783 | .reveal .slides>section>section[data-transition=linear].past, 784 | .reveal.linear .slides>section>section.past { 785 | -webkit-transform: translate(0, -150%); 786 | -moz-transform: translate(0, -150%); 787 | -ms-transform: translate(0, -150%); 788 | -o-transform: translate(0, -150%); 789 | transform: translate(0, -150%); 790 | } 791 | .reveal .slides>section>section[data-transition=linear].future, 792 | .reveal.linear .slides>section>section.future { 793 | -webkit-transform: translate(0, 150%); 794 | -moz-transform: translate(0, 150%); 795 | -ms-transform: translate(0, 150%); 796 | -o-transform: translate(0, 150%); 797 | transform: translate(0, 150%); 798 | } 799 | 800 | 801 | /********************************************* 802 | * CUBE TRANSITION 803 | *********************************************/ 804 | 805 | .reveal.cube .slides { 806 | -webkit-perspective: 1300px; 807 | -moz-perspective: 1300px; 808 | -ms-perspective: 1300px; 809 | perspective: 1300px; 810 | } 811 | 812 | .reveal.cube .slides section { 813 | padding: 30px; 814 | min-height: 700px; 815 | 816 | -webkit-backface-visibility: hidden; 817 | -moz-backface-visibility: hidden; 818 | -ms-backface-visibility: hidden; 819 | backface-visibility: hidden; 820 | 821 | -webkit-box-sizing: border-box; 822 | -moz-box-sizing: border-box; 823 | box-sizing: border-box; 824 | } 825 | .reveal.center.cube .slides section { 826 | min-height: auto; 827 | } 828 | .reveal.cube .slides section:not(.stack):before { 829 | content: ''; 830 | position: absolute; 831 | display: block; 832 | width: 100%; 833 | height: 100%; 834 | left: 0; 835 | top: 0; 836 | background: rgba(0,0,0,0.1); 837 | border-radius: 4px; 838 | 839 | -webkit-transform: translateZ( -20px ); 840 | -moz-transform: translateZ( -20px ); 841 | -ms-transform: translateZ( -20px ); 842 | -o-transform: translateZ( -20px ); 843 | transform: translateZ( -20px ); 844 | } 845 | .reveal.cube .slides section:not(.stack):after { 846 | content: ''; 847 | position: absolute; 848 | display: block; 849 | width: 90%; 850 | height: 30px; 851 | left: 5%; 852 | bottom: 0; 853 | background: none; 854 | z-index: 1; 855 | 856 | border-radius: 4px; 857 | box-shadow: 0px 95px 25px rgba(0,0,0,0.2); 858 | 859 | -webkit-transform: translateZ(-90px) rotateX( 65deg ); 860 | -moz-transform: translateZ(-90px) rotateX( 65deg ); 861 | -ms-transform: translateZ(-90px) rotateX( 65deg ); 862 | -o-transform: translateZ(-90px) rotateX( 65deg ); 863 | transform: translateZ(-90px) rotateX( 65deg ); 864 | } 865 | 866 | .reveal.cube .slides>section.stack { 867 | padding: 0; 868 | background: none; 869 | } 870 | 871 | .reveal.cube .slides>section.past { 872 | -webkit-transform-origin: 100% 0%; 873 | -moz-transform-origin: 100% 0%; 874 | -ms-transform-origin: 100% 0%; 875 | transform-origin: 100% 0%; 876 | 877 | -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg); 878 | -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg); 879 | -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg); 880 | transform: translate3d(-100%, 0, 0) rotateY(-90deg); 881 | } 882 | 883 | .reveal.cube .slides>section.future { 884 | -webkit-transform-origin: 0% 0%; 885 | -moz-transform-origin: 0% 0%; 886 | -ms-transform-origin: 0% 0%; 887 | transform-origin: 0% 0%; 888 | 889 | -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg); 890 | -moz-transform: translate3d(100%, 0, 0) rotateY(90deg); 891 | -ms-transform: translate3d(100%, 0, 0) rotateY(90deg); 892 | transform: translate3d(100%, 0, 0) rotateY(90deg); 893 | } 894 | 895 | .reveal.cube .slides>section>section.past { 896 | -webkit-transform-origin: 0% 100%; 897 | -moz-transform-origin: 0% 100%; 898 | -ms-transform-origin: 0% 100%; 899 | transform-origin: 0% 100%; 900 | 901 | -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg); 902 | -moz-transform: translate3d(0, -100%, 0) rotateX(90deg); 903 | -ms-transform: translate3d(0, -100%, 0) rotateX(90deg); 904 | transform: translate3d(0, -100%, 0) rotateX(90deg); 905 | } 906 | 907 | .reveal.cube .slides>section>section.future { 908 | -webkit-transform-origin: 0% 0%; 909 | -moz-transform-origin: 0% 0%; 910 | -ms-transform-origin: 0% 0%; 911 | transform-origin: 0% 0%; 912 | 913 | -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg); 914 | -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg); 915 | -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg); 916 | transform: translate3d(0, 100%, 0) rotateX(-90deg); 917 | } 918 | 919 | 920 | /********************************************* 921 | * PAGE TRANSITION 922 | *********************************************/ 923 | 924 | .reveal.page .slides { 925 | -webkit-perspective-origin: 0% 50%; 926 | -moz-perspective-origin: 0% 50%; 927 | -ms-perspective-origin: 0% 50%; 928 | perspective-origin: 0% 50%; 929 | 930 | -webkit-perspective: 3000px; 931 | -moz-perspective: 3000px; 932 | -ms-perspective: 3000px; 933 | perspective: 3000px; 934 | } 935 | 936 | .reveal.page .slides section { 937 | padding: 30px; 938 | min-height: 700px; 939 | 940 | -webkit-box-sizing: border-box; 941 | -moz-box-sizing: border-box; 942 | box-sizing: border-box; 943 | } 944 | .reveal.page .slides section.past { 945 | z-index: 12; 946 | } 947 | .reveal.page .slides section:not(.stack):before { 948 | content: ''; 949 | position: absolute; 950 | display: block; 951 | width: 100%; 952 | height: 100%; 953 | left: 0; 954 | top: 0; 955 | background: rgba(0,0,0,0.1); 956 | 957 | -webkit-transform: translateZ( -20px ); 958 | -moz-transform: translateZ( -20px ); 959 | -ms-transform: translateZ( -20px ); 960 | -o-transform: translateZ( -20px ); 961 | transform: translateZ( -20px ); 962 | } 963 | .reveal.page .slides section:not(.stack):after { 964 | content: ''; 965 | position: absolute; 966 | display: block; 967 | width: 90%; 968 | height: 30px; 969 | left: 5%; 970 | bottom: 0; 971 | background: none; 972 | z-index: 1; 973 | 974 | border-radius: 4px; 975 | box-shadow: 0px 95px 25px rgba(0,0,0,0.2); 976 | 977 | -webkit-transform: translateZ(-90px) rotateX( 65deg ); 978 | } 979 | 980 | .reveal.page .slides>section.stack { 981 | padding: 0; 982 | background: none; 983 | } 984 | 985 | .reveal.page .slides>section.past { 986 | -webkit-transform-origin: 0% 0%; 987 | -moz-transform-origin: 0% 0%; 988 | -ms-transform-origin: 0% 0%; 989 | transform-origin: 0% 0%; 990 | 991 | -webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg); 992 | -moz-transform: translate3d(-40%, 0, 0) rotateY(-80deg); 993 | -ms-transform: translate3d(-40%, 0, 0) rotateY(-80deg); 994 | transform: translate3d(-40%, 0, 0) rotateY(-80deg); 995 | } 996 | 997 | .reveal.page .slides>section.future { 998 | -webkit-transform-origin: 100% 0%; 999 | -moz-transform-origin: 100% 0%; 1000 | -ms-transform-origin: 100% 0%; 1001 | transform-origin: 100% 0%; 1002 | 1003 | -webkit-transform: translate3d(0, 0, 0); 1004 | -moz-transform: translate3d(0, 0, 0); 1005 | -ms-transform: translate3d(0, 0, 0); 1006 | transform: translate3d(0, 0, 0); 1007 | } 1008 | 1009 | .reveal.page .slides>section>section.past { 1010 | -webkit-transform-origin: 0% 0%; 1011 | -moz-transform-origin: 0% 0%; 1012 | -ms-transform-origin: 0% 0%; 1013 | transform-origin: 0% 0%; 1014 | 1015 | -webkit-transform: translate3d(0, -40%, 0) rotateX(80deg); 1016 | -moz-transform: translate3d(0, -40%, 0) rotateX(80deg); 1017 | -ms-transform: translate3d(0, -40%, 0) rotateX(80deg); 1018 | transform: translate3d(0, -40%, 0) rotateX(80deg); 1019 | } 1020 | 1021 | .reveal.page .slides>section>section.future { 1022 | -webkit-transform-origin: 0% 100%; 1023 | -moz-transform-origin: 0% 100%; 1024 | -ms-transform-origin: 0% 100%; 1025 | transform-origin: 0% 100%; 1026 | 1027 | -webkit-transform: translate3d(0, 0, 0); 1028 | -moz-transform: translate3d(0, 0, 0); 1029 | -ms-transform: translate3d(0, 0, 0); 1030 | transform: translate3d(0, 0, 0); 1031 | } 1032 | 1033 | 1034 | /********************************************* 1035 | * FADE TRANSITION 1036 | *********************************************/ 1037 | 1038 | .reveal .slides section[data-transition=fade], 1039 | .reveal.fade .slides section, 1040 | .reveal.fade .slides>section>section { 1041 | -webkit-transform: none; 1042 | -moz-transform: none; 1043 | -ms-transform: none; 1044 | -o-transform: none; 1045 | transform: none; 1046 | 1047 | -webkit-transition: opacity 0.5s; 1048 | -moz-transition: opacity 0.5s; 1049 | -ms-transition: opacity 0.5s; 1050 | -o-transition: opacity 0.5s; 1051 | transition: opacity 0.5s; 1052 | } 1053 | 1054 | 1055 | .reveal.fade.overview .slides section, 1056 | .reveal.fade.overview .slides>section>section, 1057 | .reveal.fade.overview-deactivating .slides section, 1058 | .reveal.fade.overview-deactivating .slides>section>section { 1059 | -webkit-transition: none; 1060 | -moz-transition: none; 1061 | -ms-transition: none; 1062 | -o-transition: none; 1063 | transition: none; 1064 | } 1065 | 1066 | 1067 | /********************************************* 1068 | * NO TRANSITION 1069 | *********************************************/ 1070 | 1071 | .reveal .slides section[data-transition=none], 1072 | .reveal.none .slides section { 1073 | -webkit-transform: none; 1074 | -moz-transform: none; 1075 | -ms-transform: none; 1076 | -o-transform: none; 1077 | transform: none; 1078 | 1079 | -webkit-transition: none; 1080 | -moz-transition: none; 1081 | -ms-transition: none; 1082 | -o-transition: none; 1083 | transition: none; 1084 | } 1085 | 1086 | 1087 | /********************************************* 1088 | * OVERVIEW 1089 | *********************************************/ 1090 | 1091 | .reveal.overview .slides { 1092 | -webkit-perspective-origin: 0% 0%; 1093 | -moz-perspective-origin: 0% 0%; 1094 | -ms-perspective-origin: 0% 0%; 1095 | perspective-origin: 0% 0%; 1096 | 1097 | -webkit-perspective: 700px; 1098 | -moz-perspective: 700px; 1099 | -ms-perspective: 700px; 1100 | perspective: 700px; 1101 | } 1102 | 1103 | .reveal.overview .slides section { 1104 | height: 600px; 1105 | top: -300px !important; 1106 | overflow: hidden; 1107 | opacity: 1 !important; 1108 | visibility: visible !important; 1109 | cursor: pointer; 1110 | background: rgba(0,0,0,0.1); 1111 | } 1112 | .reveal.overview .slides section .fragment { 1113 | opacity: 1; 1114 | } 1115 | .reveal.overview .slides section:after, 1116 | .reveal.overview .slides section:before { 1117 | display: none !important; 1118 | } 1119 | .reveal.overview .slides section>section { 1120 | opacity: 1; 1121 | cursor: pointer; 1122 | } 1123 | .reveal.overview .slides section:hover { 1124 | background: rgba(0,0,0,0.3); 1125 | } 1126 | .reveal.overview .slides section.present { 1127 | background: rgba(0,0,0,0.3); 1128 | } 1129 | .reveal.overview .slides>section.stack { 1130 | padding: 0; 1131 | top: 0 !important; 1132 | background: none; 1133 | overflow: visible; 1134 | } 1135 | 1136 | 1137 | /********************************************* 1138 | * PAUSED MODE 1139 | *********************************************/ 1140 | 1141 | .reveal .pause-overlay { 1142 | position: absolute; 1143 | top: 0; 1144 | left: 0; 1145 | width: 100%; 1146 | height: 100%; 1147 | background: black; 1148 | visibility: hidden; 1149 | opacity: 0; 1150 | z-index: 100; 1151 | 1152 | -webkit-transition: all 1s ease; 1153 | -moz-transition: all 1s ease; 1154 | -ms-transition: all 1s ease; 1155 | -o-transition: all 1s ease; 1156 | transition: all 1s ease; 1157 | } 1158 | .reveal.paused .pause-overlay { 1159 | visibility: visible; 1160 | opacity: 1; 1161 | } 1162 | 1163 | 1164 | /********************************************* 1165 | * FALLBACK 1166 | *********************************************/ 1167 | 1168 | .no-transforms { 1169 | overflow-y: auto; 1170 | } 1171 | 1172 | .no-transforms .reveal .slides { 1173 | position: relative; 1174 | width: 80%; 1175 | height: auto !important; 1176 | top: 0; 1177 | left: 50%; 1178 | margin: 0; 1179 | text-align: center; 1180 | } 1181 | 1182 | .no-transforms .reveal .controls, 1183 | .no-transforms .reveal .progress { 1184 | display: none !important; 1185 | } 1186 | 1187 | .no-transforms .reveal .slides section { 1188 | display: block !important; 1189 | opacity: 1 !important; 1190 | position: relative !important; 1191 | height: auto; 1192 | min-height: auto; 1193 | top: 0; 1194 | left: -50%; 1195 | margin: 70px 0; 1196 | 1197 | -webkit-transform: none; 1198 | -moz-transform: none; 1199 | -ms-transform: none; 1200 | -o-transform: none; 1201 | transform: none; 1202 | } 1203 | 1204 | .no-transforms .reveal .slides section section { 1205 | left: 0; 1206 | } 1207 | 1208 | .reveal .no-transition, 1209 | .reveal .no-transition * { 1210 | -webkit-transition: none !important; 1211 | -moz-transition: none !important; 1212 | -ms-transition: none !important; 1213 | -o-transition: none !important; 1214 | transition: none !important; 1215 | } 1216 | 1217 | 1218 | /********************************************* 1219 | * BACKGROUND STATES [DEPRECATED] 1220 | *********************************************/ 1221 | 1222 | .reveal .state-background { 1223 | position: absolute; 1224 | width: 100%; 1225 | height: 100%; 1226 | background: rgba( 0, 0, 0, 0 ); 1227 | 1228 | -webkit-transition: background 800ms ease; 1229 | -moz-transition: background 800ms ease; 1230 | -ms-transition: background 800ms ease; 1231 | -o-transition: background 800ms ease; 1232 | transition: background 800ms ease; 1233 | } 1234 | .alert .reveal .state-background { 1235 | background: rgba( 200, 50, 30, 0.6 ); 1236 | } 1237 | .soothe .reveal .state-background { 1238 | background: rgba( 50, 200, 90, 0.4 ); 1239 | } 1240 | .blackout .reveal .state-background { 1241 | background: rgba( 0, 0, 0, 0.6 ); 1242 | } 1243 | .whiteout .reveal .state-background { 1244 | background: rgba( 255, 255, 255, 0.6 ); 1245 | } 1246 | .cobalt .reveal .state-background { 1247 | background: rgba( 22, 152, 213, 0.6 ); 1248 | } 1249 | .mint .reveal .state-background { 1250 | background: rgba( 22, 213, 75, 0.6 ); 1251 | } 1252 | .submerge .reveal .state-background { 1253 | background: rgba( 12, 25, 77, 0.6); 1254 | } 1255 | .lila .reveal .state-background { 1256 | background: rgba( 180, 50, 140, 0.6 ); 1257 | } 1258 | .sunset .reveal .state-background { 1259 | background: rgba( 255, 122, 0, 0.6 ); 1260 | } 1261 | 1262 | 1263 | /********************************************* 1264 | * PER-SLIDE BACKGROUNDS 1265 | *********************************************/ 1266 | 1267 | .reveal>.backgrounds { 1268 | position: absolute; 1269 | width: 100%; 1270 | height: 100%; 1271 | } 1272 | .reveal .slide-background { 1273 | position: absolute; 1274 | width: 100%; 1275 | height: 100%; 1276 | opacity: 0; 1277 | visibility: hidden; 1278 | 1279 | background-color: rgba( 0, 0, 0, 0 ); 1280 | background-position: 50% 50%; 1281 | background-repeat: no-repeat; 1282 | background-size: cover; 1283 | 1284 | -webkit-transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 1285 | -moz-transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 1286 | -ms-transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 1287 | -o-transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 1288 | transition: all 600ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 1289 | } 1290 | .reveal .slide-background.present { 1291 | opacity: 1; 1292 | visibility: visible; 1293 | } 1294 | 1295 | .print-pdf .reveal .slide-background { 1296 | opacity: 1 !important; 1297 | visibility: visible !important; 1298 | } 1299 | 1300 | /* Immediate transition style */ 1301 | .reveal[data-background-transition=none]>.backgrounds .slide-background, 1302 | .reveal>.backgrounds .slide-background[data-background-transition=none] { 1303 | -webkit-transition: none; 1304 | -moz-transition: none; 1305 | -ms-transition: none; 1306 | -o-transition: none; 1307 | transition: none; 1308 | } 1309 | 1310 | /* Linear sliding transition style */ 1311 | .reveal[data-background-transition=slide]>.backgrounds .slide-background, 1312 | .reveal>.backgrounds .slide-background[data-background-transition=slide] { 1313 | opacity: 1; 1314 | 1315 | -webkit-backface-visibility: hidden; 1316 | -moz-backface-visibility: hidden; 1317 | -ms-backface-visibility: hidden; 1318 | backface-visibility: hidden; 1319 | 1320 | -webkit-transition-duration: 800ms; 1321 | -moz-transition-duration: 800ms; 1322 | -ms-transition-duration: 800ms; 1323 | -o-transition-duration: 800ms; 1324 | transition-duration: 800ms; 1325 | } 1326 | .reveal[data-background-transition=slide]>.backgrounds .slide-background.past, 1327 | .reveal>.backgrounds .slide-background.past[data-background-transition=slide] { 1328 | -webkit-transform: translate(-100%, 0); 1329 | -moz-transform: translate(-100%, 0); 1330 | -ms-transform: translate(-100%, 0); 1331 | -o-transform: translate(-100%, 0); 1332 | transform: translate(-100%, 0); 1333 | } 1334 | .reveal[data-background-transition=slide]>.backgrounds .slide-background.future, 1335 | .reveal>.backgrounds .slide-background.future[data-background-transition=slide] { 1336 | -webkit-transform: translate(100%, 0); 1337 | -moz-transform: translate(100%, 0); 1338 | -ms-transform: translate(100%, 0); 1339 | -o-transform: translate(100%, 0); 1340 | transform: translate(100%, 0); 1341 | } 1342 | 1343 | .reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past, 1344 | .reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide] { 1345 | -webkit-transform: translate(0, -100%); 1346 | -moz-transform: translate(0, -100%); 1347 | -ms-transform: translate(0, -100%); 1348 | -o-transform: translate(0, -100%); 1349 | transform: translate(0, -100%); 1350 | } 1351 | .reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future, 1352 | .reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide] { 1353 | -webkit-transform: translate(0, 100%); 1354 | -moz-transform: translate(0, 100%); 1355 | -ms-transform: translate(0, 100%); 1356 | -o-transform: translate(0, 100%); 1357 | transform: translate(0, 100%); 1358 | } 1359 | 1360 | 1361 | /* Global transition speed settings */ 1362 | .reveal[data-transition-speed="fast"]>.backgrounds .slide-background { 1363 | -webkit-transition-duration: 400ms; 1364 | -moz-transition-duration: 400ms; 1365 | -ms-transition-duration: 400ms; 1366 | transition-duration: 400ms; 1367 | } 1368 | .reveal[data-transition-speed="slow"]>.backgrounds .slide-background { 1369 | -webkit-transition-duration: 1200ms; 1370 | -moz-transition-duration: 1200ms; 1371 | -ms-transition-duration: 1200ms; 1372 | transition-duration: 1200ms; 1373 | } 1374 | 1375 | 1376 | /********************************************* 1377 | * RTL SUPPORT 1378 | *********************************************/ 1379 | 1380 | .reveal.rtl .slides, 1381 | .reveal.rtl .slides h1, 1382 | .reveal.rtl .slides h2, 1383 | .reveal.rtl .slides h3, 1384 | .reveal.rtl .slides h4, 1385 | .reveal.rtl .slides h5, 1386 | .reveal.rtl .slides h6 { 1387 | direction: rtl; 1388 | font-family: sans-serif; 1389 | } 1390 | 1391 | .reveal.rtl pre, 1392 | .reveal.rtl code { 1393 | direction: ltr; 1394 | } 1395 | 1396 | .reveal.rtl ol, 1397 | .reveal.rtl ul { 1398 | text-align: right; 1399 | } 1400 | 1401 | .reveal.rtl .progress span { 1402 | float: right 1403 | } 1404 | 1405 | 1406 | /********************************************* 1407 | * LINK PREVIEW OVERLAY 1408 | *********************************************/ 1409 | 1410 | .reveal .preview-link-overlay { 1411 | position: absolute; 1412 | top: 0; 1413 | left: 0; 1414 | width: 100%; 1415 | height: 100%; 1416 | z-index: 1000; 1417 | background: rgba( 0, 0, 0, 0.9 ); 1418 | opacity: 0; 1419 | visibility: hidden; 1420 | 1421 | -webkit-transition: all 0.3s ease; 1422 | -moz-transition: all 0.3s ease; 1423 | -ms-transition: all 0.3s ease; 1424 | transition: all 0.3s ease; 1425 | } 1426 | .reveal .preview-link-overlay.visible { 1427 | opacity: 1; 1428 | visibility: visible; 1429 | } 1430 | 1431 | .reveal .preview-link-overlay .spinner { 1432 | position: absolute; 1433 | display: block; 1434 | top: 50%; 1435 | left: 50%; 1436 | width: 32px; 1437 | height: 32px; 1438 | margin: -16px 0 0 -16px; 1439 | z-index: 10; 1440 | background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D); 1441 | 1442 | visibility: visible; 1443 | opacity: 0.6; 1444 | 1445 | -webkit-transition: all 0.3s ease; 1446 | -moz-transition: all 0.3s ease; 1447 | -ms-transition: all 0.3s ease; 1448 | transition: all 0.3s ease; 1449 | } 1450 | 1451 | .reveal .preview-link-overlay header { 1452 | position: absolute; 1453 | left: 0; 1454 | top: 0; 1455 | width: 100%; 1456 | height: 40px; 1457 | z-index: 2; 1458 | border-bottom: 1px solid #222; 1459 | } 1460 | .reveal .preview-link-overlay header a { 1461 | display: inline-block; 1462 | width: 40px; 1463 | height: 40px; 1464 | padding: 0 10px; 1465 | float: right; 1466 | opacity: 0.6; 1467 | 1468 | box-sizing: border-box; 1469 | } 1470 | .reveal .preview-link-overlay header a:hover { 1471 | opacity: 1; 1472 | } 1473 | .reveal .preview-link-overlay header a .icon { 1474 | display: inline-block; 1475 | width: 20px; 1476 | height: 20px; 1477 | 1478 | background-position: 50% 50%; 1479 | background-size: 100%; 1480 | background-repeat: no-repeat; 1481 | } 1482 | .reveal .preview-link-overlay header a.close .icon { 1483 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC); 1484 | } 1485 | .reveal .preview-link-overlay header a.external .icon { 1486 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==); 1487 | } 1488 | 1489 | .reveal .preview-link-overlay .viewport { 1490 | position: absolute; 1491 | top: 40px; 1492 | right: 0; 1493 | bottom: 0; 1494 | left: 0; 1495 | } 1496 | 1497 | .reveal .preview-link-overlay .viewport iframe { 1498 | width: 100%; 1499 | height: 100%; 1500 | max-width: 100%; 1501 | max-height: 100%; 1502 | border: 0; 1503 | 1504 | opacity: 0; 1505 | visibility: hidden; 1506 | 1507 | -webkit-transition: all 0.3s ease; 1508 | -moz-transition: all 0.3s ease; 1509 | -ms-transition: all 0.3s ease; 1510 | transition: all 0.3s ease; 1511 | } 1512 | 1513 | .reveal .preview-link-overlay.loaded .viewport iframe { 1514 | opacity: 1; 1515 | visibility: visible; 1516 | } 1517 | 1518 | .reveal .preview-link-overlay.loaded .spinner { 1519 | opacity: 0; 1520 | visibility: hidden; 1521 | 1522 | -webkit-transform: scale(0.2); 1523 | -moz-transform: scale(0.2); 1524 | -ms-transform: scale(0.2); 1525 | transform: scale(0.2); 1526 | } 1527 | 1528 | 1529 | /********************************************* 1530 | * ROLLING LINKS 1531 | *********************************************/ 1532 | 1533 | .reveal .roll { 1534 | display: inline-block; 1535 | line-height: 1.2; 1536 | overflow: hidden; 1537 | 1538 | vertical-align: top; 1539 | 1540 | -webkit-perspective: 400px; 1541 | -moz-perspective: 400px; 1542 | -ms-perspective: 400px; 1543 | perspective: 400px; 1544 | 1545 | -webkit-perspective-origin: 50% 50%; 1546 | -moz-perspective-origin: 50% 50%; 1547 | -ms-perspective-origin: 50% 50%; 1548 | perspective-origin: 50% 50%; 1549 | } 1550 | .reveal .roll:hover { 1551 | background: none; 1552 | text-shadow: none; 1553 | } 1554 | .reveal .roll span { 1555 | display: block; 1556 | position: relative; 1557 | padding: 0 2px; 1558 | 1559 | pointer-events: none; 1560 | 1561 | -webkit-transition: all 400ms ease; 1562 | -moz-transition: all 400ms ease; 1563 | -ms-transition: all 400ms ease; 1564 | transition: all 400ms ease; 1565 | 1566 | -webkit-transform-origin: 50% 0%; 1567 | -moz-transform-origin: 50% 0%; 1568 | -ms-transform-origin: 50% 0%; 1569 | transform-origin: 50% 0%; 1570 | 1571 | -webkit-transform-style: preserve-3d; 1572 | -moz-transform-style: preserve-3d; 1573 | -ms-transform-style: preserve-3d; 1574 | transform-style: preserve-3d; 1575 | 1576 | -webkit-backface-visibility: hidden; 1577 | -moz-backface-visibility: hidden; 1578 | backface-visibility: hidden; 1579 | } 1580 | .reveal .roll:hover span { 1581 | background: rgba(0,0,0,0.5); 1582 | 1583 | -webkit-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); 1584 | -moz-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); 1585 | -ms-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); 1586 | transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); 1587 | } 1588 | .reveal .roll span:after { 1589 | content: attr(data-title); 1590 | 1591 | display: block; 1592 | position: absolute; 1593 | left: 0; 1594 | top: 0; 1595 | padding: 0 2px; 1596 | 1597 | -webkit-backface-visibility: hidden; 1598 | -moz-backface-visibility: hidden; 1599 | backface-visibility: hidden; 1600 | 1601 | -webkit-transform-origin: 50% 0%; 1602 | -moz-transform-origin: 50% 0%; 1603 | -ms-transform-origin: 50% 0%; 1604 | transform-origin: 50% 0%; 1605 | 1606 | -webkit-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); 1607 | -moz-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); 1608 | -ms-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); 1609 | transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); 1610 | } 1611 | 1612 | 1613 | /********************************************* 1614 | * SPEAKER NOTES 1615 | *********************************************/ 1616 | 1617 | .reveal aside.notes { 1618 | display: none; 1619 | } 1620 | 1621 | 1622 | /********************************************* 1623 | * ZOOM PLUGIN 1624 | *********************************************/ 1625 | 1626 | .zoomed .reveal *, 1627 | .zoomed .reveal *:before, 1628 | .zoomed .reveal *:after { 1629 | -webkit-transform: none !important; 1630 | -moz-transform: none !important; 1631 | -ms-transform: none !important; 1632 | transform: none !important; 1633 | 1634 | -webkit-backface-visibility: visible !important; 1635 | -moz-backface-visibility: visible !important; 1636 | -ms-backface-visibility: visible !important; 1637 | backface-visibility: visible !important; 1638 | } 1639 | 1640 | .zoomed .reveal .progress, 1641 | .zoomed .reveal .controls { 1642 | opacity: 0; 1643 | } 1644 | 1645 | .zoomed .reveal .roll span { 1646 | background: none; 1647 | } 1648 | 1649 | .zoomed .reveal .roll span:after { 1650 | visibility: hidden; 1651 | } 1652 | 1653 | 1654 | -------------------------------------------------------------------------------- /static/css/reveal.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";/*! 2 | * reveal.js 3 | * http://lab.hakim.se/reveal-js 4 | * MIT licensed 5 | * 6 | * Copyright (C) 2013 Hakim El Hattab, http://hakim.se 7 | */ html,body,.reveal div,.reveal span,.reveal applet,.reveal object,.reveal iframe,.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6,.reveal p,.reveal blockquote,.reveal pre,.reveal a,.reveal abbr,.reveal acronym,.reveal address,.reveal big,.reveal cite,.reveal code,.reveal del,.reveal dfn,.reveal em,.reveal img,.reveal ins,.reveal kbd,.reveal q,.reveal s,.reveal samp,.reveal small,.reveal strike,.reveal strong,.reveal sub,.reveal sup,.reveal tt,.reveal var,.reveal b,.reveal u,.reveal i,.reveal center,.reveal dl,.reveal dt,.reveal dd,.reveal ol,.reveal ul,.reveal li,.reveal fieldset,.reveal form,.reveal label,.reveal legend,.reveal table,.reveal caption,.reveal tbody,.reveal tfoot,.reveal thead,.reveal tr,.reveal th,.reveal td,.reveal article,.reveal aside,.reveal canvas,.reveal details,.reveal embed,.reveal figure,.reveal figcaption,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal output,.reveal ruby,.reveal section,.reveal summary,.reveal time,.reveal mark,.reveal audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.reveal article,.reveal aside,.reveal details,.reveal figcaption,.reveal figure,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal section{display:block}html,body{width:100%;height:100%;overflow:hidden}body{position:relative;line-height:1}::selection{background:#FF5E99;color:#fff;text-shadow:none}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;word-wrap:break-word;line-height:1}.reveal h1{font-size:3.77em}.reveal h2{font-size:2.11em}.reveal h3{font-size:1.55em}.reveal h4{font-size:1em}.reveal .slides section .fragment{opacity:0;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.reveal .slides section .fragment.visible{opacity:1}.reveal .slides section .fragment.grow{opacity:1}.reveal .slides section .fragment.grow.visible{-webkit-transform:scale(1.3);-moz-transform:scale(1.3);-ms-transform:scale(1.3);-o-transform:scale(1.3);transform:scale(1.3)}.reveal .slides section .fragment.shrink{opacity:1}.reveal .slides section .fragment.shrink.visible{-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);-o-transform:scale(0.7);transform:scale(0.7)}.reveal .slides section .fragment.zoom-in{opacity:0;-webkit-transform:scale(0.1);-moz-transform:scale(0.1);-ms-transform:scale(0.1);-o-transform:scale(0.1);transform:scale(0.1)}.reveal .slides section .fragment.zoom-in.visible{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.reveal .slides section .fragment.roll-in{opacity:0;-webkit-transform:rotateX(90deg);-moz-transform:rotateX(90deg);-ms-transform:rotateX(90deg);-o-transform:rotateX(90deg);transform:rotateX(90deg)}.reveal .slides section .fragment.roll-in.visible{opacity:1;-webkit-transform:rotateX(0);-moz-transform:rotateX(0);-ms-transform:rotateX(0);-o-transform:rotateX(0);transform:rotateX(0)}.reveal .slides section .fragment.fade-out{opacity:1}.reveal .slides section .fragment.fade-out.visible{opacity:0}.reveal .slides section .fragment.semi-fade-out{opacity:1}.reveal .slides section .fragment.semi-fade-out.visible{opacity:.5}.reveal .slides section .fragment.highlight-red,.reveal .slides section .fragment.highlight-green,.reveal .slides section .fragment.highlight-blue{opacity:1}.reveal .slides section .fragment.highlight-red.visible{color:#ff2c2d}.reveal .slides section .fragment.highlight-green.visible{color:#17ff2e}.reveal .slides section .fragment.highlight-blue.visible{color:#1b91ff}.reveal:after{content:'';font-style:italic}.reveal iframe{z-index:1}.reveal img,.reveal video,.reveal iframe{max-width:95%;max-height:95%}.reveal a{position:relative}.reveal strong,.reveal b{font-weight:700}.reveal em,.reveal i{font-style:italic}.reveal ol,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ul ul,.reveal ul ol,.reveal ol ol,.reveal ol ul{display:block;margin-left:40px}.reveal p{margin-bottom:10px;line-height:1.2em}.reveal q,.reveal blockquote{quotes:none}.reveal blockquote{display:block;position:relative;width:70%;margin:5px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:15px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 0 6px rgba(0,0,0,.3)}.reveal code{font-family:monospace}.reveal pre code{padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal pre.stretch code{height:100%;max-height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal table th,.reveal table td{text-align:left;padding-right:.3em}.reveal table th{text-shadow:#fff 1px 1px 2px}.reveal sup{vertical-align:super}.reveal sub{vertical-align:sub}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal .stretch{max-width:none;max-height:none}.reveal .controls{display:none;position:fixed;width:110px;height:110px;z-index:30;right:10px;bottom:10px}.reveal .controls div{position:absolute;opacity:.05;width:0;height:0;border:12px solid transparent;-moz-transform:scale(.9999);-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.reveal .controls div.enabled{opacity:.7;cursor:pointer}.reveal .controls div.enabled:active{margin-top:1px}.reveal .controls div.navigate-left{top:42px;border-right-width:22px;border-right-color:#eee}.reveal .controls div.navigate-left.fragmented{opacity:.3}.reveal .controls div.navigate-right{left:74px;top:42px;border-left-width:22px;border-left-color:#eee}.reveal .controls div.navigate-right.fragmented{opacity:.3}.reveal .controls div.navigate-up{left:42px;border-bottom-width:22px;border-bottom-color:#eee}.reveal .controls div.navigate-up.fragmented{opacity:.3}.reveal .controls div.navigate-down{left:42px;top:74px;border-top-width:22px;border-top-color:#eee}.reveal .controls div.navigate-down.fragmented{opacity:.3}.reveal .progress{position:fixed;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10}.reveal .progress:after{content:'';display:'block';position:absolute;height:20px;width:100%;top:-20px}.reveal .progress span{display:block;height:100%;width:0;-webkit-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);transition:width 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal{position:relative;width:100%;height:100%;-ms-touch-action:none}.reveal .slides{position:absolute;width:100%;height:100%;left:50%;top:50%;overflow:visible;z-index:1;text-align:center;-webkit-transition:-webkit-perspective .4s ease;-moz-transition:-moz-perspective .4s ease;-ms-transition:-ms-perspective .4s ease;-o-transition:-o-perspective .4s ease;transition:perspective .4s ease;-webkit-perspective:600px;-moz-perspective:600px;-ms-perspective:600px;perspective:600px;-webkit-perspective-origin:0 -100px;-moz-perspective-origin:0 -100px;-ms-perspective-origin:0 -100px;perspective-origin:0 -100px}.reveal .slides>section{-ms-perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;padding:20px 0;z-index:10;line-height:1.2em;font-weight:400;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:-webkit-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-webkit-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:-moz-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-moz-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:-ms-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-ms-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:-o-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-o-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);transition:transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal[data-transition-speed=slow] .slides section{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .slides section[data-transition-speed=fast]{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal .slides section[data-transition-speed=slow]{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .slides>section{left:-50%;top:-50%}.reveal .slides>section.stack{padding-top:0;padding-bottom:0}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:auto!important}.reveal .slides>section.future,.reveal .slides>section>section.future,.reveal .slides>section.past,.reveal .slides>section>section.past{pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section[data-transition=default].past,.reveal .slides>section.past{display:block;opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section.future{display:block;opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section.past{display:block;opacity:0;-webkit-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);-moz-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);-ms-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section.future{display:block;opacity:0;-webkit-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);-moz-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);-ms-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides>section[data-transition=concave].past,.reveal.concave .slides>section.past{-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal.concave .slides>section.future{-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal.concave .slides>section>section.past{-webkit-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);-moz-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);-ms-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal.concave .slides>section>section.future{-webkit-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);-moz-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);-ms-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides>section[data-transition=zoom].past,.reveal.zoom .slides>section.past{opacity:0;visibility:hidden;-webkit-transform:scale(16);-moz-transform:scale(16);-ms-transform:scale(16);-o-transform:scale(16);transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal.zoom .slides>section.future{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal.zoom .slides>section>section.past{-webkit-transform:translate(0,-150%);-moz-transform:translate(0,-150%);-ms-transform:translate(0,-150%);-o-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=zoom].future,.reveal.zoom .slides>section>section.future{-webkit-transform:translate(0,150%);-moz-transform:translate(0,150%);-ms-transform:translate(0,150%);-o-transform:translate(0,150%);transform:translate(0,150%)}.reveal.linear section{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=linear].past,.reveal.linear .slides>section.past{-webkit-transform:translate(-150%,0);-moz-transform:translate(-150%,0);-ms-transform:translate(-150%,0);-o-transform:translate(-150%,0);transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal.linear .slides>section.future{-webkit-transform:translate(150%,0);-moz-transform:translate(150%,0);-ms-transform:translate(150%,0);-o-transform:translate(150%,0);transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal.linear .slides>section>section.past{-webkit-transform:translate(0,-150%);-moz-transform:translate(0,-150%);-ms-transform:translate(0,-150%);-o-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal.linear .slides>section>section.future{-webkit-transform:translate(0,150%);-moz-transform:translate(0,150%);-ms-transform:translate(0,150%);-o-transform:translate(0,150%);transform:translate(0,150%)}.reveal.cube .slides{-webkit-perspective:1300px;-moz-perspective:1300px;-ms-perspective:1300px;perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal.center.cube .slides section{min-height:auto}.reveal.cube .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);border-radius:4px;-webkit-transform:translateZ(-20px);-moz-transform:translateZ(-20px);-ms-transform:translateZ(-20px);-o-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg);-moz-transform:translateZ(-90px) rotateX(65deg);-ms-transform:translateZ(-90px) rotateX(65deg);-o-transform:translateZ(-90px) rotateX(65deg);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0}.reveal.cube .slides>section.past{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg);transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg);-moz-transform:translate3d(100%,0,0) rotateY(90deg);-ms-transform:translate3d(100%,0,0) rotateY(90deg);transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg);-moz-transform:translate3d(0,-100%,0) rotateX(90deg);-ms-transform:translate3d(0,-100%,0) rotateX(90deg);transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg);-moz-transform:translate3d(0,100%,0) rotateX(-90deg);-ms-transform:translate3d(0,100%,0) rotateX(-90deg);transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{-webkit-perspective-origin:0 50%;-moz-perspective-origin:0 50%;-ms-perspective-origin:0 50%;perspective-origin:0 50%;-webkit-perspective:3000px;-moz-perspective:3000px;-ms-perspective:3000px;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);-webkit-transform:translateZ(-20px);-moz-transform:translateZ(-20px);-ms-transform:translateZ(-20px);-o-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0}.reveal.page .slides>section.past{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(-40%,0,0) rotateY(-80deg);-moz-transform:translate3d(-40%,0,0) rotateY(-80deg);-ms-transform:translate3d(-40%,0,0) rotateY(-80deg);transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,-40%,0) rotateX(80deg);-moz-transform:translate3d(0,-40%,0) rotateX(80deg);-ms-transform:translate3d(0,-40%,0) rotateX(80deg);transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section,.reveal.fade .slides>section>section{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;-ms-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section,.reveal.fade.overview-deactivating .slides section,.reveal.fade.overview-deactivating .slides>section>section{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal.overview .slides{-webkit-perspective-origin:0 0;-moz-perspective-origin:0 0;-ms-perspective-origin:0 0;perspective-origin:0 0;-webkit-perspective:700px;-moz-perspective:700px;-ms-perspective:700px;perspective:700px}.reveal.overview .slides section{height:600px;top:-300px!important;overflow:hidden;opacity:1!important;visibility:visible!important;cursor:pointer;background:rgba(0,0,0,.1)}.reveal.overview .slides section .fragment{opacity:1}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides section>section{opacity:1;cursor:pointer}.reveal.overview .slides section:hover{background:rgba(0,0,0,.3)}.reveal.overview .slides section.present{background:rgba(0,0,0,.3)}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:0;overflow:visible}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;-webkit-transition:all 1s ease;-moz-transition:all 1s ease;-ms-transition:all 1s ease;-o-transition:all 1s ease;transition:all 1s ease}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.no-transforms{overflow-y:auto}.no-transforms .reveal .slides{position:relative;width:80%;height:auto!important;top:0;left:50%;margin:0;text-align:center}.no-transforms .reveal .controls,.no-transforms .reveal .progress{display:none!important}.no-transforms .reveal .slides section{display:block!important;opacity:1!important;position:relative!important;height:auto;min-height:auto;top:0;left:-50%;margin:70px 0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.no-transforms .reveal .slides section section{left:0}.reveal .no-transition,.reveal .no-transition *{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important}.reveal .state-background{position:absolute;width:100%;height:100%;background:rgba(0,0,0,0);-webkit-transition:background 800ms ease;-moz-transition:background 800ms ease;-ms-transition:background 800ms ease;-o-transition:background 800ms ease;transition:background 800ms ease}.alert .reveal .state-background{background:rgba(200,50,30,.6)}.soothe .reveal .state-background{background:rgba(50,200,90,.4)}.blackout .reveal .state-background{background:rgba(0,0,0,.6)}.whiteout .reveal .state-background{background:rgba(255,255,255,.6)}.cobalt .reveal .state-background{background:rgba(22,152,213,.6)}.mint .reveal .state-background{background:rgba(22,213,75,.6)}.submerge .reveal .state-background{background:rgba(12,25,77,.6)}.lila .reveal .state-background{background:rgba(180,50,140,.6)}.sunset .reveal .state-background{background:rgba(255,122,0,.6)}.reveal>.backgrounds{position:absolute;width:100%;height:100%}.reveal .slide-background{position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;background-color:rgba(0,0,0,0);background-position:50% 50%;background-repeat:no-repeat;background-size:cover;-webkit-transition:all 600ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:all 600ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:all 600ms cubic-bezier(0.26,.86,.44,.985);-o-transition:all 600ms cubic-bezier(0.26,.86,.44,.985);transition:all 600ms cubic-bezier(0.26,.86,.44,.985)}.reveal .slide-background.present{opacity:1;visibility:visible}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal[data-background-transition=none]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=none]{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal[data-background-transition=slide]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=slide]{opacity:1;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition-duration:800ms;-moz-transition-duration:800ms;-ms-transition-duration:800ms;-o-transition-duration:800ms;transition-duration:800ms}.reveal[data-background-transition=slide]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=slide]{-webkit-transform:translate(-100%,0);-moz-transform:translate(-100%,0);-ms-transform:translate(-100%,0);-o-transform:translate(-100%,0);transform:translate(-100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=slide]{-webkit-transform:translate(100%,0);-moz-transform:translate(100%,0);-ms-transform:translate(100%,0);-o-transform:translate(100%,0);transform:translate(100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide]{-webkit-transform:translate(0,-100%);-moz-transform:translate(0,-100%);-ms-transform:translate(0,-100%);-o-transform:translate(0,-100%);transform:translate(0,-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide]{-webkit-transform:translate(0,100%);-moz-transform:translate(0,100%);-ms-transform:translate(0,100%);-o-transform:translate(0,100%);transform:translate(0,100%)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl pre,.reveal.rtl code{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{float:right}.reveal .preview-link-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.9);opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay.visible{opacity:1;visibility:visible}.reveal .preview-link-overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay header{position:absolute;left:0;top:0;width:100%;height:40px;z-index:2;border-bottom:1px solid #222}.reveal .preview-link-overlay header a{display:inline-block;width:40px;height:40px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal .preview-link-overlay header a:hover{opacity:1}.reveal .preview-link-overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal .preview-link-overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal .preview-link-overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal .preview-link-overlay .viewport{position:absolute;top:40px;right:0;bottom:0;left:0}.reveal .preview-link-overlay .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay.loaded .viewport iframe{opacity:1;visibility:visible}.reveal .preview-link-overlay.loaded .spinner{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);transform:scale(0.2)}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;-webkit-perspective:400px;-moz-perspective:400px;-ms-perspective:400px;perspective:400px;-webkit-perspective-origin:50% 50%;-moz-perspective-origin:50% 50%;-ms-perspective-origin:50% 50%;perspective-origin:50% 50%}.reveal .roll:hover{background:0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;-ms-transition:all 400ms ease;transition:all 400ms ease;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,.5);-webkit-transform:translate3d(0px,0,-45px) rotateX(90deg);-moz-transform:translate3d(0px,0,-45px) rotateX(90deg);-ms-transform:translate3d(0px,0,-45px) rotateX(90deg);transform:translate3d(0px,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:translate3d(0px,110%,0) rotateX(-90deg);-moz-transform:translate3d(0px,110%,0) rotateX(-90deg);-ms-transform:translate3d(0px,110%,0) rotateX(-90deg);transform:translate3d(0px,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.zoomed .reveal *,.zoomed .reveal :before,.zoomed .reveal :after{-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;transform:none!important;-webkit-backface-visibility:visible!important;-moz-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}.zoomed .reveal .progress,.zoomed .reveal .controls{opacity:0}.zoomed .reveal .roll span{background:0}.zoomed .reveal .roll span:after{visibility:hidden} -------------------------------------------------------------------------------- /static/css/sample-styles.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Lean Slider Sample Styles 3 | * http://dev7studios.com/lean-slider 4 | */ 5 | 6 | .slider-wrapper { 7 | position: relative; 8 | background: #fff url(images/loading.gif) no-repeat 50% 50%; 9 | -moz-box-shadow: 0 0 3px rgba(0,0,0,0.4); 10 | -webkit-box-shadow: 0 0 3px rgba(0,0,0,0.4); 11 | box-shadow: 0 0 3px rgba(0,0,0,0.4); 12 | } 13 | .lean-slider { overflow: hidden; } 14 | .lean-slider-slide { 15 | display: block; 16 | position: relative; 17 | opacity: 0; 18 | -webkit-transition: opacity 0.6s linear; 19 | -moz-transition: opacity 0.6s linear; 20 | -ms-transition: opacity 0.6s linear; 21 | -o-transition: opacity 0.6s linear; 22 | transition: opacity 0.6s linear; 23 | } 24 | .lean-slider-slide.current { opacity: 1; } 25 | .lean-slider-slide img { 26 | display: block; 27 | width: 100%; 28 | } 29 | 30 | #slider-direction-nav { 31 | position: absolute; 32 | left: 0; 33 | top: 47%; 34 | width: 100%; 35 | -webkit-transition: opacity 0.2s linear; 36 | -moz-transition: opacity 0.2s linear; 37 | -ms-transition: opacity 0.2s linear; 38 | -o-transition: opacity 0.2s linear; 39 | transition: opacity 0.2s linear; 40 | opacity: 0.2; 41 | } 42 | .slider-wrapper:hover #slider-direction-nav { opacity: 1; } 43 | #slider-direction-nav a { 44 | float: left; 45 | display: block; 46 | width: 26px; 47 | height: 37px; 48 | background: url(images/arrows.png) no-repeat 0 0; 49 | text-indent: -9999px; 50 | } 51 | #slider-direction-nav .lean-slider-next { 52 | float: right; 53 | background-position: 100% 0; 54 | } 55 | 56 | #slider-control-nav { 57 | position: absolute; 58 | left: 0; 59 | bottom: 10px; 60 | width: 100%; 61 | text-align: center; 62 | -webkit-transition: opacity 0.2s linear; 63 | -moz-transition: opacity 0.2s linear; 64 | -ms-transition: opacity 0.2s linear; 65 | -o-transition: opacity 0.2s linear; 66 | transition: opacity 0.2s linear; 67 | opacity: 0.2; 68 | } 69 | .slider-wrapper:hover #slider-control-nav { opacity: 1; } 70 | #slider-control-nav a { 71 | display: inline-block; 72 | width: 14px; 73 | height: 14px; 74 | background: url(images/bullets.png) no-repeat 0 0; 75 | text-indent: -9999px; 76 | margin: 0 3px; 77 | -webkit-transition: none; 78 | -moz-transition: none; 79 | -ms-transition: none; 80 | -o-transition: none; 81 | transition: none; 82 | } 83 | #slider-control-nav a.active { background-position: 100% 0; } 84 | 85 | /* Smartphones (portrait and landscape) ----------- */ 86 | @media only screen 87 | and (min-device-width : 320px) 88 | and (max-width : 480px) { 89 | 90 | #slider-direction-nav, 91 | #slider-control-nav { opacity: 1; } 92 | 93 | } 94 | 95 | /* iPads (portrait and landscape) ----------- */ 96 | @media only screen 97 | and (min-device-width : 768px) 98 | and (max-device-width : 1024px) { 99 | 100 | #slider-direction-nav, 101 | #slider-control-nav { opacity: 1; } 102 | 103 | } -------------------------------------------------------------------------------- /static/css/sofia.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Sofia'; 3 | font-style: normal; 4 | font-weight: 400; 5 | src: local('Sofia'), local('Sofia-Regular'), url(eNNA2vlZnUPtgq9g__E3cA.woff) format('woff'); 6 | } 7 | -------------------------------------------------------------------------------- /static/css/theme/README.md: -------------------------------------------------------------------------------- 1 | ## Dependencies 2 | 3 | Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceding: https://github.com/hakimel/reveal.js#full-setup 4 | 5 | You also need to install Ruby and then Sass (with `gem install sass`). 6 | 7 | ## Creating a Theme 8 | 9 | To create your own theme, start by duplicating any ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source) and adding it to the compilation list in the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js). 10 | 11 | Each theme file does four things in the following order: 12 | 13 | 1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)** 14 | Shared utility functions. 15 | 16 | 2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)** 17 | Declares a set of custom variables that the template file (step 4) expects. Can be overridden in step 3. 18 | 19 | 3. **Override** 20 | This is where you override the default theme. Either by specifying variables (see [settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss) for reference) or by adding full selectors with hardcoded styles. 21 | 22 | 4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)** 23 | The template theme file which will generate final CSS output based on the currently defined variables. 24 | 25 | When you are done, run `grunt themes` to compile the Sass file to CSS and you are ready to use your new theme. 26 | -------------------------------------------------------------------------------- /static/css/theme/beige.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 2 | /** 3 | * Beige theme for reveal.js. 4 | * 5 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 6 | */ 7 | @font-face { 8 | font-family: 'League Gothic'; 9 | src: url("../../lib/font/league_gothic-webfont.eot"); 10 | src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg"); 11 | font-weight: normal; 12 | font-style: normal; } 13 | 14 | /********************************************* 15 | * GLOBAL STYLES 16 | *********************************************/ 17 | body { 18 | background: #f7f2d3; 19 | background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); 20 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3)); 21 | background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); 22 | background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); 23 | background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); 24 | background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); 25 | background-color: #f7f3de; } 26 | 27 | .reveal { 28 | font-family: "Lato", sans-serif; 29 | font-size: 36px; 30 | font-weight: 200; 31 | letter-spacing: -0.02em; 32 | color: #333333; } 33 | 34 | ::selection { 35 | color: white; 36 | background: rgba(79, 64, 28, 0.99); 37 | text-shadow: none; } 38 | 39 | /********************************************* 40 | * HEADERS 41 | *********************************************/ 42 | .reveal h1, 43 | .reveal h2, 44 | .reveal h3, 45 | .reveal h4, 46 | .reveal h5, 47 | .reveal h6 { 48 | margin: 0 0 20px 0; 49 | color: #333333; 50 | font-family: "League Gothic", Impact, sans-serif; 51 | line-height: 0.9em; 52 | letter-spacing: 0.02em; 53 | text-transform: uppercase; 54 | text-shadow: none; } 55 | 56 | .reveal h1 { 57 | text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); } 58 | 59 | /********************************************* 60 | * LINKS 61 | *********************************************/ 62 | .reveal a:not(.image) { 63 | color: #8b743d; 64 | text-decoration: none; 65 | -webkit-transition: color .15s ease; 66 | -moz-transition: color .15s ease; 67 | -ms-transition: color .15s ease; 68 | -o-transition: color .15s ease; 69 | transition: color .15s ease; } 70 | 71 | .reveal a:not(.image):hover { 72 | color: #c0a86e; 73 | text-shadow: none; 74 | border: none; } 75 | 76 | .reveal .roll span:after { 77 | color: #fff; 78 | background: #564826; } 79 | 80 | /********************************************* 81 | * IMAGES 82 | *********************************************/ 83 | .reveal section img { 84 | margin: 15px 0px; 85 | background: rgba(255, 255, 255, 0.12); 86 | border: 4px solid #333333; 87 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 88 | -webkit-transition: all .2s linear; 89 | -moz-transition: all .2s linear; 90 | -ms-transition: all .2s linear; 91 | -o-transition: all .2s linear; 92 | transition: all .2s linear; } 93 | 94 | .reveal a:hover img { 95 | background: rgba(255, 255, 255, 0.2); 96 | border-color: #8b743d; 97 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 98 | 99 | /********************************************* 100 | * NAVIGATION CONTROLS 101 | *********************************************/ 102 | .reveal .controls div.navigate-left, 103 | .reveal .controls div.navigate-left.enabled { 104 | border-right-color: #8b743d; } 105 | 106 | .reveal .controls div.navigate-right, 107 | .reveal .controls div.navigate-right.enabled { 108 | border-left-color: #8b743d; } 109 | 110 | .reveal .controls div.navigate-up, 111 | .reveal .controls div.navigate-up.enabled { 112 | border-bottom-color: #8b743d; } 113 | 114 | .reveal .controls div.navigate-down, 115 | .reveal .controls div.navigate-down.enabled { 116 | border-top-color: #8b743d; } 117 | 118 | .reveal .controls div.navigate-left.enabled:hover { 119 | border-right-color: #c0a86e; } 120 | 121 | .reveal .controls div.navigate-right.enabled:hover { 122 | border-left-color: #c0a86e; } 123 | 124 | .reveal .controls div.navigate-up.enabled:hover { 125 | border-bottom-color: #c0a86e; } 126 | 127 | .reveal .controls div.navigate-down.enabled:hover { 128 | border-top-color: #c0a86e; } 129 | 130 | /********************************************* 131 | * PROGRESS BAR 132 | *********************************************/ 133 | .reveal .progress { 134 | background: rgba(0, 0, 0, 0.2); } 135 | 136 | .reveal .progress span { 137 | background: #8b743d; 138 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 139 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 140 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 141 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 142 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 143 | -------------------------------------------------------------------------------- /static/css/theme/default.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 2 | /** 3 | * Default theme for reveal.js. 4 | * 5 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 6 | */ 7 | @font-face { 8 | font-family: 'League Gothic'; 9 | src: url("../../lib/font/league_gothic-webfont.eot"); 10 | src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg"); 11 | font-weight: normal; 12 | font-style: normal; } 13 | 14 | /********************************************* 15 | * GLOBAL STYLES 16 | *********************************************/ 17 | body { 18 | background: #1c1e20; 19 | background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); 20 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20)); 21 | background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); 22 | background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); 23 | background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); 24 | background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); 25 | background-color: #2b2b2b; } 26 | 27 | .reveal { 28 | font-family: "Lato", sans-serif; 29 | font-size: 36px; 30 | font-weight: 200; 31 | letter-spacing: -0.02em; 32 | color: #eeeeee; } 33 | 34 | ::selection { 35 | color: white; 36 | background: #ff5e99; 37 | text-shadow: none; } 38 | 39 | /********************************************* 40 | * HEADERS 41 | *********************************************/ 42 | .reveal h1, 43 | .reveal h2, 44 | .reveal h3, 45 | .reveal h4, 46 | .reveal h5, 47 | .reveal h6 { 48 | margin: 0 0 20px 0; 49 | color: #eeeeee; 50 | font-family: "League Gothic", Impact, sans-serif; 51 | line-height: 0.9em; 52 | letter-spacing: 0.02em; 53 | text-transform: uppercase; 54 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); } 55 | 56 | .reveal h1 { 57 | text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); } 58 | 59 | /********************************************* 60 | * LINKS 61 | *********************************************/ 62 | .reveal a:not(.image) { 63 | color: #13daec; 64 | text-decoration: none; 65 | -webkit-transition: color .15s ease; 66 | -moz-transition: color .15s ease; 67 | -ms-transition: color .15s ease; 68 | -o-transition: color .15s ease; 69 | transition: color .15s ease; } 70 | 71 | .reveal a:not(.image):hover { 72 | color: #71e9f4; 73 | text-shadow: none; 74 | border: none; } 75 | 76 | .reveal .roll span:after { 77 | color: #fff; 78 | background: #0d99a5; } 79 | 80 | /********************************************* 81 | * IMAGES 82 | *********************************************/ 83 | .reveal section img { 84 | margin: 15px 0px; 85 | background: rgba(255, 255, 255, 0.12); 86 | border: 4px solid #eeeeee; 87 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 88 | -webkit-transition: all .2s linear; 89 | -moz-transition: all .2s linear; 90 | -ms-transition: all .2s linear; 91 | -o-transition: all .2s linear; 92 | transition: all .2s linear; } 93 | 94 | .reveal a:hover img { 95 | background: rgba(255, 255, 255, 0.2); 96 | border-color: #13daec; 97 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 98 | 99 | /********************************************* 100 | * NAVIGATION CONTROLS 101 | *********************************************/ 102 | .reveal .controls div.navigate-left, 103 | .reveal .controls div.navigate-left.enabled { 104 | border-right-color: #13daec; } 105 | 106 | .reveal .controls div.navigate-right, 107 | .reveal .controls div.navigate-right.enabled { 108 | border-left-color: #13daec; } 109 | 110 | .reveal .controls div.navigate-up, 111 | .reveal .controls div.navigate-up.enabled { 112 | border-bottom-color: #13daec; } 113 | 114 | .reveal .controls div.navigate-down, 115 | .reveal .controls div.navigate-down.enabled { 116 | border-top-color: #13daec; } 117 | 118 | .reveal .controls div.navigate-left.enabled:hover { 119 | border-right-color: #71e9f4; } 120 | 121 | .reveal .controls div.navigate-right.enabled:hover { 122 | border-left-color: #71e9f4; } 123 | 124 | .reveal .controls div.navigate-up.enabled:hover { 125 | border-bottom-color: #71e9f4; } 126 | 127 | .reveal .controls div.navigate-down.enabled:hover { 128 | border-top-color: #71e9f4; } 129 | 130 | /********************************************* 131 | * PROGRESS BAR 132 | *********************************************/ 133 | .reveal .progress { 134 | background: rgba(0, 0, 0, 0.2); } 135 | 136 | .reveal .progress span { 137 | background: #13daec; 138 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 139 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 140 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 141 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 142 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 143 | -------------------------------------------------------------------------------- /static/css/theme/moon.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 2 | /** 3 | * Solarized Dark theme for reveal.js. 4 | * Author: Achim Staebler 5 | */ 6 | @font-face { 7 | font-family: 'League Gothic'; 8 | src: url("../../lib/font/league_gothic-webfont.eot"); 9 | src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg"); 10 | font-weight: normal; 11 | font-style: normal; } 12 | 13 | /** 14 | * Solarized colors by Ethan Schoonover 15 | */ 16 | html * { 17 | color-profile: sRGB; 18 | rendering-intent: auto; } 19 | 20 | /********************************************* 21 | * GLOBAL STYLES 22 | *********************************************/ 23 | body { 24 | background: #002b36; 25 | background-color: #002b36; } 26 | 27 | .reveal { 28 | font-family: "Lato", sans-serif; 29 | font-size: 36px; 30 | font-weight: 200; 31 | letter-spacing: -0.02em; 32 | color: #93a1a1; } 33 | 34 | ::selection { 35 | color: white; 36 | background: #d33682; 37 | text-shadow: none; } 38 | 39 | /********************************************* 40 | * HEADERS 41 | *********************************************/ 42 | .reveal h1, 43 | .reveal h2, 44 | .reveal h3, 45 | .reveal h4, 46 | .reveal h5, 47 | .reveal h6 { 48 | margin: 0 0 20px 0; 49 | color: #eee8d5; 50 | font-family: "League Gothic", Impact, sans-serif; 51 | line-height: 0.9em; 52 | letter-spacing: 0.02em; 53 | text-transform: uppercase; 54 | text-shadow: none; } 55 | 56 | .reveal h1 { 57 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); } 58 | 59 | /********************************************* 60 | * LINKS 61 | *********************************************/ 62 | .reveal a:not(.image) { 63 | color: #268bd2; 64 | text-decoration: none; 65 | -webkit-transition: color .15s ease; 66 | -moz-transition: color .15s ease; 67 | -ms-transition: color .15s ease; 68 | -o-transition: color .15s ease; 69 | transition: color .15s ease; } 70 | 71 | .reveal a:not(.image):hover { 72 | color: #78b9e6; 73 | text-shadow: none; 74 | border: none; } 75 | 76 | .reveal .roll span:after { 77 | color: #fff; 78 | background: #1a6091; } 79 | 80 | /********************************************* 81 | * IMAGES 82 | *********************************************/ 83 | .reveal section img { 84 | margin: 15px 0px; 85 | background: rgba(255, 255, 255, 0.12); 86 | border: 4px solid #93a1a1; 87 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 88 | -webkit-transition: all .2s linear; 89 | -moz-transition: all .2s linear; 90 | -ms-transition: all .2s linear; 91 | -o-transition: all .2s linear; 92 | transition: all .2s linear; } 93 | 94 | .reveal a:hover img { 95 | background: rgba(255, 255, 255, 0.2); 96 | border-color: #268bd2; 97 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 98 | 99 | /********************************************* 100 | * NAVIGATION CONTROLS 101 | *********************************************/ 102 | .reveal .controls div.navigate-left, 103 | .reveal .controls div.navigate-left.enabled { 104 | border-right-color: #268bd2; } 105 | 106 | .reveal .controls div.navigate-right, 107 | .reveal .controls div.navigate-right.enabled { 108 | border-left-color: #268bd2; } 109 | 110 | .reveal .controls div.navigate-up, 111 | .reveal .controls div.navigate-up.enabled { 112 | border-bottom-color: #268bd2; } 113 | 114 | .reveal .controls div.navigate-down, 115 | .reveal .controls div.navigate-down.enabled { 116 | border-top-color: #268bd2; } 117 | 118 | .reveal .controls div.navigate-left.enabled:hover { 119 | border-right-color: #78b9e6; } 120 | 121 | .reveal .controls div.navigate-right.enabled:hover { 122 | border-left-color: #78b9e6; } 123 | 124 | .reveal .controls div.navigate-up.enabled:hover { 125 | border-bottom-color: #78b9e6; } 126 | 127 | .reveal .controls div.navigate-down.enabled:hover { 128 | border-top-color: #78b9e6; } 129 | 130 | /********************************************* 131 | * PROGRESS BAR 132 | *********************************************/ 133 | .reveal .progress { 134 | background: rgba(0, 0, 0, 0.2); } 135 | 136 | .reveal .progress span { 137 | background: #268bd2; 138 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 139 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 140 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 141 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 142 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 143 | -------------------------------------------------------------------------------- /static/css/theme/night.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Montserrat:700); 2 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic); 3 | /** 4 | * Black theme for reveal.js. 5 | * 6 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 7 | */ 8 | /********************************************* 9 | * GLOBAL STYLES 10 | *********************************************/ 11 | body { 12 | background: #111111; 13 | background-color: #111111; } 14 | 15 | .reveal { 16 | font-family: "Open Sans", sans-serif; 17 | font-size: 30px; 18 | font-weight: 200; 19 | letter-spacing: -0.02em; 20 | color: #eeeeee; } 21 | 22 | ::selection { 23 | color: white; 24 | background: #e7ad52; 25 | text-shadow: none; } 26 | 27 | /********************************************* 28 | * HEADERS 29 | *********************************************/ 30 | .reveal h1, 31 | .reveal h2, 32 | .reveal h3, 33 | .reveal h4, 34 | .reveal h5, 35 | .reveal h6 { 36 | margin: 0 0 20px 0; 37 | color: #eeeeee; 38 | font-family: "Montserrat", Impact, sans-serif; 39 | line-height: 0.9em; 40 | letter-spacing: -0.03em; 41 | text-transform: none; 42 | text-shadow: none; } 43 | 44 | .reveal h1 { 45 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); } 46 | 47 | /********************************************* 48 | * LINKS 49 | *********************************************/ 50 | .reveal a:not(.image) { 51 | color: #e7ad52; 52 | text-decoration: none; 53 | -webkit-transition: color .15s ease; 54 | -moz-transition: color .15s ease; 55 | -ms-transition: color .15s ease; 56 | -o-transition: color .15s ease; 57 | transition: color .15s ease; } 58 | 59 | .reveal a:not(.image):hover { 60 | color: #f3d7ac; 61 | text-shadow: none; 62 | border: none; } 63 | 64 | .reveal .roll span:after { 65 | color: #fff; 66 | background: #d08a1d; } 67 | 68 | /********************************************* 69 | * IMAGES 70 | *********************************************/ 71 | .reveal section img { 72 | margin: 15px 0px; 73 | background: rgba(255, 255, 255, 0.12); 74 | border: 4px solid #eeeeee; 75 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 76 | -webkit-transition: all .2s linear; 77 | -moz-transition: all .2s linear; 78 | -ms-transition: all .2s linear; 79 | -o-transition: all .2s linear; 80 | transition: all .2s linear; } 81 | 82 | .reveal a:hover img { 83 | background: rgba(255, 255, 255, 0.2); 84 | border-color: #e7ad52; 85 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 86 | 87 | /********************************************* 88 | * NAVIGATION CONTROLS 89 | *********************************************/ 90 | .reveal .controls div.navigate-left, 91 | .reveal .controls div.navigate-left.enabled { 92 | border-right-color: #e7ad52; } 93 | 94 | .reveal .controls div.navigate-right, 95 | .reveal .controls div.navigate-right.enabled { 96 | border-left-color: #e7ad52; } 97 | 98 | .reveal .controls div.navigate-up, 99 | .reveal .controls div.navigate-up.enabled { 100 | border-bottom-color: #e7ad52; } 101 | 102 | .reveal .controls div.navigate-down, 103 | .reveal .controls div.navigate-down.enabled { 104 | border-top-color: #e7ad52; } 105 | 106 | .reveal .controls div.navigate-left.enabled:hover { 107 | border-right-color: #f3d7ac; } 108 | 109 | .reveal .controls div.navigate-right.enabled:hover { 110 | border-left-color: #f3d7ac; } 111 | 112 | .reveal .controls div.navigate-up.enabled:hover { 113 | border-bottom-color: #f3d7ac; } 114 | 115 | .reveal .controls div.navigate-down.enabled:hover { 116 | border-top-color: #f3d7ac; } 117 | 118 | /********************************************* 119 | * PROGRESS BAR 120 | *********************************************/ 121 | .reveal .progress { 122 | background: rgba(0, 0, 0, 0.2); } 123 | 124 | .reveal .progress span { 125 | background: #e7ad52; 126 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 127 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 128 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 129 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 130 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 131 | -------------------------------------------------------------------------------- /static/css/theme/serif.css: -------------------------------------------------------------------------------- 1 | /** 2 | * A simple theme for reveal.js presentations, similar 3 | * to the default theme. The accent color is brown. 4 | * 5 | * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed. 6 | */ 7 | .reveal a:not(.image) { 8 | line-height: 1.3em; } 9 | 10 | /********************************************* 11 | * GLOBAL STYLES 12 | *********************************************/ 13 | body { 14 | background: #f0f1eb; 15 | background-color: #f0f1eb; } 16 | 17 | .reveal { 18 | font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif; 19 | font-size: 36px; 20 | font-weight: 200; 21 | letter-spacing: -0.02em; 22 | color: black; } 23 | 24 | ::selection { 25 | color: white; 26 | background: #26351c; 27 | text-shadow: none; } 28 | 29 | /********************************************* 30 | * HEADERS 31 | *********************************************/ 32 | .reveal h1, 33 | .reveal h2, 34 | .reveal h3, 35 | .reveal h4, 36 | .reveal h5, 37 | .reveal h6 { 38 | margin: 0 0 20px 0; 39 | color: #383d3d; 40 | font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif; 41 | line-height: 0.9em; 42 | letter-spacing: 0.02em; 43 | text-transform: none; 44 | text-shadow: none; } 45 | 46 | .reveal h1 { 47 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); } 48 | 49 | /********************************************* 50 | * LINKS 51 | *********************************************/ 52 | .reveal a:not(.image) { 53 | color: #51483d; 54 | text-decoration: none; 55 | -webkit-transition: color .15s ease; 56 | -moz-transition: color .15s ease; 57 | -ms-transition: color .15s ease; 58 | -o-transition: color .15s ease; 59 | transition: color .15s ease; } 60 | 61 | .reveal a:not(.image):hover { 62 | color: #8b7c69; 63 | text-shadow: none; 64 | border: none; } 65 | 66 | .reveal .roll span:after { 67 | color: #fff; 68 | background: #25211c; } 69 | 70 | /********************************************* 71 | * IMAGES 72 | *********************************************/ 73 | .reveal section img { 74 | margin: 15px 0px; 75 | background: rgba(255, 255, 255, 0.12); 76 | border: 4px solid black; 77 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 78 | -webkit-transition: all .2s linear; 79 | -moz-transition: all .2s linear; 80 | -ms-transition: all .2s linear; 81 | -o-transition: all .2s linear; 82 | transition: all .2s linear; } 83 | 84 | .reveal a:hover img { 85 | background: rgba(255, 255, 255, 0.2); 86 | border-color: #51483d; 87 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 88 | 89 | /********************************************* 90 | * NAVIGATION CONTROLS 91 | *********************************************/ 92 | .reveal .controls div.navigate-left, 93 | .reveal .controls div.navigate-left.enabled { 94 | border-right-color: #51483d; } 95 | 96 | .reveal .controls div.navigate-right, 97 | .reveal .controls div.navigate-right.enabled { 98 | border-left-color: #51483d; } 99 | 100 | .reveal .controls div.navigate-up, 101 | .reveal .controls div.navigate-up.enabled { 102 | border-bottom-color: #51483d; } 103 | 104 | .reveal .controls div.navigate-down, 105 | .reveal .controls div.navigate-down.enabled { 106 | border-top-color: #51483d; } 107 | 108 | .reveal .controls div.navigate-left.enabled:hover { 109 | border-right-color: #8b7c69; } 110 | 111 | .reveal .controls div.navigate-right.enabled:hover { 112 | border-left-color: #8b7c69; } 113 | 114 | .reveal .controls div.navigate-up.enabled:hover { 115 | border-bottom-color: #8b7c69; } 116 | 117 | .reveal .controls div.navigate-down.enabled:hover { 118 | border-top-color: #8b7c69; } 119 | 120 | /********************************************* 121 | * PROGRESS BAR 122 | *********************************************/ 123 | .reveal .progress { 124 | background: rgba(0, 0, 0, 0.2); } 125 | 126 | .reveal .progress span { 127 | background: #51483d; 128 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 129 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 130 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 131 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 132 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 133 | -------------------------------------------------------------------------------- /static/css/theme/simple.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700); 2 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 3 | /** 4 | * A simple theme for reveal.js presentations, similar 5 | * to the default theme. The accent color is darkblue. 6 | * 7 | * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed. 8 | * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 9 | */ 10 | /********************************************* 11 | * GLOBAL STYLES 12 | *********************************************/ 13 | body { 14 | background: white; 15 | background-color: white; } 16 | 17 | .reveal { 18 | font-family: "Lato", sans-serif; 19 | font-size: 36px; 20 | font-weight: 200; 21 | letter-spacing: -0.02em; 22 | color: black; } 23 | 24 | ::selection { 25 | color: white; 26 | background: rgba(0, 0, 0, 0.99); 27 | text-shadow: none; } 28 | 29 | /********************************************* 30 | * HEADERS 31 | *********************************************/ 32 | .reveal h1, 33 | .reveal h2, 34 | .reveal h3, 35 | .reveal h4, 36 | .reveal h5, 37 | .reveal h6 { 38 | margin: 0 0 20px 0; 39 | color: black; 40 | font-family: "News Cycle", Impact, sans-serif; 41 | line-height: 0.9em; 42 | letter-spacing: 0.02em; 43 | text-transform: none; 44 | text-shadow: none; } 45 | 46 | .reveal h1 { 47 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); } 48 | 49 | /********************************************* 50 | * LINKS 51 | *********************************************/ 52 | .reveal a:not(.image) { 53 | color: darkblue; 54 | text-decoration: none; 55 | -webkit-transition: color .15s ease; 56 | -moz-transition: color .15s ease; 57 | -ms-transition: color .15s ease; 58 | -o-transition: color .15s ease; 59 | transition: color .15s ease; } 60 | 61 | .reveal a:not(.image):hover { 62 | color: #0000f1; 63 | text-shadow: none; 64 | border: none; } 65 | 66 | .reveal .roll span:after { 67 | color: #fff; 68 | background: #00003f; } 69 | 70 | /********************************************* 71 | * IMAGES 72 | *********************************************/ 73 | .reveal section img { 74 | margin: 15px 0px; 75 | background: rgba(255, 255, 255, 0.12); 76 | border: 4px solid black; 77 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 78 | -webkit-transition: all .2s linear; 79 | -moz-transition: all .2s linear; 80 | -ms-transition: all .2s linear; 81 | -o-transition: all .2s linear; 82 | transition: all .2s linear; } 83 | 84 | .reveal a:hover img { 85 | background: rgba(255, 255, 255, 0.2); 86 | border-color: darkblue; 87 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 88 | 89 | /********************************************* 90 | * NAVIGATION CONTROLS 91 | *********************************************/ 92 | .reveal .controls div.navigate-left, 93 | .reveal .controls div.navigate-left.enabled { 94 | border-right-color: darkblue; } 95 | 96 | .reveal .controls div.navigate-right, 97 | .reveal .controls div.navigate-right.enabled { 98 | border-left-color: darkblue; } 99 | 100 | .reveal .controls div.navigate-up, 101 | .reveal .controls div.navigate-up.enabled { 102 | border-bottom-color: darkblue; } 103 | 104 | .reveal .controls div.navigate-down, 105 | .reveal .controls div.navigate-down.enabled { 106 | border-top-color: darkblue; } 107 | 108 | .reveal .controls div.navigate-left.enabled:hover { 109 | border-right-color: #0000f1; } 110 | 111 | .reveal .controls div.navigate-right.enabled:hover { 112 | border-left-color: #0000f1; } 113 | 114 | .reveal .controls div.navigate-up.enabled:hover { 115 | border-bottom-color: #0000f1; } 116 | 117 | .reveal .controls div.navigate-down.enabled:hover { 118 | border-top-color: #0000f1; } 119 | 120 | /********************************************* 121 | * PROGRESS BAR 122 | *********************************************/ 123 | .reveal .progress { 124 | background: rgba(0, 0, 0, 0.2); } 125 | 126 | .reveal .progress span { 127 | background: darkblue; 128 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 129 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 130 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 131 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 132 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 133 | -------------------------------------------------------------------------------- /static/css/theme/sky.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic); 2 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700); 3 | /** 4 | * Sky theme for reveal.js. 5 | * 6 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 7 | */ 8 | .reveal a:not(.image) { 9 | line-height: 1.3em; } 10 | 11 | /********************************************* 12 | * GLOBAL STYLES 13 | *********************************************/ 14 | body { 15 | background: #add9e4; 16 | background: -moz-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); 17 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #f7fbfc), color-stop(100%, #add9e4)); 18 | background: -webkit-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); 19 | background: -o-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); 20 | background: -ms-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); 21 | background: radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); 22 | background-color: #f7fbfc; } 23 | 24 | .reveal { 25 | font-family: "Open Sans", sans-serif; 26 | font-size: 36px; 27 | font-weight: 200; 28 | letter-spacing: -0.02em; 29 | color: #333333; } 30 | 31 | ::selection { 32 | color: white; 33 | background: #134674; 34 | text-shadow: none; } 35 | 36 | /********************************************* 37 | * HEADERS 38 | *********************************************/ 39 | .reveal h1, 40 | .reveal h2, 41 | .reveal h3, 42 | .reveal h4, 43 | .reveal h5, 44 | .reveal h6 { 45 | margin: 0 0 20px 0; 46 | color: #333333; 47 | font-family: "Quicksand", sans-serif; 48 | line-height: 0.9em; 49 | letter-spacing: -0.08em; 50 | text-transform: uppercase; 51 | text-shadow: none; } 52 | 53 | .reveal h1 { 54 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); } 55 | 56 | /********************************************* 57 | * LINKS 58 | *********************************************/ 59 | .reveal a:not(.image) { 60 | color: #3b759e; 61 | text-decoration: none; 62 | -webkit-transition: color .15s ease; 63 | -moz-transition: color .15s ease; 64 | -ms-transition: color .15s ease; 65 | -o-transition: color .15s ease; 66 | transition: color .15s ease; } 67 | 68 | .reveal a:not(.image):hover { 69 | color: #74a7cb; 70 | text-shadow: none; 71 | border: none; } 72 | 73 | .reveal .roll span:after { 74 | color: #fff; 75 | background: #264c66; } 76 | 77 | /********************************************* 78 | * IMAGES 79 | *********************************************/ 80 | .reveal section img { 81 | margin: 15px 0px; 82 | background: rgba(255, 255, 255, 0.12); 83 | border: 4px solid #333333; 84 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 85 | -webkit-transition: all .2s linear; 86 | -moz-transition: all .2s linear; 87 | -ms-transition: all .2s linear; 88 | -o-transition: all .2s linear; 89 | transition: all .2s linear; } 90 | 91 | .reveal a:hover img { 92 | background: rgba(255, 255, 255, 0.2); 93 | border-color: #3b759e; 94 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 95 | 96 | /********************************************* 97 | * NAVIGATION CONTROLS 98 | *********************************************/ 99 | .reveal .controls div.navigate-left, 100 | .reveal .controls div.navigate-left.enabled { 101 | border-right-color: #3b759e; } 102 | 103 | .reveal .controls div.navigate-right, 104 | .reveal .controls div.navigate-right.enabled { 105 | border-left-color: #3b759e; } 106 | 107 | .reveal .controls div.navigate-up, 108 | .reveal .controls div.navigate-up.enabled { 109 | border-bottom-color: #3b759e; } 110 | 111 | .reveal .controls div.navigate-down, 112 | .reveal .controls div.navigate-down.enabled { 113 | border-top-color: #3b759e; } 114 | 115 | .reveal .controls div.navigate-left.enabled:hover { 116 | border-right-color: #74a7cb; } 117 | 118 | .reveal .controls div.navigate-right.enabled:hover { 119 | border-left-color: #74a7cb; } 120 | 121 | .reveal .controls div.navigate-up.enabled:hover { 122 | border-bottom-color: #74a7cb; } 123 | 124 | .reveal .controls div.navigate-down.enabled:hover { 125 | border-top-color: #74a7cb; } 126 | 127 | /********************************************* 128 | * PROGRESS BAR 129 | *********************************************/ 130 | .reveal .progress { 131 | background: rgba(0, 0, 0, 0.2); } 132 | 133 | .reveal .progress span { 134 | background: #3b759e; 135 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 136 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 137 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 138 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 139 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 140 | -------------------------------------------------------------------------------- /static/css/theme/solarized.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 2 | /** 3 | * Solarized Light theme for reveal.js. 4 | * Author: Achim Staebler 5 | */ 6 | @font-face { 7 | font-family: 'League Gothic'; 8 | src: url("../../lib/font/league_gothic-webfont.eot"); 9 | src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg"); 10 | font-weight: normal; 11 | font-style: normal; } 12 | 13 | /** 14 | * Solarized colors by Ethan Schoonover 15 | */ 16 | html * { 17 | color-profile: sRGB; 18 | rendering-intent: auto; } 19 | 20 | /********************************************* 21 | * GLOBAL STYLES 22 | *********************************************/ 23 | body { 24 | background: #fdf6e3; 25 | background-color: #fdf6e3; } 26 | 27 | .reveal { 28 | font-family: "Lato", sans-serif; 29 | font-size: 36px; 30 | font-weight: 200; 31 | letter-spacing: -0.02em; 32 | color: #657b83; } 33 | 34 | ::selection { 35 | color: white; 36 | background: #d33682; 37 | text-shadow: none; } 38 | 39 | /********************************************* 40 | * HEADERS 41 | *********************************************/ 42 | .reveal h1, 43 | .reveal h2, 44 | .reveal h3, 45 | .reveal h4, 46 | .reveal h5, 47 | .reveal h6 { 48 | margin: 0 0 20px 0; 49 | color: #586e75; 50 | font-family: "League Gothic", Impact, sans-serif; 51 | line-height: 0.9em; 52 | letter-spacing: 0.02em; 53 | text-transform: uppercase; 54 | text-shadow: none; } 55 | 56 | .reveal h1 { 57 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); } 58 | 59 | /********************************************* 60 | * LINKS 61 | *********************************************/ 62 | .reveal a:not(.image) { 63 | color: #268bd2; 64 | text-decoration: none; 65 | -webkit-transition: color .15s ease; 66 | -moz-transition: color .15s ease; 67 | -ms-transition: color .15s ease; 68 | -o-transition: color .15s ease; 69 | transition: color .15s ease; } 70 | 71 | .reveal a:not(.image):hover { 72 | color: #78b9e6; 73 | text-shadow: none; 74 | border: none; } 75 | 76 | .reveal .roll span:after { 77 | color: #fff; 78 | background: #1a6091; } 79 | 80 | /********************************************* 81 | * IMAGES 82 | *********************************************/ 83 | .reveal section img { 84 | margin: 15px 0px; 85 | background: rgba(255, 255, 255, 0.12); 86 | border: 4px solid #657b83; 87 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 88 | -webkit-transition: all .2s linear; 89 | -moz-transition: all .2s linear; 90 | -ms-transition: all .2s linear; 91 | -o-transition: all .2s linear; 92 | transition: all .2s linear; } 93 | 94 | .reveal a:hover img { 95 | background: rgba(255, 255, 255, 0.2); 96 | border-color: #268bd2; 97 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 98 | 99 | /********************************************* 100 | * NAVIGATION CONTROLS 101 | *********************************************/ 102 | .reveal .controls div.navigate-left, 103 | .reveal .controls div.navigate-left.enabled { 104 | border-right-color: #268bd2; } 105 | 106 | .reveal .controls div.navigate-right, 107 | .reveal .controls div.navigate-right.enabled { 108 | border-left-color: #268bd2; } 109 | 110 | .reveal .controls div.navigate-up, 111 | .reveal .controls div.navigate-up.enabled { 112 | border-bottom-color: #268bd2; } 113 | 114 | .reveal .controls div.navigate-down, 115 | .reveal .controls div.navigate-down.enabled { 116 | border-top-color: #268bd2; } 117 | 118 | .reveal .controls div.navigate-left.enabled:hover { 119 | border-right-color: #78b9e6; } 120 | 121 | .reveal .controls div.navigate-right.enabled:hover { 122 | border-left-color: #78b9e6; } 123 | 124 | .reveal .controls div.navigate-up.enabled:hover { 125 | border-bottom-color: #78b9e6; } 126 | 127 | .reveal .controls div.navigate-down.enabled:hover { 128 | border-top-color: #78b9e6; } 129 | 130 | /********************************************* 131 | * PROGRESS BAR 132 | *********************************************/ 133 | .reveal .progress { 134 | background: rgba(0, 0, 0, 0.2); } 135 | 136 | .reveal .progress span { 137 | background: #268bd2; 138 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 139 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 140 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 141 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 142 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 143 | -------------------------------------------------------------------------------- /static/css/theme/source/beige.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Beige theme for reveal.js. 3 | * 4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | 15 | // Include theme-specific fonts 16 | @font-face { 17 | font-family: 'League Gothic'; 18 | src: url('../../lib/font/league_gothic-webfont.eot'); 19 | src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'), 20 | url('../../lib/font/league_gothic-webfont.woff') format('woff'), 21 | url('../../lib/font/league_gothic-webfont.ttf') format('truetype'), 22 | url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg'); 23 | 24 | font-weight: normal; 25 | font-style: normal; 26 | } 27 | 28 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 29 | 30 | 31 | // Override theme settings (see ../template/settings.scss) 32 | $mainColor: #333; 33 | $headingColor: #333; 34 | $headingTextShadow: none; 35 | $backgroundColor: #f7f3de; 36 | $linkColor: #8b743d; 37 | $linkColorHover: lighten( $linkColor, 20% ); 38 | $selectionBackgroundColor: rgba(79, 64, 28, 0.99); 39 | $heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15); 40 | 41 | // Background generator 42 | @mixin bodyBackground() { 43 | @include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) ); 44 | } 45 | 46 | 47 | 48 | // Theme template ------------------------------ 49 | @import "../template/theme"; 50 | // --------------------------------------------- -------------------------------------------------------------------------------- /static/css/theme/source/default.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Default theme for reveal.js. 3 | * 4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | 15 | // Include theme-specific fonts 16 | @font-face { 17 | font-family: 'League Gothic'; 18 | src: url('../../lib/font/league_gothic-webfont.eot'); 19 | src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'), 20 | url('../../lib/font/league_gothic-webfont.woff') format('woff'), 21 | url('../../lib/font/league_gothic-webfont.ttf') format('truetype'), 22 | url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg'); 23 | 24 | font-weight: normal; 25 | font-style: normal; 26 | } 27 | 28 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 29 | 30 | // Override theme settings (see ../template/settings.scss) 31 | $heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15); 32 | 33 | // Background generator 34 | @mixin bodyBackground() { 35 | @include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) ); 36 | } 37 | 38 | 39 | 40 | // Theme template ------------------------------ 41 | @import "../template/theme"; 42 | // --------------------------------------------- -------------------------------------------------------------------------------- /static/css/theme/source/moon.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Solarized Dark theme for reveal.js. 3 | * Author: Achim Staebler 4 | */ 5 | 6 | 7 | // Default mixins and settings ----------------- 8 | @import "../template/mixins"; 9 | @import "../template/settings"; 10 | // --------------------------------------------- 11 | 12 | 13 | 14 | // Include theme-specific fonts 15 | @font-face { 16 | font-family: 'League Gothic'; 17 | src: url('../../lib/font/league_gothic-webfont.eot'); 18 | src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'), 19 | url('../../lib/font/league_gothic-webfont.woff') format('woff'), 20 | url('../../lib/font/league_gothic-webfont.ttf') format('truetype'), 21 | url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg'); 22 | 23 | font-weight: normal; 24 | font-style: normal; 25 | } 26 | 27 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 28 | 29 | /** 30 | * Solarized colors by Ethan Schoonover 31 | */ 32 | html * { 33 | color-profile: sRGB; 34 | rendering-intent: auto; 35 | } 36 | 37 | // Solarized colors 38 | $base03: #002b36; 39 | $base02: #073642; 40 | $base01: #586e75; 41 | $base00: #657b83; 42 | $base0: #839496; 43 | $base1: #93a1a1; 44 | $base2: #eee8d5; 45 | $base3: #fdf6e3; 46 | $yellow: #b58900; 47 | $orange: #cb4b16; 48 | $red: #dc322f; 49 | $magenta: #d33682; 50 | $violet: #6c71c4; 51 | $blue: #268bd2; 52 | $cyan: #2aa198; 53 | $green: #859900; 54 | 55 | // Override theme settings (see ../template/settings.scss) 56 | $mainColor: $base1; 57 | $headingColor: $base2; 58 | $headingTextShadow: none; 59 | $backgroundColor: $base03; 60 | $linkColor: $blue; 61 | $linkColorHover: lighten( $linkColor, 20% ); 62 | $selectionBackgroundColor: $magenta; 63 | 64 | 65 | 66 | // Theme template ------------------------------ 67 | @import "../template/theme"; 68 | // --------------------------------------------- 69 | -------------------------------------------------------------------------------- /static/css/theme/source/night.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Black theme for reveal.js. 3 | * 4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | // Include theme-specific fonts 15 | @import url(https://fonts.googleapis.com/css?family=Montserrat:700); 16 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic); 17 | 18 | 19 | // Override theme settings (see ../template/settings.scss) 20 | $backgroundColor: #111; 21 | 22 | $mainFont: 'Open Sans', sans-serif; 23 | $linkColor: #e7ad52; 24 | $linkColorHover: lighten( $linkColor, 20% ); 25 | $headingFont: 'Montserrat', Impact, sans-serif; 26 | $headingTextShadow: none; 27 | $headingLetterSpacing: -0.03em; 28 | $headingTextTransform: none; 29 | $selectionBackgroundColor: #e7ad52; 30 | $mainFontSize: 30px; 31 | 32 | 33 | // Theme template ------------------------------ 34 | @import "../template/theme"; 35 | // --------------------------------------------- -------------------------------------------------------------------------------- /static/css/theme/source/serif.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * A simple theme for reveal.js presentations, similar 3 | * to the default theme. The accent color is brown. 4 | * 5 | * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed. 6 | */ 7 | 8 | 9 | // Default mixins and settings ----------------- 10 | @import "../template/mixins"; 11 | @import "../template/settings"; 12 | // --------------------------------------------- 13 | 14 | 15 | 16 | // Override theme settings (see ../template/settings.scss) 17 | $mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; 18 | $mainColor: #000; 19 | $headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; 20 | $headingColor: #383D3D; 21 | $headingTextShadow: none; 22 | $headingTextTransform: none; 23 | $backgroundColor: #F0F1EB; 24 | $linkColor: #51483D; 25 | $linkColorHover: lighten( $linkColor, 20% ); 26 | $selectionBackgroundColor: #26351C; 27 | 28 | .reveal a:not(.image) { 29 | line-height: 1.3em; 30 | } 31 | 32 | 33 | // Theme template ------------------------------ 34 | @import "../template/theme"; 35 | // --------------------------------------------- 36 | -------------------------------------------------------------------------------- /static/css/theme/source/simple.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * A simple theme for reveal.js presentations, similar 3 | * to the default theme. The accent color is darkblue. 4 | * 5 | * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed. 6 | * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 7 | */ 8 | 9 | 10 | // Default mixins and settings ----------------- 11 | @import "../template/mixins"; 12 | @import "../template/settings"; 13 | // --------------------------------------------- 14 | 15 | 16 | 17 | // Include theme-specific fonts 18 | @import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700); 19 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 20 | 21 | 22 | // Override theme settings (see ../template/settings.scss) 23 | $mainFont: 'Lato', sans-serif; 24 | $mainColor: #000; 25 | $headingFont: 'News Cycle', Impact, sans-serif; 26 | $headingColor: #000; 27 | $headingTextShadow: none; 28 | $headingTextTransform: none; 29 | $backgroundColor: #fff; 30 | $linkColor: #00008B; 31 | $linkColorHover: lighten( $linkColor, 20% ); 32 | $selectionBackgroundColor: rgba(0, 0, 0, 0.99); 33 | 34 | 35 | 36 | // Theme template ------------------------------ 37 | @import "../template/theme"; 38 | // --------------------------------------------- -------------------------------------------------------------------------------- /static/css/theme/source/sky.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Sky theme for reveal.js. 3 | * 4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | 15 | // Include theme-specific fonts 16 | @import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic); 17 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700); 18 | 19 | 20 | // Override theme settings (see ../template/settings.scss) 21 | $mainFont: 'Open Sans', sans-serif; 22 | $mainColor: #333; 23 | $headingFont: 'Quicksand', sans-serif; 24 | $headingColor: #333; 25 | $headingLetterSpacing: -0.08em; 26 | $headingTextShadow: none; 27 | $backgroundColor: #f7fbfc; 28 | $linkColor: #3b759e; 29 | $linkColorHover: lighten( $linkColor, 20% ); 30 | $selectionBackgroundColor: #134674; 31 | 32 | // Fix links so they are not cut off 33 | .reveal a:not(.image) { 34 | line-height: 1.3em; 35 | } 36 | 37 | // Background generator 38 | @mixin bodyBackground() { 39 | @include radial-gradient( #add9e4, #f7fbfc ); 40 | } 41 | 42 | 43 | 44 | // Theme template ------------------------------ 45 | @import "../template/theme"; 46 | // --------------------------------------------- 47 | -------------------------------------------------------------------------------- /static/css/theme/source/solarized.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Solarized Light theme for reveal.js. 3 | * Author: Achim Staebler 4 | */ 5 | 6 | 7 | // Default mixins and settings ----------------- 8 | @import "../template/mixins"; 9 | @import "../template/settings"; 10 | // --------------------------------------------- 11 | 12 | 13 | 14 | // Include theme-specific fonts 15 | @font-face { 16 | font-family: 'League Gothic'; 17 | src: url('../../lib/font/league_gothic-webfont.eot'); 18 | src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'), 19 | url('../../lib/font/league_gothic-webfont.woff') format('woff'), 20 | url('../../lib/font/league_gothic-webfont.ttf') format('truetype'), 21 | url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg'); 22 | 23 | font-weight: normal; 24 | font-style: normal; 25 | } 26 | 27 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 28 | 29 | 30 | /** 31 | * Solarized colors by Ethan Schoonover 32 | */ 33 | html * { 34 | color-profile: sRGB; 35 | rendering-intent: auto; 36 | } 37 | 38 | // Solarized colors 39 | $base03: #002b36; 40 | $base02: #073642; 41 | $base01: #586e75; 42 | $base00: #657b83; 43 | $base0: #839496; 44 | $base1: #93a1a1; 45 | $base2: #eee8d5; 46 | $base3: #fdf6e3; 47 | $yellow: #b58900; 48 | $orange: #cb4b16; 49 | $red: #dc322f; 50 | $magenta: #d33682; 51 | $violet: #6c71c4; 52 | $blue: #268bd2; 53 | $cyan: #2aa198; 54 | $green: #859900; 55 | 56 | // Override theme settings (see ../template/settings.scss) 57 | $mainColor: $base00; 58 | $headingColor: $base01; 59 | $headingTextShadow: none; 60 | $backgroundColor: $base3; 61 | $linkColor: $blue; 62 | $linkColorHover: lighten( $linkColor, 20% ); 63 | $selectionBackgroundColor: $magenta; 64 | 65 | // Background generator 66 | // @mixin bodyBackground() { 67 | // @include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) ); 68 | // } 69 | 70 | 71 | 72 | // Theme template ------------------------------ 73 | @import "../template/theme"; 74 | // --------------------------------------------- 75 | -------------------------------------------------------------------------------- /static/css/theme/template/mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin vertical-gradient( $top, $bottom ) { 2 | background: $top; 3 | background: -moz-linear-gradient( top, $top 0%, $bottom 100% ); 4 | background: -webkit-gradient( linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom) ); 5 | background: -webkit-linear-gradient( top, $top 0%, $bottom 100% ); 6 | background: -o-linear-gradient( top, $top 0%, $bottom 100% ); 7 | background: -ms-linear-gradient( top, $top 0%, $bottom 100% ); 8 | background: linear-gradient( top, $top 0%, $bottom 100% ); 9 | } 10 | 11 | @mixin horizontal-gradient( $top, $bottom ) { 12 | background: $top; 13 | background: -moz-linear-gradient( left, $top 0%, $bottom 100% ); 14 | background: -webkit-gradient( linear, left top, right top, color-stop(0%,$top), color-stop(100%,$bottom) ); 15 | background: -webkit-linear-gradient( left, $top 0%, $bottom 100% ); 16 | background: -o-linear-gradient( left, $top 0%, $bottom 100% ); 17 | background: -ms-linear-gradient( left, $top 0%, $bottom 100% ); 18 | background: linear-gradient( left, $top 0%, $bottom 100% ); 19 | } 20 | 21 | @mixin radial-gradient( $outer, $inner, $type: circle ) { 22 | background: $outer; 23 | background: -moz-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 24 | background: -webkit-gradient( radial, center center, 0px, center center, 100%, color-stop(0%,$inner), color-stop(100%,$outer) ); 25 | background: -webkit-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 26 | background: -o-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 27 | background: -ms-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 28 | background: radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 29 | } -------------------------------------------------------------------------------- /static/css/theme/template/settings.scss: -------------------------------------------------------------------------------- 1 | // Base settings for all themes that can optionally be 2 | // overridden by the super-theme 3 | 4 | // Background of the presentation 5 | $backgroundColor: #2b2b2b; 6 | 7 | // Primary/body text 8 | $mainFont: 'Lato', sans-serif; 9 | $mainFontSize: 36px; 10 | $mainColor: #eee; 11 | 12 | // Headings 13 | $headingMargin: 0 0 20px 0; 14 | $headingFont: 'League Gothic', Impact, sans-serif; 15 | $headingColor: #eee; 16 | $headingLineHeight: 0.9em; 17 | $headingLetterSpacing: 0.02em; 18 | $headingTextTransform: uppercase; 19 | $headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2); 20 | $heading1TextShadow: $headingTextShadow; 21 | 22 | // Links and actions 23 | $linkColor: #13DAEC; 24 | $linkColorHover: lighten( $linkColor, 20% ); 25 | 26 | // Text selection 27 | $selectionBackgroundColor: #FF5E99; 28 | $selectionColor: #fff; 29 | 30 | // Generates the presentation background, can be overridden 31 | // to return a background image or gradient 32 | @mixin bodyBackground() { 33 | background: $backgroundColor; 34 | } -------------------------------------------------------------------------------- /static/css/theme/template/theme.scss: -------------------------------------------------------------------------------- 1 | // Base theme template for reveal.js 2 | 3 | /********************************************* 4 | * GLOBAL STYLES 5 | *********************************************/ 6 | 7 | body { 8 | @include bodyBackground(); 9 | background-color: $backgroundColor; 10 | } 11 | 12 | .reveal { 13 | font-family: $mainFont; 14 | font-size: $mainFontSize; 15 | font-weight: 200; 16 | letter-spacing: -0.02em; 17 | color: $mainColor; 18 | } 19 | 20 | ::selection { 21 | color: $selectionColor; 22 | background: $selectionBackgroundColor; 23 | text-shadow: none; 24 | } 25 | 26 | /********************************************* 27 | * HEADERS 28 | *********************************************/ 29 | 30 | .reveal h1, 31 | .reveal h2, 32 | .reveal h3, 33 | .reveal h4, 34 | .reveal h5, 35 | .reveal h6 { 36 | margin: $headingMargin; 37 | color: $headingColor; 38 | 39 | font-family: $headingFont; 40 | line-height: $headingLineHeight; 41 | letter-spacing: $headingLetterSpacing; 42 | 43 | text-transform: $headingTextTransform; 44 | text-shadow: $headingTextShadow; 45 | } 46 | 47 | .reveal h1 { 48 | text-shadow: $heading1TextShadow; 49 | } 50 | 51 | 52 | /********************************************* 53 | * LINKS 54 | *********************************************/ 55 | 56 | .reveal a:not(.image) { 57 | color: $linkColor; 58 | text-decoration: none; 59 | 60 | -webkit-transition: color .15s ease; 61 | -moz-transition: color .15s ease; 62 | -ms-transition: color .15s ease; 63 | -o-transition: color .15s ease; 64 | transition: color .15s ease; 65 | } 66 | .reveal a:not(.image):hover { 67 | color: $linkColorHover; 68 | 69 | text-shadow: none; 70 | border: none; 71 | } 72 | 73 | .reveal .roll span:after { 74 | color: #fff; 75 | background: darken( $linkColor, 15% ); 76 | } 77 | 78 | 79 | /********************************************* 80 | * IMAGES 81 | *********************************************/ 82 | 83 | .reveal section img { 84 | margin: 15px 0px; 85 | background: rgba(255,255,255,0.12); 86 | border: 4px solid $mainColor; 87 | 88 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 89 | 90 | -webkit-transition: all .2s linear; 91 | -moz-transition: all .2s linear; 92 | -ms-transition: all .2s linear; 93 | -o-transition: all .2s linear; 94 | transition: all .2s linear; 95 | } 96 | 97 | .reveal a:hover img { 98 | background: rgba(255,255,255,0.2); 99 | border-color: $linkColor; 100 | 101 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); 102 | } 103 | 104 | 105 | /********************************************* 106 | * NAVIGATION CONTROLS 107 | *********************************************/ 108 | 109 | .reveal .controls div.navigate-left, 110 | .reveal .controls div.navigate-left.enabled { 111 | border-right-color: $linkColor; 112 | } 113 | 114 | .reveal .controls div.navigate-right, 115 | .reveal .controls div.navigate-right.enabled { 116 | border-left-color: $linkColor; 117 | } 118 | 119 | .reveal .controls div.navigate-up, 120 | .reveal .controls div.navigate-up.enabled { 121 | border-bottom-color: $linkColor; 122 | } 123 | 124 | .reveal .controls div.navigate-down, 125 | .reveal .controls div.navigate-down.enabled { 126 | border-top-color: $linkColor; 127 | } 128 | 129 | .reveal .controls div.navigate-left.enabled:hover { 130 | border-right-color: $linkColorHover; 131 | } 132 | 133 | .reveal .controls div.navigate-right.enabled:hover { 134 | border-left-color: $linkColorHover; 135 | } 136 | 137 | .reveal .controls div.navigate-up.enabled:hover { 138 | border-bottom-color: $linkColorHover; 139 | } 140 | 141 | .reveal .controls div.navigate-down.enabled:hover { 142 | border-top-color: $linkColorHover; 143 | } 144 | 145 | 146 | /********************************************* 147 | * PROGRESS BAR 148 | *********************************************/ 149 | 150 | .reveal .progress { 151 | background: rgba(0,0,0,0.2); 152 | } 153 | .reveal .progress span { 154 | background: $linkColor; 155 | 156 | -webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 157 | -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 158 | -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 159 | -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 160 | transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 161 | } 162 | 163 | 164 | -------------------------------------------------------------------------------- /static/eNNA2vlZnUPtgq9g__E3cA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nipunbatra/mpld3-flask/f3bc223173ee71711d9849184bcd178e5d0d5283/static/eNNA2vlZnUPtgq9g__E3cA.woff -------------------------------------------------------------------------------- /templates/examples.html~: -------------------------------------------------------------------------------- 1 | {% extends "layout.html" %} 2 | {% block content %} 3 |
4 |
    5 |
  1. Number of datapoints received by appliance level meters
  2. 6 |
  3. Start and End times of collected data
  4. 7 |
  5. 8 | Temperature variation in different rooms 9 |
  6. 10 | 11 |
12 |
13 | 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | {% extends "layout.html" %} 2 | {% block content %} 3 | 4 | 12 | 13 | 31 |
32 |
33 | Loading.. 34 |

Loading....

35 |
36 |
37 |
38 | 70 | {% endblock %} 71 | -------------------------------------------------------------------------------- /templates/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | mpld3-flask 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |

mpld3-flask 20 |

21 | 26 |
27 | Fork me on GitHub 28 |
29 | 30 | 31 |
32 | {% block content %} 33 | {% endblock %} 34 |
35 | 36 | 37 | 38 | --------------------------------------------------------------------------------