rustio-admin 0.18.4

Django Admin, but for Rust. A small, focused admin framework.
Documentation
/* ============================================================
 * rustio-admin / layout / topbar
 *
 * Sticky top chrome — brand mark, identity strip, search trigger,
 * mobile sidebar toggle. Sits above all page content;
 * `position: sticky` keeps it pinned during scroll.
 * ============================================================ */

.rio-topbar {
  display: flex;
  align-items: center;
  gap: var(--rio-s4);
  /* v0.16 — 24px horizontal padding. Topbar stops feeling cramped
   * beside the brand and there's real breathing room between
   * topbar items. */
  padding: 0 var(--rio-s5);
  height: var(--rio-topbar-h);
  /* Light topbar on the light page canvas. `--rio-surface`
   * (now pure `#FFFFFF`) sits one tier above the canvas — GitHub /
   * Vercel / Linear convention. The bottom border carries the seam
   * between chrome and content; the deep-slate weight in the layout
   * comes from the sidebar, not the topbar. */
  background: var(--rio-surface);
  border-bottom: 1px solid var(--rio-border-soft);
  position: sticky;
  top: 0;
  z-index: 10;
}
.rio-topbar-brand {
  font-weight: var(--rio-fw-bold);
  font-size: var(--rio-fs-lg);                 /* 18px */
  color: var(--rio-text-strong);
  letter-spacing: var(--rio-tracking-heading);
}
.rio-topbar-brand:hover { text-decoration: none; }
.rio-topbar-nav {
  margin-inline-start: auto;
  display: flex;
  align-items: center;
  gap: var(--rio-s4);
  flex-wrap: wrap;
}
.rio-topbar-identity {
  color: var(--rio-text-muted);
  font-size: var(--rio-fs-md);                 /* 16px */
  font-weight: var(--rio-fw-regular);
}
.rio-topbar-link {
  color: var(--rio-text-muted);
  font-size: var(--rio-fs-md);                 /* 16px */
  font-weight: var(--rio-fw-medium);
}
.rio-topbar-link:hover { color: var(--rio-text); }
.rio-topbar-bell {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.rio-topbar-bell__badge {
  position: absolute;
  top: -6px;
  inset-inline-end: -8px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--rio-accent, #b22222);
  color: #fff;
  font-size: 11px;
  font-weight: var(--rio-fw-bold);
  line-height: 16px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.rio-topbar-logout { display: inline; }
.rio-sidebar-toggle {
  display: none;
  background: none;
  border: 1px solid var(--rio-border);
  border-radius: var(--rio-radius-sm);
  padding: var(--rio-s1) var(--rio-s2);
  color: var(--rio-text);
  cursor: pointer;
}