feat: streamline portfolio UI and support atomic record edits
This commit is contained in:
1 parent
932a864ed6
commit
9adf7fdbc5
26 files changed
+988
-112
No files matched your search
@@ -1335,3 +1335,155 @@ footer {
|
||||
.calendar-panel h2 {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* Compact cards and a calmer overview hierarchy. */
|
||||
body {
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
input,
|
||||
textarea,
|
||||
[contenteditable='true'] {
|
||||
-webkit-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
.position-grid {
|
||||
grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
|
||||
gap: 12px;
|
||||
}
|
||||
.position-card {
|
||||
padding: 14px 16px;
|
||||
position: relative;
|
||||
}
|
||||
.position-card > div {
|
||||
float: left;
|
||||
margin: 0 12px 8px 0;
|
||||
}
|
||||
.position-card > div > svg {
|
||||
display: none;
|
||||
}
|
||||
.position-icon {
|
||||
padding: 7px;
|
||||
}
|
||||
.position-card h3 {
|
||||
font-size: 14px;
|
||||
margin: 0 0 2px;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
.position-card p {
|
||||
margin: 2px 0 8px;
|
||||
font-size: 11px;
|
||||
}
|
||||
.position-card strong {
|
||||
clear: both;
|
||||
font-size: 19px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
.position-card small {
|
||||
margin-top: 3px;
|
||||
font-size: 11px;
|
||||
}
|
||||
.position-card .badge {
|
||||
font-size: 10px;
|
||||
padding: 1px 6px;
|
||||
}
|
||||
.picker-view-toggle {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 18px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.picker-dialog .actions {
|
||||
margin: 12px 0;
|
||||
}
|
||||
.metric {
|
||||
padding: 20px;
|
||||
}
|
||||
.metric.net {
|
||||
background: #e9f3ed;
|
||||
border-color: #a9cbb9;
|
||||
}
|
||||
.metric strong {
|
||||
font-size: clamp(22px, 2.5vw, 32px);
|
||||
}
|
||||
.dashboard-grid {
|
||||
grid-template-columns: minmax(0, 2fr) minmax(230px, 1fr);
|
||||
gap: 16px;
|
||||
}
|
||||
.dashboard-grid .panel {
|
||||
padding: 20px;
|
||||
}
|
||||
.dashboard-grid .privacy {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.attribution summary {
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.attribution[open] summary {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.record-actions {
|
||||
gap: 16px;
|
||||
}
|
||||
@media (max-width: 760px) {
|
||||
.dashboard-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.position-grid {
|
||||
grid-template-columns: repeat(auto-fill, minmax(165px, 1fr));
|
||||
gap: 8px;
|
||||
}
|
||||
.position-card {
|
||||
padding: 12px;
|
||||
}
|
||||
.position-card strong {
|
||||
font-size: 17px;
|
||||
}
|
||||
}
|
||||
|
||||
.metric.net {
|
||||
order: -1;
|
||||
}
|
||||
.metrics {
|
||||
grid-template-columns: 1.2fr 1fr 1fr;
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
.metrics {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.metric.net {
|
||||
color: #234c3b;
|
||||
}
|
||||
.metric.net > div,
|
||||
.metric.net small {
|
||||
color: #557867;
|
||||
}
|
||||
.overview-filters {
|
||||
align-items: end;
|
||||
gap: 8px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
.overview-filters label {
|
||||
flex: 1;
|
||||
min-width: 130px;
|
||||
font-size: 11px;
|
||||
}
|
||||
.overview-filters input {
|
||||
padding: 8px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.overview-filters select {
|
||||
width: auto;
|
||||
flex: 1;
|
||||
min-width: 130px;
|
||||
padding: 8px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.overview-filters + .muted {
|
||||
font-size: 10px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
Reference in new issue
Block a user