Once again I did a talk and as usual I got caught up in the meta process of slide creation, this project is what happened.
See demo deck for awesome :checked
powered slides to impress all your friends.
The slide animation is hardware accelerated so it's smooth as butter on mobiles.
I have a build system in place not to make CSS more complicated but to take the complication out of this project. It uses SASS so I can create a helpful mixin to generate the mind melting selectors needed to do the slide system, autoprefixer to add prefixes based on caniuse.com data and CSSLint to make sure nothing silly is done.
- Install node.js
- Run
npm install grunt-cli
if you don't already have grunt >=0.4.0 installed. - Inside this project folder run
npm install
to get the dependencies - Run
grunt
to generate files insidedist
folder.
Unfortunately this slide system needs to know your total slide count in order to function correctly, thankfully SASS makes this really easy. Just update the $slide-count
variable in the _variables.scss
file and run grunt
to re-generate the CSS.
You must follow the convention of the example slide deck when creating your markup. Radio inputs need to appear at the top for each slide.
<div class="slideshowbob">
<input type="radio" checked autofocus id="slideshowbob1" name="slider">
<input type="radio" id="slideshowbob2" name="slider">
<div class="slideshowbob__container">
<div class="slideshowbob__slide">
<div class="slideshowbob__slide__content">
<!-- Any html content for slide can go here -->
</div>
</div>
</div>
<!-- ... More slides -->
<!-- Slide controls must appear here with for attribute matching correct radio input -->
<div class="slideshowbob__controls">
<label for="slideshowbob1"></label>
<label for="slideshowbob2"></label>
</div>
<!-- Completely optional, only needed if you want the progress bar at the bottom of the window -->
<div class="slideshowbob__progress"></div>
</div>
If you use the bleeding edge version of SASS you can generate a sourcemap file so debugging in the browser is awesome. The example slide deck has a sourcemap file already included.