rustio-admin 0.18.4

Django Admin, but for Rust. A small, focused admin framework.
Documentation
/* ============================================================
 * rustio-admin / components / cards
 *
 * Surface containers — page headers, breadcrumbs, action rows,
 * the canonical card box, the empty-state placeholder, and the
 * .rio-meta low-emphasis caption. These are the page-chrome
 * primitives every screen leans on.
 * ============================================================ */

.rio-page-header {
  /* v0.16 — 32px below page header before the first content card.
   * The dashboard / list / form pages need real breathing room
   * between H1 and the data. */
  margin-bottom: var(--rio-s6);
}
.rio-breadcrumbs {
  font-size: var(--rio-fs-sm);
  color: var(--rio-text-subtle);
  font-weight: var(--rio-fw-medium);
  margin-bottom: var(--rio-s2);
}
.rio-breadcrumbs a {
  color: var(--rio-text-muted);
  font-weight: var(--rio-fw-semibold);
}
.rio-breadcrumbs a:hover { color: var(--rio-text-strong); }
.rio-page-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rio-s4);
  flex-wrap: wrap;
}
.rio-page-actions h1 { color: var(--rio-text-strong); }

.rio-card {
  /* v0.16 — 32px internal padding (was 24), 32px bottom gap between
   * cards (was 24). With the lighter border-soft + softer shadow,
   * cards lift cleanly off the page canvas. */
  background: var(--rio-surface);
  border: 1px solid var(--rio-border-soft);
  border-radius: var(--rio-radius-lg);
  padding: var(--rio-s6);
  margin-bottom: var(--rio-s6);
  box-shadow: var(--rio-shadow);
}
.rio-card-section {
  margin-top: var(--rio-s5);
  padding-top: var(--rio-s4);
  border-top: 1px solid var(--rio-border-soft);
}
.rio-empty {
  padding: var(--rio-s6);
  text-align: center;
  color: var(--rio-text-muted);
  font-size: var(--rio-fs-md);
}
.rio-meta {
  color: var(--rio-text-muted);
  font-size: var(--rio-fs-sm);
}