CLOUDSHELF READER

The next generation mobile technology for direct distribution of EPUB3 digital publications.

Cloudshelf Reader empowers learning and productivity with tools for bookmarking, highlighting, annotations and full text search as well as tools for browsing, tagging and searching bookmarks and annotations across all downloaded documents – in one place. We’ve also included a fun drawing feature for annotating publications with a stylus or finger. This feature is experimental at this point, but we see opportunities to extend and refine this feature in many exciting ways.

In Cloudshelf Reader, we are leveraging the work we’ve been doing with the Readium Foundation over the last few years to build core open source technology components necessary to build browser and platform native reading system apps that support EPUB3.

Cloudshelf Reader is not an update to, or replacement of Bluefire Reader. It is a completely new product and we continue to offer our popular Bluefire Reader white label app service. More information about our Cloudshelf Reader products and services can be found on our website.

Cloudshelf Reader for Android released on June 23, 2017.

Features at a Glance:

The power of EPUB3: Deploy mobile optimized, adaptive layout publications containing audio, video, interactive modules, animation, media overlays and more. Or take advantage of the fixed layout support to deliver media-rich, interactive ebooks with complex formatting and illustrations.

Tools for active reading: Cloudshelf Reader empowers learning and productivity with tools for bookmarking, highlighting, annotations, definition lookup, and full text search as well as tools for browsing, tagging, and searching bookmarks, and annotations across all downloaded documents.

Accessible by design: EPUB3 is the most accessible document format, and so Cloudshelf Reader was designed from the bottom-up to leverage the accessibility features of the iOS and Android operating systems.  Emerging a11y regulations, and requirements mean that addressing the needs of those with print disabilities is not just the right thing to do, it is mission critical.

Protect your assets: Protect your high value content and confidential information with Sony DADC’s User Rights Management System (URMS) with advanced anti-tampering technologies, and a renewable DRM system that defeats piracy software hacks.

The most flexible ereading solution on the market.

Inkling for Publishing

Inkling Habitat is the first and only professional publishing environment that enables non-technical users to create structured XML/HTML content at enterprise scale. Create mobile-ready, future-proof, standards-compliant content (e.g., HTML5, CSS3, EPUB3) with the ease of creating a Word document.

Using Habitat, publishers will finally have the tools to build high-quality digital content they’re proud of. With Habitat, publishers can:

  • Collaborate seamlessly from anywhere in the world
  • Build delightful interactive content experiences, and
  • Publish to multiple platforms with one click.

Quickly collaborate across teams

Inkling Habitat is designed for a collaborative workflow, allowing all users to simultaneously edit the same version of the content. Tag colleagues and vendor partners with “tickets” to assign tasks, eliminating email communications and attachments, and making your workflow management for all projects more efficient.

Scaleable infrastructure

The Inkling platform is robust, responsive, and scalable, built to meet the needs of today’s content producers. Inkling’s capabilities have been proven across live, global implementations with the world’s largest learning companies. Even with 20,000 active users, 60,000 projects, and terabytes of data, Inkling provides fantastic platform performance and impeccable reliability.

I also previewed Inkling for Web, which will make all of Inkling’s great interactive content available in any web browser. Inkling Habitat gives professional publishers everything they need to create and publish media-rich interactive content for both iPad and the Web, cross platform and at scale.

Instead, the Inkling platform enables a first-class interactive experience for every digital device publishers want to reach. With Inkling Habitat, publishers big and small can deploy standards-based content that includes guided tours, 3D objects, interactive quizzes, and high definition video, in addition to impeccable text content.

The Inkling Content Discovery Platform (“the CDP”) unlocks book content on Inkling so that it can be indexed by search engines like Google and read by users for free, right when they want it. Every section inside an Inkling book has its own URL that can be indexed by search engines or shared individually, letting readers more easily discover, share, and purchase the book content they are looking for. And with content that can be discovered, distributed, and purchased via the Inkling Store, the App Store, or third parties with standards-compliant EPUB exports, the opportunity for incremental revenue is unlimited.

This ecosystem is more than just our vision for the future; it is already becoming a reality in the present.

Create collaboratively with Inkling Habitat.

