@indiekit/frontend
Version:
Frontend components for Indiekit
94 lines (80 loc) • 1.76 kB
CSS
.card {
--anchor-decoration-color: transparent;
--icon-margin: var(--space-2xs);
--icon-size: 1.125em;
background-color: var(--color-offset);
border-radius: var(--border-radius-small);
display: flex;
flex-grow: 1;
flex-wrap: wrap;
overflow: hidden;
position: relative;
&:hover {
background-color: var(--color-offset-variant);
}
&:has(:focus-visible) {
overflow: visible;
}
}
.card__photo {
flex-basis: var(--card-photo-size, 8em);
flex-grow: 1;
& :is(img, video) {
aspect-ratio: 1;
background-color: var(--color-offset);
block-size: 100%;
display: block;
inline-size: 100%;
object-fit: cover;
}
}
.card__body {
display: flex;
flex-basis: 0;
flex-direction: column;
flex-grow: 999;
gap: calc(var(--card-space, var(--space-s)) / 2);
margin-block-start: 0;
min-inline-size: 67%;
padding: var(--card-space, var(--space-s));
a:not([rel="bookmark"]) {
position: relative;
z-index: 1;
}
}
.card__title {
font: var(--card-title-font, var(--font-subhead));
}
.card a[rel="bookmark"] {
&::before {
border-radius: var(--border-radius-small);
content: "";
display: block;
inset: 0;
position: absolute;
}
&:focus-visible {
box-shadow: none;
position: initial;
}
&:focus-visible::before {
box-shadow: 0 0 0 var(--focus-width) var(--color-focus);
}
}
.card__meta {
--flow-line-measure: 40rem;
--prose-font: var(--font-caption);
margin-block-start: 0;
}
.card__footer {
align-items: start;
display: flex;
flex-direction: column;
gap: var(--space-xs);
margin-block-start: auto;
padding-block-start: var(--space-2xs);
& time {
color: var(--color-on-offset);
font-size: var(--font-size-xs);
}
}