28 lines
2.1 KiB
CSS
28 lines
2.1 KiB
CSS
.card.line-ribbons {
|
|||
|
|
aspect-ratio:auto;
|
||
|
|
display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto minmax(140px,1fr); min-height:min-content;
|
||
|
|
/* A spanning ratio spacer preserves the art format without capping text height. */
|
||
|
|
&::before { content:""; grid-column:1; grid-row:1 / -1; aspect-ratio:2.7; align-self:start; pointer-events:none; }
|
||
|
|
& > .card-heading, & > .ribbon-note { grid-column:1; }
|
||
|
|
& > .card-heading { grid-row:1; position:relative; inset:auto; flex:none; margin:24px 24px 0 24px; }
|
||
|
|
/* Upper-left space is reserved by the paths, without a horizontal mask. */
|
||
|
|
&:not([data-title]) > .card-stage, &[data-title="top"] > .card-stage { inset:0; }
|
||
|
|
& .ribbon-art, & .ribbon-surface { position:absolute; width:100%; height:100%; inset:0; }
|
||
|
|
&[data-surface-ready="true"] .ribbon-art { visibility:hidden; }
|
||
|
|
&[data-renderer="dots"] .ribbon-mist, &[data-renderer="grid"] .ribbon-mist { opacity:.13; }
|
||
|
|
& .ribbon-mist { position:absolute; inset:0; background:
|
||
|
|
radial-gradient(ellipse 31% 65% at 49% 106% in oklab,color-mix(in oklab,oklch(from var(--_card-accent-2) calc(l - .12) calc(c * 1.08) h) 88%,transparent) 8%,color-mix(in oklab,var(--_card-accent-2) 65%,transparent) 38%,transparent 96%),
|
||
|
|
radial-gradient(ellipse 39% 70% at 75% 95% in oklab,color-mix(in oklab,color-mix(in oklab,var(--_card-accent-2) 45%,var(--card-accent)) 66%,transparent),transparent 96%),
|
||
|
|
radial-gradient(ellipse 33% 90% at 98% 40% in oklab,color-mix(in oklab,var(--card-accent) 72%,transparent),transparent 94%); }
|
||
|
|
& .ribbon-note { grid-row:2; position:relative; z-index:4; margin:24px 24px 0; flex:none; line-height:1.5; font-size:13px; color:var(--card-muted); }
|
||
|
|
&[data-title="bottom"] {
|
||
|
|
grid-template-rows:minmax(140px,1fr) auto auto;
|
||
|
|
& > .card-heading { grid-row:2; margin:24px 24px 0; }
|
||
|
|
& .ribbon-note { grid-row:3; margin:8px 24px 12px; }
|
||
|
|
& > .card-stage { position:relative; grid-column:1; grid-row:1; inset:auto; min-height:140px; }
|
||
|
|
}
|
||
|
|
@media(max-width:650px) {
|
||
|
|
&::before { aspect-ratio:1.2; }
|
||
|
|
& .ribbon-note { max-width:190px; line-height:1.5; }
|
||
|
|
}
|
||
|
|
}
|