web: a row's menu is the tree's own and speaks only of that row, and only the row being read admits to it
The menu that hangs off a folder is a menu read mid-scan, with the eye still moving down the column, and it was drawn to the measure of a page rather than of a list: a box wide enough to be a destination, type the size of a heading. A catalogue's own context menu is a thing passed over on the way somewhere else — it is sized to its words and to the row it hangs off, and the reader's eye steps across it without stopping. The type comes down a point, the rows tighten to the tree's own measure, and the frame around them thickens to a radius the rows themselves use. The clamp that keeps it in the window follows the smaller box, so a menu opened near the right or the bottom edge no longer floats an inch off the pointer for room it does not use. A row that is being read has exactly one thing to be asked of it — that it stop — where a row at rest has the reading that brings it up to date. The menu said RESCAN either way, greyed while a scan was up, which is a command offered and refused in the same breath. The two never both apply, so the menu now carries the one the row is actually in: a roll being read offers STOP SCAN and stops that roll; a roll at rest offers UPDATE... and reads it again. A row with folders under it grows a third thing — a fold that closes the branch and not merely the row, because a reader who is done with a tree means the whole of it shut, and closing only the row they happened to point at leaves the children standing open underneath it. The last is a matter of what a row is allowed to claim. Every row of a roll spanning the tree spun while that roll was being read, so a reader looking at a tree of a hundred folders saw a hundred rows each insisting it was the one being read, when the reading had been pointed at one of them. A row now says it is being read only when it is the row the reading was kept to — the folder it was pointed at, which for a whole roll is the roll's own row. A tree that says all of itself is busy when one branch of it is says nothing a reader can trust.
This commit is contained in:
@@ -1210,26 +1210,31 @@ button.hint:disabled { cursor: default; }
|
||||
when the window is narrow. */
|
||||
.lib-icon { padding: 5px 8px; justify-content: center; }
|
||||
/* A folder's own menu, on a right click. Fixed, so the tree's own scroll cannot
|
||||
clip it; the position is clamped to the window when it is drawn. */
|
||||
clip it; the position is clamped to the window when it is drawn.
|
||||
Sized after a catalogue's own menu rather than after a page's: it hangs off a
|
||||
row of a list the reader is scanning with their eyes, and a box of commands as
|
||||
loud as the list is a box that stops the scanning. The type and the rows are
|
||||
the tree's own, a shade tighter. */
|
||||
.lib-menu {
|
||||
position: fixed;
|
||||
z-index: 40;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 170px;
|
||||
padding: 4px;
|
||||
min-width: 148px;
|
||||
padding: 3px;
|
||||
background: var(--bg-elev);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
border-radius: var(--radius-sm);
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
.lib-menu-item {
|
||||
border: 0;
|
||||
border-radius: var(--radius-sm);
|
||||
background: none;
|
||||
padding: 7px 10px;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.04em;
|
||||
padding: 4px 7px;
|
||||
font-size: 11px;
|
||||
line-height: 1.35;
|
||||
letter-spacing: 0.03em;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
/* Each command leads with a mark of its own — rename, scan, forget, fold — the
|
||||
@@ -1237,9 +1242,9 @@ button.hint:disabled { cursor: default; }
|
||||
column of marks rather than a block of uppercase. */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
gap: 7px;
|
||||
}
|
||||
.lib-menu-icon { flex: 0 0 auto; width: 12px; text-align: center; opacity: 0.85; }
|
||||
.lib-menu-icon { flex: 0 0 auto; width: 10px; text-align: center; opacity: 0.85; }
|
||||
.lib-menu-item:hover:not(:disabled) { background: var(--accent-soft); color: var(--accent); }
|
||||
.lib-menu-item:disabled { opacity: 0.45; cursor: not-allowed; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user