Skip to content

Commit 8e150bb

Browse files
committed
style(popup): decouple profile hover in header and settings
Keep avatar and name hover feedback independent in both popup profile areas. Use a single accessible profile link for the header and settings account row so keyboard focus lands on one target, and update the popup test fixture to match.
1 parent d2fc0ac commit 8e150bb

4 files changed

Lines changed: 21 additions & 41 deletions

File tree

src/popup/popup.css

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -411,13 +411,6 @@ body.dark-theme .pat-input.input-error {
411411
box-shadow 0.15s;
412412
}
413413

414-
.profile-link:hover .username,
415-
.profile-link:hover .setting-account-name,
416-
.profile-link:focus-visible .username,
417-
.profile-link:focus-visible .setting-account-name {
418-
color: var(--text-highlight);
419-
}
420-
421414
.profile-link:focus-visible {
422415
outline: 3px solid var(--action-focus);
423416
outline-offset: 2px;
@@ -440,7 +433,7 @@ body.dark-theme .pat-input.input-error {
440433
transform 0.15s ease;
441434
}
442435

443-
.user-profile-link:hover .user-avatar,
436+
.user-profile-link .user-avatar:hover,
444437
.user-profile-link:focus-visible .user-avatar {
445438
box-shadow:
446439
0 0 0 1px var(--avatar-ring-highlight-color),
@@ -449,6 +442,13 @@ body.dark-theme .pat-input.input-error {
449442
transform: scale(1.02);
450443
}
451444

445+
.user-profile-link .username:hover,
446+
.user-profile-link:focus-visible .username,
447+
.settings-profile-link .setting-account-name:hover,
448+
.settings-profile-link:focus-visible .setting-account-name {
449+
color: var(--text-highlight);
450+
}
451+
452452
.user-info .username {
453453
font-weight: 600;
454454
color: var(--text-primary);
@@ -1216,10 +1216,10 @@ body.dark-theme .settings-view {
12161216
padding: 12px 6px 12px 0;
12171217
}
12181218

1219-
.settings-avatar-link {
1220-
flex-shrink: 0;
1221-
margin-right: 4px;
1222-
border-radius: 50%;
1219+
.settings-profile-link {
1220+
gap: 8px;
1221+
min-width: 0;
1222+
flex-shrink: 1;
12231223
}
12241224

12251225
.settings-avatar {
@@ -1234,8 +1234,8 @@ body.dark-theme .settings-view {
12341234
transform 0.15s ease;
12351235
}
12361236

1237-
.settings-avatar-link:hover .settings-avatar,
1238-
.settings-avatar-link:focus-visible .settings-avatar {
1237+
.settings-profile-link .settings-avatar:hover,
1238+
.settings-profile-link:focus-visible .settings-avatar {
12391239
box-shadow:
12401240
0 0 0 1px var(--avatar-ring-highlight-color),
12411241
0 0 0 4px var(--avatar-ring-glow);
@@ -1247,11 +1247,7 @@ body.dark-theme .settings-view {
12471247
flex: 1;
12481248
display: flex;
12491249
align-items: center;
1250-
gap: 2px;
1251-
min-width: 0;
1252-
}
1253-
1254-
.settings-username-link {
1250+
gap: 4px;
12551251
min-width: 0;
12561252
}
12571253

src/popup/popup.html

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -158,23 +158,15 @@ <h3 class="settings-title">Settings</h3>
158158
</div>
159159
<div class="settings-content">
160160
<div class="setting-row setting-user-info">
161-
<a
162-
class="profile-link settings-avatar-link"
163-
id="settings-avatar-link"
164-
href="#"
165-
target="_blank"
166-
rel="noopener noreferrer"
167-
>
168-
<img class="settings-avatar" id="settings-avatar" src="" alt="" hidden />
169-
</a>
170161
<div class="settings-user-details">
171162
<a
172-
class="profile-link settings-username-link"
173-
id="settings-username-link"
163+
class="profile-link settings-profile-link"
164+
id="settings-profile-link"
174165
href="#"
175166
target="_blank"
176167
rel="noopener noreferrer"
177168
>
169+
<img class="settings-avatar" id="settings-avatar" src="" alt="" hidden />
178170
<span class="setting-account-name" id="settings-username">Loading...</span>
179171
</a>
180172
<span class="settings-auth-method" id="settings-auth-method"></span>

src/popup/popup.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ function updateProfileLinks(username, userInfo) {
6161
const displayName = username || userInfo?.login || "User";
6262
const ariaLabel = displayName !== "User" ? `Open ${displayName} profile` : "Open GitHub profile";
6363

64-
[userProfileLink, settingsAvatarLink, settingsUsernameLink].forEach((link) => {
64+
[userProfileLink, settingsProfileLink].forEach((link) => {
6565
if (!link) return;
6666
if (url) {
6767
link.href = url;
@@ -180,8 +180,7 @@ const themeRadios = document.querySelectorAll('input[name="theme"]');
180180
const settingsLogoutBtn = document.getElementById("settings-logout-btn");
181181
const settingsUsernameEl = document.getElementById("settings-username");
182182
const settingsAvatarEl = document.getElementById("settings-avatar");
183-
const settingsAvatarLink = document.getElementById("settings-avatar-link");
184-
const settingsUsernameLink = document.getElementById("settings-username-link");
183+
const settingsProfileLink = document.getElementById("settings-profile-link");
185184
const settingsAuthMethodEl = document.getElementById("settings-auth-method");
186185
const notificationsContainer = document.getElementById("notifications-container");
187186
const refreshCountdownEl = document.getElementById("refresh-countdown");
@@ -409,14 +408,8 @@ async function showSettings() {
409408
settingsAvatarEl.src = userInfo.avatar_url;
410409
settingsAvatarEl.alt = userInfo.login || "User";
411410
settingsAvatarEl.hidden = false;
412-
if (settingsAvatarLink) {
413-
settingsAvatarLink.hidden = false;
414-
}
415411
} else if (settingsAvatarEl) {
416412
settingsAvatarEl.hidden = true;
417-
if (settingsAvatarLink) {
418-
settingsAvatarLink.hidden = true;
419-
}
420413
}
421414

422415
// Load popup width setting

tests/popup-countdown.test.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,7 @@ document.body.innerHTML = `
119119
<div id="notifications-container"></div>
120120
<span id="settings-username"></span>
121121
<img id="settings-avatar" />
122-
<a id="settings-avatar-link"></a>
123-
<a id="settings-username-link"></a>
122+
<a id="settings-profile-link"></a>
124123
<span id="settings-auth-method"></span>
125124
`;
126125

0 commit comments

Comments
 (0)