@telepath-computer/television 0.1.216 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/THIRD-PARTY-NOTICES.txt +336 -0
  2. package/dist/canonical/v1/frozen.json +6 -0
  3. package/dist/canonical/v1/styles.css +7 -2
  4. package/dist/canonical/v2/components.js +1 -0
  5. package/dist/canonical/v2/fonts/Hind-Variable.933e9900.woff2 +0 -0
  6. package/dist/canonical/v2/styles.css +1241 -0
  7. package/dist/cli.cjs +1763 -761
  8. package/dist/onboarding/README.md +16 -14
  9. package/dist/onboarding/business-ops/about.html +4 -3
  10. package/dist/onboarding/business-ops/retention-vs-releases.html +25 -32
  11. package/dist/onboarding/business-ops/revenue-vs-goals.html +26 -31
  12. package/dist/onboarding/productivity/about.html +4 -3
  13. package/dist/onboarding/productivity/company-todos/THIRD-PARTY-NOTICES.txt +29 -0
  14. package/dist/onboarding/productivity/company-todos/index.html +20 -20
  15. package/dist/onboarding/productivity/company-todos/task.css +4 -5
  16. package/dist/onboarding/productivity/company-todos/task.js +1 -1
  17. package/dist/onboarding/productivity/meeting-prep.html +12 -12
  18. package/dist/onboarding/productivity/priorities-today.html +10 -10
  19. package/dist/onboarding/productivity/todays-calendar/calendar.css +1 -1
  20. package/dist/onboarding/productivity/todays-calendar/index.html +12 -14
  21. package/dist/onboarding/research/about.html +4 -3
  22. package/dist/onboarding/research/open-model-research.html +35 -35
  23. package/dist/onboarding/research/todays-news.html +72 -72
  24. package/dist/onboarding/tv-guide/welcome.html +178 -0
  25. package/dist/skills/television/SKILL.md +124 -67
  26. package/dist/skills/television/theming.md +1086 -0
  27. package/dist/skills/tv-calendar/SKILL.md +3 -1
  28. package/dist/skills/tv-calendar/calendar.css +1 -1
  29. package/dist/skills/tv-table/SKILL.md +5 -2
  30. package/dist/skills/tv-tasks/SKILL.md +19 -15
  31. package/dist/skills/tv-tasks/task.css +4 -26
  32. package/dist/skills/tv-tasks/task.js +1 -1
  33. package/dist/themes/README.md +5 -0
  34. package/dist/themes/aquarium/README.md +48 -0
  35. package/dist/themes/aquarium/iframe-background.js +137 -0
  36. package/dist/themes/aquarium/manifest.json +7 -0
  37. package/dist/themes/aquarium/theme.css +46 -0
  38. package/dist/themes/blueprint/README.md +31 -0
  39. package/dist/themes/blueprint/manifest.json +6 -0
  40. package/dist/themes/blueprint/theme.css +115 -0
  41. package/dist/themes/clouds/README.md +15 -0
  42. package/dist/themes/clouds/THIRD-PARTY-NOTICES.txt +81 -0
  43. package/dist/themes/clouds/manifest.json +6 -0
  44. package/dist/themes/clouds/theme.css +62 -0
  45. package/dist/themes/clouds/wallpaper-dark.webp +0 -0
  46. package/dist/themes/clouds/wallpaper.webp +0 -0
  47. package/dist/themes/crt-phosphor/README.md +31 -0
  48. package/dist/themes/crt-phosphor/manifest.json +6 -0
  49. package/dist/themes/crt-phosphor/theme.css +105 -0
  50. package/dist/themes/nord/README.md +9 -0
  51. package/dist/themes/nord/THIRD-PARTY-NOTICES.txt +29 -0
  52. package/dist/themes/nord/manifest.json +5 -0
  53. package/dist/themes/nord/theme.css +28 -0
  54. package/dist/themes/swiss/README.md +5 -0
  55. package/dist/themes/swiss/manifest.json +5 -0
  56. package/dist/themes/swiss/theme.css +34 -0
  57. package/dist/themes/tokyo-night/README.md +17 -0
  58. package/dist/themes/tokyo-night/THIRD-PARTY-NOTICES.txt +235 -0
  59. package/dist/themes/tokyo-night/manifest.json +5 -0
  60. package/dist/themes/tokyo-night/theme.css +31 -0
  61. package/dist/themes/tokyo-night/wallpaper.webp +0 -0
  62. package/dist/views/artifact-missing/index.html +40 -68
  63. package/dist/views/markdown/THIRD-PARTY-NOTICES.txt +26 -0
  64. package/dist/views/markdown/index.html +49 -23
  65. package/dist/web/THIRD-PARTY-NOTICES.txt +26 -0
  66. package/dist/web/assets/artifact-bridge-BEUWXKq7.js +1 -0
  67. package/dist/web/assets/{artifactMissing-BiK_l3Ts.js → artifactMissing-CUs1ZwDx.js} +1 -1
  68. package/dist/web/assets/main-Bi6QZnn7.css +1 -0
  69. package/dist/web/assets/main-Dw6rK_zF.js +706 -0
  70. package/dist/web/assets/{urlUnsupported-RGIrhMDe.js → urlUnsupported-powR79PT.js} +1 -1
  71. package/dist/web/index.html +40 -5
  72. package/dist/web/views/artifact-missing/index.html +40 -68
  73. package/dist/web/views/url-unsupported/index.html +40 -68
  74. package/package.json +1 -1
  75. package/dist/onboarding/tv-guide/welcome/assets/television.svg +0 -71
  76. package/dist/onboarding/tv-guide/welcome/index.html +0 -203
  77. package/dist/skills/tv-theme/SKILL.md +0 -449
  78. package/dist/web/assets/artifact-bridge-3Trk-B2L.js +0 -1
  79. package/dist/web/assets/clouds-CAYIArXj.jpg +0 -0
  80. package/dist/web/assets/main-Blg8fuaV.css +0 -1
  81. package/dist/web/assets/main-V14r9Psb.js +0 -596
