Skip to content

Commit a22ede7

Browse files
authored
fix(ui): redesign the who's-online roster menu (#111668)
1 parent e45ebac commit a22ede7

1 file changed

Lines changed: 60 additions & 6 deletions

File tree

ui/src/styles/layout.css

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1982,33 +1982,84 @@ html.openclaw-native-macos
19821982
background: color-mix(in srgb, var(--fg) 8%, transparent);
19831983
}
19841984

1985-
/* Long rosters scroll inside the popup instead of growing past the viewport. */
1985+
/* Long rosters scroll inside the popup instead of growing past the viewport.
1986+
Chrome matches the sidebar's other fixed menus (customize/session menus). */
19861987
.presence-roster-menu::part(menu) {
1987-
max-height: min(320px, 60vh);
1988+
min-width: 232px;
1989+
max-width: 288px;
1990+
max-height: min(340px, 60vh);
19881991
overflow-y: auto;
1992+
padding: 6px;
1993+
border: 1px solid color-mix(in srgb, var(--border-strong) 78%, transparent);
1994+
border-radius: var(--radius-lg);
1995+
background: var(--bg-elevated);
1996+
box-shadow: var(--shadow-lg);
19891997
}
19901998

19911999
.presence-roster-menu__title {
1992-
padding: 4px 10px 2px;
2000+
padding: 6px 8px 4px;
19932001
color: var(--muted);
19942002
font-size: 11px;
1995-
font-weight: 600;
1996-
letter-spacing: 0.02em;
2003+
font-weight: 650;
2004+
letter-spacing: 0.05em;
19972005
text-transform: uppercase;
19982006
}
19992007

2008+
/* Rows are informational people entries, not checkbox menu items: drop Web
2009+
Awesome's checkmark gutter and item metrics so title, avatars, and text
2010+
share one left edge with the rest of the app's menus. */
2011+
.presence-roster-menu__item {
2012+
padding: 5px 8px;
2013+
border-radius: var(--radius-md);
2014+
}
2015+
2016+
.presence-roster-menu__item:hover,
2017+
.presence-roster-menu__item:focus-visible {
2018+
outline: none;
2019+
background: color-mix(in srgb, var(--bg-hover) 84%, transparent);
2020+
}
2021+
2022+
.presence-roster-menu__item::part(checkmark) {
2023+
display: none;
2024+
}
2025+
20002026
.presence-roster-menu__item::part(label) {
20012027
display: flex;
20022028
align-items: center;
20032029
}
20042030

2031+
/* Roster avatars grow to two-line row scale. The circle clips via the child
2032+
image/initials instead of the wrapper so the online badge can overflow. */
20052033
.presence-roster-menu__item .viewer-avatar {
2006-
border-color: transparent;
2034+
width: 26px;
2035+
height: 26px;
2036+
overflow: visible;
2037+
border: none;
2038+
font-size: 10px;
2039+
}
2040+
2041+
.presence-roster-menu__item .viewer-avatar > img,
2042+
.presence-roster-menu__item .viewer-avatar > span {
2043+
border-radius: var(--radius-full);
2044+
}
2045+
2046+
/* Everyone listed is online; the dot restates the header at a glance. */
2047+
.presence-roster-menu__item .viewer-avatar::after {
2048+
content: "";
2049+
position: absolute;
2050+
right: -1px;
2051+
bottom: -1px;
2052+
width: 8px;
2053+
height: 8px;
2054+
border: 2px solid var(--bg-elevated);
2055+
border-radius: var(--radius-full);
2056+
background: var(--ok);
20072057
}
20082058

20092059
.presence-roster-menu__text {
20102060
display: flex;
20112061
flex-direction: column;
2062+
gap: 1px;
20122063
min-width: 0;
20132064
line-height: 1.3;
20142065
}
@@ -2017,11 +2068,14 @@ html.openclaw-native-macos
20172068
overflow: hidden;
20182069
text-overflow: ellipsis;
20192070
white-space: nowrap;
2071+
color: var(--text);
20202072
font-size: 13px;
2073+
font-weight: 500;
20212074
}
20222075

20232076
.presence-roster-menu__you {
20242077
color: var(--muted);
2078+
font-weight: 400;
20252079
}
20262080

20272081
.presence-roster-menu__email {

0 commit comments

Comments
 (0)