Amazon Kindle Publishing Guidelines
Amazon Kindle Publishing Guidelines
Publishing Guidelines
How to make books available for Kindle
devices and applications
version 2018.1
This document describes the primary ways publishers, authors, and conversion houses can
make their content available for Amazon Kindle devices and applications. This document
includes guidelines and suggestions to ensure a smooth conversion and publication process.
Revision History
Revision Revision Notes
Number
Updated 4.1 Marketing Cover Image is Mandatory: To provide consistency with Kindle Direct
2018.1
Publishing guidance, changed the 2700 x 1688 pixels recommendation to 2560 x 1600 pixels and
changed the 5MB file size limit to 50MB.
Updated 9.3.4 Avoid Using Fixed Values for Most Elements: Removed references to line-height.
Updated 9.3.8 Using Embedded Fonts: Added list of Kindle fonts that should not be embedded in
eBooks.
Updated 2.2.1 KindleGen: Removed reference to software updates.
2017.4
Updated 2.2.2 Kindle Previewer Software: Revised description of Kindle Previewer 3.
Updated 4.1 Marketing Cover Image is Mandatory: Removed the reference to sRGB not being
supported.
Added 6.4 Avoid Nested <p> Tags.
Updated 8.1 Testing Kindle Books: Added guidance on Enhanced Typesetting.
Updated 9.3.11, Footnote Guidelines: Updated to include marking footnotes with the HTML5
aside element and the epub:type attribute.
Updated 9.4.1 Use Supported Input Formats: Added guidance on specifying alt text within the
<img> tag for accessibility compliance.
Table of Contents
PART I. GETTING STARTED .................................................................... 8
1 Introduction ............................................................................................................ 8
8 QA Standards ........................................................................................................ 21
Testing Kindle Books ............................................................................................ 22
For self-publishers or authors who would like to take advantage of Amazon’s self-service tools to
create Kindle books and sell them on Amazon, see section 2.1, Amazon’s Kindle Direct
Publishing Platform.
For publishers with many titles to convert and the expertise to create Kindle books in-house using
Kindle Publisher Tools software, see section 2.2, Creating Kindle Books In-House Using Kindle
Publisher Tools.
For publishers who do not wish to convert titles in-house or do not have the technical expertise to
do so, outsourcing to a conversion house is described in section 2.3, Third-Party Conversion
Services.
2.2.1 KindleGen
Publishers can create Kindle files in-house by using a free software program called KindleGen. This is a
command line tool to be used for local preview and QA checks while creating Kindle books. KindleGen
accepts source content in HTML, XHTML, or EPUB format.
The most recent version of KindleGen can be downloaded for free from
www.amazon.com/kindleformat/kindlegen. The instructions for installing KindleGen can be found in the
KindleGen ReadMe file in the downloaded file folder.
Using the EPUB spec, you can create a Kindle book with multiple HTML files and a single OPF file that
links all of them together.
Amazon strongly recommends fixing all KindleGen warnings and errors before publishing a Kindle book.
If KindleGen displays an error, it will not create the .mobi file. Errors impair the readability of the
book in the Kindle software.
If KindleGen displays a warning, it will create the .mobi file with an attempt to automatically fix the
issue described in the warning. Amazon does not guarantee the results of any KindleGen
automatic fix, which could lead to the Kindle book displaying differently than designed.
Amazon recommends using Kindle Previewer 3 for regular updates that provide access to the latest
Kindle conversion, typographic, and layout improvements that come with Enhanced Typesetting. For any
questions or feedback, please contact us at [email protected].
Once your book is ready, you can export your book and upload it to Kindle Direct Publishing (KDP) to
make it available to customers.
Kindle Textbook Creator is available for the Windows and Mac OS X platforms. The most recent version
can be downloaded for free from www.amazon.com/ktc.
Kindle Comic Creator accepts single or multi-page source files in .pdf, .jpg/.jpeg, .tif/.tiff, .ppm, or .png
formats, so authors are free to create artwork using their preferred design tools. More detailed guidance
for graphic novels/manga/comics can be found in section 11.
Kindle Comic Creator is available for the Windows and Mac OS X platforms. The most recent version can
be downloaded for free from www.amazon.com/kc2.
Kindle Kids’ Book Creator accepts source files in .jpg/.jpeg, .tif/.tiff, .png, and .ppm formats, so authors
are free to create artwork using their preferred design tools. More detailed guidance for children’s books
can be found in section 10.
Kindle Kids’ Book is available for the Windows and Mac OS X platforms. The most recent version can be
downloaded for free from www.amazon.com/kidsbookcreator.
Conversion houses can be of service in helping publishers supply eBook retailers with metadata.
3 Comparing Formats
To determine how to convert a print book for the best Kindle experience, key elements in the source are
identified and evaluated against the different conversion formats. Some formats are specifically designed
for certain types of books (e.g., panel view for comics), but more complex books must be analyzed to
determine the best fit for the title. Only one format can be used for each Kindle book.
Fixed- Image-heavy Fixed layout Kindle E-reader Only for use Section 12:
Layout books with (text selectability on books with Creating Fixed-
Dictionary look-up
without Pop- large text features are not type large Layout Books
Ups Highlighting supported) enough to be Without Pop-Ups
read on all
Word search Fire tablets
devices
X-Ray Kindle for without
Android magnification
Kindle for iOS No user font
settings
Kindle Cloud
Reader (text
selectability
features are not
supported)
Kindle Text-heavy Adjustable Fire tablets (2nd KF8 features Section 13:
Edition with titles with orientation generation and are not Creating Kindle
Audio/Video audio and/or later) currently Edition with
Adjustable text
video content supported in Audio/Video
settings Kindle for iOS
Kindle Edition Content
Dictionary look-up with
Audio/Video
Highlighting
content (see
Word search sections 13.5
X-Ray and 13.6)
If the marketing cover image size is smaller than the 2560 x 1600 recommendation, a reminder message
is displayed at time of upload. Covers with less than 500 pixels on the shortest side are not displayed on
the website.
If your cover image is smaller than the recommended size, Amazon strongly recommends that you create
a new image that meets the size requirements. Do not stretch the image to meet the size requirements,
because this may lower the image quality.
Do not add an HTML cover page to the content in addition to the cover image. This may result in the
cover appearing twice in the book or cause the book to fail conversion.
Define covers in the OPF file using either of the following methods (underlined elements are mandatory):
Method 1 (preferred):
<manifest>
...
...
</manifest>
Method 2:
<metadata>
...
...
</metadata>
...
<manifest>
...
...
</manifest>
This syntax is not part of the IDPF standard. However, it was designed with help from the IDPF and will
validate in an IDPF validator.
5 Navigation Guidelines
Amazon strongly recommends the use of an HTML table of contents (TOC) for all books that would
benefit from this navigation feature. This applies to most books, but is optional for most fixed-layout
children's books (see section 10) and fixed-layout graphic novels/manga/comics (see section 11).
Amazon requires that all Kindle books include a logical TOC. The logical TOC is very important for a good
reading experience, because it allows a reader to navigate between chapters easily. Users expect to see
an HTML TOC when paging through a book from the beginning, while the logical TOC is an additional
way for users to navigate books. The inclusion of a logical TOC is especially important for books that are
longer than 20 pages.
If you are importing the document from Word, use the “Heading” styles and the "Table of
Contents" feature of Microsoft Word. The TOC created by Word will be imported correctly and will
convert to a TOC that follows these guidelines.
For bundled editions containing more than one individual book, include an overarching TOC at
the beginning of the file.
<div>Section 1</div>
<div style="margin-left:2%;">Chapter 1</div>
<div style="margin-left:2%;">Chapter 2</div>
<div style="margin-left:2%;">Chapter 3</div>
<div style="margin-left:4%;">Subchapter 1</div>
<div style="margin-left:4%;">Subchapter 2</div>
<div style="margin-left:2%;">Chapter 4</div>
<div style="margin-left:4%;">Subchapter 1</div>
<div>Section 2</div>
...
<style>
div.chapter { margin-left: 1em}
div.subchapter { margin-left: 2em}
</style>
<div>Section 1</div>
<div class="chapter">Chapter 1</div>
<div class="chapter">Chapter 2</div>
<div class="chapter">Chapter 3</div>
<div class="subchapter">Subchapter 1</div>
<div class="subchapter">Subchapter 2</div>
<div class="chapter">Chapter 4</div>
<div class="subchapter">Subchapter 1</div>
<div>Section 2</div>
...
NCX Guidelines
Logical TOCs are generated using toc nav elements or a navigational control file for XML application
(NCX). Creating a logical TOC exposes the hierarchical structure of a Kindle book and allows the user to
navigate through it using the Kindle menu. The inclusion of a logical TOC is especially important for
books that are longer than 20 pages.
In logical TOC-enabled books, users can see where they are in the book because the part, chapter, or
section is exposed. This progress indicator also shows relative progress through the book.
For guidance on creating a logical TOC using a toc nav element, see section 5.2.1.
For guidance on creating a logical TOC using NCX, see section 5.2.2.
Creating a toc nav element provides both a logical TOC and an HTML TOC. The toc nav element
should be a separate HTML document from the HTML TOC.
Example:
<nav epub:type="toc">
<ol>
<ol>
</ol>
</li>
</ol>
</nav>
AUTHOR'S NOTE
PART ONE
THE HOUSES, 1969
ROCK AND ROLL, 1962
THE EMPRESS, 1928–1947
This excerpt from the OPF (publication header file) shows how to declare the toc nav element in the
<manifest>:
Example:
<manifest>
Example:
<spine>
<itemref idref="toc"/>
NCX Example:
<navMap>
<navLabel><text>AUTHOR'S NOTE</text></navLabel>
</navPoint>
<navLabel><text>PART ONE</text></navLabel>
</navPoint>
</navPoint>
</navPoint>
</navPoint>
</navMap>
AUTHOR'S NOTE
PART ONE
THE HOUSES, 1969
ROCK AND ROLL, 1962
THE EMPRESS, 1928–1947
Amazon requires that the NCX elements follow the same order as the book. (For example, the link for
Chapter 2 should not precede the link for Chapter 1.) This excerpt from the OPF (publication header file)
shows how to add an NCX table of contents to a book.
<manifest>
href="toc.ncx"/>
<spine toc="toc">
Guide Items
Guide items are an optional feature in the EPUB format but are highly recommended. Kindle provides
support for the cover, TOC, and start reading location (”Go to Beginning”) guide items. If you choose not
to include guide items for the cover and TOC, these list items will still appear in the Kindle menus, but will
be grayed out and not selectable. Publishers do not need to define a start reading location because
Amazon does this during the upload process.
The landmarks nav elements are part of the IDPF 3.0 specification and are described at:
http://idpf.org/epub/30/spec/epub30-contentdocs-20111011.html#sec-xhtml-nav-def-model and
http://idpf.org/epub/30/spec/epub30-contentdocs-20111011.html#sec-xhtml-nav-def-types-landmarks.
Here is an example of a guide item for a TOC (underlined elements are mandatory):
Here is an example of a landmarks nav element for a TOC (underlined elements are mandatory):
<nav epub:type="landmarks">
</nav>
When creating source HTML or XHTML for the Kindle, refer to one of the following resources as a primer
on constructing well-formed HTML documents:
International Digital Publishing Forum (IDPF) EPUB Standards: http://idpf.org/epub
World Wide Web Consortium (W3C) Standards: https://www.w3.org/standards/
World Wide Web Consortium (W3C) HTML and CSS Guidelines:
https://www.w3.org/standards/webdesign/htmlcss
Do not use negative values for the line-height attribute. They are not supported.
To indicate a file in a directory, use “/” characters and not “\” characters. (Example:
“multimedia/ThisFile.mp4” is valid, but “multimedia\ThisFile.mp4” is not.)
Amazon recommends specifying the encoding of the HTML by using the <meta> tag in the <head>
section or an XML declaration.
Method 1:
<html>
<head>
Method 2:
XML entities are strictly required for "<" (<), ">" (>), and "&" (&).
The only supported spaces are the normal space, the non-breaking space ( ), and the zero-width
non-joiner (‌). Use of any other space can break the selection, dictionary lookup, and line-wrap
algorithms.
7 Hyperlink Guidelines
Internal Link Guidelines
Internal links can be used to link separate content within the book. Some examples of this include:
Links from the book-level table of contents to each individual chapter (see sections 5.1 and 5.1.1)
Links from a chapter-level table of contents to subchapters or chapter sections
Links to an appendix or glossary
Footnotes (see section 9.3.11)
Amazon requires formatting footnotes with bi-directional hyperlinks (the text is linked to the footnote and
the footnote is linked back to the text). This makes it easier for customers to return to the text after
viewing the footnote. On some devices, the footnote is displayed in a pop-up window.
To avoid unintended footnote pop-ups, internal links that are not footnotes should not be formatted with
bi-directional hyperlinks (A links to B and B links to A). Non-footnote links should use the format A links to
B and B links to C instead. For example, links from a chapter-level table of contents to a chapter section
should link back to the chapter heading.
Internal hyperlinks are not currently supported on E-reader devices in fixed-layout books.
8 QA Standards
Amazon strongly recommends that you verify your exported content before converting it into a Kindle
book because some content creation tools format content differently when exporting to HTML.
These errors negatively affect readability and may require the Amazon team to suppress the title to
protect the reader’s experience.
Note: When testing Kindle Edition with Audio/Video content, the audio and video cannot be previewed.
Consider device compatibility. Keep in mind that users may wish to read your content on an extremely
wide variety of devices, with very small or large screens and low or high resolution. Try to test your
content on as diverse a selection of devices as possible, especially for complex Kindle books.
Once you can read your book, use this checklist to confirm that your Kindle book does not contain blatant
errors.
1. Open the book for the first time or go to the cover page.
o Cover: The Kindle book should have a cover.
o Single Cover: From the cover, flip to the next page. There should not be another image
of the cover page.
2. Go to the table of contents (where applicable).
o In the table of contents, each item should be clickable and should link to the correct
location in the book. There should be no page numbers in the TOC.
3. Go to any location in the book (reflowable eBooks only).
o Font size: Change the font size in the Kindle menu; the book font should change
accordingly. Regular text should not be bold or italicized.
o Typeface: Change the typeface in the Kindle menu; the book font should change
accordingly. If you have designed your book to use only a specific font file, make sure
that you have followed guidelines in section 9.3.8 Using Embedded Fonts. Not following
these guidelines could lead to the Kindle settings reverting to the customer's preferred
reading font.
4. Go back to the first page and flip through every page of the book.
o Images: Images should not be too small. Make sure that all text in images is legible.
Large pictures should be scaled to fit the page and display in their entirety on one screen.
o Tables: Tables should appear correctly. Make sure that all text in tables is legible.
o Material only included with physical book: There should not be any references to
material (such as a CD or DVD) that is only included with the physical book.
o Background settings (reflowable eBooks only): On a Fire tablet or Kindle Previewer,
confirm that your text is legible in all background color modes (white, black, mint, and
sepia).
o Magnification (fixed-layout only): Activate pop-ups/panel view and check that all text
content and/or panels have corresponding magnification, no content is overflowing the
edge of the screen, and magnified reading order is correct.
The reflowable format supports a number of features that allow readers to interact with and customize the
way the text appears on their devices. These features include dictionary, X-Ray (when available), text-to-
speech (when available), Word Wise (when available), Kindle Real Page Numbers (when available), and
the ability to change text and formatting settings. For an example of a reflowable book, see the KF8
example at www.amazon.com/kindleformat (under the KindleGen Examples heading in the sidebar).
Metadata Guidelines
eBooks are reflowable by default. Reflowable eBooks do not need to specify meta name="book-type"
in the OPF file.
Layout Guidelines
Create the content using single column layout. Do not use the CSS position: property for alignments.
Text Guidelines
9.3.1 Specify Heading Alignment and Justification
Because text in reflowable eBooks is fully justified by default (i.e., text-align: justify;), Amazon
strongly recommends specifying the appropriate CSS alignment for all headings to prevent excessive
spaces between words (i.e., text-align: left; text-align: right; text-align:
center;).
The body text font should be set in the CSS using the font-family attribute. Body text must
use the default font size (1em) and line height. Body text should not use the <font size="…">
tag or the font-size and line-height attributes in CSS.
Body text should not be primarily bold or italicized. Selected parts of the text can be bold or
italicized for emphasis. This guideline only prohibits a book from being entirely bold, for example.
Body text should not have an imposed font color throughout the book. If you prefer to use
imposed font color in some sections of your book, do not use too light or too dark a color. Light
colors will not display with enough contrast on devices set to white backgrounds or on E-reader
devices. Dark colors will not display well on devices set to black backgrounds. See the W3C
recommendation described here for maintaining a readable contrast ratio between text and
background colors. For grays, use colors within the hex value range of #666 to #999.
o To determine if a color falls within this range, convert your color to RGB values using a
tool such as http://hex-color.com/. Plug the resulting three numbers into the following
formula: 𝑌 = (0.2126 ∗ 𝑅) + (0.7152 ∗ 𝐺) + (0.0722 ∗ 𝐵). If the value of Y falls within a
range of 102 and 153, this color will create a good customer experience across Kindle
devices and applications.
In a book with Enhanced Typesetting enabled, Kindle readers can be sure that any text of any color
that appears above any background color will be legible. Font colors will adapt automatically to
provide sufficient contrast with either the device color theme chosen by the reader or to the
background color of any element. In the below example, the same colors (“yellow”, “black”, and
“orange”) were applied to both the font and their background container; notice how the font color
changes to provide readable contrast with the background. To learn more about Enhanced
Typesetting, see section 15.
Body text must not have a black or white background color. Customers report this as a bad user
experience because it can create an awkward, boxy reading experience when the device
background is set to a different color and because the text can become invisible when a user
changes the background color setting on their device and the font color automatically inverts.
Body text should not have a forced font face. Make sure that you have followed guidelines in
section 9.3.8 Using Embedded Fonts. Not following these guidelines could lead to customers not
having the ability to change their preferred reading font.
Body text must not use non-breaking spaces in place of normal spaces in between words in
paragraphs.
Body text must not have an imposed left/right margin or padding throughout the book. If there are
paragraphs that do require left/right margin to differentiate them visually from body text, such as a
recipe list or a block quote, margins applied to these sections should be specified as percentages
rather than ems or point values.
The following font fixes will be applied in during the upload process:
o The font size used in the majority of the content will be normalized to 1em.
o The font-family used in the majority of the content will be moved to the root tag (body
text).
o Forced font colors used in body text will be removed so the user may change the color of
the text.
9.3.3 Formatting Paragraphs
For body text, either indents or extra line spacing must be used to distinguish paragraphs for customers.
Amazon recommends using the text-indent attribute in the CSS to set indent values of no more than
4 ems for body paragraphs.
To change the space before or after each paragraph, use the margin-top or margin-bottom styles
respectively in the CSS. We recommend using em values for these attributes.
Never use the height property to control the size of elements containing text or instances of overlapping
text may occur in your book. The height property should only ever be applied to images in reflowable
books.
Example:
p.para {
font-size: 1em;
margin-bottom: 0;
margin-top: 0;
text-align: justify;
text-indent: 0;
}
@media amzn-kf8
{
span.dropcaps
{
font-weight:normal;
font-size:320%;
float:left;
margin-top:-0.3225em;
margin-bottom:-0.3245em;
}
}
@media amzn-mobi
{
span.dropcaps
{
font-size:3em;
font-weight: bold;
}
}
<p class="para"><span class="dropcaps">T</span>his is a sample
To verify that the drop caps display as intended, test the book as described in section 8.1, Testing Kindle
Books. The following is an example of a drop cap formatted using this method in a book with Enhanced
Typesetting enabled (to learn more about Enhanced Typesetting, see section 15):
rendered using Kindle fonts by default. On KF8-enabled devices and applications, customers have the
option to turn publisher-provided fonts on or off.
It is the responsibility of the publisher to secure the appropriate license rights for fonts. Unless embedded
fonts are necessary to convey intent, Amazon recommends using the default set of fonts installed on
Kindle devices and applications because they have been tuned for high quality rendering.
Do not embed the following fonts, which are currently available on Kindle devices and applications:
When selecting a font, consider usability for visually impaired readers and select a simple, clear font
which will contrast well against all tablet and E-reader backgrounds.
Kindle also supports a monospaced font. Content in the following tags will be rendered in monospaced
font: <pre>, <code>, <samp>, <kbd>, <tt>, <font face="courier">, <font
face="monospace">.
With the exception of <pre>, the tags listed above do not change the text alignment. If the content in
these tags should be right-aligned, wrap the tags listed above in a <div> styled with CSS using text-
align:right.
<html> <html>
<body> <body style="font-family:PrimaryFont">
</body>
</html>
The same behavior can be achieved by using CSS classes as shown below.
body{ body {
font-size: asize; font-family: PrimaryFont;
} font-size: asize;
}
.indent {
font-size: asize;
.indent {
font-family: PrimaryFont;
font-size: asize;
}
}
.sidebar-text {
font-family: SecondaryFont; .sidebar-text {
font-weight: bold; font-family: SecondaryFont;
} weight: bold;
}
When coding fonts, make sure that HTML tags are closed correctly to avoid an override conflict. When
there is an override conflict, the font files within the book will be intentionally removed to provide Kindle
customers with the best possible reading experience when they select the font settings.
For example:
<html> <html>
<body style="font-family:PrimaryFont">
</html>
text-indent:0; text-indent:0;
text-align:center; text-align:center;
font-family:'PrimaryFont'; font-family:’PrimaryFont’;
} }
h3.title { h3.title {
font-family:'SecondaryFont'; text-indent:0;
font-size:2em; text-align:center;
font-weight:bold; font-size:2em;
} font-weight:bold;
font-family:’SecondaryFont’;
Regardless of whether the aside element is used, Amazon requires formatting footnotes with bi-
directional hyperlinks (the text is linked to the footnote and the footnote is linked back to the text). This
makes it easier for customers to return to the text after viewing the footnote. On some Kindle devices,
such as Kindle Paperwhite, footnotes with bi-directional hyperlinks are displayed in a pop-up.
For a better reading experience, Amazon strongly recommends placing the footnote text at the end of the
chapter or book.
Method 1 (preferred):
<p>This footnote example uses the aside element with the epub:type attribute and bi-directional
hyperlinks.<sup><a id="source" href="#ft-1-1" epub:type="noteref">1</a></sup></p>
...
<p><a epub:type="noteref" href="#source">1.</a> This is the footnote text, which should be placed at
the end of the chapter or book.</p>
</aside>
Method 2:
...
<p id="fn1"><a href="chapter01.html#r1">2.</a> This is the footnote text, which should be placed at the
end of the chapter or book.</p>
Image Guidelines
These guidelines apply to reflowable fiction and non-fiction books, but are not applicable to image-
intensive fixed-layout children's books (see section 10) and fixed-layout graphic novels/manga/comics
(see section 11). For cover image guidelines, see section 4.
When using images for schemas, charts, tables, maps, or anything that includes text, pay special
attention to the legibility of the final image.
Add images to the source using the standard HTML <img> tag. If the image is meaningful to the content,
use the alt attribute to provide text that conveys that meaning to customers who use assistive
technology. The alt text should be less than 140 characters and should describe the image and its
meaning. If the image is decorative and not meaningful to the content, set the alt attribute to null with
alt ="" so that it can be ignored by assistive technology.
Important: Use RGB as the color profile when saving your files. Kindle does not support sRGB or CMYK.
The maximum file size of an EPUB is 650 MB. KindleGen performs automatic image conversions to
optimize the content for Kindle.
See section 9.4.5 regarding exceptions for images that are only available in low-resolution such as
historical photographs.
Inline images should be sized in em units so that they scale in relation to the text around them when
users adjust the font size of their reading system.
Even in marketplaces where only E-reader devices are currently available, use color images when
possible for future compatibility.
Photographs of less than 300 x 400 pixels will be scaled based on the device resolution and may become
blurry as a result. To display a smaller image provide a larger image and use CSS to shrink to the desired
size.
Amazon recommends that images display clearly at 2X magnification across devices. This means that if
an image is intended to display at full width on device, its width should be captured at 3200 px (this is
twice the width of our highest resolution device, the Kindle Fire HDX 8.9”). Smaller images can be resized
accordingly.
If the photographs are in GIF format or are too small, converting them to JPEG or artificially increasing the
size does not improve the quality. Go back to the original source to create a JPEG image with sufficient
resolution.
Some images, such as historical photographs, may not be available at 300 ppi or greater. In these
situations, provide the best image quality possible. Amazon strongly recommends images meet a
minimum of 300 ppi. Any images below 72 ppi will cause the book to fail conversion.
Line-art should be in GIF or PNG format. The JPEG algorithm tries to blend parts of the image together,
and blurs the sharp edges of the line-art, causing the image (and any text it contains) to be blurry.
Optimize line-art GIFs before submitting them to KindleGen. Resizing or JPEG compression introduces
blurriness or unwanted artifacts in line-art images, which is why Amazon insists on GIF or PNG file
formats for line-art.
To optimize GIFs and PNGs and make them fit the image size limit, try the following tips:
Try reducing the number of colors used. This can often be done without altering the quality of the
image. Line-art images that appear to be black and white might actually be in color because of
certain anti-aliasing algorithms. Here is an example (notice the shades of red and blue around the
“A” in the left picture):
Remove white margins around the image, if any exist. When cropping, consider how the image
will look on devices set to white, sepia, mint, and black backgrounds.
Resize the image, if necessary, but pay close attention to the legibility of text. (see section 9.4.7,
Image and Font Size Requirements for Line-Art and Text).
9.4.7 Image and Font Size Requirements for Line-Art and Text
An image containing text should not be significantly larger than a Kindle screen. The Kindle E-reader
devices offer the possibility to rotate an image to use more screen real estate. The Fire tablets and the
Kindle for iPhone application allow zooming and panning.
The MINIMUM size of text is 6 pixels for the height of a lowercase “a.” The image itself will need
to be larger than 6 pixels in height if there is any extra space above or below the “a.” For an
image that contains only a single line of text, such as the example below, the image should be at
least 45 pixels in height so that it displays proportional to surrounding text content.
Note: The image would be shrunk to fit the screen and become unreadable, while an HTML version
would be paginated.
Example:
Example:
<html>
<body>
</svg>
</body>
</html>
Example:
<html>
<body>
<img src="svgfile1.svg"/>
<embed src="svgfile2.svg"/>
<object src="svgfile3.svg"/>
</body>
</html>
<line> <polyline>
Reference: http://www.webkit.org/projects/svg/status.xml.
Table Guidelines
9.5.1 Avoid Large Tables
Amazon recommends using HTML <table> layouts for tabular content and not rendering tables as
images.
A table rendered as an image cannot be paginated because the entire image is displayed on one screen.
If the table is rendered using HTML <table> tags, pagination is available and users can cursor through
the cells in the table. If the table is significantly wider than the screen and forces panning, it creates a
poor user experience.
For the best user experience, tables should not contain whole paragraphs of text or large pictures in a
cell.
If a table is too large or contains too much text in its cells, consider reformatting it in a way that optimizes
for readability. Single columns of HTML text provide the best reading experience for customers using a
variety of font sizes. Amazon recommends keeping tables below 100 rows and 10 columns for devices of
all sizes.
If the table must be rendered as an image, refer to section 9.4 Image Guidelines and section 9.5.3 Split
Tables as Needed.
Colspan and rowspan attributes should be less than or equal to the total number of columns or rows (as
appropriate) in the table.
Example: Split the image in half horizontally 60% of the way down the image, then split the header, copy
it to the bottom half of the image, and stitch these into a new image. The final two images should then be
the same size, with table headers.
Revise the source image, not the converted GIF; otherwise, the image will be converted into GIF format
twice, which might result in lower quality.
Enhanced Typesetting avoids excessive wrapping of text by using additional white space on the
page to redistribute column widths based on the screen size. Minimum padding between rows
and columns is always maintained to preserve proportional row and column boundaries for any
font size or device type.
Customers can navigate through multi-page tables with the additional context of a continuation
indicator.
Customers can interact with a table that may have spanned multiple pages in a single view inside
the Enhanced Typesetting viewer with panning, zooming, text highlights, and text lookup
available.
Best practices for utilizing Enhanced Typesetting with tables:
Use a table structure of <thead>, <tbody>, <tfoot>.
Example:
<thead>
<tr>
</tr>
</thead>
<tbody>
<tr>
<td><b>amet</b> amerit</td>
<td><b>amat</b> amerat</td>
</tr>
...
</tbody>
<tfoot>
<tr>
<td><b>sedi</b> sed</td>
<td><b>seda</b> sad</td>
</tr>
</tfoot>
</table>
Enhanced Typesetting will utilize the space on the page to avoid wrapping text and display a clear
readable table.
Fixed-layout books do not support reflowable text and should only be used when the entire book is well-
suited to a fixed-layout format; books cannot be partially reflowable or partially fixed-layout. For details on
creating this type of eBook with Kindle Kid’s Book Creator, see section 2.2.5.
Important: Nested anchor tags are not supported in fixed-layout books. Fixed-layout books with nested
anchor tags will be suppressed.
Metadata Guidelines
The OPF file specifies metadata necessary for fixed-layout books. For a demonstration, see the children’s
book example at www.amazon.com/kindleformat (under the KindleGen Examples heading in the
sidebar). This example is a demonstration of how to create content to take advantage of fixed-layout with
Region Magnification. It is not intended to be an HTML tutorial.
While similar, the various types of fixed-layout formats have key differences. Unless explicitly stated,
guidance for fixed-layout books with text pop-ups should not be applied to any other format, such as fixed
layout books with image pop-ups or Virtual Panels.
Metadata Description
Layout can be specified using one of the following Required. Identifies the book as having a fixed
metadata fields: layout.
Metadata Description
Example:
@font-face {
Content Requirements
10.4.1 Requirement #1: Using HTML File Structure
Fixed-layout content must have a single HTML file for each page represented on a Kindle device. This
can be accomplished by using one image in the HTML file or by using the HTML file to stitch two images
together to be viewed as one page when orientation-lock is set to landscape.
Example:
Example:
layout text without altering the original layout. For an example of Region Magnification, see the image
near the end of this section.
The user activates Region Magnification by double tapping an “active area” on touch screen devices. (On
non-touch screen devices, clicking the up arrow on the 5-way controller selects the region and clicking the
center button activates Kindle Text Pop-Up or Kindle Panel View.) During Region Magnification, the
active area (source element) is hidden and the magnification area (target element) is displayed. When an
eBook is set up to support Region Magnification, KindleGen automatically detects the Region
Magnification code and sets the Region Magnification metadata value in the OPF file to "true".
1. Set the active area by creating a well-defined HTML anchor (<a>)element around the text to be
enlarged. The anchor must specify the app-amzn-magnify class. The anchor should also have
the following attributes stored in a JSON object (http://www.w3schools.com/json/json_syntax.asp)
as part of the data-app-amzn-magnify value:
a. "targetId":"<string:elementId>" = unique element id of the magnification area
(position and font size are set in CSS file)
b. "sourceId":"<string:elementId>" = unique element id of the source that will be
magnified
c. "ordinal":<integer:reading order> = reading order of the magnification areas (the
order in which panels appear as part of the reading flow). This is required for all text that uses
Region Magnification.
2. When magnification is activated, the source text is no longer displayed. Create a target <div>
element that is aligned to completely cover the text being magnified and positioned to minimize
covering the background art of the page. This ensures that when a user activates Region
Magnification, the source text will not disappear from the page view. It is also important to not
position a pop-up directly abutting the right or bottom edges of the screen. Differences between
device types can create content overflow error if pop-ups are too close to these edges. Check
content on as many different kinds of devices as possible before publishing.
3. The font size of text in the Region Magnification <div> should be set to 150% of the regular font
size on the page. There are several exceptions to this:
One exception is when the text on the page is so large that magnifying it to 150% would
make it harder to read instead of improving readability. Region Magnification is not necessary
for text with a height of at least 4mm in children’s content or a height of at least 2mm in non-
children’s content on a 7" device.
Another exception is when the text on the page needs to be increased by more than 150% to
improve readability in the Region Magnification <div>. For example, if the font size of the
text on the page is 45%, the font size of the text in the Region Magnification <div> may need
to be magnified to 225% to be readable.
Example:
For the best user experience, Amazon strongly encourages publishers to design fixed-layout content to
maximize the available space of the screen dimensions. If the content has a different aspect ratio or size,
the Kindle devices and applications display it scaled to fit the screen, centered, and surrounded by a
white margin (letterbox).
Fixed-layout and other image-heavy content is more likely to be magnified because customers prefer to
read with Kindle Panel View or on devices with large screens. The best practice is to use the highest
resolution images possible. Amazon recommends submitting images scaled to support at least 2X
magnification with high quality. For example, if planning for the 2013 Kindle Fire HD 8.9", the image pixel
dimensions should be at least 3840 x 2400 (this matches the aspect ratio and would support 2X zoom).
Always use Kindle Previewer to validate the quality of the content.
10.5.4 Using Large Region Magnification Tap Targets in Fixed-Layout Books with Text Pop-Ups
The primary purpose of Region Magnification is to aid accessibility and is more effective when the tap
target is larger than the area being magnified. To enable a larger area, consider adding a padding of 20 to
40 pixels to the app-amzn-magnify anchor elements, but do not let the tap targets overlap.
In the example below, the landscape spread is 1024 x 600 pixels, which is full-screen resolution for the
Kindle Fire (1st generation). The images for each page should have dimensions exactly half the width of
the full screen: 512 x 600 pixels. The unique parts of each element are labeled using CSS IDs; the
common parts use CSS classes. The left image displays on the left side of the spread. The right image is
shifted to the right side of the page by defining a margin-left style set to the width of the left side
image.
The end result is two pages stitched together to make a single image to be viewed in landscape mode.
This differs from a synthetic spread, where one page is visible in portrait mode and two side-by-side
pages are visible in landscape mode, which is unique to the comic book-type. Guidance on synthetic
spreads can be found in section 11.4.1.
HTML:
<div class="fs">
<div id="fs9-img" class="lPage"></div>
<div id="fs10-img" class="rPage"></div>
</div>
CSS:
#fs9-img {
background-image: url("../images/005a.jpg");
background-size:100% 100%;
#fs10-img {
background-image: url("../images/005b.jpg");
background-size:100% 100%;
div.fs {
height: 600px;
position: relative;
div.lPage {
position: absolute;
background-repeat: no-repeat;
height: 600px;
div.rPage {
position: absolute;
background-repeat: no-repeat;
height: 600px;
margin-left: 512px; /* this value equals the value of the left side image width */
The example in section 10.4.2, Requirement #2: Using Region Magnification (Pop-Ups), expands on the
two-page image example and illustrates how to place text on top of a background image: text is
positioned within a fixed spread block, uses percentages for the margin attribute, and is aligned and
spaced via CSS. Text pop-ups should be positioned so that they cover the corresponding text in the
background.
Never use non-breaking space ( ) characters for text alignment. Instead, use CSS top, right,
bottom and left to position <div> elements that contain absolutely positioned text. Use two adjacent
sides to position each <div> element. For example, top and left but never top, left, and bottom. CSS
text-indent and line-height are useful in aligning text within HTML block elements.
Graphic novels include a large amount of detail in images that displays on a 1920 x 1200 screen. To
overcome this and other accessibility concerns, Amazon encourages the use of customized content and
our Kindle Panel View feature, which optimizes the content for a high-resolution reading experience. For
more details on Kindle Comic Creator, see section 2.2.4.
Important: Nested anchor tags are not supported in fixed-layout books. Fixed-layout books with nested
anchor tags will be suppressed.
Metadata Guidelines
The OPF file specifies metadata necessary for fixed-layout books. For a demonstration, see the graphic
novel example at www.amazon.com/kindleformat (under the KindleGen Examples heading in the
sidebar).
While similar, the various types of fixed-layout formats have key differences. Unless explicitly stated,
guidance for fixed layout books with image pop-ups or Virtual Panels should not be applied to any other
format, such as fixed-layout books with text pop-ups.
Metadata Description
Layout can be specified using one of the following Required. Identifies the book as having a fixed
metadata fields: layout.
Metadata Description
Metadata Description
<meta name="book-type" Required for all graphic novels; optional for other
content="comic"/> fixed-layout books. Removes reader functionality
(e.g., share) which may not be relevant for certain
books such as children’s. Valid values are
children or comic.
Image Guidelines
When optimized for the 2013 Kindle Fire HD 8.9”, graphic novels should maintain a 1920 x 1200 aspect
ratio. The image resolution will differ depending on the zoom factor required for Kindle Panel View.
However, Amazon recommends planning for a high quality reading experience at 2X magnification.
Images must be in the JPEG format. Amazon recommends using an image resolution of at least 300 ppi.
100% Avoid using this zoom factor. It offers no magnification and poses an 1920 x 1200
accessibility challenge for users. pixels
125% Only use this zoom factor when it is absolutely necessary to enlarge a very 2400 x 1500
large panel. This allows the user to see a large action scene, but with the pixels
downside of limited enlargement.
150% This is the default and preferred zoom factor. Use this zoom factor 2880 x 1800
whenever possible. pixels
200% Use this zoom factor for small text. 3840 x 2400
pixels
250% Only use this zoom factor when two physical pages are stitched together in 4800 x 3000
the HTML file and displayed at once and content appears especially small pixels
as a result. The downside is that the enlarged panel only represents a small
portion of the original page.
Image quality for graphic novels requires that images follow the resolution standards listed in this section
and maintain a consistent aspect ratio. Most importantly, optimize images for clarity of background art as
well as readability of text. These two factors guarantee the highest quality for the graphic novel format.
The user activates Panel View by double tapping a “tap target”. The active area (source element) is
hidden and the Panel View (target element) is displayed.
Snapshot of fixed layout content Snapshot of the same content with Panel View
activated
Example:
<div>
</div>
<div id="page_002-1">
</div>
<div class="target-mag-lb">
</div>
</div>
</div>
By default, every page is divided into four panels based on the primary-writing-mode value. The
examples below indicate the order of the panels.
Example:
Portrait mode:
Horizontal-lr Horizontal-rl
Vertical-rl Vertical-lr
Landscape mode:
11.4.1 Requirement #1: Using a Synthetic Spread When Orientation-Lock Equals None
If orientation is not locked, content should be designed for both portrait and landscape mode. Some
devices show a synthetic spread with two pages side-by-side in landscape mode. Every page intended to
be used in a synthetic spread is expected to have a defined paired page in landscape orientation. In
portrait orientation, the pairs are ignored.
Pages to be used in synthetic spreads should be tagged with the properties page-spread-left or
page-spread-right. Every left page should have a right page associated and vice-versa. Single
pages can be centered on the device in landscape mode by using the property page-spread-center.
In portrait mode, the two pages will be rendered separately as shown below:
If none of the properties are specified or if a page is tagged page-spread-left without a matching
page-spread-right (or vice-versa), Kindle assumes page-spread-center and centers pages with
no page-spread property when the device is in landscape mode.
Example:
<spine>
</spine>
Example:
<spine>
</spine>
In cases where a left page does not have an equivalent right page (or vice-versa), the publisher may
insert a blank HTML page and add the property layout-blank to the page, unless it is the last page.
Optionally, the blank page can include the book title and watermark by design.
Pages with the layout-blank property are only rendered in landscape mode and are ignored in portrait
mode.
In some cases, the publisher may wish to insert a blank page that always renders in both portrait and
landscape modes. In this instance, do not use the layout-blank property. Use the same synthetic
spread rules as noted above and reference an image file that contains a “blank” JPEG.
Example:
<spine>
</spine>
Position view panels so that they cover the corresponding image in the background. They should be
positioned over base panels and aligned to margins where possible.
When preserving context across multiple panels, it is acceptable to overlap slightly with other view
panels.
To use the default 150% default zoom factor, an action scene often needs to be divided into two view
panels (typically a left and right or top and bottom). This is a better user experience than using a smaller
zoom factor, because it preserves accessibility and gives the user a higher resolution reading experience.
Split the tap targets so that the first tap target is between 50 and 75% of the width of the entire area, and
the second tap target is the remaining amount necessary to reach 100%. This ensures that when a user
double taps an area near the middle of the action panel, they experience the first view panel first, and
then the second view panel when they move forward.
To preserve the flow of the action, view panels should display a small amount of overlapped action.
First view panel of an action scene divided into Second view panel of an action scene divided into
two view panels two view panels
Text Guidelines
To display large amounts of text, Amazon suggests a hybrid text treatment that mixes the experiences of
the graphic novels and children’s books. Amazon recommends limiting the use of the hybrid text
treatment to sections of text that are too wide to be magnified effectively. The hybrid text treatment should
mimic the formatting of the text it represents in line-height, italic and/or boldface, and general
appearance. This provides a better user experience.
To future-proof your content, Amazon recommends using pixels for text size and positioning text blocks.
Specifying font size or text position in percentages can result in fractions of pixels which may be
interpreted differently across devices.
<div class="target-mag-lb"></div>
<span id="amzn-ke-id-rtbar-Title_page-2-magTarget-2"></span>
div.target-mag div.text{
height: 100%;
padding: 5px;
background-color: #000000;
font-size: 150%;
font-family: "Arial";
Guided View
11.7.1 About Guided View
Guided View is a series of enhancements to the comic eBook reading experience that are now available
for some Kindle comics. These enhancements allow readers to view a comic on a panel by panel basis
suitable for mobile devices in a way that mimics the natural motion of the user's eye through the comic.
Guided View animates panel to panel movement with each swipe to give a clear indication of how the
story progresses across each page. Guided View features include:
A guided panel by panel reading experience using the panel order set by the publisher
Panels magnified to full-screen size and centered
Custom masking colors around each panel when magnified
The Guided View reading experience has been developed by Comixology. A visual introduction to the
Guided View experience can be viewed here:
https://support.comixology.com/customer/portal/articles/768035-what-is-comixology-s-guided-
view%E2%84%A2-technology-
Guided View is automatically applied to compatible Kindle Comics and uses the existing Panel View code
to properly position panels in Guided View. Amazon is continuously working to make Guided View
compatible with more titles and will automatically enable Guided View enhancements for your Kindle
comic when possible.
The HTML and CSS of this format follows the specifications of section 10, Creating Fixed-Layout Books
with Text Pop-Ups, including the CSS reset and embedded fonts. Fonts must be embedded, as is the
standard for all fixed-layout books.
Metadata Guidelines
The OPF file specifies metadata necessary for fixed-layout books. Unlike other fixed-layout books, this
format does not include meta name="book-type" or meta name="RegionMagnification".
Metadata Description
Layout can be specified using one of the following Required. Identifies the book as having a fixed
metadata fields: layout.
Text Guidelines
In this format, each page contains a background image that is larger than the screen size, so that the
page renders a high-quality, readable image. The text can then be created with either of the two following
methods and both methods can be used in the same book. With either method, capital letters in body text
must be at least 2mm high in non-children's content and 4mm high in children’s content on a 7” tablet
device.
In this method, the background image is stripped of text and the majority of text in the book is rendered as
live HTML text. The text can be repositioned as needed for a good eBook experience. This method also
allows search and dictionary functionality.
HTML:
</div>
</div>
CSS:
.ptxt{
font-family: "billy";
font-size: 450%;
line-height: 95%;
position: absolute;
top: 0%;
left: 2.35%; }
For text that is part of an image, or is irregularly sized, angled, or curved, you can capture that text as part
of the background and use invisible overlay text (using the opacity:0 property in the CSS file) to
enable selection, dictionary lookup, and search. The invisible overlay text should be positioned directly
over the corresponding text in the base image, and should be sized so that the highlight area of the
invisible text corresponds to the text in the base image.
HTML:
</div>
Due to the angled text, every word must be positioned individually so that the invisible HTML text overlays
the correct word.
CSS:
.overlay{
position: absolute;
font-family: "billy";
opacity: 0;
color: red;
font-size: 500%;
line-height: 107%;
text-align: center;
KF8 features are not currently supported in Kindle Edition with Audio/Video content (see sections 13.5
and 13.6 for details). The file delivered to Amazon should be a Mobi 7 EPUB with self-contained audio
and video or a Mobi 7 .prc file with self-contained audio and video. Publishers should use the latest
version of KindleGen to create a .prc file. KindleGen is available at www.amazon.com/kindleformat.
Amazon's Kindle Direct Publishing Platform (KDP) does not currently accept Kindle Edition with
Audio/Video content.
Amazon does not currently accept any audio or video books with embedded audio that acts as read-along
content, which is defined as someone reading the full text or multiple pages of text from the book in either
audio or video format.
When testing Kindle Edition with Audio/Video content, the audio and video cannot be previewed on Kindle
Previewer or on Kindle devices and applications. To add audio and/or video content to your Kindle book,
follow the guidelines and examples below.
Audio Requirements
Amazon recommends using stereo channels in the MP3 source where possible, because Kindle supports
playing back audio in stereo. Use as high a bit rate as you need to hear the audio content appropriately;
this is a judgment call. For good results, consider bit rates between 128 kbps and 256 kbps (kilobits per
second). The maximum supported by Kindle is 320 kbps at variable bit rate.
Video Requirements
Since audio content can be part of the video content, Amazon recommends using stereo channels in your
audio source where possible. Kindle supports playing back audio in stereo.
Attribute Setting
Interlacing Progressive
Will not work: any other video codec (such as Windows Media, Apple ProRes), AC3 audio, audio >2
channels
File Requirements
13.3.1 Multimedia Directory
When adding audio and video files to an eBook, create an “audiovideo” directory for storing these files.
When referring to the audio or video file, include the directory name (Example: “audiovideo/filename”) in
the HTML.
Limit the number of individual audio and video files within each title to 1,000 or fewer.
Navigation Guidelines
13.4.1 Including an Audio and Video TOC
All Kindle Edition with Audio/Video content must have a TOC that begins with "List of Audio and Video."
This line should be bold. On the next line, begin an indented list of hyperlinks to each audio and video file.
The text of the link should include the file description, with the file duration in parentheses.
Use these guidelines for all audio and video files longer than 10 seconds that a user might want to see
listed. For general navigation and TOC guidance, see section 5.
Here is an example of how the code below would display in the TOC:
<br/><br/><br/>"There is video content at this location that is not currently supported for your device. The caption
for this content is displayed below."<br/><br/><br/>
</video>
<br/><br/><br/>”There is audio content at this location that is not currently supported for your device. The caption
for this content is displayed below.” <br/><br/><br/>
</audio>
Text Guidelines
KF8 features are not currently supported in Kindle Edition with Audio/Video content. This includes, but is
not limited to:
Borders
Drop caps
Drop shadow
Embedded fonts
Floating elements
Nested tables and merged cells
Image Guidelines
KF8 features are not currently supported in Kindle Edition with Audio/Video content. This includes, but is
not limited to:
Background images
Floating images
Scalable Vector Graphics (SVG)
To embed an audio file inside a Kindle book, add a standard HTML 5 tag such as the following:
Example:
<br/><br/><br/>"There is audio content at this location that is not currently supported for your device. The caption
for this content is displayed below."<br/><br/><br/>
</audio>
src tag: (Required) Identifies the embedded audio file, which must be in MP3 format.
title tag: (Optional) Identifies the description of the audio.
controls tag: (Required, unless you provide an image for use in starting the video playback)
Tells the Kindle application to display controls for the embedded audio.
text content: (Required) Devices that do not support audio content display the text between the
<audio> and </audio> tags. If users view this eBook on a device that does not support audio,
they see this text instead. (Example: “There is content at this location that is not currently
supported for your device. The caption for this content is displayed below.”)
id tag: (Optional) Must be unique to the document if it is used.
To embed a video inside a Kindle book, add a standard HTML 5 tag such as the following:
Example:
<br/><br/><br/>"There is video content at this location that is not currently supported for your device. The caption
for this content is displayed below."<br/><br/><br/>
</video>
Example:
<br/><br/><br/>"There is video content at this location that is not currently supported for your device. The caption
for this content is displayed below."<br/><br/><br/>
</video>
</p>
Captions should not be generic. They should describe the media content they are referencing.
These media captions are not a good user experience:
1. Media 1
2. Track 1
3. Audio 1
4. Video 1
These media captions describe the content:
1. Introduction by the Author
2. The Making of the Movie
Media captions cannot include file extensions (.mp3, .mp4, etc.).
To add play controls to the image, superimpose the Amazon PLAY icon onto the lower right-hand side of
any image via Adobe Photoshop or similar program. Then add the following tag to the HTML (in this
example, the audio file has an id attribute of "audio1" and no controls tag):
Example:
The sample file should include at least one of each type of media available in the full file, including both
audio and video, if applicable.
The sample file must have a “Buy It Now” link added to the end, or where appropriate.
14 Creating Dictionaries
A dictionary is a Kindle eBook (.mobi file) with extra tags added to support search and lookup
functionality. Dictionary eBooks:
Contain a primary index: a list of words or sentences that are sorted in alphabetical order.
Readers can search quickly in this list by typing the beginning of the word and selecting the
desired entry.
Are marked as dictionaries. The input and output languages of the dictionary must be defined
properly so that Kindle devices can use the dictionary for in-book lookup.
For example, an English (monolingual) dictionary lists English as both the input and output language. A
French-English dictionary lists French as the input language and English as the output language. To build
a bidirectional bilingual dictionary (example: Spanish-French and French-Spanish), you must create two
separate eBooks: one for Spanish-French and one for French-Spanish.
A Kindle dictionary should have all the same components as a normal Kindle eBook. There should be an
OPF file and HTML files with CSS. Every dictionary should have:
A cover image
A copyright page
Any relevant front or back matter (explanations of symbols, appendices, etc.)
Definitions of words (this is the bulk of the file)
Metadata Guidelines
The OPF file of a dictionary is similar to that of other Kindle books, except that it contains specialized
metadata tags in the <x-metadata> section. These extra tags in the OPF file set the source language
and the target language for the dictionary. If the dictionary has multiple indices, the OPF file also specifies
the name of the primary lookup index.
The <DictionaryInLanguage> element contains the ISO 639-1 language code for the
language of the books this dictionary is designed to be used on. For a Spanish-French
dictionary, the input language is Spanish.
The <DictionaryOutLanguage> element contains the ISO 639-1 language code for the
language of the definitions returned by the dictionary. For a Spanish-French dictionary, the
output language is French.
The <DefaultLookupIndex> element indicates the index that will open first when the
dictionary is used for lookup from another eBook. The default index must be specified if the
dictionary has more than one index. The index name that is wrapped in the
<DefaultLookupIndex> tags in the OPF file also should appear as the value of the name
attribute in the <idx:entry> elements in the content of the dictionary (see section 14.3.3).
As an example, for a Spanish-French dictionary, the input language code would be es; the output
language code would be fr, and the primary index might be named Spanish. A list of country codes can
be found at: http://www.w3schools.com/tags/ref_language_codes.asp.
<DictionaryInLanguage>es</DictionaryInLanguage>
<DictionaryOutLanguage>fr</DictionaryOutLanguage>
<DefaultLookupIndex>Spanish</DefaultLookupIndex>
...
</x-metadata>
For a monolingual dictionary, the same language code must appear twice: once to identify the input
language, and again to identify the same language as the output language. To identify a regional variant
for the source and/or target languages, a regional suffix may be appended to the ISO 639-1 code. For
example, en-gb indicates British English, while en-us indicates US English.
<DictionaryInLanguage>en-us</DictionaryInLanguage>
<DictionaryOutLanguage>en-us</DictionaryOutLanguage>
<DefaultLookupIndex>headword</DefaultLookupIndex>
...
</x-metadata>
Example:
<html xmlns:math="http://exslt.org/math" xmlns:svg="http://www.w3.org/2000/svg"
xmlns:tl="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf"
xmlns:saxon="http://saxon.sf.net/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cx="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:mbp="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf"
xmlns:mmc="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf"
xmlns:idx="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf">
<body>
<mbp:frameset>
<idx:short><a id="1"></a>
<idx:orth value="aardvark"><b>aard•vark</b>
<idx:infl>
<idx:iform value="aardvarks"></idx:iform>
<idx:iform value="aardvark’s"></idx:iform>
<idx:iform value="aardvarks’"></idx:iform>
</idx:infl>
</idx:orth>
<p> A nocturnal burrowing mammal native to sub-Saharan Africa that feeds exclusively on ants and termites. </p>
</idx:short>
</idx:entry>
[...other entries…]
</mbp:frameset>
</body>
</html>
<idx:entry>..</idx:entry>
The <idx:entry> tag marks the scope of each entry to be indexed. In a dictionary, each headword with
its definition(s) should be placed between <idx:entry> and </idx:entry>. Any type of HTML may be
placed within this tag.
The <idx:entry> tag can carry the name, scriptable, and spell attributes. The name attribute
indicates the index to which the headword belongs. The value of the name attribute should be the same
as the default lookup index name listed in the OPF. The scriptable attribute makes the entry
accessible from the index. The only possible value for the scriptable attribute is "yes". The spell
attribute enables wildcard search and spell correction during word lookup. The only possible value for the
spell attribute is "yes".
Example:
<idx:entry name="english" scriptable="yes" spell="yes">
The <idx:entry> tag also may carry an id attribute with the sequential id number of the entry. This
number should match the value of the id attribute in an anchor tag used for cross-reference linking:
Example:
<idx:entry name="japanese" scriptable="yes" spell="yes" id="12345">
<a id="12345"></a>
The entry id number is not used for in-book lookup; instead, the wordform entity to be indexed for lookup
must be contained in the <idx:orth> element as described in the following sections.
<idx:orth>..</idx:orth>
The <idx:orth> tag is used to delimit the label that will appear in the index list and that will be
searchable as a lookup headword. This is the text that users can enter in the search box to find an entry.
Example:
<idx:orth>Label of entry in Index</idx:orth>
Here is an example of an extremely simple entry that could be part of an English dictionary. From this
example code, the word "chair" would appear in the index list and would be searchable by users.
Example:
<idx:entry>
<idx:orth>chair</idx:orth>
A seat for one person, which has a back, usually four legs, and sometimes two arms.
<idx:entry>
The value attribute can be used on the <idx:orth> tag to include a hidden label in the entry. This
attribute maintains lookup functionality in the presence of the special formatting that commonly appears
on headwords in dictionaries.
Example:
<idx:orth value="Hidden Label of entry in Index">Display format</orth>
If the headword should be displayed in the dictionary with a superscripted number to indicate
homographs, with a registered trademark symbol, with middle dots to separate syllables, or with any other
added symbols, this special formatting should appear on the text between the <idx:orth> tags, but not
on the text in the value attribute. The text in the value attribute should match exactly the form to be
used for lookup. If a value attribute is not supplied, then the entity between the <idx:orth> tags will be
indexed for lookup. If middle dots, superscripted numbers, or any other symbols are included in the text
between the <idx:orth> tags, then in-book lookup will fail unless a hidden label with the lookup form is
supplied in the value attribute.
Example:
<idx:orth value="Amazon">A•ma•zon®<sup>3</sup></orth>
If the dictionary uses more than one orthographic script, then the format attribute on the <orth> tag
can be used to identify each script for building the index.
Example:
<idx:orth format="script name">
Along with this primary index of headwords for all entries in the dictionary, in-book lookup also requires a
supplementary index of inflected forms for each headword. To build the hidden inflection index, additional
data should be nested within the <idx:orth> tag as follows.
<idx:infl>..</idx:infl>
The <idx:infl> element may contain multiple <idx:iform /> elements. The <idx:iform />
elements are always empty elements, and are used only to carry attributes, not visible content. The
value attribute indicates the inflected forms that make up the inflection index.
Example:
<idx:orth>record
<idx:infl>
</idx:infl>
</idx:orth>
The <idx:infl> tag, the <idx:iform /> tag, and the value attribute are mandatory. The
<idx:infl> element also may carry an optional inflgrp attribute to denote part of speech, and the
<idx:iform /> element may carry an optional name attribute to indicate the inflection paradigm
category. For languages that use extensive inflection, including these optional categories will expand the
size of the inflection index and may result in slower performance during word lookup.
Example:
<idx:orth>record
<idx:infl inflgrp="noun">
</idx:infl>
<idx:infl inflgrp="verb">
</idx:infl>
</idx:orth>
The values listed as attributes of the <idx:iform /> tag will be invisible to the user, but rather will
provide the information needed to redirect from inflected forms to the associated headwords during in-
book lookup. To inform the user about parts of speech or inflection paradigms, additional text should be
included in the body of the entry (i.e., alongside the definition and examples).
<idx:key>..</idx:key> (DEPRECATED)
Like the <idx:infl> tag, the <idx:key> tag is designed to enable search for an entry in the index by
means of an alternative lookup wordform. However, the presence of <idx:key> tags in a Kindle
dictionary can create instability in the lookup functionality and can interfere with the operation of the
exact-match parameter (see section 14.4.2). For these reasons, the use of <idx:key> tags in Kindle
dictionaries is deprecated. Instead, <idx:infl> and <idx:iform /> tags should be used to wrap the
alternative lookup forms.
Example:
<idx:entry name="spanish" scriptable="yes" spell="yes">
<a id="12345"></a>
<idx:orth value="uña"><b>uña</b>
<idx:infl>
</idx:infl>
</idx:orth>
Setting the exact parameter to "yes" forces the device to match uñas to the headword uña (‘fingernail’)
and prohibits a match to una (‘one’).
If the dictionary entries are contained in a single, very large XHTML file, then KindleGen may not be able
to build the dictionary. If the dictionary fails to build, this problem may be resolved by splitting the
dictionary content into two or more XHTML files.
Check the index view of the dictionary. To do this, open the dictionary and start typing a word
in the Search box. An alphabetized list of headwords should appear and should update
dynamically based on which letters are typed. Selecting a headword from the index list
should redirect the user to the dictionary entry for that headword.
Page Flip automatically saves a reader's place as With Page Flip, readers can view multiple pages
they browse through the book at once to better locate a chart or image
<!--...--> Yes
<!DOCTYPE> Yes (not on E-reader)
<?xml?> Yes
<a> Yes
<address> Yes
<article> Yes
<aside> Yes
<audio> No
<b> Yes
<base> No
<big> Yes (deprecated – recommend using CSS instead)
<blockquote> Yes
<body> Yes
<br> Yes
<canvas> No
<caption> Yes
<center> Yes (deprecated – recommend using CSS style text-
align:center instead)
<cite> Yes
<code> Yes
<col> Yes
<command> No
<datalist> No
<dd> Yes
<del> Yes
<dfn> Yes
<div> Yes
<dl> Yes
<dt> Yes
<em> Yes
<embed> Only SVG is supported
<eventsource> No
<figcaption> Yes
<figure> Yes
<font> Yes (deprecated – recommend using CSS instead)
<footer> Yes
<form> No
<h1> Yes
<h2> Yes
<h3> Yes
<h4> Yes
<h5> Yes
<h6> Yes
<head> Yes
<header> Yes
<hgroup> Yes
<hr> Yes
<html> Yes
<i> Yes
<iframe> No
<img> Yes
<input> No
<ins> Yes
<kbd> Yes
<keygen> No
<li> Yes
<link> Yes
<mark> Yes
<marquee> No
<menu> Yes
<nav> Yes
<noscript> No
<object> Only SVG is supported
<ol> Yes
<output> Yes
<p> Yes
<param> No
<pre> Yes
<q> Yes
<rp> Yes
<rt> Yes
<samp> Yes
<script> Reserved for Amazon use only
<section> Yes
<small> Yes
<source> Yes
<span> Yes
<strike> Yes
<strong> Yes
<style> Yes
<sub> Yes
<summary> Yes
<sup> Yes
<table> Yes
<tbody> Yes
<td> Yes
<tfoot> Yes
<th> Yes
<thead> Yes
<time> Yes
<title> Yes
<tr> Yes
<u> Yes
<ul> Yes
<var> Yes
<video> No
<wbr> Yes
border-left Yes
border-radius Yes
border-right Yes
border-spacing Yes
border-style Yes
border-top Yes
border-width Yes
bottom Yes
caption-side Yes
clear Yes
clip Yes
color Yes
color-index Yes
counter-increment No
counter-reset No
device-aspect-ratio Yes
device-height Yes
device-width Yes
direction Yes
display Yes
E Yes
E + F (Direct adjacent) No
E ~ F (Indirect No
adjacent)
E.class Yes
E#id Yes
E::after No
E::before No
E::first-letter No
E::first-line No
E:first-child No
E:first-of-type No
E:last-child No
E:last-of-type No
E:link Yes
E:nth-child No
E:nth-last-child No
E:nth-last-of-type No
E:nth-of-type No
E:only-child No
E:only-of-type No
E:visited No
empty-cells Yes
float Yes
font Yes
font-family Yes
font-size Yes
font-style Yes
font-variant Yes
font-weight Yes
height Yes
left Yes
letter-spacing Yes
line-height Yes
list-style Yes
list-style-image Yes
list-style-position Yes
list-style-type Yes
margin Yes
max-height No
max-width No
min-height Yes
min-width Yes
monochrome Yes
opacity Yes
outline No
outline-color No
outline-offset Yes
outline-style No
outline-width No
padding Yes
position Yes
right Yes
text-align Yes
text-decoration Yes
text-indent Yes
text-overflow Yes
text-shadow Yes
text-transform Yes
top Yes
vertical-align Yes
visibility Yes
white-space Yes
width Yes
word-spacing Yes
word-wrap Yes
z-index Yes
Amazon recommends that content creators only use media queries if they solve a problem or provide a
better customer experience. For example, you can use media queries to:
Create custom drop cap solutions for specific devices or groups of devices.
Change light-colored text (yellow, baby blue, pink, etc.) to darker colors that provide better
contrast on E-reader while retaining the original color on tablet devices.
Increase the font size for fixed-layout text pop-ups on E-reader devices separately from tablets to
accommodate the difference in screen sizes.
Display colored borders on E-reader and colored backgrounds on tablets independently from
each other, allowing you to better replicate the print experience on tablets without sacrificing the
reading experience on E-reader devices.
This section describes ways that you can use media queries to customize the reading experience on
Kindle E-reader devices, Fire tablets, and iPads. You can also use these same principles across all
Kindle platforms for devices of all aspect ratios.
Media queries are part of the W3 standard. For more information, visit http://www.w3.org/TR/css3-
mediaqueries/
In the following example, the blue background color is only applied if the format of the book is KF8 and
the aspect ratio of the device is 1280 x 800.
Example:
.blue_background {
background-color: blue;
Example:
CSS comments are invisible to the customer, but they make the code much easier to navigate and
troubleshoot for anyone who works on the file.
In the following example, the default code creates a black border on every device for any element that
uses the blue_background class. The media queries that follow it remove the border and display a blue
background on Fire tablets and iPad for any element that uses the blue_background class. All other
devices will only display the black border.
Example:
/* Default Formatting. Use this for Kindle E-reader. No media queries required. */
.blue_background {
/* Kindle Fire (All) Formatting. Use this to target all Fire Tablets. */
.blue_background {
background-color: blue;
border: none;
/* iPad (3, Air, Mini) Formatting. Use this for any iPad. */
.blue_background {
background-color: blue;
border: none;
In the example above, the black border defined in the default code for the blue_background class will
still appear on Fire tablets if the border property is not overridden. Setting the border to none in the
media queries for Fire tablets and iPad ensures that the default values for these properties are
overridden. This is helpful if you are using non-media query code to target Kindle E-reader devices and
do not want to transfer a colored border to a Fire tablet.
In the following example, the goal is to override a colored border on Fire tablets and replace it with a
colored background, while keeping the text red for all devices. The example on the left is incorrect
because repeating the .red_font class in the media query code is not necessary.
Example:
.blue_background { .blue_background {
border: 1px solid blue; border: 1px solid blue;
} }
.red_font { .red_font {
color: red; color: red;
} }
.blue_background { .blue_background {
background-color: blue; background-color: blue;
border: none; border: none;
} }
}
.red_font {
color: red;
}
}
Media Queries in CSS CSS Applied to KF8 CSS Applied to CSS Applied to
Mobi Other Readers
@media amzn-mobi - font- -
{ size:3em;
.class1 font-weight:
{ bold;
font=size:3em;
font-weight: bold;
}
}
Media Queries in CSS CSS Applied to KF8 CSS Applied to CSS Applied to
Mobi Other Readers
.class1 font-style: font-style: font-style:
{ italic; italic; italic;
font-style: italic; font-size: 2em; font-size: font-size:2em;
font-size:2em; 3em;
} font-weight:
bold;
@media amzn-mobi
{
.class1
{
font-size:3em;
font-weight: bold;
}
}
.class1
{
font-style: italic;
font-size:2em;
}
Media Queries in CSS CSS Applied to KF8 CSS Applied to CSS Applied to
Mobi Other Readers
@media not amzn-mobi .firstletter .firstletter .firstletter
{ { { {
.firstletter float: left; font-size: float: left;
{ font-size: 3em; font-size:
float: left; 3em; } 3em;
font-size: 3em; line-height: line-height:
line-height: 1; 1; 1;
font-weight: bold; font-weight: font-weight:
padding-right: .2em; bold; bold;
margin: 10px padding-right: padding-right:
} .2em; .2em;
} margin: 10px margin: 10px
} }
@media amzn-mobi }
{
.firstletter {
font-size: 3em;
}
}
@media amzn-kf8 p {
{ color: red;
p { }
color: red;
}
}
p { p { p {
font-style: normal; font-style: normal; font-style: normal;
} } }
h { h { h {
font-weight: bold; font-weight: bold; font-weight: bold;
} } }
ul { ul { ul {
margin: 20px; margin: 20px; margin: 20px;
padding-left: 30px; padding-left: 30px; padding-left: 30px;
} } }
@media amzn-mobi {
.firstletter {
float: left;
font-size: 3em;
line-height: 0;
font-weight: bold;
padding-right: 0;
}
}
Example:
.class1 {
font-style: italic;
font-size:2em;
@media amzn-mobi {
.class1 {
font-size:3em;
font-weight: bold;
Example:
Example:
<style type="text/css">
Example:
@import
@import url(common.css);
Example:
.defaultcontent {
display: block;
.mobicontent {
display: none;
@media amzn-mobi {
.defaultcontent {
display: none;
.mobicontent {
display: block;
Example:
.defaultcontent {
display: block;
.mobicontent {
display: none;
@media amzn-mobi {
.defaultcontent {
display: none;
.mobicontent {
display: block;
<tr>
<th>Heading</th>
<th>Heading</th>
<th>Heading</th>
</tr>
<tr>
<td>Cell</td>
<td>
<tr>
<td>Nested</td>
<td>Nested</td>
</tr>
<tr>
<td>Nested</td>
<td>Nested</td>
</tr>
</table>
</td>
<td>Cell</td>
</tr>
</table>
Example:
.defaultcontent {
display: block;
.mobicontent {
display: none;
@media amzn-mobi {
.defaultcontent {
display: none;
.mobicontent {
display: block;
</svg>
You can use an additional command line option (-intermediate_only) to generate intermediate
OPF/HTML files:
This option generates intermediate files as OPF/HTML files in a new folder next to the input folder.
KindleGen names this folder with the input folder name followed by _dump. To change anything in the
intermediate files, use these intermediate HTML or OPF files. The intermediate HTML or OPF files should
follow the guidance outlined elsewhere in this document.
The OPF file is named current_content.opf and can be found at the same location as the main.xml file.
Use the following command to generate the KF8 from OPF/HTML files:
Source Issues
An XMDF source can have multiple issues that degrade the reading experience on Kindle. You can
correct these issues to improve the reading experience. The following sections list a few of the top source
issues found in our testing,
Correct:
</p>
Incorrect:
Correct:
<yoko>10</yoko>
</char_id>
CHAPTER X
Incorrect:
CHAPTER X
Correct:
Incorrect:
Some Kindle devices allow the reader to change the background color to black. If text is forced black, it
will not be readable in this mode and the book will be suppressed.
Example:
<br/>
Example:
<special_page_link>
...
</special_page_link>
Unsupported Features
Some XMDF features are not supported in Kindle. If the file has such features, KindleGen displays an
error message and fails the conversion. These are the unsupported features.