Inkling Habitat is a cloud-based authoring environment where your team can collaborate to create inspiring, interactive content for all devices.

Interactivity: Smart drag-and-drop widgets add interactivity, including videos, slideshows, and quizzes

Cross-device preview: Instant previews with responsive layout ensure your content will shine on any device

Media hosting: Easy media uploads thanks to our high-performing cloud-hosted media service

Project templates: Choose from a set of templates that can be customized to reflect your brand

Easy import and export.

.TXT, .DOC, .EPUB, .PDF, .INDD

Save time and money with collaborative workflows.

Collaboration tools: Make comments, assign tasks to collaborators, set permissions, and seamlessly track progress

Version control: Edit easily, track changes between versions, and roll back to any previous version

Single source of truth: Everyone collaborates on a single, definitive version in the cloud, and nothing is lost—ever

Cloud storage: Never worry about file size or storage

How To Read E-Books on Chrome & Firefox

E-book readers have gained more and more popularity in recent years. However, not everyone wants to buy an Amazon Kindle or Sony E-Book Reader. That doesn’t mean that you have to relinquish reading e-books!

Apps for your Android tablet or smartphone, iPad or iPhone enable you to read electronic books with mobile devices as well. And there are just as many programs you can download to read e-books on your computer or laptop. What if you don’t want to install a CPU and memory space wasting program to your computer?

For all of you that don’t want to clutter their PC or Mac with programs, we have gathered 8 extensions and apps for Google Chrome and Firefox that allow you to read EPUB files stored on your hard drive. EPUb is one of the best and most common e-book files and thus ideally suited for this purpose.

EPUB Reader Extensions & Apps for Chrome

If you install a new app to Google Chrome, you can access them by typing chrome://apps into the URL field of the browser. That way, you will open a page with all your installed Chrome apps. Just click on the one you want to open.

To find the apps and extensions mentioned, just go to the Google Chrome Webstore.

1. Simple EPUB Reader

It is a Google Chrome app that works offline as well, meaning that no internet connection is necessary to use the app for reading.

The app has a library function in which you can load and store several books. The app also features a backup for recently read books and keyboard shortcuts to browse the pages. Clicking on the button on the upper left side opens a list of chapters for the opened book.

Text size and color as well as the background color for reading are customizable. Thus, it’s possible to choose a darker background when reading in the night.

The downside of the app lies within two of it’s features. One is “Text to Speech” which can be activated clicking the speech bubble icon on the upper right side. However, this feature doesn’t seem to work or requires additional installations because we couldn’t make it work at all.

The Text and “Text to EPUB Converter” and the “Image to EPUB converter” are, in theory, nice and useful features. However, there are several problems when trying to convert from PDF to EPUB with the app, resulting in an unreadable document. Thus, we do not recommend using the app for conversion.

2. Cloud ePub Reader with Drive

3. Readiator EPUB Reader

4. MagicScroll Web Reader

5. Readium

6. EBook Offline Reader

7. Livemargin Reader

EPUB Reader Extensions & Apps for Firefox

EPUBReader is the Mozilla add-on that allows you to read e-books using your Firefox browser, even in offline mode. It is launched from the Firefox toolbar and opens to a catalog of your uploaded EPUB files.

From the catalog, you have direct access to books from archive.org and gutenberg.org (you need to be connected to the internet to access those, of course). You can grab books from there or import them from your hard drive. All EPUB links opened in Firefox will automatically be opened in a readable format by the add-on as well. Exporting the whole catalog or library to your computer is possible as well.

When opening a book, you have access to the list of chapters. You can set bookmarks and save copies of the book you are reading. Furthermore, the add-on provides some customizations with regard to font-size, face and color, margin, and the appearance of links and the table of contents.

 

Read epub files using javascript – Epub.js

Epub.js:

Epub.js is a JavaScript library for rendering ePub documents in the browser, across many devices.

Epub.js provides an interface for common ebook functions (such as rendering, persistence and pagination) without the need to develop a dedicated application or plugin.

some useful snippets of code to use with epub.js

1. Generating and getting page numbers:

To use pagination, first you have to generate the page numbers. This will return a promise which completes after the pagination is generated:

