229 lines
5.0 KiB
CSS
229 lines
5.0 KiB
CSS
/* Card container for the perma. Tools and actions and whatnot */
|
|
|
|
@layer components {
|
|
.card-perma {
|
|
--actions-block-inset: 1.5rem;
|
|
--actions-inline-inset: 4rem;
|
|
--color-container: color-mix(in srgb, var(--card-color) 33%, var(--color-canvas));
|
|
--padding-inline: calc(var(--block-space-double) + var(--block-space));
|
|
--padding-block: calc(var(--block-space-double) + var(--block-space-half));
|
|
|
|
align-items: start;
|
|
column-gap: var(--inline-space);
|
|
display: grid;
|
|
grid-template-areas:
|
|
"qw notch-top we"
|
|
"actions-left card actions-right"
|
|
"er notch-bottom rt";
|
|
grid-template-columns: 48px minmax(0, 1120px) 48px;
|
|
inline-size: fit-content;
|
|
max-inline-size: 100%;
|
|
margin-inline: auto;
|
|
|
|
&:has(.card-perma__star-input:checked) {
|
|
.card {
|
|
outline: 4px solid var(--color-negative);
|
|
}
|
|
}
|
|
|
|
.card {
|
|
--card-aspect-ratio: 2 / 0.95;
|
|
|
|
border: none;
|
|
}
|
|
|
|
.card__background {
|
|
filter: brightness(1.2) contrast(0.8);
|
|
opacity: 0.2;
|
|
}
|
|
|
|
.card__body {
|
|
@media (max-width: 639px) {
|
|
flex-direction: column;
|
|
}
|
|
}
|
|
|
|
.card__content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1ch;
|
|
}
|
|
|
|
.card__title {
|
|
font-size: clamp(var(--text-medium), 6vw, var(--text-xx-large));
|
|
}
|
|
|
|
.card__meta,
|
|
.card__stages {
|
|
font-size: var(--text-small);
|
|
}
|
|
|
|
.card__stages {
|
|
max-inline-size: 32ch;
|
|
|
|
@media (max-width: 639px) {
|
|
border: 1px solid var(--card-color);
|
|
border-radius: 0.25em;
|
|
overflow: hidden;
|
|
max-inline-size: 100%;
|
|
padding: 0;
|
|
}
|
|
}
|
|
|
|
.workflow-stage {
|
|
@media (max-width: 639px) {
|
|
--btn-border-radius: 0;
|
|
}
|
|
}
|
|
|
|
.collection-picker__button {
|
|
--btn-border-size: 0;
|
|
|
|
font-size: 0.5em;
|
|
margin-inline-start: 1ch;
|
|
|
|
+ .panel {
|
|
--panel-size: 18ch;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 800px) {
|
|
--padding-inline: var(--main-padding);
|
|
|
|
column-gap: 0;
|
|
grid-template-areas:
|
|
"notch-top notch-top"
|
|
"card card"
|
|
"actions-left actions-right"
|
|
"notch-bottom notch-bottom";
|
|
grid-template-columns: 1fr 1fr;
|
|
inline-size: calc(100% + 2 * var(--padding-inline));
|
|
margin-inline: calc(-1 * var(--padding-inline));
|
|
max-inline-size: none;
|
|
position: relative;
|
|
}
|
|
}
|
|
|
|
.card-perma__collection-header {
|
|
margin-block-end: var(--block-space);
|
|
|
|
#main:has(.card-perma__notch--top) & {
|
|
margin-block-end: 4ch;
|
|
|
|
@media (max-width: 639px) {
|
|
margin-block-end: 2ch;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Child items
|
|
/* ------------------------------------------------------------------------ */
|
|
|
|
.card-perma__bg {
|
|
background-color: var(--color-container);
|
|
border-radius: 0.2em;
|
|
grid-area: card;
|
|
padding: var(--padding-block) var(--padding-inline);
|
|
}
|
|
|
|
.card-perma__actions {
|
|
display: grid;
|
|
gap: var(--block-space-half);
|
|
|
|
&:has([open]) {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
}
|
|
|
|
.card-perma__actions--left { grid-area: actions-left; }
|
|
.card-perma__actions--right { grid-area: actions-right; }
|
|
|
|
@media (max-width: 800px) {
|
|
.card-perma__actions {
|
|
display: flex;
|
|
inset-block-end: 0;
|
|
padding-inline: var(--padding-inline);
|
|
position: absolute;
|
|
translate: 0 50%;
|
|
}
|
|
|
|
.card-perma__actions--right {
|
|
inset-inline-end: 0;
|
|
justify-content: flex-end;
|
|
}
|
|
}
|
|
|
|
/* Notches
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
.card-perma__notch {
|
|
align-items: center;
|
|
color: color-mix(in srgb, var(--card-color) 40%, var(--color-ink));
|
|
display: inline-flex;
|
|
inline-size: auto;
|
|
gap: var(--inline-space);
|
|
justify-content: center;
|
|
margin-inline: auto;
|
|
position: relative;
|
|
text-align: center;
|
|
z-index: 0;
|
|
}
|
|
|
|
.card-perma__notch--top {
|
|
grid-area: notch-top;
|
|
inline-size: 100%;
|
|
margin-block-start: -4ch;
|
|
max-inline-size: 36ch;
|
|
padding-inline: 1ch;
|
|
translate: 0 50%;
|
|
|
|
.btn {
|
|
--btn-border-color: var(--card-color);
|
|
--btn-color: var(--card-color);
|
|
|
|
text-align: center;
|
|
|
|
&:has(input:checked) {
|
|
--btn-background: var(--card-color);
|
|
--btn-border-color: var(--card-color);
|
|
--btn-color: var(--color-ink-inverted);
|
|
}
|
|
}
|
|
}
|
|
|
|
.card-perma__notch--bottom {
|
|
grid-area: notch-bottom;
|
|
translate: 0 -25%;
|
|
|
|
&:has([open]) {
|
|
z-index: 1;
|
|
}
|
|
|
|
.btn:not(.popup__item, .btn--plain, .btn--reversed) {
|
|
--btn-background: var(--card-color);
|
|
--btn-color: var(--color-ink-inverted);
|
|
}
|
|
|
|
.btn--plain {
|
|
--btn-color: var(--card-color);
|
|
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.btn--reversed {
|
|
--btn-background: var(--color-canvas);
|
|
--btn-color: var(--card-color);
|
|
--btn-border-color: var(--color-container);
|
|
}
|
|
}
|
|
|
|
.card-perma__closure-message {
|
|
color: var(--card-color);
|
|
|
|
&:first-child {
|
|
padding-left: 1ch;
|
|
}
|
|
}
|
|
}
|