initial commit
BIN
charles-darwin.mp4
Normal file
BIN
fonts/IranianSansWeb-Regular.woff
Executable file
BIN
fonts/Roboto.woff2
Normal file
BIN
images/archaeopteryx.jpg
Normal file
After Width: | Height: | Size: 293 KiB |
BIN
images/basic-evolution-tree.jpg
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
images/birds-from-dinosaurs.png
Normal file
After Width: | Height: | Size: 316 KiB |
BIN
images/black-rhino.jpg
Normal file
After Width: | Height: | Size: 885 KiB |
BIN
images/chimpanzee-legs.jpg
Normal file
After Width: | Height: | Size: 189 KiB |
BIN
images/dog-breeds.jpg
Normal file
After Width: | Height: | Size: 402 KiB |
BIN
images/embryo-week-6.jpg
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
images/embryo-week-7.jpg
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
images/femur-comparison.png
Normal file
After Width: | Height: | Size: 261 KiB |
BIN
images/flightless-birds.jpg
Normal file
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 222 KiB |
BIN
images/flightless-birds/Campbell_Island_Teal.JPG
Normal file
After Width: | Height: | Size: 548 KiB |
BIN
images/flightless-birds/Dodo_1.JPG
Normal file
After Width: | Height: | Size: 233 KiB |
BIN
images/flightless-birds/Karuwai_at_August_2005_Health_Check.JPG
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
images/flightless-birds/Penguins_Edinburgh_Zoo_2004_SMC.jpg
Normal file
After Width: | Height: | Size: 205 KiB |
BIN
images/fossil-0.jpg
Normal file
After Width: | Height: | Size: 410 KiB |
BIN
images/fossil-record-dates.png
Normal file
After Width: | Height: | Size: 262 KiB |
BIN
images/four-winged-dinosaur.png
Normal file
After Width: | Height: | Size: 791 KiB |
BIN
images/galapagos-finches.jpg
Normal file
After Width: | Height: | Size: 235 KiB |
BIN
images/galapagos-islands.png
Normal file
After Width: | Height: | Size: 834 KiB |
BIN
images/genetic-drift.png
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
images/hominin-skeletons.png
Normal file
After Width: | Height: | Size: 211 KiB |
BIN
images/hominin-skulls.png
Normal file
After Width: | Height: | Size: 309 KiB |
BIN
images/hominins/acheulean-handaxes.jpg
Normal file
After Width: | Height: | Size: 191 KiB |
BIN
images/hominins/acheulean-tools.jpg
Normal file
After Width: | Height: | Size: 196 KiB |
BIN
images/hominins/australopithecus-afarensis-big-man.jpg
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
images/hominins/australopithecus-afarensis-map.png
Normal file
After Width: | Height: | Size: 526 KiB |
BIN
images/hominins/australopithecus-afarensis-selam.jpg
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
images/hominins/australopithecus-afarensis-teeth-2.jpg
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
images/hominins/australopithecus-afarensis-teeth.jpg
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
images/hominins/australopithecus-afarensis.jpg
Normal file
After Width: | Height: | Size: 353 KiB |
BIN
images/hominins/early-neanderthal.jpg
Normal file
After Width: | Height: | Size: 201 KiB |
BIN
images/hominins/early-neanderthal.jpg.jpg
Normal file
After Width: | Height: | Size: 201 KiB |
BIN
images/hominins/early-pre-neanderthal.jpg
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
images/hominins/foramen-magnum.gif
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
images/hominins/geographic-distribution.png
Normal file
After Width: | Height: | Size: 140 KiB |
BIN
images/hominins/handaxes.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
images/hominins/homo-ergaster.jpg
Normal file
After Width: | Height: | Size: 884 KiB |
BIN
images/hominins/homo-georgicus-map.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
images/hominins/homo-georgicus.jpg
Normal file
After Width: | Height: | Size: 149 KiB |
BIN
images/hominins/homo-habilis-2.png
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
images/hominins/homo-habilis-drawing.jpg
Normal file
After Width: | Height: | Size: 274 KiB |
BIN
images/hominins/homo-habilis.png
Normal file
After Width: | Height: | Size: 329 KiB |
BIN
images/hominins/homo-sapien.png
Normal file
After Width: | Height: | Size: 275 KiB |
BIN
images/hominins/neanderthal-map.png
Normal file
After Width: | Height: | Size: 131 KiB |
BIN
images/hominins/neanderthal-skull.jpg
Normal file
After Width: | Height: | Size: 170 KiB |
BIN
images/hominins/pre-neanderthal.jpg
Normal file
After Width: | Height: | Size: 183 KiB |
BIN
images/hominins/rock-chopper.jpg
Normal file
After Width: | Height: | Size: 148 KiB |
BIN
images/hominins/sahalenthropus-tchadensis-map.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
images/hominins/sahelanthropus-tchadensis-full.jpg
Normal file
After Width: | Height: | Size: 37 MiB |
BIN
images/hominins/sahelanthropus-tchadensis.jpg
Normal file
After Width: | Height: | Size: 213 KiB |
BIN
images/human-evolution.jpg
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
images/human-tail.png
Normal file
After Width: | Height: | Size: 702 KiB |
BIN
images/indian-rhino.jpg
Normal file
After Width: | Height: | Size: 560 KiB |
BIN
images/lucy-human-chimp-comparison.png
Normal file
After Width: | Height: | Size: 983 KiB |
BIN
images/naked-mole-rat.jpg
Normal file
After Width: | Height: | Size: 213 KiB |
BIN
images/natural-selection.jpg
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
images/palestine-mole-rat.jpg
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
images/radiometric-dating.jpg
Normal file
After Width: | Height: | Size: 91 KiB |
BIN
images/tiktaalik-fossil-0.jpg
Normal file
After Width: | Height: | Size: 4.0 MiB |
BIN
images/tiktaalik-fossil-1.jpg
Normal file
After Width: | Height: | Size: 600 KiB |
BIN
images/tiktaalik.png
Normal file
After Width: | Height: | Size: 302 KiB |
BIN
images/whale-fore-limbs.jpg
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
images/whale-skeleton.png
Normal file
After Width: | Height: | Size: 125 KiB |
5
impress/.jscsrc
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"preset": "jquery",
|
||||
// Since we check quotemarks already in jshint, this can be turned off
|
||||
"validateQuoteMarks": false
|
||||
}
|
17
impress/.jshintrc
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"globals": {
|
||||
"module": true
|
||||
},
|
||||
"boss": true,
|
||||
"browser": true,
|
||||
"curly": true,
|
||||
"esversion": 6,
|
||||
"eqeqeq": true,
|
||||
"eqnull": true,
|
||||
"expr": true,
|
||||
"immed": true,
|
||||
"noarg": true,
|
||||
"quotmark": "double",
|
||||
"undef": true,
|
||||
"unused": true
|
||||
}
|
6
impress/.npmignore
Normal file
@ -0,0 +1,6 @@
|
||||
/.*/
|
||||
/.*
|
||||
/bower.json
|
||||
/examples
|
||||
/extras/*
|
||||
/circle.yml
|
355
impress/DOCUMENTATION.md
Normal file
@ -0,0 +1,355 @@
|
||||
# Reference API
|
||||
|
||||
## HTML
|
||||
|
||||
### Root Element
|
||||
|
||||
impress.js requires a Root Element. All the content of the presentation will be created inside that element. It is not recommended to manipulate any of the styles, attributes or classes that are created by impress.js inside the Root Element after initialization.
|
||||
|
||||
**Example:**
|
||||
|
||||
```html
|
||||
<div id="impress"></div>
|
||||
```
|
||||
|
||||
### Step Element
|
||||
|
||||
A Step Element is an element that contains metadata that defines how it is going to be presented in the screen.
|
||||
A Step Element should contain a `.step` class and an optional `id` attribute.
|
||||
The content represents an html fragment that will be positioned at the center of the camera.
|
||||
In the Step Element, you can define a specific set of default attributes and positioning, that are documented below.
|
||||
|
||||
**Example:**
|
||||
|
||||
```html
|
||||
<div id="bored" class="step" data-x="-1000">
|
||||
<q>Aren’t you just <b>bored</b> with all those slides-based presentations?</q>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### 2D Coordinates Positioning (data-x, data-y)
|
||||
|
||||
Define the pixel based position in which the **center** of the [Step Element](#step-element) will be positioned inside the infinite canvas.
|
||||
|
||||
**Example:**
|
||||
|
||||
```html
|
||||
<div id="bored" class="step" data-x="-1000" data-y="-1500">
|
||||
<q>Aren’t you just <b>bored</b> with all those slides-based presentations?</q>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### 2D Scaling (data-scale)
|
||||
|
||||
Defines the scaling multiplier of the [Step Element](#step-element) relative to other Step Elements. For example, `data-scale="4"` means that the element will appear to be 4 times larger than the others. From the presentation and transitions point of view, it means that it will have to be scaled down (4 times) to make it back to its correct size.
|
||||
|
||||
**Example:**
|
||||
|
||||
```html
|
||||
<div id="title" class="step" data-x="0" data-y="0" data-scale="4">
|
||||
<span class="try">then you should try</span>
|
||||
<h1>impress.js<sup>*</sup></h1>
|
||||
<span class="footnote"><sup>*</sup> no rhyme intended</span>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### 2D Rotation (data-rotate)
|
||||
|
||||
Represents the amount of clockwise rotation of the element relative to 360 degrees.
|
||||
|
||||
**Example:**
|
||||
|
||||
```html
|
||||
<div id="its" class="step" data-x="850" data-y="3000" data-rotate="90" data-scale="5">
|
||||
<p>
|
||||
It’s a <strong>presentation tool</strong> <br>
|
||||
inspired by the idea behind <a href="http://prezi.com">prezi.com</a> <br>
|
||||
and based on the <strong>power of CSS3 transforms and transitions</strong> in modern browsers.
|
||||
</p>
|
||||
</div>
|
||||
```
|
||||
|
||||
|
||||
#### 3D Coordinates Positioning (data-z)
|
||||
|
||||
Define the pixel based position in which the **center** of the [Step Element](#step-element) will be positioned inside the infinite canvas on the third dimension (Z) axis. For example, if we use `data-z="-3000"`, it means that the [Step Element](#step-element) will be positioned far away from the camera (by 3000px).
|
||||
|
||||
**Example:**
|
||||
|
||||
```html
|
||||
<div id="tiny" class="step" data-x="2825" data-y="2325" data-z="-3000" data-rotate="300" data-scale="1">
|
||||
<p>and <b>tiny</b> ideas</p>
|
||||
</div>
|
||||
```
|
||||
|
||||
**Note:** The introduction of the [rel](src/plugins/rel/README.md) plugin includes a slight backward incompatible change.
|
||||
Previously the default value for `data-x`, `data-y` and `data-z` was zero. The `rel` plugin changes the default to inherit
|
||||
the value of the previous slide. This means, you need to explicitly set these values to zero, if they ever were non-zero.
|
||||
|
||||
|
||||
#### 3D Rotation (data-rotate-x, data-rotate-y, data-rotate-z)
|
||||
|
||||
You can not only position a [Step Element](#step-element) in 3D, but also rotate it around any axis.
|
||||
|
||||
**Example:**
|
||||
|
||||
The example below will get rotated by -40 degrees (40 degrees anticlockwise) around X axis and 10 degrees (clockwise) around Y axis.
|
||||
|
||||
You can of course rotate it around Z axis with `data-rotate-z` - it has exactly the same effect as `data-rotate` (these two are basically aliases).
|
||||
|
||||
```HTML
|
||||
<div id="its-in-3d" class="step" data-x="6200" data-y="4300" data-z="-100" data-rotate-x="-40" data-rotate-y="10" data-scale="2">
|
||||
<p>
|
||||
<span class="have">have</span>
|
||||
<span class="you">you</span>
|
||||
<span class="noticed">noticed</span>
|
||||
<span class="its">it’s</span>
|
||||
<span class="in">in</span>
|
||||
<b>3D<sup>*</sup></b>?
|
||||
</p>
|
||||
<span class="footnote">* beat that, prezi ;)</span>
|
||||
</div>
|
||||
```
|
||||
|
||||
#### 3D Rotation Order (data-rotate-order)
|
||||
|
||||
The order in which the CSS `rotateX(), rotateY(), rotateZ()` transforms are applied matters. This is because each rotation is relative to the then current position of the element.
|
||||
|
||||
By default the rotation order is `data-rotate-order="xyz"`. For some advanced uses you may need to change it. The demo presentation [3D rotations](examples/3D-rotations/index.html) sets this attribute to rotate some steps into positions that are impossible to reach with the default order.
|
||||
|
||||
|
||||
## CSS
|
||||
|
||||
### 4D States (.past, .present and .future classes)
|
||||
|
||||
The `.future` class is added to all [Step Elements](#step-element) that haven't been visited yet.
|
||||
|
||||
**Example:**
|
||||
|
||||
```CSS
|
||||
.future {
|
||||
display: none;
|
||||
}
|
||||
```
|
||||
|
||||
The `.present` class is added to the [Step Element](#step-element) that is currently at the center of the camera. This is useful to create animations inside the step once the camera navigates to it.
|
||||
|
||||
**Example:**
|
||||
|
||||
```CSS
|
||||
.present .rotating {
|
||||
transform: rotate(-10deg);
|
||||
transition-delay: 0.25s;
|
||||
}
|
||||
```
|
||||
|
||||
The `.past` class is added to all [Step Elements](#step-element) that have been visited at least once.
|
||||
|
||||
**Example:**
|
||||
|
||||
```CSS
|
||||
.past {
|
||||
display: none;
|
||||
}
|
||||
```
|
||||
|
||||
### Current Active Step (.active class)
|
||||
|
||||
The `.active` class is added to the [Step Element](#step-element) that is currently visible at the center of the camera.
|
||||
|
||||
**Example:**
|
||||
|
||||
```CSS
|
||||
.step {
|
||||
opacity: 0.3;
|
||||
transition: opacity 1s;
|
||||
}
|
||||
.step.active {
|
||||
opacity: 1
|
||||
}
|
||||
```
|
||||
|
||||
At the same time, the `impress-on-*` class is added to the body element, the class name represents the active [Step Element](#step-element) id. This allows for custom global styling, since you can't match a CSS class backwards from the active [Step Element](#step-element) to the `body`.
|
||||
|
||||
**Example:**
|
||||
|
||||
```CSS
|
||||
.impress-on-overview .step {
|
||||
opacity: 1;
|
||||
cursor: pointer;
|
||||
}
|
||||
.impress-on-step-1,
|
||||
.impress-on-step-2,
|
||||
.impress-on-step-3 {
|
||||
background: LightBlue;
|
||||
}
|
||||
```
|
||||
|
||||
### Progressive Enhancement (.impress-not-supported class)
|
||||
|
||||
The `.impress-not-supported` class is added to the `body` element if the browser doesn't support the features required by impress.js to work, it is useful to apply some fallback styles in the CSS.
|
||||
|
||||
It's not necessary to add it manually on the `body` element. If the script detects that the browser lacks important features it will add this class.
|
||||
|
||||
It is recommended to add the class manually to the `body` element though, because that means that users without JavaScript will also get fallback styles. When impress.js script detects that the browser supports all required features, the `.impress-not-support` class will be removed from the `body` element.
|
||||
|
||||
**Example:**
|
||||
|
||||
```CSS
|
||||
.impress-not-supported .step {
|
||||
display: inline-block;
|
||||
}
|
||||
```
|
||||
|
||||
## Plugins
|
||||
|
||||
Many new features are implemented as plugins. The [Plugins documentation](src/plugins/README.md) is the starting place to learn about those, as well as the README.md of [each plugin](src/plugins/).
|
||||
|
||||
|
||||
## JavaScript
|
||||
|
||||
### impress( [ id ] )
|
||||
|
||||
A factory function that creates the [ImpressAPI](#impressapi).
|
||||
|
||||
Accepts a [`String`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) that represents the id of the root element in the page. If omitted, impress.js will lookup for the element with the id "impress" by default.
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
var impressAPI = impress( "root" );
|
||||
```
|
||||
|
||||
### ImpressAPI
|
||||
|
||||
The main impress.js API that handles common operations of impress.js, listed below.
|
||||
|
||||
#### .init()
|
||||
|
||||
Initializes impress.js globally in the page. Only one instance of impress.js is supported per document.
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
impress().init();
|
||||
```
|
||||
|
||||
Triggers the `impress:init` event in the [Root Element](#root-element) after the presentation is initialized.
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
var rootElement = document.getElementById( "impress" );
|
||||
rootElement.addEventListener( "impress:init", function() {
|
||||
console.log( "Impress init" );
|
||||
});
|
||||
impress().init();
|
||||
```
|
||||
|
||||
#### .tear()
|
||||
|
||||
Resets the DOM to its original state, as it was before `init()` was called.
|
||||
|
||||
This can be used to "unload" impress.js. A particular use case for this is, if you want to do
|
||||
dynamic changes to the presentation, you can do a teardown, apply changes, then call `init()`
|
||||
again. (In most cases, this will not cause flickering or other visible effects to the user,
|
||||
beyond the intended dynamic changes.)
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
impress().tear();
|
||||
```
|
||||
|
||||
#### .next()
|
||||
|
||||
Navigates to the next step of the presentation using the [`goto()` function](#impressgotostepindexstepelementidstepelement-duration).
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
var api = impress();
|
||||
api.init();
|
||||
api.next();
|
||||
```
|
||||
|
||||
#### impress().prev()
|
||||
|
||||
Navigates to the previous step of the presentation using the [`goto()` function](#impressgotostepindexstepelementidstepelement-duration).
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
var api = impress();
|
||||
api.init();
|
||||
api.prev();
|
||||
```
|
||||
|
||||
#### impress().goto( stepIndex | stepElementId | stepElement, [ duration ] )
|
||||
|
||||
Accepts a [`Number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) that represents the step index.
|
||||
|
||||
Navigates to the step given the provided step index.
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
var api = impress();
|
||||
api.init();
|
||||
api.goto(7);
|
||||
```
|
||||
|
||||
Accepts a [`String`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) that represents the [Step Element](#step-element) id.
|
||||
|
||||
Navigates to the step given the provided [Step Element](#step-element) id.
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
var api = impress();
|
||||
api.init();
|
||||
api.goto( "overview" );
|
||||
```
|
||||
|
||||
Accepts an [`HTMLElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement) that represents the [Step Element](#step-element).
|
||||
|
||||
Navigates to the step given the provided [Step Element](#step-element).
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
var overview = document.getElementById( "overview" );
|
||||
var api = impress();
|
||||
api.init();
|
||||
api.goto( overview );
|
||||
```
|
||||
|
||||
Accepts an optional [Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) in the last argument that represents the duration of the transition in milliseconds. If not provided, the default transition duration for the presentation will be used.
|
||||
|
||||
Triggers the `impress:stepenter` event in the [Root Element](#root-element) when the presentation navigates to the target [Step Element](#step-element).
|
||||
|
||||
**Example:**
|
||||
|
||||
```JavaScript
|
||||
var rootElement = document.getElementById( "impress" );
|
||||
rootElement.addEventListener( "impress:stepenter", function(event) {
|
||||
var currentStep = event.target;
|
||||
console.log( "Entered the Step Element '" + currentStep.id + "'" );
|
||||
});
|
||||
```
|
||||
|
||||
Triggers the `impress:stepleave` event in the [Root Element](#root-element) when the presentation navigates away from the current [Step Element](#step-element).
|
||||
|
||||
**Example:**
|
||||
```JavaScript
|
||||
var rootElement = document.getElementById( "impress" );
|
||||
rootElement.addEventListener( "impress:stepleave", function(event) {
|
||||
var currentStep = event.target;
|
||||
var nextStep = event.detail.next;
|
||||
console.log( "Left the Step Element '" + currentStep.id + "' and about to enter '" + nextStep.id );
|
||||
});
|
||||
```
|
||||
|
||||
# Improve The Docs
|
||||
|
||||
Did you find something that can be improved? Then [create an issue](https://github.com/impress/impress.js/issues/new) so that we can discuss it!
|
21
impress/LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2011-2016 Bartek Szopka
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
126
impress/README.md
Normal file
@ -0,0 +1,126 @@
|
||||
impress.js
|
||||
============
|
||||
|
||||
[![CircleCI](https://circleci.com/gh/impress/impress.js.svg?style=svg)](https://circleci.com/gh/impress/impress.js)
|
||||
|
||||
It's a presentation framework based on the power of CSS3 transforms and
|
||||
transitions in modern browsers and inspired by the idea behind prezi.com.
|
||||
|
||||
**WARNING**
|
||||
|
||||
impress.js may not help you if you have nothing interesting to say ;)
|
||||
|
||||
|
||||
HOW TO USE IT
|
||||
---------------
|
||||
|
||||
### Checking out and initializing the git repository
|
||||
|
||||
git clone --recursive https://github.com/impress/impress.js.git
|
||||
cd impress.js
|
||||
|
||||
Note: For a minimal checkout, omit the `--recursive` option. This will leave out extra plugins.
|
||||
|
||||
**Stable releases**
|
||||
|
||||
New features and fixes are continuously merged into the master branch, which is what the above command will check out. For the latest stable release, see the [Github Releases page](https://github.com/impress/impress.js/releases).
|
||||
|
||||
|
||||
### Documentation
|
||||
|
||||
|
||||
Reference documentation of core impress.js features and API you can find it in [DOCUMENTATION.md](DOCUMENTATION.md).
|
||||
|
||||
The [HTML source code](index.html) of the official [impress.js demo](http://impress.github.io/impress.js/) serves as a good example usage and contains comments explaning various features of impress.js. For more information about styling you can look into [CSS code](css/impress-demo.css) which shows how classes provided by impress.js can be used. Last but not least [JavaScript code of impress.js](js/impress.js) has some useful comments if you are interested in how everything works. Feel free to explore!
|
||||
|
||||
### Official demo
|
||||
|
||||
[impress.js demo](http://impress.github.io/impress.js/) by [@bartaz](http://twitter.com/bartaz)
|
||||
|
||||
### Examples and demos
|
||||
|
||||
The [Classic Slides](http://impress.github.io/impress.js/examples/classic-slides/) demo is targeted towards beginners, or can be used as a template for presentations that look like the traditional PowerPoint slide deck. Over time, it also grew into the example presentation that uses most of the features and addons available.
|
||||
|
||||
More examples and demos can be found on [Examples and demos wiki page](http://github.com/impress/impress.js/wiki/Examples-and-demos).
|
||||
|
||||
Feel free to add your own example presentations (or websites) there.
|
||||
|
||||
### Other tutorials and learning resources
|
||||
|
||||
If you want to learn even more there is a [list of tutorials and other learning resources](https://github.com/impress/impress.js/wiki/impress.js-tutorials-and-other-learning-resources)
|
||||
on the wiki, too.
|
||||
|
||||
There is also a book available about [Building impressive presentations with impress.js](http://www.packtpub.com/building-impressive-presentations-with-impressjs/book) by Rakhitha Nimesh Ratnayake.
|
||||
|
||||
You may want to check out the sibling project [Impressionist](https://github.com/henrikingo/impressionist): a 3D GUI editor that can help you in creating impress.js presentations.
|
||||
|
||||
### Mailing list
|
||||
|
||||
You're welcome to ask impress.js related questions on the [impressionist-presentations](https://groups.google.com/forum/#!forum/impressionist-presentations) mailing list.
|
||||
|
||||
|
||||
REPOSITORY STRUCTURE
|
||||
--------------------
|
||||
|
||||
* [index.html](index.html): This is the official impress.js demo, showcasing all of the features of the original impress.js, as well as some new plugins as we add them.
|
||||
* As already mentioned, this file is well commented and acts as the official tutorial.
|
||||
* [examples/](examples/): Contains several demos showcasing additional features available.
|
||||
* [Classic Slides](examples/classic-slides/index.html) is a simple demo that that you can use as template if you want to create very simple, rectangular, PowerPoint-like presentations.
|
||||
* [src/](src/): The main file is [src/impress.js](src/impress.js). Additional functionality is implemented as plugins in [src/plugins/](src/plugins/).
|
||||
* See [src/plugins/README.md](src/plugins/README.md) for information about the plugin API and how to write plugins.
|
||||
* [test/](test/): Contains QUnit and Syn libraries that we use for writing tests, as well as some test coverage for core functionality. (Yes, more tests are much welcome.) Tests for plugins are in the directory of each plugin.
|
||||
* [js/](js/): Contains [js/impress.js](js/impress.js), which contains a concatenation of the core `src/impress.js` and all the plugins. Traditionally this is the file that you'll link to in a browser. In fact both the demo and test files do exactly that.
|
||||
* [css/](css/): Contains a CSS file used by the demo. This file is **not required for using impress.js** in your own presentations. Impress.js creates the CSS it needs dynamically.
|
||||
* [extras/](extras/) contains plugins that for various reasons aren't enabled by default. You have to explicitly add them with their own `script` element to use them.
|
||||
* [build.js](build.js): Simple build file that creates `js/impress.js`. It also creates a minified version `impress.min.js`, but that one is not included in the github repository.
|
||||
* [package.json](build.js): An NPM package specification. This was mainly added so you can easily install [buildify](https://www.npmjs.com/package/buildify) and run `node build.js`. Other than the build process, which is really just doing roughly `cat src/impress.js src/plugins/*/*.js > js/impress.js`, and testing, `impress.js` itself doesn't depend on Node or any NPM modules.
|
||||
* [bower.json](bower.json): A Bower package file. We also don't depend on Bower, but provide this file if you want to use it.
|
||||
|
||||
WANT TO CONTRIBUTE?
|
||||
---------------------
|
||||
|
||||
For developers, once you've made changes to the code, you should run these commands for testing:
|
||||
|
||||
npm run build
|
||||
npm run test
|
||||
npm run lint
|
||||
|
||||
Note that running `firefox qunit_test_runner.html` is usually more informative than running `karma` with `npm run test`. They both run the same tests.
|
||||
|
||||
More info about the [src/](src/) directory can be found in [src/plugins/README.md](src/plugins/README.md).
|
||||
|
||||
|
||||
ABOUT THE NAME
|
||||
----------------
|
||||
|
||||
impress.js name is [courtesy of @skuzniak](http://twitter.com/skuzniak/status/143627215165333504).
|
||||
|
||||
It's an (un)fortunate coincidence that a Open/LibreOffice presentation tool is called Impress ;)
|
||||
|
||||
Reference API
|
||||
--------------
|
||||
|
||||
See the [Reference API](DOCUMENTATION.md)
|
||||
|
||||
BROWSER SUPPORT
|
||||
-----------------
|
||||
|
||||
The design goal for impress.js has been to showcase awesome CSS3 features as found in modern browser versions. We also use some new DOM functionality, and specifically do not use jQuery or any other JavaScript libraries, nor our own functions, to support older browsers. In general, recent versions of Firefox and Chrome are known to work well. Reportedly IE now works too.
|
||||
|
||||
The typical use case for impress.js is to create presentations that you present from your own laptop, with a browser version you know works well. Some people also use impress.js successfully to embed animations or presentations in a web page, however, be aware that in this some of your visitors may not see the presentation correctly, or at all.
|
||||
|
||||
In particular, impress.js makes use of the following JS and CSS features:
|
||||
|
||||
* [DataSet API](http://caniuse.com/#search=dataset)
|
||||
* [ClassList API](http://caniuse.com/#search=classlist)
|
||||
* [CSS 3D Transforms](http://caniuse.com/#search=css%203d)
|
||||
* [CSS Transitions](http://caniuse.com/#search=css%20transition)
|
||||
|
||||
COPYRIGHT AND LICENSE
|
||||
---------------------
|
||||
|
||||
Copyright 2011-2016 Bartek Szopka
|
||||
|
||||
Copyright 2015-2017 Henrik Ingo
|
||||
|
||||
Released under the MIT [License](LICENSE)
|
BIN
impress/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
17
impress/bower.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "impress-js",
|
||||
"description": "It's a presentation framework based on the power of CSS3 transforms and transitions in modern browsers and inspired by the idea behind prezi.com",
|
||||
"homepage": "https://github.com/bartaz/impress.js",
|
||||
"license" : ["http://bartaz.mit-license.org/", "http://www.gnu.org/licenses/"],
|
||||
"main": [
|
||||
"./js/impress.js"
|
||||
],
|
||||
"keywords": [
|
||||
"slideshow",
|
||||
"css3"
|
||||
],
|
||||
"author": {
|
||||
"name": "Bartek Szopka",
|
||||
"web": "http://bartaz.github.com"
|
||||
}
|
||||
}
|
60
impress/build.js
Normal file
@ -0,0 +1,60 @@
|
||||
var buildify = require('buildify');
|
||||
|
||||
|
||||
buildify()
|
||||
.load('src/impress.js')
|
||||
.perform(function(content){
|
||||
return "// This file was automatically generated from files in src/ directory.\n\n" + content;
|
||||
})
|
||||
// Libraries from src/lib
|
||||
.concat(['src/lib/gc.js'])
|
||||
.concat(['src/lib/util.js'])
|
||||
// Plugins from src/plugins
|
||||
.concat(['src/plugins/autoplay/autoplay.js',
|
||||
'src/plugins/blackout/blackout.js',
|
||||
'src/plugins/extras/extras.js',
|
||||
'src/plugins/form/form.js',
|
||||
'src/plugins/goto/goto.js',
|
||||
'src/plugins/help/help.js',
|
||||
'src/plugins/impressConsole/impressConsole.js',
|
||||
'src/plugins/media/media.js',
|
||||
'src/plugins/mobile/mobile.js',
|
||||
'src/plugins/mouse-timeout/mouse-timeout.js',
|
||||
'src/plugins/navigation/navigation.js',
|
||||
'src/plugins/navigation-ui/navigation-ui.js',
|
||||
'src/plugins/progress/progress.js',
|
||||
'src/plugins/rel/rel.js',
|
||||
'src/plugins/resize/resize.js',
|
||||
'src/plugins/skip/skip.js',
|
||||
'src/plugins/stop/stop.js',
|
||||
'src/plugins/substep/substep.js',
|
||||
'src/plugins/touch/touch.js',
|
||||
'src/plugins/toolbar/toolbar.js'])
|
||||
.save('js/impress.js');
|
||||
/*
|
||||
* Disabled until uglify supports ES6: https://github.com/mishoo/UglifyJS2/issues/448
|
||||
.uglify()
|
||||
.save('js/impress.min.js');
|
||||
*/
|
||||
|
||||
|
||||
/* Auto generate an index.html that lists all the directories under examples/
|
||||
* This is useful for gh-pages, so you can link to http://impress.github.io/impress.js/examples
|
||||
*/
|
||||
var ls = require('ls');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
var html_list = '<ul><br />\n'
|
||||
ls( 'examples/*', { type: 'dir' }).forEach(function(dir) {
|
||||
html_list += ' <li><a href="' + dir['file'] + '/">' + dir['name'] + '</a></li>\n';
|
||||
});
|
||||
html_list += '</ul>\n'
|
||||
|
||||
var html = '<html>\n<head>\n<title>Example presentations</title>\n</head>\n<body>'
|
||||
html += '<h1>Example presentations</h1>\n' + html_list
|
||||
html += '</body>\n</html>'
|
||||
|
||||
var filename = path.resolve(__dirname, 'examples', 'index.html');
|
||||
fs.writeFileSync(filename, html);
|
||||
console.log(filename);
|
9
impress/circle.yml
Normal file
@ -0,0 +1,9 @@
|
||||
machine:
|
||||
node:
|
||||
version: 6
|
||||
|
||||
test:
|
||||
override:
|
||||
- npm run lint -s
|
||||
- npm run test -s
|
||||
- npm run test:sauce
|
734
impress/css/impress-demo.css
Normal file
@ -0,0 +1,734 @@
|
||||
/*
|
||||
So you like the style of impress.js demo?
|
||||
Or maybe you are just curious how it was done?
|
||||
|
||||
You couldn't find a better place to find out!
|
||||
|
||||
Welcome to the stylesheet impress.js demo presentation.
|
||||
|
||||
Please remember that it is not meant to be a part of impress.js and is
|
||||
not required by impress.js.
|
||||
I expect that anyone creating a presentation for impress.js would create
|
||||
their own set of styles.
|
||||
|
||||
But feel free to read through it and learn how to get the most of what
|
||||
impress.js provides.
|
||||
|
||||
And let me be your guide.
|
||||
|
||||
Shall we begin?
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
We start with a good ol' reset.
|
||||
That's the one by Eric Meyer http://meyerweb.com/eric/tools/css/reset/
|
||||
|
||||
You can probably argue if it is needed here, or not, but for sure it
|
||||
doesn't do any harm and gives us a fresh start.
|
||||
*/
|
||||
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||
article, aside, canvas, details, embed,
|
||||
figure, figcaption, footer, header, hgroup,
|
||||
menu, nav, output, ruby, section, summary,
|
||||
time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Now here is when interesting things start to appear.
|
||||
|
||||
We set up <body> styles with default font and nice gradient in the background.
|
||||
And yes, there is a lot of repetition there because of -prefixes but we don't
|
||||
want to leave anybody behind.
|
||||
*/
|
||||
body {
|
||||
font-family: 'PT Sans', sans-serif;
|
||||
min-height: 740px;
|
||||
|
||||
background: rgb(215, 215, 215);
|
||||
background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 500, from(rgb(240, 240, 240)), to(rgb(190, 190, 190)));
|
||||
background: -webkit-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
|
||||
background: -moz-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
|
||||
background: -ms-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
|
||||
background: -o-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
|
||||
background: radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
|
||||
}
|
||||
|
||||
/*
|
||||
Now let's bring some text styles back ...
|
||||
*/
|
||||
b, strong { font-weight: bold }
|
||||
i, em { font-style: italic }
|
||||
|
||||
/*
|
||||
... and give links a nice look.
|
||||
*/
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
padding: 0 0.1em;
|
||||
background: rgba(255,255,255,0.5);
|
||||
text-shadow: -1px -1px 2px rgba(100,100,100,0.9);
|
||||
border-radius: 0.2em;
|
||||
|
||||
-webkit-transition: 0.5s;
|
||||
-moz-transition: 0.5s;
|
||||
-ms-transition: 0.5s;
|
||||
-o-transition: 0.5s;
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
background: rgba(255,255,255,1);
|
||||
text-shadow: -1px -1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
/*
|
||||
Because the main point behind the impress.js demo is to demo impress.js
|
||||
we display a fallback message for users with browsers that don't support
|
||||
all the features required by it.
|
||||
|
||||
All of the content will be still fully accessible for them, but I want
|
||||
them to know that they are missing something - that's what the demo is
|
||||
about, isn't it?
|
||||
|
||||
And then we hide the message, when support is detected in the browser.
|
||||
*/
|
||||
|
||||
.fallback-message {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.3;
|
||||
|
||||
width: 780px;
|
||||
padding: 10px 10px 0;
|
||||
margin: 20px auto;
|
||||
|
||||
border: 1px solid #E4C652;
|
||||
border-radius: 10px;
|
||||
background: #EEDC94;
|
||||
}
|
||||
|
||||
.fallback-message p {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.impress-supported .fallback-message {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
Now let's style the presentation steps.
|
||||
|
||||
We start with basics to make sure it displays correctly in everywhere ...
|
||||
*/
|
||||
|
||||
.step {
|
||||
position: relative;
|
||||
width: 900px;
|
||||
padding: 40px;
|
||||
margin: 20px auto;
|
||||
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
font-family: 'PT Serif', georgia, serif;
|
||||
font-size: 48px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/*
|
||||
... and we enhance the styles for impress.js.
|
||||
|
||||
Basically we remove the margin and make inactive steps a little bit transparent.
|
||||
*/
|
||||
.impress-enabled .step {
|
||||
margin: 0;
|
||||
opacity: 0.3;
|
||||
|
||||
-webkit-transition: opacity 1s;
|
||||
-moz-transition: opacity 1s;
|
||||
-ms-transition: opacity 1s;
|
||||
-o-transition: opacity 1s;
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
.impress-enabled .step.active { opacity: 1 }
|
||||
|
||||
/*
|
||||
These 'slide' step styles were heavily inspired by HTML5 Slides:
|
||||
http://html5slides.googlecode.com/svn/trunk/styles.css
|
||||
|
||||
;)
|
||||
|
||||
They cover everything what you see on first three steps of the demo.
|
||||
*/
|
||||
.slide {
|
||||
display: block;
|
||||
|
||||
width: 900px;
|
||||
height: 700px;
|
||||
padding: 40px 60px;
|
||||
|
||||
background-color: white;
|
||||
border: 1px solid rgba(0, 0, 0, .3);
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
|
||||
|
||||
color: rgb(102, 102, 102);
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .1);
|
||||
|
||||
font-family: 'Open Sans', Arial, sans-serif;
|
||||
font-size: 30px;
|
||||
line-height: 36px;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
|
||||
.slide q {
|
||||
display: block;
|
||||
font-size: 50px;
|
||||
line-height: 72px;
|
||||
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
.slide q strong {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/*
|
||||
And now we start to style each step separately.
|
||||
|
||||
I agree that this may be not the most efficient, object-oriented and
|
||||
scalable way of styling, but most of steps have quite a custom look
|
||||
and typography tricks here and there, so they had to be styled separately.
|
||||
|
||||
First is the title step with a big <h1> (no room for padding) and some
|
||||
3D positioning along Z axis.
|
||||
*/
|
||||
|
||||
#title {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#title .try {
|
||||
font-size: 64px;
|
||||
position: absolute;
|
||||
top: -0.5em;
|
||||
left: 1.5em;
|
||||
|
||||
-webkit-transform: translateZ(20px);
|
||||
-moz-transform: translateZ(20px);
|
||||
-ms-transform: translateZ(20px);
|
||||
-o-transform: translateZ(20px);
|
||||
transform: translateZ(20px);
|
||||
}
|
||||
|
||||
#title h1 {
|
||||
font-size: 180px;
|
||||
|
||||
-webkit-transform: translateZ(50px);
|
||||
-moz-transform: translateZ(50px);
|
||||
-ms-transform: translateZ(50px);
|
||||
-o-transform: translateZ(50px);
|
||||
transform: translateZ(50px);
|
||||
}
|
||||
|
||||
#title .footnote {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
/*
|
||||
Second step is nothing special, just a text with a link, so it doesn't need
|
||||
any special styling.
|
||||
|
||||
Let's move to 'big thoughts' with centered text and custom font sizes.
|
||||
*/
|
||||
#big {
|
||||
width: 600px;
|
||||
text-align: center;
|
||||
font-size: 60px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
#big strong,
|
||||
#big b {
|
||||
display: block;
|
||||
font-size: 250px;
|
||||
line-height: 250px;
|
||||
}
|
||||
|
||||
#big .thoughts {
|
||||
font-size: 90px;
|
||||
line-height: 150px;
|
||||
}
|
||||
|
||||
/*
|
||||
'Tiny ideas' just need some tiny styling.
|
||||
*/
|
||||
#tiny {
|
||||
width: 500px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/*
|
||||
This step has some animated text ...
|
||||
*/
|
||||
#ing { width: 500px }
|
||||
|
||||
/*
|
||||
... so we define display to `inline-block` to enable transforms and
|
||||
transition duration to 0.5s ...
|
||||
*/
|
||||
#ing b {
|
||||
display: inline-block;
|
||||
-webkit-transition: 0.5s;
|
||||
-moz-transition: 0.5s;
|
||||
-ms-transition: 0.5s;
|
||||
-o-transition: 0.5s;
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
/*
|
||||
... and we want 'positioning` word to move up a bit when the step gets
|
||||
`present` class ...
|
||||
*/
|
||||
#ing.present .positioning {
|
||||
-webkit-transform: translateY(-10px);
|
||||
-moz-transform: translateY(-10px);
|
||||
-ms-transform: translateY(-10px);
|
||||
-o-transform: translateY(-10px);
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
|
||||
/*
|
||||
... 'rotating' to rotate a quarter of a second later ...
|
||||
*/
|
||||
#ing.present .rotating {
|
||||
-webkit-transform: rotate(-10deg);
|
||||
-moz-transform: rotate(-10deg);
|
||||
-ms-transform: rotate(-10deg);
|
||||
-o-transform: rotate(-10deg);
|
||||
transform: rotate(-10deg);
|
||||
|
||||
-webkit-transition-delay: 0.25s;
|
||||
-moz-transition-delay: 0.25s;
|
||||
-ms-transition-delay: 0.25s;
|
||||
-o-transition-delay: 0.25s;
|
||||
transition-delay: 0.25s;
|
||||
}
|
||||
|
||||
/*
|
||||
... and 'scaling' to scale down after another quarter of a second.
|
||||
*/
|
||||
#ing.present .scaling {
|
||||
-webkit-transform: scale(0.7);
|
||||
-moz-transform: scale(0.7);
|
||||
-ms-transform: scale(0.7);
|
||||
-o-transform: scale(0.7);
|
||||
transform: scale(0.7);
|
||||
|
||||
-webkit-transition-delay: 0.5s;
|
||||
-moz-transition-delay: 0.5s;
|
||||
-ms-transition-delay: 0.5s;
|
||||
-o-transition-delay: 0.5s;
|
||||
transition-delay: 0.5s;
|
||||
}
|
||||
|
||||
/*
|
||||
The 'imagination' step is again some boring font-sizing.
|
||||
*/
|
||||
|
||||
#imagination {
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
#imagination .imagination {
|
||||
font-size: 78px;
|
||||
}
|
||||
|
||||
/*
|
||||
There is nothing really special about 'use the source, Luke' step, too,
|
||||
except maybe of the Yoda background.
|
||||
|
||||
As you can see below I've 'hard-coded' it in data URL.
|
||||
That's not the best way to serve images, but because that's just this one
|
||||
I decided it will be OK to have it this way.
|
||||
|
||||
Just make sure you don't blindly copy this approach.
|
||||
*/
|
||||
#source {
|
||||
width: 700px;
|
||||
padding-bottom: 300px;
|
||||
|
||||
/* Yoda Icon :: Pixel Art from Star Wars http://www.pixeljoint.com/pixelart/1423.htm */
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAEYCAMAAACwUBm+AAAAAXNSR0IArs4c6QAAAKtQTFRFsAAAvbWSLUUrLEQqY1s8UYJMqJ1vNTEgOiIdIzYhjIFVLhsXZ6lgSEIsP2U8JhcCVzMsSXZEgXdOO145XJdWOl03LzAYMk4vSXNExr+hwcuxRTs1Qmk+RW9Am49eFRANQz4pUoNMQWc+OSMDTz0wLBsCNVMxa2NBOyUDUoNNSnlEWo9VRGxAVzYFl6tXCggHbLNmMUIcHhwTXkk5f3VNRT8wUT8xAAAACQocRBWFFwAAAAF0Uk5TAEDm2GYAAAPCSURBVHja7d3JctNAFIZRMwRCCGEmzPM8z/D+T8bu/ptbXXJFdij5fMt2Wuo+2UgqxVmtttq5WVotLzBgwIABAwYMGDCn0qVqbo69psPqVpWx+1XG5iaavF8wYMCAAQMGDBgwi4DJ6Y6qkxB1HNlcN3a92gbR5P2CAQMGDBgwYMCAWSxMlrU+UY5yu2l9okfV4bAxUVbf7TJnAwMGDBgwYMCAAbMLMHeqbGR82Zy+VR1Ht81nVca6R+UdTLaU24Ruzd3qM/e4yjnAgAEDBgwYMGDA7AJMd1l/3NRdVGcj3eX/2WEhCmDGxnM7yqygu8XIPjJj8iN/MGDAgAEDBgwYMAuDGb8q0RGlLCHLv1t9qDKWn3vdNHVuEI6HPaxO9Jo3GDBgwIABAwYMmIXBdC9ShGgMk+XnkXUeuGcsP/e1+lhNnZsL/G5Vs3OAAQMGDBgwYMCAWSxMR3SzOmraG5atdy9wZKzb+vg16qyqe2FltbnAgAEDBgwYMGDALAxmTJSuN3WA76rnVca6GTnemGN1WoEBAwYMGDBgwIBZGMxUomy4+xO899V4LAg5Xnc2MGDAgAEDBgwYMGA218Wq+2K1LDqvY9xZu8zN8fICdM6btYABAwYMGDBgwIABMzfH0+pGU5afze2tXebmeAfVz+p8BQYMGDBgwIABAwbMPBzZ+oWmfJrln1273FhkbHzee9WWbw7AgAEDBgwYMGDALAKm43hcdctKgblcPamOhuXnXlY5Xs6bsW4FGyQCAwYMGDBgwIABswiYMceZKgvMo+h8mrHLTdn676rj+FEFoTtHd8MwOxEYMGDAgAEDBgyYRcBM5UhXqiymW3R3c9ARhWO/OmjqfjVZy+xEYMCAAQMGDBgwYBYG073OnCV0RFNhMhaOa9WfKmOB6XjHMN1tQmaAAQMGDBgwYMCA2VWY7vXjz1U4croAzgPztwIDBgwYMGDAgAEDZhswh035NBw59Dww3RgYMGDAgAEDBgwYMJuD6f4tXT7NUqfCdBvZLkxXdgQGDBgwYMCAAQNmt2DGj8WzwAfV/w7T/aq7mxwwYMCAAQMGDBgwuwqTOo7uTwTngflSzQ3TdaJvAwEDBgwYMGDAgAED5gSvgbyo5oHZ4Pc+gwEDBgwYMGDAgAEzhOm+5G0qTGaAAQMGDBgwYMCAAXNaMOcnls3tNwWm+zRzp54NDBgwYMCAAQMGDJh5YNL36k1TLuGvVq+qnKMbS5n7tulT9asCAwYMGDBgwIABA2ZumKuztLnjgQEDBgwYMGDAgNl5mH/4/ltKA6vBNAAAAABJRU5ErkJggg==);
|
||||
background-position: bottom right;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#source q {
|
||||
font-size: 60px;
|
||||
}
|
||||
|
||||
/*
|
||||
And the "it's in 3D" step again brings some 3D typography - just for fun.
|
||||
|
||||
Because we want to position <span> elements in 3D we set transform-style to
|
||||
`preserve-3d` on the paragraph.
|
||||
It is not needed by webkit browsers, but it is in Firefox. It's hard to say
|
||||
which behaviour is correct as 3D transforms spec is not very clear about it.
|
||||
*/
|
||||
#its-in-3d p {
|
||||
-webkit-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d; /* Y U need this Firefox?! */
|
||||
-ms-transform-style: preserve-3d;
|
||||
-o-transform-style: preserve-3d;
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
/*
|
||||
Below we position each word separately along Z axis and we want it to transition
|
||||
to default position in 0.5s when the step gets `present` class.
|
||||
|
||||
Quite a simple idea, but lot's of styles and prefixes.
|
||||
*/
|
||||
#its-in-3d span,
|
||||
#its-in-3d b {
|
||||
display: inline-block;
|
||||
-webkit-transform: translateZ(40px);
|
||||
-moz-transform: translateZ(40px);
|
||||
-ms-transform: translateZ(40px);
|
||||
-o-transform: translateZ(40px);
|
||||
transform: translateZ(40px);
|
||||
|
||||
-webkit-transition: 0.5s;
|
||||
-moz-transition: 0.5s;
|
||||
-ms-transition: 0.5s;
|
||||
-o-transition: 0.5s;
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
#its-in-3d .have {
|
||||
-webkit-transform: translateZ(-40px);
|
||||
-moz-transform: translateZ(-40px);
|
||||
-ms-transform: translateZ(-40px);
|
||||
-o-transform: translateZ(-40px);
|
||||
transform: translateZ(-40px);
|
||||
}
|
||||
|
||||
#its-in-3d .you {
|
||||
-webkit-transform: translateZ(20px);
|
||||
-moz-transform: translateZ(20px);
|
||||
-ms-transform: translateZ(20px);
|
||||
-o-transform: translateZ(20px);
|
||||
transform: translateZ(20px);
|
||||
}
|
||||
|
||||
#its-in-3d .noticed {
|
||||
-webkit-transform: translateZ(-40px);
|
||||
-moz-transform: translateZ(-40px);
|
||||
-ms-transform: translateZ(-40px);
|
||||
-o-transform: translateZ(-40px);
|
||||
transform: translateZ(-40px);
|
||||
}
|
||||
|
||||
#its-in-3d .its {
|
||||
-webkit-transform: translateZ(60px);
|
||||
-moz-transform: translateZ(60px);
|
||||
-ms-transform: translateZ(60px);
|
||||
-o-transform: translateZ(60px);
|
||||
transform: translateZ(60px);
|
||||
}
|
||||
|
||||
#its-in-3d .in {
|
||||
-webkit-transform: translateZ(-10px);
|
||||
-moz-transform: translateZ(-10px);
|
||||
-ms-transform: translateZ(-10px);
|
||||
-o-transform: translateZ(-10px);
|
||||
transform: translateZ(-10px);
|
||||
}
|
||||
|
||||
#its-in-3d .footnote {
|
||||
font-size: 32px;
|
||||
|
||||
-webkit-transform: translateZ(-10px);
|
||||
-moz-transform: translateZ(-10px);
|
||||
-ms-transform: translateZ(-10px);
|
||||
-o-transform: translateZ(-10px);
|
||||
transform: translateZ(-10px);
|
||||
}
|
||||
|
||||
#its-in-3d.present span,
|
||||
#its-in-3d.present b {
|
||||
-webkit-transform: translateZ(0px);
|
||||
-moz-transform: translateZ(0px);
|
||||
-ms-transform: translateZ(0px);
|
||||
-o-transform: translateZ(0px);
|
||||
transform: translateZ(0px);
|
||||
}
|
||||
|
||||
/*
|
||||
The last step is an overview.
|
||||
There is no content in it, so we make sure it's not visible because we want
|
||||
to be able to click on other steps.
|
||||
|
||||
*/
|
||||
#overview { display: none }
|
||||
|
||||
/*
|
||||
We also make other steps visible and give them a pointer cursor using the
|
||||
`impress-on-` class.
|
||||
*/
|
||||
.impress-on-overview .step {
|
||||
opacity: 1;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*
|
||||
This version of impress.js supports plugins, and in particular, a UI toolbar
|
||||
plugin that allows easy navigation between steps and autoplay.
|
||||
*/
|
||||
.impress-enabled div#impress-toolbar {
|
||||
position: fixed;
|
||||
right: 1px;
|
||||
bottom: 1px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
.impress-enabled div#impress-toolbar > span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
With help from the mouse-timeout plugin, we can hide the toolbar and
|
||||
have it show only when you move/click/touch the mouse.
|
||||
*/
|
||||
body.impress-mouse-timeout div#impress-toolbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
In fact, we can hide the mouse cursor itself too, when mouse isn't used.
|
||||
*/
|
||||
body.impress-mouse-timeout {
|
||||
cursor: none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Now, when we have all the steps styled let's give users a hint how to navigate
|
||||
around the presentation.
|
||||
|
||||
The best way to do this would be to use JavaScript, show a delayed hint for a
|
||||
first time users, then hide it and store a status in cookie or localStorage...
|
||||
|
||||
But I wanted to have some CSS fun and avoid additional scripting...
|
||||
|
||||
Let me explain it first, so maybe the transition magic will be more readable
|
||||
when you read the code.
|
||||
|
||||
First of all I wanted the hint to appear only when user is idle for a while.
|
||||
You can't detect the 'idle' state in CSS, but I delayed a appearing of the
|
||||
hint by 5s using transition-delay.
|
||||
|
||||
You also can't detect in CSS if the user is a first-time visitor, so I had to
|
||||
make an assumption that I'll only show the hint on the first step. And when
|
||||
the step is changed hide the hint, because I can assume that user already
|
||||
knows how to navigate.
|
||||
|
||||
To summarize it - hint is shown when the user is on the first step for longer
|
||||
than 5 seconds.
|
||||
|
||||
The other problem I had was caused by the fact that I wanted the hint to fade
|
||||
in and out. It can be easily achieved by transitioning the opacity property.
|
||||
But that also meant that the hint was always on the screen, even if totally
|
||||
transparent. It covered part of the screen and you couldn't correctly clicked
|
||||
through it.
|
||||
Unfortunately you cannot transition between display `block` and `none` in pure
|
||||
CSS, so I needed a way to not only fade out the hint but also move it out of
|
||||
the screen.
|
||||
|
||||
I solved this problem by positioning the hint below the bottom of the screen
|
||||
with CSS transform and moving it up to show it. But I also didn't want this move
|
||||
to be visible. I wanted the hint only to fade in and out visually, so I delayed
|
||||
the fade in transition, so it starts when the hint is already in its correct
|
||||
position on the screen.
|
||||
|
||||
I know, it sounds complicated ... maybe it would be easier with the code?
|
||||
*/
|
||||
|
||||
.hint {
|
||||
/*
|
||||
We hide the hint until presentation is started and from browsers not supporting
|
||||
impress.js, as they will have a linear scrollable view ...
|
||||
*/
|
||||
display: none;
|
||||
|
||||
/*
|
||||
... and give it some fixed position and nice styles.
|
||||
*/
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 200px;
|
||||
|
||||
background: rgba(0,0,0,0.5);
|
||||
color: #EEE;
|
||||
text-align: center;
|
||||
|
||||
font-size: 50px;
|
||||
padding: 20px;
|
||||
|
||||
z-index: 100;
|
||||
|
||||
/*
|
||||
By default we don't want the hint to be visible, so we make it transparent ...
|
||||
*/
|
||||
opacity: 0;
|
||||
|
||||
/*
|
||||
... and position it below the bottom of the screen (relative to it's fixed position)
|
||||
*/
|
||||
-webkit-transform: translateY(400px);
|
||||
-moz-transform: translateY(400px);
|
||||
-ms-transform: translateY(400px);
|
||||
-o-transform: translateY(400px);
|
||||
transform: translateY(400px);
|
||||
|
||||
/*
|
||||
Now let's imagine that the hint is visible and we want to fade it out and move out
|
||||
of the screen.
|
||||
|
||||
So we define the transition on the opacity property with 1s duration and another
|
||||
transition on transform property delayed by 1s so it will happen after the fade out
|
||||
on opacity finished.
|
||||
|
||||
This way user will not see the hint moving down.
|
||||
*/
|
||||
-webkit-transition: opacity 1s, -webkit-transform 0.5s 1s;
|
||||
-moz-transition: opacity 1s, -moz-transform 0.5s 1s;
|
||||
-ms-transition: opacity 1s, -ms-transform 0.5s 1s;
|
||||
-o-transition: opacity 1s, -o-transform 0.5s 1s;
|
||||
transition: opacity 1s, transform 0.5s 1s;
|
||||
}
|
||||
|
||||
/*
|
||||
Now we 'enable' the hint when presentation is initialized ...
|
||||
*/
|
||||
.impress-enabled .hint { display: block }
|
||||
|
||||
/*
|
||||
... and we will show it when the first step (with id 'bored') is active.
|
||||
*/
|
||||
.impress-on-bored .hint {
|
||||
/*
|
||||
We remove the transparency and position the hint in its default fixed
|
||||
position.
|
||||
*/
|
||||
opacity: 1;
|
||||
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px);
|
||||
|
||||
/*
|
||||
Now for fade in transition we have the oposite situation from the one
|
||||
above.
|
||||
|
||||
First after 4.5s delay we animate the transform property to move the hint
|
||||
into its correct position and after that we fade it in with opacity
|
||||
transition.
|
||||
*/
|
||||
-webkit-transition: opacity 1s 5s, -webkit-transform 0.5s 4.5s;
|
||||
-moz-transition: opacity 1s 5s, -moz-transform 0.5s 4.5s;
|
||||
-ms-transition: opacity 1s 5s, -ms-transform 0.5s 4.5s;
|
||||
-o-transition: opacity 1s 5s, -o-transform 0.5s 4.5s;
|
||||
transition: opacity 1s 5s, transform 0.5s 4.5s;
|
||||
}
|
||||
|
||||
/*
|
||||
And as the last thing there is a workaround for quite strange bug.
|
||||
It happens a lot in Chrome. I don't remember if I've seen it in Firefox.
|
||||
|
||||
Sometimes the element positioned in 3D (especially when it's moved back
|
||||
along Z axis) is not clickable, because it falls 'behind' the <body>
|
||||
element.
|
||||
|
||||
To prevent this, I decided to make <body> non clickable by setting
|
||||
pointer-events property to `none` value.
|
||||
Value if this property is inherited, so to make everything else clickable
|
||||
I bring it back on the #impress element.
|
||||
|
||||
If you want to know more about `pointer-events` here are some docs:
|
||||
https://developer.mozilla.org/en/CSS/pointer-events
|
||||
|
||||
There is one very important thing to notice about this workaround - it makes
|
||||
everything 'unclickable' except what's in #impress element.
|
||||
|
||||
So use it wisely ... or don't use at all.
|
||||
*/
|
||||
.impress-enabled { pointer-events: none }
|
||||
.impress-enabled #impress { pointer-events: auto }
|
||||
.impress-enabled #impress-toolbar { pointer-events: auto }
|
||||
.impress-enabled #impress-console-button { pointer-events: auto }
|
||||
/*
|
||||
There is one funny thing I just realized.
|
||||
|
||||
Thanks to this workaround above everything except #impress element is invisible
|
||||
for click events. That means that the hint element is also not clickable.
|
||||
So basically all of this transforms and delayed transitions trickery was probably
|
||||
not needed at all...
|
||||
|
||||
But it was fun to learn about it, wasn't it?
|
||||
*/
|
||||
|
||||
/*
|
||||
That's all I have for you in this file.
|
||||
Thanks for reading. I hope you enjoyed it at least as much as I enjoyed writing it
|
||||
for you.
|
||||
*/
|
497
impress/examples/2D-navigation/css/fonts.css
Normal file
@ -0,0 +1,497 @@
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Cutive Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Cutive Mono'), local('CutiveMono-Regular'), url(http://fonts.gstatic.com/s/cutivemono/v4/N5odNRruTwjvCM8y77PhQSYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Cutive Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Cutive Mono'), local('CutiveMono-Regular'), url(http://fonts.gstatic.com/s/cutivemono/v4/N5odNRruTwjvCM8y77PhQY4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmgpAmOCqD37_tyH_8Ri5MM.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxsPNMTLbnS9uQzHQlYieHUU.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxgyhumQnPMBCoGYhRaNxyyY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxhUVAXEdVvYDDqrz3aeR0Yc.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxlf4y_3s5bcYyyLIFUSWYUU.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxnywqdtBbUHn3VPgzuFrCy8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxl2umOyRU7PgRiv8DXcgJjk.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/JX7MlXqjSJNjQvI4heMMGvY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/vtwNVMP8y9C17vLvIBNZI_Y6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/9kaD4V2pNPMMeUVBHayd7vY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/ATKpv8nLYAKUYexo8iqqrg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/kTYfCWJhlldPf5LnG4ZnHCEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/g46X4VH_KHOWAAa-HpnGPiEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/hpORcvLZtemlH8gI-1S-7iEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/0XxGQsSc1g4rdRdjJKZrNPk_vArhqVIZ0nv9q090hN8.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/GpWpM_6S4VQLPNAQ3iWvVRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/7dSh6BcuqDLzS2qAASIeuhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/DVKQJxMmC9WF_oplMzlQqRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/PIPMHY90P7jtyjpXuZ2cLFtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkK-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkJX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkD0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkOgdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/5hX15RUpPERmeybVlLQEWBTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/fU0HAfLiPHGlZhZpY6M7dBTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/CPRt--GVMETgA6YEaoGitxTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/I-OtoJZa3TeyH6D9oli3ifesZW2xOQ-xsNqO47m55DA.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpDTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpDUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpCYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpI4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/O_WhD9hODL16N4KLHLX7xSEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/3Nwg9VzlwLXPq3fNKwVRMCEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/b31S45a_TNgaBApZhTgE6CEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/03aPdn7fFF3H6ngCgAlQzPk_vArhqVIZ0nv9q090hN8.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9ede9INZm0R8ZMJUtfOsxrw.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9bpHcMS0zZe4mIYvDKG2oeM.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9RHJTnCUrjaAm2S9z52xC3Y.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9YWiMMZ7xLd792ULpGE4W_Y.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
|
341
impress/examples/2D-navigation/css/presentation.css
Normal file
@ -0,0 +1,341 @@
|
||||
/*
|
||||
A common approach is to use googleapis.com to generate css for the webfonts you want to use.
|
||||
The downside of this approach is that you have to be online. So below I have simply saved
|
||||
the output of the googleapis url into a file. Then you of course also have to make sure
|
||||
the webfonts are locally installed to make offline usage work. For Ubuntu (or Debian) I
|
||||
successfully used the script from here to do that:
|
||||
http://www.webupd8.org/2011/01/automatically-install-all-google-web.html
|
||||
*/
|
||||
|
||||
/* @import url(http://fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic|Cutive+Mono); */
|
||||
@import url(fonts.css);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
We display a fallback message for users with browsers that don't support
|
||||
all the features required by it. All of the content will be still fully
|
||||
accessible for them, but some more advanced effects would be missing.
|
||||
When impress.js detects that browser supports all necessary CSS3 features,
|
||||
the fallback-message style is hidden.
|
||||
*/
|
||||
|
||||
.fallback-message {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.3;
|
||||
|
||||
width: 780px;
|
||||
padding: 10px 10px 0;
|
||||
margin: 20px auto;
|
||||
|
||||
border: 1px solid #E4C652;
|
||||
border-radius: 10px;
|
||||
background: #EEDC94;
|
||||
}
|
||||
|
||||
.fallback-message p {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.impress-supported .fallback-message {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
The body background is the bacgkround of "everything". Many
|
||||
impress.js tools call it the "surface". It could also be a
|
||||
picture or pattern, but we leave it as light gray.
|
||||
*/
|
||||
|
||||
body {
|
||||
font-family: 'PT Sans', sans-serif;
|
||||
min-height: 740px;
|
||||
|
||||
background: #aaccbb;
|
||||
color: #ff4466;
|
||||
}
|
||||
|
||||
/*
|
||||
Now let's style the presentation steps.
|
||||
*/
|
||||
|
||||
.step {
|
||||
position: relative;
|
||||
display: block;
|
||||
|
||||
width: 900px;
|
||||
height: 700px;
|
||||
margin: 20px auto;
|
||||
padding: 40px 60px;
|
||||
|
||||
text-shadow: 0 2px 2px rgba(0, 10, 0, .5);
|
||||
|
||||
font-family: 'Open Sans', Arial, sans-serif;
|
||||
font-size: 30px;
|
||||
letter-spacing: -1px;
|
||||
|
||||
}
|
||||
/*
|
||||
Make inactive steps a little bit transparent.
|
||||
*/
|
||||
.impress-enabled .step {
|
||||
margin: 0;
|
||||
opacity: 0.3;
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
.impress-enabled .step.active { opacity: 1 }
|
||||
|
||||
/*
|
||||
Speaker notes allow you to write comments within the steps, that will not
|
||||
be displayed as part of the presentation. However, they will be picked up
|
||||
and displayed by impressConsole.js when integrated.
|
||||
*/
|
||||
|
||||
.notes {
|
||||
display: none;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
margin-bottom: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
p {
|
||||
text-align: center;
|
||||
margin: 0.7em;
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 0.2em;
|
||||
}
|
||||
|
||||
/* Highlight.js used for coloring pre > code blocks. */
|
||||
pre > code {
|
||||
font-size: 14px;
|
||||
text-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* Inline code, no Highlight.js */
|
||||
code {
|
||||
font-family: "Cutive mono","Courier New", monospace;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
padding: 0 0.1em;
|
||||
background: rgba(200,200,200,0.3);
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.9);
|
||||
border-radius: 0.2em;
|
||||
border-bottom: 1px solid rgba(100,100,100,0.4);
|
||||
border-left: 1px solid rgba(100,100,100,0.4);
|
||||
|
||||
transition: 0.5s;
|
||||
}
|
||||
a:hover,
|
||||
a:focus {
|
||||
background: rgba(200,200,200,1);
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
em {
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
strong {
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
q {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
strike {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.4em;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 300px
|
||||
}
|
||||
|
||||
/****************** Background images **********************************************/
|
||||
|
||||
|
||||
img.bg {
|
||||
position: fixed;
|
||||
z-index: -100;
|
||||
opacity: 0;
|
||||
height: 50%;
|
||||
width: auto;
|
||||
transition: opacity 2s;
|
||||
}
|
||||
|
||||
#applepie-image {
|
||||
left: 0px;
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
body.impress-on-applepie #applepie-image,
|
||||
body.impress-on-applepie-pro #applepie-image,
|
||||
body.impress-on-applepie-con #applepie-image,
|
||||
body.impress-on-conclusion #applepie-image,
|
||||
body.impress-on-overview #applepie-image {
|
||||
opacity: 0.7;
|
||||
transition: opacity 2s;
|
||||
}
|
||||
|
||||
#icecream-image {
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
}
|
||||
|
||||
body.impress-on-icecream #icecream-image,
|
||||
body.impress-on-icecream-pro #icecream-image,
|
||||
body.impress-on-icecream-con #icecream-image,
|
||||
body.impress-on-conclusion #icecream-image,
|
||||
body.impress-on-overview #icecream-image {
|
||||
opacity: 0.7;
|
||||
transition: opacity 2s;
|
||||
}
|
||||
|
||||
#crisps-image {
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
body.impress-on-crisps #crisps-image,
|
||||
body.impress-on-crisps-pro #crisps-image,
|
||||
body.impress-on-crisps-con #crisps-image,
|
||||
body.impress-on-conclusion #crisps-image,
|
||||
body.impress-on-overview #crisps-image {
|
||||
opacity: 0.7;
|
||||
transition: opacity 2s;
|
||||
}
|
||||
|
||||
|
||||
/*************** Slide specific things ****************************/
|
||||
|
||||
#image-credits {
|
||||
color: #779988;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/******************* PLUGINS *************************************************************/
|
||||
/*
|
||||
This version of impress.js supports plugins, and in particular, a UI toolbar
|
||||
plugin that allows easy navigation between steps and autoplay.
|
||||
*/
|
||||
.impress-enabled div#impress-toolbar {
|
||||
position: fixed;
|
||||
right: 1px;
|
||||
bottom: 1px;
|
||||
opacity: 0.6;
|
||||
z-index: 10;
|
||||
}
|
||||
.impress-enabled div#impress-toolbar > span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
With help from the mouse-timeout plugin, we can hide the toolbar and
|
||||
have it show only when you move/click/touch the mouse.
|
||||
*/
|
||||
body.impress-mouse-timeout div#impress-toolbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
In fact, we can hide the mouse cursor itself too, when mouse isn't used.
|
||||
*/
|
||||
body.impress-mouse-timeout {
|
||||
cursor: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Progress bar */
|
||||
.impress-progressbar {
|
||||
position: absolute;
|
||||
right: 118px;
|
||||
bottom: 1px;
|
||||
left: 118px;
|
||||
border-radius: 7px;
|
||||
border: 2px solid rgba(100, 100, 100, 0.2);
|
||||
}
|
||||
.impress-progressbar DIV {
|
||||
width: 0;
|
||||
height: 2px;
|
||||
border-radius: 5px;
|
||||
background: rgba(75, 75, 75, 0.4);
|
||||
transition: width 1s linear;
|
||||
}
|
||||
.impress-progress {
|
||||
position: absolute;
|
||||
left: 59px;
|
||||
bottom: 1px;
|
||||
text-align: left;
|
||||
font-size: 10pt;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
/* Help popup plugin */
|
||||
.impress-enabled #impress-help {
|
||||
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.5);
|
||||
color: #EEEEEE;
|
||||
font-size: 80%;
|
||||
position: fixed;
|
||||
left: 2em;
|
||||
bottom: 2em;
|
||||
width: 24em;
|
||||
border-radius: 1em;
|
||||
padding: 1em;
|
||||
text-align: center;
|
||||
z-index: 100;
|
||||
font-family: Verdana, Arial, Sans;
|
||||
}
|
||||
.impress-enabled #impress-help td {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
/* Substep plugin */
|
||||
|
||||
#impress .step .substep {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#impress .step .substep.substep-visible {
|
||||
opacity: 1;
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
.impress-enabled { pointer-events: none }
|
||||
.impress-enabled #impress { pointer-events: auto }
|
||||
.impress-enabled #impress-toolbar { pointer-events: auto }
|
||||
.impress-enabled #impress-console-button { pointer-events: auto }
|
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 646 KiB |
203
impress/examples/2D-navigation/index.html
Normal file
@ -0,0 +1,203 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Desserts (2D navigation demo)</title>
|
||||
<meta name="description" content="2D navigation demo" />
|
||||
<meta name="author" content="Henrik Ingo" />
|
||||
<link href="css/presentation.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body class="impress-not-supported">
|
||||
<div class="fallback-message">
|
||||
<p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
|
||||
<p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
|
||||
</div>
|
||||
|
||||
<!-- Some images that are fixed to background in the css -->
|
||||
<img id="applepie-image" class="bg" src="images/6296334551_b3d5c27823_b.png">
|
||||
<img id="icecream-image" class="bg" src="images/35535918670_f1d12627ff_o.png">
|
||||
<img id="crisps-image" class="bg" src="images/6636957665_5e7c4a79de_o.png">
|
||||
|
||||
|
||||
|
||||
<div id="impress" data-transition-duration="1000">
|
||||
|
||||
<div class="step" data-scale="2" data-x="-500" data-y="-500">
|
||||
<h1>2D navigation</h1>
|
||||
|
||||
<ul>
|
||||
<li>Impress.js allows you to layout your presentation in a 3D space</li>
|
||||
<li>Now <a href="https://github.com/impress/impress.js/tree/master/src/plugins/goto">the
|
||||
goto plugin</a> also allows you to specify
|
||||
non-linear navigation!</li>
|
||||
<li>This demo can be navigated by
|
||||
<ul>
|
||||
<li>continuously pressing Right Arrow</li>
|
||||
<li>continuously pressing Down Arrow</li>
|
||||
<li>(or freely, pressing Up, Down, Right, Left as you choose)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>It's up to you to decide which is the better structure</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="contents" class="step" data-rel-x="1500" data-rel-y="1500" data-scale="1">
|
||||
<h1>Choosing a treat</h1>
|
||||
|
||||
<ul>
|
||||
<li>You can choose your preferred treat from:
|
||||
<ul>
|
||||
<li>Ice cream</li>
|
||||
<li>Crisps</li>
|
||||
<li>Apple pie</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>We will make a structured pro's & con's analysis to arrive at a conclusion</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Ice cream slides (3) -->
|
||||
<div id="icecream" class="step" data-x="2000" data-y="2000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="contents icecream-pro contents crisps">
|
||||
<h1>Ice cream</h1>
|
||||
|
||||
<ul>
|
||||
<li>Cold</li>
|
||||
<li>Creamy</li>
|
||||
<li>Vanilla or flavored</li>
|
||||
<li>Caramel sauce, jams & other toppings</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="icecream-pro" class="step" data-rel-x="0" data-rel-y="1000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="icecream icecream-con applepie crisps-pro">
|
||||
<h1>Ice cream: Pro's</h1>
|
||||
|
||||
<ul>
|
||||
<li>Great for dessert or snack</li>
|
||||
<li>Great in the Summer</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="icecream-con" class="step" data-rel-x="0" data-rel-y="1000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="icecream-pro crisps applepie-pro crisps-con">
|
||||
<h1>Ice cream: Con's</h1>
|
||||
|
||||
<ul>
|
||||
<li>Not so great in the Winter</li>
|
||||
<li>If you're allergic to lactose/milk</li>
|
||||
<li>Diet alternatives are not real ice cream</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Crisps slides (3) -->
|
||||
<div id="crisps" class="step" data-x="3500" data-y="2000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="icecream-con crisps-pro icecream applepie">
|
||||
<h1>Crisps</h1>
|
||||
|
||||
<ul>
|
||||
<li>Potatoes fried in oil and salted</li>
|
||||
<li>Various flavors</li>
|
||||
<li>Dips</li>
|
||||
<li>Can be used as ingredient in subs (Cliff Huxtable style)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="crisps-pro" class="step" data-rel-x="0" data-rel-y="1000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="crisps crisps-con icecream-pro applepie-pro">
|
||||
<h1>Crisps: Pro's</h1>
|
||||
|
||||
<ul>
|
||||
<li>Simple yet tasty concept</li>
|
||||
<li>Great for snack</li>
|
||||
<li>Salty / spicy (not sweet)</li>
|
||||
<li>Finger food</li>
|
||||
<li>Diet alternatives are often ok</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="crisps-con" class="step" data-rel-x="0" data-rel-y="1000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="crisps-pro applepie icecream-con applepie-con">
|
||||
<h1>Crisps: Con's</h1>
|
||||
|
||||
<ul>
|
||||
<li>Commonly not used as dessert</li>
|
||||
<li>Not sweet</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Apple pie slides (3) -->
|
||||
<div id="applepie" class="step" data-x="5000" data-y="2000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="crisps-con applepie-pro crisps icecream-pro">
|
||||
<h1>Apple pie</h1>
|
||||
|
||||
<ul>
|
||||
<li>Apple's in a pie</li>
|
||||
<li>Many recipes exist. (Grandma's is the best.)</li>
|
||||
<li>Vanilla sauce or cream on top</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="applepie-pro" class="step" data-rel-x="0" data-rel-y="1000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="applepie applepie-con crisps-pro icecream-con">
|
||||
<h1>Apple pie: Pro's</h1>
|
||||
|
||||
<ul>
|
||||
<li>Great for dessert</li>
|
||||
<li>Or just with a cup of tea or glass of milk</li>
|
||||
<li>Best when warm</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="applepie-con" class="step" data-rel-x="0" data-rel-y="1000"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowLeft ArrowRight"
|
||||
data-goto-next-list="applepie-pro conclusion crisps-con conclusion">
|
||||
<h1>Apple pie: Con's</h1>
|
||||
|
||||
<ul>
|
||||
<li>I'm allergic to apple (but a small slice is worth it)</li>
|
||||
<li>Not finger food</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="conclusion" class="step" data-rel-x="1000" data-rel-y="1000">
|
||||
<h1>Conclusion</h1>
|
||||
|
||||
<p>Can I choose all three ;-)</p>
|
||||
|
||||
<p style="font-size: small; position: absolute; bottom: 30px; left: 300px;" id="image-credits"
|
||||
>Image credits: <a href="https://www.flickr.com/photos/reimagingerica/35535918670">reimagingerica@Flickr</a>,
|
||||
<a href="https://www.flickr.com/photos/mixedmolly/6636957665">mixedmolly@Flickr</a>,
|
||||
<a href="https://www.flickr.com/photos/stevepj2009/6296334551">stevepj2009@Flickr</a> </p>
|
||||
</div>
|
||||
|
||||
<div id="overview" class="step" data-x="3000" data-y="2000" data-scale="9" style="pointer-events: none;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="impress-toolbar"></div>
|
||||
|
||||
<div class="impress-progressbar"><div></div></div>
|
||||
<div class="impress-progress"></div>
|
||||
|
||||
<div id="impress-help"></div>
|
||||
|
||||
<script type="text/javascript" src="../../js/impress.js"></script>
|
||||
<script>impress().init();</script>
|
||||
|
||||
</body>
|
||||
</html>
|
280
impress/examples/3D-rotations/css/3D-rotations.css
Normal file
@ -0,0 +1,280 @@
|
||||
@import url(fonts.css);
|
||||
|
||||
|
||||
|
||||
/* Fallback message */
|
||||
|
||||
.fallback-message {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.3;
|
||||
|
||||
width: 780px;
|
||||
padding: 10px 10px 0;
|
||||
margin: 20px auto;
|
||||
|
||||
border: 1px solid #E4C652;
|
||||
border-radius: 10px;
|
||||
background: #EEDC94;
|
||||
}
|
||||
|
||||
.fallback-message p {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.impress-supported .fallback-message {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Body & steps */
|
||||
body {
|
||||
font-family: 'PT Sans', sans-serif;
|
||||
min-height: 740px;
|
||||
|
||||
background: #00000f;
|
||||
color: rgb(102, 102, 102);
|
||||
}
|
||||
|
||||
.step {
|
||||
position: relative;
|
||||
width: 700px;
|
||||
height: 700px;
|
||||
padding: 40px 60px;
|
||||
margin: 20px auto;
|
||||
|
||||
box-sizing: border-box;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
background-color: white;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
|
||||
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .1);
|
||||
|
||||
font-family: 'Open Sans', Arial, sans-serif;
|
||||
font-size: 40pt;
|
||||
letter-spacing: -1px;
|
||||
|
||||
}
|
||||
|
||||
.notes {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Overview step has no background or border */
|
||||
|
||||
.overview {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
pointer-events: none;
|
||||
display: none;
|
||||
}
|
||||
.overview.active {
|
||||
display: block;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
Make inactive steps a little bit transparent.
|
||||
*/
|
||||
.impress-enabled .step {
|
||||
margin: 0;
|
||||
opacity: 0.1;
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
.impress-enabled .step.active { opacity: 1 }
|
||||
|
||||
|
||||
/* Content */
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
margin-bottom: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0.7em;
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 0.2em;
|
||||
}
|
||||
|
||||
/* Highlight.js used for coloring pre > code blocks. */
|
||||
pre > code {
|
||||
font-size: 14px;
|
||||
text-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* Inline code, no Highlight.js */
|
||||
code {
|
||||
font-family: "Cutive mono","Courier New", monospace;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
padding: 0 0.1em;
|
||||
background: rgba(200,200,200,0.2);
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.9);
|
||||
border-radius: 0.2em;
|
||||
border-bottom: 1px solid rgba(100,100,100,0.2);
|
||||
border-left: 1px solid rgba(100,100,100,0.2);
|
||||
|
||||
transition: 0.5s;
|
||||
}
|
||||
a:hover,
|
||||
a:focus {
|
||||
background: rgba(200,200,200,1);
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
em {
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
strong {
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
q {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
strike {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.4em;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
This version of impress.js supports plugins, and in particular, a UI toolbar
|
||||
plugin that allows easy navigation between steps and autoplay.
|
||||
*/
|
||||
.impress-enabled div#impress-toolbar {
|
||||
position: fixed;
|
||||
right: 1px;
|
||||
bottom: 1px;
|
||||
opacity: 0.6;
|
||||
z-index: 10;
|
||||
}
|
||||
.impress-enabled div#impress-toolbar > span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
With help from the mouse-timeout plugin, we can hide the toolbar and
|
||||
have it show only when you move/click/touch the mouse.
|
||||
*/
|
||||
body.impress-mouse-timeout div#impress-toolbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
In fact, we can hide the mouse cursor itself too, when mouse isn't used.
|
||||
*/
|
||||
body.impress-mouse-timeout {
|
||||
cursor: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Progress bar */
|
||||
.impress-progressbar {
|
||||
position: absolute;
|
||||
right: 118px;
|
||||
bottom: 1px;
|
||||
left: 118px;
|
||||
border-radius: 7px;
|
||||
border: 2px solid rgba(100, 100, 100, 0.2);
|
||||
}
|
||||
.impress-progressbar DIV {
|
||||
width: 0;
|
||||
height: 2px;
|
||||
border-radius: 5px;
|
||||
background: rgba(75, 75, 75, 0.4);
|
||||
transition: width 1s linear;
|
||||
}
|
||||
.impress-progress {
|
||||
position: absolute;
|
||||
left: 59px;
|
||||
bottom: 1px;
|
||||
text-align: left;
|
||||
font-size: 10pt;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
/* Help popup plugin */
|
||||
.impress-enabled #impress-help {
|
||||
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.5);
|
||||
color: #EEEEEE;
|
||||
font-size: 80%;
|
||||
position: fixed;
|
||||
left: 2em;
|
||||
bottom: 2em;
|
||||
width: 24em;
|
||||
border-radius: 1em;
|
||||
padding: 1em;
|
||||
text-align: center;
|
||||
z-index: 100;
|
||||
font-family: Verdana, Arial, Sans;
|
||||
}
|
||||
.impress-enabled #impress-help td {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
|
||||
/* Styles specific to each step */
|
||||
|
||||
#overview2 {
|
||||
font-size: 20pt;
|
||||
padding-left: 200px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
And as the last thing there is a workaround for quite strange bug.
|
||||
It happens a lot in Chrome. I don't remember if I've seen it in Firefox.
|
||||
|
||||
Sometimes the element positioned in 3D (especially when it's moved back
|
||||
along Z axis) is not clickable, because it falls 'behind' the <body>
|
||||
element.
|
||||
|
||||
To prevent this, I decided to make <body> non clickable by setting
|
||||
pointer-events property to `none` value.
|
||||
Value if this property is inherited, so to make everything else clickable
|
||||
I bring it back on the #impress element.
|
||||
|
||||
If you want to know more about `pointer-events` here are some docs:
|
||||
https://developer.mozilla.org/en/CSS/pointer-events
|
||||
|
||||
There is one very important thing to notice about this workaround - it makes
|
||||
everything 'unclickable' except what's in #impress element.
|
||||
|
||||
So use it wisely ... or don't use at all.
|
||||
*/
|
||||
.impress-enabled { pointer-events: none }
|
||||
.impress-enabled #impress { pointer-events: auto }
|
||||
.impress-enabled #impress-toolbar { pointer-events: auto }
|
||||
.impress-enabled #impress-console-button { pointer-events: auto }
|
497
impress/examples/3D-rotations/css/fonts.css
Normal file
@ -0,0 +1,497 @@
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Cutive Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Cutive Mono'), local('CutiveMono-Regular'), url(http://fonts.gstatic.com/s/cutivemono/v4/N5odNRruTwjvCM8y77PhQSYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Cutive Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Cutive Mono'), local('CutiveMono-Regular'), url(http://fonts.gstatic.com/s/cutivemono/v4/N5odNRruTwjvCM8y77PhQY4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmgpAmOCqD37_tyH_8Ri5MM.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxsPNMTLbnS9uQzHQlYieHUU.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxgyhumQnPMBCoGYhRaNxyyY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxhUVAXEdVvYDDqrz3aeR0Yc.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxlf4y_3s5bcYyyLIFUSWYUU.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxnywqdtBbUHn3VPgzuFrCy8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxl2umOyRU7PgRiv8DXcgJjk.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/JX7MlXqjSJNjQvI4heMMGvY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/vtwNVMP8y9C17vLvIBNZI_Y6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/9kaD4V2pNPMMeUVBHayd7vY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/ATKpv8nLYAKUYexo8iqqrg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/kTYfCWJhlldPf5LnG4ZnHCEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/g46X4VH_KHOWAAa-HpnGPiEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/hpORcvLZtemlH8gI-1S-7iEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/0XxGQsSc1g4rdRdjJKZrNPk_vArhqVIZ0nv9q090hN8.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/GpWpM_6S4VQLPNAQ3iWvVRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/7dSh6BcuqDLzS2qAASIeuhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/DVKQJxMmC9WF_oplMzlQqRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/PIPMHY90P7jtyjpXuZ2cLFtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkK-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkJX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkD0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkOgdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/5hX15RUpPERmeybVlLQEWBTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/fU0HAfLiPHGlZhZpY6M7dBTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/CPRt--GVMETgA6YEaoGitxTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/I-OtoJZa3TeyH6D9oli3ifesZW2xOQ-xsNqO47m55DA.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpDTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpDUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpCYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpI4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/O_WhD9hODL16N4KLHLX7xSEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/3Nwg9VzlwLXPq3fNKwVRMCEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/b31S45a_TNgaBApZhTgE6CEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/03aPdn7fFF3H6ngCgAlQzPk_vArhqVIZ0nv9q090hN8.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9ede9INZm0R8ZMJUtfOsxrw.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9bpHcMS0zZe4mIYvDKG2oeM.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9RHJTnCUrjaAm2S9z52xC3Y.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9YWiMMZ7xLd792ULpGE4W_Y.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
|
89
impress/examples/3D-rotations/index.html
Normal file
@ -0,0 +1,89 @@
|
||||
<!doctype html>
|
||||
|
||||
<!--
|
||||
This is a simple example / template impress.js slide show. The goal is to be
|
||||
easier to read for a first timer than the official and very feature rich
|
||||
demo by bartaz (http://bartaz.github.io/impress.js/). It's also a very
|
||||
traditional presentation that looks like slides (square screens with bullet
|
||||
points...), again to make a first timer feel more at home. From this simple
|
||||
presentation you can then go on to more powerful impress.js presentations!
|
||||
|
||||
This example is hopefully helpful for people that want to create both
|
||||
simple and (eventually) awesome presentations in impress.js and comfortable
|
||||
doing that directly in HTML.
|
||||
|
||||
By: @henrikingo (Still based on the HTML from bartaz' demo.)
|
||||
|
||||
-->
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>A Study in 3D Rotations| by Henrik Ingo @henrikingo</title>
|
||||
<meta name="description" content="Explore impress.js in 3D" />
|
||||
<meta name="author" content="Henrik Ingo" />
|
||||
<link href="css/3D-rotations.css" rel="stylesheet" />
|
||||
</head>
|
||||
|
||||
<body class="impress-not-supported">
|
||||
<div class="fallback-message">
|
||||
<p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
|
||||
<p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
|
||||
</div>
|
||||
|
||||
<div id="impress" data-transition-duration="2000">
|
||||
|
||||
|
||||
<div id="overview" class="step overview" data-x="1350" data-y="100" data-z="100" data-scale="3" data-rotate-y="90">
|
||||
<h1>A Study in 3D Rotations</h1>
|
||||
</div>
|
||||
<div id="overview2" class="step overview" data-x="2018" data-y="106" data-z="3018" data-scale="2">
|
||||
<p>Unlike the <code>x/y/z</code> coordinates (aka translations), the <code>rotate-x/y/z</code> rotations are applied in a
|
||||
specific order, and order matters. This demo presentation exhibits the use of the new <code>data-rotate- order</code> attribute.
|
||||
Instead of the default "xyz" order, the steps use the reversed <em>"zyx"</em> order in applying rotations around each axis.
|
||||
Some of the steps (<a href="#step-3">3</a> & <a href="#step-7">7</a>), are in positions that are not possible with the default "xyz" order.</p>
|
||||
</div>
|
||||
|
||||
<div id="step-1" class="step" data-x="0" data-y="0" data-z="0"
|
||||
data-goto-prev="step-8">
|
||||
<p>Slide one</p>
|
||||
</div>
|
||||
|
||||
<div id="step-2" class="step" data-x="420" data-y="-70" data-z="-250" data-rotate-z="45" data-rotate-y="-45" data-rotate-order="zyx">
|
||||
<p>Slide two</p>
|
||||
</div>
|
||||
|
||||
<div id="step-3" class="step" data-x="700" data-y="350" data-z="-350" data-rotate-z="90" data-rotate-y="-90" data-rotate-order="zyx">
|
||||
<p>Slide three</p>
|
||||
</div>
|
||||
|
||||
<div id="step-4" class="step" data-x="422" data-y="780" data-z="-250" data-rotate-z="135" data-rotate-y="-135" data-rotate-order="zyx">
|
||||
<p>Slide four</p>
|
||||
</div>
|
||||
|
||||
<div id="step-5" class="step" data-x="0" data-y="702" data-z="0" data-rotate-z="180" data-rotate-y="-180" data-rotate-order="zyx">
|
||||
<p>Slide five</p>
|
||||
</div>
|
||||
|
||||
<div id="step-6" class="step" data-x="379" data-y="780" data-z="270" data-rotate-z="135" data-rotate-y="-225" data-rotate-order="zyx">
|
||||
<p>Slide six</p>
|
||||
</div>
|
||||
|
||||
<div id="step-7" class="step" data-x="700" data-y="350" data-z="350" data-rotate-z="90" data-rotate-y="-270" data-rotate-order="zyx">
|
||||
<p>Slide seven</p>
|
||||
</div>
|
||||
|
||||
<div id="step-8" class="step" data-x="379" data-y="-70" data-z="270" data-rotate-z="45" data-rotate-y="-315" data-rotate-order="zyx"
|
||||
data-goto-next="step-1">
|
||||
<p>Slide eight</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="impress-toolbar"></div>
|
||||
<div id="impress-help"></div>
|
||||
|
||||
<script type="text/javascript" src="../../js/impress.js"></script>
|
||||
<script>impress().init();</script>
|
||||
|
||||
</body>
|
||||
</html>
|
465
impress/examples/classic-slides/css/classic-slides.css
Normal file
@ -0,0 +1,465 @@
|
||||
/*
|
||||
A common approach is to use googleapis.com to generate css for the webfonts you want to use.
|
||||
The downside of this approach is that you have to be online. So below I have simply saved
|
||||
the output of the googleapis url into a file. Then you of course also have to make sure
|
||||
the webfonts are locally installed to make offline usage work. For Ubuntu (or Debian) I
|
||||
successfully used the script from here to do that:
|
||||
http://www.webupd8.org/2011/01/automatically-install-all-google-web.html
|
||||
*/
|
||||
|
||||
/* @import url(http://fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic|Cutive+Mono); */
|
||||
@import url(fonts.css);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
We display a fallback message for users with browsers that don't support
|
||||
all the features required by it. All of the content will be still fully
|
||||
accessible for them, but some more advanced effects would be missing.
|
||||
When impress.js detects that browser supports all necessary CSS3 features,
|
||||
the fallback-message style is hidden.
|
||||
*/
|
||||
|
||||
.fallback-message {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.3;
|
||||
|
||||
width: 780px;
|
||||
padding: 10px 10px 0;
|
||||
margin: 20px auto;
|
||||
|
||||
border: 1px solid #E4C652;
|
||||
border-radius: 10px;
|
||||
background: #EEDC94;
|
||||
}
|
||||
|
||||
.fallback-message p {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.impress-supported .fallback-message {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
The body background is the bacgkround of "everything". Many
|
||||
impress.js tools call it the "surface". It could also be a
|
||||
picture or pattern, but we leave it as light gray.
|
||||
*/
|
||||
|
||||
body {
|
||||
font-family: 'PT Sans', sans-serif;
|
||||
min-height: 740px;
|
||||
|
||||
background: rgb(215, 215, 215);
|
||||
color: rgb(102, 102, 102);
|
||||
}
|
||||
|
||||
/*
|
||||
Now let's style the presentation steps.
|
||||
*/
|
||||
|
||||
.step {
|
||||
position: relative;
|
||||
width: 900px;
|
||||
padding: 40px;
|
||||
margin: 20px auto;
|
||||
|
||||
box-sizing: border-box;
|
||||
|
||||
font-family: 'PT Serif', georgia, serif;
|
||||
font-size: 48px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
/*
|
||||
Make inactive steps a little bit transparent.
|
||||
*/
|
||||
.impress-enabled .step {
|
||||
margin: 0;
|
||||
opacity: 0.3;
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
.impress-enabled .step.active { opacity: 1 }
|
||||
|
||||
/*
|
||||
Speaker notes allow you to write comments within the steps, that will not
|
||||
be displayed as part of the presentation. However, they will be picked up
|
||||
and displayed by impressConsole.js when integrated.
|
||||
*/
|
||||
|
||||
.notes {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
These 'slide' step styles were heavily inspired by HTML5 Slides:
|
||||
http://html5slides.googlecode.com/svn/trunk/styles.css
|
||||
|
||||
Note that we also use a background image, again just to facilitate a common
|
||||
feature from PowerPoint and LibreOffice worlds. In this case the background
|
||||
image is just the impress.js favicon - as if it were a company logo or something.
|
||||
|
||||
*/
|
||||
.slide {
|
||||
display: block;
|
||||
|
||||
width: 900px;
|
||||
height: 700px;
|
||||
padding: 40px 60px;
|
||||
|
||||
background-image: url(../images/background.png);
|
||||
background-color: white;
|
||||
border: 1px solid rgba(0, 0, 0, .3);
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
|
||||
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .1);
|
||||
|
||||
font-family: 'Open Sans', Arial, sans-serif;
|
||||
font-size: 30px;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
|
||||
|
||||
.slide h1,
|
||||
.slide h2,
|
||||
.slide h3 {
|
||||
margin-bottom: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.slide p {
|
||||
text-align: center;
|
||||
margin: 0.7em;
|
||||
}
|
||||
|
||||
.slide li {
|
||||
margin: 0.2em;
|
||||
}
|
||||
|
||||
/* Highlight.js used for coloring pre > code blocks. */
|
||||
.slide pre > code {
|
||||
font-size: 14px;
|
||||
text-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* Inline code, no Highlight.js */
|
||||
code {
|
||||
font-family: "Cutive mono","Courier New", monospace;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
padding: 0 0.1em;
|
||||
background: rgba(200,200,200,0.2);
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.9);
|
||||
border-radius: 0.2em;
|
||||
border-bottom: 1px solid rgba(100,100,100,0.2);
|
||||
border-left: 1px solid rgba(100,100,100,0.2);
|
||||
|
||||
transition: 0.5s;
|
||||
}
|
||||
a:hover,
|
||||
a:focus {
|
||||
background: rgba(200,200,200,1);
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
em {
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
strong {
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
q {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
strike {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.4em;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 300px
|
||||
}
|
||||
|
||||
.slide .right {
|
||||
float: right;
|
||||
margin-left: 40px;
|
||||
margin-right: 0px;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.slide .left {
|
||||
float: left;
|
||||
margin-right: 40px;
|
||||
margin-left: 0px;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.slide .top {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
margin-bottom: 20px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
.slide .bottom {
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
margin-bottom: 0px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
/*
|
||||
Specific styles for: .title slides
|
||||
*/
|
||||
|
||||
.title {
|
||||
background-image: url(../images/background-title.png);
|
||||
}
|
||||
|
||||
.title h1,
|
||||
.title h2,
|
||||
.title h3 {
|
||||
position: absolute;
|
||||
left: 45px; /* slide width is 900px, so this is like a 5% margin on both sides */
|
||||
width: 90%;
|
||||
text-align: center;
|
||||
}
|
||||
.title h1 { top: 50px; }
|
||||
.title h2 { top: 400px; }
|
||||
.title h3 { top: 500px; }
|
||||
|
||||
|
||||
|
||||
/* Styles for animating the contents of a slide, such as a img, p, li or span element. ********/
|
||||
|
||||
/*
|
||||
fly-in class starts from a position outside the slide, then flies into it's correct position.
|
||||
*/
|
||||
.future .fly-in {
|
||||
transform: translateY(-700px);
|
||||
opacity: 0.0; /* Make it invisible, just so it doesn't clutter some other slide that might be in the position where we moved it */
|
||||
}
|
||||
.present .fly-in {
|
||||
transform: translateY(0px);
|
||||
opacity: 1.0;
|
||||
transition: 2s;
|
||||
}
|
||||
.past .fly-out {
|
||||
transform: translateY(700px);
|
||||
opacity: 0.0;
|
||||
transition: 2s;
|
||||
}
|
||||
|
||||
/*
|
||||
Fade-in/out is a straightforward fade. Give it enough seconds that all browsers render it clearly.
|
||||
*/
|
||||
.future .fade-in {
|
||||
opacity: 0.0;
|
||||
}
|
||||
.present .fade-in {
|
||||
opacity: 1.0;
|
||||
transition: 3s;
|
||||
}
|
||||
.past .fade-out {
|
||||
opacity: 0.0;
|
||||
transition: 3s;
|
||||
}
|
||||
/*
|
||||
Zoom-in.
|
||||
*/
|
||||
.future .zoom-in {
|
||||
transform: scale(10);
|
||||
opacity: 0.0;
|
||||
}
|
||||
.present .zoom-in {
|
||||
transform: scale(1);
|
||||
opacity: 1.0;
|
||||
transition: 3s;
|
||||
}
|
||||
.past .zoom-out {
|
||||
transform: scale(10);
|
||||
opacity: 0.0;
|
||||
}
|
||||
|
||||
/*
|
||||
This version of impress.js supports plugins, and in particular, a UI toolbar
|
||||
plugin that allows easy navigation between steps and autoplay.
|
||||
*/
|
||||
.impress-enabled div#impress-toolbar {
|
||||
position: fixed;
|
||||
right: 1px;
|
||||
bottom: 1px;
|
||||
opacity: 0.6;
|
||||
z-index: 10;
|
||||
}
|
||||
.impress-enabled div#impress-toolbar > span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
With help from the mouse-timeout plugin, we can hide the toolbar and
|
||||
have it show only when you move/click/touch the mouse.
|
||||
*/
|
||||
body.impress-mouse-timeout div#impress-toolbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
In fact, we can hide the mouse cursor itself too, when mouse isn't used.
|
||||
*/
|
||||
body.impress-mouse-timeout {
|
||||
cursor: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Progress bar */
|
||||
.impress-progressbar {
|
||||
position: absolute;
|
||||
right: 118px;
|
||||
bottom: 1px;
|
||||
left: 118px;
|
||||
border-radius: 7px;
|
||||
border: 2px solid rgba(100, 100, 100, 0.2);
|
||||
}
|
||||
.impress-progressbar DIV {
|
||||
width: 0;
|
||||
height: 2px;
|
||||
border-radius: 5px;
|
||||
background: rgba(75, 75, 75, 0.4);
|
||||
transition: width 1s linear;
|
||||
}
|
||||
.impress-progress {
|
||||
position: absolute;
|
||||
left: 59px;
|
||||
bottom: 1px;
|
||||
text-align: left;
|
||||
font-size: 10pt;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
/* Help popup plugin */
|
||||
.impress-enabled #impress-help {
|
||||
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.5);
|
||||
color: #EEEEEE;
|
||||
font-size: 80%;
|
||||
position: fixed;
|
||||
left: 2em;
|
||||
bottom: 2em;
|
||||
width: 24em;
|
||||
border-radius: 1em;
|
||||
padding: 1em;
|
||||
text-align: center;
|
||||
z-index: 100;
|
||||
font-family: Verdana, Arial, Sans;
|
||||
}
|
||||
.impress-enabled #impress-help td {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
/* Substep plugin */
|
||||
|
||||
#impress .step .substep {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#impress .step .substep.substep-visible {
|
||||
opacity: 1;
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
/*
|
||||
Styles for specific slides.
|
||||
*/
|
||||
|
||||
/* The bar graph for Acme Inc profits */
|
||||
|
||||
#acme-graph-bottom {
|
||||
position: absolute;
|
||||
bottom: 100px;
|
||||
left: 440px;
|
||||
background-color: black;
|
||||
width: 410px;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
/* height: is set from javascript */
|
||||
#acme-graph-q1,
|
||||
#acme-graph-q2,
|
||||
#acme-graph-q3,
|
||||
#acme-graph-q4 {
|
||||
border: solid 1px black;
|
||||
width: 70px;
|
||||
margin-left: 10px;
|
||||
position: absolute;
|
||||
bottom: 100px;
|
||||
}
|
||||
|
||||
#acme-graph-q1 {
|
||||
background-color: red;
|
||||
left: 450px;
|
||||
}
|
||||
|
||||
#acme-graph-q2 {
|
||||
background-color: blue;
|
||||
left: 550px;
|
||||
}
|
||||
|
||||
#acme-graph-q3 {
|
||||
background-color: green;
|
||||
left: 650px;
|
||||
}
|
||||
|
||||
#acme-graph-q4 {
|
||||
background-color: purple;
|
||||
left: 750px;
|
||||
}
|
||||
|
||||
/*
|
||||
And as the last thing there is a workaround for quite strange bug.
|
||||
It happens a lot in Chrome. I don't remember if I've seen it in Firefox.
|
||||
|
||||
Sometimes the element positioned in 3D (especially when it's moved back
|
||||
along Z axis) is not clickable, because it falls 'behind' the <body>
|
||||
element.
|
||||
|
||||
To prevent this, I decided to make <body> non clickable by setting
|
||||
pointer-events property to `none` value.
|
||||
Value if this property is inherited, so to make everything else clickable
|
||||
I bring it back on the #impress element.
|
||||
|
||||
If you want to know more about `pointer-events` here are some docs:
|
||||
https://developer.mozilla.org/en/CSS/pointer-events
|
||||
|
||||
There is one very important thing to notice about this workaround - it makes
|
||||
everything 'unclickable' except what's in #impress element.
|
||||
|
||||
So use it wisely ... or don't use at all.
|
||||
*/
|
||||
.impress-enabled { pointer-events: none }
|
||||
.impress-enabled #impress { pointer-events: auto }
|
||||
.impress-enabled #impress-toolbar { pointer-events: auto }
|
||||
.impress-enabled #impress-console-button { pointer-events: auto }
|
497
impress/examples/classic-slides/css/fonts.css
Normal file
@ -0,0 +1,497 @@
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Cutive Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Cutive Mono'), local('CutiveMono-Regular'), url(http://fonts.gstatic.com/s/cutivemono/v4/N5odNRruTwjvCM8y77PhQSYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Cutive Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Cutive Mono'), local('CutiveMono-Regular'), url(http://fonts.gstatic.com/s/cutivemono/v4/N5odNRruTwjvCM8y77PhQY4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmgpAmOCqD37_tyH_8Ri5MM.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxsPNMTLbnS9uQzHQlYieHUU.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxgyhumQnPMBCoGYhRaNxyyY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxhUVAXEdVvYDDqrz3aeR0Yc.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxlf4y_3s5bcYyyLIFUSWYUU.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxnywqdtBbUHn3VPgzuFrCy8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxl2umOyRU7PgRiv8DXcgJjk.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/JX7MlXqjSJNjQvI4heMMGvY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/vtwNVMP8y9C17vLvIBNZI_Y6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/9kaD4V2pNPMMeUVBHayd7vY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/ATKpv8nLYAKUYexo8iqqrg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/kTYfCWJhlldPf5LnG4ZnHCEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/g46X4VH_KHOWAAa-HpnGPiEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/hpORcvLZtemlH8gI-1S-7iEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/0XxGQsSc1g4rdRdjJKZrNPk_vArhqVIZ0nv9q090hN8.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/GpWpM_6S4VQLPNAQ3iWvVRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/7dSh6BcuqDLzS2qAASIeuhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/DVKQJxMmC9WF_oplMzlQqRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/PIPMHY90P7jtyjpXuZ2cLFtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkK-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkJX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkD0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkOgdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/5hX15RUpPERmeybVlLQEWBTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/fU0HAfLiPHGlZhZpY6M7dBTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/CPRt--GVMETgA6YEaoGitxTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/I-OtoJZa3TeyH6D9oli3ifesZW2xOQ-xsNqO47m55DA.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpDTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpDUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpCYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpI4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/O_WhD9hODL16N4KLHLX7xSEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/3Nwg9VzlwLXPq3fNKwVRMCEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/b31S45a_TNgaBApZhTgE6CEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/03aPdn7fFF3H6ngCgAlQzPk_vArhqVIZ0nv9q090hN8.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9ede9INZm0R8ZMJUtfOsxrw.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9bpHcMS0zZe4mIYvDKG2oeM.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9RHJTnCUrjaAm2S9z52xC3Y.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9YWiMMZ7xLd792ULpGE4W_Y.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
|
After Width: | Height: | Size: 73 KiB |
BIN
impress/examples/classic-slides/images/background-title.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
337
impress/examples/classic-slides/images/background-title.svg
Normal file
@ -0,0 +1,337 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="900"
|
||||
height="700"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="background-title.svg"
|
||||
inkscape:export-filename="/home/hingo/hacking/impress.js/examples/classic-slides/images/background-title.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient3972">
|
||||
<stop
|
||||
style="stop-color:#d7d7d7;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3974" />
|
||||
<stop
|
||||
id="stop4001"
|
||||
offset="0.5"
|
||||
style="stop-color:#e4e4eb;stop-opacity:0.49803922;" />
|
||||
<stop
|
||||
style="stop-color:#f2f2ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3976" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="442.96588"
|
||||
inkscape:cy="486.34297"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="845"
|
||||
inkscape:window-x="-2"
|
||||
inkscape:window-y="-3"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-352.36218)">
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f7f7f7;fill-opacity:1;stroke:#dccbcb;stroke-opacity:1"
|
||||
id="path3195"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-432.85715"
|
||||
sodipodi:cy="448.57144"
|
||||
sodipodi:r1="36.617161"
|
||||
sodipodi:r2="29.623903"
|
||||
sodipodi:arg1="1.2120257"
|
||||
sodipodi:arg2="1.8403442"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -420.00001,482.85716 -41.49172,-11.46298 -1.9197,-43.00323 40.30527,-15.11447 26.82974,33.66196 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,1175.0086,227.72198)"
|
||||
inkscape:transform-center-x="-1.50147"
|
||||
inkscape:transform-center-y="-0.2514516" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#d7d7d7;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3197"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-478.57144"
|
||||
sodipodi:cy="288.57144"
|
||||
sodipodi:r1="47.573788"
|
||||
sodipodi:r2="38.488003"
|
||||
sodipodi:arg1="0.72165485"
|
||||
sodipodi:arg2="1.3499734"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -442.85716,320.00001 -54.56831,12.2497 -28.51269,-48.11219 36.94651,-41.98466 51.34688,22.16424 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,1183.5508,278.97519)"
|
||||
inkscape:transform-center-x="1.6045478"
|
||||
inkscape:transform-center-y="-0.68274238" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,1144.399,329.51655)"
|
||||
inkscape:transform-center-x="-1.409826"
|
||||
inkscape:transform-center-y="-0.48807819" />
|
||||
<image
|
||||
y="-881.14282"
|
||||
x="775.50507"
|
||||
id="image4083"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABP9JREFU
|
||||
WIWdl11oW2UYx3/P+WiSpknHsi2MNgtkGNbVVryoisJkA+sYjG3MG2GwQdEhuxB2M4ThBGGCjLFR
|
||||
pkPZhYIwNrCom+iK9GJ4sVIdumnRdh/CbEu1o7ZZ6UdyHi+aU9+cnqyNLzyQc973/b//5/98vDmi
|
||||
qqx2qCqWZaGq7N69e6/neU/atj0bi8X6Ll269EOxWMRxHFpaWhgcHFw9aC0WiUQARkVEAQW0/Pua
|
||||
quJ53qod+l8EgJTjOCX/cN8cx5lQ1c2e59VEwqqNLiQSiQlV/Sf4Pp1OzwCzIoKIsOrQ1qqAqhKP
|
||||
x/8koABwwVyzWhWqKvA4D4rFYp/5LCKsWbPmNxGpeGdiGCEklUqFEzh69Cgi8oWIvCsilEqlUAJz
|
||||
c3PXzGfbtnEc57sw0g8fPkRVEZF3RKT3wIEDTExMVHq6sLBAX18fwK+AWpalwMcDAwMUi8VlIdiw
|
||||
YcOzdXV1pvyFsFBNTU35x5wrYypw58yZM5UEyszPlhd4BvC327Zts4PAzc3NOI4z5a9zXfePMAJN
|
||||
TU0AXxl4PvZrS2qpKsePH2+JRCLBpPLt1qZNm5pDyvGOv6axsfH74HwymQQYCMMUkZnW1tb/CADP
|
||||
mI0laNFodNp13af97FZVMpnMTcOj0+ac67o5y7LCKkX9EO/YsSNvEsgkk0kFljUYXzrbtueBTj8n
|
||||
gBOA2ratwKuGMu22bc8FQmnK70WjUW1ra0sD4HkepVKJ8fHxLNABfJpIJLzAJt+KwBuFQgFgSyKR
|
||||
+An4JplMxsuH7wXmw5yor69X4GsR2X7jxo2mU6dOVSah2UDi8TjATuBqeWOw77eqKvfv32d0dNT3
|
||||
/PmAgl557Y8i0gUwNDSEqnLs2DGWRlj2+rFUVbq6utqBN23b/jkajarrugth+4Cs4zh+jP+uq6vr
|
||||
FpG2mzdvpsNwXdetTiDM+vv7AdqAtjDC5aa1B9i5f//+FfF6enpYu3ZtbXfB+vXrN7a2ttZVm+/s
|
||||
7MQ8fHJysirW0l2xUggOHz6cAV4RkSupVEoty7rT1dW1bM+uXbsQkdvAiOu6Z4GO3t7eZf3DtHv3
|
||||
7oUTKI+XgE+CSVi2fMie9mDJWZY1ISIngC3VnDXjB/Ac8Hk0Gg3WrlmGRxYWFshms3XASeA00FTu
|
||||
bB9Wq/90Ol0E3gNyg4ODstRPyuw7yguDmysakYhsNzx+3Zg/qao8evQI4MgKWCWgcPDgwbSqLl3H
|
||||
cUDKFjbGI5HIU57n9fkhyuVye/zJVCr1AkB9fT2qeg542SAQHJbruvGRkZEGYDEE3d3d7SIyV4Vx
|
||||
/9atW5fFrqGh4bbvaSwWG1JV20zgWCz2BDBRBfOvJSUNSd83Yuaz/+z69esb5+fnwxL1gQE4GZZg
|
||||
uVyuCbgVzAfgxQoCpVKJu3fvbgR+Nxa/rbr4ZyUInM1mc47jLPV827a9TCazrOSKxSJjY2MAVw3c
|
||||
Hv/MCgVUlfPnzwN8CRwK9gOzR6xbt26nKalt25pOpw+FqTA7O4uqxoGPgAsA09PTVCiwUjMKkf+t
|
||||
YFwbGho+qLa+XHK28XtlAo+zfD7/gOVldkVVN6+0FyrPdKqUXehQXfw2dBevMrNktbGxsQNorAUP
|
||||
QIzWu6qRSCSYmZmZ8jwvUQEkMuV5Xs0Eav40KxQKeJ43FnyvqoOXL1+uFa42BVQV/+tn3759LcPD
|
||||
w3nXdcnn879cvHhx2PM8LKs2n/4Ful6n5lJtlzQAAAAASUVORK5CYII=
|
||||
"
|
||||
height="50.57143"
|
||||
width="50.57143"
|
||||
transform="matrix(0,1,-1,0,0,0)" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#d7d7d7;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3197-6"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-478.57144"
|
||||
sodipodi:cy="288.57144"
|
||||
sodipodi:r1="47.573788"
|
||||
sodipodi:r2="38.488003"
|
||||
sodipodi:arg1="0.72165485"
|
||||
sodipodi:arg2="1.3499734"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -442.85716,320.00001 -54.56831,12.2497 -28.51269,-48.11219 36.94651,-41.98466 51.34688,22.16424 z"
|
||||
transform="matrix(0.44159933,0.23084195,-0.23084195,0.44159933,89.555741,918.94346)"
|
||||
inkscape:transform-center-x="-1.8892484"
|
||||
inkscape:transform-center-y="-0.39033876" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f7f7f7;fill-opacity:1;stroke:#dccbcb;stroke-opacity:1"
|
||||
id="path3195-8"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-432.85715"
|
||||
sodipodi:cy="448.57144"
|
||||
sodipodi:r1="36.617161"
|
||||
sodipodi:r2="29.623903"
|
||||
sodipodi:arg1="1.2120257"
|
||||
sodipodi:arg2="1.8403442"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -420.00001,482.85716 -41.49172,-11.46298 -1.9197,-43.00323 40.30527,-15.11447 26.82974,33.66196 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,38.474821,733.37841)"
|
||||
inkscape:transform-center-x="-1.50147"
|
||||
inkscape:transform-center-y="-0.2514516" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199-9"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,30.121671,876.6823)"
|
||||
inkscape:transform-center-x="-1.409826"
|
||||
inkscape:transform-center-y="-0.48807819" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199-3"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(0.34408672,0,0,0.34408672,-3.3081587,917.1069)"
|
||||
inkscape:transform-center-x="-0.97352805"
|
||||
inkscape:transform-center-y="-0.33703252" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199-3-0"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(0.34408672,0,0,0.34408672,29.548981,922.96025)"
|
||||
inkscape:transform-center-x="-0.97352805"
|
||||
inkscape:transform-center-y="-0.33703252" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f7f7f7;fill-opacity:1;stroke:#dccbcb;stroke-opacity:1"
|
||||
id="path3195-8-0"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-432.85715"
|
||||
sodipodi:cy="448.57144"
|
||||
sodipodi:r1="36.617161"
|
||||
sodipodi:r2="29.623903"
|
||||
sodipodi:arg1="1.2120257"
|
||||
sodipodi:arg2="1.8403442"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -420.00001,482.85716 -41.49172,-11.46298 -1.9197,-43.00323 40.30527,-15.11447 26.82974,33.66196 z"
|
||||
transform="matrix(0.3204918,0,0,0.3204918,79.533061,832.48569)"
|
||||
inkscape:transform-center-x="-0.96571172"
|
||||
inkscape:transform-center-y="-0.16173851" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f7f7f7;fill-opacity:1;stroke:#dccbcb;stroke-opacity:1"
|
||||
id="path3195-0"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-432.85715"
|
||||
sodipodi:cy="448.57144"
|
||||
sodipodi:r1="36.617161"
|
||||
sodipodi:r2="29.623903"
|
||||
sodipodi:arg1="1.2120257"
|
||||
sodipodi:arg2="1.8403442"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -420.00001,482.85716 -41.49172,-11.46298 -1.9197,-43.00323 40.30527,-15.11447 26.82974,33.66196 z"
|
||||
transform="matrix(-0.50808944,0,0,0.49826547,-279.52146,234.09512)"
|
||||
inkscape:transform-center-x="1.5309823"
|
||||
inkscape:transform-center-y="-0.25143993" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#d7d7d7;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3197-4"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-478.57144"
|
||||
sodipodi:cy="288.57144"
|
||||
sodipodi:r1="47.573788"
|
||||
sodipodi:r2="38.488003"
|
||||
sodipodi:arg1="0.72165485"
|
||||
sodipodi:arg2="1.3499734"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -442.85716,320.00001 -54.56831,12.2497 -28.51269,-48.11219 36.94651,-41.98466 51.34688,22.16424 z"
|
||||
transform="matrix(-0.50808944,0,0,0.49826547,-288.23156,285.34529)"
|
||||
inkscape:transform-center-x="-1.6360872"
|
||||
inkscape:transform-center-y="-0.68270036" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199-90"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(-0.50808944,0,0,0.49826547,-248.3102,335.88365)"
|
||||
inkscape:transform-center-x="1.437537"
|
||||
inkscape:transform-center-y="-0.48804535" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="829.30469"
|
||||
y="-856.37756"
|
||||
id="text4226"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="matrix(0,1,-1,0,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4228"
|
||||
x="829.30469"
|
||||
y="-856.37756"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:PT Serif;-inkscape-font-specification:PT Serif">impress.js</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 13 KiB |
BIN
impress/examples/classic-slides/images/background.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
323
impress/examples/classic-slides/images/background.svg
Normal file
@ -0,0 +1,323 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="900"
|
||||
height="700"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="background.svg"
|
||||
inkscape:export-filename="/home/hingo/hacking/impress.js/examples/classic-slides/images/background-title.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient3972">
|
||||
<stop
|
||||
style="stop-color:#d7d7d7;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3974" />
|
||||
<stop
|
||||
id="stop4001"
|
||||
offset="0.5"
|
||||
style="stop-color:#e4e4eb;stop-opacity:0.49803922;" />
|
||||
<stop
|
||||
style="stop-color:#f2f2ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3976" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="442.96588"
|
||||
inkscape:cy="486.34297"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="845"
|
||||
inkscape:window-x="-2"
|
||||
inkscape:window-y="-3"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-352.36218)">
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f7f7f7;fill-opacity:1;stroke:#dccbcb;stroke-opacity:1"
|
||||
id="path3195"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-432.85715"
|
||||
sodipodi:cy="448.57144"
|
||||
sodipodi:r1="36.617161"
|
||||
sodipodi:r2="29.623903"
|
||||
sodipodi:arg1="1.2120257"
|
||||
sodipodi:arg2="1.8403442"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -420.00001,482.85716 -41.49172,-11.46298 -1.9197,-43.00323 40.30527,-15.11447 26.82974,33.66196 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,1080.7229,232.00769)"
|
||||
inkscape:transform-center-x="-1.50147"
|
||||
inkscape:transform-center-y="-0.2514516" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#d7d7d7;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3197"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-478.57144"
|
||||
sodipodi:cy="288.57144"
|
||||
sodipodi:r1="47.573788"
|
||||
sodipodi:r2="38.488003"
|
||||
sodipodi:arg1="0.72165485"
|
||||
sodipodi:arg2="1.3499734"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -442.85716,320.00001 -54.56831,12.2497 -28.51269,-48.11219 36.94651,-41.98466 51.34688,22.16424 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,1089.2651,283.2609)"
|
||||
inkscape:transform-center-x="1.6045478"
|
||||
inkscape:transform-center-y="-0.68274238" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,1050.1133,333.80226)"
|
||||
inkscape:transform-center-x="-1.409826"
|
||||
inkscape:transform-center-y="-0.48807819" />
|
||||
<image
|
||||
y="999.21936"
|
||||
x="852.57141"
|
||||
id="image4083"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABP9JREFU
|
||||
WIWdl11oW2UYx3/P+WiSpknHsi2MNgtkGNbVVryoisJkA+sYjG3MG2GwQdEhuxB2M4ThBGGCjLFR
|
||||
pkPZhYIwNrCom+iK9GJ4sVIdumnRdh/CbEu1o7ZZ6UdyHi+aU9+cnqyNLzyQc973/b//5/98vDmi
|
||||
qqx2qCqWZaGq7N69e6/neU/atj0bi8X6Ll269EOxWMRxHFpaWhgcHFw9aC0WiUQARkVEAQW0/Pua
|
||||
quJ53qod+l8EgJTjOCX/cN8cx5lQ1c2e59VEwqqNLiQSiQlV/Sf4Pp1OzwCzIoKIsOrQ1qqAqhKP
|
||||
x/8koABwwVyzWhWqKvA4D4rFYp/5LCKsWbPmNxGpeGdiGCEklUqFEzh69Cgi8oWIvCsilEqlUAJz
|
||||
c3PXzGfbtnEc57sw0g8fPkRVEZF3RKT3wIEDTExMVHq6sLBAX18fwK+AWpalwMcDAwMUi8VlIdiw
|
||||
YcOzdXV1pvyFsFBNTU35x5wrYypw58yZM5UEyszPlhd4BvC327Zts4PAzc3NOI4z5a9zXfePMAJN
|
||||
TU0AXxl4PvZrS2qpKsePH2+JRCLBpPLt1qZNm5pDyvGOv6axsfH74HwymQQYCMMUkZnW1tb/CADP
|
||||
mI0laNFodNp13af97FZVMpnMTcOj0+ac67o5y7LCKkX9EO/YsSNvEsgkk0kFljUYXzrbtueBTj8n
|
||||
gBOA2ratwKuGMu22bc8FQmnK70WjUW1ra0sD4HkepVKJ8fHxLNABfJpIJLzAJt+KwBuFQgFgSyKR
|
||||
+An4JplMxsuH7wXmw5yor69X4GsR2X7jxo2mU6dOVSah2UDi8TjATuBqeWOw77eqKvfv32d0dNT3
|
||||
/PmAgl557Y8i0gUwNDSEqnLs2DGWRlj2+rFUVbq6utqBN23b/jkajarrugth+4Cs4zh+jP+uq6vr
|
||||
FpG2mzdvpsNwXdetTiDM+vv7AdqAtjDC5aa1B9i5f//+FfF6enpYu3ZtbXfB+vXrN7a2ttZVm+/s
|
||||
7MQ8fHJysirW0l2xUggOHz6cAV4RkSupVEoty7rT1dW1bM+uXbsQkdvAiOu6Z4GO3t7eZf3DtHv3
|
||||
7oUTKI+XgE+CSVi2fMie9mDJWZY1ISIngC3VnDXjB/Ac8Hk0Gg3WrlmGRxYWFshms3XASeA00FTu
|
||||
bB9Wq/90Ol0E3gNyg4ODstRPyuw7yguDmysakYhsNzx+3Zg/qao8evQI4MgKWCWgcPDgwbSqLl3H
|
||||
cUDKFjbGI5HIU57n9fkhyuVye/zJVCr1AkB9fT2qeg542SAQHJbruvGRkZEGYDEE3d3d7SIyV4Vx
|
||||
/9atW5fFrqGh4bbvaSwWG1JV20zgWCz2BDBRBfOvJSUNSd83Yuaz/+z69esb5+fnwxL1gQE4GZZg
|
||||
uVyuCbgVzAfgxQoCpVKJu3fvbgR+Nxa/rbr4ZyUInM1mc47jLPV827a9TCazrOSKxSJjY2MAVw3c
|
||||
Hv/MCgVUlfPnzwN8CRwK9gOzR6xbt26nKalt25pOpw+FqTA7O4uqxoGPgAsA09PTVCiwUjMKkf+t
|
||||
YFwbGho+qLa+XHK28XtlAo+zfD7/gOVldkVVN6+0FyrPdKqUXehQXfw2dBevMrNktbGxsQNorAUP
|
||||
QIzWu6qRSCSYmZmZ8jwvUQEkMuV5Xs0Eav40KxQKeJ43FnyvqoOXL1+uFa42BVQV/+tn3759LcPD
|
||||
w3nXdcnn879cvHhx2PM8LKs2n/4Ful6n5lJtlzQAAAAASUVORK5CYII=
|
||||
"
|
||||
height="32"
|
||||
width="32" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#d7d7d7;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3197-6"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-478.57144"
|
||||
sodipodi:cy="288.57144"
|
||||
sodipodi:r1="47.573788"
|
||||
sodipodi:r2="38.488003"
|
||||
sodipodi:arg1="0.72165485"
|
||||
sodipodi:arg2="1.3499734"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -442.85716,320.00001 -54.56831,12.2497 -28.51269,-48.11219 36.94651,-41.98466 51.34688,22.16424 z"
|
||||
transform="matrix(0.44159933,0.23084195,-0.23084195,0.44159933,328.12717,970.37203)"
|
||||
inkscape:transform-center-x="-1.8892484"
|
||||
inkscape:transform-center-y="-0.39033876" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f7f7f7;fill-opacity:1;stroke:#dccbcb;stroke-opacity:1"
|
||||
id="path3195-8"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-432.85715"
|
||||
sodipodi:cy="448.57144"
|
||||
sodipodi:r1="36.617161"
|
||||
sodipodi:r2="29.623903"
|
||||
sodipodi:arg1="1.2120257"
|
||||
sodipodi:arg2="1.8403442"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -420.00001,482.85716 -41.49172,-11.46298 -1.9197,-43.00323 40.30527,-15.11447 26.82974,33.66196 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,277.04625,784.80698)"
|
||||
inkscape:transform-center-x="-1.50147"
|
||||
inkscape:transform-center-y="-0.2514516" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199-9"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(0.49829507,0,0,0.49829507,268.6931,928.11087)"
|
||||
inkscape:transform-center-x="-1.409826"
|
||||
inkscape:transform-center-y="-0.48807819" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199-3"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(0.34408672,0,0,0.34408672,235.26327,968.53547)"
|
||||
inkscape:transform-center-x="-0.97352805"
|
||||
inkscape:transform-center-y="-0.33703252" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199-3-0"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(0.34408672,0,0,0.34408672,268.12041,974.38882)"
|
||||
inkscape:transform-center-x="-0.97352805"
|
||||
inkscape:transform-center-y="-0.33703252" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f7f7f7;fill-opacity:1;stroke:#dccbcb;stroke-opacity:1"
|
||||
id="path3195-8-0"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-432.85715"
|
||||
sodipodi:cy="448.57144"
|
||||
sodipodi:r1="36.617161"
|
||||
sodipodi:r2="29.623903"
|
||||
sodipodi:arg1="1.2120257"
|
||||
sodipodi:arg2="1.8403442"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -420.00001,482.85716 -41.49172,-11.46298 -1.9197,-43.00323 40.30527,-15.11447 26.82974,33.66196 z"
|
||||
transform="matrix(0.3204918,0,0,0.3204918,318.10449,883.91426)"
|
||||
inkscape:transform-center-x="-0.96571172"
|
||||
inkscape:transform-center-y="-0.16173851" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f7f7f7;fill-opacity:1;stroke:#dccbcb;stroke-opacity:1"
|
||||
id="path3195-0"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-432.85715"
|
||||
sodipodi:cy="448.57144"
|
||||
sodipodi:r1="36.617161"
|
||||
sodipodi:r2="29.623903"
|
||||
sodipodi:arg1="1.2120257"
|
||||
sodipodi:arg2="1.8403442"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -420.00001,482.85716 -41.49172,-11.46298 -1.9197,-43.00323 40.30527,-15.11447 26.82974,33.66196 z"
|
||||
transform="matrix(-0.50808944,0,0,0.49826547,-180.95003,232.66655)"
|
||||
inkscape:transform-center-x="1.5309823"
|
||||
inkscape:transform-center-y="-0.25143993" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#d7d7d7;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3197-4"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-478.57144"
|
||||
sodipodi:cy="288.57144"
|
||||
sodipodi:r1="47.573788"
|
||||
sodipodi:r2="38.488003"
|
||||
sodipodi:arg1="0.72165485"
|
||||
sodipodi:arg2="1.3499734"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -442.85716,320.00001 -54.56831,12.2497 -28.51269,-48.11219 36.94651,-41.98466 51.34688,22.16424 z"
|
||||
transform="matrix(-0.50808944,0,0,0.49826547,-189.66013,283.91672)"
|
||||
inkscape:transform-center-x="-1.6360872"
|
||||
inkscape:transform-center-y="-0.68270036" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#f2f2f2;fill-opacity:1;stroke:#c8b7b7"
|
||||
id="path3199-90"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="-358.57144"
|
||||
sodipodi:cy="152.85715"
|
||||
sodipodi:r1="39.512333"
|
||||
sodipodi:r2="31.966148"
|
||||
sodipodi:arg1="2.4329664"
|
||||
sodipodi:arg2="3.0612849"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m -388.57144,178.57143 -3.72625,-46.29983 42.88228,-17.8513 30.22896,35.26711 -24.19976,39.64758 z"
|
||||
transform="matrix(-0.50808944,0,0,0.49826547,-149.73877,334.45508)"
|
||||
inkscape:transform-center-x="1.437537"
|
||||
inkscape:transform-center-y="-0.48804535" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 12 KiB |
463
impress/examples/classic-slides/index.html
Normal file
@ -0,0 +1,463 @@
|
||||
<!doctype html>
|
||||
|
||||
<!--
|
||||
This is a simple example / template impress.js slide show. The goal is to be
|
||||
easier to read for a first timer than the official and very feature rich
|
||||
demo by bartaz (http://bartaz.github.io/impress.js/). It's also a very
|
||||
traditional presentation that looks like slides (square screens with bullet
|
||||
points...), again to make a first timer feel more at home. From this simple
|
||||
presentation you can then go on to more powerful impress.js presentations!
|
||||
|
||||
This example is hopefully helpful for people that want to create both
|
||||
simple and (eventually) awesome presentations in impress.js and comfortable
|
||||
doing that directly in HTML.
|
||||
|
||||
By: @henrikingo (Still based on the HTML from bartaz' demo.)
|
||||
|
||||
-->
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Classic Slides with impress.js | Simple example impress.js slide show | by Henrik Ingo @henrikingo</title>
|
||||
|
||||
<meta name="description" content="Simple example impress.js slide show" />
|
||||
<meta name="author" content="Henrik Ingo" />
|
||||
<!--
|
||||
Impress.js doesn't depend on any external stylesheets. It adds all of the styles it needs for the
|
||||
presentation to work.
|
||||
|
||||
However, some of the `extras/` modules do come with their own CSS, and we load
|
||||
them here. You can read about each extras module separately in their directory.
|
||||
-->
|
||||
<link rel="stylesheet" href="../../extras/highlight/styles/github.css">
|
||||
<link rel="stylesheet" href="../../extras/mermaid/mermaid.forest.css">
|
||||
|
||||
|
||||
<!--
|
||||
This file contains styles specific for this example presentation.
|
||||
-->
|
||||
<link href="css/classic-slides.css" rel="stylesheet" />
|
||||
|
||||
</head>
|
||||
|
||||
<!--
|
||||
|
||||
Body element is used by impress.js to set some useful class names, that will allow you to detect
|
||||
the support and state of the presentation in CSS or other scripts.
|
||||
|
||||
First very useful class name is `impress-not-supported`. This class means, that browser doesn't
|
||||
support features required by impress.js, so you should apply some fallback styles in your CSS.
|
||||
It's not necessary to add it manually on this element. If the script detects that browser is not
|
||||
good enough it will add this class, but keeping it in HTML means that users without JavaScript
|
||||
will also get fallback styles.
|
||||
|
||||
When impress.js script detects that browser supports all required features, this class name will
|
||||
be removed.
|
||||
|
||||
Another class name on body element also depends on currently active presentation step.
|
||||
-->
|
||||
<body class="impress-not-supported">
|
||||
<!--
|
||||
This fallback message is only visible when there is `impress-not-supported` class on body.
|
||||
-->
|
||||
<div class="fallback-message">
|
||||
<p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
|
||||
<p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
This is the core element used by impress.js: the wrapper for your presentation steps.
|
||||
In this element all the impress.js magic happens.
|
||||
|
||||
data-transition-duration sets the time in microseconds that is used for the
|
||||
animation when transtitioning between slides.
|
||||
|
||||
data-autoplay can be used to set the time in seconds, after which presentation
|
||||
automatically moves to next slide. It can also be set individually for each
|
||||
slide, but here we just set a common duration for all slides.
|
||||
-->
|
||||
<div id="impress" data-transition-duration="1000" data-autoplay="10">
|
||||
|
||||
<!--
|
||||
Each step of the presentation should be an element inside the `#impress` with a class name
|
||||
of `step`. These step elements are positioned, rotated and scaled by impress.js, and
|
||||
the 'camera' shows them on each step of the presentation.
|
||||
|
||||
The `id` attribute of the step element is used to identify it in the URL, but it's optional.
|
||||
If it is not defined, it will get a default value of `step-N` where N is a number of slide.
|
||||
This step is auto-assigned the id "step-1". You can also use `#step-1` in a link, to
|
||||
point directly to this particular step.
|
||||
|
||||
Positioning information is passed through data-* attributes.
|
||||
|
||||
In the example below we only specify x and y position of the step element with `data-x="-1000"`
|
||||
and `data-y="-1500"` attributes. This means that **the center** of the element (yes, the center)
|
||||
will be positioned in point x = -1000px and y = -1500px of the presentation 'canvas'. It will not
|
||||
be rotated or scaled.
|
||||
|
||||
The "step" class is what *must* be used for every "slide". In this example we also use the "slide"
|
||||
class, which adds a rectangle with some background and makes this presentation look like a traditional
|
||||
powerpoint slide show. The "slide" class is entirely optional and indeed you wouldn't use it for
|
||||
your cooler impress.js presentations.
|
||||
-->
|
||||
<div class="step slide title" data-x="-1000" data-y="-1500">
|
||||
<h1>Example Presentation: <br />
|
||||
Classic Slides</h1>
|
||||
<h2>Henrik Ingo</h2>
|
||||
<h3>2015</h3>
|
||||
|
||||
<div class="notes">
|
||||
Any element with the class="notes" will not be displayed. This can
|
||||
be used for speaker notes. In fact, the impressConsole plugin will
|
||||
show it in the speaker console!
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step slide" data-rel-x="1000" data-rel-y="0">
|
||||
<h1>Table of Contents</h1>
|
||||
<ul>
|
||||
<li><a href="#step-1">A title slide</a></li>
|
||||
<li><a href="#step-2">Table of Contents</a></li>
|
||||
<li><a href="#step-3">Text slide</a></li>
|
||||
<li><a href="#step-4">Bullet points</a></li>
|
||||
<li><a href="#step-5">Blockquote & image</a></li>
|
||||
<li><a href="#step-6">More basic text styles</a></li>
|
||||
<li><a href="#step-7">Motion effects 101</a></li>
|
||||
<li><a href="#addons">Add-ons</a></li>
|
||||
<li><a href="#moreinfo">More info</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="notes">
|
||||
<p>Table of Contents, with links to other slides of this same presentation.</p>
|
||||
|
||||
<p>Note that instead of absolute positioning we use relative positioning,
|
||||
with the data-rel-x and data-rel-y attributes. This means the step is
|
||||
positioned relative to the foregoing step. In other words, this is
|
||||
equivalent to data-x="0" data-y="-1500".</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step slide">
|
||||
<h1>A slide with text</h1>
|
||||
<p>This slide has a few paragraphs <br />(p element) of normal text.</p>
|
||||
<p>Personally I like centered or even justified text, as it looks less boring. This can of course be set in <a href="css/classic-slides.css">the css file</a>.</p>
|
||||
<p>I really like the style on links in these presentations. I modified the border to be beveled, but it's mostly from <a href="http://impress.github.io/impress.js/">@bartaz' original demo</a>. <a href="https://twitter.com/bartaz">@bartaz</a> is the creator of impress.js.</p>
|
||||
|
||||
<div class="notes">
|
||||
In this slide, we don't even specify the relative position, rather
|
||||
that too is inherited. So this slide will again be 1000px to the
|
||||
right of the previous one.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step slide">
|
||||
<h1>Bullet points</h1>
|
||||
<ul>
|
||||
<li>A slide with bullet points. This is the first point.</li>
|
||||
<li>Second point</li>
|
||||
<li>Third point. Under this point we also have some sub-bullets:
|
||||
<ul>
|
||||
<li>Sub-bullet 1</li>
|
||||
<li>Sub-bullet 2</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="notes">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
This element introduces rotation.
|
||||
|
||||
Notation shouldn't be a surprise. We use `data-rotate="30"` attribute, meaning that this
|
||||
element should be rotated by 30 degrees clockwise.
|
||||
-->
|
||||
<div class="step slide" data-rel-x="1100" data-rel-y="300" data-rotate="30">
|
||||
<h1>A blockquote & image</h1>
|
||||
<img src="images/3476636111_c551295ca4_b.jpg"
|
||||
alt="Mother Teresa holding a newborn baby"
|
||||
class="right"/>
|
||||
<blockquote>
|
||||
Spread love everywhere you go. <br />Let no one ever come to you without leaving happier.
|
||||
<p style="text-align: right">Mother Teresa</p>
|
||||
<p class="left bottom"><small>Image credit: <a href="https://www.flickr.com/photos/peta-de-aztlan/3476636111/">Peta_de_Aztlan</a>@Flickr. CC-BY 2.0</small></p>
|
||||
</blockquote>
|
||||
|
||||
<div class="notes">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step slide" data-rel-x="800" data-rel-y="800" data-rotate="60">
|
||||
<h1>More text styles</h1>
|
||||
<p>As usual, use <em>em</em> to emphasize, <br />
|
||||
<strong>strong</strong> for strong, <u>u</u> for underline,<br />
|
||||
<strike>strike</strike> for strikethrough and <q>q for inline quotations</q>.</p>
|
||||
|
||||
<p>If you're a software engineer like me, you will often use the
|
||||
<code><code></code> tag for monospaced inline text.</p>
|
||||
|
||||
<div class="notes">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step slide" data-rel-x="300" data-rel-y="1100" data-rotate="90">
|
||||
<h1>Motion effects 101</h1>
|
||||
<p>Items on the slide can</p>
|
||||
<p class="fly-in fly-out">Fly in</p>
|
||||
<p class="fade-in fade-out" style="transition-delay: 2s">Fade in</p>
|
||||
<p class="zoom-in zoom-out" style="transition-delay: 4s">And zoom in</p>
|
||||
|
||||
<p class="left bottom"><small>...just like in PowerPoint. Yeah, I know I'm being lame, but it was fun to learn to do this in CSS3.</small></p>
|
||||
|
||||
<div class="notes">
|
||||
<p>This step here doesn't introduce anything new when it comes to data attributes, but you
|
||||
should notice in the demo that some words of this text are being animated.
|
||||
It's a very basic CSS transition that is applied to the elements when this step element is
|
||||
reached.
|
||||
</p><p>
|
||||
At the very beginning of the presentation all step elements are given the class of `future`.
|
||||
It means that they haven't been visited yet.
|
||||
</p><p>
|
||||
When the presentation moves to given step `future` is changed to `present` class name.
|
||||
That's how animation on this step works - text moves when the step has `present` class.
|
||||
</p><p>
|
||||
Finally when the step is left the `present` class is removed from the element and `past`
|
||||
class is added.
|
||||
</p><p>
|
||||
So basically every step element has one of three classes: `future`, `present` and `past`.
|
||||
Only one current step has the `present` class.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="addons" class="step slide title" data-rel-x="-300" data-rel-y="1100" data-rotate="120">
|
||||
<h2>Add-ons</h2>
|
||||
<div class="notes">
|
||||
<p>This version of impress.js includes several add-ons, striving to make this a
|
||||
full featured presentation app.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step slide" data-rel-x="-800" data-rel-y="800" data-rotate="150" data-autoplay="3">
|
||||
<h1>Impress.js plugins</h1>
|
||||
<ul>
|
||||
<li>A new <a href="https://github.com/impress/impress.js/blob/master/src/plugins/README.md">plugin framework</a> allows for rich extensibility,
|
||||
without bloating the core rendering library.
|
||||
<ul>
|
||||
<li class="substep">Press 'P' to open a presenter console.</li>
|
||||
<li class="substep">When you move the mouse, navigation controls are visible on your bottom left</li>
|
||||
<li class="substep">Autoplay makes the slides advance after a timeout</li>
|
||||
<li class="substep">Relative positioning plugin is often a more convenient way to position your slides when editing. (<a href="https://github.com/impress/impress.js/blob/master/examples/classic-slides/index.html">See html for this presentation.</a>)</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="notes">
|
||||
<p>This presentation also uses speaker notes. They are not visible in the presentation, but shown in the impress console.</p>
|
||||
|
||||
<p>If you pressed P only now, this is the first time you see these notes. In fact, there has been notes on preceding slides as well.
|
||||
You can use the navigation controls at the bottom of the impress console to browse back to them.</p>
|
||||
|
||||
<p>And did you notice how those bullet points appear one by one as you press space/arrow? That's another plugin, called substeps.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step slide" data-rel-x="-1100" data-rel-y="300" data-rotate="180">
|
||||
<h1>Highlight.js</h1>
|
||||
<pre><code>
|
||||
// `init` API function that initializes (and runs) the presentation.
|
||||
var init = function () {
|
||||
if (initialized) { return; }
|
||||
execPreInitPlugins();
|
||||
|
||||
// First we set up the viewport for mobile devices.
|
||||
// For some reason iPad goes nuts when it is not done properly.
|
||||
var meta = $("meta[name='viewport']") || document.createElement("meta");
|
||||
meta.content = "width=device-width, minimum-scale=1, maximum-scale=1, user-scalable=no";
|
||||
if (meta.parentNode !== document.head) {
|
||||
meta.name = 'viewport';
|
||||
document.head.appendChild(meta);
|
||||
}
|
||||
</code></pre>
|
||||
<div class="notes">
|
||||
<p>The Highlight.js library provides really nice color coding of source code.
|
||||
It automatically applies to any code inside a <pre><code> element.</p>
|
||||
<p>Highlight.js is found under the <a href="https://github.com/impress/impress.js/tree/master/extras">extras/</a>
|
||||
directory, since it is an independent third party plugin, not really an impress.js plugin. You have
|
||||
to include it via it's own <link> and <script> tags.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step slide" data-rel-x="-1100" data-rel-y="-300" data-rotate="210">
|
||||
<h1>Mermaid.js</h1>
|
||||
<div class="mermaid">
|
||||
%% This is a comment in mermaid markup
|
||||
graph LR
|
||||
A(Support for<br />diagrams)
|
||||
B[Provided by<br />mermaid.js]
|
||||
C{Already<br />know<br />mermaid?}
|
||||
D(<a href="http://knsv.github.io/mermaid/index.html#usage">Tutorial</a>)
|
||||
E(Great, hope you enjoy!)
|
||||
A-->B
|
||||
B-->C
|
||||
C--No-->D
|
||||
C--Yes-->E
|
||||
classDef startEnd fill:#fcc,stroke:#353,stroke-width:2px;
|
||||
class A,D,E startEnd;
|
||||
</div>
|
||||
|
||||
<h1><a href="http://docs.mathjax.org/en/latest/start.html">MathJax.js</a></h1>
|
||||
<p>Use \(\LaTeX\), MathML or AsciiMath to properly show mathematical formula.</p>
|
||||
<div class="notes">
|
||||
Mermaid.js, likewise in a href="https://github.com/impress/impress.js/tree/master/extras">extras/</a>
|
||||
directory, draws SVG diagrams from a MarkDown-like syntax. To learn
|
||||
more about it <a href="http://knsv.github.io/mermaid/index.html#usage">read the fine manual</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="markdown" class="step slide markdown" data-rel-x="-800" data-rel-y="-800" data-rotate="240">
|
||||
# Markdown.js
|
||||
|
||||
* [Markdown.js](https://github.com/evilstreak/markdown-js) integration: for authors in a hurry!
|
||||
* ...or lazy ;-)
|
||||
* Jot down bullet points in *Markdown*
|
||||
* ...have it automatically converted to HTML
|
||||
* Markdown is converted into a presentation client side, in the browser. This is unlike
|
||||
existing tools like [Hovercraft](https://github.com/regebro/hovercraft) and
|
||||
[markdown-impress](http://binbinliao.com/markdown-impress/) where you generate a new
|
||||
html file on the command line.
|
||||
* [A more advanced Markdown presentation is here.](../markdown/)
|
||||
</div>
|
||||
|
||||
<div id="acme" class="step slide" data-rel-x="-300" data-rel-y="-1100" data-rotate="270">
|
||||
<ul>
|
||||
<li>Remember, in <em>impress.js</em> the full power of HTML5, CSS3 & JavaScript is always at your fingertips!</li>
|
||||
<li>For example, you can use tables, forms, or dynamic charts as you would on any web page:</li>
|
||||
</ul>
|
||||
<h2>Acme Inc Quarterly Profits</h2>
|
||||
|
||||
<!-- Improvised bar graph of divs, to avoid copying something like NVD3 into the repo. -->
|
||||
<div id="acme-graph">
|
||||
<div id="acme-graph-bars">
|
||||
<div id="acme-graph-q1"></div>
|
||||
<div id="acme-graph-q2"></div>
|
||||
<div id="acme-graph-q3"></div>
|
||||
<div id="acme-graph-q4"></div>
|
||||
</div>
|
||||
<div id="acme-graph-bottom"></div>
|
||||
</div>
|
||||
|
||||
<table border="1">
|
||||
<tr><td>Q1</td><td id="acme-q1">234€</td></tr>
|
||||
<tr><td>Q2</td><td id="acme-q2">255€</td></tr>
|
||||
<tr><td>Q3</td><td><input id="acme-q3" size="5" oninput="acmeDrawGraph();" />€ <small>(insert here)</small></td></tr>
|
||||
<tr><td>Q4</td><td><input id="acme-q4" size="5" oninput="acmeDrawGraph();" />€</td></tr>
|
||||
</table>
|
||||
<div class="notes">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var acmeDrawGraph = function() {
|
||||
var profits = {};
|
||||
|
||||
// Q1-Q2: get innerHTML, remove €
|
||||
var value = document.getElementById('acme-q1').innerHTML;
|
||||
if( value[value.length-1] == "€" ) value = value.substring(0, value.length-1);
|
||||
profits['q1'] = value;
|
||||
var value = document.getElementById('acme-q2').innerHTML;
|
||||
if( value[value.length-1] == "€" ) value = value.substring(0, value.length-1);
|
||||
profits['q2'] = value;
|
||||
|
||||
// Q3-Q4: get input.value
|
||||
profits['q3'] = document.getElementById('acme-q3').value;
|
||||
profits['q4'] = document.getElementById('acme-q4').value;
|
||||
|
||||
// Convert all to numeric value, and remember max value for scaling purposes.
|
||||
var max = profits['q1'];
|
||||
for ( var q in profits ) {
|
||||
profits[q] = isNaN(profits[q]) ? 0 : Number(profits[q]);
|
||||
if( profits[q] > max ) {
|
||||
max = profits[q];
|
||||
}
|
||||
}
|
||||
|
||||
// Draw the bar graph
|
||||
for ( var q in profits ) {
|
||||
var h = 200 * profits[q] / max;
|
||||
var div = document.getElementById('acme-graph-'+q);
|
||||
div.style = 'height: ' + h + 'px';
|
||||
}
|
||||
};
|
||||
// This draws the first 2 bars during page load
|
||||
acmeDrawGraph();
|
||||
</script>
|
||||
|
||||
<!--
|
||||
This step also sets a custom data-transition-duration. All of the above steps used the value set
|
||||
in the root div#impress element, but it is also allowed to set it for each step. Since transitioning
|
||||
to this step will rotate twice around it's axis, we give the transition a bit more time here.
|
||||
-->
|
||||
<div id="moreinfo" class="step slide" data-x="2020" data-y="700" data-rotate="720" data-transition-duration="2000">
|
||||
<h1>More info</h1>
|
||||
<ul>
|
||||
<li><a href="https://github.com/impress/impress.js/blob/master/DOCUMENTATION.md">DOCUMENTATION.md</a> is the API reference.
|
||||
</li>
|
||||
<li><a href="https://github.com/impress/impress.js/blob/master/examples/classic-slides/index.html">Source of this presentation itself</a> is commented</li>
|
||||
<li><a href="http://impress.github.io/impress.js/">Advanced Impress.js demo</a> by <a href="http://twitter.com/bartaz">@bartaz</a>
|
||||
<ul>
|
||||
<li>Again, the <a href="http://github.com/impress/impress.js/blob/master/index.html">html</a>
|
||||
and <a href="https://github.com/impress/impress.js/blob/master/css/impress-demo.css">css</a> source is well commented.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>More examples and demos:
|
||||
<ul>
|
||||
<li><a href="https://github.com/impress/impress.js/tree/master/examples">examples/</a> in this repository</li>
|
||||
<li><a href="https://github.com/impress/impress.js/wiki/Examples-and-demos">on the impress.js wiki</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Check out <a href="https://github.com/impress/impressionist">Impressionist</a>: a 3D GUI to create impress.js presentations</li>
|
||||
</ul>
|
||||
|
||||
<div class="notes">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- This last, empty "slide" is set to be very large using the data-scale attribute,
|
||||
so that it covers all the other slides you just saw.
|
||||
It's a common way of zooming out at the end, to show the whole presentation.
|
||||
In CSS, we set pointer-events:none to make this slide non-clickable.
|
||||
It makes a difference at least for SVG content, such as the mermaid diagram. -->
|
||||
<div id="overview" class="step" data-x="3000" data-y="1500" data-scale="10" style="pointer-events: none;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
Add navigation-ui controls: back, forward and a select list.
|
||||
Add a progress indicator bar (current step / all steps)
|
||||
Add the help popup plugin
|
||||
-->
|
||||
<div id="impress-toolbar"></div>
|
||||
|
||||
<div class="impress-progressbar"><div></div></div>
|
||||
<div class="impress-progress"></div>
|
||||
|
||||
<div id="impress-help"></div>
|
||||
|
||||
<!-- Extra modules
|
||||
Load highlight.js, mermaid.js, markdown.js and MathJax.js from extras.
|
||||
If you're curious about details, these are initialized in src/plugins/extras/extras.js -->
|
||||
<script type="text/javascript" src="../../extras/highlight/highlight.pack.js"></script>
|
||||
<script type="text/javascript" src="../../extras/mermaid/mermaid.min.js"></script>
|
||||
<script type="text/javascript" src="../../extras/markdown/markdown.js"></script>
|
||||
<script type="text/javascript" src="../../extras/mathjax/MathJax.js?config=TeX-AMS_CHTML"></script>
|
||||
<!--
|
||||
To make all described above really work, you need to include impress.js in the page.
|
||||
You also need to call a `impress().init()` function to initialize impress.js presentation.
|
||||
And you should do it in the end of your document.
|
||||
-->
|
||||
<script type="text/javascript" src="../../js/impress.js"></script>
|
||||
<script>impress().init();</script>
|
||||
|
||||
</body>
|
||||
</html>
|
257
impress/examples/cube/css/cube.css
Normal file
@ -0,0 +1,257 @@
|
||||
@import url(fonts.css);
|
||||
|
||||
|
||||
|
||||
/* Fallback message */
|
||||
|
||||
.fallback-message {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.3;
|
||||
|
||||
width: 780px;
|
||||
padding: 10px 10px 0;
|
||||
margin: 20px auto;
|
||||
|
||||
border: 1px solid #E4C652;
|
||||
border-radius: 10px;
|
||||
background: #EEDC94;
|
||||
}
|
||||
|
||||
.fallback-message p {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.impress-supported .fallback-message {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Body & steps */
|
||||
body {
|
||||
font-family: 'PT Sans', sans-serif;
|
||||
min-height: 740px;
|
||||
|
||||
background: #00000f;
|
||||
color: rgb(102, 102, 102);
|
||||
}
|
||||
|
||||
.step {
|
||||
position: relative;
|
||||
width: 700px;
|
||||
height: 700px;
|
||||
padding: 40px 60px;
|
||||
margin: 20px auto;
|
||||
|
||||
box-sizing: border-box;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
background-color: white;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
|
||||
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .1);
|
||||
font-family: 'Open Sans', Arial, sans-serif;
|
||||
font-size: 30px;
|
||||
letter-spacing: -1px;
|
||||
|
||||
}
|
||||
|
||||
#overview {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
/*
|
||||
Make inactive steps a little bit transparent.
|
||||
*/
|
||||
.impress-enabled .step {
|
||||
margin: 0;
|
||||
opacity: 0.7;
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
.impress-enabled .step.active { opacity: 1 }
|
||||
|
||||
.notes {
|
||||
display: none;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
margin-bottom: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0.7em;
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 0.2em;
|
||||
}
|
||||
|
||||
/* Highlight.js used for coloring pre > code blocks. */
|
||||
pre > code {
|
||||
font-size: 14px;
|
||||
text-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* Inline code, no Highlight.js */
|
||||
code {
|
||||
font-family: "Cutive mono","Courier New", monospace;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
padding: 0 0.1em;
|
||||
background: rgba(200,200,200,0.2);
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.9);
|
||||
border-radius: 0.2em;
|
||||
border-bottom: 1px solid rgba(100,100,100,0.2);
|
||||
border-left: 1px solid rgba(100,100,100,0.2);
|
||||
|
||||
transition: 0.5s;
|
||||
}
|
||||
a:hover,
|
||||
a:focus {
|
||||
background: rgba(200,200,200,1);
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
em {
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
strong {
|
||||
text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
|
||||
}
|
||||
|
||||
q {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
strike {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.4em;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
This version of impress.js supports plugins, and in particular, a UI toolbar
|
||||
plugin that allows easy navigation between steps and autoplay.
|
||||
*/
|
||||
.impress-enabled div#impress-toolbar {
|
||||
position: fixed;
|
||||
right: 1px;
|
||||
bottom: 1px;
|
||||
opacity: 0.6;
|
||||
z-index: 10;
|
||||
}
|
||||
.impress-enabled div#impress-toolbar > span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
With help from the mouse-timeout plugin, we can hide the toolbar and
|
||||
have it show only when you move/click/touch the mouse.
|
||||
*/
|
||||
body.impress-mouse-timeout div#impress-toolbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
In fact, we can hide the mouse cursor itself too, when mouse isn't used.
|
||||
*/
|
||||
body.impress-mouse-timeout {
|
||||
cursor: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Progress bar */
|
||||
.impress-progressbar {
|
||||
position: absolute;
|
||||
right: 118px;
|
||||
bottom: 1px;
|
||||
left: 118px;
|
||||
border-radius: 7px;
|
||||
border: 2px solid rgba(100, 100, 100, 0.2);
|
||||
}
|
||||
.impress-progressbar DIV {
|
||||
width: 0;
|
||||
height: 2px;
|
||||
border-radius: 5px;
|
||||
background: rgba(75, 75, 75, 0.4);
|
||||
transition: width 1s linear;
|
||||
}
|
||||
.impress-progress {
|
||||
position: absolute;
|
||||
left: 59px;
|
||||
bottom: 1px;
|
||||
text-align: left;
|
||||
font-size: 10pt;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
/* Help popup plugin */
|
||||
.impress-enabled #impress-help {
|
||||
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.5);
|
||||
color: #EEEEEE;
|
||||
font-size: 80%;
|
||||
position: fixed;
|
||||
left: 2em;
|
||||
bottom: 2em;
|
||||
width: 24em;
|
||||
border-radius: 1em;
|
||||
padding: 1em;
|
||||
text-align: center;
|
||||
z-index: 100;
|
||||
font-family: Verdana, Arial, Sans;
|
||||
}
|
||||
.impress-enabled #impress-help td {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
/*
|
||||
And as the last thing there is a workaround for quite strange bug.
|
||||
It happens a lot in Chrome. I don't remember if I've seen it in Firefox.
|
||||
|
||||
Sometimes the element positioned in 3D (especially when it's moved back
|
||||
along Z axis) is not clickable, because it falls 'behind' the <body>
|
||||
element.
|
||||
|
||||
To prevent this, I decided to make <body> non clickable by setting
|
||||
pointer-events property to `none` value.
|
||||
Value if this property is inherited, so to make everything else clickable
|
||||
I bring it back on the #impress element.
|
||||
|
||||
If you want to know more about `pointer-events` here are some docs:
|
||||
https://developer.mozilla.org/en/CSS/pointer-events
|
||||
|
||||
There is one very important thing to notice about this workaround - it makes
|
||||
everything 'unclickable' except what's in #impress element.
|
||||
|
||||
So use it wisely ... or don't use at all.
|
||||
*/
|
||||
.impress-enabled { pointer-events: none }
|
||||
.impress-enabled #impress { pointer-events: auto }
|
||||
.impress-enabled #impress-toolbar { pointer-events: auto }
|
||||
.impress-enabled #impress-console-button { pointer-events: auto }
|
497
impress/examples/cube/css/fonts.css
Normal file
@ -0,0 +1,497 @@
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Cutive Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Cutive Mono'), local('CutiveMono-Regular'), url(http://fonts.gstatic.com/s/cutivemono/v4/N5odNRruTwjvCM8y77PhQSYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Cutive Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Cutive Mono'), local('CutiveMono-Regular'), url(http://fonts.gstatic.com/s/cutivemono/v4/N5odNRruTwjvCM8y77PhQY4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmgpAmOCqD37_tyH_8Ri5MM.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxsPNMTLbnS9uQzHQlYieHUU.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxgyhumQnPMBCoGYhRaNxyyY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxhUVAXEdVvYDDqrz3aeR0Yc.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxlf4y_3s5bcYyyLIFUSWYUU.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxnywqdtBbUHn3VPgzuFrCy8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxl2umOyRU7PgRiv8DXcgJjk.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/JX7MlXqjSJNjQvI4heMMGvY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/vtwNVMP8y9C17vLvIBNZI_Y6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/9kaD4V2pNPMMeUVBHayd7vY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans'), local('PTSans-Regular'), url(http://fonts.gstatic.com/s/ptsans/v8/ATKpv8nLYAKUYexo8iqqrg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/kTYfCWJhlldPf5LnG4ZnHCEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/g46X4VH_KHOWAAa-HpnGPiEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/hpORcvLZtemlH8gI-1S-7iEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://fonts.gstatic.com/s/ptsans/v8/0XxGQsSc1g4rdRdjJKZrNPk_vArhqVIZ0nv9q090hN8.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/GpWpM_6S4VQLPNAQ3iWvVRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/7dSh6BcuqDLzS2qAASIeuhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/DVKQJxMmC9WF_oplMzlQqRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Sans Italic'), local('PTSans-Italic'), url(http://fonts.gstatic.com/s/ptsans/v8/PIPMHY90P7jtyjpXuZ2cLFtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkK-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkJX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkD0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Sans Bold Italic'), local('PTSans-BoldItalic'), url(http://fonts.gstatic.com/s/ptsans/v8/lILlYDvubYemzYzN7GbLkOgdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/5hX15RUpPERmeybVlLQEWBTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/fU0HAfLiPHGlZhZpY6M7dBTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/CPRt--GVMETgA6YEaoGitxTbgVql8nDJpwnrE27mub0.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif'), local('PTSerif-Regular'), url(http://fonts.gstatic.com/s/ptserif/v8/I-OtoJZa3TeyH6D9oli3ifesZW2xOQ-xsNqO47m55DA.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpDTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpDUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpCYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold'), local('PTSerif-Bold'), url(http://fonts.gstatic.com/s/ptserif/v8/QABk9IxT-LFTJ_dQzv7xpI4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/O_WhD9hODL16N4KLHLX7xSEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/3Nwg9VzlwLXPq3fNKwVRMCEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/b31S45a_TNgaBApZhTgE6CEAvth_LlrfE80CYdSH47w.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('PT Serif Italic'), local('PTSerif-Italic'), url(http://fonts.gstatic.com/s/ptserif/v8/03aPdn7fFF3H6ngCgAlQzPk_vArhqVIZ0nv9q090hN8.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9ede9INZm0R8ZMJUtfOsxrw.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9bpHcMS0zZe4mIYvDKG2oeM.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9RHJTnCUrjaAm2S9z52xC3Y.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'PT Serif';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('PT Serif Bold Italic'), local('PTSerif-BoldItalic'), url(http://fonts.gstatic.com/s/ptserif/v8/Foydq9xJp--nfYIx2TBz9YWiMMZ7xLd792ULpGE4W_Y.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
|
||||
}
|
||||
|
60
impress/examples/cube/index.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Cube | Explore impress.js in 3D | by Henrik Ingo @henrikingo</title>
|
||||
<meta name="description" content="Explore impress.js in 3D" />
|
||||
<meta name="author" content="Henrik Ingo" />
|
||||
<link href="css/cube.css" rel="stylesheet" />
|
||||
</head>
|
||||
|
||||
<body class="impress-not-supported">
|
||||
<div class="fallback-message">
|
||||
<p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
|
||||
<p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
|
||||
</div>
|
||||
|
||||
<div id="impress" data-transition-duration="2000">
|
||||
|
||||
<div class="step" data-x="0" data-y="0" data-z="350"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowRight ArrowLeft o" data-goto-next-list="step-4 step-3 step-2 step-5 overview">
|
||||
<p>Slide one</p>
|
||||
</div>
|
||||
|
||||
<div class="step" data-x="350" data-y="0" data-z="0" data-rotate-y="90"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowRight ArrowLeft o" data-goto-next-list="step-4 step-3 step-6 step-1 overview">
|
||||
<p>Slide two</p>
|
||||
</div>
|
||||
|
||||
<div class="step" data-x="0" data-y="350" data-z="0" data-rotate-x="-90" data-rotate-z="90"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowRight ArrowLeft o" data-goto-next-list="step-2 step-5 step-6 step-1 overview">
|
||||
<p>Slide three</p>
|
||||
</div>
|
||||
|
||||
<div class="step" data-x="0" data-y="-350" data-z="0" data-rotate-x="90" data-rotate-z="-90"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowRight ArrowLeft o" data-goto-next-list="step-5 step-2 step-6 step-1 overview">
|
||||
<p>Slide four</p>
|
||||
</div>
|
||||
|
||||
<div class="step" data-x="-350" data-y="0" data-z="0" data-rotate-y="-90" data-rotate-z="-180"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowRight ArrowLeft o" data-goto-next-list="step-3 step-4 step-6 step-1 overview">
|
||||
<p>Slide five</p>
|
||||
</div>
|
||||
|
||||
<div class="step" data-x="0" data-y="0" data-z="-350" data-rotate-y="-180" data-rotate-z="-180"
|
||||
data-goto-key-list="ArrowUp ArrowDown ArrowRight ArrowLeft o" data-goto-next-list="step-3 step-4 step-2 step-5 overview">
|
||||
<p>Slide six</p>
|
||||
</div>
|
||||
|
||||
<div id="overview" class="step" data-x="700" data-y="-100" data-z="1000" data-scale="1" style="pointer-events: none;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="impress-toolbar"></div>
|
||||
<div id="impress-help"></div>
|
||||
|
||||
<script type="text/javascript" src="../../js/impress.js"></script>
|
||||
<script>impress().init();</script>
|
||||
|
||||
</body>
|
||||
</html>
|
14
impress/examples/index.html
Normal file
@ -0,0 +1,14 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Example presentations</title>
|
||||
</head>
|
||||
<body><h1>Example presentations</h1>
|
||||
<ul><br />
|
||||
<li><a href="2D-navigation/">2D-navigation</a></li>
|
||||
<li><a href="3D-rotations/">3D-rotations</a></li>
|
||||
<li><a href="classic-slides/">classic-slides</a></li>
|
||||
<li><a href="cube/">cube</a></li>
|
||||
<li><a href="markdown/">markdown</a></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
47
impress/examples/markdown/css/devopsy.css
Normal file
@ -0,0 +1,47 @@
|
||||
/***** Menu where this style is selected *****/
|
||||
.devopsy .css-menu-devopsy {
|
||||
border: solid 1px #aaaaaa;
|
||||
}
|
||||
|
||||
|
||||
/***** Presentation *****/
|
||||
|
||||
body.devopsy {
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.devopsy .step {
|
||||
color: #ffff00;
|
||||
}
|
||||
|
||||
/***** Styles *****/
|
||||
.devopsy h1,
|
||||
.devopsy h2,
|
||||
.devopsy h3 {
|
||||
color: #ff6600;
|
||||
}
|
||||
|
||||
.devopsy a {
|
||||
color: #00ffff;
|
||||
}
|
||||
|
||||
.devopsy blockquote {
|
||||
text-shadow: 3px 3px 3px rgba(255, 100, 0, .7);
|
||||
}
|
||||
|
||||
.devopsy em {
|
||||
text-shadow: 3px 3px 3px rgba(255, 100, 0, .7);
|
||||
}
|
||||
|
||||
.devopsy strong {
|
||||
text-shadow: 3px 3px 3px rgba(255, 100, 0, .7);
|
||||
}
|
||||
|
||||
.devopsy q {
|
||||
text-shadow: 3px 3px 3px rgba(255, 100, 0, .7);
|
||||
}
|
||||
|
||||
.devopsy strike {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|