fix: prevent username flash on load and remove select max-width

This commit is contained in:
Laurent Dinclaux
2026-05-06 20:11:10 +11:00
parent e539c60e9b
commit c194661fa3
3 changed files with 27 additions and 6 deletions

View File

@@ -67,7 +67,6 @@ function plugin_switchIdent_addCbLarry($wrapper, $sw) {
$sw.css({ $sw.css({
'font-weight': 'bold', 'font-weight': 'bold',
'max-width': '200px',
'text-overflow': 'ellipsis' 'text-overflow': 'ellipsis'
}); });
@@ -104,7 +103,6 @@ function plugin_switchIdent_addCbElastic($wrapper, $sw) {
'font-weight': 'bold', 'font-weight': 'bold',
'color': 'inherit', 'color': 'inherit',
'box-shadow': 'none', 'box-shadow': 'none',
'max-width': '200px',
'text-overflow': 'ellipsis', 'text-overflow': 'ellipsis',
'padding': '0 1.2em 0 0.25em' 'padding': '0 1.2em 0 0.25em'
}); });

View File

@@ -27,6 +27,32 @@
background-size: 10px 6px; background-size: 10px 6px;
} }
/*
* Prevent flash of original username before JS prepends the switcher.
* The JS hides these elements at DOMReady, but the CSS rules below hide them
* earlier (during initial render) — only loaded when the switcher will actually
* be shown, so users without secondary accounts keep the default username display.
*/
/* Elastic skin: switcher is prepended inside .header-title.username.
Hide the original username via visibility on the parent (affects the text
node), then re-show the wrapper. Unlike color/font-size, this preserves the
parent's flex/line-height context, keeping the wrapper vertically centered. */
.header-title.username {
visibility: hidden;
}
.header-title.username > *:not(.ident-switch-wrapper) {
display: none;
}
.header-title.username > .ident-switch-wrapper {
visibility: visible;
}
/* Larry skin: switcher is prepended next to .username inside #topline .topright */
#topline .topright > .username {
display: none;
}
/* Unread badge */ /* Unread badge */
.ident-switch-badge { .ident-switch-badge {
flex-shrink: 0; flex-shrink: 0;

View File

@@ -158,10 +158,6 @@ class ident_switch extends rcube_plugin
default => null, default => null,
}; };
if ($rc->task === 'mail') {
$this->include_stylesheet('ident_switch.css');
}
return $args; return $args;
} }
@@ -218,6 +214,7 @@ class ident_switch extends rcube_plugin
return; return;
} }
$this->include_stylesheet('ident_switch.css');
$this->include_script('ident_switch-switch.js'); $this->include_script('ident_switch-switch.js');
// Pass config to JS environment // Pass config to JS environment