Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
739 lines
17 KiB
CSS
739 lines
17 KiB
CSS
|
|
section[role="region"] header:first-child h1 {
|
|
margin: 0;
|
|
}
|
|
|
|
body {
|
|
background-color: #1c2124;
|
|
}
|
|
|
|
#player-view.disabled .video-controls {
|
|
pointer-events: none;
|
|
}
|
|
|
|
/**
|
|
* 1. COMPLEX: Scoped style-sheets within <gaia-header>
|
|
* trump all other rules. !important is required
|
|
* for an app to over-ride the default appearance
|
|
* of content within the custom-element. This may
|
|
* change when we get `:host` and `:content` selectors
|
|
* in shadow-dom.
|
|
*/
|
|
body:not(.pick-activity) gaia-header.thumbnails-list,
|
|
#thumbnail-list-title {
|
|
display: inherit !important; /* 1 */
|
|
}
|
|
|
|
/* app name field is shown at non-pick mode and list view */
|
|
body.pick-activity #thumbnail-list-title {
|
|
display: none !important; /* 1 */
|
|
}
|
|
|
|
/* moves thumbnails down to 5rem for thumbnail list title showing */
|
|
#thumbnails {
|
|
top: 5rem;
|
|
}
|
|
|
|
/* change bottom of thumbnails to 11rem (5rem of top + 6rem of footer) */
|
|
#thumbnails>li:last-child,
|
|
#thumbnails.select>li:last-child{
|
|
margin-bottom: 11rem;
|
|
}
|
|
|
|
/* pick activity only has top: 5rem */
|
|
body.pick-activity #thumbnails>li:last-child {
|
|
margin-bottom: 5rem;
|
|
}
|
|
|
|
#thumbnails-bottom {
|
|
background-color: rgba(26, 33, 36, 0.9);
|
|
}
|
|
|
|
|
|
#videoBar {
|
|
background: none;
|
|
box-shadow: none;
|
|
height: 8rem;
|
|
background-image: url(images/tablet_player_mask.png);
|
|
background-repeat: repeat-x;;
|
|
background-size: 100% 8rem;
|
|
border: 0;
|
|
}
|
|
|
|
.player-controls-button {
|
|
color: #FFFFFF;
|
|
border: none;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
transition: none;
|
|
}
|
|
|
|
/* player-view of background */
|
|
#player-view {
|
|
background-color: #1c2124;
|
|
}
|
|
|
|
/* play/pause button */
|
|
#play:before {
|
|
border: 0;
|
|
}
|
|
|
|
#play:active {
|
|
background: none;
|
|
}
|
|
|
|
#play:after {
|
|
background-image: url("images/tablet_pause.png");
|
|
background-position: center center;
|
|
background-repeat: no-repeat;
|
|
background-size: 4.6rem;
|
|
display: block;
|
|
z-index: 10;
|
|
}
|
|
|
|
#play.paused:after {
|
|
background-image: url("images/tablet_play.png");
|
|
background-size: 4.6rem;
|
|
}
|
|
|
|
#play:active:after {
|
|
background-image: url("images/tablet_pause_pressed.png");
|
|
}
|
|
|
|
#play.paused:active:after {
|
|
background-image: url("images/tablet_play_pressed.png");
|
|
}
|
|
|
|
/* time slider */
|
|
#timeSlider {
|
|
position: absolute;
|
|
top: 0;
|
|
height: 100%;
|
|
width: auto;
|
|
}
|
|
|
|
/* slider text */
|
|
#timeSlider span {
|
|
display: block;
|
|
height: 100%;
|
|
line-height: 8rem;
|
|
color: #FFFFFF;
|
|
position: absolute;
|
|
font-size: 1.8rem;
|
|
text-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
|
text-align: left;
|
|
}
|
|
|
|
span#elapsed-text {
|
|
width: 6rem;
|
|
}
|
|
|
|
#duration-text {
|
|
right: 0;
|
|
top: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.progress {
|
|
border-radius: 0.2rem;
|
|
height: 0;
|
|
}
|
|
|
|
/* slider */
|
|
#slider-wrapper {
|
|
top: 0;
|
|
left: 6rem;
|
|
height: 100%;
|
|
}
|
|
|
|
#slider-wrapper div{
|
|
left: 0;
|
|
}
|
|
|
|
#elapsedTime {
|
|
background-color: #00CAF2;
|
|
border: 0.2rem solid #00CAF2;
|
|
z-index: 30;
|
|
}
|
|
|
|
#bufferedTime {
|
|
background-color: #00CAF2;
|
|
border: 0.2rem solid #00CAF2;
|
|
z-index: 20;
|
|
}
|
|
|
|
#timeBackground {
|
|
background-color: rgba(255, 255, 255, 0.3);
|
|
border: 0.2rem solid rgba(255, 255, 255, 0.3);
|
|
z-index: 10;
|
|
}
|
|
|
|
/* player head */
|
|
#playHead {
|
|
position: absolute;
|
|
background: url(images/tablet_scrubber.png) no-repeat center center;
|
|
margin: 0 0 0 -2.3rem;
|
|
background-size: 4.6rem;
|
|
pointer-events: none;
|
|
border: none;
|
|
display: block;
|
|
height: 100%;
|
|
width: 4.6rem;
|
|
z-index: 100;
|
|
top: 0;
|
|
}
|
|
|
|
#playHead.active {
|
|
background: url(images/tablet_scrubber_pressed.png) no-repeat center center;
|
|
width: 4.6rem;
|
|
height: 100%;
|
|
margin: 0 0 0 -2.3rem;
|
|
top: 0;
|
|
}
|
|
|
|
footer {
|
|
height: 6rem;
|
|
}
|
|
|
|
/* selected thumbnail */
|
|
.thumbnail.selected > .inner {
|
|
outline: solid #00caf2 0.4rem;
|
|
outline-offset: -0.4rem;
|
|
}
|
|
|
|
/* unwatched bar */
|
|
.thumbnail .unwatched {
|
|
background-image: none;
|
|
background-color: #00CAF2;
|
|
}
|
|
|
|
.thumbnail .details .title {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.layout-selection .thumbnails-select,
|
|
.layout-list .thumbnails-list {
|
|
display: block;
|
|
}
|
|
|
|
/**
|
|
* 1. COMPLEX: Scoped style-sheets within <gaia-header>
|
|
* trump all other rules. !important is required
|
|
* for an app to over-ride the default appearance
|
|
* of content within the custom-element. This may
|
|
* change when we get `:host` and `:content` selectors
|
|
* in shadow-dom.
|
|
*/
|
|
.layout-fullscreen-player .large-only {
|
|
display: block !important; /* 1 */
|
|
}
|
|
|
|
/* we don't need to show toolbar buttons in pick mode */
|
|
body.pick-activity .single-delete-button,
|
|
body.pick-activity .single-share-button,
|
|
body.pick-activity .single-info-button {
|
|
display: none;
|
|
}
|
|
|
|
@media (orientation: landscape) {
|
|
|
|
/* panels of selection mode */
|
|
.layout-selection .thumbnails-list {
|
|
display: none !important; /* 1 */
|
|
}
|
|
|
|
.layout-selection #switch-fullscreen,
|
|
.layout-selection #player-view > *,
|
|
.layout-selection .single-delete-button,
|
|
.layout-selection .single-share-button,
|
|
.layout-selection .single-info-button {
|
|
display: none;
|
|
}
|
|
/* show player-view for displaying background image, but all decendants are
|
|
* hidden */
|
|
.layout-selection #player-view {
|
|
display: block;
|
|
}
|
|
|
|
/* panels of list mode */
|
|
.layout-list #player-view,
|
|
.layout-list #player-view #fullscreen-button {
|
|
display: block;
|
|
}
|
|
|
|
.layout-list .thumbnails-select {
|
|
display: none !important; /* 1 */
|
|
}
|
|
|
|
.layout-list #switch-fullscreen,
|
|
.layout-list .video-controls #videoActionBar,
|
|
.layout-list .video-controls #close,
|
|
.layout-list .single-delete-button,
|
|
.layout-list .single-share-button,
|
|
.layout-list .single-info-button {
|
|
display: none;
|
|
}
|
|
|
|
/* panels of fullscreen player mode */
|
|
.layout-fullscreen-player #player-view {
|
|
display: block;
|
|
}
|
|
|
|
.layout-fullscreen-player .thumbnails-list,
|
|
.layout-fullscreen-player .thumbnails-select {
|
|
display: none !important; /* 1 */
|
|
}
|
|
|
|
.layout-fullscreen-player #thumbnails,
|
|
.layout-fullscreen-player .video-controls #videoActionBar {
|
|
display: none;
|
|
}
|
|
|
|
/* left pane size */
|
|
.thumbnails-select,
|
|
.thumbnails-list,
|
|
#thumbnails {
|
|
left: 0;
|
|
width: 40rem;
|
|
}
|
|
|
|
/* player size */
|
|
#player-view {
|
|
left: 40rem;
|
|
width: calc(100% - 40rem);
|
|
}
|
|
|
|
.layout-list #video-container {
|
|
margin: 6rem 1rem 1rem 1rem;
|
|
width: calc(100% - 2rem);
|
|
height: calc(100% - 7rem); /* top 6rem + bottom 1 rem */
|
|
}
|
|
|
|
.layout-fullscreen-player #player-view {
|
|
left: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
/* the separator for two panes */
|
|
#two-column-spearator {
|
|
display: block;
|
|
position: absolute;
|
|
left: 40rem;
|
|
width: 0.2rem;
|
|
top: 5rem;
|
|
bottom: 0;
|
|
background-image: url(images/tablet_column_separator.png);
|
|
background-size: 0.2rem 100%
|
|
}
|
|
|
|
#two-column-spearator:before {
|
|
content: "";
|
|
display: block;
|
|
position: absolute;
|
|
width: 0.2rem;
|
|
height: 5rem;
|
|
top: -5rem;
|
|
background-image: url(images/tablet_section_divider.png);
|
|
background-size: 0.2rem 100%
|
|
}
|
|
|
|
.layout-list #player-view header:before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
z-index: -1;
|
|
height: 5rem;
|
|
width: 0.2rem;
|
|
background: url(images/tablet_section_divider.png) no-repeat left;
|
|
}
|
|
|
|
#fullscreen-button {
|
|
background-image: url(images/tablet_fullscreen.png);
|
|
background-size: 4.6rem;
|
|
background-position: center center;
|
|
background-repeat: no-repeat;
|
|
position: absolute;
|
|
width: 8rem;
|
|
height: 100%;
|
|
right: 0;
|
|
}
|
|
|
|
#fullscreen-button:active {
|
|
background-image: url(images/tablet_fullscreen_pressed.png);
|
|
}
|
|
|
|
/* disable video controls when selected */
|
|
.layout-selection .video-controls {
|
|
pointer-events: none;
|
|
}
|
|
|
|
body:not(.layout-selection):not(.pick-activity) .thumbnail.focused > .inner {
|
|
outline: solid #00caf2 0.4rem;
|
|
outline-offset: -0.4rem;
|
|
}
|
|
|
|
/* video controls */
|
|
.layout-list #play{
|
|
width: 10rem;
|
|
}
|
|
|
|
.layout-list #timeSlider {
|
|
left: 10rem;
|
|
right: 8rem;
|
|
width: auto;
|
|
}
|
|
|
|
.layout-list #slider-wrapper {
|
|
/* duration text and padding */
|
|
right: 7rem;
|
|
/* text at left and right are 6rem and 1rem for additional padding between
|
|
* fullscreen button and duration text */
|
|
width: calc(100% - 6rem - 7rem);
|
|
}
|
|
|
|
.layout-list #timeBackground {
|
|
width: 100%;
|
|
}
|
|
|
|
.layout-list #duration-text {
|
|
width: 5rem;
|
|
}
|
|
|
|
.layout-fullscreen-player #timeSlider {
|
|
left: 20rem;
|
|
right: 0;
|
|
}
|
|
|
|
.layout-fullscreen-player #slider-wrapper {
|
|
right: 12rem;
|
|
/* text at left is 6rem, right is 10rem and additional 2rem for padding
|
|
* between edge and duration text */
|
|
width: calc(100% - 6rem - 12rem);
|
|
}
|
|
|
|
.layout-fullscreen-player #timeBackground {
|
|
width: 100%;
|
|
}
|
|
|
|
.layout-fullscreen-player #duration-text {
|
|
width: 10rem;
|
|
}
|
|
|
|
.layout-fullscreen-player #fullscreen-button {
|
|
display: none;
|
|
}
|
|
|
|
/* normal case of thumbnail size */
|
|
.thumbnail {
|
|
border: 0;
|
|
margin: 0.2rem 0 0 0;
|
|
overflow: visible;
|
|
}
|
|
|
|
.thumbnail:before {
|
|
content: "";
|
|
width: 40rem;
|
|
height: 0.2rem;
|
|
background-image: url(images/tablet_video_divider.png);
|
|
position: absolute;
|
|
top: -0.2rem;
|
|
}
|
|
|
|
.thumbnail .details {
|
|
margin: 1.5rem 1.5rem 1rem 1.5rem;
|
|
height: 9.5rem;
|
|
width: calc(100% - 24rem);
|
|
font-size: 1.4rem;
|
|
color: #8A9699;
|
|
}
|
|
|
|
.thumbnail .details .title {
|
|
font-size: 2.4rem;
|
|
line-height: 2.4rem;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
/* spinner is only valid for tablet and landscape mode */
|
|
#spinner-overlay {
|
|
display: block;
|
|
}
|
|
|
|
/* pick mode */
|
|
body.pick-activity.layout-selection #player-view,
|
|
body.pick-activity.layout-list #player-view {
|
|
display: none;
|
|
}
|
|
|
|
body.pick-activity #two-column-spearator {
|
|
display: none;
|
|
}
|
|
|
|
/* left pane size */
|
|
body.pick-activity .thumbnails-select,
|
|
body.pick-activity .thumbnails-list,
|
|
body.pick-activity #thumbnails {
|
|
left: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
/* pick view of thumbnail size */
|
|
body.pick-activity .thumbnail {
|
|
width: calc(33% - 0.2rem);
|
|
height: 0;
|
|
border: 0;
|
|
margin: 0 0 0.4rem 0;
|
|
overflow: visible;
|
|
float: left;
|
|
/*
|
|
* Why padding-bottom? We need to keep the same image ratio which 7:4.
|
|
* According to MDN padding-top, the percentage is referring to width of the
|
|
* block. So, we use (33% - 0.2rem) to have correct width width and applying
|
|
* 7:4 ratio to get the correct block height.
|
|
* See: https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top
|
|
**/
|
|
padding-bottom: calc((33% - 0.2rem) * 4 / 7);
|
|
}
|
|
|
|
body.pick-activity .thumbnail:nth-child(3n),
|
|
body.pick-activity .thumbnail:nth-child(3n + 2) {
|
|
margin-left: 0.4rem;
|
|
}
|
|
|
|
body.pick-activity .thumbnail .inner,
|
|
body.pick-activity .thumbnail .inner .img {
|
|
width: 100%;
|
|
height: 0;
|
|
padding-bottom: calc(100% * 4 / 7);
|
|
}
|
|
|
|
body.pick-activity .thumbnail .details {
|
|
margin: 0;
|
|
/*
|
|
* We still need display:flex in this case because we need all elements are
|
|
* vertically aligned to bottom. So, we keep the height as 19.7rem which is
|
|
* the visual spec in 800x1280. If a device's width is less than 768px, it
|
|
* turns into tiny mode. Another 1.5rem is for the padding bottom.
|
|
* The equation is:
|
|
* padding top = calculated height - detail's height - padding bottom.
|
|
**/
|
|
padding: calc(100% * 4 / 7 - 19.7rem - 1.5rem) 2rem 1.5rem 2rem;
|
|
width: 16.5rem;
|
|
height: 19.7rem;
|
|
font-size: 1.6rem;
|
|
color: #FFFFFF;
|
|
text-shadow:0 0 5px #000000;
|
|
background-image: url(images/tablet_text_mask.png);
|
|
background-repeat: repeat-y;
|
|
background-size: 100%;
|
|
justify-content: flex-end;
|
|
top: auto;
|
|
bottom: 0;
|
|
}
|
|
|
|
body.pick-activity .thumbnail .details span {
|
|
bottom: 0;
|
|
}
|
|
|
|
body.pick-activity .thumbnail .details .after {
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
body.pick-activity .thumbnail .details .title {
|
|
font-size: 2.6rem;
|
|
line-height: 2.6rem;
|
|
}
|
|
}
|
|
|
|
@media (orientation: portrait) {
|
|
.inner {
|
|
position: relative;
|
|
}
|
|
|
|
/* we don't need fullscreen button in this mode */
|
|
#fullscreen-button {
|
|
display: none;
|
|
}
|
|
|
|
/* selection mode */
|
|
.layout-selection .thumbnails-list {
|
|
display: none !important; /* 1 */
|
|
}
|
|
|
|
.layout-selection #player-view {
|
|
display: none;
|
|
}
|
|
|
|
/* list mode */
|
|
.layout-list .thumbnails-select {
|
|
display: none !important; /* 1 */
|
|
}
|
|
|
|
.layout-list #player-view {
|
|
display: none;
|
|
}
|
|
|
|
/* player mode / fullscreen-player mode */
|
|
.layout-fullscreen-player .thumbnails-select,
|
|
.layout-fullscreen-player .thumbnails-list {
|
|
display: none !important; /* 1 */
|
|
}
|
|
|
|
.layout-fullscreen-player #thumbnails,
|
|
.layout-fullscreen-player .video-controls #videoActionBar {
|
|
display: none;
|
|
}
|
|
|
|
/* spinner is only valid for tablet and landscape mode */
|
|
#spinner-overlay {
|
|
display: none;
|
|
}
|
|
|
|
.layout-fullscreen-player #timeSlider {
|
|
left: 14rem;
|
|
right: 0;
|
|
}
|
|
|
|
.layout-fullscreen-player #slider-wrapper {
|
|
right: 10rem;
|
|
/* text at left is 6rem, right is 8rem and additional 2rem for padding
|
|
* between edge and duration text */
|
|
width: calc(100% - 16rem);
|
|
}
|
|
|
|
.layout-fullscreen-player #timeBackground {
|
|
width: 100%;
|
|
}
|
|
|
|
.layout-fullscreen-player #duration-text {
|
|
width: 8rem;
|
|
}
|
|
|
|
/* thumbnail size */
|
|
.thumbnail {
|
|
width: calc(50% - 0.2rem);
|
|
height: 0;
|
|
border: 0;
|
|
margin: 0 0 0.4rem 0;
|
|
overflow: visible;
|
|
float: left;
|
|
padding-bottom: calc((50% - 0.2rem) * 4 / 7);
|
|
}
|
|
|
|
.thumbnail:nth-child(even) {
|
|
margin-left: 0.4rem;
|
|
}
|
|
|
|
.thumbnail .inner,
|
|
.thumbnail .inner .img {
|
|
width: 100%;
|
|
height: 0;
|
|
padding-bottom: calc(100% * 4 / 7);
|
|
}
|
|
|
|
.thumbnail .details {
|
|
margin: 0;
|
|
/*
|
|
* We still need display:flex in this case because we need all elements are
|
|
* vertically aligned to bottom. So, we keep the height as 19.7rem which is
|
|
* the visual spec in 800x1280. If a device's width is less than 768px, it
|
|
* turns into tiny mode. Another 1.5rem is for the padding bottom.
|
|
* The equation is:
|
|
* padding top = calculated height - detail's height - padding bottom.
|
|
**/
|
|
padding: calc(100% * 4 / 7 - 19.7rem - 1.5rem) 2rem 1.5rem 2rem;
|
|
width: 16.5rem;
|
|
height: 19.7rem;
|
|
font-size: 1.6rem;
|
|
color: #FFFFFF;
|
|
text-shadow:0 0 5px #000000;
|
|
background-image: url(images/tablet_text_mask.png);
|
|
background-repeat: repeat-y;
|
|
background-size: 100%;
|
|
justify-content: flex-end;
|
|
top: auto;
|
|
bottom: 0;
|
|
}
|
|
|
|
.thumbnail .details span {
|
|
bottom: 0;
|
|
}
|
|
|
|
.thumbnail .details .after {
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.thumbnail .details .title {
|
|
font-size: 2.6rem;
|
|
line-height: 2.6rem;
|
|
color: #FFFFFF;
|
|
}
|
|
}
|
|
|
|
/* Override header bar of building block */
|
|
/* XXX: the following css styles should be moved to building blocks,
|
|
* bug 905056 */
|
|
section[role="region"] > header:first-child > button,
|
|
section[role="region"] > header:first-child > a {
|
|
position: relative;
|
|
width: 5rem;
|
|
height: 4.9rem;
|
|
background: none;
|
|
float: left;
|
|
overflow: visible;
|
|
margin: 0;
|
|
}
|
|
|
|
section[role="region"].skin-organic > header:first-child,
|
|
.skin-organic section[role="region"] > header:first-child,
|
|
section[role="region"].skin-dark > header:first-child,
|
|
.skin-dark section[role="region"] > header:first-child {
|
|
background: url("images/tablet_header.png") repeat-x scroll 0 0 / auto 100% transparent;
|
|
}
|
|
section[role="region"] > header:first-child h1 {
|
|
padding: 0 1rem 0 2rem;
|
|
}
|
|
section[role="region"] > header:first-child .icon {
|
|
width: 5rem;
|
|
}
|
|
section[role="region"] > header:first-child > a:not([aria-disabled="true"]):active:after,
|
|
section[role="region"] > header:first-child > button:not(:disabled):active:after,
|
|
section[role="region"] > header:first-child > a:not([aria-disabled="true"]):hover:after,
|
|
section[role="region"] > header:first-child > button:not(:disabled):hover:after,
|
|
section[role="region"] > header:first-child menu[type="toolbar"] a:not([aria-disabled="true"]):hover,
|
|
section[role="region"] > header:first-child menu[type="toolbar"] button:not(:disabled):hover,
|
|
section[role="region"] > header:first-child menu[type="toolbar"] a:not([aria-disabled="true"]):active,
|
|
section[role="region"] > header:first-child menu[type="toolbar"] button:not(:disabled):active {
|
|
background: url("images/tablet_header_pressed.png") repeat-x center / 0.2rem transparent !important;
|
|
}
|
|
section[role="region"] > header:first-child menu[type="toolbar"] a,
|
|
section[role="region"] > header:first-child menu[type="toolbar"] button {
|
|
width: 8.2rem;
|
|
}
|
|
section[role="region"].skin-organic > header:first-child a:after,
|
|
.skin-organic section[role="region"] > header:first-child a:after,
|
|
section[role="region"].skin-dark > header:first-child a:after,
|
|
.skin-dark section[role="region"] > header:first-child a:after,
|
|
section[role="region"].skin-organic > header:first-child button:after,
|
|
.skin-organic section[role="region"] > header:first-child button:after,
|
|
section[role="region"].skin-dark > header:first-child button:after,
|
|
.skin-dark section[role="region"] > header:first-child button:after {
|
|
background: url("images/tablet_button_separator.png") no-repeat right / 0.2rem transparent;
|
|
}
|
|
|
|
section[role="region"] > header:first-child > button:after,
|
|
section[role="region"] > header:first-child > a:after {
|
|
width: 5.2rem;
|
|
}
|
|
|
|
section[role="region"] > header:first-child menu[type="toolbar"] a:after,
|
|
section[role="region"] > header:first-child menu[type="toolbar"] button:after {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
z-index: -1;
|
|
height: 5rem;
|
|
width: 8.2rem;
|
|
background: url("images/tablet_button_separator.png") no-repeat left / 0.2rem transparent;
|
|
}
|