aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartek Szopka <bartek.szopka+github@gmail.com>2012-01-04 20:44:30 +0100
committerBartek Szopka <bartek.szopka+github@gmail.com>2012-01-04 20:44:30 +0100
commitd0d67fe4357cefdce459816d7f55925cc6b0801d (patch)
tree8438546dbd4322c493f6a0f0bcf12cc512c531ed
parent8953f37397cf89b3341401eea3d23de847471099 (diff)
downloadimpress.js-d0d67fe4357cefdce459816d7f55925cc6b0801d.tar.gz
impressive explanation about browser support
-rw-r--r--README.md51
1 files changed, 42 insertions, 9 deletions
diff --git a/README.md b/README.md
index 3e0bdfa..ceeda5a 100644
--- a/README.md
+++ b/README.md
@@ -32,24 +32,55 @@ please contact me via GitHub or send me a pull request to updated `README.md` fi
BROWSER SUPPORT
-----------------
-Impress.js is developed with current webkit-based browsers in mind (Chrome,
-Safari), but *should* work also in other browsers supporting CSS3 3D transforms
-and transitions (Firefox, IE10).
+### TL;DR;
+
+Currently impress.js works fine in latest Chrome/Chromium browser, Safari 5.1 and Firefox 10
+(to be released in January 2012). IE10 support is currently unknown, so let's assume it doesn't
+work there. It also doesn't work in Opera.
+
+As it was not developed with mobile browsers in mind, it currently doesn't work on
+any mobile devices, including tablets.
+
+### Still interested? Read more...
Additionally for the animations to run smoothly it's required to have hardware
acceleration support in your browser. This depends on the browser, your operating
system and even kind of graphic hardware you have in your machine.
-It's actively developed with newest Chromium and tested in Firefox Aurora.
+For browsers not supporting CSS3 3D transforms impress.js adds `impress-not-supported`
+class on `#impress` element, so fallback styles can be applied to make all the content accessible.
-I don't really expect it to run smoothly in non-webkit-based browser.
-If it does, just let me know, I'll glad to hear that!
-For browsers not supporting CSS3 3D transforms impress.js adds `impress-not-supported`
-class on `#impress` element, so fallback styles can be applied.
+### Even more explanation and technical stuff
+
+Let's put this straight -- wide browser support was (and is) not on top of my priority list for
+impress.js. It's built on top of fresh technologies that just start to appear in the browsers
+and I'd like to rather look forward and develop for the future than being slowed down by the past.
+
+But it's not "hard-coded" for any particular browser or engine. If any browser in future will
+support features required to run impress.js, it will just begin to work there without changes in
+the code.
+
+From technical point of view all the positioning of presentation elements in 3D requires CSS 3D
+transforms support. Transitions between presentation steps are based on CSS transitions.
+So these two features are required by impress.js to display presentation correctly.
+
+Unfortunately the support for CSS 3D transforms and transitions is not enough for animations to
+run smoothly. If the browser doesn't support hardware acceleration or the graphic card is not
+good enough the transitions will be laggy.
+
+Additionally the code of impress.js relies on APIs proposed in HTML5 specification, including
+`classList` and `dataset` APIs. If they are not available in the browser, impress.js will not work.
+
+Fortunately, as these are JavaScript APIs there are polyfill libraries that patch older browsers
+with these APIs.
+
+For example IE10 is said to support CSS 3D transforms and transitions, but it doesn't have `classList`
+not `dataset` APIs implemented at the moment. So including polyfill libraries *should* help IE10
+with running impress.js.
-### Mobile
+### And few more details about mobile support
Mobile browsers are currently not supported. Even iOS and Android browsers that support
CSS 3D transforms are forced into fallback view at this point.
@@ -57,6 +88,8 @@ CSS 3D transforms are forced into fallback view at this point.
Anyway, I'm really curious to see how modern mobile devices such as iPhone or iPad can
handle such animations, so future mobile support is considered.
+iOS supports `classList` and `dataset` APIs starting with version 5, so iOS 4.X and older is not
+likely to be supported (without polyfill code).
LICENSE