]> ###2026.10.21p - folder.view: the expand button sits next to the folder name instead of below it, and the container previews are no longer cut at the bottom. - folder.view folder editor: no bullet points, labels aligned with the other fields, On/Off next to each switch, compact colour reset button, subtle row borders in the container list. - Docker: the autostart "wait" field lines up under the switch. - Docker, advanced view: the CPU & Memory load column lines up with the rest of the row again (its cells jumped to the top), with percentage and bar on one line as on the Dashboard and memory below. ###2026.10.21n - Docker with folder.view: folder names use the text colour like container names, and the accent colour when the folder has an update. - Docker: "apply update" is a plain accent link without the outline, and its icon and the "update ready" one line up with the other rows. ###2026.10.21l - Docker: containers with an update take the accent colour, including the ones marked by folder.view (its highlight was hidden by the theme). - Docker version column restyled: "up-to-date" in neutral text with a green check, "update ready" as an accent pill, "apply update" as a small button, "force update" and "latest" muted. ###2026.10.21k - A custom accent colour now also tints the UNRAID logo in the header. - Plugins: Neoraid shows its own icon, tinted with the accent colour; clicking it opens *Settings → Neoraid*. - Docker: container names use the text colour, as on the Dashboard; containers with an update and "update ready" / "apply update" are shown in the info blue. - VMs: VM names and vCPU counts use the text colour too. - Unassigned Devices: the mount point of remote SMB/NFS shares (pencil + name) no longer turns into a squeezed icon button. - Unassigned Devices dialogs (SweetAlert 2) follow the light and dark mode instead of staying white; the protocol picker no longer shows stray squares next to the NFS and SMB icons, and the success icon shown after a removal no longer has a white blob over it. ###2026.10.21e - Community Applications listing files (`ca_profile.xml`, `plugins/neoraid.xml`), in preparation for the submission to Apps. - Stylesheet tidy-up: duplicate ZFS Master and sidebar rules merged, with no visual change. ###2026.10.21d - VM editor: CPU pinning boxes follow the theme in light and dark mode (they stayed light in a forced dark mode), readable core labels, P-core marker in the info colour. - Users: the default avatar sits on a round plate and turns light in dark mode. - Dashboard: CPU load percentages use the theme colours (neutral, warning and danger above the thresholds) instead of the stock green; tile column headers and memory legend have more contrast. - Light mode: secondary text, success and warning colours are slightly darker, so small labels and status text reach a 4.5:1 contrast. The vDisk path in the VM editor and "Show more" in Apps are readable too. - Custom accent colours: link and accent text is darkened (light mode) or lightened (dark mode) only as much as needed to reach a 4.5:1 contrast, so light accents such as green or teal stay readable. - Sidebar layouts (gray, azure): menu labels no longer show cut off next to the icons, and the rail has no horizontal scrollbars; a label opens only for the hovered item. - Faster page script on the Dashboard: the Vue dark-mode sync only runs when a new Vue component appears. - Release notes in *Plugins* now come from the changelog. ###2026.10.20t First public release. - Theme layer for the Unraid 7.3 webGUI that keeps the Unraid palette; removing the plugin restores the stock look. - Light and dark mode following *Display Settings*, with a switch in the navigation bar; the Vue header and notification panel follow it. - *Settings → Neoraid*: accent colour, default mode, density, corners, font, switch visibility, with live preview. - Redesigned navigation, tabs, tables, usage meters, forms, buttons, toggles, context menus, dialogs, tooltips, file tree, select2 and system log colours. - Dashboard: equal columns, card tiles, Docker and VM cards, smooth CPU and network charts, RAM rings with a dedicated palette. - Dedicated styles for Community Applications, Unassigned Devices, Preclear and ZFS Master. - Plugin updates through *Plugins → Check for Updates*. rm -rf &plugdir; mkdir -p &plugdir;/sheets &plugdir;/images Neoraid go to nr.js as window.nrConfig; * every value is checked against a fixed list, so nothing else gets printed. */ $nr_cfg = parse_plugin_cfg('neoraid'); $nr_pick = function($key, $allowed) use ($nr_cfg) { $value = $nr_cfg[$key] ?? ''; return in_array($value, $allowed, true) ? $value : $allowed[0]; }; $nr_accent = $nr_cfg['ACCENT'] ?? ''; $nr_config = [ 'accent' => preg_match('/^#[0-9a-fA-F]{6}$/', $nr_accent) ? strtolower($nr_accent) : '#ff8c2f', 'mode' => $nr_pick('MODE', ['auto', 'light', 'dark']), 'density' => $nr_pick('DENSITY', ['comfortable', 'compact']), 'radius' => $nr_pick('RADIUS', ['standard', 'sharp', 'round']), 'font' => $nr_pick('FONT', ['inter', 'system']), 'switch' => $nr_pick('SWITCH', ['show', 'hide']), ]; ?> ]]> Neoraid: theme options saved to * /boot/config/plugins/neoraid/neoraid.cfg through /update.php. * Every change previews at once through window.nrTheme (nr.js); Apply saves * it for all pages and browsers. */ $nr = parse_plugin_cfg('neoraid'); $nr_accent = preg_match('/^#[0-9a-fA-F]{6}$/', $nr['ACCENT'] ?? '') ? strtolower($nr['ACCENT']) : '#ff8c2f'; $nr_presets = [ '#ff8c2f' => _('Unraid orange'), '#e22828' => _('Unraid red'), '#3b82f6' => _('Blue'), '#14b8a6' => _('Teal'), '#22c55e' => _('Green'), '#8b5cf6' => _('Violet'), '#ec4899' => _('Pink'), '#64748b' => _('Slate'), ]; ?>
_(Accent colour)_: : $label):?> > Used for the active page, links, focus rings, primary buttons, toggles, usage bars and Dashboard charts. > The Unraid orange is the default. _(Default mode)_: : > The mode every browser starts in. The switch in the navigation bar still overrides it for one browser. _(Density)_: : _(Corners)_: : _(Font)_: : _(Light/dark switch in the navigation bar)_: :   :
]]>
; removing the plugin restores the stock look completely. * * Font: Inter by Rasmus Andersson, SIL Open Font License 1.1 (embedded). * * Light / dark follows the theme picked in Settings > Display Settings * (white, azure -> light; black, gray -> dark) unless the switch in the * navigation bar or Settings > Neoraid picks a mode (classes nr-dark, * nr-light). The other Settings > Neoraid options arrive as data-nr-* * attributes on . * * Structure * 1. Font * 2. Design tokens (light, dark), options * 3. Stock variable bridge (so plugins that use Unraid vars follow along), * Vue components * 4. Base & typography * 5. Header, navigation, footer * 6. Page structure: titles, tabs, panels, definition lists * 7. Controls: buttons, inputs, selects, checkboxes, switches * 8. Tables & usage meters * 9. Dashboard * 10. Overlays: dialogs, alerts, tooltips, notices, context menus, * Community Applications * 11. Sidebar layouts (gray, azure) */ /* 1. Font ------------------------------------------------------------- */ @font-face { font-family: "Inter Variable"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("data:font/woff2;base64,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") format("woff2-variations"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* 2. Design tokens ---------------------------------------------------- */ .nr { --nr-font: "Inter Variable", "Inter", clear-sans, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; --nr-mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", bitstream, monospace; /* Unraid brand */ --nr-brand-red: #e22828; --nr-brand-orange: #ff8c2f; --nr-brand-gradient: linear-gradient(90deg, var(--nr-brand-red), var(--nr-brand-orange)); --nr-primary-gradient: linear-gradient(180deg, #f2672a, #e2442a); /* Shape & motion */ --nr-radius-sm: 6px; --nr-radius: 8px; --nr-radius-lg: 12px; --nr-radius-xl: 16px; --nr-control-h: 3.4rem; --nr-row-h: 4.4rem; --nr-ease: cubic-bezier(.2, 0, 0, 1); --nr-fast: 120ms; /* Light palette: warm neutrals that sit well next to the brand orange */ --nr-bg: #f5f5f4; --nr-surface: #ffffff; --nr-surface-2: #fafaf9; --nr-surface-3: #efeeec; --nr-border: #e7e5e4; --nr-border-strong: #d6d3d1; --nr-text: #1c1917; --nr-text-2: #44403c; --nr-muted: #716a65; --nr-faint: #a8a29e; --nr-accent: #ff8c2f; --nr-accent-text: #c2410c; --nr-accent-soft: rgba(255, 140, 47, .12); --nr-focus-ring: 0 0 0 3px rgba(255, 140, 47, .32); --nr-success: #15803d; --nr-warning: #b45309; --nr-danger: #dc2626; --nr-info: #2563eb; --nr-success-soft: rgba(21, 128, 61, .10); --nr-warning-soft: rgba(180, 83, 9, .10); --nr-danger-soft: rgba(220, 38, 38, .09); --nr-info-soft: rgba(37, 99, 235, .08); --nr-meter-ok: #22a35a; --nr-meter-warn: #e8930c; --nr-meter-crit: #e0362c; --nr-shadow-xs: 0 1px 1px rgba(28, 25, 23, .04); --nr-shadow-sm: 0 1px 2px rgba(28, 25, 23, .05), 0 1px 1px rgba(28, 25, 23, .02); --nr-shadow-md: 0 1px 2px rgba(28, 25, 23, .04), 0 6px 16px -4px rgba(28, 25, 23, .08); --nr-shadow-lg: 0 2px 6px rgba(28, 25, 23, .06), 0 24px 48px -12px rgba(28, 25, 23, .22); --nr-overlay: rgba(28, 25, 23, .42); --nr-nav-glass: rgba(255, 255, 255, .82); /* The same neutrals as bare HSL triplets, for the Vue components' hsl(var(--x)) */ --nr-hsl-surface: 0 0% 100%; --nr-hsl-surface-3: 40 8.6% 93.1%; --nr-hsl-border: 20 5.9% 90%; --nr-hsl-text: 24 9.8% 10%; --nr-hsl-muted: 25 5.3% 44.7%; color-scheme: light; } .nr.Theme--black:not(.nr-light), .nr.Theme--gray:not(.nr-light), .nr.nr-dark { --nr-bg: #111110; --nr-surface: #1a1918; --nr-surface-2: #201f1e; --nr-surface-3: #2a2927; --nr-border: #2c2b29; --nr-border-strong: #3d3b39; --nr-text: #eeedeb; --nr-text-2: #c9c7c4; --nr-muted: #908d89; --nr-faint: #67645f; --nr-accent-text: #ff9f52; --nr-accent-soft: rgba(255, 140, 47, .14); --nr-focus-ring: 0 0 0 3px rgba(255, 140, 47, .38); --nr-success: #4ade80; --nr-warning: #fbbf24; --nr-danger: #f87171; --nr-info: #60a5fa; --nr-success-soft: rgba(74, 222, 128, .10); --nr-warning-soft: rgba(251, 191, 36, .10); --nr-danger-soft: rgba(248, 113, 113, .10); --nr-info-soft: rgba(96, 165, 250, .10); --nr-meter-ok: #3fbf6f; --nr-meter-warn: #f0a224; --nr-meter-crit: #f2554b; --nr-shadow-xs: 0 1px 1px rgba(0, 0, 0, .3); --nr-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35); --nr-shadow-md: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 20px -6px rgba(0, 0, 0, .5); --nr-shadow-lg: 0 2px 6px rgba(0, 0, 0, .35), 0 24px 56px -12px rgba(0, 0, 0, .7); --nr-overlay: rgba(0, 0, 0, .6); --nr-nav-glass: rgba(26, 25, 24, .82); --nr-hsl-surface: 30 4% 9.8%; --nr-hsl-surface-3: 40 3.7% 15.9%; --nr-hsl-border: 40 3.5% 16.7%; --nr-hsl-text: 40 8.1% 92.7%; --nr-hsl-muted: 34 3.1% 55.1%; color-scheme: dark; } /* Options from Settings > Neoraid. nr.js sets these attributes on (and writes the accent colour overrides) from the plugin config. */ html.nr[data-nr-density="compact"] { --nr-row-h: 3.4rem; --nr-control-h: 3rem; } html.nr[data-nr-density="compact"] :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody td { padding-top: .3rem; padding-bottom: .3rem; } html.nr[data-nr-radius="sharp"] { --nr-radius-sm: 2px; --nr-radius: 3px; --nr-radius-lg: 4px; --nr-radius-xl: 6px; } html.nr[data-nr-radius="round"] { --nr-radius-sm: 8px; --nr-radius: 12px; --nr-radius-lg: 16px; --nr-radius-xl: 22px; } html.nr[data-nr-font="system"] { --nr-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; } html.nr[data-nr-switch="hide"] .nr-anchor { display: none; } /* 3. Stock variable bridge -------------------------------------------- */ .nr { --text-color: var(--nr-text); --blockquote-text-color: var(--nr-text-2); --alt-text-color: var(--nr-muted); --disabled-text-color: var(--nr-faint); --link-text-color: var(--nr-accent-text); --background-color: var(--nr-bg); --alt-background-color: var(--nr-surface); --opac-background-color: var(--nr-surface); --mild-background-color: var(--nr-surface); --shade-bg-color: var(--nr-surface-2); --input-bg-color: var(--nr-surface); --focus-input-bg-color: var(--nr-surface); --disabled-input-background-color: var(--nr-surface-2); --border-color: var(--nr-border); --alt-border-color: var(--nr-border-strong); --input-border-color: var(--nr-border-strong); --textarea-border-color: var(--nr-border-strong); --disabled-border-color: var(--nr-border); --disabled-input-border-color: var(--nr-border); --focus-input-border-color: var(--nr-accent); --hr-color: var(--nr-border); --table-border-color: var(--nr-border); --table-alt-border-color: var(--nr-border); --table-background-color: transparent; --table-header-background-color: var(--nr-surface-2); --hover-table-row-background-color: var(--nr-surface-2); --title-header-background-color: transparent; --dashboard-background-color: var(--nr-surface); --dashboard-border-color: var(--nr-border); --dashboard-title-action-color: transparent; --dashboard-icon-color: var(--nr-muted); --dashstats-pie-after-bg-color: var(--nr-surface); --usage-bar-background-color: var(--nr-surface-3); --usage-bar-used-background-color: var(--nr-accent); --usage-disk-background-color: var(--nr-surface-3); --footer-text: var(--nr-muted); --footer-background-color: var(--nr-surface); --small-shadow: var(--nr-shadow-md); --checkbox-color: var(--nr-surface-3); --checkbox-hover-color: var(--nr-border-strong); --scrollbar-color: var(--nr-border-strong); --scrollbar-hover-color: var(--nr-faint); /* Sidebar layouts read these with !important, so the bridge is how we win */ --button-border: var(--nr-border-strong); --button-text-color: var(--nr-text); --button-background: var(--nr-surface); --hover-button-border: var(--nr-faint); --hover-button-text-color: var(--nr-text); --hover-button-background: var(--nr-surface-2); --dynamix-tablesorter-thead-row-border-color: var(--nr-border); --dynamix-tablesorter-thead-th-text-color: var(--nr-muted); --dynamix-tablesorter-thead-th-bg-color: var(--nr-surface-2); --dynamix-tablesorter-tbody-row-bg-color: var(--nr-surface); --dynamix-tablesorter-tbody-row-alt-bg-color: var(--nr-surface); --dynamix-tablesorter-tbody-row-border-color: var(--nr-border); --dynamix-ui-dropdownchecklist-color: var(--nr-text); --dynamix-ui-dropdownchecklist-color-alt1: var(--nr-surface-2); --dynamix-ui-dropdownchecklist-color-alt2: var(--nr-muted); --dynamix-ui-dropdownchecklist-dropcontainer-border-color: var(--nr-border); --dynamix-ui-state-active-border-color: var(--nr-border); --dynamix-jquery-ui-border-color: var(--nr-border); --dynamix-jquery-ui-header-background: var(--nr-surface); --dynamix-jquery-ui-header-color: var(--nr-text); --dynamix-jquery-ui-content-background: var(--nr-surface); --dynamix-jquery-ui-content-color: var(--nr-text); --dynamix-jquery-ui-active-background: var(--nr-surface-3); --dynamix-jquery-ui-dropcontainer-background: var(--nr-surface); --dynamix-jquery-ui-text-color: var(--nr-text); --dynamix-jquery-ui-disabled-color: var(--nr-faint); --dynamix-jquery-ui-disabled-border-color: var(--nr-border); --dynamix-jquery-ui-disabled-background: var(--nr-surface-2); --dynamix-sweet-alert-text-color: var(--nr-text); --dynamix-sweet-alert-icon-bg-color: var(--nr-surface); --dynamix-tooltipster-sidetip-bg-from: var(--nr-surface); --dynamix-tooltipster-sidetip-bg-to: var(--nr-surface); --dynamix-tooltipster-sidetip-content-text-color: var(--nr-text); --dynamix-tooltipster-sidetip-arrow-bg-color: var(--nr-surface); --dynamix-tooltipster-sidetip-arrow-border-color: var(--nr-border); --dynamix-tooltipster-sidetip-box-border-color: var(--nr-border); --dynamix-filetree-bg-color: var(--nr-surface); --dynamix-box-text-color: var(--nr-text); --dynamix-select-bg-color: var(--nr-surface); --dynamix-select-box-shadow: none; --dynamix-select-disabled-bg-color: var(--nr-surface-2); --dynamix-select-disabled-border-color: var(--nr-border); --dynamix-select-disabled-color: var(--nr-faint); --dynamix-awesomplete-text-color: var(--nr-text); --dynamix-awesomplete-list-bg-color: var(--nr-surface); --dynamix-awesomplete-list-bg-from-color: var(--nr-surface); --dynamix-awesomplete-list-border-color: var(--nr-border); } /* Vue components (header, notifications, modals) live in .unapi scopes that redeclare these on .dark / .Theme--*; `html.nr .unapi` outranks both, and the tokens flip with the switch, so the components follow it too. */ html.nr, html.nr .unapi { --color-alpha: var(--nr-accent); --color-beta: var(--nr-text); --color-gamma: var(--nr-surface); --color-gamma-opaque: var(--nr-nav-glass); --color-border: var(--nr-border); --ui-text-dimmed: var(--nr-faint); --ui-text-muted: var(--nr-muted); --ui-text-toned: var(--nr-text-2); --ui-text: var(--nr-text-2); --ui-text-highlighted: var(--nr-text); --ui-bg: var(--nr-surface); --ui-bg-muted: var(--nr-surface-2); --ui-bg-elevated: var(--nr-surface-2); --ui-bg-accented: var(--nr-surface-3); --ui-border: var(--nr-border); --ui-border-muted: var(--nr-border); --ui-border-accented: var(--nr-border-strong); --background: var(--nr-hsl-surface); --foreground: var(--nr-hsl-text); --card: var(--nr-hsl-surface); --card-foreground: var(--nr-hsl-text); --popover: var(--nr-hsl-surface); --popover-foreground: var(--nr-hsl-text); --muted: var(--nr-hsl-surface-3); --muted-foreground: var(--nr-hsl-muted); --secondary: var(--nr-hsl-surface-3); --secondary-foreground: var(--nr-hsl-text); --accent: var(--nr-hsl-surface-3); --accent-foreground: var(--nr-hsl-text); --border: var(--nr-hsl-border); --input: var(--nr-hsl-border); } /* 4. Base & typography ------------------------------------------------ */ .nr body { font-family: var(--nr-font); font-size: 1.4rem; line-height: 1.5; color: var(--nr-text); background-color: var(--nr-bg); font-feature-settings: "cv11", "ss03"; text-rendering: optimizeLegibility; } .nr ::selection { color: var(--nr-text); background-color: color-mix(in srgb, var(--nr-accent) 28%, transparent); } .nr p:where(:not(.unapi *)) { text-align: left; text-wrap: pretty; } .nr a { color: var(--nr-accent-text); text-underline-offset: .2em; text-decoration-thickness: 1px; } .nr a.none, .nr a.list { color: inherit; } .nr :focus-visible { outline: 2px solid var(--nr-accent); outline-offset: 2px; } .nr hr { background-color: var(--nr-border); margin: 2.4rem 0; } .nr pre { font-family: var(--nr-mono); font-size: 1.25rem; line-height: 1.6; background-color: var(--nr-surface-2); border: 1px solid var(--nr-border); border-radius: var(--nr-radius); padding: 1rem 1.2rem; } .nr span.bitstream, .nr .font-mono { font-family: var(--nr-mono); } .nr big { font-weight: 600; } .nr i.control { color: var(--nr-muted); } /* Status text keeps the stock class names, only the hues move */ .nr .green, .nr .green-text, .nr .passed { color: var(--nr-success); } .nr .red, .nr .red-text, .nr .failed { color: var(--nr-danger); } .nr .orange, .nr .orange-text, .nr .warning { color: var(--nr-warning); } .nr .blue, .nr .blue-text { color: var(--nr-info); } .nr .grey-text { color: var(--nr-muted); } .nr .green-orb { color: var(--nr-success); } .nr .red-orb { color: var(--nr-danger); } .nr .yellow-orb { color: var(--nr-warning); } .nr .blue-orb { color: var(--nr-info); } .nr .grey-orb { color: var(--nr-faint); } .nr ::-webkit-scrollbar { width: 10px; height: 10px; } .nr ::-webkit-scrollbar-thumb { background-color: var(--nr-border-strong); border: 2px solid transparent; border-radius: 10px; background-clip: padding-box; } .nr ::-webkit-scrollbar-thumb:hover { background-color: var(--nr-faint); } .nr ::-webkit-scrollbar-corner { background: transparent; } /* 5. Header, navigation, footer --------------------------------------- */ .nr #header { background-color: var(--nr-surface); color: var(--nr-text); border-bottom: 1px solid var(--nr-border); } /* Hook for the Vue header (unraid-header-os-version, user profile) */ .nr { --header-text-primary: var(--nr-text); --header-text-secondary: var(--nr-muted); --header-background-color: var(--nr-surface); --header-gradient-start: transparent; --header-gradient-end: var(--nr-surface); --color-header-text-primary: var(--nr-text); --color-header-text-secondary: var(--nr-muted); --color-header-background: var(--nr-surface); --color-header-gradient-start: transparent; --color-header-gradient-end: var(--nr-surface); --header-text-color: var(--nr-text); --inverse-text-color: var(--nr-text); } /* The UNRAID wordmark is an SVG image with a fixed red-orange gradient: shift it to a custom accent like our Plugins icon (--nr-logo-filter) */ .nr unraid-header-os-version a > img { filter: var(--nr-logo-filter, none); } .nr.Theme--nav-top #menu { background-color: var(--nr-nav-glass); -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px); border-bottom: 1px solid var(--nr-border); padding: 0 1.6rem; box-sizing: border-box; } .nr.Theme--nav-top .nav-tile { background-color: transparent; font-size: 1.35rem; letter-spacing: 0; height: 4.8rem; min-height: 4.8rem; line-height: normal; align-items: stretch; gap: .2rem; scrollbar-width: none; } .nr.Theme--nav-top .nav-item { padding: 0 .2rem; } .nr.Theme--nav-top .nav-item a { color: var(--nr-muted); font-weight: 500; text-transform: none; padding: .6rem 1.1rem; border-radius: var(--nr-radius); line-height: 2rem; transition: color var(--nr-fast) var(--nr-ease), background-color var(--nr-fast) var(--nr-ease); } .nr.Theme--nav-top .nav-item a:hover, .nr.Theme--nav-top .nav-item a:focus-visible { color: var(--nr-text); background-color: var(--nr-surface-3); text-decoration: none; } .nr.Theme--nav-top .nav-item.active a { color: var(--nr-text); font-weight: 600; } /* The stock 32px underline becomes a full-width indicator on the bar edge */ .nr.Theme--nav-top .nav-item::after { top: auto; bottom: -1px; width: calc(100% - 1.6rem); height: 2px; border-radius: 2px 2px 0 0; transform: translateX(-50%); background: transparent; } .nr.Theme--nav-top .nav-item:hover::after, .nr.Theme--nav-top .nav-item:focus::after { background: transparent; } .nr.Theme--nav-top .nav-item.active::after { background: var(--nr-brand-gradient); } /* Right-hand utility icons: square icon buttons */ .nr.Theme--nav-top .nav-tile.right { align-items: center; gap: .2rem; } .nr.Theme--nav-top .nav-item.util { padding: 0; } .nr.Theme--nav-top .nav-item.util::after { display: none; } .nr.Theme--nav-top .nav-item.util a { display: inline-grid; place-items: center; width: 3.4rem; height: 3.4rem; padding: 0; line-height: 1; } .nr .nav-item .system { font-size: 1.6rem; padding: 0; } /* Light/dark switch (nr.js mounts it inside the hidden-page anchor) */ .nr .nr-anchor { display: flex; align-items: center; align-self: center; margin: 0 .4rem; } .nr .nr-mode { position: relative; display: inline-flex; align-items: center; justify-content: space-between; width: 5.2rem; min-width: 0; /* stock buttons force 86px */ height: 2.6rem; margin: 0; padding: 0 .6rem; letter-spacing: 0; border: 1px solid var(--nr-border); border-radius: 999px; background: var(--nr-surface-3); box-shadow: none; cursor: pointer; box-sizing: border-box; transition: background-color var(--nr-fast) var(--nr-ease), border-color var(--nr-fast) var(--nr-ease); } .nr .nr-mode:hover { border-color: var(--nr-border-strong); } .nr .nr-mode:focus-visible { outline: none; box-shadow: var(--nr-focus-ring); } .nr .nr-mode i { position: relative; z-index: 1; font-size: 1.15rem; color: var(--nr-faint); transition: color var(--nr-fast) var(--nr-ease); } .nr .nr-mode-thumb { position: absolute; top: 2px; left: 2px; width: 2rem; height: 2rem; border-radius: 50%; background: var(--nr-surface); box-shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 0 0 1px var(--nr-border); transition: transform 180ms var(--nr-ease); } .nr .nr-mode[aria-checked="true"] .nr-mode-thumb { /* track width - thumb - both 2px insets - both 1px borders */ transform: translateX(calc(5.2rem - 2rem - 6px)); } .nr .nr-mode[aria-checked="false"] .fa-sun-o, .nr .nr-mode[aria-checked="true"] .fa-moon-o { color: var(--nr-accent-text); } .nr.Theme--sidebar .nr-anchor { justify-content: center; margin: .8rem 0; } /* Array usage pill next to the utility icons */ .nr #menu .usage-bar { float: none; align-self: center; width: 11rem; height: 2rem; line-height: 2rem; margin: 0 .8rem; padding: 0; border-radius: 999px; background-color: var(--nr-surface-3); box-shadow: inset 0 0 0 1px var(--nr-border); overflow: hidden; } .nr #menu .usage-bar > span { border-radius: 999px; box-shadow: none; color: var(--nr-text); font-size: 1.1rem; font-weight: 600; padding-right: .8rem; box-sizing: border-box; min-width: max-content; font-variant-numeric: tabular-nums; } .nr #menu .usage-bar > span:not(.greenbar, .orangebar, .redbar) { background: color-mix(in srgb, var(--nr-accent) 34%, transparent); } /* nr.js copies the value to data-nr-label: the fill keeps its true width and the label sits centred on the whole pill instead of inside the fill */ .nr #menu .usage-bar[data-nr-label] { position: relative; } .nr #menu .usage-bar[data-nr-label] > span { min-width: 0; padding: 0; font-size: 0; } .nr #menu .usage-bar[data-nr-label]::after { content: attr(data-nr-label); position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 600; color: var(--nr-text); font-variant-numeric: tabular-nums; pointer-events: none; } .nr #menu .usage-bar > span.greenbar { background: color-mix(in srgb, var(--nr-meter-ok) 30%, transparent); } .nr #menu .usage-bar > span.orangebar { background: color-mix(in srgb, var(--nr-meter-warn) 34%, transparent); } .nr #menu .usage-bar > span.redbar { background: color-mix(in srgb, var(--nr-meter-crit) 32%, transparent); } .nr #footer { font-family: var(--nr-font); font-size: 1.2rem; color: var(--nr-muted); background-color: var(--nr-nav-glass); -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px); border-top: 1px solid var(--nr-border); padding: .5rem 1.6rem; } .nr #footer .footer-right, .nr #footer #copyright { font-family: var(--nr-font); font-size: 1.2rem; font-variant-numeric: tabular-nums; } .nr #footer a { color: var(--nr-text-2); } .nr .back_to_top, .nr .move_to_end { color: var(--nr-muted); bottom: 4.4rem; } /* 6. Page structure --------------------------------------------------- */ .nr #displaybox { padding: 2.4rem 2.4rem 7.2rem; } .nr.Theme--sidebar #displaybox { padding-left: 8.8rem; } .nr.Theme--width-boxed #displaybox { max-width: 1920px; /* same as stock: a narrower box squeezes the Dashboard */ } /* Section heading (non-tabbed pages) */ .nr div.title { background: transparent; border: 0; margin: 3.6rem 0 1.2rem; padding: 0; color: var(--nr-text); font-size: 1.6rem; font-weight: 600; letter-spacing: -.01em; gap: 1.2rem; } .nr div.title:first-of-type, .nr .title + .title { margin-top: 0; } .nr div.title i.title, .nr div.title span.left i { color: var(--nr-muted); margin-right: 1rem; font-size: 1.6rem; } .nr div.title span.status, .nr div.title span.right { font-size: 1.3rem; font-weight: 400; letter-spacing: 0; color: var(--nr-muted); } /* Tabs: underline style on a hairline */ .nr .tabs { border-bottom: 1px solid var(--nr-border); margin-bottom: .4rem; } .nr .tabs-container { gap: 2rem; scrollbar-width: none; } .nr .tabs button[role="tab"] { border: 0; border-radius: 0; margin: 0; padding: 1.2rem .2rem 1.1rem; min-width: 0; background: none; color: var(--nr-muted); font-family: var(--nr-font); font-size: 1.4rem; font-weight: 500; letter-spacing: 0; text-transform: none; opacity: 1; box-shadow: inset 0 -2px 0 transparent; transition: color var(--nr-fast) var(--nr-ease), box-shadow var(--nr-fast) var(--nr-ease); } .nr .tabs button[role="tab"]:hover { color: var(--nr-text); background: none; box-shadow: inset 0 -2px 0 var(--nr-border-strong); } .nr .tabs button[role="tab"][aria-selected="true"] { color: var(--nr-text); background: none; box-shadow: inset 0 -2px 0 var(--nr-accent); } .nr .tabs button[role="tab"] i { color: var(--nr-faint); } .nr .tabs button[role="tab"][aria-selected="true"] i { color: var(--nr-accent-text); } .nr .tab-content { padding-top: 2.4rem; } /* Settings / Tools grids */ .nr .Panels { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1.2rem; margin: 1.2rem 0 2.4rem; } .nr .Panel { max-width: none; } .nr .Panel a { height: 100%; box-sizing: border-box; align-content: start; justify-items: center; gap: 1.2rem; padding: 2rem 1.2rem 1.6rem; color: var(--nr-text); background-color: var(--nr-surface); border: 1px solid var(--nr-border); border-radius: var(--nr-radius-lg); box-shadow: var(--nr-shadow-xs); transition: border-color var(--nr-fast) var(--nr-ease), box-shadow var(--nr-fast) var(--nr-ease), transform var(--nr-fast) var(--nr-ease); } .nr .Panel a > span { display: grid; place-items: center; width: 4.4rem; height: 4.4rem; border-radius: var(--nr-radius-lg); background-color: var(--nr-surface-2); box-shadow: inset 0 0 0 1px var(--nr-border); } .nr .Panel:hover a, .nr .Panel a:focus-visible { border-color: var(--nr-border-strong); box-shadow: var(--nr-shadow-md); transform: translateY(-1px); } .nr .Panel:hover .PanelText, .nr .Panel:focus .PanelText { text-decoration: none; } .nr .PanelIcon { font-size: 2.2rem; color: var(--nr-text-2); } .nr .Panel:hover .PanelIcon { color: var(--nr-accent-text); } /* "Add to favorites" heart: Settings.page appends it inside the icon box, so pin it to the card corner instead of letting it sit on the icon */ .nr .Panel i.favo { top: .8rem; right: .8rem; left: auto; margin: 0; font-size: 1.4rem; line-height: 1; color: var(--nr-faint); transition: color var(--nr-fast) var(--nr-ease); } .nr .Panel i.favo:hover { color: var(--nr-accent); } .nr .PanelImg { max-width: 2.6rem; height: 2.6rem; } .nr .PanelText { font-size: 1.3rem; font-weight: 500; line-height: 1.35; text-wrap: balance; } /* Definition-list forms */ .nr dl { padding: .8rem 0; } @media (min-width: 769px) { .nr dl { gap: 1.4rem 2.4rem; } } .nr dt { font-weight: 500; color: var(--nr-text-2); } .nr dd { color: var(--nr-text); } .nr .input-instructions { font-style: normal; font-size: 1.25rem; color: var(--nr-muted); opacity: 1; } /* Inline help blocks and notes */ .nr blockquote { max-width: 100ch; margin: 1.2rem 0; padding: 1.2rem 1.6rem; color: var(--nr-text-2); background-color: var(--nr-info-soft); border: 1px solid color-mix(in srgb, var(--nr-info) 22%, transparent); border-radius: var(--nr-radius); font-size: 1.3rem; line-height: 1.6; } .nr blockquote a { color: var(--nr-accent-text); } .nr blockquote > p:first-child { margin-top: 0; } .nr blockquote > p:last-child { margin-bottom: 0; } /* Inline help sits under the field it explains (same column as
) */ @media (min-width: 769px) { .nr .content blockquote.inline_help { margin-left: calc(35% + 2.4rem); max-width: 72ch; } } .nr .shade { background-color: var(--nr-surface-2); border: 1px solid var(--nr-border); border-radius: var(--nr-radius-lg); } .nr div.up { border-color: var(--nr-border); border-radius: var(--nr-radius); } /* VMs > Edit: edit.css colours the CPU pinning boxes and the icon chooser from :root and .Theme--white:root (0,2,0), so html.nr:root is needed */ html.nr:root { --cpu-box-background: var(--nr-surface-2); --cpu-box-border: var(--nr-border); --add-vm-background: var(--nr-surface); --add-vm-border: var(--nr-border); } .nr :is(.cpu-box, .cpu-box-pair) { border-radius: var(--nr-radius); } .nr :is(.cpu-label, .cpu-label-dual) { color: var(--nr-text-2); font-variant-numeric: tabular-nums; } .nr .cpu-core-indicator-p { color: var(--nr-info); } .nr .cpu-core-indicator-e { color: var(--nr-muted); } /* vDisk path next to "Auto": a fixed --gray-300, unreadable in light mode */ .nr #vmform .disk_preview { color: var(--nr-muted); } /* folder.view folder editor (Docker/VMs > Add Folder): its options sit in a bulleted list, which indents their labels, and its switches and colour reset button live in dd elements that Unraid 7.3 lays out as a column (the On/Off label wraps, the button stretches). Its row borders are an inline copy of the text colour. */ .nr div.canvas > form:has(input[name="preview_border_color"]) ul { margin: 0; padding: 0; list-style: none; } .nr div.canvas > form:has(input[name="preview_border_color"]) dd:has(> .switch-button-background, > input[type="color"]) { flex-direction: row; flex-wrap: wrap; align-items: center; } .nr div.canvas > form:has(input[name="preview_border_color"]) dd > input[type="color"] + button { top: 0 !important; margin-left: .8rem !important; } .nr div.canvas > form:has(input[name="preview_border_color"]) table.sortable tr.item { border-color: var(--nr-border) !important; } .nr div.canvas > form:has(input[name="preview_border_color"]) table.sortable :is(th, td) { padding: .6rem 1.2rem; } .nr div.canvas > form:has(input[name="preview_border_color"]) table.sortable td:first-child img { width: 2.4rem; height: 2.4rem; margin-right: 1rem; vertical-align: middle; border-radius: var(--nr-radius-sm); } /* 7. Controls --------------------------------------------------------- */ /* Buttons: one neutral style. Only the real primary actions (Apply, Start, save share/user, confirm in dialogs) get the brand fill. */ .nr :is(input[type="button"], input[type="reset"], input[type="submit"], button, a.button):where(:not(.unapi *)):not([role="tab"], [role="switch"]) { font-family: var(--nr-font); font-size: 1.3rem; font-weight: 500; letter-spacing: 0; text-transform: none; line-height: 1; min-width: 0; height: var(--nr-control-h); padding: 0 1.4rem; color: var(--nr-text); background: var(--nr-surface); border: 1px solid var(--nr-border-strong); border-radius: var(--nr-radius); box-shadow: var(--nr-shadow-xs); box-sizing: border-box; transition: background-color var(--nr-fast) var(--nr-ease), border-color var(--nr-fast) var(--nr-ease), box-shadow var(--nr-fast) var(--nr-ease), filter var(--nr-fast) var(--nr-ease); } .nr a.button:where(:not(.unapi *)) { display: inline-flex; align-items: center; } .nr :is(input[type="button"], input[type="reset"], input[type="submit"], button, a.button):where(:not(.unapi *)):not([role="tab"], [role="switch"]):hover { color: var(--nr-text); background: var(--nr-surface-2); border-color: var(--nr-faint); text-decoration: none; } .nr :is(input[type="button"], input[type="reset"], input[type="submit"], button, a.button):where(:not(.unapi *)):not([role="tab"], [role="switch"]):active { background: var(--nr-surface-3); box-shadow: none; } .nr :is(input[type="button"], input[type="reset"], input[type="submit"], button, a.button):where(:not(.unapi *)):not([role="tab"], [role="switch"]):focus-visible { outline: none; border-color: var(--nr-accent); box-shadow: var(--nr-focus-ring); } .nr :is(input[type="submit"]:is([name="#apply"], [name="cmdStart"], #cmdStart, [name^="change"], [name="cmdEditShare"], [name="cmdUserEdit"]), .sweet-alert button.confirm, .ui-dialog-buttonset button:first-child):where(:not(.unapi *)) { color: #fff; font-weight: 600; background: var(--nr-primary-gradient); border-color: transparent; box-shadow: 0 1px 2px rgba(180, 40, 20, .25), inset 0 1px 0 rgba(255, 255, 255, .16); } .nr :is(input[type="submit"]:is([name="#apply"], [name="cmdStart"], #cmdStart, [name^="change"], [name="cmdEditShare"], [name="cmdUserEdit"]), .sweet-alert button.confirm, .ui-dialog-buttonset button:first-child):where(:not(.unapi *)):hover { color: #fff; background: var(--nr-primary-gradient) !important; border-color: transparent; filter: brightness(1.06); } .nr :is(input[type="button"], input[type="reset"], input[type="submit"], button, a.button):where(:not(.unapi *)):not([role="tab"], [role="switch"]):is([disabled], [disabled]:hover, [disabled]:active) { color: var(--nr-faint) !important; background: var(--nr-surface-2) !important; border-color: var(--nr-border) !important; box-shadow: none; filter: none; opacity: 1; cursor: not-allowed; } /* Text inputs */ .nr :is(input[type="text"], input[type="password"], input[type="number"], input[type="url"], input[type="email"], input[type="date"], input[type="search"], input[type="file"], textarea, .textarea):where(:not(.unapi *)) { font-family: var(--nr-font); font-size: 1.35rem; color: var(--nr-text); min-height: var(--nr-control-h); line-height: 2rem; padding: .6rem 1rem; background-color: var(--nr-surface); border: 1px solid var(--nr-border-strong); border-radius: var(--nr-radius); box-shadow: var(--nr-shadow-xs); transition: border-color var(--nr-fast) var(--nr-ease), box-shadow var(--nr-fast) var(--nr-ease); } .nr :is(input[type="text"], input[type="password"], input[type="number"], input[type="url"], input[type="email"], input[type="date"], input[type="search"], textarea):where(:not(.unapi *)):hover { border-color: var(--nr-faint); } .nr :is(input[type="text"], input[type="password"], input[type="number"], input[type="url"], input[type="email"], input[type="date"], input[type="search"], input[type="file"], textarea, select):where(:not(.unapi *)):focus { background-color: var(--nr-surface); border-color: var(--nr-accent); box-shadow: var(--nr-focus-ring); outline: none; } .nr textarea:where(:not(.unapi *)) { line-height: 1.5; padding: .8rem 1rem; } .nr :is(input, textarea, select)[disabled]:where(:not(.unapi *)) { color: var(--nr-muted); background-color: var(--nr-surface-2); border-color: var(--nr-border); box-shadow: none; opacity: 1; cursor: not-allowed; } .nr input::placeholder, .nr textarea::placeholder { color: var(--nr-faint); opacity: 1; } .nr input::-webkit-input-placeholder { color: var(--nr-faint); } /* Docker autostart delay: a tiny inline field, keep it compact. Its "wait" line floats right inline (!important), which left it off the switch above: start it under the switch instead */ .nr #docker_containers span[id$="-wait"] { float: none !important; display: inline-flex; align-items: center; gap: .6rem; margin-top: .6rem; font-size: 1.25rem; color: var(--nr-muted); } .nr #docker_containers input.wait { width: 4.4rem; min-height: 0; height: 2.6rem; margin: 0; padding: 0 .4rem; text-align: center; box-shadow: none; } /* Selects get a real chevron instead of the two-triangle trick */ .nr select:where(:not(.unapi *)) { font-family: var(--nr-font); font-size: 1.35rem; color: var(--nr-text); height: var(--nr-control-h); padding: 0 3rem 0 1rem; background-color: var(--nr-surface); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238f8a85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-position: right .8rem center; background-size: 1.6rem 1.6rem; background-repeat: no-repeat; border: 1px solid var(--nr-border-strong); border-radius: var(--nr-radius); box-shadow: var(--nr-shadow-xs); transition: border-color var(--nr-fast) var(--nr-ease), box-shadow var(--nr-fast) var(--nr-ease); } .nr select:where(:not(.unapi *)):hover { border-color: var(--nr-faint); } .nr select:where(:not(.unapi *)) option { color: var(--nr-text); background-color: var(--nr-surface); } /* Compact inline selects used as filters inside headers and tiles */ .nr :is(select[name="enter_view"], select[name="enter_share"], select[name="port_select"], select#cpuline, select#netline, table.dashboard select) { height: 2.6rem; font-size: 1.25rem; padding: 0 2.6rem 0 .8rem; background-position: right .5rem center; box-shadow: none; } .nr input[type="checkbox"], .nr input[type="radio"] { accent-color: var(--nr-accent); width: 1.6rem; height: 1.6rem; } .nr span.checkmark { background-color: var(--nr-surface); box-shadow: inset 0 0 0 1px var(--nr-border-strong); } .nr label.checkbox input:checked ~ .checkmark { background-color: var(--nr-accent); box-shadow: inset 0 0 0 4px var(--nr-surface), inset 0 0 0 5px var(--nr-accent); } /* jQuery FileTree (Install Plugin, path pickers): Font Awesome icons instead of the stock 16px PNGs, rounded hover rows */ .nr ul.jqueryFileTree { font-family: var(--nr-font); font-size: 1.3rem; line-height: 2.6rem; } .nr ul.jqueryFileTree li { position: relative; padding-left: 2.4rem; } .nr .jqueryFileTree li:is(.directory, .expanded, .file, .wait, [class*="ext_"]) { background: none; } .nr ul.jqueryFileTree li::before { position: absolute; top: 0; left: .2rem; width: 1.8rem; font-family: FontAwesome; font-size: 1.4rem; text-align: center; color: var(--nr-muted); content: "\f016"; /* file-o */ } .nr ul.jqueryFileTree li.directory::before { color: var(--nr-accent-text); content: "\f07b"; /* folder */ } .nr ul.jqueryFileTree li.expanded::before { content: "\f07c"; /* folder-open */ } .nr ul.jqueryFileTree li.ext_plg::before { color: var(--nr-accent-text); content: "\f12e"; /* puzzle-piece */ } .nr ul.jqueryFileTree li:is(.ext_img, .ext_qcow, .ext_qcow2)::before { content: "\f0a0"; /* hdd-o */ } .nr ul.jqueryFileTree li.ext_iso::before { content: "\f192"; /* dot-circle-o */ } .nr ul.jqueryFileTree li.wait::before { content: "\f110"; /* spinner */ animation: nr-spin 1s linear infinite; } @keyframes nr-spin { to { transform: rotate(360deg); } } .nr ul.jqueryFileTree a { padding: 0 .6rem; color: var(--nr-text-2); border-radius: var(--nr-radius-sm); } .nr ul.jqueryFileTree a:hover { color: var(--nr-text); background: var(--nr-surface-3); } /* select2 (Tailscale and plugin pages): same look as a native select */ .nr .select2-container--default .select2-selection--single, .nr .select2-container--default .select2-selection--multiple { min-height: var(--nr-control-h); background-color: var(--nr-surface); border: 1px solid var(--nr-border-strong); border-radius: var(--nr-radius); } .nr .select2-container--default .select2-selection--single { height: var(--nr-control-h); } .nr .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--nr-text); line-height: calc(var(--nr-control-h) - 2px); padding-left: 1rem; } .nr .select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--nr-faint); } .nr .select2-container--default .select2-selection--single .select2-selection__arrow { height: calc(var(--nr-control-h) - 2px); right: .4rem; } .nr .select2-container--default .select2-selection--single .select2-selection__arrow b { border-top-color: var(--nr-muted); } .nr .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { border-bottom-color: var(--nr-muted); } .nr .select2-container--default.select2-container--focus .select2-selection, .nr .select2-container--default.select2-container--open .select2-selection { border-color: var(--nr-accent); box-shadow: var(--nr-focus-ring); } .nr .select2-container--default .select2-selection--multiple .select2-selection__choice { color: var(--nr-text); background-color: var(--nr-surface-3); border: 1px solid var(--nr-border); border-radius: var(--nr-radius-sm); } .nr .select2-dropdown { color: var(--nr-text); background-color: var(--nr-surface); border: 1px solid var(--nr-border); border-radius: var(--nr-radius); box-shadow: var(--nr-shadow-md); overflow: hidden; } .nr .select2-container--default .select2-search--dropdown .select2-search__field { color: var(--nr-text); background-color: var(--nr-surface); border: 1px solid var(--nr-border-strong); border-radius: var(--nr-radius-sm); } .nr .select2-container--default .select2-results__option--highlighted[aria-selected], .nr .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { color: var(--nr-text); background-color: var(--nr-surface-3); } .nr .select2-container--default .select2-results__option[aria-selected="true"], .nr .select2-container--default .select2-results__option--selected { color: var(--nr-accent-text); background-color: var(--nr-accent-soft); } /* jquery.switchbutton -> pill toggle. The plugin JS writes a 25x11 size and the knob position inline (and animates `left`), so the geometry needs !important to win; the knob slides with a CSS transition instead. */ .nr .switch-button-background { box-sizing: border-box; width: 3.2rem !important; height: 1.8rem !important; margin: .3rem .8rem 0 0 !important; background-color: var(--nr-border-strong); border: 0; border-radius: 999px; transition: background-color var(--nr-fast) var(--nr-ease); } .nr .switch-button-background.checked { background-color: var(--nr-accent); } /* labels_placement "left" puts the label first (Unassigned Devices) */ .nr .switch-button-label + .switch-button-background { margin-left: .6rem !important; } .nr .switch-button-button { width: 1.4rem !important; height: 1.4rem !important; top: .2rem !important; left: .2rem !important; background-color: #fff; border: 0; border-radius: 999px; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: left var(--nr-fast) var(--nr-ease); } .nr .switch-button-background.checked .switch-button-button { left: 1.6rem !important; } .nr .switch-button-label { margin-top: 0 !important; line-height: 2.4rem; font-size: 1.2rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--nr-muted); } .nr .switch-button-label.on { color: var(--nr-text); } /* 8. Tables & usage meters -------------------------------------------- */ /* Docker ports/volumes: readmore.js collapses these to a fixed 32px, i.e. two 16px lines; a taller line-height hides the second line */ .nr .docker_readmore { line-height: 1.6rem; } /* Docker container names read as text, like the Dashboard tiles; an update (stock blue-text on the name, folder.view's orange-text on the name and its link) takes the accent, as on hover */ .nr #docker_containers .appname a.exec { color: var(--nr-text); } .nr #docker_containers .appname:is(.blue-text, .orange-text) a.exec, .nr #docker_containers .appname a.exec.orange-text, .nr #docker_containers .appname a.exec:hover { color: var(--nr-accent-text); } /* folder.view folder names sit outside .appname; folder.view does not mark them, so a folder with an update is told by its "update ready" pill */ .nr #docker_containers a.exec.folder-appname { color: var(--nr-text); } .nr #docker_containers tr.folder:has(> td.updatecolumn .fa-flash) a.exec.folder-appname, .nr #docker_containers a.exec.folder-appname:hover { color: var(--nr-accent-text); } /* folder.view rows: the Dashboard card padding on span.outer (section 9) widens the folder name, so the expand button (float: right) wrapped below it, and made the preview items taller than their clipped box */ .nr #docker_containers tr.folder .folder-name-sub { display: flex; align-items: center; gap: .8rem; } .nr #docker_containers tr.folder .folder-outer { flex: 1 1 auto; min-width: 0; margin: 0; } .nr #docker_containers tr.folder .folder-dropdown { flex: none; float: none; margin: 0; } .nr #docker_containers tr.folder .folder-preview span.outer { margin: 0 .4rem 0 0; padding: .2rem .6rem .2rem .2rem; } /* Version column: status in neutral text with a coloured icon, links (force update, latest) muted. "not available" keeps the warning colour. */ .nr #docker_containers .updatecolumn { color: var(--nr-muted); } .nr #docker_containers .updatecolumn > .green-text { color: var(--nr-text-2); } .nr #docker_containers .updatecolumn > .green-text > .fa { color: var(--nr-success); } .nr #docker_containers .updatecolumn a.exec { color: var(--nr-muted); text-decoration: none; } .nr #docker_containers .updatecolumn a.exec:hover { color: var(--nr-text); } /* An update: "update ready" / "rebuild ready" (flash icon) as an accent pill, pulled back by its padding so the icon lines up with the other rows; "apply update" as an accent link */ .nr #docker_containers .updatecolumn .orange-text:has(> .fa-flash) { display: inline-flex; align-items: center; gap: .2rem; margin-left: -.5rem; padding: .1rem .8rem .1rem .5rem; font-size: 1.2rem; font-weight: 500; line-height: 1.8rem; color: var(--nr-accent-text); background-color: var(--nr-accent-soft); border-radius: 999px; } .nr #docker_containers .updatecolumn:has(.fa-flash) > a.exec { color: var(--nr-accent-text); cursor: pointer; } .nr #docker_containers .updatecolumn:has(.fa-flash) > a.exec:hover { color: var(--nr-text); } /* CPU & Memory load column (advanced view): the Basic View toggle writes an inline display: block on the th/td, which takes them out of the table layout (content jumps to the top of the row); !important beats the inline style. Percentage and bar on one line, as on the Dashboard, memory below */ .nr #docker_containers :is(th, td).advanced[style*="block"] { display: table-cell !important; } .nr #docker_containers td.advanced > span[class^="cpu-"] { display: inline-block; min-width: 4.6rem; color: var(--nr-text-2); font-variant-numeric: tabular-nums; } .nr #docker_containers td.advanced > .usage-disk.mm { display: inline-block; width: 8rem; height: 4px; margin: 0 0 0 .6rem; vertical-align: middle; } .nr #docker_containers td.advanced > .usage-disk.mm > span:first-child { height: 4px; } .nr #docker_containers td.advanced > span[class^="mem-"] { font-size: 1.25rem; color: var(--nr-muted); font-variant-numeric: tabular-nums; } /* VMs: the name and the vCPU count (pinning tooltip) read as text too */ .nr #kvm_table :is(td.vm-name .inner > a, a[class^="vcpu-"]) { color: var(--nr-text); } .nr #kvm_table :is(td.vm-name .inner > a, a[class^="vcpu-"]):hover { color: var(--nr-accent-text); } /* Our own icon in the Plugins list: an app-style tile whose orange follows the accent (--nr-logo-filter, set by nr.js for a custom accent) */ .nr img.list[src*="/neoraid/images/neoraid.png"] { border-radius: var(--nr-radius); filter: var(--nr-logo-filter, none); } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear):where(:not(.unapi *)) { border-collapse: separate; border-spacing: 0; border: 1px solid var(--nr-border); border-radius: var(--nr-radius-lg); background-color: var(--nr-surface); box-shadow: var(--nr-shadow-xs); font-variant-numeric: tabular-nums; } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) thead :is(td, th) { height: 3.6rem; line-height: 1.4; padding: 0 1.2rem; font-size: 1.1rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--nr-muted); background-color: var(--nr-surface-2); border-bottom: 1px solid var(--nr-border); } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) thead tr:first-child > :first-child { border-top-left-radius: calc(var(--nr-radius-lg) - 1px); } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) thead tr:first-child > :last-child { border-top-right-radius: calc(var(--nr-radius-lg) - 1px); } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) thead tr { border: 0; } /* Plugin tables (Unassigned Devices) colour the header and stripe rows with selectors stronger than the base rule above; outrank them explicitly */ .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) thead tr:first-child > :is(td, th) { color: var(--nr-muted); background-color: var(--nr-surface-2); } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr:nth-child(n) { background-color: transparent; } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody td { height: var(--nr-row-h); line-height: 2rem; padding: .6rem 1.2rem; border-bottom: 1px solid var(--nr-border); vertical-align: middle; } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr:last-child > td { border-bottom: 0; } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr:last-child > td:first-child { border-bottom-left-radius: calc(var(--nr-radius-lg) - 1px); } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr:last-child > td:last-child { border-bottom-right-radius: calc(var(--nr-radius-lg) - 1px); } /* No zebra striping; hover carries the row */ .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr, .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr:nth-child(even) { background-color: transparent; } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr:not(.tr_last):hover > td { background-color: var(--nr-surface-2); } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr.tr_last { border: 0; background-color: var(--nr-surface-2); } .nr :is(table.unraid, table.tablesorter, table.usb_mounts, table.samba_mounts, table.usb_absent, table.preclear) tbody tr.tr_last > td { font-weight: 600; border-top: 1px solid var(--nr-border); background-color: var(--nr-surface-2); } .nr table.disk_status tr > td:last-child { padding-right: 1.2rem; } .nr table.unraid tbody tr.alert, .nr table.unraid tbody tr.alert td { color: var(--nr-danger); } .nr table.unraid tbody tr.warn, .nr table.unraid tbody tr.warn td { color: var(--nr-warning); } .nr i.orb { font-size: 1rem; margin: 0 1rem 0 .2rem; } .nr a.view { color: var(--nr-muted); } .nr .TableContainer, .nr .TableContainer--no-min-width { border-radius: var(--nr-radius-lg); } /* Meters: label on top, 4px track underneath */ .nr .usage-disk:not(.sys):not(.mm) { height: 2.4rem; background: linear-gradient(var(--nr-surface-3), var(--nr-surface-3)) left bottom / 100% 4px no-repeat; border-radius: 0; } .nr .usage-disk:not(.sys):not(.mm) > span:first-child { top: auto; bottom: 0; height: 4px; border-radius: 4px; } .nr .usage-disk:not(.sys):not(.mm) > span:last-child { top: 0; display: block; line-height: 2rem; padding-right: 0; text-align: left; } .nr .usage-disk > span:first-child { background-color: var(--nr-accent); } .nr .greenbar { background: var(--nr-meter-ok); } .nr .orangebar { background: var(--nr-meter-warn); } .nr .redbar { background: var(--nr-meter-crit); } .nr .graybar { background: var(--nr-faint); } .nr .usage-disk.sys { height: 6px; border-radius: 999px; background-color: var(--nr-surface-3); overflow: hidden; } /* Stock layout pulls the bar up over the number with a negative margin, which clips the percentage. Put them on one line instead, whatever width class the wrapper has (w18 disks, w36/w72 CPU, w44 GPU, head_bar, ...). */ .nr span:has(> .usage-disk.sys) { display: flex; align-items: center; gap: .8rem; box-sizing: border-box; padding-right: 1.6rem; } .nr span.head_bar:has(> .usage-disk.sys) { display: inline-flex; width: 18rem; padding-right: 0; vertical-align: middle; } .nr span:has(> .usage-disk.sys) > span.load { flex: 0 0 3.8rem; width: 3.8rem; text-align: right; font-size: 1.2rem; line-height: 2.2rem; } .nr span:has(> .usage-disk.sys) > .usage-disk.sys { flex: 1 1 auto; min-width: 2rem; margin: 0; } /* Disk utilization columns on the Dashboard are narrow (18%) */ .nr span.w18:has(> .usage-disk.sys) { gap: .6rem; padding-right: .8rem; } .nr span.w18:has(> .usage-disk.sys) > span.load { flex-basis: 3.4rem; width: 3.4rem; } .nr .usage-disk.sys > span { height: 6px; border-radius: 999px; } .nr .usage-disk.mm { border-radius: 999px; background-color: var(--nr-surface-3); } .nr .usage-disk.mm > span:first-child { border-radius: 999px; } /* Generic usage bar (outside the nav) */ .nr .usage-bar { border-radius: 999px; background-color: var(--nr-surface-3); box-shadow: inset 0 0 0 1px var(--nr-border); } .nr .usage-bar > span { border-radius: 999px; box-shadow: none; } /* System log colour coding (Tools > System Log, log viewers): the stock pastel line backgrounds become the status tokens' soft tints */ .nr pre > span:is(.system, .error, .array, .warn, .login), .nr span.label:is(.system, .error, .array, .warn, .login) { border-radius: 3px; } .nr :is(pre > span, span.label).system { color: var(--nr-text); background-color: var(--nr-info-soft); } .nr :is(pre > span, span.label).error { color: var(--nr-danger); background-color: var(--nr-danger-soft); } .nr :is(pre > span, span.label).array { color: var(--nr-text); background-color: var(--nr-success-soft); } .nr :is(pre > span, span.label).warn { color: var(--nr-text); background-color: var(--nr-warning-soft); } .nr :is(pre > span, span.label).login { color: var(--nr-text); background-color: var(--nr-accent-soft); } .nr span.label.error label { color: inherit; } /* Users > avatar drop zone */ .nr #dropbox { background-color: var(--nr-surface-2); border: 1px dashed var(--nr-border-strong); border-radius: var(--nr-radius-lg); } /* Users: the stock avatar is a dark silhouette on a transparent background. Give it a round plate; in dark mode invert it, so the silhouette turns light. The filter inverts the plate too: #d0d1d3 lands near surface-3. */ .nr img.picture[src$="/webGui/images/user.png"] { background-color: var(--nr-surface-3); border-radius: 999px; } .nr.Theme--black:not(.nr-light) img.picture[src$="/webGui/images/user.png"], .nr.Theme--gray:not(.nr-light) img.picture[src$="/webGui/images/user.png"], .nr.nr-dark img.picture[src$="/webGui/images/user.png"] { background-color: #d0d1d3; filter: invert(1) brightness(.9); } /* 9. Dashboard -------------------------------------------------------- */ .nr #cpuchart, .nr #netchart { display: block; } .nr div.frame div.grid { gap: 1.6rem; align-items: start; } /* Stock columns are 1fr, so the widest tile content (CPU rows) steals width from the others; minmax(0, 1fr) keeps them equal as in the stock layout. */ @media (min-width: 768px) { .nr div.frame div.grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 1600px) { .nr div.frame div.grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } } .nr div.frame div.grid > .tile { min-width: 0; } /* Each of a dashboard table is one card */ .nr table.dashboard { display: flex; flex-direction: column; gap: 1.6rem; background: transparent; border: 0; } .nr table.dashboard > thead.stopgap { display: none; } .nr table.dashboard > tbody { display: block; background-color: var(--nr-surface); border: 1px solid var(--nr-border); border-radius: var(--nr-radius-lg); box-shadow: var(--nr-shadow-sm); padding: .4rem 0 1.2rem; overflow: hidden; } .nr table.dashboard > tbody > tr { display: block; background: transparent; } .nr table.dashboard > tbody > tr > td { display: flow-root; /* contains the floated w26/w18/... columns like a table cell did */ height: auto; line-height: 2.2rem; padding: .3rem 1.8rem; font-size: 1.3rem; font-variant-numeric: tabular-nums; } /* Header row of a card */ .nr table.dashboard tr:first-child > td { padding: 1.4rem 1.8rem 1rem; font-size: 1.3rem; font-weight: 400; } .nr table.dashboard tr:last-child > td, .nr table.dashboard tr.last > td { padding-bottom: .6rem; } .nr .tile-header { align-items: center; } .nr .tile-header-left { align-items: center; flex-wrap: nowrap; gap: 1.2rem; min-width: 0; } .nr .tile-header-left > i.f32, .nr .tile-header-left > i[class^="icon-"] { flex-shrink: 0; display: inline-grid; place-items: center; width: 3.6rem; height: 3.6rem; margin: 0; font-size: 1.8rem !important; color: var(--nr-accent-text); background-color: var(--nr-accent-soft); border-radius: 1rem; } .nr table.dashboard td div.section { font-size: 1.25rem; font-weight: 400; color: var(--nr-muted); min-width: 0; } .nr table.dashboard td div.section span { color: var(--nr-muted); } .nr .tile-header-main { font-size: 1.5rem; font-weight: 600; line-height: 1.3; letter-spacing: -.01em; text-transform: none; color: var(--nr-text); margin: 0 0 .1rem; } .nr .tile-header-right { align-items: center; gap: .4rem; } .nr .tile-header-right-controls { gap: .2rem; } .nr table.dashboard .control:not(.tile), .nr .tile-header-right-controls i:not(.tile) { display: inline-grid; place-items: center; width: 3rem; height: 3rem; padding: 0; font-size: 1.5rem !important; color: var(--nr-muted); background: transparent; border-radius: var(--nr-radius); opacity: 1; transition: background-color var(--nr-fast) var(--nr-ease), color var(--nr-fast) var(--nr-ease); } .nr table.dashboard .control:hover, .nr .tile-header-right-controls a:hover i { color: var(--nr-text); background-color: var(--nr-surface-3); opacity: 1; } /* Start/stop, sleep, reboot, power */ .nr .tile-ctrl { gap: .2rem !important; height: 2rem; margin-right: .4rem; padding-right: .6rem; border-right: 1px solid var(--nr-border); } .nr table.dashboard div.rightside { margin-top: .8rem; } .nr .tile-ctrl > span.fa { display: inline-grid; place-items: center; width: 3rem; height: 3rem; font-size: 1.7rem !important; color: var(--nr-muted); border-radius: var(--nr-radius); transition: background-color var(--nr-fast) var(--nr-ease), color var(--nr-fast) var(--nr-ease); } .nr .tile-ctrl > span.fa.hand:hover { color: var(--nr-text); background-color: var(--nr-surface-3); } .nr .tile-ctrl > span.fa-power-off.hand:hover { color: var(--nr-danger); background-color: var(--nr-danger-soft); } .nr span.header, .nr tr.header, .nr table.dashboard tr.header > td { font-size: 1.05rem !important; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--nr-muted); } .nr table.dashboard tr.header > td { padding-top: 1rem; padding-bottom: .4rem; margin-top: .4rem; border-top: 1px solid var(--nr-border); } .nr #current_time { font-size: 3.4rem; font-weight: 600; letter-spacing: -.025em; line-height: 1.1; font-variant-numeric: tabular-nums; } .nr #current_date { font-size: 1.3rem; color: var(--nr-muted); } .nr span.ampm { font-size: 1.6rem; font-weight: 500; color: var(--nr-muted); margin-left: .2rem; } .nr i.ups, .nr i.indent { color: var(--nr-faint); } .nr table.dashboard span.load { color: var(--nr-text-2); } /* DashStats' fontColor() writes the load colour inline: stock green under the thresholds, orange and red above them. Keep the signal, on tokens. */ .nr table.dashboard span.load[style*="79, 138, 16"] { color: var(--nr-text-2) !important; } .nr table.dashboard span.load[style*="230, 138, 0"] { color: var(--nr-warning) !important; } .nr table.dashboard span.load[style*="240, 0, 12"] { color: var(--nr-danger) !important; } /* System tile: memory figures, legend and usage rings */ .nr .tile-system-memory-body { gap: 2rem; align-items: center; } .nr .tile-system-memory-labels > div { line-height: 2.2rem; } .nr .tile-system-memory-labels legend { margin-bottom: .4rem; font-size: 1.1rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--nr-muted); } .nr #dynamic i.fa-circle { margin-right: .6rem; font-size: 1rem; vertical-align: middle; } .nr .tile-system-memory-charts { gap: 1.6rem 1rem; } .nr .tile-system-memory-charts > span { display: flex; flex-direction: column; align-items: center; gap: .8rem; } .nr .tile-system-memory-charts a.info { font-size: 1.2rem; font-weight: 500; color: var(--nr-muted); } /* Rings: thin track, soft glow, a slightly lit centre */ .nr div.pie { position: relative; width: 9.2rem; height: 9.2rem; margin: 0 auto; filter: drop-shadow(0 0 .8rem color-mix(in srgb, var(--nr-accent) 16%, transparent)); } .nr div.pie::after { width: calc(100% - 1.6rem); height: calc(100% - 1.6rem); background: radial-gradient(circle at 50% 30%, var(--nr-surface-2), var(--nr-surface) 70%); box-shadow: inset 0 1px 2px color-mix(in srgb, var(--nr-text) 8%, transparent); } .nr div.pie span { font-size: 1.7rem; font-weight: 650; letter-spacing: -.02em; font-variant-numeric: tabular-nums; } .nr i#mycase { color: var(--nr-text-2); } .nr table.dashboard td.none { color: var(--nr-muted); padding-top: 1.2rem; } /* Shares and Users tiles: icon in a soft badge, name in text colour */ .nr table.dashboard :is(tr.share, tr.user) > td { padding-top: .4rem; padding-bottom: .4rem; } /* Columns keep their stock widths (w26/w44/w18); only the alignment moves */ .nr table.dashboard :is(tr.share, tr.user) > td > span { vertical-align: middle; } .nr table.dashboard :is(tr.share, tr.user) span.w26 { display: inline-flex; align-items: center; gap: .8rem; box-sizing: border-box; padding-right: .8rem; } .nr table.dashboard :is(tr.share, tr.user) span.w26 > i[class^="icon-"] { display: inline-grid; flex: 0 0 auto; place-items: center; width: 2.6rem; height: 2.6rem; margin: 0; font-size: 1.4rem; color: var(--nr-accent-text); background-color: var(--nr-accent-soft); border-radius: var(--nr-radius-sm); } .nr table.dashboard :is(tr.share, tr.user) span.w26 > a, .nr table.share_status tbody td:first-child > a:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; color: var(--nr-text); text-decoration: none; } .nr table.dashboard :is(tr.share, tr.user) span.w26 > a:hover, .nr table.share_status tbody td:first-child > a:last-child:hover { color: var(--nr-accent-text); } /* Shares page: the "view" tab icon and the protection orb sit quietly before the name */ .nr table.share_status tbody td:first-child > a { vertical-align: middle; } .nr table.share_status tbody td:first-child > a.view i { color: var(--nr-muted); } /* Each app is a card: icon centred on the left, fixed-width text, three per row. VM usage cards (.vmsuse) stack their metrics, so they keep the block flow. */ .nr span.outer:not(.vmsuse) { display: flex; align-items: center; gap: .8rem; box-sizing: border-box; margin: 0 .8rem .8rem 0; padding: .6rem .8rem .6rem .6rem; border-radius: var(--nr-radius-lg); transition: background-color var(--nr-fast) var(--nr-ease); } .nr span.outer:not(.vmsuse) > span.hand { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; } .nr span.outer:not(.vmsuse) > span.hand > .img { display: block; margin: 0; } .nr span.outer:not(.vmsuse) > span.inner { flex: 0 0 12rem; width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .nr span.outer.vmsuse { box-sizing: border-box; margin: 0 .8rem .8rem 0; padding: .8rem 1rem; } .nr span.outer:hover { background-color: var(--nr-surface-2); } .nr span.outer.solid { background-color: var(--nr-surface-2); } .nr span.state { color: var(--nr-muted); font-size: 1.15rem; } .nr .dashboard-sortable { border: 2px dashed var(--nr-border-strong); border-radius: var(--nr-radius-lg); background: transparent; } /* 10. Overlays -------------------------------------------------------- */ .nr .ui-widget-overlay { background: var(--nr-overlay) !important; opacity: 1 !important; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); } .nr .ui-dialog { padding: 0 !important; border: 1px solid var(--nr-border) !important; border-radius: var(--nr-radius-xl) !important; background: var(--nr-surface) !important; box-shadow: var(--nr-shadow-lg); overflow: hidden; } .nr .ui-dialog .ui-dialog-titlebar { padding: 1.6rem 2rem; background: var(--nr-surface) !important; border: 0 !important; border-bottom: 1px solid var(--nr-border) !important; border-radius: 0 !important; color: var(--nr-text) !important; } .nr .ui-dialog .ui-dialog-title { font-family: var(--nr-font); font-size: 1.6rem; font-weight: 600; letter-spacing: -.01em; text-transform: none; } .nr .ui-dialog .ui-dialog-content { padding: 2rem; } .nr .ui-dialog .ui-dialog-buttonpane { margin: 0 !important; padding: 1.2rem 2rem !important; background: var(--nr-surface-2) !important; border-top: 1px solid var(--nr-border) !important; } .nr .sweet-overlay { background-color: var(--nr-overlay); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); } .nr .sweet-alert { font-family: var(--nr-font); background-color: var(--nr-surface); border: 1px solid var(--nr-border); border-radius: var(--nr-radius-xl); box-shadow: var(--nr-shadow-lg); padding: 2.8rem 2.8rem 2.4rem; } .nr .sweet-alert h2 { color: var(--nr-text); font-size: 2rem; font-weight: 600; letter-spacing: -.015em; } .nr .sweet-alert p { color: var(--nr-text-2); font-size: 1.4rem; line-height: 1.55; } .nr pre#swaltext, .nr pre#swalbody { background: transparent; border: 0; } /* SweetAlert 2.x (.swal-*), used by Unassigned Devices: its injected stylesheet paints a white modal with dark text */ .nr .swal-overlay { background-color: var(--nr-overlay); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); } .nr .swal-modal { font-family: var(--nr-font); color: var(--nr-text-2); background-color: var(--nr-surface); border: 1px solid var(--nr-border); border-radius: var(--nr-radius-xl); box-shadow: var(--nr-shadow-lg); } .nr .swal-title { color: var(--nr-text); font-size: 2rem; font-weight: 600; letter-spacing: -.015em; } .nr :is(.swal-text, .swal-content) { color: var(--nr-text-2); font-size: 1.4rem; line-height: 1.55; } .nr .swal-icon--info { border-color: color-mix(in srgb, var(--nr-info) 45%, transparent); } .nr .swal-icon--info::before, .nr .swal-icon--info::after { background-color: var(--nr-info); } /* The success tick is drawn by masking a ring with white pseudo-elements: paint them in the modal surface, or a white blob covers the icon */ .nr .swal-icon--success::before, .nr .swal-icon--success::after, .nr .swal-icon--success__hide-corners { background: var(--nr-surface); } .nr .swal-icon--success { border-color: var(--nr-success); } .nr .swal-icon--success__ring { border-color: color-mix(in srgb, var(--nr-success) 30%, transparent); } .nr .swal-icon--success__line { background-color: var(--nr-success); } .nr .swal-icon--warning { border-color: var(--nr-warning); } .nr :is(.swal-icon--warning__body, .swal-icon--warning__dot) { background-color: var(--nr-warning); } .nr .swal-icon--error { border-color: var(--nr-danger); } .nr .swal-icon--error__line { background-color: var(--nr-danger); } .nr .swal-button:focus { box-shadow: var(--nr-focus-ring); } /* UD's protocol picker hides its radios (appearance: none) behind the NFS / SMB images; the theme's field styles would draw them as squares */ .nr .image-radio input[type="radio"] { width: 0; height: 0; background: none; border: 0; box-shadow: none; } /* Hover tooltips (a.info > span) */ .nr a.info span { font-variant: normal; font-size: 1.25rem; line-height: 1.5; color: var(--nr-text); background-color: var(--nr-surface); border: 1px solid var(--nr-border); border-radius: var(--nr-radius); box-shadow: var(--nr-shadow-md); padding: .6rem 1rem; } .nr .tooltipster-sidetip .tooltipster-box { background: var(--nr-surface); border: 1px solid var(--nr-border); border-radius: var(--nr-radius); box-shadow: var(--nr-shadow-md); } .nr .tooltipster-sidetip .tooltipster-content { color: var(--nr-text); font-size: 1.25rem; } .nr .upgrade_notice, .nr .ca_element_notice { color: var(--nr-text); background-color: var(--nr-surface); border: 1px solid var(--nr-border); border-left: 3px solid var(--nr-warning); border-radius: var(--nr-radius-lg); box-shadow: var(--nr-shadow-lg); font-size: 1.35rem; } .nr .upgrade_notice.done { border-left-color: var(--nr-success); } .nr .upgrade_notice.alert { border-left-color: var(--nr-danger); } .nr .ui-dropdownchecklist-dropcontainer, .nr .awesomplete > ul { border: 1px solid var(--nr-border) !important; border-radius: var(--nr-radius) !important; box-shadow: var(--nr-shadow-md) !important; background: var(--nr-surface) !important; } /* Context menus (ContextJS: Docker/VM icons, device menus) */ .nr .dropdown-menu { min-width: 18rem; padding: .4rem; font-size: 1.35rem; background-color: var(--nr-surface); border: 1px solid var(--nr-border); border-radius: var(--nr-radius-lg); box-shadow: var(--nr-shadow-lg); } .nr .dropdown-menu .divider { width: auto; margin: .4rem -.4rem; background-color: var(--nr-border); border: 0; } .nr .dropdown-menu a { padding: .3rem 1.6rem .3rem .8rem; line-height: 2.4rem; color: var(--nr-text-2); border-radius: var(--nr-radius-sm); } .nr .dropdown-menu a [class*="fa-"] { color: var(--nr-muted); } .nr .dropdown-menu li > a:hover, .nr .dropdown-menu li > a:focus, .nr .dropdown-submenu:hover > a { color: var(--nr-text); background: var(--nr-surface-3); filter: none; } .nr .dropdown-menu .active > a, .nr .dropdown-menu .active > a:hover { color: var(--nr-accent-text); background: var(--nr-accent-soft); filter: none; } .nr .dropdown-menu .disabled > a, .nr .dropdown-menu .disabled > a:hover { color: var(--nr-faint); background: transparent; } .nr .nav-header { padding: .4rem .8rem; font-size: 1.1rem; font-weight: 600; letter-spacing: .05em; color: var(--nr-faint); background: transparent; text-shadow: none; } .nr .dropdown-context:before, .nr .dropdown-context-up:before { border-bottom-color: var(--nr-border); } .nr .dropdown-context:after { border-bottom-color: var(--nr-surface); } .nr .dropdown-context-up:before { border-top-color: var(--nr-border); } .nr .dropdown-context-up:after { border-top-color: var(--nr-surface); } .nr .dropdown-submenu > a:after { border-left-color: var(--nr-faint); } /* Community Applications (Apps): its theme file sets these on :root from the Unraid theme, so cards stay light in a forced dark mode; html.nr wins */ html.nr { --template-background: var(--nr-surface); --template-hover-background: var(--nr-surface-2); --template-favourite: var(--nr-surface-3); --sidebar-background: var(--nr-surface); --sidebar-text: var(--nr-text); --ca-shadow-color: color-mix(in srgb, var(--nr-accent) 30%, transparent); } .nr :is(.ca_holder, .dockerHubHolder) { border: 1px solid var(--nr-border); border-radius: var(--nr-radius-lg); box-shadow: var(--nr-shadow-xs); } /* CA picks the "Monthly spotlight" badge for the server theme; a light-theme badge on a forced-dark card gets its dark text inverted (glow stays orange) */ .nr.nr-dark img.spotlightIcon:is([src*="spotlight_white"], [src*="spotlight_azure"]) { filter: invert(1) hue-rotate(180deg); } .nr :is(.ca_holder, .dockerHubHolder):hover { border-color: var(--nr-border-strong); box-shadow: var(--nr-shadow-md); } .nr .ca_homeTemplatesHeader { font-size: 1.8rem; font-weight: 600; letter-spacing: -.01em; color: var(--nr-text); } .nr .ca_homeTemplatesLine2 { font-size: 1.35rem; color: var(--nr-muted); } /* CA sets the "Show more" colour with !important (--unraid-66-color, the raw orange, 2:1 on the light background) */ .nr .homeMore { font-size: 1.15rem; font-weight: 600; letter-spacing: .04em; color: var(--nr-accent-text) !important; } /* Sidebar categories: pill on hover. No negative margin to line the text up: .ca_display_area clips overflow and would cut the pill's left side. */ .nr .caMenuItem { padding: .2rem .8rem; border-radius: var(--nr-radius); transition: background-color var(--nr-fast) var(--nr-ease), color var(--nr-fast) var(--nr-ease); } .nr .caMenuItem.caMenuEnabled:hover { color: var(--nr-text); background-color: var(--nr-surface-3); } /* Info / Support / Install on the cards: the theme's neutral pill. CA forces white text with !important (made for its dark pill). */ .nr .caButton { color: var(--nr-text-2) !important; background: var(--nr-surface-3); border: 1px solid var(--nr-border); border-radius: 999px; font-weight: 500; } .nr .caButton:hover { color: var(--nr-text) !important; background: var(--nr-border-strong); } /* App popup description boxes share the dark pill styling in CA */ .nr :is(.popupDescription, .popupRepoDescription) { color: var(--nr-text-2) !important; background: var(--nr-surface-2); border: 1px solid var(--nr-border); border-radius: var(--nr-radius-lg); } .nr :is(.popupDescription, .popupRepoDescription) * { color: inherit; } /* Popup buttons (Install, Support, Pin, Close) wrap their label in a span/a */ .nr .caButton :is(span, a, i) { color: inherit !important; } /* The search bar is sticky under the menu; CA assumes the stock 40px menu */ .nr .searchAreaHolder { padding: 1rem 0; background-color: var(--nr-bg); } .nr.Theme--nav-top .searchAreaHolder { top: 4.9rem; } .nr #searchBox { height: var(--nr-control-h); padding: 0 1rem; color: var(--nr-text); background-color: var(--nr-surface); border: 1px solid var(--nr-border-strong); border-right: 0; border-radius: var(--nr-radius) 0 0 var(--nr-radius); } .nr #searchBox::placeholder { color: var(--nr-faint); } .nr #searchBox:focus { border-color: var(--nr-accent); outline: 0; } /* Field and button on one row; stock puts the button inline on the baseline and pulls it 10px left over the field */ .nr #searchFilter { display: flex; align-items: flex-start; } .nr .searchSubmit { left: 0; display: inline-flex; align-items: center; justify-content: center; width: 3.6rem; min-width: 3.6rem; margin: 0; padding: 0; box-sizing: border-box; height: var(--nr-control-h); color: var(--nr-muted); background-color: var(--nr-surface); border: 1px solid var(--nr-border-strong); border-left: 0; border-radius: 0 var(--nr-radius) var(--nr-radius) 0; } /* ZFS Master (Main): its bar is pulled up 45px (with its own stronger rule) to sit on the section title, which is 40px here (28px with the icon buttons + 12px margin); the refresh time follows the title. The bar covers the whole title row: let clicks through to the title's own toggle on the right, leave room for it, and keep gear + refresh together */ .nr #zfs-master-title { margin-top: -4rem !important; box-sizing: border-box; gap: .4rem; padding-right: 3.2rem; /* the title's own 28px toggle + the same gap */ pointer-events: none; } .nr #zfs-master-title .zfs_bar_button { display: inline-flex; width: auto; margin: 0; padding: 0; } .nr #zfs-master-title > * { pointer-events: auto; } .nr #zfs-master-title .zfs_bar_text { margin-right: auto; padding-left: 13rem; } .nr #zfsm-last-refresh { display: inline-flex; align-items: center; height: 2.2rem; padding: 0 .8rem; font-size: 1.15rem; font-style: normal; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--nr-muted); background-color: var(--nr-surface-2); border: 1px solid var(--nr-border); border-radius: 999px; } /* Dataset rows are dense in the stock layout: compact rows, small buttons */ .nr table.zfs_table tbody td { height: 3.6rem; padding-top: .3rem; padding-bottom: .3rem; } .nr table.zfs_table tbody :is(button, input[type="button"], input[type="submit"]) { height: 2.6rem; min-width: 0; padding: 0 1rem; font-size: 1.2rem; } /* Unassigned Devices title bar: gear, refresh and the three switches on one row */ .nr .rightTitleUD { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .4rem 1.2rem; } .nr .rightTitleUD .ud_titleFix { display: inline-flex; align-items: center; margin: 0; } /* Right edge in line with the title icons above */ .nr .rightTitleUD .switch-button-background { margin-right: 0 !important; } /* Actions in a section title (Main: toggle reads/writes, ZFS Master, UD): the same square icon buttons as the Dashboard tile controls */ .nr div.title span.right a:has(> i:only-child), .nr .zfs_bar_button > a, .nr .rightTitleUD .ud_titleFix > a.info:has(> i.fa) { display: inline-grid; place-items: center; width: 2.8rem; height: 2.8rem; color: var(--nr-muted); text-decoration: none; border-radius: var(--nr-radius); transition: color var(--nr-fast) var(--nr-ease), background-color var(--nr-fast) var(--nr-ease); } .nr div.title span.right a:has(> i:only-child):hover, .nr .zfs_bar_button > a:hover, .nr .rightTitleUD .ud_titleFix > a.info:has(> i.fa):hover { color: var(--nr-text); background-color: var(--nr-surface-3); } .nr div.title span.right a:has(> i:only-child) > i, .nr .zfs_bar_button > a > i, .nr .rightTitleUD .ud_titleFix > a.info > i.fa { margin: 0; font-size: 1.4rem; color: inherit; } /* Row actions in tables (Unassigned Devices Remove / Settings, and the same links wherever they appear): bordered icon buttons. Only action icons: status icons (orbs, hearts, folders) in the same kind of link stay plain. UD's .underline-icon links (pencil + mount point name) carry visible text and are styled below. */ .nr table td > a:is(.info, .exec):not(.underline-icon):has(> i:is(.fa-remove, .fa-times, .fa-trash, .fa-trash-o, .fa-gear, .fa-gears, .fa-cog, .fa-cogs, .fa-wrench, .fa-pencil, .fa-edit, .fa-sliders)) { display: inline-grid; place-items: center; width: 2.8rem; height: 2.8rem; color: var(--nr-muted); text-decoration: none; background-color: var(--nr-surface); border: 1px solid var(--nr-border-strong); border-radius: var(--nr-radius); transition: color var(--nr-fast) var(--nr-ease), background-color var(--nr-fast) var(--nr-ease), border-color var(--nr-fast) var(--nr-ease); } .nr table td > a:is(.info, .exec):not(.underline-icon):has(> i:is(.fa-remove, .fa-times, .fa-trash, .fa-trash-o, .fa-gear, .fa-gears, .fa-cog, .fa-cogs, .fa-wrench, .fa-pencil, .fa-edit, .fa-sliders)):hover { color: var(--nr-text); background-color: var(--nr-surface-3); } .nr table td > a:is(.info, .exec):not(.underline-icon):has(> i:is(.fa-remove, .fa-times, .fa-trash, .fa-trash-o, .fa-gear, .fa-gears, .fa-cog, .fa-cogs, .fa-wrench, .fa-pencil, .fa-edit, .fa-sliders)) > i.fa { margin: 0; font-size: 1.3rem; color: inherit; } .nr table td > a:is(.info, .exec):not(.underline-icon):has(> i:is(.fa-remove, .fa-times, .fa-trash)) { color: var(--nr-danger); } .nr table td > a:is(.info, .exec):not(.underline-icon):has(> i:is(.fa-remove, .fa-times, .fa-trash)):hover { color: var(--nr-danger); background-color: var(--nr-danger-soft); border-color: color-mix(in srgb, var(--nr-danger) 40%, transparent); } .nr table td > a.underline-icon { color: var(--nr-text); } .nr table td > a.underline-icon:hover { color: var(--nr-accent-text); } .nr table td > a.underline-icon > i.fa { margin-right: .4rem; color: var(--nr-muted); } /* 11. Sidebar layouts (gray, azure) ----------------------------------- */ /* A 64px icon rail; hovering an item slides its label out (stock behaviour) */ .nr.Theme--sidebar #menu { background-color: var(--nr-surface); border-right: 1px solid var(--nr-border); box-shadow: none; } .nr.Theme--sidebar .nav-tile { padding: .4rem 0; gap: .2rem; } /* The labels are bare text inside the link, not spans: the 64px item has to clip them (stock), or they show cut off and the rail gets scrollbars */ .nr.Theme--sidebar .nav-item { width: 64px; border-bottom: 0; background: transparent; overflow: hidden; } .nr.Theme--sidebar .nav-item:hover { width: auto; background: transparent; overflow: visible; } .nr.Theme--sidebar .nav-item a { position: relative; margin: 0 .8rem; padding: 1rem 1.2rem; gap: 2rem; color: var(--nr-muted); background: transparent; border-radius: var(--nr-radius); font-size: 1.4rem; letter-spacing: 0; transition: color var(--nr-fast) var(--nr-ease), background-color var(--nr-fast) var(--nr-ease); } .nr.Theme--sidebar .nav-item a::before { font-size: 2rem; width: 2.4rem; text-align: center; } .nr.Theme--sidebar .nav-item.util a { padding-left: 1.2rem; } .nr.Theme--sidebar .nav-item.util a::before { font-size: 1.6rem; } .nr.Theme--sidebar .nav-item a span { display: none; } .nr.Theme--sidebar .nav-item:hover a { color: var(--nr-text); background: var(--nr-surface-3); font-size: 1.4rem; padding-right: 1.6rem; box-shadow: var(--nr-shadow-md); } .nr.Theme--sidebar .nav-item:hover a span { display: inline; } .nr.Theme--sidebar .nav-item.active, .nr.Theme--sidebar .nav-item.HelpButton.active { background: transparent; } .nr.Theme--sidebar .nav-item.active a, .nr.Theme--sidebar .nav-item.HelpButton.active a, .nr.Theme--sidebar .nav-item.HelpButton.active a:hover { color: var(--nr-accent-text); background: var(--nr-accent-soft); font-size: 1.4rem; } .nr.Theme--sidebar .nav-item.active a::after { content: ""; position: absolute; left: -.8rem; top: 25%; bottom: 25%; width: 3px; border-radius: 0 3px 3px 0; background: var(--nr-brand-gradient); } .nr.Theme--sidebar #header { border-bottom: 1px solid var(--nr-border); } @media (prefers-reduced-motion: reduce) { .nr *, .nr *::before, .nr *::after { transition-duration: 0s !important; animation-duration: 0s !important; } } ]]> , so the saved mode is applied before the first paint. (function () { var root = document.documentElement; var KEY = 'nr-mode'; root.classList.add('nr'); function read() { try { return localStorage.getItem(KEY); } catch (e) { return null; } } function write(mode) { try { if (mode) localStorage.setItem(KEY, mode); else localStorage.removeItem(KEY); } catch (e) { /* private mode: the switch still works for this page */ } } // Options from Settings > Neoraid, printed by Neoraid.page var DEFAULT_ACCENT = '#ff8c2f'; var cfg = window.nrConfig || {}; // Accent text must stay readable (WCAG 4.5:1) on the darkest light surface // (--nr-surface-3) and the lightest dark one: start from 72% of the accent // mixed with black or white, and add more black or white while needed. function luminance(rgb) { var c = rgb.map(function (v) { v /= 255; return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4); }); return 0.2126 * c[0] + 0.7152 * c[1] + 0.0722 * c[2]; } function textPct(accent, other, surface) { var a = [1, 3, 5].map(function (i) { return parseInt(accent.substr(i, 2), 16); }); var s = luminance(surface); for (var pct = 72; pct > 20; pct -= 2) { var l = luminance(a.map(function (v, i) { return v * pct / 100 + other[i] * (1 - pct / 100); })); if ((Math.max(l, s) + 0.05) / (Math.min(l, s) + 0.05) >= 4.5) break; } return pct; } // Hue (degrees) and HSL saturation of a #rrggbb colour function hueSat(hex) { var c = [1, 3, 5].map(function (i) { return parseInt(hex.substr(i, 2), 16) / 255; }); var max = Math.max.apply(null, c), min = Math.min.apply(null, c), d = max - min; var l = (max + min) / 2, h = 0; if (d) { if (max === c[0]) h = ((c[1] - c[2]) / d + 6) % 6; else if (max === c[1]) h = (c[2] - c[0]) / d + 2; else h = (c[0] - c[1]) / d + 4; } return [h * 60, d ? d / (1 - Math.abs(2 * l - 1)) : 0]; } // The orange logos (UNRAID wordmark, Plugins list icon) follow the accent: // rotate their hue by the distance from the stock orange, scale saturation function logoFilter(accent) { var from = hueSat(DEFAULT_ACCENT), to = hueSat(accent); var sat = Math.min(1.2, to[1] / from[1]); return 'hue-rotate(' + Math.round(to[0] - from[0]) + 'deg) saturate(' + sat.toFixed(2) + ')'; } // A custom accent recolours every token derived from the brand orange function accentCss(accent) { if (!/^#[0-9a-f]{6}$/i.test(accent || '') || accent.toLowerCase() === DEFAULT_ACCENT) return ''; var mix = function (pct, other) { return 'color-mix(in srgb, ' + accent + ' ' + pct + '%, ' + other + ')'; }; var dark = 'html.nr.Theme--black:not(.nr-light), html.nr.Theme--gray:not(.nr-light), html.nr.nr-dark'; return 'html.nr {' + '--nr-accent: ' + accent + ';' + '--nr-logo-filter: ' + logoFilter(accent) + ';' + '--nr-accent-text: ' + mix(textPct(accent, [0, 0, 0], [239, 238, 236]), '#000') + ';' + '--nr-accent-soft: ' + mix(12, 'transparent') + ';' + '--nr-focus-ring: 0 0 0 3px ' + mix(32, 'transparent') + ';' + '--nr-brand-gradient: linear-gradient(90deg, ' + mix(70, '#000') + ', ' + accent + ');' + '--nr-primary-gradient: linear-gradient(180deg, ' + mix(92, '#fff') + ', ' + mix(86, '#000') + ');' + '}' + dark + ' {' + '--nr-accent-text: ' + mix(textPct(accent, [255, 255, 255], [42, 41, 39]), '#fff') + ';' + '--nr-accent-soft: ' + mix(14, 'transparent') + ';' + '--nr-focus-ring: 0 0 0 3px ' + mix(38, 'transparent') + ';' + '}'; } function applyConfig() { ['density', 'radius', 'font', 'switch'].forEach(function (key) { if (cfg[key]) root.setAttribute('data-nr-' + key, cfg[key]); else root.removeAttribute('data-nr-' + key); }); var css = accentCss(cfg.accent); var style = document.getElementById('nr-accent'); if (!css) { if (style) style.parentNode.removeChild(style); return; } if (!style) { style = document.createElement('style'); style.id = 'nr-accent'; (document.head || root).appendChild(style); } style.textContent = css; } applyConfig(); // The Unraid theme picked in Display Settings decides the default, // unless the plugin settings pin a mode for every browser function stockIsDark() { return root.classList.contains('Theme--black') || root.classList.contains('Theme--gray'); } function pinnedMode() { return cfg.mode === 'dark' || cfg.mode === 'light' ? cfg.mode : null; } function defaultIsDark() { var pinned = pinnedMode(); return pinned ? pinned === 'dark' : stockIsDark(); } function isDark() { if (root.classList.contains('nr-dark')) return true; if (root.classList.contains('nr-light')) return false; return stockIsDark(); } // mode: this browser's choice from the switch, or null to use the default function apply(mode) { mode = mode || pinnedMode(); root.classList.remove('nr-dark', 'nr-light'); if (mode === 'dark' || mode === 'light') root.classList.add('nr-' + mode); } // The Vue components (header, notifications, modals) use Tailwind's `.dark` // class on , and every .unapi scope, plus --theme-dark-mode, // all set from the server theme. Keep them in step with the switch. function syncVue() { var dark = isDark(); var flag = dark ? '1' : '0'; if (root.style.getPropertyValue('--theme-dark-mode') !== flag) root.style.setProperty('--theme-dark-mode', flag); var scopes = [root, document.body].concat(Array.prototype.slice.call(document.querySelectorAll('.unapi'))); scopes.forEach(function (el) { if (el && el.classList.contains('dark') !== dark) el.classList.toggle('dark', dark); }); } // Vue mounts late and re-applies the server theme, so watch for it. Only // mutations that can touch a scope trigger a sync: the Dashboard rewrites // its tables every second, so added nodes count only when they bring a new // .unapi scope. Our own writes settle after one pass because syncVue only // changes what differs. function hasScope(node) { return node.nodeType === 1 && (node.classList.contains('unapi') || !!node.querySelector('.unapi')); } function relevant(record) { var t = record.target; if (t === root || t === document.body) return true; if (record.type === 'childList') { for (var i = 0; i < record.addedNodes.length; i++) if (hasScope(record.addedNodes[i])) return true; return false; } return t.classList && t.classList.contains('unapi'); } // The array usage pill prints its value inside the fill, which is too narrow // to hold it; mirror it to an attribute the stylesheet centres on the pill. function syncUsage() { document.querySelectorAll('#menu .usage-bar').forEach(function (bar) { var label = bar.textContent.trim(); if (bar.getAttribute('data-nr-label') !== label) bar.setAttribute('data-nr-label', label); }); } // Dashboard rows are blocks in the theme; jQuery's show() writes back an // inline `display: table-row`, which shrinks the row (and the CPU chart). // Rows like #cpu_chart are hidden by default, so keep an inline value. function fixRow(el) { if (el.tagName === 'TR' && el.style.display === 'table-row' && el.closest('table.dashboard')) el.style.display = 'block'; } new MutationObserver(function (records) { var vue = false, usage = false; for (var i = 0; i < records.length; i++) { var t = records[i].target; if (!vue && relevant(records[i])) vue = true; if (t.nodeType === 1) { if (!usage && t.closest('#menu .usage-bar')) usage = true; if (records[i].attributeName === 'style') fixRow(t); } } if (vue) syncVue(); if (usage) syncUsage(); }).observe(root, { subtree: true, childList: true, attributes: true, attributeFilter: ['class', 'style'] }); apply(read()); syncVue(); // Dashboard charts. The pies take their "used"/"free" colours from the // global `colors` array and the CPU/network lines are SmoothieCharts with // grid and label colours printed by DashStats.page for the stock theme. // Point both at the theme tokens; Smoothie reads its options every frame. function token(css, name) { return css.getPropertyValue(name).trim(); } // RAM segment colours: distinct hues that sit well next to the accent in // both modes, instead of the stock brown/yellow/salmon var SEGMENTS = ['#3b82f6', '#14b8a6', '#a855f7', '#ec4899', '#eab308', '#22c55e', '#06b6d4', '#f43f5e', '#6366f1', '#84cc16']; // Inline styles read back as rgb(), so compare colours in that form var probe = document.createElement('i'); function normal(colour) { probe.style.color = ''; probe.style.color = colour; return probe.style.color || colour; } function swapColours(el, prop, from, to) { var value = el.style[prop]; if (!value) return; for (var i = 0; i < from.length; i++) { var a = normal(from[i]), b = normal(to[i]); if (a !== b) value = value.split(a).join(b); } if (value !== el.style[prop]) el.style[prop] = value; } function syncCharts() { var css = getComputedStyle(root); var used = token(css, '--nr-accent'); var free = token(css, '--nr-surface-3'); if (Array.isArray(window.colors) && window.colors.length > 1 && used && free) { // colors[0] used, [1] free, [2..] the RAM segments (VM, ZFS, Docker, ...) var after = [used, free].concat(SEGMENTS).slice(0, window.colors.length); var before = window.colors.slice(0, after.length); for (var c = 0; c < after.length; c++) window.colors[c] = after[c]; // Repaint what is on screen now instead of waiting for the next update document.querySelectorAll('.pie').forEach(function (el) { swapColours(el, 'background', before, after); }); document.querySelectorAll('#dynamic .fa-circle').forEach(function (el) { swapColours(el, 'color', before, after); }); } [window.cpuchart, window.netchart].forEach(function (chart) { if (!chart || !chart.options || !chart.options.grid || !chart.options.labels) return; var o = chart.options; // Horizontal guides only, smooth curves, headroom so peaks are not cut o.grid.strokeStyle = token(css, '--nr-border'); o.grid.millisPerLine = 0; o.grid.borderVisible = false; o.interpolation = 'bezier'; o.maxValueScale = 1.12; o.labels.fillStyle = token(css, '--nr-muted'); o.labels.fontFamily = token(css, '--nr-font') || o.labels.fontFamily; (chart.seriesSet || []).forEach(function (series, i) { // CPU load and network outbound draw in the accent colour if (i === (chart === window.cpuchart ? 0 : 1)) series.options.strokeStyle = used; var line = normal(series.options.strokeStyle); series.options.lineWidth = 2; // Soft area under the line: the stroke colour at low opacity if (/^rgb\(/.test(line)) series.options.fillStyle = line.replace('rgb(', 'rgba(').replace(')', ', .12)'); }); }); } var refreshSwitch = function () {}; function mountSwitch() { var anchor = document.querySelector('#menu .nr-anchor'); if (!anchor || anchor.querySelector('.nr-mode')) return; var btn = document.createElement('button'); btn.type = 'button'; btn.className = 'nr-mode'; btn.setAttribute('role', 'switch'); btn.innerHTML = ''; function sync() { var dark = isDark(); btn.setAttribute('aria-checked', dark ? 'true' : 'false'); btn.title = dark ? 'Switch to light mode' : 'Switch to dark mode'; btn.setAttribute('aria-label', 'Dark mode'); } btn.addEventListener('click', function () { var next = isDark() ? 'light' : 'dark'; // Matching the default needs no override: forget the choice var override = (next === 'dark') === defaultIsDark() ? null : next; apply(override); write(override); sync(); syncVue(); syncCharts(); }); sync(); refreshSwitch = sync; anchor.appendChild(btn); } // Live preview for the settings page: apply options without saving them window.nrTheme = { preview: function (options) { cfg = options || {}; applyConfig(); apply(read()); refreshSwitch(); syncVue(); syncCharts(); } }; function ready() { mountSwitch(); syncVue(); syncUsage(); document.querySelectorAll('table.dashboard tr[style]').forEach(fixRow); syncCharts(); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', ready); else ready(); })(); ]]> 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 echo "" echo "Neoraid &version; installed. Reload the page to see it." echo "" rm -rf &plugdir; rm -rf /boot/config/plugins/&name; echo "Neoraid removed. Reload the page to get the stock look back."