book.generatePagination().then(function () {
console.log(“The pagination has been generated”);
});

To have pagination consistent across different window sizes, you can specify a fixed size in pixels for each page:

var width = 600;
var height = 600;

book.generatePagination(width, height).then(function () {
console.log(“The pagination has been generated”);
});

To get the page number of a CFI:

book.pagination.pageFromCfi(cfiGoesHere);
/* This returns a page number as an Integer */
To get the current page:

book.pagination.pageFromCfi(book.getCurrentLocationCfi());
/* This returns a page number as an Integer */

2. Searching the current chapter

To search the current chapter of the book for some text, you can use the following code:

book.currentChapter.find(“Some Text to look for”);

/*
* This returns an array of objects like:
* [{
* “cfi”: “epubcfi(/6/18[chap-1]!4/2/30/1:24,1:31)”,
* “excerpt”: “…here is some text to look for…”
* }, {
* “cfi”: “epubcfi(/6/18[chap-1]!4/2/66/1:22,1:29)”,
* “excerpt”: “…I have found some more text to look for in this book…”
* }]
*
* The array can be looped over with a for loop, and used for search results.
* This function is case insensitive.
* Note that this only searches the current chapter.
*
*/

3. Loading a book from a file input

This only works with browsers which support ArrayBuffer.

Add this to your HTML:

<input type=”file” accept=”application/epub+zip” id=”bookChooser”>
And this to your JavaScript:

book = null;
document.getElementById(‘bookChooser’).addEventListener(‘change’, function(e) {
var firstFile = e.target.files[0];
if (window.FileReader) {
var reader = new FileReader();
reader.onload = function(e) {
book = ePub({ bookPath: e.target.result });

book.renderTo(“area”);
/* Replace area with the id for your div to put the book in */
}.bind(this);

reader.readAsArrayBuffer(firstFile);
} else {
alert(“Your browser does not support the required features. Please use a modern browser such as Google Chrome, or Mozilla Firefox”);
}
});

4. Adding a page transition animation

The following code will give you an animation between pages.

EPUBJS.Hooks.register(‘beforeChapterDisplay’).pageAnimation = function (callback, renderer) {
window.setTimeout(function () {
var style = renderer.doc.createElement(“style”);
style.innerHTML = “*{-webkit-transition: transform {t} ease;-moz-transition: tranform {t} ease;-o-transition: transform {t} ease;-ms-transition: transform {t} ease;transition: transform {t} ease;}”;
style.innerHTML = style.innerHTML.split(“{t}”).join(“0.5s”);
renderer.doc.body.appendChild(style);
}, 100)
if (callback) {
callback();
}
};

Also, at the moment, to support desktop and laptop devices, epub.js needs to be patched by adding the following code somewhere before you start using epub.js, but after you load the library. The only difference this makes is that epub.js will use css transforms on desktop devices as well as mobile devices to move the pages.
EPUBJS.Render.Iframe.prototype.setLeft = function(leftPos){
this.docEl.style[this.transform] = ‘translate(‘+ (-leftPos) + ‘px, 0)’;
}

5. Adding swipe support on touchscreens

The following code will allow you to swipe the pages on touchscreens.

EPUBJS.Hooks.register(‘beforeChapterDisplay’).swipeDetection = function (callback, renderer) {
var script = renderer.doc.createElement(‘script’);
script.text = “!function(a,b,c){function f(a){d=a.touches[0].clientX,e=a.touches[0].clientY}function g(f){if(d&&e){var g=f.touches[0].clientX,h=f.touches[0].clientY,i=d-g,j=e-h;Math.abs(i)>Math.abs(j)&&(i>a?b():i<0-a&&c()),d=null,e=null}}var d=null,e=null;document.addEventListener(‘touchstart’,f,!1),document.addEventListener(‘touchmove’,g,!1)}”;
/* (threshold, leftswipe, rightswipe) */
script.text += “(10,function(){parent.ePubViewer.Book.nextPage()},function(){parent.ePubViewer.Book.prevPage()});”
renderer.doc.head.appendChild(script);
if (callback) {
callback();
}
};

6. Allowing keyboard arrow keys to control the pages

The following code allows you to use your left and right arrow keys to control the pages.

