lbry-desktop/src/renderer/scss/component/_card.scss

445 lines
8.4 KiB
SCSS
Raw Normal View History

2017-04-10 14:32:40 +02:00
.card {
margin-left: auto;
margin-right: auto;
2017-08-18 07:37:35 +02:00
border-radius: var(--card-radius);
2017-10-12 05:37:36 +02:00
user-select: text;
2018-03-26 23:32:43 +02:00
display: flex;
position: relative;
2018-03-26 23:32:43 +02:00
flex-direction: column;
max-width: var(--card-max-width);
}
2018-03-26 23:32:43 +02:00
.card > h1 {
word-wrap: break-word;
}
2018-03-26 23:32:43 +02:00
.card--section {
2018-04-17 04:21:19 +02:00
background-color: var(--card-bg);
2018-03-26 23:32:43 +02:00
padding: $spacing-vertical;
margin-top: $spacing-vertical * 2/3;
2018-04-17 04:21:19 +02:00
box-shadow: var(--box-shadow-layer);
2017-12-01 04:51:55 +01:00
}
2018-01-04 06:05:20 +01:00
.card--small {
2018-03-26 23:32:43 +02:00
white-space: normal;
.card__media {
padding-top: var(--video-aspect-ratio);
}
2018-03-26 23:32:43 +02:00
2018-06-15 19:18:15 +02:00
.card__media-text {
// for the weird padding required for dynamic height
// this lets the text sit in the middle instead of the bottom
margin-top: calc(var(--video-aspect-ratio) * -1);
}
2018-03-26 23:32:43 +02:00
.channel-name {
font-size: 12px;
@media only screen and (min-width: $medium-breakpoint) {
font-size: 14px;
padding-top: 4px;
}
2018-03-26 23:32:43 +02:00
}
}
2018-03-26 23:32:43 +02:00
.card--link {
cursor: pointer;
}
2018-03-26 23:32:43 +02:00
.card--pending {
opacity: 0.5;
2017-04-10 14:32:40 +02:00
}
2018-03-26 23:32:43 +02:00
.card--wallet-balance {
background: url('../../../static/img/stripe-background.png') no-repeat;
background-size: cover;
color: var(--card-wallet-color);
justify-content: space-between;
2018-04-17 04:21:19 +02:00
.card__title,
2018-03-26 23:32:43 +02:00
.card__subtitle {
color: var(--card-wallet-color);
}
}
2018-03-26 23:32:43 +02:00
.card--disabled {
opacity: 0.3;
pointer-events: none;
2017-04-12 04:01:45 +02:00
}
.card__media {
background-size: cover;
background-repeat: no-repeat;
background-position: 50% 50%;
2018-03-26 23:32:43 +02:00
background-color: var(--color-placeholder);
2017-04-10 14:32:40 +02:00
}
2018-03-26 23:32:43 +02:00
.card__media--no-img {
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
2018-03-26 23:32:43 +02:00
.card__media--nsfw {
background-color: var(--color-error);
}
2018-03-26 23:32:43 +02:00
2018-04-17 04:21:19 +02:00
.card__title-identity {
color: var(--text-color);
}
2018-03-26 23:32:43 +02:00
.card__title-identity--file {
display: flex;
align-items: center;
justify-content: space-between;
2018-06-20 05:55:25 +02:00
2018-03-26 23:32:43 +02:00
.icon {
2018-06-20 05:55:25 +02:00
margin: 0 $spacing-vertical * 1/3;
2018-03-26 23:32:43 +02:00
}
}
2018-03-26 23:32:43 +02:00
.card__title-identity-icons {
display: flex;
align-items: center;
align-self: flex-start;
}
2018-03-26 23:32:43 +02:00
.card__title {
font-size: 18px;
2018-04-17 04:21:19 +02:00
color: var(--text-color);
}
2018-03-26 23:32:43 +02:00
.card__title--small {
font-size: 14px;
line-height: 18px;
2018-06-20 06:29:58 +02:00
padding-top: $spacing-vertical / 3;
2018-06-20 06:29:58 +02:00
@media only screen and (min-width: $large-breakpoint) {
font-size: 16px;
}
}
2018-03-26 23:32:43 +02:00
.card__title--file {
2018-06-06 08:13:26 +02:00
font-family: 'metropolis-bold';
font-size: 28px;
margin-bottom: 0;
2018-03-26 23:32:43 +02:00
padding-top: 0;
padding-bottom: 5px;
2018-06-06 08:13:26 +02:00
font-size: 18px;
}
2018-03-26 23:32:43 +02:00
.card__subtitle {
margin: 0;
2018-03-26 23:32:43 +02:00
font-size: 14px;
font-family: 'metropolis-medium';
2018-04-17 04:21:19 +02:00
color: var(--card-text-color);
2018-03-26 23:32:43 +02:00
.icon {
margin-top: $spacing-vertical * 1/6;
&:not(:first-of-type) {
margin: 0 $spacing-vertical * 1/3;
}
2018-03-26 23:32:43 +02:00
}
}
2018-03-26 23:32:43 +02:00
.card__subtitle-price {
padding-top: $spacing-vertical * 1/3;
}
2018-03-26 23:32:43 +02:00
.card__meta {
color: var(--color-help);
font-size: 14px;
font-family: 'metropolis-medium';
padding-top: $spacing-vertical * 2/3;
2017-04-10 14:32:40 +02:00
}
2018-03-26 23:32:43 +02:00
// .card-media__internal__links should always be inside a card
.card {
.card-media__internal-links {
position: absolute;
top: $spacing-vertical * 2/3;
right: $spacing-vertical * 2/3;
}
}
.card--small {
2018-03-26 23:32:43 +02:00
.card-media__internal-links {
top: $spacing-vertical * 1/3;
right: $spacing-vertical * 1/3;
}
}
2018-03-26 23:32:43 +02:00
// Channel info with buttons on the right side
.card__channel-info {
display: flex;
justify-content: space-between;
align-items: center;
padding: $spacing-width 0 0;
2017-07-19 01:00:13 +02:00
}
2018-03-26 23:32:43 +02:00
.card__channel-info--large {
padding-top: 0;
2018-05-11 19:47:05 +02:00
padding-bottom: $spacing-vertical * 2/3;
2017-04-10 14:32:40 +02:00
}
2018-03-26 23:32:43 +02:00
.card__content {
margin-top: $spacing-vertical * 2/3;
}
2017-11-22 21:28:56 +01:00
2018-05-21 22:30:00 +02:00
.card__content--extra-padding {
2018-06-25 08:48:27 +02:00
margin-top: $spacing-vertical * 3/2;
2018-05-21 22:30:00 +02:00
}
2018-03-26 23:32:43 +02:00
.card__subtext-title {
2018-04-17 04:21:19 +02:00
color: var(--text-color);
2018-06-20 05:55:25 +02:00
font-size: calc(var(--font-size-subtext-multiple) * 1.2em);
2018-03-26 23:32:43 +02:00
&:not(:first-of-type) {
margin-top: $spacing-vertical * 3/2;
}
}
2017-11-22 21:28:56 +01:00
2018-03-26 23:32:43 +02:00
.card__subtext {
font-size: calc(var(--font-size-subtext-multiple) * 1em);
padding-top: $spacing-vertical * 1/3;
word-break: break-word;
font-family: 'metropolis-medium';
}
2017-04-10 14:32:40 +02:00
2018-06-06 08:13:26 +02:00
.card__subtext--small {
font-size: calc(var(--font-size-subtext-multiple) * 0.8em);
}
2018-03-26 23:32:43 +02:00
.card__actions {
margin-top: $spacing-vertical * 2/3;
2018-03-26 23:32:43 +02:00
display: flex;
2018-06-20 05:55:25 +02:00
&:not(.card__actions--vertical) {
.btn:nth-child(n + 2),
// For buttons wrapped in a tooltip
2018-06-20 06:29:58 +02:00
.tooltip:nth-child(n + 2) {
2018-06-20 05:55:25 +02:00
margin-left: $spacing-vertical / 3;
}
}
}
2018-03-26 23:32:43 +02:00
.card__actions--no-margin {
margin-top: 0;
}
2018-03-26 23:32:43 +02:00
.card__actions--vertical {
flex-direction: column;
margin-top: 0;
align-items: flex-end;
2018-03-26 23:32:43 +02:00
.btn:not(:first-child) {
margin-top: $spacing-vertical * 1/3;
}
2018-03-26 23:32:43 +02:00
}
.card__actions--center {
align-items: center;
justify-content: center;
.btn {
margin: 0 $spacing-vertical / 3;
}
}
2018-03-26 23:32:43 +02:00
.card__actions-top-corner {
position: absolute;
top: $spacing-vertical;
right: $spacing-vertical;
}
.card__actions--end {
justify-content: flex-end;
}
2018-06-20 05:55:25 +02:00
.card__actions--between {
justify-content: space-between;
flex-wrap: wrap;
}
2018-03-26 23:32:43 +02:00
/*
.card-row is used on the discover page
2018-03-26 23:32:43 +02:00
It is a list of cards that extend past the right edge of the screen
There are left/right arrows to scroll the cards and view hidden content
*/
.card-row {
2017-04-12 04:01:45 +02:00
white-space: nowrap;
width: 100%;
2018-03-26 23:32:43 +02:00
padding-top: $spacing-vertical;
&:first-of-type {
padding-top: 0;
}
&:last-of-type {
padding-bottom: $spacing-vertical * 2/3;
}
2017-04-12 04:01:45 +02:00
}
2018-03-26 23:32:43 +02:00
2017-04-10 14:32:40 +02:00
.card-row__header {
2018-03-26 23:32:43 +02:00
display: flex;
flex-direction: row;
justify-content: space-between;
// specific padding-left styling is needed here
// this needs to be used on a page with noPadding
// doing so allows the content to scroll to the edge of the screen
padding-left: $spacing-width;
}
.card-row__title {
display: flex;
align-items: center;
font-size: 18px;
line-height: 24px;
@media only screen and (min-width: $medium-breakpoint) {
font-size: 20px;
}
2018-03-26 23:32:43 +02:00
}
.card-row__scroll-btns {
display: flex;
padding-right: $spacing-width;
2017-07-29 20:12:13 +02:00
}
2018-01-04 06:05:20 +01:00
.card-row__scrollhouse {
2018-03-26 23:32:43 +02:00
padding-top: $spacing-vertical * 2/3;
overflow: hidden;
.card {
display: inline-block;
vertical-align: top;
overflow-y: visible;
// 31 px to handle to padding between cards
width: calc((100% / 4) - 34px);
@media only screen and (min-width: $medium-breakpoint) {
width: calc((100% / 6) - 29px);
}
@media only screen and (min-width: $large-breakpoint) {
width: calc((100% / 8) - 27px);
}
}
.card:not(:first-of-type) {
margin-left: 20px;
}
2018-03-26 23:32:43 +02:00
.card:first-of-type {
margin-left: $spacing-width;
}
.card:last-of-type {
2018-03-28 06:59:35 +02:00
margin-right: $spacing-width;
2018-03-26 23:32:43 +02:00
}
}
2018-07-13 17:29:25 +02:00
.card-row__message {
padding: 0 $spacing-width;
white-space: normal;
}
2018-03-26 23:32:43 +02:00
/*
How cards are displayed in lists
*/
.card__list {
.card {
display: inline-block;
vertical-align: top;
margin-bottom: $spacing-vertical * 3/2;
2018-03-26 23:32:43 +02:00
@media only screen and (max-width: $medium-breakpoint) {
width: calc((100% / 4) - (60px / 4)); // 60px === 20px margin-right * three cards
&:not(:nth-child(4n + 1)) {
margin-left: 20px;
}
}
@media only screen and (min-width: $medium-breakpoint) and (max-width: $large-breakpoint) {
width: calc((100% / 6) - (100px / 6));
&:not(:nth-child(6n + 1)) {
margin-left: 20px;
}
}
@media only screen and (min-width: $large-breakpoint) {
width: calc((100% / 8) - (140px / 8));
&:not(:nth-child(8n + 1)) {
margin-left: 20px;
}
2018-03-26 23:32:43 +02:00
}
}
}
2018-01-04 06:05:20 +01:00
2018-03-26 23:32:43 +02:00
.card__list--rewards {
.card {
display: inline-block;
width: calc(50% - 10px);
margin-bottom: 20px;
vertical-align: top;
&:not(:nth-child(2n + 1)) {
margin-left: 20px;
}
}
}
2018-03-26 23:32:43 +02:00
2018-03-30 07:33:09 +02:00
.card__success-msg {
border-left: 2px solid var(--success-msg-border);
color: var(--success-msg-color);
background-color: var(--success-msg-bg);
padding: $spacing-vertical * 1/3;
margin: $spacing-vertical * 1/3 0;
}
2018-03-26 23:32:43 +02:00
.card__media--autothumb {
color: red !important;
}
2017-07-30 00:56:08 +02:00
2018-03-26 23:32:43 +02:00
.card__media {
&.card__media--autothumb.purple {
background-color: #9c27b0;
}
&.card__media--autothumb.red {
background-color: #e53935;
}
&.card__media--autothumb.pink {
background-color: #e91e63;
}
&.card__media--autothumb.indigo {
background-color: #3f51b5;
}
&.card__media--autothumb.blue {
background-color: #2196f3;
}
&.card__media--autothumb.light-blue {
background-color: #039be5;
}
&.card__media--autothumb.cyan {
background-color: #00acc1;
}
&.card__media--autothumb.teal {
background-color: #009688;
}
&.card__media--autothumb.green {
background-color: #43a047;
}
&.card__media--autothumb.yellow {
background-color: #ffeb3b;
}
2018-03-26 23:32:43 +02:00
&.card__media--autothumb.orange {
background-color: #ffa726;
}
}