mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
157 lines
3.3 KiB
CSS
157 lines
3.3 KiB
CSS
.library {
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
}
|
|
|
|
.createNew {
|
|
flex: 0 0 auto;
|
|
margin: var(--space-4);
|
|
height: 40px;
|
|
padding: 0 var(--space-5);
|
|
border: var(--border-width) solid transparent;
|
|
border-radius: var(--radius);
|
|
background: var(--accent);
|
|
color: var(--accent-contrast);
|
|
font: inherit;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
text-align: center;
|
|
transition: background var(--dur-fast) var(--ease);
|
|
}
|
|
|
|
.createNew:hover {
|
|
background: var(--accent-hover);
|
|
}
|
|
|
|
.list {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
flex: 1 1 auto;
|
|
min-height: 0;
|
|
overflow: auto;
|
|
border-top: var(--border-width) solid var(--border);
|
|
}
|
|
|
|
.empty {
|
|
color: var(--text-secondary);
|
|
font-size: 13px;
|
|
padding: var(--space-5) var(--space-4);
|
|
}
|
|
|
|
.item {
|
|
display: flex;
|
|
align-items: stretch;
|
|
gap: var(--space-3);
|
|
padding: 0 var(--space-4);
|
|
border-left: 2px solid transparent;
|
|
transition: background var(--dur-fast) var(--ease);
|
|
}
|
|
|
|
.item + .item {
|
|
border-top: var(--border-width) solid var(--border);
|
|
}
|
|
|
|
.item:hover {
|
|
background: var(--layer-01);
|
|
}
|
|
|
|
.active {
|
|
background: var(--layer-01);
|
|
border-left-color: var(--accent);
|
|
}
|
|
|
|
.itemMain {
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
gap: var(--space-1);
|
|
/* A real <button> for keyboard selection — strip the native chrome and let
|
|
the row's own padding live here so the click target fills the row height. */
|
|
appearance: none;
|
|
border: none;
|
|
background: none;
|
|
padding: var(--space-3) 0;
|
|
font: inherit;
|
|
color: inherit;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.name {
|
|
display: block;
|
|
max-width: 100%;
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
/* Secondary metadata line (spec §02): status indicator · relative date · size. */
|
|
.sub {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
/* Fixed-width leading slot for the status indicator. Always present (even when a
|
|
snippet is published and shows no dot) so the date never shifts and rows stay
|
|
aligned with one another. */
|
|
.indicator {
|
|
flex: 0 0 auto;
|
|
width: 6px;
|
|
height: 6px;
|
|
}
|
|
|
|
/* Unpublished-draft indicator (spec §02 status; arch/10 §6 + council). The accent
|
|
hue — not a warning colour, since unpublished work is a normal state — and the
|
|
meaning rides on presence/absence + the accessible label, never colour alone. */
|
|
.draftDot {
|
|
/* display:block so the 6px box applies — an inline span with no text content
|
|
would ignore width/height and collapse to nothing. */
|
|
display: block;
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
background: var(--accent);
|
|
}
|
|
|
|
.date {
|
|
min-width: 0;
|
|
font-size: 11px;
|
|
color: var(--text-secondary);
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.delete {
|
|
flex: 0 0 auto;
|
|
align-self: center;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: none;
|
|
background: none;
|
|
color: var(--text-secondary);
|
|
cursor: pointer;
|
|
font-size: 12px;
|
|
padding: var(--space-1);
|
|
border-radius: var(--radius);
|
|
opacity: 0;
|
|
transition: opacity var(--dur-fast) var(--ease);
|
|
}
|
|
|
|
.item:hover .delete,
|
|
.delete:focus-visible {
|
|
opacity: 1;
|
|
}
|
|
|
|
.delete:hover {
|
|
color: var(--support-error);
|
|
}
|