├── .gitignore ├── .travis.yml ├── Gruntfile.js ├── LICENSE ├── README.md ├── css ├── print │ ├── paper.css │ └── pdf.css ├── reveal.css ├── reveal.scss └── theme │ ├── README.md │ ├── beige.css │ ├── black.css │ ├── blood.css │ ├── league.css │ ├── moon.css │ ├── night.css │ ├── serif.css │ ├── simple.css │ ├── sky.css │ ├── solarized.css │ ├── source │ ├── beige.scss │ ├── black.scss │ ├── blood.scss │ ├── league.scss │ ├── moon.scss │ ├── night.scss │ ├── serif.scss │ ├── simple.scss │ ├── sky.scss │ ├── solarized.scss │ └── white.scss │ ├── template │ ├── mixins.scss │ ├── settings.scss │ └── theme.scss │ └── white.css ├── examples ├── StringPlus-diy.js ├── StringPlus.js ├── fullName-diy.js ├── fullName.js ├── package.json ├── stringtastic-diy.js └── stringtastic.js ├── img ├── hacker.gif ├── math.gif ├── me.png └── poet.gif ├── index.html ├── js └── reveal.js ├── lib ├── css │ ├── github.css │ ├── solarized_light.css │ └── zenburn.css ├── font │ ├── league-gothic │ │ ├── LICENSE │ │ ├── league-gothic.css │ │ ├── league-gothic.eot │ │ ├── league-gothic.ttf │ │ └── league-gothic.woff │ └── source-sans-pro │ │ ├── LICENSE │ │ ├── source-sans-pro-italic.eot │ │ ├── source-sans-pro-italic.ttf │ │ ├── source-sans-pro-italic.woff │ │ ├── source-sans-pro-regular.eot │ │ ├── source-sans-pro-regular.ttf │ │ ├── source-sans-pro-regular.woff │ │ ├── source-sans-pro-semibold.eot │ │ ├── source-sans-pro-semibold.ttf │ │ ├── source-sans-pro-semibold.woff │ │ ├── source-sans-pro-semibolditalic.eot │ │ ├── source-sans-pro-semibolditalic.ttf │ │ ├── source-sans-pro-semibolditalic.woff │ │ └── source-sans-pro.css └── js │ ├── classList.js │ ├── head.min.js │ └── html5shiv.js ├── package.json ├── plugin ├── highlight │ └── highlight.js ├── leap │ └── leap.js ├── markdown │ ├── example.html │ ├── example.md │ ├── markdown.js │ └── marked.js ├── math │ └── math.js ├── multiplex │ ├── client.js │ ├── index.js │ └── master.js ├── notes-server │ ├── client.js │ ├── index.js │ └── notes.html ├── notes │ ├── notes.html │ └── notes.js ├── print-pdf │ └── print-pdf.js ├── remotes │ └── remotes.js ├── search │ └── search.js └── zoom-js │ └── zoom.js └── test ├── examples ├── assets │ ├── image1.png │ └── image2.png ├── barebones.html ├── embedded-media.html ├── math.html ├── slide-backgrounds.html └── slide-transitions.html ├── qunit-1.12.0.css ├── qunit-1.12.0.js ├── test-markdown-element-attributes.html ├── test-markdown-element-attributes.js ├── test-markdown-slide-attributes.html ├── test-markdown-slide-attributes.js ├── test-markdown.html ├── test-markdown.js ├── test-pdf.html ├── test-pdf.js ├── test.html └── test.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .svn 3 | log/*.log 4 | tmp/** 5 | node_modules/ 6 | .sass-cache 7 | css/reveal.min.css 8 | js/reveal.min.js 9 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.10 4 | before_script: 5 | - npm install -g grunt-cli -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | /* global module:false */ 2 | module.exports = function(grunt) { 3 | var port = grunt.option('port') || 8000; 4 | var base = grunt.option('base') || '.'; 5 | 6 | // Project configuration 7 | grunt.initConfig({ 8 | pkg: grunt.file.readJSON('package.json'), 9 | meta: { 10 | banner: 11 | '/*!\n' + 12 | ' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' + 13 | ' * http://lab.hakim.se/reveal-js\n' + 14 | ' * MIT licensed\n' + 15 | ' *\n' + 16 | ' * Copyright (C) 2015 Hakim El Hattab, http://hakim.se\n' + 17 | ' */' 18 | }, 19 | 20 | qunit: { 21 | files: [ 'test/*.html' ] 22 | }, 23 | 24 | uglify: { 25 | options: { 26 | banner: '<%= meta.banner %>\n' 27 | }, 28 | build: { 29 | src: 'js/reveal.js', 30 | dest: 'js/reveal.min.js' 31 | } 32 | }, 33 | 34 | sass: { 35 | core: { 36 | files: { 37 | 'css/reveal.css': 'css/reveal.scss', 38 | } 39 | }, 40 | themes: { 41 | files: [ 42 | { 43 | expand: true, 44 | cwd: 'css/theme/source', 45 | src: ['*.scss'], 46 | dest: 'css/theme', 47 | ext: '.css' 48 | } 49 | ] 50 | } 51 | }, 52 | 53 | autoprefixer: { 54 | dist: { 55 | src: 'css/reveal.css' 56 | } 57 | }, 58 | 59 | cssmin: { 60 | compress: { 61 | files: { 62 | 'css/reveal.min.css': [ 'css/reveal.css' ] 63 | } 64 | } 65 | }, 66 | 67 | jshint: { 68 | options: { 69 | curly: false, 70 | eqeqeq: true, 71 | immed: true, 72 | latedef: true, 73 | newcap: true, 74 | noarg: true, 75 | sub: true, 76 | undef: true, 77 | eqnull: true, 78 | browser: true, 79 | expr: true, 80 | globals: { 81 | head: false, 82 | module: false, 83 | console: false, 84 | unescape: false, 85 | define: false, 86 | exports: false 87 | } 88 | }, 89 | files: [ 'Gruntfile.js', 'js/reveal.js' ] 90 | }, 91 | 92 | connect: { 93 | server: { 94 | options: { 95 | port: port, 96 | base: base, 97 | livereload: true, 98 | open: true 99 | } 100 | } 101 | }, 102 | 103 | zip: { 104 | 'reveal-js-presentation.zip': [ 105 | 'index.html', 106 | 'css/**', 107 | 'js/**', 108 | 'lib/**', 109 | 'images/**', 110 | 'plugin/**' 111 | ] 112 | }, 113 | 114 | watch: { 115 | options: { 116 | livereload: true 117 | }, 118 | js: { 119 | files: [ 'Gruntfile.js', 'js/reveal.js' ], 120 | tasks: 'js' 121 | }, 122 | theme: { 123 | files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ], 124 | tasks: 'css-themes' 125 | }, 126 | css: { 127 | files: [ 'css/reveal.scss' ], 128 | tasks: 'css-core' 129 | }, 130 | html: { 131 | files: [ 'index.html'] 132 | } 133 | } 134 | 135 | }); 136 | 137 | // Dependencies 138 | grunt.loadNpmTasks( 'grunt-contrib-qunit' ); 139 | grunt.loadNpmTasks( 'grunt-contrib-jshint' ); 140 | grunt.loadNpmTasks( 'grunt-contrib-cssmin' ); 141 | grunt.loadNpmTasks( 'grunt-contrib-uglify' ); 142 | grunt.loadNpmTasks( 'grunt-contrib-watch' ); 143 | grunt.loadNpmTasks( 'grunt-sass' ); 144 | grunt.loadNpmTasks( 'grunt-contrib-connect' ); 145 | grunt.loadNpmTasks( 'grunt-autoprefixer' ); 146 | grunt.loadNpmTasks( 'grunt-zip' ); 147 | 148 | // Default task 149 | grunt.registerTask( 'default', [ 'css', 'js' ] ); 150 | 151 | // JS task 152 | grunt.registerTask( 'js', [ 'jshint', 'uglify', 'qunit' ] ); 153 | 154 | // Theme CSS 155 | grunt.registerTask( 'css-themes', [ 'sass:themes' ] ); 156 | 157 | // Core framework CSS 158 | grunt.registerTask( 'css-core', [ 'sass:core', 'autoprefixer', 'cssmin' ] ); 159 | 160 | // All CSS 161 | grunt.registerTask( 'css', [ 'sass', 'autoprefixer', 'cssmin' ] ); 162 | 163 | // Package presentation to archive 164 | grunt.registerTask( 'package', [ 'default', 'zip' ] ); 165 | 166 | // Serve presentation locally 167 | grunt.registerTask( 'serve', [ 'connect', 'watch' ] ); 168 | 169 | // Run tests 170 | grunt.registerTask( 'test', [ 'jshint', 'qunit' ] ); 171 | 172 | }; 173 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2015 Hakim El Hattab, http://hakim.se 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # "You Must Be So Good At Math!" 2 | 3 | A Talk About Functional Programming (in JavaScript) 4 | 5 | 6 | theghostin.me/you-must-be-so-good-at-math 7 | 8 | 9 | 10 |  11 | 12 | @legittalon 13 | 14 | > Bridge the cyber-divide. 15 | 16 | 17 | 18 | ## How does a dev become a mathematician? 19 | 20 |  21 | 22 | Use pure functions. 23 | 24 | > Functional programming is all derived from using only pure functions. 25 | 26 | 27 | 28 | # Purity 29 | 30 | A pure function always returns the same output when given the same input and 31 | has no side-effects. 32 | 33 | > So what does purity give us? 34 | 35 | 36 | ## Familiar friends 37 | 38 | Getting to know them for real. 39 | 40 | > We'll look at familiar functions and figure out what they mean to us as a 41 | mathematician. 42 | 43 | 44 | ```js 45 | Math.random 46 | ``` 47 | > Is this a pure function? It isn't. 48 | 49 | 50 | ```js 51 | console.log 52 | ``` 53 | > Not pure. It changes the world! Hella side-effects 54 | 55 | 56 | ```js 57 | Array.prototype.unshift 58 | Array.prototype.push 59 | ``` 60 | > Nope, it has the side-effect of mutating the array. 61 | 62 | 63 | ```js 64 | Array.prototype.slice 65 | ``` 66 | > Totally pure. Returns a **new** array leaving the old one unmodified. 67 | 68 | 69 | ```js 70 | + 71 | ``` 72 | > Isn't that a binary operator? Nah friend, it's a pure function kinda 73 | 74 | 75 | ## Purity gives us 76 | 77 | immutability! 78 | > Immutability finds its genisis in purity. 79 | 80 | 81 | 82 | ## How to write a function 83 | 84 |  85 | 86 | 87 | ## Take the data last 88 | 89 | ```js 90 | const updateDog = (updates, dog) => /* ... */ 91 | ``` 92 | 93 | 94 | ## Never mutate 95 | 96 | ```js 97 | const updateDog = (updates, dog) => extend({}, dog, updates) 98 | ``` 99 | 100 | 101 | ## Do one thing well 102 | 103 | ```js 104 | const feedDog = dog => updateDog({isHungry: false}, dog) 105 | const walkDog = dog => updateDog({isTired: true}, dog) 106 | ``` 107 | 108 | 109 | ## Compose 110 | 111 | ```js 112 | const feedAndWalk = dog => walkDog(feedDog(dog)) 113 | ``` 114 | 115 | 116 | ## Utilities 117 | 118 | ramda, lodash-fp 119 | 120 | > Be lazy, only write functions that aren't written and can't be derived via 121 | composition. 122 | 123 | 124 | ```js 125 | import { 126 | compose, 127 | } from 'ramda' 128 | 129 | const dogApp = compose( 130 | walkdog, 131 | feedDog, 132 | petDog, 133 | ) 134 | 135 | dogApp({isHungry: true, isTired: false, isPetted: false}) 136 | // => {isHungry: false, isTired: true, isPetted: true} 137 | ``` 138 | > pipes on pipes on pipes 139 | 140 | 141 | 142 | # Modeling effects 143 | 144 | But I want to _do_ stuff. 145 | 146 | > Let's make purity do stuff. 147 | 148 | 149 | ## Understanding map 150 | 151 | ```js 152 | const dogs = [/* ... */] 153 | 154 | dogs.map(dogApp) === [ 155 | dogApp(/* dog */), 156 | dogApp(/* dog */), 157 | dogApp(/* dog */), 158 | ] 159 | ``` 160 | 161 | 162 | ```js 163 | maybeVal.map(fn) // => Maybe.Just(fn(val)) 164 | 165 | eitherVal.map(fn) // => Either.Right(fn(val)) 166 | 167 | promiseVal.then(fn) // => Promise.resolve(fn(val)) 168 | ``` 169 | > map applies a function to a value inside of a type 170 | also lol @ promise good one js 171 | 172 | 173 | ## Understanding ap 174 | 175 | ```js 176 | const add = a => b => a + b 177 | 178 | Just(1) 179 | .map(add) // => Just(add(1)) === Just(b => 1 + b) 180 | .ap(4) // => Just(add(1)(4)) === Just(1 + 4) 181 | ``` 182 | > ap applies the function inside of the type to the given argument 183 | 184 | 185 | 186 |  187 | 188 | > [examples/fullName.js](examples/fullName.js) 189 | [examples/StringPlus.js](examples/StringPlus.js) && [examples/stringtastic.js](examples/stringtastic.js) 190 | 191 | 192 | 193 | # Thank You 194 | 195 | @legittalon 196 | 197 | [https://github.com/LegitTalon/you-must-be-so-good-at-math](https://github.com/LegitTalon/you-must-be-so-good-at-math) 198 | 199 | 200 | 201 | # Links 202 | 203 | - [Folktale](https://github.com/folktale/folktale) 204 | - [Fantasy Land](https://github.com/fantasyland/fantasy-land) 205 | - [Hey Undescore, You're Doing It Wrong!](https://www.youtube.com/watch?v=m3svKOdZijA&feature=youtu.be) 206 | - [A Monad in Practicality: First-Class Failures](http://robotlolita.me/2013/12/08/a-monad-in-practicality-first-class-failures.html) 207 | -------------------------------------------------------------------------------- /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 | @media print { 10 | 11 | /* SECTION 1: Set default width, margin, float, and 12 | background. This prevents elements from extending 13 | beyond the edge of the printed page, and prevents 14 | unnecessary background images from printing */ 15 | html { 16 | background: #fff; 17 | width: auto; 18 | height: auto; 19 | overflow: visible; 20 | } 21 | body { 22 | background: #fff; 23 | font-size: 20pt; 24 | width: auto; 25 | height: auto; 26 | border: 0; 27 | margin: 0 5%; 28 | padding: 0; 29 | overflow: visible; 30 | float: none !important; 31 | } 32 | 33 | /* SECTION 2: Remove any elements not needed in print. 34 | This would include navigation, ads, sidebars, etc. */ 35 | .nestedarrow, 36 | .controls, 37 | .fork-reveal, 38 | .share-reveal, 39 | .state-background, 40 | .reveal .progress, 41 | .reveal .backgrounds { 42 | display: none !important; 43 | } 44 | 45 | /* SECTION 3: Set body font face, size, and color. 46 | Consider using a serif font for readability. */ 47 | body, p, td, li, div { 48 | font-size: 20pt!important; 49 | font-family: Georgia, "Times New Roman", Times, serif !important; 50 | color: #000; 51 | } 52 | 53 | /* SECTION 4: Set heading font face, sizes, and color. 54 | Differentiate your headings from your body text. 55 | Perhaps use a large sans-serif for distinction. */ 56 | h1,h2,h3,h4,h5,h6 { 57 | color: #000!important; 58 | height: auto; 59 | line-height: normal; 60 | font-family: Georgia, "Times New Roman", Times, serif !important; 61 | text-shadow: 0 0 0 #000 !important; 62 | text-align: left; 63 | letter-spacing: normal; 64 | } 65 | /* Need to reduce the size of the fonts for printing */ 66 | h1 { font-size: 28pt !important; } 67 | h2 { font-size: 24pt !important; } 68 | h3 { font-size: 22pt !important; } 69 | h4 { font-size: 22pt !important; font-variant: small-caps; } 70 | h5 { font-size: 21pt !important; } 71 | h6 { font-size: 20pt !important; font-style: italic; } 72 | 73 | /* SECTION 5: Make hyperlinks more usable. 74 | Ensure links are underlined, and consider appending 75 | the URL to the end of the link for usability. */ 76 | a:link, 77 | a:visited { 78 | color: #000 !important; 79 | font-weight: bold; 80 | text-decoration: underline; 81 | } 82 | /* 83 | .reveal a:link:after, 84 | .reveal a:visited:after { 85 | content: " (" attr(href) ") "; 86 | color: #222 !important; 87 | font-size: 90%; 88 | } 89 | */ 90 | 91 | 92 | /* SECTION 6: more reveal.js specific additions by @skypanther */ 93 | ul, ol, div, p { 94 | visibility: visible; 95 | position: static; 96 | width: auto; 97 | height: auto; 98 | display: block; 99 | overflow: visible; 100 | margin: 0; 101 | text-align: left !important; 102 | } 103 | .reveal pre, 104 | .reveal table { 105 | margin-left: 0; 106 | margin-right: 0; 107 | } 108 | .reveal pre code { 109 | padding: 20px; 110 | border: 1px solid #ddd; 111 | } 112 | .reveal blockquote { 113 | margin: 20px 0; 114 | } 115 | .reveal .slides { 116 | position: static !important; 117 | width: auto !important; 118 | height: auto !important; 119 | 120 | left: 0 !important; 121 | top: 0 !important; 122 | margin-left: 0 !important; 123 | margin-top: 0 !important; 124 | padding: 0 !important; 125 | zoom: 1 !important; 126 | 127 | overflow: visible !important; 128 | display: block !important; 129 | 130 | text-align: left !important; 131 | -webkit-perspective: none; 132 | -moz-perspective: none; 133 | -ms-perspective: none; 134 | perspective: none; 135 | 136 | -webkit-perspective-origin: 50% 50%; 137 | -moz-perspective-origin: 50% 50%; 138 | -ms-perspective-origin: 50% 50%; 139 | perspective-origin: 50% 50%; 140 | } 141 | .reveal .slides section { 142 | visibility: visible !important; 143 | position: static !important; 144 | width: 100% !important; 145 | height: auto !important; 146 | display: block !important; 147 | overflow: visible !important; 148 | 149 | left: 0 !important; 150 | top: 0 !important; 151 | margin-left: 0 !important; 152 | margin-top: 0 !important; 153 | padding: 60px 20px !important; 154 | z-index: auto !important; 155 | 156 | opacity: 1 !important; 157 | 158 | page-break-after: always !important; 159 | 160 | -webkit-transform-style: flat !important; 161 | -moz-transform-style: flat !important; 162 | -ms-transform-style: flat !important; 163 | transform-style: flat !important; 164 | 165 | -webkit-transform: none !important; 166 | -moz-transform: none !important; 167 | -ms-transform: none !important; 168 | transform: none !important; 169 | 170 | -webkit-transition: none !important; 171 | -moz-transition: none !important; 172 | -ms-transition: none !important; 173 | transition: none !important; 174 | } 175 | .reveal .slides section.stack { 176 | padding: 0 !important; 177 | } 178 | .reveal section:last-of-type { 179 | page-break-after: avoid !important; 180 | } 181 | .reveal section .fragment { 182 | opacity: 1 !important; 183 | visibility: visible !important; 184 | 185 | -webkit-transform: none !important; 186 | -moz-transform: none !important; 187 | -ms-transform: none !important; 188 | transform: none !important; 189 | } 190 | .reveal section img { 191 | display: block; 192 | margin: 15px 0px; 193 | background: rgba(255,255,255,1); 194 | border: 1px solid #666; 195 | box-shadow: none; 196 | } 197 | 198 | .reveal section small { 199 | font-size: 0.8em; 200 | } 201 | 202 | } -------------------------------------------------------------------------------- /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 | margin: 0 auto !important; 20 | border: 0; 21 | padding: 0; 22 | float: none !important; 23 | overflow: visible; 24 | } 25 | 26 | html { 27 | width: 100%; 28 | height: 100%; 29 | overflow: visible; 30 | } 31 | 32 | /* SECTION 2: Remove any elements not needed in print. 33 | This would include navigation, ads, sidebars, etc. */ 34 | .nestedarrow, 35 | .reveal .controls, 36 | .reveal .progress, 37 | .reveal .slide-number, 38 | .reveal .playback, 39 | .reveal.overview, 40 | .fork-reveal, 41 | .share-reveal, 42 | .state-background { 43 | display: none !important; 44 | } 45 | 46 | /* SECTION 3: Set body font face, size, and color. 47 | Consider using a serif font for readability. */ 48 | body, p, td, li, div { 49 | 50 | } 51 | 52 | /* SECTION 4: Set heading font face, sizes, and color. 53 | Differentiate your headings from your body text. 54 | Perhaps use a large sans-serif for distinction. */ 55 | h1,h2,h3,h4,h5,h6 { 56 | text-shadow: 0 0 0 #000 !important; 57 | } 58 | 59 | .reveal pre code { 60 | overflow: hidden !important; 61 | font-family: Courier, 'Courier New', monospace !important; 62 | } 63 | 64 | 65 | /* SECTION 5: more reveal.js specific additions by @skypanther */ 66 | ul, ol, div, p { 67 | visibility: visible; 68 | position: static; 69 | width: auto; 70 | height: auto; 71 | display: block; 72 | overflow: visible; 73 | margin: auto; 74 | } 75 | .reveal { 76 | width: auto !important; 77 | height: auto !important; 78 | overflow: hidden !important; 79 | } 80 | .reveal .slides { 81 | position: static; 82 | width: 100%; 83 | height: auto; 84 | 85 | left: auto; 86 | top: auto; 87 | margin: 0 !important; 88 | padding: 0 !important; 89 | 90 | overflow: visible; 91 | display: block; 92 | 93 | -webkit-perspective: none; 94 | -moz-perspective: none; 95 | -ms-perspective: none; 96 | perspective: none; 97 | 98 | -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */ 99 | -moz-perspective-origin: 50% 50%; 100 | -ms-perspective-origin: 50% 50%; 101 | perspective-origin: 50% 50%; 102 | } 103 | .reveal .slides section { 104 | page-break-after: always !important; 105 | 106 | visibility: visible !important; 107 | position: relative !important; 108 | display: block !important; 109 | position: relative !important; 110 | 111 | margin: 0 !important; 112 | padding: 0 !important; 113 | box-sizing: border-box !important; 114 | min-height: 1px; 115 | 116 | opacity: 1 !important; 117 | 118 | -webkit-transform-style: flat !important; 119 | -moz-transform-style: flat !important; 120 | -ms-transform-style: flat !important; 121 | transform-style: flat !important; 122 | 123 | -webkit-transform: none !important; 124 | -moz-transform: none !important; 125 | -ms-transform: none !important; 126 | transform: none !important; 127 | } 128 | .reveal section.stack { 129 | margin: 0 !important; 130 | padding: 0 !important; 131 | page-break-after: avoid !important; 132 | height: auto !important; 133 | min-height: auto !important; 134 | } 135 | .reveal img { 136 | box-shadow: none; 137 | } 138 | .reveal .roll { 139 | overflow: visible; 140 | line-height: 1em; 141 | } 142 | 143 | /* Slide backgrounds are placed inside of their slide when exporting to PDF */ 144 | .reveal section .slide-background { 145 | display: block !important; 146 | position: absolute; 147 | top: 0; 148 | left: 0; 149 | width: 100%; 150 | z-index: -1; 151 | } 152 | /* All elements should be above the slide-background */ 153 | .reveal section>* { 154 | position: relative; 155 | z-index: 1; 156 | } 157 | 158 | -------------------------------------------------------------------------------- /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 | ## Creating a Theme 6 | 7 | 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). 8 | 9 | Each theme file does four things in the following order: 10 | 11 | 1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)** 12 | Shared utility functions. 13 | 14 | 2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)** 15 | Declares a set of custom variables that the template file (step 4) expects. Can be overridden in step 3. 16 | 17 | 3. **Override** 18 | 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 any selectors and styles you please. 19 | 20 | 4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)** 21 | The template theme file which will generate final CSS output based on the currently defined variables. 22 | 23 | When you are done, run `grunt css-themes` to compile the Sass file to CSS and you are ready to use your new theme. 24 | -------------------------------------------------------------------------------- /css/theme/black.css: -------------------------------------------------------------------------------- 1 | @import url(../../lib/font/source-sans-pro/source-sans-pro.css); 2 | /** 3 | * Black theme for reveal.js. This is the opposite of the 'white' theme. 4 | * 5 | * Copyright (C) 2015 Hakim El Hattab, http://hakim.se 6 | */ 7 | section.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 { 8 | color: #222; } 9 | 10 | /********************************************* 11 | * GLOBAL STYLES 12 | *********************************************/ 13 | body { 14 | background: #222; 15 | background-color: #222; } 16 | 17 | .reveal { 18 | font-family: 'Source Sans Pro', Helvetica, sans-serif; 19 | font-size: 38px; 20 | font-weight: normal; 21 | color: #fff; } 22 | 23 | ::selection { 24 | color: #fff; 25 | background: #bee4fd; 26 | text-shadow: none; } 27 | 28 | .reveal .slides > section, .reveal .slides > section > section { 29 | line-height: 1.3; 30 | font-weight: inherit; } 31 | 32 | /********************************************* 33 | * HEADERS 34 | *********************************************/ 35 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 36 | margin: 0 0 20px 0; 37 | color: #fff; 38 | font-family: 'Source Sans Pro', Helvetica, sans-serif; 39 | font-weight: 600; 40 | line-height: 1.2; 41 | letter-spacing: normal; 42 | text-transform: uppercase; 43 | text-shadow: none; 44 | word-wrap: break-word; } 45 | 46 | .reveal h1 { 47 | font-size: 2.5em; } 48 | 49 | .reveal h2 { 50 | font-size: 1.6em; } 51 | 52 | .reveal h3 { 53 | font-size: 1.3em; } 54 | 55 | .reveal h4 { 56 | font-size: 1em; } 57 | 58 | .reveal h1 { 59 | text-shadow: none; } 60 | 61 | /********************************************* 62 | * OTHER 63 | *********************************************/ 64 | .reveal p { 65 | margin: 20px 0; 66 | line-height: 1.3; } 67 | 68 | /* Ensure certain elements are never larger than the slide itself */ 69 | .reveal img, .reveal video, .reveal iframe { 70 | max-width: 95%; 71 | max-height: 95%; } 72 | 73 | .reveal strong, .reveal b { 74 | font-weight: bold; } 75 | 76 | .reveal em { 77 | font-style: italic; } 78 | 79 | .reveal ol, .reveal dl, .reveal ul { 80 | display: inline-block; 81 | text-align: left; 82 | margin: 0 0 0 1em; } 83 | 84 | .reveal ol { 85 | list-style-type: decimal; } 86 | 87 | .reveal ul { 88 | list-style-type: disc; } 89 | 90 | .reveal ul ul { 91 | list-style-type: square; } 92 | 93 | .reveal ul ul ul { 94 | list-style-type: circle; } 95 | 96 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 97 | display: block; 98 | margin-left: 40px; } 99 | 100 | .reveal dt { 101 | font-weight: bold; } 102 | 103 | .reveal dd { 104 | margin-left: 40px; } 105 | 106 | .reveal q, .reveal blockquote { 107 | quotes: none; } 108 | 109 | .reveal blockquote { 110 | display: block; 111 | position: relative; 112 | width: 70%; 113 | margin: 20px auto; 114 | padding: 5px; 115 | font-style: italic; 116 | background: rgba(255, 255, 255, 0.05); 117 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 118 | 119 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 120 | display: inline-block; } 121 | 122 | .reveal q { 123 | font-style: italic; } 124 | 125 | .reveal pre { 126 | display: block; 127 | position: relative; 128 | width: 90%; 129 | margin: 20px auto; 130 | text-align: left; 131 | font-size: 0.55em; 132 | font-family: monospace; 133 | line-height: 1.2em; 134 | word-wrap: break-word; 135 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 136 | 137 | .reveal code { 138 | font-family: monospace; } 139 | 140 | .reveal pre code { 141 | display: block; 142 | padding: 5px; 143 | overflow: auto; 144 | max-height: 400px; 145 | word-wrap: normal; 146 | background: #3F3F3F; 147 | color: #DCDCDC; } 148 | 149 | .reveal table { 150 | margin: auto; 151 | border-collapse: collapse; 152 | border-spacing: 0; } 153 | 154 | .reveal table th { 155 | font-weight: bold; } 156 | 157 | .reveal table th, .reveal table td { 158 | text-align: left; 159 | padding: 0.2em 0.5em 0.2em 0.5em; 160 | border-bottom: 1px solid; } 161 | 162 | .reveal table th[align="center"], .reveal table td[align="center"] { 163 | text-align: center; } 164 | 165 | .reveal table th[align="right"], .reveal table td[align="right"] { 166 | text-align: right; } 167 | 168 | .reveal table tr:last-child td { 169 | border-bottom: none; } 170 | 171 | .reveal sup { 172 | vertical-align: super; } 173 | 174 | .reveal sub { 175 | vertical-align: sub; } 176 | 177 | .reveal small { 178 | display: inline-block; 179 | font-size: 0.6em; 180 | line-height: 1.2em; 181 | vertical-align: top; } 182 | 183 | .reveal small * { 184 | vertical-align: top; } 185 | 186 | /********************************************* 187 | * LINKS 188 | *********************************************/ 189 | .reveal a { 190 | color: #42affa; 191 | text-decoration: none; 192 | -webkit-transition: color 0.15s ease; 193 | -moz-transition: color 0.15s ease; 194 | transition: color 0.15s ease; } 195 | 196 | .reveal a:hover { 197 | color: #8dcffc; 198 | text-shadow: none; 199 | border: none; } 200 | 201 | .reveal .roll span:after { 202 | color: #fff; 203 | background: #068ee9; } 204 | 205 | /********************************************* 206 | * IMAGES 207 | *********************************************/ 208 | .reveal section img { 209 | margin: 15px 0px; 210 | background: rgba(255, 255, 255, 0.12); 211 | border: 4px solid #fff; 212 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 213 | 214 | .reveal a img { 215 | -webkit-transition: all 0.15s linear; 216 | -moz-transition: all 0.15s linear; 217 | transition: all 0.15s linear; } 218 | 219 | .reveal a:hover img { 220 | background: rgba(255, 255, 255, 0.2); 221 | border-color: #42affa; 222 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 223 | 224 | /********************************************* 225 | * NAVIGATION CONTROLS 226 | *********************************************/ 227 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 228 | border-right-color: #42affa; } 229 | 230 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 231 | border-left-color: #42affa; } 232 | 233 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 234 | border-bottom-color: #42affa; } 235 | 236 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 237 | border-top-color: #42affa; } 238 | 239 | .reveal .controls div.navigate-left.enabled:hover { 240 | border-right-color: #8dcffc; } 241 | 242 | .reveal .controls div.navigate-right.enabled:hover { 243 | border-left-color: #8dcffc; } 244 | 245 | .reveal .controls div.navigate-up.enabled:hover { 246 | border-bottom-color: #8dcffc; } 247 | 248 | .reveal .controls div.navigate-down.enabled:hover { 249 | border-top-color: #8dcffc; } 250 | 251 | /********************************************* 252 | * PROGRESS BAR 253 | *********************************************/ 254 | .reveal .progress { 255 | background: rgba(0, 0, 0, 0.2); } 256 | 257 | .reveal .progress span { 258 | background: #42affa; 259 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 260 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 261 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 262 | 263 | /********************************************* 264 | * SLIDE NUMBER 265 | *********************************************/ 266 | .reveal .slide-number { 267 | color: #42affa; } 268 | -------------------------------------------------------------------------------- /css/theme/blood.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic); 2 | /** 3 | * Blood theme for reveal.js 4 | * Author: Walther http://github.com/Walther 5 | * 6 | * Designed to be used with highlight.js theme 7 | * "monokai_sublime.css" available from 8 | * https://github.com/isagalaev/highlight.js/ 9 | * 10 | * For other themes, change $codeBackground accordingly. 11 | * 12 | */ 13 | /********************************************* 14 | * GLOBAL STYLES 15 | *********************************************/ 16 | body { 17 | background: #222; 18 | background-color: #222; } 19 | 20 | .reveal { 21 | font-family: Ubuntu, 'sans-serif'; 22 | font-size: 36px; 23 | font-weight: normal; 24 | color: #eee; } 25 | 26 | ::selection { 27 | color: #fff; 28 | background: #a23; 29 | text-shadow: none; } 30 | 31 | .reveal .slides > section, .reveal .slides > section > section { 32 | line-height: 1.3; 33 | font-weight: inherit; } 34 | 35 | /********************************************* 36 | * HEADERS 37 | *********************************************/ 38 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 39 | margin: 0 0 20px 0; 40 | color: #eee; 41 | font-family: Ubuntu, 'sans-serif'; 42 | font-weight: normal; 43 | line-height: 1.2; 44 | letter-spacing: normal; 45 | text-transform: uppercase; 46 | text-shadow: 2px 2px 2px #222; 47 | word-wrap: break-word; } 48 | 49 | .reveal h1 { 50 | font-size: 3.77em; } 51 | 52 | .reveal h2 { 53 | font-size: 2.11em; } 54 | 55 | .reveal h3 { 56 | font-size: 1.55em; } 57 | 58 | .reveal h4 { 59 | font-size: 1em; } 60 | 61 | .reveal h1 { 62 | text-shadow: 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, 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); } 63 | 64 | /********************************************* 65 | * OTHER 66 | *********************************************/ 67 | .reveal p { 68 | margin: 20px 0; 69 | line-height: 1.3; } 70 | 71 | /* Ensure certain elements are never larger than the slide itself */ 72 | .reveal img, .reveal video, .reveal iframe { 73 | max-width: 95%; 74 | max-height: 95%; } 75 | 76 | .reveal strong, .reveal b { 77 | font-weight: bold; } 78 | 79 | .reveal em { 80 | font-style: italic; } 81 | 82 | .reveal ol, .reveal dl, .reveal ul { 83 | display: inline-block; 84 | text-align: left; 85 | margin: 0 0 0 1em; } 86 | 87 | .reveal ol { 88 | list-style-type: decimal; } 89 | 90 | .reveal ul { 91 | list-style-type: disc; } 92 | 93 | .reveal ul ul { 94 | list-style-type: square; } 95 | 96 | .reveal ul ul ul { 97 | list-style-type: circle; } 98 | 99 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 100 | display: block; 101 | margin-left: 40px; } 102 | 103 | .reveal dt { 104 | font-weight: bold; } 105 | 106 | .reveal dd { 107 | margin-left: 40px; } 108 | 109 | .reveal q, .reveal blockquote { 110 | quotes: none; } 111 | 112 | .reveal blockquote { 113 | display: block; 114 | position: relative; 115 | width: 70%; 116 | margin: 20px auto; 117 | padding: 5px; 118 | font-style: italic; 119 | background: rgba(255, 255, 255, 0.05); 120 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 121 | 122 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 123 | display: inline-block; } 124 | 125 | .reveal q { 126 | font-style: italic; } 127 | 128 | .reveal pre { 129 | display: block; 130 | position: relative; 131 | width: 90%; 132 | margin: 20px auto; 133 | text-align: left; 134 | font-size: 0.55em; 135 | font-family: monospace; 136 | line-height: 1.2em; 137 | word-wrap: break-word; 138 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 139 | 140 | .reveal code { 141 | font-family: monospace; } 142 | 143 | .reveal pre code { 144 | display: block; 145 | padding: 5px; 146 | overflow: auto; 147 | max-height: 400px; 148 | word-wrap: normal; 149 | background: #3F3F3F; 150 | color: #DCDCDC; } 151 | 152 | .reveal table { 153 | margin: auto; 154 | border-collapse: collapse; 155 | border-spacing: 0; } 156 | 157 | .reveal table th { 158 | font-weight: bold; } 159 | 160 | .reveal table th, .reveal table td { 161 | text-align: left; 162 | padding: 0.2em 0.5em 0.2em 0.5em; 163 | border-bottom: 1px solid; } 164 | 165 | .reveal table th[align="center"], .reveal table td[align="center"] { 166 | text-align: center; } 167 | 168 | .reveal table th[align="right"], .reveal table td[align="right"] { 169 | text-align: right; } 170 | 171 | .reveal table tr:last-child td { 172 | border-bottom: none; } 173 | 174 | .reveal sup { 175 | vertical-align: super; } 176 | 177 | .reveal sub { 178 | vertical-align: sub; } 179 | 180 | .reveal small { 181 | display: inline-block; 182 | font-size: 0.6em; 183 | line-height: 1.2em; 184 | vertical-align: top; } 185 | 186 | .reveal small * { 187 | vertical-align: top; } 188 | 189 | /********************************************* 190 | * LINKS 191 | *********************************************/ 192 | .reveal a { 193 | color: #a23; 194 | text-decoration: none; 195 | -webkit-transition: color 0.15s ease; 196 | -moz-transition: color 0.15s ease; 197 | transition: color 0.15s ease; } 198 | 199 | .reveal a:hover { 200 | color: #dd5567; 201 | text-shadow: none; 202 | border: none; } 203 | 204 | .reveal .roll span:after { 205 | color: #fff; 206 | background: #6a1521; } 207 | 208 | /********************************************* 209 | * IMAGES 210 | *********************************************/ 211 | .reveal section img { 212 | margin: 15px 0px; 213 | background: rgba(255, 255, 255, 0.12); 214 | border: 4px solid #eee; 215 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 216 | 217 | .reveal a img { 218 | -webkit-transition: all 0.15s linear; 219 | -moz-transition: all 0.15s linear; 220 | transition: all 0.15s linear; } 221 | 222 | .reveal a:hover img { 223 | background: rgba(255, 255, 255, 0.2); 224 | border-color: #a23; 225 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 226 | 227 | /********************************************* 228 | * NAVIGATION CONTROLS 229 | *********************************************/ 230 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 231 | border-right-color: #a23; } 232 | 233 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 234 | border-left-color: #a23; } 235 | 236 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 237 | border-bottom-color: #a23; } 238 | 239 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 240 | border-top-color: #a23; } 241 | 242 | .reveal .controls div.navigate-left.enabled:hover { 243 | border-right-color: #dd5567; } 244 | 245 | .reveal .controls div.navigate-right.enabled:hover { 246 | border-left-color: #dd5567; } 247 | 248 | .reveal .controls div.navigate-up.enabled:hover { 249 | border-bottom-color: #dd5567; } 250 | 251 | .reveal .controls div.navigate-down.enabled:hover { 252 | border-top-color: #dd5567; } 253 | 254 | /********************************************* 255 | * PROGRESS BAR 256 | *********************************************/ 257 | .reveal .progress { 258 | background: rgba(0, 0, 0, 0.2); } 259 | 260 | .reveal .progress span { 261 | background: #a23; 262 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 263 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 264 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 265 | 266 | /********************************************* 267 | * SLIDE NUMBER 268 | *********************************************/ 269 | .reveal .slide-number { 270 | color: #a23; } 271 | 272 | .reveal p { 273 | font-weight: 300; 274 | text-shadow: 1px 1px #222; } 275 | 276 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 277 | font-weight: 700; } 278 | 279 | .reveal p code { 280 | background-color: #23241f; 281 | display: inline-block; 282 | border-radius: 7px; } 283 | 284 | .reveal small code { 285 | vertical-align: baseline; } 286 | -------------------------------------------------------------------------------- /css/theme/moon.css: -------------------------------------------------------------------------------- 1 | @import url(../../lib/font/league-gothic/league-gothic.css); 2 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 3 | /** 4 | * Solarized Dark theme for reveal.js. 5 | * Author: Achim Staebler 6 | */ 7 | /** 8 | * Solarized colors by Ethan Schoonover 9 | */ 10 | html * { 11 | color-profile: sRGB; 12 | rendering-intent: auto; } 13 | 14 | /********************************************* 15 | * GLOBAL STYLES 16 | *********************************************/ 17 | body { 18 | background: #002b36; 19 | background-color: #002b36; } 20 | 21 | .reveal { 22 | font-family: 'Lato', sans-serif; 23 | font-size: 36px; 24 | font-weight: normal; 25 | color: #93a1a1; } 26 | 27 | ::selection { 28 | color: #fff; 29 | background: #d33682; 30 | text-shadow: none; } 31 | 32 | .reveal .slides > section, .reveal .slides > section > section { 33 | line-height: 1.3; 34 | font-weight: inherit; } 35 | 36 | /********************************************* 37 | * HEADERS 38 | *********************************************/ 39 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 40 | margin: 0 0 20px 0; 41 | color: #eee8d5; 42 | font-family: 'League Gothic', Impact, sans-serif; 43 | font-weight: normal; 44 | line-height: 1.2; 45 | letter-spacing: normal; 46 | text-transform: uppercase; 47 | text-shadow: none; 48 | word-wrap: break-word; } 49 | 50 | .reveal h1 { 51 | font-size: 3.77em; } 52 | 53 | .reveal h2 { 54 | font-size: 2.11em; } 55 | 56 | .reveal h3 { 57 | font-size: 1.55em; } 58 | 59 | .reveal h4 { 60 | font-size: 1em; } 61 | 62 | .reveal h1 { 63 | text-shadow: none; } 64 | 65 | /********************************************* 66 | * OTHER 67 | *********************************************/ 68 | .reveal p { 69 | margin: 20px 0; 70 | line-height: 1.3; } 71 | 72 | /* Ensure certain elements are never larger than the slide itself */ 73 | .reveal img, .reveal video, .reveal iframe { 74 | max-width: 95%; 75 | max-height: 95%; } 76 | 77 | .reveal strong, .reveal b { 78 | font-weight: bold; } 79 | 80 | .reveal em { 81 | font-style: italic; } 82 | 83 | .reveal ol, .reveal dl, .reveal ul { 84 | display: inline-block; 85 | text-align: left; 86 | margin: 0 0 0 1em; } 87 | 88 | .reveal ol { 89 | list-style-type: decimal; } 90 | 91 | .reveal ul { 92 | list-style-type: disc; } 93 | 94 | .reveal ul ul { 95 | list-style-type: square; } 96 | 97 | .reveal ul ul ul { 98 | list-style-type: circle; } 99 | 100 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 101 | display: block; 102 | margin-left: 40px; } 103 | 104 | .reveal dt { 105 | font-weight: bold; } 106 | 107 | .reveal dd { 108 | margin-left: 40px; } 109 | 110 | .reveal q, .reveal blockquote { 111 | quotes: none; } 112 | 113 | .reveal blockquote { 114 | display: block; 115 | position: relative; 116 | width: 70%; 117 | margin: 20px auto; 118 | padding: 5px; 119 | font-style: italic; 120 | background: rgba(255, 255, 255, 0.05); 121 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 122 | 123 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 124 | display: inline-block; } 125 | 126 | .reveal q { 127 | font-style: italic; } 128 | 129 | .reveal pre { 130 | display: block; 131 | position: relative; 132 | width: 90%; 133 | margin: 20px auto; 134 | text-align: left; 135 | font-size: 0.55em; 136 | font-family: monospace; 137 | line-height: 1.2em; 138 | word-wrap: break-word; 139 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 140 | 141 | .reveal code { 142 | font-family: monospace; } 143 | 144 | .reveal pre code { 145 | display: block; 146 | padding: 5px; 147 | overflow: auto; 148 | max-height: 400px; 149 | word-wrap: normal; 150 | background: #3F3F3F; 151 | color: #DCDCDC; } 152 | 153 | .reveal table { 154 | margin: auto; 155 | border-collapse: collapse; 156 | border-spacing: 0; } 157 | 158 | .reveal table th { 159 | font-weight: bold; } 160 | 161 | .reveal table th, .reveal table td { 162 | text-align: left; 163 | padding: 0.2em 0.5em 0.2em 0.5em; 164 | border-bottom: 1px solid; } 165 | 166 | .reveal table th[align="center"], .reveal table td[align="center"] { 167 | text-align: center; } 168 | 169 | .reveal table th[align="right"], .reveal table td[align="right"] { 170 | text-align: right; } 171 | 172 | .reveal table tr:last-child td { 173 | border-bottom: none; } 174 | 175 | .reveal sup { 176 | vertical-align: super; } 177 | 178 | .reveal sub { 179 | vertical-align: sub; } 180 | 181 | .reveal small { 182 | display: inline-block; 183 | font-size: 0.6em; 184 | line-height: 1.2em; 185 | vertical-align: top; } 186 | 187 | .reveal small * { 188 | vertical-align: top; } 189 | 190 | /********************************************* 191 | * LINKS 192 | *********************************************/ 193 | .reveal a { 194 | color: #268bd2; 195 | text-decoration: none; 196 | -webkit-transition: color 0.15s ease; 197 | -moz-transition: color 0.15s ease; 198 | transition: color 0.15s ease; } 199 | 200 | .reveal a:hover { 201 | color: #78bae6; 202 | text-shadow: none; 203 | border: none; } 204 | 205 | .reveal .roll span:after { 206 | color: #fff; 207 | background: #1a6291; } 208 | 209 | /********************************************* 210 | * IMAGES 211 | *********************************************/ 212 | .reveal section img { 213 | margin: 15px 0px; 214 | background: rgba(255, 255, 255, 0.12); 215 | border: 4px solid #93a1a1; 216 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 217 | 218 | .reveal a img { 219 | -webkit-transition: all 0.15s linear; 220 | -moz-transition: all 0.15s linear; 221 | transition: all 0.15s linear; } 222 | 223 | .reveal a:hover img { 224 | background: rgba(255, 255, 255, 0.2); 225 | border-color: #268bd2; 226 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 227 | 228 | /********************************************* 229 | * NAVIGATION CONTROLS 230 | *********************************************/ 231 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 232 | border-right-color: #268bd2; } 233 | 234 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 235 | border-left-color: #268bd2; } 236 | 237 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 238 | border-bottom-color: #268bd2; } 239 | 240 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 241 | border-top-color: #268bd2; } 242 | 243 | .reveal .controls div.navigate-left.enabled:hover { 244 | border-right-color: #78bae6; } 245 | 246 | .reveal .controls div.navigate-right.enabled:hover { 247 | border-left-color: #78bae6; } 248 | 249 | .reveal .controls div.navigate-up.enabled:hover { 250 | border-bottom-color: #78bae6; } 251 | 252 | .reveal .controls div.navigate-down.enabled:hover { 253 | border-top-color: #78bae6; } 254 | 255 | /********************************************* 256 | * PROGRESS BAR 257 | *********************************************/ 258 | .reveal .progress { 259 | background: rgba(0, 0, 0, 0.2); } 260 | 261 | .reveal .progress span { 262 | background: #268bd2; 263 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 264 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 265 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 266 | 267 | /********************************************* 268 | * SLIDE NUMBER 269 | *********************************************/ 270 | .reveal .slide-number { 271 | color: #268bd2; } 272 | -------------------------------------------------------------------------------- /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: #111; 13 | background-color: #111; } 14 | 15 | .reveal { 16 | font-family: 'Open Sans', sans-serif; 17 | font-size: 30px; 18 | font-weight: normal; 19 | color: #eee; } 20 | 21 | ::selection { 22 | color: #fff; 23 | background: #e7ad52; 24 | text-shadow: none; } 25 | 26 | .reveal .slides > section, .reveal .slides > section > section { 27 | line-height: 1.3; 28 | font-weight: inherit; } 29 | 30 | /********************************************* 31 | * HEADERS 32 | *********************************************/ 33 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 34 | margin: 0 0 20px 0; 35 | color: #eee; 36 | font-family: 'Montserrat', Impact, sans-serif; 37 | font-weight: normal; 38 | line-height: 1.2; 39 | letter-spacing: -0.03em; 40 | text-transform: none; 41 | text-shadow: none; 42 | word-wrap: break-word; } 43 | 44 | .reveal h1 { 45 | font-size: 3.77em; } 46 | 47 | .reveal h2 { 48 | font-size: 2.11em; } 49 | 50 | .reveal h3 { 51 | font-size: 1.55em; } 52 | 53 | .reveal h4 { 54 | font-size: 1em; } 55 | 56 | .reveal h1 { 57 | text-shadow: none; } 58 | 59 | /********************************************* 60 | * OTHER 61 | *********************************************/ 62 | .reveal p { 63 | margin: 20px 0; 64 | line-height: 1.3; } 65 | 66 | /* Ensure certain elements are never larger than the slide itself */ 67 | .reveal img, .reveal video, .reveal iframe { 68 | max-width: 95%; 69 | max-height: 95%; } 70 | 71 | .reveal strong, .reveal b { 72 | font-weight: bold; } 73 | 74 | .reveal em { 75 | font-style: italic; } 76 | 77 | .reveal ol, .reveal dl, .reveal ul { 78 | display: inline-block; 79 | text-align: left; 80 | margin: 0 0 0 1em; } 81 | 82 | .reveal ol { 83 | list-style-type: decimal; } 84 | 85 | .reveal ul { 86 | list-style-type: disc; } 87 | 88 | .reveal ul ul { 89 | list-style-type: square; } 90 | 91 | .reveal ul ul ul { 92 | list-style-type: circle; } 93 | 94 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 95 | display: block; 96 | margin-left: 40px; } 97 | 98 | .reveal dt { 99 | font-weight: bold; } 100 | 101 | .reveal dd { 102 | margin-left: 40px; } 103 | 104 | .reveal q, .reveal blockquote { 105 | quotes: none; } 106 | 107 | .reveal blockquote { 108 | display: block; 109 | position: relative; 110 | width: 70%; 111 | margin: 20px auto; 112 | padding: 5px; 113 | font-style: italic; 114 | background: rgba(255, 255, 255, 0.05); 115 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 116 | 117 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 118 | display: inline-block; } 119 | 120 | .reveal q { 121 | font-style: italic; } 122 | 123 | .reveal pre { 124 | display: block; 125 | position: relative; 126 | width: 90%; 127 | margin: 20px auto; 128 | text-align: left; 129 | font-size: 0.55em; 130 | font-family: monospace; 131 | line-height: 1.2em; 132 | word-wrap: break-word; 133 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 134 | 135 | .reveal code { 136 | font-family: monospace; } 137 | 138 | .reveal pre code { 139 | display: block; 140 | padding: 5px; 141 | overflow: auto; 142 | max-height: 400px; 143 | word-wrap: normal; 144 | background: #3F3F3F; 145 | color: #DCDCDC; } 146 | 147 | .reveal table { 148 | margin: auto; 149 | border-collapse: collapse; 150 | border-spacing: 0; } 151 | 152 | .reveal table th { 153 | font-weight: bold; } 154 | 155 | .reveal table th, .reveal table td { 156 | text-align: left; 157 | padding: 0.2em 0.5em 0.2em 0.5em; 158 | border-bottom: 1px solid; } 159 | 160 | .reveal table th[align="center"], .reveal table td[align="center"] { 161 | text-align: center; } 162 | 163 | .reveal table th[align="right"], .reveal table td[align="right"] { 164 | text-align: right; } 165 | 166 | .reveal table tr:last-child td { 167 | border-bottom: none; } 168 | 169 | .reveal sup { 170 | vertical-align: super; } 171 | 172 | .reveal sub { 173 | vertical-align: sub; } 174 | 175 | .reveal small { 176 | display: inline-block; 177 | font-size: 0.6em; 178 | line-height: 1.2em; 179 | vertical-align: top; } 180 | 181 | .reveal small * { 182 | vertical-align: top; } 183 | 184 | /********************************************* 185 | * LINKS 186 | *********************************************/ 187 | .reveal a { 188 | color: #e7ad52; 189 | text-decoration: none; 190 | -webkit-transition: color 0.15s ease; 191 | -moz-transition: color 0.15s ease; 192 | transition: color 0.15s ease; } 193 | 194 | .reveal a:hover { 195 | color: #f3d7ac; 196 | text-shadow: none; 197 | border: none; } 198 | 199 | .reveal .roll span:after { 200 | color: #fff; 201 | background: #d0881d; } 202 | 203 | /********************************************* 204 | * IMAGES 205 | *********************************************/ 206 | .reveal section img { 207 | margin: 15px 0px; 208 | background: rgba(255, 255, 255, 0.12); 209 | border: 4px solid #eee; 210 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 211 | 212 | .reveal a img { 213 | -webkit-transition: all 0.15s linear; 214 | -moz-transition: all 0.15s linear; 215 | transition: all 0.15s linear; } 216 | 217 | .reveal a:hover img { 218 | background: rgba(255, 255, 255, 0.2); 219 | border-color: #e7ad52; 220 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 221 | 222 | /********************************************* 223 | * NAVIGATION CONTROLS 224 | *********************************************/ 225 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 226 | border-right-color: #e7ad52; } 227 | 228 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 229 | border-left-color: #e7ad52; } 230 | 231 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 232 | border-bottom-color: #e7ad52; } 233 | 234 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 235 | border-top-color: #e7ad52; } 236 | 237 | .reveal .controls div.navigate-left.enabled:hover { 238 | border-right-color: #f3d7ac; } 239 | 240 | .reveal .controls div.navigate-right.enabled:hover { 241 | border-left-color: #f3d7ac; } 242 | 243 | .reveal .controls div.navigate-up.enabled:hover { 244 | border-bottom-color: #f3d7ac; } 245 | 246 | .reveal .controls div.navigate-down.enabled:hover { 247 | border-top-color: #f3d7ac; } 248 | 249 | /********************************************* 250 | * PROGRESS BAR 251 | *********************************************/ 252 | .reveal .progress { 253 | background: rgba(0, 0, 0, 0.2); } 254 | 255 | .reveal .progress span { 256 | background: #e7ad52; 257 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 258 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 259 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 260 | 261 | /********************************************* 262 | * SLIDE NUMBER 263 | *********************************************/ 264 | .reveal .slide-number { 265 | color: #e7ad52; } 266 | -------------------------------------------------------------------------------- /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 { 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: normal; 21 | color: #000; } 22 | 23 | ::selection { 24 | color: #fff; 25 | background: #26351C; 26 | text-shadow: none; } 27 | 28 | .reveal .slides > section, .reveal .slides > section > section { 29 | line-height: 1.3; 30 | font-weight: inherit; } 31 | 32 | /********************************************* 33 | * HEADERS 34 | *********************************************/ 35 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 36 | margin: 0 0 20px 0; 37 | color: #383D3D; 38 | font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; 39 | font-weight: normal; 40 | line-height: 1.2; 41 | letter-spacing: normal; 42 | text-transform: none; 43 | text-shadow: none; 44 | word-wrap: break-word; } 45 | 46 | .reveal h1 { 47 | font-size: 3.77em; } 48 | 49 | .reveal h2 { 50 | font-size: 2.11em; } 51 | 52 | .reveal h3 { 53 | font-size: 1.55em; } 54 | 55 | .reveal h4 { 56 | font-size: 1em; } 57 | 58 | .reveal h1 { 59 | text-shadow: none; } 60 | 61 | /********************************************* 62 | * OTHER 63 | *********************************************/ 64 | .reveal p { 65 | margin: 20px 0; 66 | line-height: 1.3; } 67 | 68 | /* Ensure certain elements are never larger than the slide itself */ 69 | .reveal img, .reveal video, .reveal iframe { 70 | max-width: 95%; 71 | max-height: 95%; } 72 | 73 | .reveal strong, .reveal b { 74 | font-weight: bold; } 75 | 76 | .reveal em { 77 | font-style: italic; } 78 | 79 | .reveal ol, .reveal dl, .reveal ul { 80 | display: inline-block; 81 | text-align: left; 82 | margin: 0 0 0 1em; } 83 | 84 | .reveal ol { 85 | list-style-type: decimal; } 86 | 87 | .reveal ul { 88 | list-style-type: disc; } 89 | 90 | .reveal ul ul { 91 | list-style-type: square; } 92 | 93 | .reveal ul ul ul { 94 | list-style-type: circle; } 95 | 96 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 97 | display: block; 98 | margin-left: 40px; } 99 | 100 | .reveal dt { 101 | font-weight: bold; } 102 | 103 | .reveal dd { 104 | margin-left: 40px; } 105 | 106 | .reveal q, .reveal blockquote { 107 | quotes: none; } 108 | 109 | .reveal blockquote { 110 | display: block; 111 | position: relative; 112 | width: 70%; 113 | margin: 20px auto; 114 | padding: 5px; 115 | font-style: italic; 116 | background: rgba(255, 255, 255, 0.05); 117 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 118 | 119 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 120 | display: inline-block; } 121 | 122 | .reveal q { 123 | font-style: italic; } 124 | 125 | .reveal pre { 126 | display: block; 127 | position: relative; 128 | width: 90%; 129 | margin: 20px auto; 130 | text-align: left; 131 | font-size: 0.55em; 132 | font-family: monospace; 133 | line-height: 1.2em; 134 | word-wrap: break-word; 135 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 136 | 137 | .reveal code { 138 | font-family: monospace; } 139 | 140 | .reveal pre code { 141 | display: block; 142 | padding: 5px; 143 | overflow: auto; 144 | max-height: 400px; 145 | word-wrap: normal; 146 | background: #3F3F3F; 147 | color: #DCDCDC; } 148 | 149 | .reveal table { 150 | margin: auto; 151 | border-collapse: collapse; 152 | border-spacing: 0; } 153 | 154 | .reveal table th { 155 | font-weight: bold; } 156 | 157 | .reveal table th, .reveal table td { 158 | text-align: left; 159 | padding: 0.2em 0.5em 0.2em 0.5em; 160 | border-bottom: 1px solid; } 161 | 162 | .reveal table th[align="center"], .reveal table td[align="center"] { 163 | text-align: center; } 164 | 165 | .reveal table th[align="right"], .reveal table td[align="right"] { 166 | text-align: right; } 167 | 168 | .reveal table tr:last-child td { 169 | border-bottom: none; } 170 | 171 | .reveal sup { 172 | vertical-align: super; } 173 | 174 | .reveal sub { 175 | vertical-align: sub; } 176 | 177 | .reveal small { 178 | display: inline-block; 179 | font-size: 0.6em; 180 | line-height: 1.2em; 181 | vertical-align: top; } 182 | 183 | .reveal small * { 184 | vertical-align: top; } 185 | 186 | /********************************************* 187 | * LINKS 188 | *********************************************/ 189 | .reveal a { 190 | color: #51483D; 191 | text-decoration: none; 192 | -webkit-transition: color 0.15s ease; 193 | -moz-transition: color 0.15s ease; 194 | transition: color 0.15s ease; } 195 | 196 | .reveal a:hover { 197 | color: #8b7b69; 198 | text-shadow: none; 199 | border: none; } 200 | 201 | .reveal .roll span:after { 202 | color: #fff; 203 | background: #25211c; } 204 | 205 | /********************************************* 206 | * IMAGES 207 | *********************************************/ 208 | .reveal section img { 209 | margin: 15px 0px; 210 | background: rgba(255, 255, 255, 0.12); 211 | border: 4px solid #000; 212 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 213 | 214 | .reveal a img { 215 | -webkit-transition: all 0.15s linear; 216 | -moz-transition: all 0.15s linear; 217 | transition: all 0.15s linear; } 218 | 219 | .reveal a:hover img { 220 | background: rgba(255, 255, 255, 0.2); 221 | border-color: #51483D; 222 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 223 | 224 | /********************************************* 225 | * NAVIGATION CONTROLS 226 | *********************************************/ 227 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 228 | border-right-color: #51483D; } 229 | 230 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 231 | border-left-color: #51483D; } 232 | 233 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 234 | border-bottom-color: #51483D; } 235 | 236 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 237 | border-top-color: #51483D; } 238 | 239 | .reveal .controls div.navigate-left.enabled:hover { 240 | border-right-color: #8b7b69; } 241 | 242 | .reveal .controls div.navigate-right.enabled:hover { 243 | border-left-color: #8b7b69; } 244 | 245 | .reveal .controls div.navigate-up.enabled:hover { 246 | border-bottom-color: #8b7b69; } 247 | 248 | .reveal .controls div.navigate-down.enabled:hover { 249 | border-top-color: #8b7b69; } 250 | 251 | /********************************************* 252 | * PROGRESS BAR 253 | *********************************************/ 254 | .reveal .progress { 255 | background: rgba(0, 0, 0, 0.2); } 256 | 257 | .reveal .progress span { 258 | background: #51483D; 259 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 260 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 261 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 262 | 263 | /********************************************* 264 | * SLIDE NUMBER 265 | *********************************************/ 266 | .reveal .slide-number { 267 | color: #51483D; } 268 | -------------------------------------------------------------------------------- /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: #fff; 15 | background-color: #fff; } 16 | 17 | .reveal { 18 | font-family: 'Lato', sans-serif; 19 | font-size: 36px; 20 | font-weight: normal; 21 | color: #000; } 22 | 23 | ::selection { 24 | color: #fff; 25 | background: rgba(0, 0, 0, 0.99); 26 | text-shadow: none; } 27 | 28 | .reveal .slides > section, .reveal .slides > section > section { 29 | line-height: 1.3; 30 | font-weight: inherit; } 31 | 32 | /********************************************* 33 | * HEADERS 34 | *********************************************/ 35 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 36 | margin: 0 0 20px 0; 37 | color: #000; 38 | font-family: 'News Cycle', Impact, sans-serif; 39 | font-weight: normal; 40 | line-height: 1.2; 41 | letter-spacing: normal; 42 | text-transform: none; 43 | text-shadow: none; 44 | word-wrap: break-word; } 45 | 46 | .reveal h1 { 47 | font-size: 3.77em; } 48 | 49 | .reveal h2 { 50 | font-size: 2.11em; } 51 | 52 | .reveal h3 { 53 | font-size: 1.55em; } 54 | 55 | .reveal h4 { 56 | font-size: 1em; } 57 | 58 | .reveal h1 { 59 | text-shadow: none; } 60 | 61 | /********************************************* 62 | * OTHER 63 | *********************************************/ 64 | .reveal p { 65 | margin: 20px 0; 66 | line-height: 1.3; } 67 | 68 | /* Ensure certain elements are never larger than the slide itself */ 69 | .reveal img, .reveal video, .reveal iframe { 70 | max-width: 95%; 71 | max-height: 95%; } 72 | 73 | .reveal strong, .reveal b { 74 | font-weight: bold; } 75 | 76 | .reveal em { 77 | font-style: italic; } 78 | 79 | .reveal ol, .reveal dl, .reveal ul { 80 | display: inline-block; 81 | text-align: left; 82 | margin: 0 0 0 1em; } 83 | 84 | .reveal ol { 85 | list-style-type: decimal; } 86 | 87 | .reveal ul { 88 | list-style-type: disc; } 89 | 90 | .reveal ul ul { 91 | list-style-type: square; } 92 | 93 | .reveal ul ul ul { 94 | list-style-type: circle; } 95 | 96 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 97 | display: block; 98 | margin-left: 40px; } 99 | 100 | .reveal dt { 101 | font-weight: bold; } 102 | 103 | .reveal dd { 104 | margin-left: 40px; } 105 | 106 | .reveal q, .reveal blockquote { 107 | quotes: none; } 108 | 109 | .reveal blockquote { 110 | display: block; 111 | position: relative; 112 | width: 70%; 113 | margin: 20px auto; 114 | padding: 5px; 115 | font-style: italic; 116 | background: rgba(255, 255, 255, 0.05); 117 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 118 | 119 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 120 | display: inline-block; } 121 | 122 | .reveal q { 123 | font-style: italic; } 124 | 125 | .reveal pre { 126 | display: block; 127 | position: relative; 128 | width: 90%; 129 | margin: 20px auto; 130 | text-align: left; 131 | font-size: 0.55em; 132 | font-family: monospace; 133 | line-height: 1.2em; 134 | word-wrap: break-word; 135 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 136 | 137 | .reveal code { 138 | font-family: monospace; } 139 | 140 | .reveal pre code { 141 | display: block; 142 | padding: 5px; 143 | overflow: auto; 144 | max-height: 400px; 145 | word-wrap: normal; 146 | background: #3F3F3F; 147 | color: #DCDCDC; } 148 | 149 | .reveal table { 150 | margin: auto; 151 | border-collapse: collapse; 152 | border-spacing: 0; } 153 | 154 | .reveal table th { 155 | font-weight: bold; } 156 | 157 | .reveal table th, .reveal table td { 158 | text-align: left; 159 | padding: 0.2em 0.5em 0.2em 0.5em; 160 | border-bottom: 1px solid; } 161 | 162 | .reveal table th[align="center"], .reveal table td[align="center"] { 163 | text-align: center; } 164 | 165 | .reveal table th[align="right"], .reveal table td[align="right"] { 166 | text-align: right; } 167 | 168 | .reveal table tr:last-child td { 169 | border-bottom: none; } 170 | 171 | .reveal sup { 172 | vertical-align: super; } 173 | 174 | .reveal sub { 175 | vertical-align: sub; } 176 | 177 | .reveal small { 178 | display: inline-block; 179 | font-size: 0.6em; 180 | line-height: 1.2em; 181 | vertical-align: top; } 182 | 183 | .reveal small * { 184 | vertical-align: top; } 185 | 186 | /********************************************* 187 | * LINKS 188 | *********************************************/ 189 | .reveal a { 190 | color: #00008B; 191 | text-decoration: none; 192 | -webkit-transition: color 0.15s ease; 193 | -moz-transition: color 0.15s ease; 194 | transition: color 0.15s ease; } 195 | 196 | .reveal a:hover { 197 | color: #0000f1; 198 | text-shadow: none; 199 | border: none; } 200 | 201 | .reveal .roll span:after { 202 | color: #fff; 203 | background: #00003f; } 204 | 205 | /********************************************* 206 | * IMAGES 207 | *********************************************/ 208 | .reveal section img { 209 | margin: 15px 0px; 210 | background: rgba(255, 255, 255, 0.12); 211 | border: 4px solid #000; 212 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 213 | 214 | .reveal a img { 215 | -webkit-transition: all 0.15s linear; 216 | -moz-transition: all 0.15s linear; 217 | transition: all 0.15s linear; } 218 | 219 | .reveal a:hover img { 220 | background: rgba(255, 255, 255, 0.2); 221 | border-color: #00008B; 222 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 223 | 224 | /********************************************* 225 | * NAVIGATION CONTROLS 226 | *********************************************/ 227 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 228 | border-right-color: #00008B; } 229 | 230 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 231 | border-left-color: #00008B; } 232 | 233 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 234 | border-bottom-color: #00008B; } 235 | 236 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 237 | border-top-color: #00008B; } 238 | 239 | .reveal .controls div.navigate-left.enabled:hover { 240 | border-right-color: #0000f1; } 241 | 242 | .reveal .controls div.navigate-right.enabled:hover { 243 | border-left-color: #0000f1; } 244 | 245 | .reveal .controls div.navigate-up.enabled:hover { 246 | border-bottom-color: #0000f1; } 247 | 248 | .reveal .controls div.navigate-down.enabled:hover { 249 | border-top-color: #0000f1; } 250 | 251 | /********************************************* 252 | * PROGRESS BAR 253 | *********************************************/ 254 | .reveal .progress { 255 | background: rgba(0, 0, 0, 0.2); } 256 | 257 | .reveal .progress span { 258 | background: #00008B; 259 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 260 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 261 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 262 | 263 | /********************************************* 264 | * SLIDE NUMBER 265 | *********************************************/ 266 | .reveal .slide-number { 267 | color: #00008B; } 268 | -------------------------------------------------------------------------------- /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 { 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: normal; 28 | color: #333; } 29 | 30 | ::selection { 31 | color: #fff; 32 | background: #134674; 33 | text-shadow: none; } 34 | 35 | .reveal .slides > section, .reveal .slides > section > section { 36 | line-height: 1.3; 37 | font-weight: inherit; } 38 | 39 | /********************************************* 40 | * HEADERS 41 | *********************************************/ 42 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 43 | margin: 0 0 20px 0; 44 | color: #333; 45 | font-family: 'Quicksand', sans-serif; 46 | font-weight: normal; 47 | line-height: 1.2; 48 | letter-spacing: -0.08em; 49 | text-transform: uppercase; 50 | text-shadow: none; 51 | word-wrap: break-word; } 52 | 53 | .reveal h1 { 54 | font-size: 3.77em; } 55 | 56 | .reveal h2 { 57 | font-size: 2.11em; } 58 | 59 | .reveal h3 { 60 | font-size: 1.55em; } 61 | 62 | .reveal h4 { 63 | font-size: 1em; } 64 | 65 | .reveal h1 { 66 | text-shadow: none; } 67 | 68 | /********************************************* 69 | * OTHER 70 | *********************************************/ 71 | .reveal p { 72 | margin: 20px 0; 73 | line-height: 1.3; } 74 | 75 | /* Ensure certain elements are never larger than the slide itself */ 76 | .reveal img, .reveal video, .reveal iframe { 77 | max-width: 95%; 78 | max-height: 95%; } 79 | 80 | .reveal strong, .reveal b { 81 | font-weight: bold; } 82 | 83 | .reveal em { 84 | font-style: italic; } 85 | 86 | .reveal ol, .reveal dl, .reveal ul { 87 | display: inline-block; 88 | text-align: left; 89 | margin: 0 0 0 1em; } 90 | 91 | .reveal ol { 92 | list-style-type: decimal; } 93 | 94 | .reveal ul { 95 | list-style-type: disc; } 96 | 97 | .reveal ul ul { 98 | list-style-type: square; } 99 | 100 | .reveal ul ul ul { 101 | list-style-type: circle; } 102 | 103 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 104 | display: block; 105 | margin-left: 40px; } 106 | 107 | .reveal dt { 108 | font-weight: bold; } 109 | 110 | .reveal dd { 111 | margin-left: 40px; } 112 | 113 | .reveal q, .reveal blockquote { 114 | quotes: none; } 115 | 116 | .reveal blockquote { 117 | display: block; 118 | position: relative; 119 | width: 70%; 120 | margin: 20px auto; 121 | padding: 5px; 122 | font-style: italic; 123 | background: rgba(255, 255, 255, 0.05); 124 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 125 | 126 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 127 | display: inline-block; } 128 | 129 | .reveal q { 130 | font-style: italic; } 131 | 132 | .reveal pre { 133 | display: block; 134 | position: relative; 135 | width: 90%; 136 | margin: 20px auto; 137 | text-align: left; 138 | font-size: 0.55em; 139 | font-family: monospace; 140 | line-height: 1.2em; 141 | word-wrap: break-word; 142 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 143 | 144 | .reveal code { 145 | font-family: monospace; } 146 | 147 | .reveal pre code { 148 | display: block; 149 | padding: 5px; 150 | overflow: auto; 151 | max-height: 400px; 152 | word-wrap: normal; 153 | background: #3F3F3F; 154 | color: #DCDCDC; } 155 | 156 | .reveal table { 157 | margin: auto; 158 | border-collapse: collapse; 159 | border-spacing: 0; } 160 | 161 | .reveal table th { 162 | font-weight: bold; } 163 | 164 | .reveal table th, .reveal table td { 165 | text-align: left; 166 | padding: 0.2em 0.5em 0.2em 0.5em; 167 | border-bottom: 1px solid; } 168 | 169 | .reveal table th[align="center"], .reveal table td[align="center"] { 170 | text-align: center; } 171 | 172 | .reveal table th[align="right"], .reveal table td[align="right"] { 173 | text-align: right; } 174 | 175 | .reveal table tr:last-child td { 176 | border-bottom: none; } 177 | 178 | .reveal sup { 179 | vertical-align: super; } 180 | 181 | .reveal sub { 182 | vertical-align: sub; } 183 | 184 | .reveal small { 185 | display: inline-block; 186 | font-size: 0.6em; 187 | line-height: 1.2em; 188 | vertical-align: top; } 189 | 190 | .reveal small * { 191 | vertical-align: top; } 192 | 193 | /********************************************* 194 | * LINKS 195 | *********************************************/ 196 | .reveal a { 197 | color: #3b759e; 198 | text-decoration: none; 199 | -webkit-transition: color 0.15s ease; 200 | -moz-transition: color 0.15s ease; 201 | transition: color 0.15s ease; } 202 | 203 | .reveal a:hover { 204 | color: #74a8cb; 205 | text-shadow: none; 206 | border: none; } 207 | 208 | .reveal .roll span:after { 209 | color: #fff; 210 | background: #264d66; } 211 | 212 | /********************************************* 213 | * IMAGES 214 | *********************************************/ 215 | .reveal section img { 216 | margin: 15px 0px; 217 | background: rgba(255, 255, 255, 0.12); 218 | border: 4px solid #333; 219 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 220 | 221 | .reveal a img { 222 | -webkit-transition: all 0.15s linear; 223 | -moz-transition: all 0.15s linear; 224 | transition: all 0.15s linear; } 225 | 226 | .reveal a:hover img { 227 | background: rgba(255, 255, 255, 0.2); 228 | border-color: #3b759e; 229 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 230 | 231 | /********************************************* 232 | * NAVIGATION CONTROLS 233 | *********************************************/ 234 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 235 | border-right-color: #3b759e; } 236 | 237 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 238 | border-left-color: #3b759e; } 239 | 240 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 241 | border-bottom-color: #3b759e; } 242 | 243 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 244 | border-top-color: #3b759e; } 245 | 246 | .reveal .controls div.navigate-left.enabled:hover { 247 | border-right-color: #74a8cb; } 248 | 249 | .reveal .controls div.navigate-right.enabled:hover { 250 | border-left-color: #74a8cb; } 251 | 252 | .reveal .controls div.navigate-up.enabled:hover { 253 | border-bottom-color: #74a8cb; } 254 | 255 | .reveal .controls div.navigate-down.enabled:hover { 256 | border-top-color: #74a8cb; } 257 | 258 | /********************************************* 259 | * PROGRESS BAR 260 | *********************************************/ 261 | .reveal .progress { 262 | background: rgba(0, 0, 0, 0.2); } 263 | 264 | .reveal .progress span { 265 | background: #3b759e; 266 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 267 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 268 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 269 | 270 | /********************************************* 271 | * SLIDE NUMBER 272 | *********************************************/ 273 | .reveal .slide-number { 274 | color: #3b759e; } 275 | -------------------------------------------------------------------------------- /css/theme/solarized.css: -------------------------------------------------------------------------------- 1 | @import url(../../lib/font/league-gothic/league-gothic.css); 2 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 3 | /** 4 | * Solarized Light theme for reveal.js. 5 | * Author: Achim Staebler 6 | */ 7 | /** 8 | * Solarized colors by Ethan Schoonover 9 | */ 10 | html * { 11 | color-profile: sRGB; 12 | rendering-intent: auto; } 13 | 14 | /********************************************* 15 | * GLOBAL STYLES 16 | *********************************************/ 17 | body { 18 | background: #fdf6e3; 19 | background-color: #fdf6e3; } 20 | 21 | .reveal { 22 | font-family: 'Lato', sans-serif; 23 | font-size: 36px; 24 | font-weight: normal; 25 | color: #657b83; } 26 | 27 | ::selection { 28 | color: #fff; 29 | background: #d33682; 30 | text-shadow: none; } 31 | 32 | .reveal .slides > section, .reveal .slides > section > section { 33 | line-height: 1.3; 34 | font-weight: inherit; } 35 | 36 | /********************************************* 37 | * HEADERS 38 | *********************************************/ 39 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 40 | margin: 0 0 20px 0; 41 | color: #586e75; 42 | font-family: 'League Gothic', Impact, sans-serif; 43 | font-weight: normal; 44 | line-height: 1.2; 45 | letter-spacing: normal; 46 | text-transform: uppercase; 47 | text-shadow: none; 48 | word-wrap: break-word; } 49 | 50 | .reveal h1 { 51 | font-size: 3.77em; } 52 | 53 | .reveal h2 { 54 | font-size: 2.11em; } 55 | 56 | .reveal h3 { 57 | font-size: 1.55em; } 58 | 59 | .reveal h4 { 60 | font-size: 1em; } 61 | 62 | .reveal h1 { 63 | text-shadow: none; } 64 | 65 | /********************************************* 66 | * OTHER 67 | *********************************************/ 68 | .reveal p { 69 | margin: 20px 0; 70 | line-height: 1.3; } 71 | 72 | /* Ensure certain elements are never larger than the slide itself */ 73 | .reveal img, .reveal video, .reveal iframe { 74 | max-width: 95%; 75 | max-height: 95%; } 76 | 77 | .reveal strong, .reveal b { 78 | font-weight: bold; } 79 | 80 | .reveal em { 81 | font-style: italic; } 82 | 83 | .reveal ol, .reveal dl, .reveal ul { 84 | display: inline-block; 85 | text-align: left; 86 | margin: 0 0 0 1em; } 87 | 88 | .reveal ol { 89 | list-style-type: decimal; } 90 | 91 | .reveal ul { 92 | list-style-type: disc; } 93 | 94 | .reveal ul ul { 95 | list-style-type: square; } 96 | 97 | .reveal ul ul ul { 98 | list-style-type: circle; } 99 | 100 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 101 | display: block; 102 | margin-left: 40px; } 103 | 104 | .reveal dt { 105 | font-weight: bold; } 106 | 107 | .reveal dd { 108 | margin-left: 40px; } 109 | 110 | .reveal q, .reveal blockquote { 111 | quotes: none; } 112 | 113 | .reveal blockquote { 114 | display: block; 115 | position: relative; 116 | width: 70%; 117 | margin: 20px auto; 118 | padding: 5px; 119 | font-style: italic; 120 | background: rgba(255, 255, 255, 0.05); 121 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 122 | 123 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 124 | display: inline-block; } 125 | 126 | .reveal q { 127 | font-style: italic; } 128 | 129 | .reveal pre { 130 | display: block; 131 | position: relative; 132 | width: 90%; 133 | margin: 20px auto; 134 | text-align: left; 135 | font-size: 0.55em; 136 | font-family: monospace; 137 | line-height: 1.2em; 138 | word-wrap: break-word; 139 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 140 | 141 | .reveal code { 142 | font-family: monospace; } 143 | 144 | .reveal pre code { 145 | display: block; 146 | padding: 5px; 147 | overflow: auto; 148 | max-height: 400px; 149 | word-wrap: normal; 150 | background: #3F3F3F; 151 | color: #DCDCDC; } 152 | 153 | .reveal table { 154 | margin: auto; 155 | border-collapse: collapse; 156 | border-spacing: 0; } 157 | 158 | .reveal table th { 159 | font-weight: bold; } 160 | 161 | .reveal table th, .reveal table td { 162 | text-align: left; 163 | padding: 0.2em 0.5em 0.2em 0.5em; 164 | border-bottom: 1px solid; } 165 | 166 | .reveal table th[align="center"], .reveal table td[align="center"] { 167 | text-align: center; } 168 | 169 | .reveal table th[align="right"], .reveal table td[align="right"] { 170 | text-align: right; } 171 | 172 | .reveal table tr:last-child td { 173 | border-bottom: none; } 174 | 175 | .reveal sup { 176 | vertical-align: super; } 177 | 178 | .reveal sub { 179 | vertical-align: sub; } 180 | 181 | .reveal small { 182 | display: inline-block; 183 | font-size: 0.6em; 184 | line-height: 1.2em; 185 | vertical-align: top; } 186 | 187 | .reveal small * { 188 | vertical-align: top; } 189 | 190 | /********************************************* 191 | * LINKS 192 | *********************************************/ 193 | .reveal a { 194 | color: #268bd2; 195 | text-decoration: none; 196 | -webkit-transition: color 0.15s ease; 197 | -moz-transition: color 0.15s ease; 198 | transition: color 0.15s ease; } 199 | 200 | .reveal a:hover { 201 | color: #78bae6; 202 | text-shadow: none; 203 | border: none; } 204 | 205 | .reveal .roll span:after { 206 | color: #fff; 207 | background: #1a6291; } 208 | 209 | /********************************************* 210 | * IMAGES 211 | *********************************************/ 212 | .reveal section img { 213 | margin: 15px 0px; 214 | background: rgba(255, 255, 255, 0.12); 215 | border: 4px solid #657b83; 216 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 217 | 218 | .reveal a img { 219 | -webkit-transition: all 0.15s linear; 220 | -moz-transition: all 0.15s linear; 221 | transition: all 0.15s linear; } 222 | 223 | .reveal a:hover img { 224 | background: rgba(255, 255, 255, 0.2); 225 | border-color: #268bd2; 226 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 227 | 228 | /********************************************* 229 | * NAVIGATION CONTROLS 230 | *********************************************/ 231 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 232 | border-right-color: #268bd2; } 233 | 234 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 235 | border-left-color: #268bd2; } 236 | 237 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 238 | border-bottom-color: #268bd2; } 239 | 240 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 241 | border-top-color: #268bd2; } 242 | 243 | .reveal .controls div.navigate-left.enabled:hover { 244 | border-right-color: #78bae6; } 245 | 246 | .reveal .controls div.navigate-right.enabled:hover { 247 | border-left-color: #78bae6; } 248 | 249 | .reveal .controls div.navigate-up.enabled:hover { 250 | border-bottom-color: #78bae6; } 251 | 252 | .reveal .controls div.navigate-down.enabled:hover { 253 | border-top-color: #78bae6; } 254 | 255 | /********************************************* 256 | * PROGRESS BAR 257 | *********************************************/ 258 | .reveal .progress { 259 | background: rgba(0, 0, 0, 0.2); } 260 | 261 | .reveal .progress span { 262 | background: #268bd2; 263 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 264 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 265 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 266 | 267 | /********************************************* 268 | * SLIDE NUMBER 269 | *********************************************/ 270 | .reveal .slide-number { 271 | color: #268bd2; } 272 | -------------------------------------------------------------------------------- /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 | @import url(../../lib/font/league-gothic/league-gothic.css); 17 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 18 | 19 | 20 | // Override theme settings (see ../template/settings.scss) 21 | $mainColor: #333; 22 | $headingColor: #333; 23 | $headingTextShadow: none; 24 | $backgroundColor: #f7f3de; 25 | $linkColor: #8b743d; 26 | $linkColorHover: lighten( $linkColor, 20% ); 27 | $selectionBackgroundColor: rgba(79, 64, 28, 0.99); 28 | $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); 29 | 30 | // Background generator 31 | @mixin bodyBackground() { 32 | @include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) ); 33 | } 34 | 35 | 36 | 37 | // Theme template ------------------------------ 38 | @import "../template/theme"; 39 | // --------------------------------------------- -------------------------------------------------------------------------------- /css/theme/source/black.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Black theme for reveal.js. This is the opposite of the 'white' theme. 3 | * 4 | * Copyright (C) 2015 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(../../lib/font/source-sans-pro/source-sans-pro.css); 16 | 17 | 18 | // Override theme settings (see ../template/settings.scss) 19 | $backgroundColor: #222; 20 | 21 | $mainColor: #fff; 22 | $headingColor: #fff; 23 | 24 | $mainFontSize: 38px; 25 | $mainFont: 'Source Sans Pro', Helvetica, sans-serif; 26 | $headingFont: 'Source Sans Pro', Helvetica, sans-serif; 27 | $headingTextShadow: none; 28 | $headingLetterSpacing: normal; 29 | $headingTextTransform: uppercase; 30 | $headingFontWeight: 600; 31 | $linkColor: #42affa; 32 | $linkColorHover: lighten( $linkColor, 15% ); 33 | $selectionBackgroundColor: lighten( $linkColor, 25% ); 34 | 35 | $heading1Size: 2.5em; 36 | $heading2Size: 1.6em; 37 | $heading3Size: 1.3em; 38 | $heading4Size: 1.0em; 39 | 40 | section.has-light-background { 41 | &, h1, h2, h3, h4, h5, h6 { 42 | color: #222; 43 | } 44 | } 45 | 46 | 47 | // Theme template ------------------------------ 48 | @import "../template/theme"; 49 | // --------------------------------------------- -------------------------------------------------------------------------------- /css/theme/source/blood.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Blood theme for reveal.js 3 | * Author: Walther http://github.com/Walther 4 | * 5 | * Designed to be used with highlight.js theme 6 | * "monokai_sublime.css" available from 7 | * https://github.com/isagalaev/highlight.js/ 8 | * 9 | * For other themes, change $codeBackground accordingly. 10 | * 11 | */ 12 | 13 | // Default mixins and settings ----------------- 14 | @import "../template/mixins"; 15 | @import "../template/settings"; 16 | // --------------------------------------------- 17 | 18 | // Include theme-specific fonts 19 | 20 | @import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic); 21 | 22 | // Colors used in the theme 23 | $blood: #a23; 24 | $coal: #222; 25 | $codeBackground: #23241f; 26 | 27 | $backgroundColor: $coal; 28 | 29 | // Main text 30 | $mainFont: Ubuntu, 'sans-serif'; 31 | $mainFontSize: 36px; 32 | $mainColor: #eee; 33 | 34 | // Headings 35 | $headingFont: Ubuntu, 'sans-serif'; 36 | $headingTextShadow: 2px 2px 2px $coal; 37 | 38 | // h1 shadow, borrowed humbly from 39 | // (c) Default theme by Hakim El Hattab 40 | $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); 41 | 42 | // Links 43 | $linkColor: $blood; 44 | $linkColorHover: lighten( $linkColor, 20% ); 45 | 46 | // Text selection 47 | $selectionBackgroundColor: $blood; 48 | $selectionColor: #fff; 49 | 50 | 51 | // Theme template ------------------------------ 52 | @import "../template/theme"; 53 | // --------------------------------------------- 54 | 55 | // some overrides after theme template import 56 | 57 | .reveal p { 58 | font-weight: 300; 59 | text-shadow: 1px 1px $coal; 60 | } 61 | 62 | .reveal h1, 63 | .reveal h2, 64 | .reveal h3, 65 | .reveal h4, 66 | .reveal h5, 67 | .reveal h6 { 68 | font-weight: 700; 69 | } 70 | 71 | .reveal p code { 72 | background-color: $codeBackground; 73 | display: inline-block; 74 | border-radius: 7px; 75 | } 76 | 77 | .reveal small code { 78 | vertical-align: baseline; 79 | } -------------------------------------------------------------------------------- /css/theme/source/league.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * League theme for reveal.js. 3 | * 4 | * This was the default theme pre-3.0.0. 5 | * 6 | * 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(../../lib/font/league-gothic/league-gothic.css); 19 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 20 | 21 | // Override theme settings (see ../template/settings.scss) 22 | $headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2); 23 | $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); 24 | 25 | // Background generator 26 | @mixin bodyBackground() { 27 | @include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) ); 28 | } 29 | 30 | 31 | 32 | // Theme template ------------------------------ 33 | @import "../template/theme"; 34 | // --------------------------------------------- -------------------------------------------------------------------------------- /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 | @import url(../../lib/font/league-gothic/league-gothic.css); 16 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 17 | 18 | /** 19 | * Solarized colors by Ethan Schoonover 20 | */ 21 | html * { 22 | color-profile: sRGB; 23 | rendering-intent: auto; 24 | } 25 | 26 | // Solarized colors 27 | $base03: #002b36; 28 | $base02: #073642; 29 | $base01: #586e75; 30 | $base00: #657b83; 31 | $base0: #839496; 32 | $base1: #93a1a1; 33 | $base2: #eee8d5; 34 | $base3: #fdf6e3; 35 | $yellow: #b58900; 36 | $orange: #cb4b16; 37 | $red: #dc322f; 38 | $magenta: #d33682; 39 | $violet: #6c71c4; 40 | $blue: #268bd2; 41 | $cyan: #2aa198; 42 | $green: #859900; 43 | 44 | // Override theme settings (see ../template/settings.scss) 45 | $mainColor: $base1; 46 | $headingColor: $base2; 47 | $headingTextShadow: none; 48 | $backgroundColor: $base03; 49 | $linkColor: $blue; 50 | $linkColorHover: lighten( $linkColor, 20% ); 51 | $selectionBackgroundColor: $magenta; 52 | 53 | 54 | 55 | // Theme template ------------------------------ 56 | @import "../template/theme"; 57 | // --------------------------------------------- 58 | -------------------------------------------------------------------------------- /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 | // --------------------------------------------- -------------------------------------------------------------------------------- /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 { 29 | line-height: 1.3em; 30 | } 31 | 32 | 33 | // Theme template ------------------------------ 34 | @import "../template/theme"; 35 | // --------------------------------------------- 36 | -------------------------------------------------------------------------------- /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 | // --------------------------------------------- -------------------------------------------------------------------------------- /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 { 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 | -------------------------------------------------------------------------------- /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 | @import url(../../lib/font/league-gothic/league-gothic.css); 16 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 17 | 18 | 19 | /** 20 | * Solarized colors by Ethan Schoonover 21 | */ 22 | html * { 23 | color-profile: sRGB; 24 | rendering-intent: auto; 25 | } 26 | 27 | // Solarized colors 28 | $base03: #002b36; 29 | $base02: #073642; 30 | $base01: #586e75; 31 | $base00: #657b83; 32 | $base0: #839496; 33 | $base1: #93a1a1; 34 | $base2: #eee8d5; 35 | $base3: #fdf6e3; 36 | $yellow: #b58900; 37 | $orange: #cb4b16; 38 | $red: #dc322f; 39 | $magenta: #d33682; 40 | $violet: #6c71c4; 41 | $blue: #268bd2; 42 | $cyan: #2aa198; 43 | $green: #859900; 44 | 45 | // Override theme settings (see ../template/settings.scss) 46 | $mainColor: $base00; 47 | $headingColor: $base01; 48 | $headingTextShadow: none; 49 | $backgroundColor: $base3; 50 | $linkColor: $blue; 51 | $linkColorHover: lighten( $linkColor, 20% ); 52 | $selectionBackgroundColor: $magenta; 53 | 54 | // Background generator 55 | // @mixin bodyBackground() { 56 | // @include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) ); 57 | // } 58 | 59 | 60 | 61 | // Theme template ------------------------------ 62 | @import "../template/theme"; 63 | // --------------------------------------------- 64 | -------------------------------------------------------------------------------- /css/theme/source/white.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * White theme for reveal.js. This is the opposite of the 'black' theme. 3 | * 4 | * Copyright (C) 2015 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(../../lib/font/source-sans-pro/source-sans-pro.css); 16 | 17 | 18 | // Override theme settings (see ../template/settings.scss) 19 | $backgroundColor: #fff; 20 | 21 | $mainColor: #222; 22 | $headingColor: #222; 23 | 24 | $mainFontSize: 38px; 25 | $mainFont: 'Source Sans Pro', Helvetica, sans-serif; 26 | $headingFont: 'Source Sans Pro', Helvetica, sans-serif; 27 | $headingTextShadow: none; 28 | $headingLetterSpacing: normal; 29 | $headingTextTransform: uppercase; 30 | $headingFontWeight: 600; 31 | $linkColor: #2a76dd; 32 | $linkColorHover: lighten( $linkColor, 15% ); 33 | $selectionBackgroundColor: lighten( $linkColor, 25% ); 34 | 35 | $heading1Size: 2.5em; 36 | $heading2Size: 1.6em; 37 | $heading3Size: 1.3em; 38 | $heading4Size: 1.0em; 39 | 40 | section.has-dark-background { 41 | &, h1, h2, h3, h4, h5, h6 { 42 | color: #fff; 43 | } 44 | } 45 | 46 | 47 | // Theme template ------------------------------ 48 | @import "../template/theme"; 49 | // --------------------------------------------- -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /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 | // Vertical spacing between blocks of text 13 | $blockMargin: 20px; 14 | 15 | // Headings 16 | $headingMargin: 0 0 $blockMargin 0; 17 | $headingFont: 'League Gothic', Impact, sans-serif; 18 | $headingColor: #eee; 19 | $headingLineHeight: 1.2; 20 | $headingLetterSpacing: normal; 21 | $headingTextTransform: uppercase; 22 | $headingTextShadow: none; 23 | $headingFontWeight: normal; 24 | $heading1TextShadow: $headingTextShadow; 25 | 26 | $heading1Size: 3.77em; 27 | $heading2Size: 2.11em; 28 | $heading3Size: 1.55em; 29 | $heading4Size: 1.00em; 30 | 31 | // Links and actions 32 | $linkColor: #13DAEC; 33 | $linkColorHover: lighten( $linkColor, 20% ); 34 | 35 | // Text selection 36 | $selectionBackgroundColor: #FF5E99; 37 | $selectionColor: #fff; 38 | 39 | // Generates the presentation background, can be overridden 40 | // to return a background image or gradient 41 | @mixin bodyBackground() { 42 | background: $backgroundColor; 43 | } -------------------------------------------------------------------------------- /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: normal; 16 | color: $mainColor; 17 | } 18 | 19 | ::selection { 20 | color: $selectionColor; 21 | background: $selectionBackgroundColor; 22 | text-shadow: none; 23 | } 24 | 25 | .reveal .slides>section, 26 | .reveal .slides>section>section { 27 | line-height: 1.3; 28 | font-weight: inherit; 29 | } 30 | 31 | /********************************************* 32 | * HEADERS 33 | *********************************************/ 34 | 35 | .reveal h1, 36 | .reveal h2, 37 | .reveal h3, 38 | .reveal h4, 39 | .reveal h5, 40 | .reveal h6 { 41 | margin: $headingMargin; 42 | color: $headingColor; 43 | 44 | font-family: $headingFont; 45 | font-weight: $headingFontWeight; 46 | line-height: $headingLineHeight; 47 | letter-spacing: $headingLetterSpacing; 48 | 49 | text-transform: $headingTextTransform; 50 | text-shadow: $headingTextShadow; 51 | 52 | word-wrap: break-word; 53 | } 54 | 55 | .reveal h1 {font-size: $heading1Size; } 56 | .reveal h2 {font-size: $heading2Size; } 57 | .reveal h3 {font-size: $heading3Size; } 58 | .reveal h4 {font-size: $heading4Size; } 59 | 60 | .reveal h1 { 61 | text-shadow: $heading1TextShadow; 62 | } 63 | 64 | 65 | /********************************************* 66 | * OTHER 67 | *********************************************/ 68 | 69 | .reveal p { 70 | margin: $blockMargin 0; 71 | line-height: 1.3; 72 | } 73 | 74 | /* Ensure certain elements are never larger than the slide itself */ 75 | .reveal img, 76 | .reveal video, 77 | .reveal iframe { 78 | max-width: 95%; 79 | max-height: 95%; 80 | } 81 | .reveal strong, 82 | .reveal b { 83 | font-weight: bold; 84 | } 85 | 86 | .reveal em { 87 | font-style: italic; 88 | } 89 | 90 | .reveal ol, 91 | .reveal dl, 92 | .reveal ul { 93 | display: inline-block; 94 | 95 | text-align: left; 96 | margin: 0 0 0 1em; 97 | } 98 | 99 | .reveal ol { 100 | list-style-type: decimal; 101 | } 102 | 103 | .reveal ul { 104 | list-style-type: disc; 105 | } 106 | 107 | .reveal ul ul { 108 | list-style-type: square; 109 | } 110 | 111 | .reveal ul ul ul { 112 | list-style-type: circle; 113 | } 114 | 115 | .reveal ul ul, 116 | .reveal ul ol, 117 | .reveal ol ol, 118 | .reveal ol ul { 119 | display: block; 120 | margin-left: 40px; 121 | } 122 | 123 | .reveal dt { 124 | font-weight: bold; 125 | } 126 | 127 | .reveal dd { 128 | margin-left: 40px; 129 | } 130 | 131 | .reveal q, 132 | .reveal blockquote { 133 | quotes: none; 134 | } 135 | 136 | .reveal blockquote { 137 | display: block; 138 | position: relative; 139 | width: 70%; 140 | margin: $blockMargin auto; 141 | padding: 5px; 142 | 143 | font-style: italic; 144 | background: rgba(255, 255, 255, 0.05); 145 | box-shadow: 0px 0px 2px rgba(0,0,0,0.2); 146 | } 147 | .reveal blockquote p:first-child, 148 | .reveal blockquote p:last-child { 149 | display: inline-block; 150 | } 151 | 152 | .reveal q { 153 | font-style: italic; 154 | } 155 | 156 | .reveal pre { 157 | display: block; 158 | position: relative; 159 | width: 90%; 160 | margin: $blockMargin auto; 161 | 162 | text-align: left; 163 | font-size: 0.55em; 164 | font-family: monospace; 165 | line-height: 1.2em; 166 | 167 | word-wrap: break-word; 168 | 169 | box-shadow: 0px 0px 6px rgba(0,0,0,0.3); 170 | } 171 | .reveal code { 172 | font-family: monospace; 173 | } 174 | 175 | .reveal pre code { 176 | display: block; 177 | padding: 5px; 178 | overflow: auto; 179 | max-height: 400px; 180 | word-wrap: normal; 181 | background: #3F3F3F; 182 | color: #DCDCDC; 183 | } 184 | 185 | .reveal table { 186 | margin: auto; 187 | border-collapse: collapse; 188 | border-spacing: 0; 189 | } 190 | 191 | .reveal table th { 192 | font-weight: bold; 193 | } 194 | 195 | .reveal table th, 196 | .reveal table td { 197 | text-align: left; 198 | padding: 0.2em 0.5em 0.2em 0.5em; 199 | border-bottom: 1px solid; 200 | } 201 | 202 | .reveal table th[align="center"], 203 | .reveal table td[align="center"] { 204 | text-align: center; 205 | } 206 | 207 | .reveal table th[align="right"], 208 | .reveal table td[align="right"] { 209 | text-align: right; 210 | } 211 | 212 | .reveal table tr:last-child td { 213 | border-bottom: none; 214 | } 215 | 216 | .reveal sup { 217 | vertical-align: super; 218 | } 219 | .reveal sub { 220 | vertical-align: sub; 221 | } 222 | 223 | .reveal small { 224 | display: inline-block; 225 | font-size: 0.6em; 226 | line-height: 1.2em; 227 | vertical-align: top; 228 | } 229 | 230 | .reveal small * { 231 | vertical-align: top; 232 | } 233 | 234 | 235 | /********************************************* 236 | * LINKS 237 | *********************************************/ 238 | 239 | .reveal a { 240 | color: $linkColor; 241 | text-decoration: none; 242 | 243 | -webkit-transition: color .15s ease; 244 | -moz-transition: color .15s ease; 245 | transition: color .15s ease; 246 | } 247 | .reveal a:hover { 248 | color: $linkColorHover; 249 | 250 | text-shadow: none; 251 | border: none; 252 | } 253 | 254 | .reveal .roll span:after { 255 | color: #fff; 256 | background: darken( $linkColor, 15% ); 257 | } 258 | 259 | 260 | /********************************************* 261 | * IMAGES 262 | *********************************************/ 263 | 264 | .reveal section img { 265 | margin: 15px 0px; 266 | background: rgba(255,255,255,0.12); 267 | border: 4px solid $mainColor; 268 | 269 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); 270 | } 271 | 272 | .reveal a img { 273 | -webkit-transition: all .15s linear; 274 | -moz-transition: all .15s linear; 275 | transition: all .15s linear; 276 | } 277 | 278 | .reveal a:hover img { 279 | background: rgba(255,255,255,0.2); 280 | border-color: $linkColor; 281 | 282 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); 283 | } 284 | 285 | 286 | /********************************************* 287 | * NAVIGATION CONTROLS 288 | *********************************************/ 289 | 290 | .reveal .controls div.navigate-left, 291 | .reveal .controls div.navigate-left.enabled { 292 | border-right-color: $linkColor; 293 | } 294 | 295 | .reveal .controls div.navigate-right, 296 | .reveal .controls div.navigate-right.enabled { 297 | border-left-color: $linkColor; 298 | } 299 | 300 | .reveal .controls div.navigate-up, 301 | .reveal .controls div.navigate-up.enabled { 302 | border-bottom-color: $linkColor; 303 | } 304 | 305 | .reveal .controls div.navigate-down, 306 | .reveal .controls div.navigate-down.enabled { 307 | border-top-color: $linkColor; 308 | } 309 | 310 | .reveal .controls div.navigate-left.enabled:hover { 311 | border-right-color: $linkColorHover; 312 | } 313 | 314 | .reveal .controls div.navigate-right.enabled:hover { 315 | border-left-color: $linkColorHover; 316 | } 317 | 318 | .reveal .controls div.navigate-up.enabled:hover { 319 | border-bottom-color: $linkColorHover; 320 | } 321 | 322 | .reveal .controls div.navigate-down.enabled:hover { 323 | border-top-color: $linkColorHover; 324 | } 325 | 326 | 327 | /********************************************* 328 | * PROGRESS BAR 329 | *********************************************/ 330 | 331 | .reveal .progress { 332 | background: rgba(0,0,0,0.2); 333 | } 334 | .reveal .progress span { 335 | background: $linkColor; 336 | 337 | -webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 338 | -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 339 | transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); 340 | } 341 | 342 | /********************************************* 343 | * SLIDE NUMBER 344 | *********************************************/ 345 | .reveal .slide-number { 346 | color: $linkColor; 347 | } 348 | 349 | 350 | -------------------------------------------------------------------------------- /css/theme/white.css: -------------------------------------------------------------------------------- 1 | @import url(../../lib/font/source-sans-pro/source-sans-pro.css); 2 | /** 3 | * White theme for reveal.js. This is the opposite of the 'black' theme. 4 | * 5 | * Copyright (C) 2015 Hakim El Hattab, http://hakim.se 6 | */ 7 | section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 { 8 | color: #fff; } 9 | 10 | /********************************************* 11 | * GLOBAL STYLES 12 | *********************************************/ 13 | body { 14 | background: #fff; 15 | background-color: #fff; } 16 | 17 | .reveal { 18 | font-family: 'Source Sans Pro', Helvetica, sans-serif; 19 | font-size: 38px; 20 | font-weight: normal; 21 | color: #222; } 22 | 23 | ::selection { 24 | color: #fff; 25 | background: #98bdef; 26 | text-shadow: none; } 27 | 28 | .reveal .slides > section, .reveal .slides > section > section { 29 | line-height: 1.3; 30 | font-weight: inherit; } 31 | 32 | /********************************************* 33 | * HEADERS 34 | *********************************************/ 35 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { 36 | margin: 0 0 20px 0; 37 | color: #222; 38 | font-family: 'Source Sans Pro', Helvetica, sans-serif; 39 | font-weight: 600; 40 | line-height: 1.2; 41 | letter-spacing: normal; 42 | text-transform: uppercase; 43 | text-shadow: none; 44 | word-wrap: break-word; } 45 | 46 | .reveal h1 { 47 | font-size: 2.5em; } 48 | 49 | .reveal h2 { 50 | font-size: 1.6em; } 51 | 52 | .reveal h3 { 53 | font-size: 1.3em; } 54 | 55 | .reveal h4 { 56 | font-size: 1em; } 57 | 58 | .reveal h1 { 59 | text-shadow: none; } 60 | 61 | /********************************************* 62 | * OTHER 63 | *********************************************/ 64 | .reveal p { 65 | margin: 20px 0; 66 | line-height: 1.3; } 67 | 68 | /* Ensure certain elements are never larger than the slide itself */ 69 | .reveal img, .reveal video, .reveal iframe { 70 | max-width: 95%; 71 | max-height: 95%; } 72 | 73 | .reveal strong, .reveal b { 74 | font-weight: bold; } 75 | 76 | .reveal em { 77 | font-style: italic; } 78 | 79 | .reveal ol, .reveal dl, .reveal ul { 80 | display: inline-block; 81 | text-align: left; 82 | margin: 0 0 0 1em; } 83 | 84 | .reveal ol { 85 | list-style-type: decimal; } 86 | 87 | .reveal ul { 88 | list-style-type: disc; } 89 | 90 | .reveal ul ul { 91 | list-style-type: square; } 92 | 93 | .reveal ul ul ul { 94 | list-style-type: circle; } 95 | 96 | .reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { 97 | display: block; 98 | margin-left: 40px; } 99 | 100 | .reveal dt { 101 | font-weight: bold; } 102 | 103 | .reveal dd { 104 | margin-left: 40px; } 105 | 106 | .reveal q, .reveal blockquote { 107 | quotes: none; } 108 | 109 | .reveal blockquote { 110 | display: block; 111 | position: relative; 112 | width: 70%; 113 | margin: 20px auto; 114 | padding: 5px; 115 | font-style: italic; 116 | background: rgba(255, 255, 255, 0.05); 117 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } 118 | 119 | .reveal blockquote p:first-child, .reveal blockquote p:last-child { 120 | display: inline-block; } 121 | 122 | .reveal q { 123 | font-style: italic; } 124 | 125 | .reveal pre { 126 | display: block; 127 | position: relative; 128 | width: 90%; 129 | margin: 20px auto; 130 | text-align: left; 131 | font-size: 0.55em; 132 | font-family: monospace; 133 | line-height: 1.2em; 134 | word-wrap: break-word; 135 | box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } 136 | 137 | .reveal code { 138 | font-family: monospace; } 139 | 140 | .reveal pre code { 141 | display: block; 142 | padding: 5px; 143 | overflow: auto; 144 | max-height: 400px; 145 | word-wrap: normal; 146 | background: #3F3F3F; 147 | color: #DCDCDC; } 148 | 149 | .reveal table { 150 | margin: auto; 151 | border-collapse: collapse; 152 | border-spacing: 0; } 153 | 154 | .reveal table th { 155 | font-weight: bold; } 156 | 157 | .reveal table th, .reveal table td { 158 | text-align: left; 159 | padding: 0.2em 0.5em 0.2em 0.5em; 160 | border-bottom: 1px solid; } 161 | 162 | .reveal table th[align="center"], .reveal table td[align="center"] { 163 | text-align: center; } 164 | 165 | .reveal table th[align="right"], .reveal table td[align="right"] { 166 | text-align: right; } 167 | 168 | .reveal table tr:last-child td { 169 | border-bottom: none; } 170 | 171 | .reveal sup { 172 | vertical-align: super; } 173 | 174 | .reveal sub { 175 | vertical-align: sub; } 176 | 177 | .reveal small { 178 | display: inline-block; 179 | font-size: 0.6em; 180 | line-height: 1.2em; 181 | vertical-align: top; } 182 | 183 | .reveal small * { 184 | vertical-align: top; } 185 | 186 | /********************************************* 187 | * LINKS 188 | *********************************************/ 189 | .reveal a { 190 | color: #2a76dd; 191 | text-decoration: none; 192 | -webkit-transition: color 0.15s ease; 193 | -moz-transition: color 0.15s ease; 194 | transition: color 0.15s ease; } 195 | 196 | .reveal a:hover { 197 | color: #6ca2e8; 198 | text-shadow: none; 199 | border: none; } 200 | 201 | .reveal .roll span:after { 202 | color: #fff; 203 | background: #1a54a1; } 204 | 205 | /********************************************* 206 | * IMAGES 207 | *********************************************/ 208 | .reveal section img { 209 | margin: 15px 0px; 210 | background: rgba(255, 255, 255, 0.12); 211 | border: 4px solid #222; 212 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } 213 | 214 | .reveal a img { 215 | -webkit-transition: all 0.15s linear; 216 | -moz-transition: all 0.15s linear; 217 | transition: all 0.15s linear; } 218 | 219 | .reveal a:hover img { 220 | background: rgba(255, 255, 255, 0.2); 221 | border-color: #2a76dd; 222 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } 223 | 224 | /********************************************* 225 | * NAVIGATION CONTROLS 226 | *********************************************/ 227 | .reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { 228 | border-right-color: #2a76dd; } 229 | 230 | .reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { 231 | border-left-color: #2a76dd; } 232 | 233 | .reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { 234 | border-bottom-color: #2a76dd; } 235 | 236 | .reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { 237 | border-top-color: #2a76dd; } 238 | 239 | .reveal .controls div.navigate-left.enabled:hover { 240 | border-right-color: #6ca2e8; } 241 | 242 | .reveal .controls div.navigate-right.enabled:hover { 243 | border-left-color: #6ca2e8; } 244 | 245 | .reveal .controls div.navigate-up.enabled:hover { 246 | border-bottom-color: #6ca2e8; } 247 | 248 | .reveal .controls div.navigate-down.enabled:hover { 249 | border-top-color: #6ca2e8; } 250 | 251 | /********************************************* 252 | * PROGRESS BAR 253 | *********************************************/ 254 | .reveal .progress { 255 | background: rgba(0, 0, 0, 0.2); } 256 | 257 | .reveal .progress span { 258 | background: #2a76dd; 259 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 260 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); 261 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } 262 | 263 | /********************************************* 264 | * SLIDE NUMBER 265 | *********************************************/ 266 | .reveal .slide-number { 267 | color: #2a76dd; } 268 | -------------------------------------------------------------------------------- /examples/StringPlus-diy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * constructor 3 | */ 4 | 5 | /** 6 | * .map 7 | */ 8 | 9 | /** 10 | * .ap 11 | */ 12 | 13 | /** 14 | * .toString 15 | */ 16 | -------------------------------------------------------------------------------- /examples/StringPlus.js: -------------------------------------------------------------------------------- 1 | /** 2 | * constructor 3 | */ 4 | function StringPlus (val) { 5 | this.val = val 6 | } 7 | 8 | /** 9 | * .map 10 | */ 11 | StringPlus.prototype.map = function (f) { 12 | return new StringPlus(f(this.val)) 13 | } 14 | 15 | /** 16 | * .ap 17 | */ 18 | StringPlus.prototype.ap = function (b) { 19 | return new StringPlus(this.val(b.val)) 20 | } 21 | 22 | /** 23 | * .toString 24 | */ 25 | StringPlus.prototype.toString = function () { 26 | return `StringPlus(${this.val})` 27 | } 28 | 29 | export default a => new StringPlus(a) 30 | -------------------------------------------------------------------------------- /examples/fullName-diy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Initial 3 | */ 4 | 5 | /** 6 | * fullName 7 | */ 8 | 9 | /** 10 | * fullNameMaybe 11 | */ 12 | 13 | /** 14 | * Maybe example 15 | */ 16 | 17 | 18 | // Either magic 19 | -------------------------------------------------------------------------------- /examples/fullName.js: -------------------------------------------------------------------------------- 1 | import { 2 | curry, 3 | } from 'core.lambda' 4 | 5 | import { 6 | Just, 7 | Nothing, 8 | } from 'data.maybe' 9 | 10 | import { 11 | Left, 12 | Right, 13 | } from 'data.either' 14 | 15 | const map = (fn, functor) => functor.map(fn) 16 | const initial = string => string.split('')[0] 17 | 18 | const fullName = curry(3, (first, middle, last) => 19 | `${last} ${initial(middle)}. ${first}` 20 | ) 21 | 22 | const fullNameM = curry(3, (first, middle, last) => 23 | map(fullName, first) 24 | .ap(middle) 25 | .ap(last) 26 | ) 27 | 28 | /** 29 | * Maybe 30 | */ 31 | console.log( 32 | fullNameM(Nothing(), Just('R'), Just('Dickens')) 33 | .toString()) 34 | // => Nothing 35 | 36 | /** 37 | * Either 38 | */ 39 | console.log( 40 | fullNameM(Right('Phil'), Left('Missing Middle Name'), Right('Lopez')) 41 | .toString()) 42 | // => Left(Missing Middle Name) 43 | -------------------------------------------------------------------------------- /examples/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "examples", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/LegitTalon/you-must-be-so-good-at-math" 12 | }, 13 | "author": "Talon", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/LegitTalon/you-must-be-so-good-at-math/issues" 17 | }, 18 | "homepage": "https://github.com/LegitTalon/you-must-be-so-good-at-math", 19 | "dependencies": { 20 | "core.lambda": "^1.0.0", 21 | "data.either": "^1.2.0", 22 | "data.maybe": "^1.2.0", 23 | "ramda": "^0.17.1" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /examples/stringtastic-diy.js: -------------------------------------------------------------------------------- 1 | import StringPlus from './StringPlus' 2 | import { 3 | curry, 4 | } from 'core.lambda' 5 | 6 | const map = (fn, functor) => functor.map(fn) 7 | 8 | /** 9 | * punctuate 10 | * 11 | * Map 12 | */ 13 | 14 | /** 15 | * greet 16 | * 17 | * Apply 18 | */ 19 | 20 | // exclaimed 21 | -------------------------------------------------------------------------------- /examples/stringtastic.js: -------------------------------------------------------------------------------- 1 | import StringPlus from './StringPlus' 2 | import { 3 | curry, 4 | } from 'core.lambda' 5 | 6 | const map = (fn, functor) => functor.map(fn) 7 | 8 | /** 9 | * Map 10 | */ 11 | const hello = StringPlus('hello world') 12 | 13 | const punctuate = curry(2, (punctuation, message) => message + punctuation) 14 | 15 | const exclaim = punctuate('!') 16 | 17 | console.log(map(exclaim, hello).toString()) 18 | 19 | 20 | /** 21 | * Apply 22 | */ 23 | const greet = curry(2, (nameA, nameB) => `"Hello ${nameB}!", said ${nameA}`) 24 | 25 | const rachel = StringPlus('Rachel') 26 | const sara = StringPlus('Sara') 27 | 28 | console.log(map(greet, rachel).ap(sara).toString()) 29 | -------------------------------------------------------------------------------- /img/hacker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/talon/you-must-be-so-good-at-math/dac1bbe90b0df482662664a242cb99dbe75757e6/img/hacker.gif -------------------------------------------------------------------------------- /img/math.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/talon/you-must-be-so-good-at-math/dac1bbe90b0df482662664a242cb99dbe75757e6/img/math.gif -------------------------------------------------------------------------------- /img/me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/talon/you-must-be-so-good-at-math/dac1bbe90b0df482662664a242cb99dbe75757e6/img/me.png -------------------------------------------------------------------------------- /img/poet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/talon/you-must-be-so-good-at-math/dac1bbe90b0df482662664a242cb99dbe75757e6/img/poet.gif -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 |