epubjs
Version:
Render ePub documents in the browser, across many devices
749 lines (614 loc) • 17.8 kB
CSS
@charset "UTF-8";
/* O'Reilly Media, 2014; version 4.0.0 */
/* reset */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del,
dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub,
sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form,
label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent; }
/* end reset */
/* ---------------------- general blocks ---------------------- */
p, dd { /* general text styles */
font-family: sans-serif;
text-indent: 20px;
font-size: 0.9em;
line-height: 125%;
}
section[data-type="preface"] > h1 + p,
div[data-type="part"] > h1 + p,
section[data-type="chapter"] > h1 + p,
div[data-type="chapter"] > h1 + p
section[data-type="chapter"] > h1 + div.author p,
section[data-type="sect1"] > h1 + p,
section[data-type="sect2"] > h2 + p,
section[data-type="sect3"] > h3 + p,
p {
text-indent: 0px; /* first paragraph following a heading has no indent */
}
/* ---------------------- general inlines ---------------------- */
p a {
display: inline;
}
/* frontmatter */
section[data-type="titlepage"] h1 {
font-family: serif;
}
section[data-type="titlepage"] h2,
section[data-type="copyright-page"] h1 {
font-family: sans-serif;
}
section[data-type="halftitlepage"] {
display: none;
}
section[data-type="titlepage"] {
text-align: left;
page-break-after: always;
}
section[data-type="titlepage"] h1 {
border-bottom: 1px solid #333;
margin-top: 100px;
padding-bottom: 10px;
}
section[data-type="titlepage"] h1 {
font-size: 2em;
line-height: 120%;
}
section[data-type="titlepage"] h2 {
font-size: 1.2em;
line-height: 120%;
margin-top: 20px;
}
/* styling and positioning for author names and other text */
section[data-type="titlepage"] p:first-of-type {
margin-top: 82pt;
}
section[data-type="titlepage"] p {
font-family: sans-serif;
font-size: 13pt;
line-height: 16pt;
margin-top: 0pt;
margin-bottom: 0pt;
float: none;
text-indent: 0;
}
/* ---------------------- copyright page ---------------------- */
section[data-type="copyright-page"] {
margin-top: 100px;
page-break-after: always;
}
section[data-type="copyright-page"] h1 {
font-size: 0.8em;
}
section[data-type="copyright-page"] p {
font-family: sans-serif;
font-size: 0.8em;
margin: 0;
text-indent: 0;
}
/* dedication */
section[data-type="dedication"] {
font-family: serif;
font-style: italic;
page-break-after: always;
text-align: center;
padding-top: 100px;
}
section.preface[title="Dedication"] > div.titlepage h2.title {
text-align: center;
text-transform: uppercase;
font-size: 1.5em;
margin-top: 50px;
margin-bottom: 50px;
}
section.preface[title="Dedication"] p {
font-style: italic;
text-align: center;
}
/* ---------------------- table of contents ---------------------- */
/* global styles for the table of contents */
/* table of contents is a series of nested lists in a nav element */
nav[data-type="toc"] a { /* all table of contents entries are also links */
font-style: normal;
}
nav[data-type="toc"] li { /* no list marker on table of contents entries */
list-style-type: none;
}
nav[data-type="toc"] > h1 { /* table of contents heading */
font-size: 1.5em;
line-height: 120%;
margin-top: 80px;
margin-bottom: 50px;
text-align: center;
}
/* defining fonts for the table of contents */
nav[data-type="toc"] a {
text-decoration: none;
}
nav[data-type="toc"] li {
font-family: sans-serif;
}
nav[data-type="toc"] li[data-type="chapter"],
nav[data-type="toc"] li[data-type="part"],
nav[data-type="toc"] li[data-type="appendix"] {
font-size: 0.9em;
line-height: 120%;
margin-left: 0;
text-indent: 0;
}
/* entries for parts in the table of contents */
nav[data-type="toc"] li[data-type="part"] {
margin-top: 25px;
}
nav[data-type="toc"] li[data-type="part"] > a {
border-bottom: 1px solid #333;
width: 100%;
display: inline-block;
}
nav[data-type="toc"] li[data-type="part"] ol {
margin-left: 0;
text-indent: 0;
}
/* entries for chapters and appendixes in the table of contents */
nav[data-type="toc"] li[data-type="chapter"] {
margin-top: 20px;
}
nav[data-type="toc"] li[data-type="chapter"]:last-of-type,
nav[data-type="toc"] li[data-type="appendix"] {
margin-bottom: 20px;
}
/* entries for sub-sections */
nav[data-type="toc"] li[data-type="chapter"] ol {
font-family: sans-serif;
font-size: 0.9em;
line-height: 120%;
margin-left: 20px;
text-indent: -10px;
}
nav[data-type="toc"] li[data-type="chapter"] ol ol {
margin-left: 10px;
text-indent: -10px;
}
/* front and backmatter in the table of contents */
nav[data-type="toc"] li[data-type="preface"],
nav[data-type="toc"] li[data-type="foreword"],
nav[data-type="toc"] li[data-type="glossary"],
nav[data-type="toc"] li[data-type="index"] {
font-size: 0.9em;
line-height: 120%;
}
nav[data-type="toc"] li[data-type="preface"] ol,
nav[data-type="toc"] li[data-type="foreword"] ol {
display: none;
}
/* page breaks after all chapter-level sections */
section[data-type="preface"],
div[data-type="part"],
section[data-type="chapter"],
section[data-type="appendix"] {
page-break-after: always;
}
/* ---------------------- headings ---------------------- */
/* heading font is sans serif */
nav[data-type="toc"] > h1,
div[data-type="part"] > h1,
section[data-type="preface"] > h1,
section[data-type="chapter"] > h1,
section[data-type="appendix"] > h1,
section[data-type="sect1"] h1,
section[data-type="bibliography"] h1,
section[data-type="glossary"] h1 {
font-family: serif;
line-height: 120%;
-webkit-hyphens: none;
hyphens: none;
adobe-hyphenate: none;
}
section[data-type="sect2"] h2,
section[data-type="sect3"] h3 {
font-family: sans-serif;
line-height: 120%;
}
/* shared styles for all chapter-level headings */
section[data-type="preface"] > h1,
section[data-type="chapter"] > h1,
section[data-type="appendix"] > h1,
div.chapter > h1 {
font-size: 2em;
margin-top: 70px;
margin-bottom: 50px;
text-align: right;
-webkit-hyphens: none;
hyphens: none;
adobe-hyphenate: none;
}
div.chapter > h1 > span.label {
width: 100%;
display: block;
}
/* section headings */
section[data-type="sect1"] h1 { /* A-level headings */
font-size: 1.5em;
margin-top: 40px;
margin-bottom: 10px;
}
section[data-type="sect2"] h2 { /* B-level headings */
font-size: 1.25em;
margin-top: 30px;
margin-bottom: 10px;
}
section[data-type="sect3"] h3 { /* C-level headings */
font-size: 1em;
margin-top: 20px;
margin-bottom: 10px;
}
/* parts */
div[data-type="part"] > h1 {
font-size: 1.8em;
text-align: center;
margin-top: 100px;
margin-bottom: 70px;
}
/* ---------------------- lists ---------------------- */
/*Top-level list positioning*/
ul, ol {
margin: 0.25em 0 1em 15px;
padding: 0 0 0 -10px;
list-style-position: outside;
text-indent: 0;
}
ul li, ol li,
ul li p, ol li p {
font-family: sans-serif;
font-size: 0.9em;
line-height: 120%;
margin-top: 5px;
text-indent: 0;
}
dl { /* definition lists */
margin-bottom: 15px;
}
dt { /* definition list terms */
font-family: sans-serif;
font-size: 0.9em;
line-height: 120%;
margin-top: 15px;
margin-bottom: 0;
}
dd { /* definition list descriptions */
text-indent: 0;
margin-left: 20px;
margin-bottom: 20px;
margin-top: -5px;
}
dd p {
text-indent: 0;
}
/* ---------------------- tables ---------------------- */
table {
margin-top: 30px;
margin-bottom: 30px;
border-bottom: 1px solid #888;
border-collapse: collapse;
max-width: 100%;
}
table caption {
font-family: serif;
font-size: 0.8em;
line-height: 120%;
text-align: left;
margin: 0 0 10px 0;
padding: 0;
}
table caption span.label { font-weight: bold;}
tr {
border-width: 0px;
}
th { /* table heading rows */
font-family: sans-serif;
font-size: 0.8em;
line-height: 120%;
text-align: left;
margin-top: 0;
border-top: 1px solid #888;
border-bottom: 1px solid #888;
}
th, td {
padding: 6px;
}
td, table p { /* table body text */
font-family: sans-serif;
font-size: 12px;
line-height: 120%;
}
table p { /* table body text */
text-indent: 0;
margin-top: 6px;
}
td pre.programlisting, td pre.screen, td pre.literallayout, td code { /* allow code in tables to wrap */
white-space: pre-wrap;
word-wrap: break-word;
}
/* ---------------------- figures ---------------------- */
div.figure { /* figure containers */
margin: 30px 0px;
padding: 0 40px 0 0;
border-top: 1px solid #888;
border-bottom: 1px solid #888;
/*both of these elements are to avoid page breaks inside*/
display: inline-block;
page-break-inside: avoid;
}
div.figure img { /* figure images */
padding: 5px 0 5px 0;
max-width: 85% ;
margin: 0 auto;
}
div.figure h6,
figcaption {
font-family: serif;
font-size: 0.8em;
font-style: italic;
line-height: 120%;
display: block;
font-weight: normal;
margin: 6px 0 5px 0;
}
div.figure h6 span.label,
figcaptio span.label {
font-weight: bold;
font-style: normal;}
/* callouts */
a.co img {
margin: 0;
}
dl.calloutlist {
text-align: justify;
}
dl.calloutlist dt {
position: relative;
line-height: 0;
top: 5pt;
margin-bottom: -4pt;
page-break-after: avoid;
}
/* ---------------------- sidebars ---------------------- */
div.sidebar { background-color: #F7F7F7;
border: 1px solid #d8d8d8;
padding: 20px 20px 10px 20px;
margin: 30px 0 30px 0;
-webkit-border-radius: 5px;
border-radius: 5px;}
div.sidebar h5 { /* sidebar titles */
font-family: sans-serif;
font-size: 0.9em;
line-height: 120%;
text-align: center;
margin: 0;
padding: 0;
}
div.sidebar h6 { /* sidebar subtitles */
font-family: sans-serif;
font-weight: bold;
font-size: 0.9em;
line-height: 120%;
}
div.sidebar p { /* sidebar text */
font-family: serif;
font-size: 0.9em;
line-height: 130%;
text-indent: 0;
margin-top: 6px;
}
/* ---------------------- admonitions ---------------------- */
div[data-type="note"],
div[data-type="warning"],
div[data-type="tip"],
div[data-type="caution"],
div[data-type="important"] { /* admonition containers */
border-top: 1px solid #888;
border-bottom: 1px solid #888;
padding: 0;
margin: 25px 50px 25px 30px;
page-break-inside: avoid; /* avoid breaking admonitions across pages */
text-align: justify;
}
div[data-type="note"] h1,
div[data-type="warning"] h1,
div[data-type="tip"] h1,
div[data-type="caution"] h1,
div[data-type="important"] h1 { /* admonition titles */
color: #000;
font-family: sans-serif;
font-weight: bold;
font-size: 0.8em;
text-transform: uppercase;
text-align: center;
margin: 4px 0;
padding: 0;
}
div[data-type="note"] p,
div[data-type="warning"] p,
div[data-type="tip"] p,
div[data-type="caution"] p,
div[data-type="important"] p { /* admonition text */
font-family: serif;
font-size: 0.8em;
line-height: 120%;
text-indent: 0in;
}
/* ---------------------- code ---------------------- */
pre, code { /* monospace font for both code blocks and inline code */
font-family: monospace;
}
pre { /* code blocks */
white-space: pre-wrap;
font-family: "Ubuntu Mono", monospace;
margin: 25px 0 25px 20px;
font-size: 90%;
display: block;
-webkit-hyphens: none;
hyphens: none;
adobe-hyphenate: none;
}
code { /* inline code */
font-size: 90%;
-webkit-hyphens: none;
hyphens: none;
adobe-hyphenate: none;
}
table pre { /* code blocks within tables */
text-indent: 0;
}
div[data-type="note"] code,
div[data-type="warning"] code,
aside code,
table code { /* inline code within notes, sidebars and tables */
font-size: inherit;
line-height: inherit;
}
div[data-type="example"] h5 { /* titles for formal code examples */
font-family: serif;
font-size: 95%;
line-height: 120%;
border-bottom: 1px solid #d8d8d8;
padding-bottom: 6px;
margin-top: 30px;
font-weight: normal;
font-style: italic;
}
div[data-type="example"] h5 span.label {
font-weight: bold;
font-family: sans-serif;
font-style: normal;
}
/* ---------------------- blockquotes ---------------------- */
blockquote {
font-family: sans-serif;
font-size: 0.8em;
line-height: 130%;
margin-left: 30px;
margin-right: 30px;
}
blockquote p {
text-indent: 0;
}
/* ----------------- index ----------------- */
div.index {
font-weight: bold;
text-indent: 0;
}
div.index li {
line-height: 140%;
}
div.index a.indexterm {
color: #8e0012;
}
div.index ul {
list-style-type: none;
padding-left: 0;
margin-left: 0;
}
div.index ul li {
padding-left: 0;
margin-left: 0;
}
div.index ul li ul li {
margin-left: 20px;
}
/* ----------------- Appendix ----------------- */
section[data-type="appendix"] section[data-type="sect1"] h1 {
margin-bottom: 0;
padding:0px;
}
section[data-type="appendix"] section[data-type="sect1"] dl {
font-size: 90%;
clear: both;
padding:0px;
}
section[data-type="appendix"] section[data-type="sect1"] dt a {
margin-top: -5px;
padding:0px;}
section[data-type="appendix"] section[data-type="sect1"] dd p {
padding:0px;
margin-bottom: -5px;}
/* ---------------------- Syntax Highlighting ---------------------- */
/* Pygments with manni theme */
pre code.hll { background-color: #ffffcc }
pre code.c { color: #0099FF; font-style: italic } /* Comment */
pre code.err { color: #AA0000 } /* Error */
pre code.k { color: #006699; font-weight: bold } /* Keyword */
pre code.o { color: #555555 } /* Operator */
pre code.cm { color: #35586C; font-style: italic } /* Comment.Multiline */
pre code.cp { color: #009999 } /* Comment.Preproc */
pre code.c1 { color: #35586C; font-style: italic } /* Comment.Single */
pre code.cs { color: #35586C; font-weight: bold; font-style: italic } /* Comment.Special */
pre code.gd { background-color: #FFCCCC } /* Generic.Deleted */
pre code.ge { font-style: italic } /* Generic.Emph */
pre code.gr { color: #FF0000 } /* Generic.Error */
pre code.gh { color: #003300; font-weight: bold } /* Generic.Heading */
pre code.gi { background-color: #CCFFCC } /* Generic.Inserted */
/* Overriding default manni style of #AAAAAA gray for Generic Output with #000000 black, which is better suited to ORM terminal output */
pre code.go { color: #000000 } /* Generic.Output */
pre code.gp { color: #000099; font-weight: bold } /* Generic.Prompt */
pre code.gs { font-weight: bold } /* Generic.Strong */
pre code.gu { color: #003300; font-weight: bold } /* Generic.Subheading */
pre code.gt { color: #99CC66 } /* Generic.Traceback */
pre code.kc { color: #006699; font-weight: bold } /* Keyword.Constant */
pre code.kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
pre code.kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
pre code.kp { color: #006699 } /* Keyword.Pseudo */
pre code.kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
pre code.kt { color: #007788; font-weight: bold } /* Keyword.Type */
pre code.m { color: #FF6600 } /* Literal.Number */
pre code.s { color: #CC3300 } /* Literal.String */
pre code.na { color: #330099 } /* Name.Attribute */
pre code.nb { color: #336666 } /* Name.Builtin */
pre code.nc { color: #00AA88; font-weight: bold } /* Name.Class */
pre code.no { color: #336600 } /* Name.Constant */
pre code.nd { color: #9999FF } /* Name.Decorator */
pre code.ni { color: #999999; font-weight: bold } /* Name.Entity */
pre code.ne { color: #CC0000; font-weight: bold } /* Name.Exception */
pre code.nf { color: #CC00FF } /* Name.Function */
pre code.nl { color: #9999FF } /* Name.Label */
pre code.nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
pre code.nt { color: #330099; font-weight: bold } /* Name.Tag */
pre code.nv { color: #003333 } /* Name.Variable */
pre code.ow { color: #000000; font-weight: bold } /* Operator.Word */
pre code.w { color: #bbbbbb } /* Text.Whitespace */
pre code.mf { color: #FF6600 } /* Literal.Number.Float */
pre code.mh { color: #FF6600 } /* Literal.Number.Hex */
pre code.mi { color: #FF6600 } /* Literal.Number.Integer */
pre code.mo { color: #FF6600 } /* Literal.Number.Oct */
pre code.sb { color: #CC3300 } /* Literal.String.Backtick */
pre code.sc { color: #CC3300 } /* Literal.String.Char */
pre code.sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
pre code.s2 { color: #CC3300 } /* Literal.String.Double */
pre code.se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
pre code.sh { color: #CC3300 } /* Literal.String.Heredoc */
pre code.si { color: #AA0000 } /* Literal.String.Interpol */
pre code.sx { color: #CC3300 } /* Literal.String.Other */
pre code.sr { color: #33AAAA } /* Literal.String.Regex */
pre code.s1 { color: #CC3300 } /* Literal.String.Single */
/* Overriding manni default yellow #FFCC33 with brown #AA6600, which is easier to read */
pre code.ss { color: #AA6600 } /* Literal.String.Symbol */
pre code.bp { color: #336666 } /* Name.Builtin.Pseudo */
pre code.vc { color: #003333 } /* Name.Variable.Class */
pre code.vg { color: #003333 } /* Name.Variable.Global */
pre code.vi { color: #003333 } /* Name.Variable.Instance */
pre code.il { color: #FF6600 } /* Literal.Number.Integer.Long */
/* Sanders's additions to manni */
pre code.g { color: #005500 } /* Generic */
pre code.l { color: #CC6600 } /* Literal */
pre code.l { color: #FF9900 } /* Literal.Date */
pre code.n { color: #000088 } /* Name */
pre code.nx { color: #000088 } /* Name.Other */
pre code.py { color: #9966FF } /* Name.Property */
pre code.p { color: #000000 } /* Punctuation */
pre code.x { color: #FF0066 } /* Other */