loopable / web /src /settings /perms.css
fsanyoto's picture
Deploy AIOS web (React glide grid + FastAPI slice)
f546440 verified
Raw
History Blame
2.03 kB
/* settings/perms.css β€” wave 33 (owner item 11, W33-T34/T38).
*
* β›” CONTRACT C4: `index.css` is lane B's. Everything the permission editor's
* per-database DISCLOSURE needs is new, so it lives here and is imported by
* `PermsEditor.tsx` β€” the established practice (`query.css`, `navExtras.css`,
* `SwipeView.css`). Nothing in this file redefines an `index.css` rule; it only
* styles classes that did not exist before this wave.
*
* WHY A DISCLOSURE AT ALL. Owner, 2026-08-14: *"the database should not show all
* immediately the detail (for filter or hide fields), the user should have the
* ability to see ALL databases"*. Those two clauses pull against each other β€”
* more databases, less detail per database β€” and an accordion is what satisfies
* both. Before wave 33 the list was a fixed TWO and every panel rendered inline;
* it is now every database the tenant has.
*/
/* The trailing controls of a module head, grouped as ONE flex child so the
`space-between` rule in `index.css` still sees exactly two children. */
.set-perm-headend {
display: flex;
align-items: center;
gap: 10px;
flex: none;
}
/* Smaller than a primary action and quieter than `Copy to…`: this button reveals
detail, it does not commit anything. It borrows `.set-secondary`'s border,
surface and focus ring rather than restating them β€” a second definition of the
button chrome is a second place for the focus ring to go missing. */
.set-perm-disclose {
font-size: var(--lp-fs-2xs);
padding: 3px 9px;
white-space: nowrap;
}
/* The open state reads as pressed, so a scrolled-away head still says which
database owns the panels below it. */
.set-perm-disclose[aria-expanded="true"] {
border-color: var(--lp-blue-deep);
color: var(--lp-blue-deep);
}
@media (max-width: 640px) {
/* The head wraps before the label truncates: a database name is the one thing
in this row that cannot be guessed from context. */
.set-perm-headend { flex-wrap: wrap; justify-content: flex-end; }
}