@@ -0,0 +1,81 @@
1
+ TELEVISION THIRD-PARTY LICENSING NOTICES
2
+
3
+ This file contains the license terms and attribution notices for third-party software and materials included in Television.
4
+ ================================================================================
5
+ Ljubomir Žarković — Unsplash bt_ZtkCxLs4
6
+ Licensed under LicenseRef-Unsplash.
7
+ --------------------------------------------------------------------------------
8
+ Photo by Ljubomir Žarković on Unsplash.
9
+ https://unsplash.com/photos/bt_ZtkCxLs4
10
+
11
+ Unsplash License
12
+ https://unsplash.com/license
13
+ Retrieved 2026-09-17
14
+
15
+ Unsplash visuals are made to be used freely. Our license reflects that.
16
+
17
+ All images can be downloaded and used for free
18
+ Commercial and non-commercial purposes
19
+ No permission needed (though attribution is appreciated!)
20
+
21
+ What is not permitted
22
+
23
+ Images cannot be sold without significant modification.
24
+ Compiling images from Unsplash to replicate a similar or competing service.
25
+
26
+ Longform
27
+
28
+ Unsplash grants you an irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use images from Unsplash for free, including for commercial purposes, without permission from or attributing the photographer or Unsplash. This license does not include the right to compile images from Unsplash to replicate a similar or competing service.
29
+
30
+ ================================================================================
31
+ Shot by Cerqueira — Unsplash NpF9JLGYfeQ
32
+ Licensed under LicenseRef-Unsplash.
33
+ --------------------------------------------------------------------------------
34
+ Photo by Shot by Cerqueira on Unsplash.
35
+ https://unsplash.com/photos/NpF9JLGYfeQ
36
+
37
+ Unsplash License
38
+ https://unsplash.com/license
39
+ Retrieved 2026-09-17
40
+
41
+ Unsplash visuals are made to be used freely. Our license reflects that.
42
+
43
+ All images can be downloaded and used for free
44
+ Commercial and non-commercial purposes
45
+ No permission needed (though attribution is appreciated!)
46
+
47
+ What is not permitted
48
+
49
+ Images cannot be sold without significant modification.
50
+ Compiling images from Unsplash to replicate a similar or competing service.
51
+
52
+ Longform
53
+
54
+ Unsplash grants you an irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use images from Unsplash for free, including for commercial purposes, without permission from or attributing the photographer or Unsplash. This license does not include the right to compile images from Unsplash to replicate a similar or competing service.
55
+
56
+ ================================================================================
57
+ Tailwind CSS color palette
58
+ Licensed under MIT.
59
+ --------------------------------------------------------------------------------
60
+ MIT License
61
+
62
+ Copyright (c) Tailwind Labs, Inc.
63
+
64
+ Permission is hereby granted, free of charge, to any person obtaining a copy
65
+ of this software and associated documentation files (the "Software"), to deal
66
+ in the Software without restriction, including without limitation the rights
67
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
68
+ copies of the Software, and to permit persons to whom the Software is
69
+ furnished to do so, subject to the following conditions:
70
+
71
+ The above copyright notice and this permission notice shall be included in all
72
+ copies or substantial portions of the Software.
73
+
74
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
75
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
76
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
77
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
78
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
79
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
80
+ SOFTWARE.
81
+
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "Clouds",
3
+ "version": "2.1.0",
4
+ "colorScheme": "light dark",
5
+ "authoredForAppVersion": "1.3.1"
6
+ }
@@ -0,0 +1,62 @@
1
+ /* Gray, Neutral and Slate palettes adapted from Tailwind CSS.
2
+ https://github.com/tailwindlabs/tailwindcss
3
+ Copyright (c) Tailwind Labs, Inc.
4
+ MIT License; see THIRD-PARTY-NOTICES.txt. */
5
+ :root {
6
+ /* Bright blue for primary controls and selection in light appearance. */
7
+ --color-primary: #3994c9;
8
+ --neutral: oklch(55.1% 0.027 264.364);
9
+ --neutral-50: oklch(98.5% 0.002 247.839);
10
+ --neutral-100: oklch(96.7% 0.003 264.542);
11
+ --neutral-200: oklch(92.8% 0.006 264.531);
12
+ --neutral-300: oklch(87.2% 0.01 258.338);
13
+ --neutral-400: oklch(70.7% 0.022 261.325);
14
+ --neutral-500: var(--neutral);
15
+ --neutral-600: oklch(44.6% 0.03 256.802);
16
+ --neutral-700: oklch(37.3% 0.034 259.733);
17
+ --neutral-800: oklch(27.8% 0.033 256.848);
18
+ --neutral-900: oklch(21% 0.034 264.665);
19
+ --neutral-950: oklch(13% 0.028 261.692);
20
+ }
21
+
22
+ :root[data-theme="light"] {
23
+ --color-border: oklch(from var(--color-text) l c h / var(--alpha-20));
24
+ }
25
+
26
+ /* Mostly Neutral, with a trace of Gray for a cool dark surface. */
27
+ :root[data-theme="dark"] {
28
+ /* Slate 500 keeps the dark appearance subdued. */
29
+ --color-primary: oklch(55.4% 0.046 257.417);
30
+ --neutral: color-mix(in oklch, oklch(55.1% 0.027 264.364) 25%, oklch(55.6% 0 none));
31
+ --neutral-50: color-mix(in oklch, oklch(98.5% 0.002 247.839) 25%, oklch(98.5% 0 none));
32
+ --neutral-100: color-mix(in oklch, oklch(96.7% 0.003 264.542) 25%, oklch(97% 0 none));
33
+ --neutral-200: color-mix(in oklch, oklch(92.8% 0.006 264.531) 25%, oklch(92.2% 0 none));
34
+ --neutral-300: color-mix(in oklch, oklch(87.2% 0.01 258.338) 25%, oklch(87% 0 none));
35
+ --neutral-400: color-mix(in oklch, oklch(70.7% 0.022 261.325) 25%, oklch(70.8% 0 none));
36
+ --neutral-500: var(--neutral);
37
+ --neutral-600: color-mix(in oklch, oklch(44.6% 0.03 256.802) 25%, oklch(43.9% 0 none));
38
+ --neutral-700: color-mix(in oklch, oklch(37.3% 0.034 259.733) 25%, oklch(37.1% 0 none));
39
+ --neutral-800: color-mix(in oklch, oklch(27.8% 0.033 256.848) 25%, oklch(26.9% 0 none));
40
+ --neutral-900: color-mix(in oklch, oklch(21% 0.034 264.665) 25%, oklch(20.5% 0 none));
41
+ --neutral-950: color-mix(in oklch, oklch(13% 0.028 261.692) 25%, oklch(14.5% 0 none));
42
+ }
43
+
44
+ :root[data-television-document="app"] {
45
+ --app-wallpaper-image: url(wallpaper.webp);
46
+ --sidebar-background: var(--color-surface-muted);
47
+ --sidebar-shadow: var(--shadow-sm);
48
+ --frame-titlebar-background: var(--color-surface-muted);
49
+ --wallpaper-overlay-background: oklch(27.9% 0.041 260.031 / var(--alpha-50));
50
+ --wallpaper-overlay-background-active: oklch(from var(--wallpaper-overlay-background) calc(l * 0.8) c h / var(--alpha-75));
51
+ --wallpaper-overlay-text-color: var(--neutral-50);
52
+ --tab-text-color: var(--wallpaper-overlay-text-color);
53
+ --wallpaper-overlay-blur: 8px;
54
+ }
55
+
56
+ :root[data-television-document="app"][data-theme="light"] {
57
+ --wallpaper-overlay-background: oklch(from var(--color-primary) calc(l - 0.18) c h / var(--alpha-50));
58
+ }
59
+
60
+ :root[data-television-document="app"][data-theme="dark"] {
61
+ --app-wallpaper-image: url(wallpaper-dark.webp);
62
+ }
@@ -0,0 +1,31 @@
1
+ # CRT Phosphor
2
+
3
+ Authored by an agent (Claude) on 2026-09-17 as part of a batch of "fun themes" testing the theme system. Covers "single-mode (dark)" and "CSS-only effects on `#foreground-overlay`".
4
+
5
+ ## Intent
6
+
7
+ A green P1 phosphor terminal: monochrome green on near-black, monospace, glowing type, scanlines, vignette, a rolling refresh band and faint mains flicker. Fixed look with no mode blocks. The manifest declares `"colorScheme": "dark"`, so Television applies the dark appearance wherever this theme is active, whatever the appearance preference says. The theme sets no CSS `color-scheme` anywhere; Television supplies it.
8
+
9
+ ## Choices
10
+
11
+ - A private `--phosphor` custom property holds the green; documented tokens point at it. (It is theme-owned, not a Television token.)
12
+ - Shadows become glows.
13
+ - `text-shadow` on `:root` inherits everywhere, including live-canonical artifacts (the iframe documents load the same stylesheet, so each gets its own `:root` rule). Removed on the reversed selected channel row.
14
+ - `--color-danger` stays amber instead of going green: destructive actions must remain distinguishable.
15
+ - Selected tab is an outlined phosphor box rather than a fill, so the cursor glyph reads.
16
+
17
+ ## Effects and cost
18
+
19
+ All on `#foreground-overlay`, CSS only, no scripts:
20
+
21
+ - Base: two repeating gradients (scanlines, grille) + radial vignette. Static.
22
+ - `::before` refresh band: one `transform` animation, 7s loop, compositor-only.
23
+ - `::after` flicker: stepped opacity, 4s loop — deliberately `steps(1)` so it repaints a handful of times per cycle rather than every frame.
24
+ - Cursor blink on the selected tab label: stepped.
25
+ - All animation stops under `prefers-reduced-motion: reduce`.
26
+
27
+ The overlay does not cover native modal dialogs (they sit above it), so dialogs appear "in front of the glass". Accepted.
28
+
29
+ ## Files
30
+
31
+ `theme.css`, `manifest.json`. No assets, no JavaScript.
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "CRT Phosphor",
3
+ "version": "1.0.0",
4
+ "colorScheme": "dark",
5
+ "authoredForAppVersion": "1.3.1"
6
+ }
@@ -0,0 +1,105 @@
1
+ /* CRT Phosphor — a P1 green monitor. Fixed look; all effects are CSS on the foreground overlay. */
2
+ :root {
3
+ --phosphor: oklch(0.86 0.24 145);
4
+ --neutral: oklch(0.556 0.06 148);
5
+ --accent: var(--phosphor);
6
+ --color-surface: oklch(0.17 0.035 150);
7
+ --color-surface-muted: oklch(0.14 0.03 150);
8
+ --color-text: oklch(0.88 0.2 145);
9
+ --color-text-muted: oklch(0.66 0.14 146);
10
+ --color-text-reversed: oklch(0.14 0.03 150);
11
+ --color-border: oklch(from var(--phosphor) l c h / 35%);
12
+ --color-link: var(--phosphor);
13
+ /* A monochrome tube cannot show red: situations keep distinct lightness, not hue. Danger stays amber so destructive actions remain recognisable. */
14
+ --color-danger: oklch(0.8 0.17 70);
15
+ --color-success: var(--phosphor);
16
+ --alpha-active: 14%;
17
+
18
+ --font-sans: ui-monospace, "SF Mono", SFMono-Regular, Menlo, "DejaVu Sans Mono", monospace;
19
+ --control-radius: 2px;
20
+ --panel-radius: 4px;
21
+ --surface-border-color: oklch(from var(--phosphor) l c h / 45%);
22
+ --surface-outline-color: oklch(0 0 0 / 60%);
23
+ /* Light sources glow; they do not cast shadows. */
24
+ --shadow-sm: 0 0 6px oklch(from var(--phosphor) l c h / 18%);
25
+ --shadow-md: 0 0 14px oklch(from var(--phosphor) l c h / 22%);
26
+ --shadow-lg: 0 0 24px oklch(from var(--phosphor) l c h / 22%);
27
+ --shadow-xl: 0 0 40px oklch(from var(--phosphor) l c h / 20%);
28
+
29
+ /* Phosphor bloom on all type, inherited by app and live-canonical artifacts alike. */
30
+ text-shadow: 0 0 5px oklch(from currentColor l c h / 45%);
31
+ }
32
+
33
+ :root[data-television-document="app"] {
34
+ --frame-radius: 14px; /* slightly bulged tube corners */
35
+ --tab-radius: 2px;
36
+ --sidebar-background: oklch(0.12 0.025 150);
37
+ --sidebar-heading-font-size: var(--text-sm);
38
+ --channel-background-selected: var(--phosphor);
39
+ --channel-text-color-selected: oklch(0.14 0.03 150);
40
+ --tab-background-selected: transparent;
41
+ --tab-text-color-selected: var(--phosphor);
42
+ --tab-border-selected: 1px solid var(--phosphor);
43
+ --wallpaper-overlay-text-color: var(--color-text-muted);
44
+ --app-wallpaper: radial-gradient(120% 90% at 50% 45%, oklch(0.2 0.05 150), oklch(0.08 0.02 150) 75%);
45
+ }
46
+
47
+ /* Shell prompt on the selected channel; the reversed row already carries selection, this is flavour. */
48
+ :root[data-television-document="app"] .channel[aria-selected="true"]::before {
49
+ content: "> ";
50
+ }
51
+ /* No glow on reversed-out text: dark ink on a lit block does not bloom. */
52
+ :root[data-television-document="app"] .channel[aria-selected="true"] {
53
+ text-shadow: none;
54
+ }
55
+
56
+ /* Block cursor after the current tab's label. */
57
+ :root[data-television-document="app"] .tab[aria-selected="true"] .tab-label::after {
58
+ content: "\2588";
59
+ margin-left: 2px;
60
+ animation: crt-blink 1.1s steps(1) infinite;
61
+ }
62
+ :root[data-television-document="app"] :is(.tab-label, .channel-group-label) {
63
+ text-transform: uppercase;
64
+ }
65
+
66
+ /* The glass. Scanlines + an aperture-grille hint + vignette on the overlay; a slow refresh band and mains flicker on its pseudo-elements. Never takes input. */
67
+ :root[data-television-document="app"] #foreground-overlay {
68
+ background:
69
+ repeating-linear-gradient(to bottom, oklch(0 0 0 / 0%) 0 2px, oklch(0 0 0 / 22%) 2px 3px),
70
+ repeating-linear-gradient(to right, oklch(0.8 0.2 145 / 3%) 0 1px, transparent 1px 3px),
71
+ radial-gradient(ellipse at center, transparent 55%, oklch(0 0 0 / 55%) 100%);
72
+ overflow: hidden;
73
+ }
74
+ :root[data-television-document="app"] #foreground-overlay::before {
75
+ content: "";
76
+ position: absolute;
77
+ left: 0;
78
+ right: 0;
79
+ top: 0;
80
+ height: 22vh;
81
+ background: linear-gradient(to bottom, transparent, oklch(0.9 0.2 145 / 5%) 80%, transparent);
82
+ animation: crt-refresh 7s linear infinite;
83
+ will-change: transform;
84
+ }
85
+ :root[data-television-document="app"] #foreground-overlay::after {
86
+ content: "";
87
+ position: absolute;
88
+ inset: 0;
89
+ background: oklch(0.9 0.2 145 / 2.5%);
90
+ animation: crt-flicker 4s steps(1) infinite;
91
+ }
92
+
93
+ @keyframes crt-blink { 50% { opacity: 0; } }
94
+ @keyframes crt-refresh { from { transform: translateY(-25vh); } to { transform: translateY(105vh); } }
95
+ @keyframes crt-flicker { 0%, 100% { opacity: 1; } 7% { opacity: 0.2; } 9% { opacity: 1; } 52% { opacity: 0.5; } 54% { opacity: 1; } 81% { opacity: 0; } 82% { opacity: 1; } }
96
+
97
+ /* Motion is decoration only: honour the OS reduced-motion preference (a motion query, not an appearance query). */
98
+ @media (prefers-reduced-motion: reduce) {
99
+ :root[data-television-document="app"] #foreground-overlay::before,
100
+ :root[data-television-document="app"] #foreground-overlay::after,
101
+ :root[data-television-document="app"] .tab[aria-selected="true"] .tab-label::after {
102
+ animation: none;
103
+ }
104
+ :root[data-television-document="app"] #foreground-overlay::before { display: none; }
105
+ }
@@ -0,0 +1,9 @@
1
+ # Nord
2
+
3
+ Nord brings the cool blue-gray colors of the [Nord palette](https://github.com/nordtheme/nord) to Television. It stays dark in both light and dark appearance settings.
4
+
5
+ Pale text and an icy cyan accent stand out against dark surfaces. A deeper, quieter background separates the content from the surrounding application, while warmer accent colors distinguish status and actions.
6
+
7
+ ## License
8
+
9
+ The palette is distributed under the [MIT License](https://github.com/nordtheme/nord/blob/1cef71605416a222e57225b544540ce0fcec18d4/license). Complete license terms and attribution are included in `THIRD-PARTY-NOTICES.txt` in the installed theme folder.
@@ -0,0 +1,29 @@
1
+ TELEVISION THIRD-PARTY LICENSING NOTICES
2
+
3
+ This file contains the license terms and attribution notices for third-party software and materials included in Television.
4
+ ================================================================================
5
+ Nord color palette
6
+ Licensed under MIT.
7
+ --------------------------------------------------------------------------------
8
+ MIT License (MIT)
9
+
10
+ Copyright (c) 2016-present Sven Greb <development@svengreb.de> (https://www.svengreb.de)
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
29
+
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "Nord",
3
+ "version": "1.1.0",
4
+ "colorScheme": "dark"
5
+ }
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Colors from Nord — https://github.com/nordtheme/nord
3
+ * Copyright (c) 2016-present Sven Greb <development@svengreb.de> (https://www.svengreb.de)
4
+ * MIT License; full text in THIRD-PARTY-NOTICES.txt.
5
+ */
6
+
7
+ /* The Nord theme ([[ui/themes/nord/index.md]]). */
8
+ :root {
9
+ --neutral: #4c566a;
10
+ --red: #bf616a;
11
+ --orange: #d08770;
12
+ --yellow: #ebcb8b;
13
+ --green: #a3be8c;
14
+ --cyan: #88c0d0;
15
+ --blue: #5e81ac;
16
+ --purple: #b48ead;
17
+ --pink: #b48ead;
18
+ --accent: var(--cyan);
19
+
20
+ --color-surface: #2e3440;
21
+ --color-surface-muted: #3b4252;
22
+ --color-text: #d8dee9;
23
+ --color-text-muted: var(--neutral-400);
24
+ }
25
+
26
+ :root[data-television-document="app"] {
27
+ --app-wallpaper: oklch(from var(--color-surface) calc(l - 0.03) calc(c * 0.85) h);
28
+ }
@@ -0,0 +1,5 @@
1
+ # Swiss
2
+
3
+ Swiss pairs the familiar Television interface with a red accent and an always-dark sidebar. It supports both light and dark appearance settings.
4
+
5
+ In light appearance, white content surfaces stand out against a soft gray background. In dark appearance, lighter content surfaces and a deeper background keep the workspace distinct from the sidebar. The restrained palette keeps attention on the content and uses red to mark primary actions and selections.
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "Swiss",
3
+ "version": "1.1.0",
4
+ "colorScheme": "light dark"
5
+ }
@@ -0,0 +1,34 @@
1
+ /* Swiss adds a red primary accent to the default palette. */
2
+ :root {
3
+ --color-primary: #df363c;
4
+ }
5
+
6
+ :root[data-theme="dark"] {
7
+ --color-surface: oklch(from var(--neutral-800) calc(l + 0.03) c h);
8
+ --color-surface-muted: oklch(from var(--neutral-800) calc(l + 0.07) c h);
9
+ }
10
+
11
+ /* Keep the sidebar dark in both appearances. */
12
+ :root[data-television-document="app"] {
13
+ --sidebar-background: var(--neutral-800);
14
+ --sidebar-text-color: var(--neutral-100);
15
+ --sidebar-heading-text-color: var(--neutral-400);
16
+ }
17
+
18
+ :root[data-television-document="app"][data-theme="light"] {
19
+ --app-wallpaper: oklch(from var(--neutral-200) calc(l - 0.03) c h);
20
+ }
21
+
22
+ :root[data-television-document="app"][data-theme="dark"] {
23
+ --app-wallpaper: oklch(from var(--sidebar-background) calc(l - 0.015) c h);
24
+ }
25
+
26
+ /* Dragged rows keep the sidebar ground behind their light text. */
27
+ :root[data-television-document="app"] .sidebar .channel-row.dragged {
28
+ background: var(--sidebar-background);
29
+ }
30
+
31
+ /* Rename and drag actions retain standard surfaces and their matching text. */
32
+ :root[data-television-document="app"] .sidebar :is(.channel-rename-commit, .channel-drag-action) {
33
+ color: var(--control-text-color);
34
+ }
@@ -0,0 +1,17 @@
1
+ # Tokyo Night
2
+
3
+ Tokyo Night combines a dark city photograph with the blue and purple tones of the Tokyo Night palette. It stays dark in both light and dark appearance settings.
4
+
5
+ The city lights give the background texture, while dark translucent controls and blur keep the interface readable. Blue marks primary actions against cool, subdued surfaces.
6
+
7
+ ## Palette and license
8
+
9
+ The colors come from the [Tokyo Night Night palette](https://github.com/folke/tokyonight.nvim/blob/cdc07ac78467a233fd62c493de29a17e0cf2b2b6/lua/tokyonight/colors/night.lua), distributed under [Apache License 2.0](https://github.com/folke/tokyonight.nvim/blob/cdc07ac78467a233fd62c493de29a17e0cf2b2b6/LICENSE).
10
+
11
+ ## Wallpaper and credit
12
+
13
+ The photograph in `wallpaper.webp` is centered and cropped to fill the application background.
14
+
15
+ Photo by <a href="https://unsplash.com/@cmzw?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Mingwei Lim</a> on <a href="https://unsplash.com/photos/a-city-at-night-BpuF14DFbYs?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>.
16
+
17
+ The photograph is used under the [Unsplash License](https://unsplash.com/license), retrieved 2026-09-17. Complete palette and photo license terms and attribution are included in `THIRD-PARTY-NOTICES.txt` in the installed theme folder.