/* =========================
Data Row
Figma: Row - Asset List / Order list / Audience contact list.
A compact table-like row with leading checkbox, media, columns and actions.
========================= */
@use "../kit-deps" as *;
.data-row {
display: flex;
align-items: center;
gap: $space-3;
width: 100%;
padding: $space-3 $space-4;
border-bottom: 1px solid $neutral-100;
background-color: $neutral-0;
transition: background-color $motion-base $motion-ease;
&:last-child {
border-bottom: 0;
}
@include hover_touch {
background-color: $neutral-50;
}
&.data-row-selected {
background-color: rgba($mint-500, 0.08);
}
}
.data-row-select {
display: inline-flex;
align-items: center;
flex-shrink: 0;
}
.data-row-media {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 44px;
height: 44px;
border-radius: $radius-md;
background-color: $neutral-100;
color: $neutral-500;
font-size: $icon-size-md;
overflow: hidden;
img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
}
.data-row-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
gap: $space-3 $space-4;
flex: 1 1 auto;
min-width: 0;
}
.data-row-cell {
display: flex;
flex-direction: column;
gap: $space-1;
min-width: 0;
&.data-row-cell-main {
.data-row-value {
font-weight: $font-weight-semibold;
color: $neutral-900;
}
}
}
.data-row-label {
color: $neutral-500;
font-size: $font-size-xs;
font-weight: $font-weight-semibold;
text-transform: uppercase;
letter-spacing: 0.03em;
}
.data-row-value {
color: $neutral-700;
font-size: $font-size-sm;
font-weight: $font-weight-medium;
line-height: 1.4;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.data-row-actions {
display: inline-flex;
align-items: center;
gap: $space-1;
flex-shrink: 0;
margin-left: auto;
}
.data-row-group {
display: flex;
flex-direction: column;
width: 100%;
border: 1px solid $neutral-200;
border-radius: $radius-lg;
overflow: hidden;
}
@media (max-width: 640px) {
.data-row {
align-items: flex-start;
flex-wrap: wrap;
}
.data-row-content {
grid-template-columns: 1fr 1fr;
width: 100%;
}
.data-row-actions {
width: 100%;
justify-content: flex-end;
margin-left: 0;
}
}