EPUBJS.Hooks.register(“beforeChapterDisplay”).pageTurns = function (callback, renderer) {
var lock = false;
var arrowKeys = function (e) {
e.preventDefault();
if (lock) return;

if (e.keyCode == 37) {
ePubViewer.Book.prevPage();
lock = true;
setTimeout(function () {
lock = false;
}, 100);
return false;
}

if (e.keyCode == 39) {
ePubViewer.Book.nextPage();
lock = true;
setTimeout(function () {
lock = false;
}, 100);
return false;
}

};
renderer.doc.addEventListener(‘keydown’, arrowKeys, false);
if (callback) callback();
}

MathJax AsciiMath Support

The support for AsciiMath in MathJax consists of two parts: the asciimath2jax preprocessor, and the AsciiMath input processor. The first of these looks for mathematics within your web page (indicated by delimiters like `...`) and marks the mathematics for later processing by MathJax. The AsciiMath input processor is what converts the AsciiMath notation into MathJax’s internal format, where one of MathJax’s output processors then displays it in the web page.

The AsciiMath input jax actually includes a copy of ASCIIMathML.js itself. This means that the results of MathJax’s AsciiMath processing should be the same as using the actual ASCIIMathML.js package (at least as far as the MathML that it generates is concerned). Thanks go to David Lippman for writing the initial version of the AsciiMath preprocessor and input jax and for the ongoing improvements from the AsciiMath community.

The asciimath2jax preprocessor can be configured to look for whatever markers you want to use for your math delimiters. See the asciimath2jax configuration options section for details on how to customize the action of asciimath2jax.

he AsciiMath input jax handles only the original ASCIIMathML notation (from ASCIIMathML v1.4.7), not the extened LaTeXMathML notation added in version 2.0 of ASCIIMathML, though the AsciiMath input jax does expose the tables that define the symbols that AsciiMath processes, and so it would be possible to extend them to include additional symbols. In general, it is probably better to use MathJax’s TeX input jax to handle LaTeX notation instead.

AsciiMath delimiters

