d5ef93b13b
gates / gates (push) Successful in 6m42s
A household ticks apps and sees, for an 8, 16 and 32 GB box: fits well / fits, but tight / does not fit, the totals, and the apps that burst on CPU. One rule in assets/sizing.js, every number from assets/sizing-data.json (built by scripts/build_sizing_web.py from the 2026-10-13 N100 measurement; test: 7 cases, red-proofed). Unlisted: noindex, robots Disallow, not in the sitemap, linked from nowhere — site_gates.py gate 25 enforces it (UNLISTED twin pairs keep every twin check). SIZING.md §5 corrected: the 8 GB line contradicted its own x1.5 rule; guest sizes 4.0/11.4/27.4 GB with the measured 612 MiB MemTotal shortfall. R-993 gains the fact that the installer accepts a host below any minimum.
42 lines
3.0 KiB
CSS
42 lines
3.0 KiB
CSS
/* sizing.css — the machine estimator only (/gepigeny, /en/sizing). Every selector starts with .sizer,
|
|
so nothing here reaches the shell or another page. Tokens from site.css :root; no raw colours. */
|
|
.sizer[hidden] { display: none; }
|
|
.sizer-presets { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.5rem; }
|
|
.sizer-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
|
|
.sizer-group { border: 0; border-top: 1px solid var(--line); margin: 0 0 1.25rem; padding: 0.75rem 0 0; min-width: 0; }
|
|
.sizer-group legend { color: var(--text-1); font-weight: 600; padding: 0 0.5rem 0 0; }
|
|
.sizer-app { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem 0.6rem; padding: 0.35rem 0; cursor: pointer; }
|
|
.sizer-app input { accent-color: var(--blue); width: 1.05rem; height: 1.05rem; margin: 0; flex: 0 0 auto; align-self: center; }
|
|
.sizer-app input:focus-visible { outline: 2px solid var(--blue-bright); outline-offset: 2px; }
|
|
.sizer-app input:disabled + .sizer-app-name { color: var(--text-2); }
|
|
.sizer-app-name { color: var(--text-1); }
|
|
.sizer-app-tag { color: var(--text-3); font-size: 0.85rem; }
|
|
.sizer-result h2 { font-size: 1.15rem; margin: 0 0 0.75rem; }
|
|
.sizer-totals { color: var(--text-2); margin: 0; line-height: 1.7; }
|
|
.sizer-num { font-family: var(--font-data); color: var(--text-1); font-weight: 600; }
|
|
.sizer-fine { color: var(--text-3); font-size: 0.85rem; margin: 0.25rem 0 0; }
|
|
.sizer-boxes { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: 0.75rem; }
|
|
.sizer-box { border: 1px solid var(--line); border-left-width: 3px; border-radius: var(--radius); padding: 0.75rem 1rem; background: var(--bg-1); }
|
|
.sizer-box-head { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
|
|
.sizer-box-size { font-family: var(--font-data); color: var(--text-1); }
|
|
.sizer-verdict { color: var(--text-1); }
|
|
.sizer-well { border-left-color: var(--blue); }
|
|
.sizer-well .ico { color: var(--blue-bright); }
|
|
.sizer-tight { border-left-color: var(--warn); background: var(--warn-dim); }
|
|
.sizer-tight .ico, .sizer-tight .sizer-verdict { color: var(--warn); }
|
|
.sizer-no { border-left-color: var(--crit); background: var(--crit-dim); }
|
|
.sizer-no .ico, .sizer-no .sizer-verdict { color: var(--crit); }
|
|
.sizer-why { color: var(--text-2); font-size: 0.9rem; margin: 0.4rem 0 0; }
|
|
.sizer-sub { font-size: 1rem; margin: 1.25rem 0 0.5rem; }
|
|
.sizer-cpu { margin: 0; padding-left: 1.1rem; color: var(--text-2); line-height: 1.6; }
|
|
.sizer-cpu strong { color: var(--text-1); font-weight: 600; }
|
|
.sizer-advice { margin: 0; padding-left: 1.1rem; color: var(--text-2); line-height: 1.7; }
|
|
.sizer-how { margin-top: 1.5rem; color: var(--text-2); }
|
|
.sizer-how summary { cursor: pointer; color: var(--text-1); }
|
|
.sizer-how summary:focus-visible { outline: 2px solid var(--blue-bright); outline-offset: 2px; }
|
|
.sizer-how p { margin: 0.5rem 0 0; line-height: 1.65; }
|
|
.sizer-noscript { color: var(--warn); }
|
|
@media (max-width: 900px) {
|
|
.sizer-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
|
|
}
|