deckrb 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +84 -25
- data/bin/deck +3 -4
- data/lib/deck/rack_app.rb +39 -7
- data/lib/deck/slide.rb +9 -2
- data/lib/deck/slide_deck.rb +10 -13
- data/lib/deck/version.rb +1 -1
- data/public/coderay.css +84 -0
- data/public/deck.js/GPL-license.txt +278 -0
- data/public/deck.js/MIT-license.txt +21 -0
- data/public/deck.js/README.md +57 -0
- data/public/deck.js/core/deck.core.css +404 -0
- data/public/deck.js/core/deck.core.html +39 -0
- data/public/deck.js/core/deck.core.js +498 -0
- data/public/deck.js/core/deck.core.scss +447 -0
- data/public/deck.js/extensions/goto/deck.goto.css +41 -0
- data/public/deck.js/extensions/goto/deck.goto.html +7 -0
- data/public/deck.js/extensions/goto/deck.goto.js +134 -0
- data/public/deck.js/extensions/goto/deck.goto.scss +46 -0
- data/public/deck.js/extensions/hash/deck.hash.css +13 -0
- data/public/deck.js/extensions/hash/deck.hash.html +2 -0
- data/public/deck.js/extensions/hash/deck.hash.js +129 -0
- data/public/deck.js/extensions/hash/deck.hash.scss +15 -0
- data/public/deck.js/extensions/menu/deck.menu.css +47 -0
- data/public/deck.js/extensions/menu/deck.menu.js +187 -0
- data/public/deck.js/extensions/menu/deck.menu.scss +58 -0
- data/public/deck.js/extensions/navigation/deck.navigation.css +43 -0
- data/public/deck.js/extensions/navigation/deck.navigation.html +3 -0
- data/public/deck.js/extensions/navigation/deck.navigation.js +91 -0
- data/public/deck.js/extensions/navigation/deck.navigation.scss +56 -0
- data/public/deck.js/extensions/scale/deck.scale.css +16 -0
- data/public/deck.js/extensions/scale/deck.scale.js +156 -0
- data/public/deck.js/extensions/scale/deck.scale.scss +17 -0
- data/public/deck.js/extensions/status/deck.status.css +18 -0
- data/public/deck.js/extensions/status/deck.status.html +6 -0
- data/public/deck.js/extensions/status/deck.status.js +95 -0
- data/public/deck.js/extensions/status/deck.status.scss +22 -0
- data/public/deck.js/extensions/theme-picker/deck.theme-picker.css +55 -0
- data/public/deck.js/extensions/theme-picker/deck.theme-picker.js +13 -0
- data/public/deck.js/introduction/index.html +221 -0
- data/public/deck.js/introduction/index.rb +101 -0
- data/public/deck.js/jquery-1.7.min.js +4 -0
- data/public/deck.js/modernizr.custom.js +4 -0
- data/public/deck.js/test/fixtures/complex.html +24 -0
- data/public/deck.js/test/fixtures/empty.html +19 -0
- data/public/deck.js/test/fixtures/iframe_simple.html +10 -0
- data/public/deck.js/test/fixtures/iframes.html +32 -0
- data/public/deck.js/test/fixtures/nesteds.html +36 -0
- data/public/deck.js/test/fixtures/standard.html +42 -0
- data/public/deck.js/test/index.html +39 -0
- data/public/deck.js/test/lib/jasmine-html.js +190 -0
- data/public/deck.js/test/lib/jasmine-jquery.js +288 -0
- data/public/deck.js/test/lib/jasmine.css +166 -0
- data/public/deck.js/test/lib/jasmine.js +2477 -0
- data/public/deck.js/test/settings.js +3 -0
- data/public/deck.js/test/spec.core.js +434 -0
- data/public/deck.js/test/spec.goto.js +119 -0
- data/public/deck.js/test/spec.hash.js +81 -0
- data/public/deck.js/test/spec.menu.js +66 -0
- data/public/deck.js/test/spec.navigation.js +51 -0
- data/public/deck.js/test/spec.scale.js +57 -0
- data/public/deck.js/test/spec.status.js +58 -0
- data/public/deck.js/themes/style/neon.css +114 -0
- data/public/deck.js/themes/style/neon.scss +139 -0
- data/public/deck.js/themes/style/swiss.css +75 -0
- data/public/deck.js/themes/style/swiss.scss +91 -0
- data/public/deck.js/themes/style/web-2.0.css +205 -0
- data/public/deck.js/themes/style/web-2.0.scss +236 -0
- data/public/deck.js/themes/transition/fade.css +44 -0
- data/public/deck.js/themes/transition/fade.scss +70 -0
- data/public/deck.js/themes/transition/horizontal-slide.css +79 -0
- data/public/deck.js/themes/transition/horizontal-slide.scss +94 -0
- data/public/deck.js/themes/transition/vertical-slide.css +97 -0
- data/public/deck.js/themes/transition/vertical-slide.scss +116 -0
- data/public/favicon.ico +0 -0
- data/spec/rack_app_spec.rb +101 -33
- data/spec/slide_deck_spec.rb +6 -7
- data/spec/slide_spec.rb +19 -0
- metadata +95 -16
@@ -0,0 +1,81 @@
|
|
1
|
+
describe('Deck JS Hash Extension', function() {
|
2
|
+
beforeEach(function() {
|
3
|
+
loadFixtures('standard.html');
|
4
|
+
if (Modernizr.history) {
|
5
|
+
history.replaceState({}, "", "#")
|
6
|
+
}
|
7
|
+
else {
|
8
|
+
window.location.hash = '#';
|
9
|
+
}
|
10
|
+
$.deck('.slide');
|
11
|
+
});
|
12
|
+
|
13
|
+
it('should assign ids to slides that do not have them', function() {
|
14
|
+
var slides = $.deck('getSlides');
|
15
|
+
$.each(slides, function(i, $e) {
|
16
|
+
expect($e.attr('id')).toBeTruthy();
|
17
|
+
});
|
18
|
+
});
|
19
|
+
|
20
|
+
it('should reassign ids on reinitialization', function() {
|
21
|
+
var $firstSlide = $.deck('getSlide', 0),
|
22
|
+
firstID = $firstSlide.attr('id');
|
23
|
+
|
24
|
+
$firstSlide.before('<div class="slide"></div>');
|
25
|
+
$.deck('.slide');
|
26
|
+
expect($firstSlide).not.toHaveId(firstID);
|
27
|
+
});
|
28
|
+
|
29
|
+
it('should update container with a state class including the slide id', function() {
|
30
|
+
var $c = $.deck('getContainer'),
|
31
|
+
osp = defaults.classes.onPrefix;
|
32
|
+
|
33
|
+
expect($c).toHaveClass(osp + $.deck('getSlide', 0).attr('id'));
|
34
|
+
$.deck('next');
|
35
|
+
expect($c).toHaveClass(osp + $.deck('getSlide', 1).attr('id'));
|
36
|
+
$.deck('next');
|
37
|
+
expect($c).not.toHaveClass(osp + $.deck('getSlide', 1).attr('id'));
|
38
|
+
expect($c).toHaveClass(osp + $.deck('getSlide', 2).attr('id'));
|
39
|
+
});
|
40
|
+
|
41
|
+
it('should update the href on slide change', function() {
|
42
|
+
var $hashLink = $(defaults.selectors.hashLink);
|
43
|
+
$.deck('go', 3);
|
44
|
+
expect($hashLink).toHaveAttr('href', '#slide-3');
|
45
|
+
});
|
46
|
+
|
47
|
+
it('should use existing ids if they exist', function() {
|
48
|
+
var $hashLink = $(defaults.selectors.hashLink);
|
49
|
+
$.deck('go', 1);
|
50
|
+
expect($hashLink).toHaveAttr('href', '#custom-id');
|
51
|
+
});
|
52
|
+
|
53
|
+
it('should update the URL on slide change (if supported)', function() {
|
54
|
+
if (Modernizr.history) {
|
55
|
+
$.deck('go', 3);
|
56
|
+
expect(window.location.hash).toEqual('#slide-3');
|
57
|
+
}
|
58
|
+
});
|
59
|
+
|
60
|
+
it('should deep link to slide on deck init', function() {
|
61
|
+
window.location.hash = "#slide-3";
|
62
|
+
$.deck('.slide');
|
63
|
+
expect($.deck('getSlide')).toHaveId('slide-3');
|
64
|
+
});
|
65
|
+
|
66
|
+
it('should follow internal hash links using hashchange (if supported)', function() {
|
67
|
+
if (Modernizr.hashchange) {
|
68
|
+
window.location.hash = "#slide-3";
|
69
|
+
|
70
|
+
// Hashchange event doesn't fire right when the hash changes?
|
71
|
+
waitsFor(function() {
|
72
|
+
return $.deck('getSlide').attr('id') === 'slide-3';
|
73
|
+
}, 'hash to change to slide-3', 2000);
|
74
|
+
}
|
75
|
+
});
|
76
|
+
|
77
|
+
it('should follow internal hash links on click', function() {
|
78
|
+
/* Triggered clicks dont generate hashchanges, so until I find
|
79
|
+
a way to do this in an automated fashion, needs to be hand tested. */
|
80
|
+
});
|
81
|
+
});
|
@@ -0,0 +1,66 @@
|
|
1
|
+
describe('Deck JS Menu', function() {
|
2
|
+
var $d = $(document),
|
3
|
+
dsc = defaults.selectors.container;
|
4
|
+
|
5
|
+
beforeEach(function() {
|
6
|
+
loadFixtures('standard.html');
|
7
|
+
if (Modernizr.history) {
|
8
|
+
history.replaceState({}, "", "#")
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
window.location.hash = '#';
|
12
|
+
}
|
13
|
+
$.deck('.slide');
|
14
|
+
});
|
15
|
+
|
16
|
+
describe('showMenu()', function() {
|
17
|
+
it('should show the menu', function() {
|
18
|
+
expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
19
|
+
$.deck('showMenu');
|
20
|
+
expect($(dsc)).toHaveClass(defaults.classes.menu);
|
21
|
+
});
|
22
|
+
|
23
|
+
it('should do nothing if menu is already showing', function() {
|
24
|
+
if (Modernizr.csstransforms) {
|
25
|
+
$.deck('showMenu');
|
26
|
+
$.deck('showMenu');
|
27
|
+
$.deck('hideMenu');
|
28
|
+
expect($('.slide').attr('style')).toBeFalsy();
|
29
|
+
}
|
30
|
+
});
|
31
|
+
});
|
32
|
+
|
33
|
+
describe('hideMenu()', function() {
|
34
|
+
it('should hide the menu', function() {
|
35
|
+
$.deck('showMenu');
|
36
|
+
$.deck('hideMenu');
|
37
|
+
expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
38
|
+
});
|
39
|
+
});
|
40
|
+
|
41
|
+
describe('toggleMenu()', function() {
|
42
|
+
it('should toggle menu on and off', function() {
|
43
|
+
expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
44
|
+
$.deck('toggleMenu');
|
45
|
+
expect($(dsc)).toHaveClass(defaults.classes.menu);
|
46
|
+
$.deck('toggleMenu');
|
47
|
+
expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
48
|
+
});
|
49
|
+
});
|
50
|
+
|
51
|
+
describe('key bindings', function() {
|
52
|
+
var e;
|
53
|
+
|
54
|
+
beforeEach(function() {
|
55
|
+
e = jQuery.Event('keydown.deckmenu');
|
56
|
+
});
|
57
|
+
|
58
|
+
it('should toggle the menu if the specified key is pressed', function() {
|
59
|
+
e.which = 77; // m
|
60
|
+
$d.trigger(e);
|
61
|
+
expect($(dsc)).toHaveClass(defaults.classes.menu);
|
62
|
+
$d.trigger(e);
|
63
|
+
expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
64
|
+
});
|
65
|
+
});
|
66
|
+
});
|
@@ -0,0 +1,51 @@
|
|
1
|
+
describe('Deck JS Navigation Buttons', function() {
|
2
|
+
beforeEach(function() {
|
3
|
+
loadFixtures('standard.html');
|
4
|
+
if (Modernizr.history) {
|
5
|
+
history.replaceState({}, "", "#")
|
6
|
+
}
|
7
|
+
else {
|
8
|
+
window.location.hash = '#';
|
9
|
+
}
|
10
|
+
$.deck('.slide');
|
11
|
+
});
|
12
|
+
|
13
|
+
it('should go to the next slide if next link is clicked', function() {
|
14
|
+
$(defaults.selectors.nextLink).click();
|
15
|
+
expect($.deck('getSlide')).toHaveClass('slide2');
|
16
|
+
});
|
17
|
+
|
18
|
+
it('should go to the previous slide if previous link is clicked', function() {
|
19
|
+
$.deck('go', 2);
|
20
|
+
$(defaults.selectors.previousLink).click();
|
21
|
+
expect($.deck('getSlide')).toHaveClass('slide2');
|
22
|
+
});
|
23
|
+
|
24
|
+
it('should add the disabled class to the previous link if on first slide', function() {
|
25
|
+
expect($(defaults.selectors.previousLink)).toHaveClass(defaults.classes.navDisabled);
|
26
|
+
$(defaults.selectors.nextLink).click();
|
27
|
+
expect($(defaults.selectors.previousLink)).not.toHaveClass(defaults.classes.navDisabled);
|
28
|
+
$(defaults.selectors.previousLink).click();
|
29
|
+
expect($(defaults.selectors.previousLink)).toHaveClass(defaults.classes.navDisabled);
|
30
|
+
});
|
31
|
+
|
32
|
+
it('should add the disabled class to the next link if on last slide', function() {
|
33
|
+
expect($(defaults.selectors.nextLink)).not.toHaveClass(defaults.classes.navDisabled);
|
34
|
+
$.deck('go', $.deck('getSlides').length - 1);
|
35
|
+
expect($(defaults.selectors.nextLink)).toHaveClass(defaults.classes.navDisabled);
|
36
|
+
});
|
37
|
+
|
38
|
+
it('should not start disabled if deck initialized in the middle', function() {
|
39
|
+
$.deck('go', 2);
|
40
|
+
$.deck('.slide');
|
41
|
+
expect($(defaults.selectors.previousLink)).not.toHaveClass(defaults.classes.navDisabled);
|
42
|
+
});
|
43
|
+
|
44
|
+
it('should update the links hrefs with real fragment ids', function() {
|
45
|
+
expect($(defaults.selectors.previousLink)).toHaveAttr('href', '#');
|
46
|
+
expect($(defaults.selectors.nextLink)).toHaveAttr('href', '#custom-id');
|
47
|
+
$.deck('go', 2);
|
48
|
+
expect($(defaults.selectors.previousLink)).toHaveAttr('href', '#custom-id');
|
49
|
+
expect($(defaults.selectors.nextLink)).toHaveAttr('href', '#slide-3');
|
50
|
+
});
|
51
|
+
});
|
@@ -0,0 +1,57 @@
|
|
1
|
+
describe('Deck JS Status Indicator', function() {
|
2
|
+
beforeEach(function() {
|
3
|
+
loadFixtures('standard.html');
|
4
|
+
if (Modernizr.history) {
|
5
|
+
history.replaceState({}, "", "#")
|
6
|
+
}
|
7
|
+
else {
|
8
|
+
window.location.hash = '#';
|
9
|
+
}
|
10
|
+
$.deck('.slide');
|
11
|
+
});
|
12
|
+
|
13
|
+
it('should start with scaling enabled', function() {
|
14
|
+
expect($.deck('getContainer')).toHaveClass(defaults.classes.scale);
|
15
|
+
});
|
16
|
+
|
17
|
+
describe('disableScale()', function() {
|
18
|
+
it('should remove the scale class from the container', function() {
|
19
|
+
$.deck('disableScale');
|
20
|
+
expect($.deck('getContainer')).not.toHaveClass(defaults.classes.scale);
|
21
|
+
});
|
22
|
+
});
|
23
|
+
|
24
|
+
describe('enableScale()', function() {
|
25
|
+
it('should add the scale class to the container', function() {
|
26
|
+
$.deck('disableScale');
|
27
|
+
$.deck('enableScale');
|
28
|
+
expect($.deck('getContainer')).toHaveClass(defaults.classes.scale);
|
29
|
+
});
|
30
|
+
});
|
31
|
+
|
32
|
+
describe('toggleScale()', function() {
|
33
|
+
it('should toggle between adding and removing the scale class', function() {
|
34
|
+
$.deck('toggleScale');
|
35
|
+
expect($.deck('getContainer')).not.toHaveClass(defaults.classes.scale);
|
36
|
+
$.deck('toggleScale');
|
37
|
+
expect($.deck('getContainer')).toHaveClass(defaults.classes.scale);
|
38
|
+
});
|
39
|
+
});
|
40
|
+
|
41
|
+
describe('key bindings', function() {
|
42
|
+
var e,
|
43
|
+
$d = $(document);
|
44
|
+
|
45
|
+
beforeEach(function() {
|
46
|
+
e = jQuery.Event('keydown.deckscale');
|
47
|
+
});
|
48
|
+
|
49
|
+
it('should toggle scaling if the specified key is pressed', function() {
|
50
|
+
e.which = 83; // s
|
51
|
+
$d.trigger(e);
|
52
|
+
expect($.deck('getContainer')).not.toHaveClass(defaults.classes.scale);
|
53
|
+
$d.trigger(e);
|
54
|
+
expect($.deck('getContainer')).toHaveClass(defaults.classes.scale);
|
55
|
+
});
|
56
|
+
});
|
57
|
+
});
|
@@ -0,0 +1,58 @@
|
|
1
|
+
describe('Deck JS Status Indicator', function() {
|
2
|
+
beforeEach(function() {
|
3
|
+
loadFixtures('standard.html');
|
4
|
+
if (Modernizr.history) {
|
5
|
+
history.replaceState({}, "", "#")
|
6
|
+
}
|
7
|
+
else {
|
8
|
+
window.location.hash = '#';
|
9
|
+
}
|
10
|
+
$.deck('.slide');
|
11
|
+
});
|
12
|
+
|
13
|
+
it('should show the correct total number of slides', function() {
|
14
|
+
expect($(defaults.selectors.statusTotal)).toHaveText($.deck('getSlides').length);
|
15
|
+
});
|
16
|
+
|
17
|
+
it('should start at the right current slide', function() {
|
18
|
+
expect($(defaults.selectors.statusCurrent)).toHaveText(1);
|
19
|
+
$.deck('go', 2);
|
20
|
+
$.deck('.slide');
|
21
|
+
expect($(defaults.selectors.statusCurrent)).toHaveText(3);
|
22
|
+
});
|
23
|
+
|
24
|
+
it('should update to the correct number on slide change', function() {
|
25
|
+
$.deck('go', 2);
|
26
|
+
expect($(defaults.selectors.statusCurrent)).toHaveText('3');
|
27
|
+
});
|
28
|
+
});
|
29
|
+
|
30
|
+
describe('countNested false indicator', function() {
|
31
|
+
beforeEach(function() {
|
32
|
+
loadFixtures('nesteds.html');
|
33
|
+
if (Modernizr.history) {
|
34
|
+
history.replaceState({}, "", "#")
|
35
|
+
}
|
36
|
+
else {
|
37
|
+
window.location.hash = '#';
|
38
|
+
}
|
39
|
+
$.deck('.slide', {
|
40
|
+
countNested: false
|
41
|
+
});
|
42
|
+
});
|
43
|
+
|
44
|
+
it('should ignore nested slides in the total', function() {
|
45
|
+
expect($(defaults.selectors.statusTotal)).toHaveText('5');
|
46
|
+
});
|
47
|
+
|
48
|
+
it('should update to the root slide number when nested becomes active', function() {
|
49
|
+
$.deck('go', 10);
|
50
|
+
expect($(defaults.selectors.statusCurrent)).toHaveText('4');
|
51
|
+
$.deck('prev');
|
52
|
+
expect($(defaults.selectors.statusCurrent)).toHaveText('3');
|
53
|
+
$.deck('go', 3);
|
54
|
+
expect($(defaults.selectors.statusCurrent)).toHaveText('3');
|
55
|
+
$.deck('go', 1);
|
56
|
+
expect($(defaults.selectors.statusCurrent)).toHaveText('2');
|
57
|
+
});
|
58
|
+
});
|
@@ -0,0 +1,114 @@
|
|
1
|
+
.deck-container {
|
2
|
+
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
|
3
|
+
font-size: 1.25em;
|
4
|
+
color: #aaa;
|
5
|
+
background: #000;
|
6
|
+
}
|
7
|
+
.deck-container .slide {
|
8
|
+
background: #000;
|
9
|
+
}
|
10
|
+
.deck-container .slide h1 {
|
11
|
+
color: #0af;
|
12
|
+
font-weight: normal;
|
13
|
+
font-weight: 100;
|
14
|
+
text-shadow: 0 0 50px #0af, 0 0 3px #fff;
|
15
|
+
}
|
16
|
+
.deck-container .slide h2 {
|
17
|
+
color: #af0;
|
18
|
+
border-bottom-color: #ccc;
|
19
|
+
font-weight: normal;
|
20
|
+
font-weight: 100;
|
21
|
+
text-shadow: 0 0 15px #af0, 0 0 2px #fff;
|
22
|
+
border-bottom: 1px solid #333;
|
23
|
+
}
|
24
|
+
.deck-container .slide h3 {
|
25
|
+
color: #fff;
|
26
|
+
font-weight: normal;
|
27
|
+
font-weight: 100;
|
28
|
+
text-shadow: 0 0 10px #fff, 0 0 2px #fff;
|
29
|
+
}
|
30
|
+
.deck-container .slide pre {
|
31
|
+
border-color: #333;
|
32
|
+
}
|
33
|
+
.deck-container .slide pre code {
|
34
|
+
color: #fff;
|
35
|
+
}
|
36
|
+
.deck-container .slide code {
|
37
|
+
color: #f0a;
|
38
|
+
}
|
39
|
+
.deck-container .slide blockquote {
|
40
|
+
font-size: 2em;
|
41
|
+
padding: 1em 2em;
|
42
|
+
color: #fff;
|
43
|
+
border-left: 5px solid #fff;
|
44
|
+
}
|
45
|
+
.deck-container .slide blockquote p {
|
46
|
+
margin: 0;
|
47
|
+
}
|
48
|
+
.deck-container .slide blockquote cite {
|
49
|
+
font-size: .5em;
|
50
|
+
font-style: normal;
|
51
|
+
font-weight: normal;
|
52
|
+
font-weight: 100;
|
53
|
+
color: #aaa;
|
54
|
+
text-shadow: 0 0 15px #fff, 0 0 2px #fff;
|
55
|
+
}
|
56
|
+
.deck-container .slide ::-moz-selection {
|
57
|
+
background: #a0f;
|
58
|
+
}
|
59
|
+
.deck-container .slide ::selection {
|
60
|
+
background: #a0f;
|
61
|
+
}
|
62
|
+
.deck-container .slide a, .deck-container .slide a:hover, .deck-container .slide a:focus, .deck-container .slide a:active, .deck-container .slide a:visited {
|
63
|
+
color: #f0a;
|
64
|
+
text-decoration: none;
|
65
|
+
}
|
66
|
+
.deck-container .slide a:hover, .deck-container .slide a:focus {
|
67
|
+
text-decoration: underline;
|
68
|
+
}
|
69
|
+
.deck-container .deck-prev-link, .deck-container .deck-next-link {
|
70
|
+
background: #f0a;
|
71
|
+
text-shadow: 0 0 3px #fff;
|
72
|
+
}
|
73
|
+
.deck-container .deck-prev-link, .deck-container .deck-prev-link:hover, .deck-container .deck-prev-link:focus, .deck-container .deck-prev-link:active, .deck-container .deck-prev-link:visited, .deck-container .deck-next-link, .deck-container .deck-next-link:hover, .deck-container .deck-next-link:focus, .deck-container .deck-next-link:active, .deck-container .deck-next-link:visited {
|
74
|
+
color: #fff;
|
75
|
+
}
|
76
|
+
.deck-container .deck-prev-link:hover, .deck-container .deck-prev-link:focus, .deck-container .deck-next-link:hover, .deck-container .deck-next-link:focus {
|
77
|
+
text-decoration: none;
|
78
|
+
}
|
79
|
+
.boxshadow .deck-container .deck-prev-link:hover, .boxshadow .deck-container .deck-prev-link:focus, .boxshadow .deck-container .deck-next-link:hover, .boxshadow .deck-container .deck-next-link:focus {
|
80
|
+
-webkit-box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
81
|
+
-moz-box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
82
|
+
box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
83
|
+
}
|
84
|
+
.deck-container .deck-status {
|
85
|
+
font-size: 0.6666em;
|
86
|
+
}
|
87
|
+
.deck-container .goto-form {
|
88
|
+
background: #000;
|
89
|
+
border: 1px solid #f0a;
|
90
|
+
}
|
91
|
+
.deck-container .goto-form label {
|
92
|
+
color: #fff;
|
93
|
+
}
|
94
|
+
.deck-container.deck-menu .slide {
|
95
|
+
background: #333;
|
96
|
+
}
|
97
|
+
.deck-container.deck-menu .deck-current {
|
98
|
+
background: #444;
|
99
|
+
}
|
100
|
+
.boxshadow .deck-container.deck-menu .deck-current {
|
101
|
+
background: #000;
|
102
|
+
-webkit-box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
103
|
+
-moz-box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
104
|
+
box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
105
|
+
}
|
106
|
+
.no-touch .deck-container.deck-menu .slide:hover {
|
107
|
+
background: #444;
|
108
|
+
}
|
109
|
+
.no-touch.boxshadow .deck-container.deck-menu .slide:hover {
|
110
|
+
background: #000;
|
111
|
+
-webkit-box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
112
|
+
-moz-box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
113
|
+
box-shadow: 0 0 20px #f0a, 0 0 5px #fff;
|
114
|
+
}
|
@@ -0,0 +1,139 @@
|
|
1
|
+
.deck-container {
|
2
|
+
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
|
3
|
+
font-size:1.25em;
|
4
|
+
color:#aaa;
|
5
|
+
background:#000;
|
6
|
+
|
7
|
+
.slide {
|
8
|
+
background:#000;
|
9
|
+
|
10
|
+
h1 {
|
11
|
+
color:#0af;
|
12
|
+
font-weight:normal;
|
13
|
+
font-weight:100;
|
14
|
+
text-shadow:0 0 50px #0af, 0 0 3px #fff;
|
15
|
+
}
|
16
|
+
|
17
|
+
h2 {
|
18
|
+
color:#af0;
|
19
|
+
border-bottom-color:#ccc;
|
20
|
+
font-weight:normal;
|
21
|
+
font-weight:100;
|
22
|
+
text-shadow:0 0 15px #af0, 0 0 2px #fff;
|
23
|
+
border-bottom:1px solid #333;
|
24
|
+
}
|
25
|
+
|
26
|
+
h3 {
|
27
|
+
color:#fff;
|
28
|
+
font-weight:normal;
|
29
|
+
font-weight:100;
|
30
|
+
text-shadow:0 0 10px #fff, 0 0 2px #fff;
|
31
|
+
}
|
32
|
+
|
33
|
+
pre {
|
34
|
+
border-color:#333;
|
35
|
+
|
36
|
+
code {
|
37
|
+
color:#fff;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
code {
|
42
|
+
color:#f0a;
|
43
|
+
}
|
44
|
+
|
45
|
+
blockquote {
|
46
|
+
font-size:2em;
|
47
|
+
padding:1em 2em;
|
48
|
+
color:#fff;
|
49
|
+
border-left:5px solid #fff;
|
50
|
+
|
51
|
+
p {
|
52
|
+
margin:0;
|
53
|
+
}
|
54
|
+
|
55
|
+
cite {
|
56
|
+
font-size:.5em;
|
57
|
+
font-style:normal;
|
58
|
+
font-weight:normal;
|
59
|
+
font-weight:100;
|
60
|
+
color:#aaa;
|
61
|
+
text-shadow:0 0 15px #fff, 0 0 2px #fff;
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
::-moz-selection{ background:#a0f; }
|
66
|
+
::selection { background:#a0f; }
|
67
|
+
|
68
|
+
a {
|
69
|
+
&, &:hover, &:focus, &:active, &:visited {
|
70
|
+
color:#f0a;
|
71
|
+
text-decoration:none;
|
72
|
+
}
|
73
|
+
|
74
|
+
&:hover, &:focus {
|
75
|
+
text-decoration:underline;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
.deck-prev-link, .deck-next-link {
|
81
|
+
background:#f0a;
|
82
|
+
text-shadow:0 0 3px #fff;
|
83
|
+
|
84
|
+
&, &:hover, &:focus, &:active, &:visited {
|
85
|
+
color:#fff;
|
86
|
+
}
|
87
|
+
|
88
|
+
&:hover, &:focus {
|
89
|
+
text-decoration:none;
|
90
|
+
|
91
|
+
.boxshadow & {
|
92
|
+
-webkit-box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
93
|
+
-moz-box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
94
|
+
box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
.deck-status {
|
100
|
+
font-size:0.6666em;
|
101
|
+
}
|
102
|
+
|
103
|
+
.goto-form {
|
104
|
+
background:#000;
|
105
|
+
border:1px solid #f0a;
|
106
|
+
|
107
|
+
label {
|
108
|
+
color:#fff;
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
&.deck-menu {
|
113
|
+
.slide {
|
114
|
+
background:#333;
|
115
|
+
}
|
116
|
+
|
117
|
+
.deck-current {
|
118
|
+
background:#444;
|
119
|
+
|
120
|
+
.boxshadow & {
|
121
|
+
background:#000;
|
122
|
+
-webkit-box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
123
|
+
-moz-box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
124
|
+
box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
.no-touch & .slide:hover {
|
129
|
+
background:#444;
|
130
|
+
}
|
131
|
+
|
132
|
+
.no-touch.boxshadow & .slide:hover {
|
133
|
+
background:#000;
|
134
|
+
-webkit-box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
135
|
+
-moz-box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
136
|
+
box-shadow:0 0 20px #f0a, 0 0 5px #fff;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|