Newer
Older
vmk-ui-kit / src / scss / components / _data-row.scss
@Eugene Sukhodolskiy Eugene Sukhodolskiy 19 hours ago 3 KB so many changes
/* =========================
   Data Row
   Figma: Row - Asset List / Order list / Audience contact list,
          Campain search card / Contact search card.
========================= */

@use "../kit-deps" as *;

.data-row {
  display: flex;
  align-items: center;
  gap: $space-4;
  width: 100%;
  padding: $space-3 $space-4;
  border: $border-width-base $border-style-base $border-color-muted;
  border-radius: $radius-xl;
  background-color: $neutral-0;
  color: $neutral-900;

  &-select {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;

    input {
      width: 18px;
      height: 18px;
      margin: 0;
      cursor: pointer;
    }
  }

  &-media {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: $radius-full;
    border: $border-width-base $border-style-base $neutral-200;
    background-color: $neutral-0;
    color: $lavender-700;
    overflow: hidden;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    svg {
      width: 24px;
      height: 24px;
    }

    &--icon {
      border-radius: $radius-full;
    }
  }

  &-content {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: $space-6;
    min-width: 0;

    @media (max-width: 640px) {
      flex-direction: column;
      align-items: flex-start;
      gap: $space-2;
    }
  }

  &-cell {
    display: flex;
    flex-direction: column;
    gap: $space-1;
    min-width: 0;

    &-main {
      flex: 1 1 auto;
    }
  }

  &-label {
    color: $neutral-500;
    font-size: $font-size-xs;
    font-weight: $font-weight-semibold;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  &-value {
    color: $neutral-900;
    font-size: $font-size-lg;
    font-weight: $font-weight-semibold;
    line-height: $line-height-tight;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  &-meta {
    display: inline-flex;
    align-items: center;
    gap: $space-2;
    color: $neutral-500;
    font-size: $font-size-md;
    font-weight: $font-weight-regular;
    line-height: $line-height-tight;

    .vmk-icon,
    .ph {
      width: 18px;
      height: 18px;
      color: currentColor;
    }

    &-separator {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background-color: currentColor;
      opacity: 0.6;
    }
  }

  &-metrics {
    display: inline-flex;
    align-items: center;
    gap: $space-2;
    margin-left: auto;
    flex-shrink: 0;
  }

  &-metric {
    display: inline-flex;
    align-items: center;
    gap: $space-2;
    padding: $space-2 $space-4;
    border-radius: $radius-full;
    border: $border-width-base $border-style-base $neutral-200;
    background-color: $neutral-0;
    color: $lavender-700;
    font-size: $font-size-md;
    font-weight: $font-weight-semibold;
    line-height: 1;
    white-space: nowrap;

    .vmk-icon,
    .ph {
      width: 20px;
      height: 20px;
      color: currentColor;
    }

    &--success {
      color: $success-text;
    }
  }

  &-actions {
    display: inline-flex;
    align-items: center;
    gap: $space-2;
    margin-left: auto;
    flex-shrink: 0;
  }

  &:hover {
    border-color: $neutral-300;
  }
}