maud-ui 0.2.1

64 headless, accessible UI components for Rust web apps — shadcn Base UI API parity. Plus block templates, a live theme customiser, and shell hooks for 15 third-party widgets (Monaco, xyflow, Excalidraw, Three.js, AG Grid, Leaflet, FullCalendar, SortableJS, and more). Built on maud + htmx, styled like shadcn/ui.
Documentation
/* Card component — shadcn-quality container */

.mui-card {
  background-color: var(--mui-bg-card);
  border: 1px solid var(--mui-border);
  border-radius: var(--mui-radius-lg);
  box-shadow: var(--mui-shadow-sm);
  color: var(--mui-text);
  overflow: hidden;
}

.mui-card__header {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.5rem;
  align-items: start;
  padding: 1.5rem 1.5rem 0;
}

/* Text column inside the header (title + description). */
.mui-card__header-text {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
}

.mui-card__title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--mui-text);
}

.mui-card__description {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--mui-text-muted);
}

/* Top-right action slot (shadcn CardAction). */
.mui-card__action {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  align-self: start;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.mui-card__body {
  padding: 1.5rem;
}

/* Collapse top padding on body when header is above */
.mui-card__header + .mui-card__body {
  padding-top: 0;
}

.mui-card__footer {
  display: flex;
  align-items: center;
  padding: 0 1.5rem 1.5rem;
}

/* Collapse top padding on footer when body is above */
.mui-card__body + .mui-card__footer {
  padding-top: 0;
}

/* ------------------------------------------------------------------ */
/* Size: Sm — compact card with reduced padding                        */
/* ------------------------------------------------------------------ */

.mui-card--sm .mui-card__header {
  padding: 0.75rem 0.75rem 0;
}

.mui-card--sm .mui-card__body {
  padding: 0.75rem;
}

.mui-card--sm .mui-card__footer {
  padding: 0 0.75rem 0.75rem;
}

.mui-card--sm .mui-card__title {
  font-size: 1.125rem;
}

.mui-card--sm .mui-card__description {
  font-size: 0.8125rem;
}