By default, the asciimath2jax preprocessor defines the back-tick (`) as the delimiters for mathematics in AsciiMath format. It does not define $...$ as math delimiters. That is because dollar signs appear too often in non-mathematical settings, which could cause some text to be treated as mathematics unexpectedly. For example, with single-dollar delimiters, ”… the cost is $2.50 for the first one, and $2.00 for each additional one …” would cause the phrase “2.50 for the first one, and” to be treated as mathematics since it falls between dollar signs. For this reason, if you want to use single-dollars for AsciiMath notation, you must enable that explicitly in your configuration:

MathJax.Hub.Config({
  asciimath2jax: {
    delimiters: [['$','$'], ['`','`']]
  }
});

Note that the dollar signs are frequently used as a delimiter for mathematics in the TeX format, and you can not enable the dollar-sign delimiter for both. It is probably best to leave dollar signs for TeX notation.

See the config/default.js file, or the asiimath2jax configuration options page, for additional configuration parameters that you can specify for the asciimath2jax preprocessor, which is the component of MathJax that identifies AsciiMath notation within the page.

AsciiMath in HTML documents

Keep in mind that your mathematics is part of an HTML document, so you need to be aware of the special characters used by HTML as part of its markup. There cannot be HTML tags within the math delimiters (other than <BR>) as AsciiMath-formatted math does not include HTML tags. Also, since the mathematics is initially given as text on the page, you need to be careful that your mathematics doesn’t look like HTML tags to the browser (which parses the page before MathJax gets to see it). In particular, that means that you have to be careful about things like less-than and greater-than signs (< and >), and ampersands (&), which have special meaning to the browsers. For example,

... when `x<y` we have ...

will cause a problem, because the browser will think <y is the beginning of a tag named y (even though there is no such tag in HTML). When this happens, the browser will think the tag continues up to the next > in the document (typically the end of the next actual tag in the HTML file), and you may notice that you are missing part of the text of the document. In the example above, the “we have ...” will not be displayed because the browser thinks it is part of the tag starting at <y. This is one indication you can use to spot this problem; it is a common error and should be avoided.

Usually, it is sufficient to simply put spaces around these symbols to cause the browser to avoid them, so

... when `x < y` we have ...

should work. Alternatively, you can use the HTML entities &lt;, &gt; and &amp; to encode these characters so that the browser will not interpret them, but MathJax will. E.g.,

... when `x &lt; y` we have ...

Keep in mind that the browser interprets your text before MathJax does.

Usage of rendition properties in the EPUB 3 Package Document

Prefix Mapping:

When the metadata properties defined in this document are included in an EPUB 3 Package Document, they must be mapped to the URIhttp://www.idpf.org/vocab/rendition/# using the prefix attribute.

<package … prefix=”rendition: http://www.idpf.org/vocab/rendition/#”&gt;

</package>

Implementors should note that future revisions may establish the vocabulary represented by the URI http://www.idpf.org/vocab/rendition/# as a reserved vocabulary. In this case, the result will be that a) explicit mapping declaration using the prefix attribute will no longer be applicable, and b) the prefix ‘rendition’ will be reserved for this vocabulary. Future revisions of may also integrate the properties defined here into the Package Document default vocabulary. In this case the properties defined herein will be allowed to occur in Package Documents without a prefix.

Note that Package Documents may include additional proprietary metadata properties that pertain to layout expressions. Reading Systems must ignore such expressions if they conflict behaviorally with the property semantics defined in this document.

Specifying name-value pairs on the spine itemref element:

In the context of the properties defined in this document, and when specifying property name-value pairs in the properties attribute on the Package Document spine itemref element, the following syntax must be used.

The property name and value is concatenated into a single string using a hyphen-minus character (U+002D) as separator. Note that leading and trailing whitespace around the separator character is not allowed.

For example, to express that the rendition:layout property has the value ‘reflowable’ for the given spine item, the string ‘rendition:layout-reflowable’ is used:

<itemref … properties=”rendition:layout-reflowable”/>

The rendition:layout property:

The rendition:layout property essentially tells a reading system whether the ePUB or spine element is reflowable or pre-paginated (fixed-layout). When using this property, there are literally these two choices: reflowable or pre-paginated. The default value is reflowable, so if the property is not defined in the metadata section or the spine, the ePUB content will render as reflowable text.

Using this property in the metadata would look like this:

<meta property="rendition:layout">reflowable</meta>

<meta property="rendition:layout">pre-paginated</meta>

If this property is used in the spine within an itemref, the property is defined immediately following the item id. In the spine, using this property would look like this:

<itemref id="page01" properties="rendition:layout-reflowable"/>

<itemref id="page02" properties="rendition:layout-pre-paginated"/>

The rendition:orientation property:

The rendition:orientation property specifies in which orientation the ePUB creator wants the publication or spine element to be rendered. There are three possible values for rendition:orientation: landscape, portrait, or auto. The default value for this property is auto or “the given spine item is not orientation constrained,” meaning the element should render according to device orientation or default.

In the metadata section, rendition:orientation would look like this:

<meta property="rendition:orientation">auto</meta>

<meta property="rendition:orientation">portrait</meta>

<meta property="rendition:orientation">landscape</meta>

If this property is used in the spine within an itemref, the property is defined immediately following the item id. In the spine, using this property would look like this:

<itemref id="page01" properties="rendition:orientation-auto"/>

<itemref id="page02" properties="rendition:orientation-portrait"/>

<itemref id="page03" properties="rendition:orientation-landscape"/>

The rendition:spread property:

The rendition:spread property “specifies the intended Reading System synthetic spread behavior for this Publication or spine item” where synthetic spread is defined as the rendering of two adjacent pages simultaneously on the device screen. If you are working in the print environment, this would be the equivalent of having an image cut into two images that connects in the gutter across a two-page spread.

There are five possible values for rendition:spread: nonelandscapeportrait, both, or auto. The value none means spreads should never be rendered; landscape means spreads should only be rendered when the device is in landscape orientation; portrait means spreads should only be rendered when the device is in portrait orientation; both means spreads should be rendered both when the device is in landscape orientation and when the device is in portrait orientation. The default value for this property is auto or “No explicit synthetic spread behavior is defined. Reading Systems may use synthetic spreads in specific or all device orientations as part of a display area utilization optimization process.” In other words, the Reading Systems will decide how to render the page.

In the metadata section, rendition:spread would look like this:

<meta property="rendition:spread">auto</meta>

<meta property="rendition:spread">none</meta>

<meta property="rendition:spread">landscape</meta>

<meta property="rendition:spread">portrait</meta>

<meta property="rendition:spread">both</meta>

If this property is used in the spine within an itemref, the property is defined immediately following the item id. In the spine, using this property would look like this:

<itemref id="page01" properties="rendition:spread-auto"/>

<itemref id="page02" properties="rendition:spread-none"/>

<itemref id="page03" properties="rendition:spread-landscape"/>

<itemref id="page04" properties="rendition:spread-portrait"/>

<itemref id="page05" properties="rendition:spread-both"/>

 

AZARDI 7 ePUB 3.0 Reader

AZARDI 7 is available for Windows, Macintosh, and Linux. It has the following feature set which goes beyond ever the ePUB 3.0 spec:

AZARDI – Main Features:

  • Supports ePUB 3 and ePUB 2
  • Fully HTML5 and CSS3 capable
  • Native MathML built-in
  • SVG built-in.
  • Browser Typography
  • Page and flow modes
  • Fixed layout capable
  • Multiple simultaneous readers can be open, even on the same book.
  • Secure Online links
  • Built-in AZARDI Interactive Engine
  • Runs on Linux, Macintosh and Windows

New ePub3 Features in AZARDI 7

  • SVG Covers. Loads SVG covers without HTML if the image is presented in the OPF Manifest correctly.
  • ePUB Nav:TOC. Finds and uses nav ePUB TOC, LOT, LOI.
  • iPub Nav; Landmarks. Finds and uses nav Landmarks.
  • 1000 Chapters. Tested to 1000 Chapter book (8,000 print pages).

New General Features in AZARDI 7

  • Keyboard shortcuts. Page navigation with left and right arrow keys. Alt-L to open library, Alt-P to open preferences, Alt-S to open shelves, Alt-A to add a new book from the library view.
  • Covers. AZARDI now fully supports the ePub3 cover-image specification. If there is no cover referenced no cover will be generated.
  • Cover presentation. Covers are now larger and fill the thumbnail window. Book Delete and Information buttons are now available on a hover event.
  • Cover Avatars. If the book does not have an identifiable cover an avatar is generated presenting the title and author name (if available in metadata).
  • Libraries/shelves. The general functionality has been improved. You can now delete a book from a shelf.
  • STIX Fonts. The full STIX font set is now installed by default and is accessed whenever the reader detects MathML properties in the manifest.
  • Auto update. AZARDI is now auto updatable using the Firefox update method. Updates are silent and you are prompted to install when they are available.
  • Fixed size layout. Experimental feature. This uses a set of custom properties to allow the size of the presentation window to be controlled by the publisher for fixed layout pages. See the test books.
  • AZARDI Interactive Engine. Events module added. Updated and test/demonstration books available.

AZARDI Special Features

  • MathML can be directly inserted into pages. Read the User Guide ePub to get information on fonts.
  • SVG. Including SVG animation using SMIL is supported, although we haven’t experimented with this yet.
  • Browser typography. OTF properties and hyphenation are supported with the –mozCSS properties. The hyphenation feature uses Mozilla CSS hyphenation.
  • Page/Flow. Reading mode can be set to page or flow depending on the type of content. AZARDI tries to maintain the page position while changing modes.
  • Fixed layout capable. Pages can be set up with width and height and edge-to-edge. (See User Guide and demonstration books).
  • Multiple Readers. You can have multiple readers open at the same time even with the same book. Notes can be made between readers and will reflect in each other.
  • Internet Extension Viewport. External links resolve to a protected viewport rather than open a general browser.
  • AZARDI Interactive Engine. AZARDI includes an interactive engine for learning and training. This is proprietary and included for general capability demonstration.

Amazon’s new ‘Page Flip’ feature for Kindle is like a virtual thumb in an e-book:

One of the most natural habits when reading a physical book is to save your place with a thumb or finger and flip through the rest of the pages to reference a related passage or graphic, or to see how much is left until the next chapter.

Amazon is introducing a new navigation feature for Kindle, called Page Flip, that aims to bring e-books closer that experience — saving the current place in the text while letting the reader quickly browse through realistic thumbnail images representing other pages in the book.

The company is rolling out the Page Flip feature starting today for Kindle e-readers, Fire tablets and iOS and Android apps.

“We take it very, very seriously, that we’re moving the reading experience forward,” said Mike Torres, Amazon Kindle director, during a recent demonstration of the Page Flip feature at Amazon’s newest office tower on the northern edge of downtown Seattle.

In tablets and smartphones, readers will be able to tap the screen to activate Page Flip, which shows accurate preview images of the preceding and following pages, letting readers quickly scroll through them. At the same time, a realistic thumbnail image of the current page is pinned to the bottom of the screen, letting readers tap to quickly return to their previous place in the book.

There’s also a bird’s eye view that zooms out farther to show multiple page images at a time, for faster browsing while still saving your place.

The accuracy of the page images is key, letting readers recognize an image or the shape of the text on the page to find the right page.

“It’s that idea of place, and one of the tenets for the team was to keep you grounded and rooted, and understanding where you are,” said Amanda Font, a Kindle senior product manager, in a recent demonstration of the Page Flip feature.

On Kindle e-readers, the Page Flip experience is activated from the menu as an overlay on the text, with a similar page-pin feature, as well as page-browsing and bird’s eye views. There’s also a “chapter flipper” to quickly find the start of new chapters. In addition to the pinned page, the e-reader experience includes the ability to close out of the Page Flip overlay to return to the text on the page.

Although the new feature may be most used in non-fiction books, to reference a chart or an earlier chapter, company representatives note that it will also be helpful in novels, to check back with a map, for example.

The Page Flip update will be available for Kindle devices dating back as far as the 2013 Paperwhite, 2014 Kindle, 2015 Paperwhite, the Voyage and Oasis.

EPUB 3 CSS Profile:

CSS 2.1:

The style baseline of the EPUB 3 CSS Profile is Cascading Style Sheets Level 2 Revision 1 [CSS2.1]. The profile includes all style sheet constructs normatively defined in [CSS2.1], with the following exceptions:

1. The absolute value of the position property should be used only with XHTML Content Documents whose rendition:layout property [Publications301] has been set to pre-paginated.

2. The fixed value of the position property is not part of the EPUB 3 CSS Profile. To avoid potential rendering and interoperability issues, it should not be included in an EPUB Style Sheet.

3. The direction and unicode-bidi properties must not be included in an EPUB Style Sheet. Authors should use appropriate [HTML5] markup to express directionality information instead.

Reading Systems that have a CSS Viewport must support the font-family property.

CSS 2.0:

The EPUB 3 CSS Profile includes the following values for the list-style-type property as defined in [CSS2.0]:

  • cjk-ideographic
  • hebrew
  • hiragana
  • hiragana-iroha
  • katakana
  • katakana-iroha

CSS 3.0 Speech:

The EPUB 3 CSS Profile includes -epub- prefixed versions of the following properties from the CSS3 Speech Module [CSS3Speech] using syntax as defined in [CSS3Speech-20110818] and semantics as defined in [CSS3Speech]:

  • -epub-cue
  • -epub-pause
  • -epub-rest
  • -epub-speak
  • -epub-speak-as
  • -epub-voice-family

CSS Fonts Level 3:

The EPUB 3 CSS Profile includes @font-face rules and descriptors as defined in the CSS Fonts Module Level 3 [CSS3Fonts] specification, using syntax as defined in [CSS3Fonts-20110324] and semantics as defined in [CSS3Fonts].

Reading Systems with a CSS Viewport must support OpenType [OpenType] and WOFF [WOFF] fonts embedded using the @font-face rule.

In addition, Reading Systems must support at least the following @font-face font descriptors.

  • font-family
  • font-style
  • font-weight
  • src
  • unicode-range

For forwards compatibility with EPUB 2 Reading Systems that do not support @font-face rules, authors should reference a generic font using the font-family property.

CSS Text Level 3:

The EPUB 3 CSS Profile includes -epub- prefixed versions of the following properties from the CSS Text Level 3 [CSS3Text] specification using syntax as defined in [CSS3Text-20110412] and semantics as defined in [CSS3Text].

  • -epub-hyphens*
  • -epub-line-break
  • -epub-text-align-last
  • -epub-word-break

* The -epub-hyphens property does not include support for the value all.

In addition, the EPUB 3 CSS Profile includes the unprefixed text-transform property from CSS Text Level 3 using semantics as defined in [CSS3Text] and syntax as defined in [CSS3Text-20110412], with the exception that the fullwidth and fullsize-kana values are prefixed in the EPUB 3 CSS Profile (-epub-fullwidth and -epub-fullsize-kana, respectively).

Note that the CSS Text Level 3 module has dropped support for the fullsize-kana value since the EPUB 3.0 revision. The EPUB CSS 3 Profile retains this value, but now defines its semantics as below:

-epub-fullsize-kana

CSS Text Decoration Level 3:

The EPUB 3 CSS Profile includes -epub- prefixed versions of the following properties from the CSS Text Decoration Level 3 [CSS3TextDecoration] specification using syntax as defined in [CSS3TextDecoration-20130103] and semantics as defined in [CSS3TextDecoration].

  • -epub-text-emphasis
  • -epub-text-emphasis-color
  • -epub-text-emphasis-position
  • -epub-text-emphasis-style
  • -epub-text-underline-position

Standalone eBook Applications

Standalone eBook applications (apps) are increasingly common in the eBook space, but many people do not know the difference between these apps and actual eBook files. While applications like Toy Story and The Cat in the Hat are very interactive and have a lot of additional features that you cannot add to an eBook, their creation, delivery, and marketing are completely different than children’s eBooks.

Please note: This page does not discuss children’s eBooks, it is only intended to give you an overview of eBook applications, how they work, and the issues that come with developing such applications. eBook Architects does not normally suggest creating standalone eBook applications unless there is a clear need for one due to functionality that is not available in standard children’s eBook files.

Creating applications is usually a very expensive endeavor, and there are many pitfalls you need to know how to avoid along the way. Before you begin, you need to decide what you want your eBook to look and function like. Once you have that goal in your head, research apps and eBooks and compare them to each other on a point-by-point basis and see what will work best to meet your vision for the end product.

Creation

eBooks and apps are typically created with different code and using different tools. While some children’s book apps are build using HTML and CSS like an eBooks, they also have to include other code and functionality to replicate the interaction of the eBook software itself (e.g., page turn animations, bookmarks, etc.). As a result, there are some companies that create “eBook apps” that really do not offer you anything more than you can get in standard eBook files. If the app company you are talking with says you can have narration overlays, some clickable areas, and a game at the end of the book, then you might want to compare those features to the comparable features in a children’e eBook.

Delivery and Marketing

While eBook files are designed to be sold through the eBook retailers (e.g., Amazon, Apple, and B&N), apps are designed to be sold through app stores (e.g., iTunes, Google Play, and the Amazon Appstore). This means that your app will be competing against games like Angry Birds for attention in the stores, and you will probably need to rely on the app developer to get the apps they create up for sale, as those uploading processes are typically created with developers in mind, not publishers or authors.

In addition, most app stores do not have very good categorization breakdowns. Unfortunately, your app will probably be stuck in a single category with hundreds or even thousands of other apps and books, including the actual eBook reading apps like Kindle for Android, iBooks, etc. This makes marketing your eBook difficult, as does the confusion about where the book is available for purchase.

Making the Right Choice for Your Project

The best advice we have for clients desiring to build an eBook app is:

  1. Find a developer in your own area, or someone who has experience making eBook apps already, so that you can have more control over the design and functionality of the app (you can sometimes find developers in your own town through websites like Craigslist).
  2. Have ideas when you go into the process of what you want, but prioritize them so that you know what to cut as the expenses rise
  3. Be willing to be flexible on development ideas depending on the capabilities of your developer
  4. Be aware that Apple requires all eBook apps to do more than is possible in a fixed layout ePub file in iBooks, so go in with some ideas for making your app more interactive than the eBook files you create.