perf(workspace): style the server banner from the shell, baseline 570

The offline banner's own stylesheet added a <style> element to every
launch, one of the two mutations the launch journey counted on top of
master. Its rules move into the workspace shell's stylesheet.

The other one is a parser-inserted modulepreload link: the new lazy
server-storage chunks split one shared initial chunk in two. A/B on
macOS: master 555, this branch 556 (was 557); the baseline note now
says so instead of blaming @if anchors, which cost nothing here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5.5 committed 2026-10-12 20:45:52 +02:00
1 parent 8deb194312
commit 2a93100ec4
4 files changed
+38 -35

No files matched your search

@@ -1,29 +0,0 @@
:host {
display: block;
min-width: 0;
}
.server-banner {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 16px;
background: var(--app-expiry-warn-surface);
border-bottom: 1px solid var(--app-separator);
color: var(--app-heading-color);
font-size: 0.88rem;
mat-icon {
flex-shrink: 0;
color: var(--app-expiry-warn-text);
}
.server-banner__text {
min-width: 0;
}
button {
flex-shrink: 0;
margin-left: auto;
}
}
@@ -6,7 +6,8 @@ import { ServerStorageStatusService } from '@iptvnator/services';
/**
* Self-hosted server storage is unreachable: the library on screen is the
* last copy this browser read, and changes cannot be saved.
* last copy this browser read, and changes cannot be saved. Styled by the
* workspace shell's stylesheet (see there why).
*/
@Component({
selector: 'app-workspace-shell-server-banner',
@@ -33,7 +34,6 @@ import { ServerStorageStatusService } from '@iptvnator/services';
</div>
}
`,
styleUrl: './workspace-shell-server-banner.component.scss',
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class WorkspaceShellServerBannerComponent {
@@ -143,6 +143,39 @@ app-workspace-shell-context-sidebar {
background: var(--app-content-bg, var(--mat-sys-surface));
}
// The offline banner has no stylesheet of its own: a component stylesheet
// adds a <style> to every launch, which the launch journey counts. Its
// elements are the banner's, hence ::ng-deep under this host.
:host ::ng-deep app-workspace-shell-server-banner {
display: block;
min-width: 0;
.server-banner {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 16px;
background: var(--app-expiry-warn-surface);
border-bottom: 1px solid var(--app-separator);
color: var(--app-heading-color);
font-size: 0.88rem;
mat-icon {
flex-shrink: 0;
color: var(--app-expiry-warn-text);
}
.server-banner__text {
min-width: 0;
}
button {
flex-shrink: 0;
margin-left: auto;
}
}
}
@media (max-width: 780px) {
.workspace-shell {
grid-template-columns: 56px 1fr;
+3 -4
View File
@@ -20,14 +20,13 @@
"measuredWith": "pnpm run perf:journeys (ubuntu-latest, xvfb), identical in 3 runs"
},
"renderer.domMutationsToFirstCard": {
"value": 571,
"value": 570,
"unit": "mutations",
"slack": 0,
"updatedAt": "2026-10-12",
"evidencePr": 1903,
"evidenceRun": "https://github.com/4gray/iptvnator/actions/runs/38206088310",
"measuredWith": "pnpm run perf:journeys (ubuntu-latest, xvfb), CI run on PR 1903",
"note": "Raised by 2 for self-hosted server storage: the rail server shortcut and the workspace offline banner each leave one @if anchor comment in every build, also when server storage is inactive."
"measuredWith": "J1 launch A/B on macOS (pnpm run perf:journeys builds, launch journey only): master 6fe684af5 555, PR 1903 556 in every iteration; CI measured 569 on master",
"note": "Raised by 1 for self-hosted server storage: its new lazy chunks (server sign-in, server-storage providers, Settings > Server) split one shared initial chunk in two, so index.html carries one more modulepreload link, a node the parser inserts. Initial bytes stay within their baseline."
},
"main.modulesRegisteredBeforeWindow": {
"value": 2,