lbry.tech/app/sass/pages/_playground.scss
ポール ウェッブ 34a26c8051 Fixes and refactoring
2018-10-03 15:27:13 -05:00

486 lines
7.7 KiB
SCSS

/**
* Playground | Wrapper
*
* @class .playground
* @selector {::before}
* @selector {::after}
* @state {.waiting}
*/
.playground {
border-top: 1px solid rgba($black, 0.05);
position: relative;
top: 1rem;
&.waiting::before {
top: 0; right: 0;
bottom: 0; left: 0;
background-color: rgba($white, 0.7);
content: "";
cursor: progress;
position: absolute;
z-index: 5;
}
&::after {
@include clearfix;
}
}
/**
* Playground | Navigation
*
* @class .playground__navigation
*
* @class .playground__navigation__example
* @selector {::before}
* @selector {:last-of-type}
* @state {.active}
* @state {:hover}
*/
.playground__navigation {
width: 100%;
list-style-type: none;
padding-bottom: 1rem;
padding-top: 1.5rem;
&::after {
@include clearfix;
}
}
.playground__navigation__example {
cursor: pointer;
float: left;
position: relative;
text-align: center;
width: 33.333333%;
&::before {
width: 100%; height: 2.5rem;
top: -0.6rem; left: 0;
content: "example " attr(data-example);
font-size: 0.6rem;
font-style: italic;
line-height: 1.1;
position: absolute;
text-align: center;
text-transform: uppercase;
}
&:not(.active) {
&::before,
button,
span {
color: rgba($black, 0.3);
}
}
&.active,
&:hover {
button {
color: $teal;
}
&::before,
span {
color: $black;
}
}
&.completed {
&::after {
width: 100%; height: 100%;
top: 0; left: 0;
background-color: rgba($white, 0.7);
content: "";
font-size: 3rem;
line-height: 0.85;
position: absolute;
z-index: 10;
}
}
&::before,
button,
span {
transition: color 0.2s;
}
button {
background-color: transparent;
font-size: 1.25rem;
font-weight: 600;
}
span {
display: block;
font-size: 1rem;
}
}
/**
* Playground | Content
*
* @class .playground__content
*
* @class .playground__content__meme
* @selector {::after}
*
* @class .playground__content__meme__canvas
*
* @class .playground__content__meme__canvas__thumbnail
* @selector {:last-of-type}
* @state {.selected}
*
* @class .playground__content__meme__editor
*
* @class .playground__content__trends
* @selector {::after}
* @state {:empty}
*
* @class .playground__content__trend
* @class .playground__content__urlbar
*/
.playground__content {
border-top: 1px solid rgba($black, 0.05);
overflow-y: visible;
padding-bottom: 1rem;
padding-top: 1rem;
.loader {
@extend .__loading;
&::after {
content: "Processing request";
}
}
h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
}
pre {
font-size: 1rem;
}
}
.playground__content__meme {
overflow-y: auto;
position: relative;
&::after {
@include clearfix;
}
}
.playground__content__meme__canvas {
float: left;
margin-right: 2%;
position: relative;
width: 48%;
canvas {
width: 100%; height: 100%;
background-color: rgba($teal, 0.3);
margin-bottom: 1rem;
}
}
.playground__content__meme__canvas__thumbnail {
width: 5rem; height: 5rem;
border-style: solid;
border-width: 2px;
margin-bottom: 1rem;
object-fit: contain;
object-position: center;
cursor: pointer;
&:not(:last-of-type) {
margin-right: 1rem;
}
&:not(.selected) {
border-color: transparent;
}
&.selected {
border-color: $black;
}
}
.playground__content__meme__editor {
float: right;
width: 50%;
h2.__metadata {
margin-top: 3rem;
}
fieldset {
border: none;
&:not(:last-of-type) {
margin-bottom: 1rem;
}
}
label {
color: rgba($black, 0.3);
display: block;
font-size: 0.8rem;
font-weight: 600;
letter-spacing: 0.05rem;
margin-bottom: 0.025rem;
text-transform: uppercase;
width: 100%;
}
input:not([type="checkbox"]):not([type="submit"]),
select,
textarea {
@media (min-width: 901px) {
font-size: 1.25rem;
}
@media (max-width: 900px) {
font-size: 1.05rem;
}
}
input {
&:not([type="checkbox"]):not([type="file"]):not([type="submit"]) {
border-bottom: 2px solid;
padding-bottom: 0.15rem;
transition: all 0.2s;
width: 100%;
}
&:not([type="file"]):not([type="submit"]) {
&:not(:hover):not(:active) {
border-color: $black;
}
&:hover,
&:active {
border-color: $teal;
}
}
&[type="checkbox"] {
width: 1.25rem; height: 1.25rem;
border: 2px solid;
margin-right: 0.5rem;
position: relative;
top: 0.35rem;
&::after {
width: 100%; height: 100%;
content: "";
font-size: 1.5rem;
line-height: 1rem;
position: absolute;
}
&:not(:checked)::after {
color: transparent;
}
&:checked::after {
color: $teal;
}
}
}
select,
textarea {
border-bottom: 2px solid;
width: 100%;
&:not(:hover):not(:active) {
border-color: $black;
}
&:hover,
&:active {
border-color: $teal;
}
}
select {
background-image: url("/assets/media/svg/down.svg");
background-position: 99% center;
background-repeat: no-repeat;
background-size: 1rem;
padding-right: 2rem;
}
textarea {
min-height: 100px;
resize: vertical;
}
}
.playground__content__trends {
min-width: 0; min-height: 0;
display: grid;
grid-gap: 1rem;
grid-template: repeat(1, 1fr) / repeat(3, 1fr);
position: relative;
&:empty {
@extend .__loading;
&::after {
content: "Fetching content from LBRY";
}
}
}
.playground__content__trend {
img {
width: 100%; height: 213px;
cursor: pointer;
display: block;
margin-bottom: 0.5rem;
object-fit: cover;
object-position: center;
position: relative;
}
figcaption {
cursor: pointer;
font-size: 1rem;
line-height: 1.33;
span {
color: rgba($black, 0.3);
display: block;
font-size: 0.8rem;
letter-spacing: 0.025rem;
}
}
}
.playground__content__urlbar {
border: 1px solid rgba($black, 0.05);
display: flex;
margin-bottom: 1rem;
button,
input,
span {
float: left;
vertical-align: middle;
}
button,
span {
height: 100%;
line-height: 2rem;
}
button {
color: $white;
font-size: 1rem;
position: relative;
text-transform: lowercase;
transition: background-color 0.2s;
width: 6rem;
&::after {
width: calc(100% + 2px); height: calc(100% + 2px);
top: -1px; left: -1px;
content: "";
position: absolute;
transition: background-color 0.2s;
z-index: -1;
}
&:not(:hover) {
background-color: $black;
&::after {
background-color: $black;
}
}
&:hover {
background-color: $teal;
&::after {
background-color: $teal;
}
}
}
input {
font-size: 1rem;
width: calc(100% - 9.5rem);
&::placeholder {
color: rgba($black, 0.5);
opacity: 1;
}
}
span {
@include no-user-select;
color: rgba($black, 0.5);
cursor: default;
font-size: 1rem;
text-align: right;
width: 3.5rem;
}
}
/**
* Playground | Description
*
* @class .playground__description
*/
.playground__description {
cursor: default;
font-size: 1rem;
line-height: 1.33;
padding: 1rem;
&:not(.success) {
background-color: rgba($black, 0.05);
text-align: center;
}
&.success {
background-color: rgba($teal, 0.05);
strong {
display: block;
text-transform: uppercase;
}
}
a {
font-weight: 700;
}
}