@evidentpoint/readium-css
Version:
A set of reference stylesheets for EPUB Reading Systems
611 lines (543 loc) • 16.3 kB
CSS
/*
* Copyright (C) 2009 Apple Inc. All rights reserved.
* Copyright (C) 2015 Google Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* Chromium default media controls */
/* WARNING: This css file can only style <audio> and <video> elements */
audio:not([controls]) {
display: none ;
}
audio {
width: 300px;
height: 32px;
}
audio::-webkit-media-controls,
video::-webkit-media-controls {
width: inherit;
height: inherit;
position: relative;
direction: ltr;
display: flex;
flex-direction: column;
font-family: Segoe, "Helvetica Neue", Roboto, Arial, Helvetica, sans-serif;
justify-content: flex-end;
align-items: center;
}
audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure {
width: 100%;
height: 32px;
flex-shrink: 0;
bottom: 0;
text-indent: 0;
padding: 0;
margin: 0;
box-sizing: border-box;
}
audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
display: flex;
flex-direction: row;
align-items: center;
/* We use flex-start here to ensure that the play button is visible even
* if we are too small to show all controls.
*/
justify-content: flex-start;
-webkit-user-select: none;
position: relative;
width: 100%;
z-index: 0;
overflow: hidden;
text-align: right;
bottom: auto;
height: 32px;
min-width: 48px;
line-height: 32px;
background-color: #fafafa;
/* The duration is also specified in MediaControlElements.cpp and LayoutTests/media/media-controls.js */
transition: opacity 0.3s;
font-size: 12px;
font-weight: normal; /* Make sure that we don't inherit non-defaults. */
font-style: normal;
}
audio:-webkit-full-page-media, video:-webkit-full-page-media {
max-height: 100%;
max-width: 100%;
}
audio:-webkit-full-page-media::-webkit-media-controls-panel,
video:-webkit-full-page-media::-webkit-media-controls-panel {
bottom: 0px;
}
audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button {
-webkit-appearance: media-mute-button;
display: flex;
flex: none;
box-sizing: border-box;
width: 32px;
height: 32px;
padding: 0px;
border-width: 0px;
background-color: initial;
color: inherit;
}
audio::-webkit-media-controls-overlay-enclosure {
display: none;
}
video::-webkit-media-controls-overlay-enclosure {
display: flex;
position: relative;
flex-direction: column;
justify-content: flex-end;
align-items: center;
flex: 1 1;
min-height: 0;
width: 100%;
/* Prevent disambiguation zooms with the panel. If this changes, it must
* also be changed in core/html/shadow/MediaControls.cpp. */
margin-bottom: 10px;
text-indent: 0;
box-sizing: border-box;
overflow: hidden;
}
video::-webkit-media-controls-overlay-play-button {
-webkit-appearance: media-overlay-play-button;
display: flex;
position: absolute;
top: 0;
left: 0;
margin: 0;
border-width: 0px;
background-color: transparent;
width: 100%;
height: 100%;
padding: 0;
}
/* TODO(xjz): Move media remoting elements to a separate css file. */
video::-internal-media-remoting-interstitial {
width: inherit;
height: inherit;
position: relative;
direction: ltr;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
font-size: 16px;
background-color: black;
opacity: 0;
transition: opacity .3s ease-in-out;
}
video::-internal-media-remoting-background-image {
display: flex;
position: absolute;
margin: 0;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
border: none;
border-width: 0px;
background-color: transparent;
padding: 0;
filter: grayscale(100%) blur(5px) opacity(40%);
}
video::-internal-media-remoting-cast-icon {
-webkit-appearance: -internal-media-remoting-cast-icon;
display: flex;
position: absolute;
margin: 0px;
border-width: 0px;
background-color: transparent;
height: 18px;
width: 22px;
padding: 0px;
left: calc(50% - 11px);
top: calc(50% - 40px);
}
video::-internal-media-remoting-cast-text-message {
display: inline;
position: absolute;
top: calc(50% - 10px);
border: none;
color: rgba(255,255,255,.54);
width: 100%;
text-wrap: none;
text-align: center;
background-color: transparent;
font-size: 81.25%;
font-family: Roboto-Regular, Sans-serif, Segoe, Serif, Helvetica;
padding: 0px;
margin: 0px;
}
video::-internal-media-remoting-disable-button {
display: flex;
position: absolute;
top: calc(50% + 60px);
left: calc(50% - 74px);
height: 28px;
border: 1pt solid rgba(255,255,255,.54);
border-radius: 2pt;
background-color: transparent;
color: rgba(255,255,255,.54);
margin: 0px;
padding: 5.5px 16px 0px 16px;
text-wrap: none;
font-size: 75%;
font-weight: 500;
font-family: Roboto-Medium, Sans-serif, Segoe, Serif, Helvetica;
box-sizing: border-box;
transition: border,color .5s ease-out;
z-index: 1; /* Set this z-index to make the hover effect work. */
}
video::-internal-media-remoting-disable-button:hover {
border: 1pt solid rgba(255,255,255,.70);
color: rgba(255,255,255,.70);
cursor: pointer;
}
video::-internal-media-controls-overlay-cast-button {
-webkit-appearance: -internal-media-overlay-cast-off-button;
display: flex;
position: absolute;
top: 8px;
left: 8px;
margin-left: 0px;
margin-top: 0px;
border-width: 0px;
background-color: transparent;
width: 32px;
height: 32px;
padding: 0;
transition: opacity 0.3s;
}
audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button {
-webkit-appearance: media-play-button;
display: flex;
flex: none;
box-sizing: border-box;
width: 32px;
height: 32px;
padding: 0px;
border-width: 0px;
background-color: initial;
color: inherit;
}
audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container {
-webkit-appearance: media-controls-background;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-end;
flex: 1 1;
-webkit-user-select: none;
height: 48px;
padding: 0;
min-width: 0;
}
audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display {
-webkit-appearance: media-current-time-display;
-webkit-user-select: none;
flex: none;
display: flex;
border: none;
cursor: default;
height: 32px;
/* text runs right to the edge of the container */
padding: 0;
color: #5a5a5a;
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0;
text-shadow: none;
text-decoration: none;
}
audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display {
-webkit-appearance: media-current-time-display;
-webkit-user-select: none;
flex: none;
display: flex;
border: none;
cursor: default;
height: 32px;
/* text runs right to the edge of the container, plus a little on
* the left to pad the leading "/" */
padding: 0 0 0 4px;
color: #5a5a5a;
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0;
text-shadow: none;
text-decoration: none;
}
audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline {
-webkit-appearance: media-slider;
display: flex;
flex: 1 1 auto;
height: 2px;
/* Leave 6px on either side for the thumb. Use margin so that
* the slider doesn't extend into it. We also add 12px border.
*/
padding: 0;
margin: 0 18px 0 18px;
background-color: transparent;
min-width: 25px;
border: initial;
color: inherit;
}
audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider {
-webkit-appearance: media-volume-slider;
display: flex;
/* The 1.9 value was empirically chosen to match old-flexbox behaviour
* and be aesthetically pleasing.
*/
flex: 1 1.9 auto;
height: 2px;
max-width: 70px;
/* Leave room for the thumb, which has 6px radius. Use margin rather
* than padding so that the slider doesn't extend into it. We also
* leave an addition 12px margin.
*/
padding: 0;
margin: 0 18px 0 18px;
background-color: transparent;
min-width: 25px;
border: initial;
color: inherit;
}
/* FIXME these shouldn't use special pseudoShadowIds, but nicer rules.
https://code.google.com/p/chromium/issues/detail?id=112508
https://bugs.webkit.org/show_bug.cgi?id=62218
*/
input[type="range" i]::-webkit-media-slider-container {
display: flex;
align-items: center;
flex-direction: row; /* This property is updated by C++ code. */
box-sizing: border-box;
/** this positions the slider thumb for both time and volume. */
height: 2px;
width: 100%;
background-color: transparent; /* Background drawing is managed by C++ code to draw ranges. */
}
/* The negative right margin causes the track to overflow its container. */
input[type="range" i]::-webkit-media-slider-container > div {
margin-right: -18px; /* box is 36px wide, get to the middle */
margin-left: -18px;
}
input[type="range" i]::-webkit-media-slider-thumb {
box-sizing: border-box;
width: 48px;
height: 48px;
padding: 0px;
}
audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button {
-webkit-appearance: media-enter-fullscreen-button;
display: flex;
flex: none;
overflow: hidden;
box-sizing: border-box;
width: 32px;
height: 32px;
padding: 0px;
border-width: 0px;
background-color: initial;
color: inherit;
}
audio::-internal-media-controls-cast-button, video::-internal-media-controls-cast-button {
-webkit-appearance: -internal-media-cast-off-button;
display: flex;
flex: none;
box-sizing: border-box;
width: 32px;
height: 32px;
padding: 0px;
border-width: 0px;
margin-left: 0px;
margin-right: 0px;
background-color: initial;
color: inherit;
}
audio::-webkit-media-controls-toggle-closed-captions-button {
display: none;
}
video::-webkit-media-controls-toggle-closed-captions-button {
-webkit-appearance: media-toggle-closed-captions-button;
display: flex;
flex: none;
box-sizing: border-box;
width: 32px;
height: 32px;
padding: 0px;
border-width: 0px;
margin-left: 0px;
margin-right: 0px;
background-color: initial;
color: inherit;
}
video::-internal-media-controls-text-track-list, video::-internal-media-controls-overflow-menu-list, audio::-internal-media-controls-overflow-menu-list {
position: absolute;
bottom: 4px;
right: 4px;
background-color: #fafafa;
max-width: 50%;
max-height: 250px;
min-width: 150px;
overflow-x: hidden;
overflow-y: auto;
white-space: nowrap;
font-size: 14px;
border-radius: 1px;
box-shadow: 0 8px 20px 1px rgba(0, 0, 0, 0.14),
0 3px 28px 2px rgba(0, 0, 0, 0.12),
0 5px 10px -3px rgba(0, 0, 0, 0.4);
}
video::-internal-media-controls-text-track-list-item {
display: block;
color: #424242;
text-align: start;
line-height: 40px;
padding-right: 16px;
text-overflow: ellipsis;
}
video::-internal-media-controls-text-track-list-item:hover, video::-internal-media-controls-overflow-menu-list-item:hover, audio::-internal-media-controls-overflow-menu-list-item:hover {
background-color: #e0e0e0;
}
video::-internal-media-controls-text-track-list-item-input {
-webkit-appearance: -internal-media-track-selection-checkmark;
visibility: hidden;
left: 0;
vertical-align: middle;
margin: 0 5px 0 0;
width: 16px;
height: 16px;
margin-left: 12px;
}
video::-internal-media-controls-text-track-list-item-input:checked {
visibility: visible;
}
video::-internal-media-controls-text-track-list-kind-captions {
-webkit-appearance: -internal-media-closed-captions-icon;
height: 20px;
width: 20px;
margin-left: 10px;
vertical-align: middle;
}
video::-internal-media-controls-text-track-list-kind-subtitles {
-webkit-appearance: -internal-media-subtitles-icon;
height: 20px;
width: 20px;
margin-left: 10px;
vertical-align: middle;
}
video::-internal-media-controls-overflow-button, audio::-internal-media-controls-overflow-button {
-webkit-appearance: -internal-media-overflow-button;
display: flex;
flex: none;
box-sizing: border-box;
width: 32px;
height: 32px;
padding: 0px;
border-width: 0px;
margin-left: 0px;
margin-right: 0px;
background-color: initial;
color: inherit;
}
video::-internal-media-controls-download-button, audio::-internal-media-controls-download-button {
-webkit-appearance: -internal-media-download-button;
display: flex;
flex: none;
box-sizing: border-box;
width: 32px;
height: 32px;
padding: 0px;
border-width: 0px;
margin-left: 0px;
margin-right: 0px;
background-color: initial;
color: inherit;
}
video::-internal-media-controls-overflow-menu-list-item, audio::-internal-media-controls-overflow-menu-list-item {
display: block;
color: #424242;
line-height: 40px;
padding-left: 28px;
}
video::-webkit-media-text-track-container {
position: relative;
width: inherit;
height: inherit;
overflow: hidden;
font: 22px sans-serif;
text-align: center;
color: rgba(255, 255, 255, 1);
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0;
text-decoration: none;
pointer-events: none;
-webkit-user-select: none;
word-break: break-word;
}
video::cue {
display: inline;
background-color: rgba(0, 0, 0, 0.8);
padding: 2px 2px;
}
video::-webkit-media-text-track-region {
position: absolute;
line-height: 5.33vh;
writing-mode: horizontal-tb;
background: rgba(0, 0, 0, 0.8);
color: rgba(255, 255, 255, 1);
word-wrap: break-word;
overflow-wrap: break-word;
overflow: hidden;
}
video::-webkit-media-text-track-region-container {
position: relative;
display: flex;
flex-flow: column;
flex-direction: column;
}
video::-webkit-media-text-track-region-container.scrolling {
transition: top 433ms linear;
}
video::-webkit-media-text-track-display {
position: absolute;
overflow: hidden;
white-space: pre-wrap;
-webkit-box-sizing: border-box;
flex: 0 0 auto;
}
video::cue(:future) {
color: gray;
}
video::cue(b) {
font-weight: bold;
}
video::cue(u) {
text-decoration: underline;
}
video::cue(i) {
font-style: italic;
}