tgui-core 1.0.0

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 (152) hide show
  1. package/.editorconfig +10 -0
  2. package/.eslintrc.cjs +78 -0
  3. package/.gitattributes +4 -0
  4. package/.prettierrc.yml +1 -0
  5. package/.vscode/extensions.json +6 -0
  6. package/.vscode/settings.json +5 -0
  7. package/README.md +1 -0
  8. package/global.d.ts +173 -0
  9. package/package.json +25 -0
  10. package/src/assets.ts +43 -0
  11. package/src/backend.ts +369 -0
  12. package/src/common/collections.ts +349 -0
  13. package/src/common/color.ts +94 -0
  14. package/src/common/events.ts +45 -0
  15. package/src/common/exhaustive.ts +19 -0
  16. package/src/common/fp.ts +38 -0
  17. package/src/common/keycodes.ts +86 -0
  18. package/src/common/keys.ts +39 -0
  19. package/src/common/math.ts +98 -0
  20. package/src/common/perf.ts +72 -0
  21. package/src/common/random.ts +32 -0
  22. package/src/common/react.ts +65 -0
  23. package/src/common/redux.ts +196 -0
  24. package/src/common/storage.js +196 -0
  25. package/src/common/string.ts +173 -0
  26. package/src/common/timer.ts +68 -0
  27. package/src/common/type-utils.ts +41 -0
  28. package/src/common/types.ts +9 -0
  29. package/src/common/uuid.ts +24 -0
  30. package/src/common/vector.ts +51 -0
  31. package/src/components/AnimatedNumber.tsx +185 -0
  32. package/src/components/Autofocus.tsx +23 -0
  33. package/src/components/Blink.jsx +69 -0
  34. package/src/components/BlockQuote.tsx +15 -0
  35. package/src/components/BodyZoneSelector.tsx +149 -0
  36. package/src/components/Box.tsx +255 -0
  37. package/src/components/Button.tsx +415 -0
  38. package/src/components/ByondUi.jsx +121 -0
  39. package/src/components/Chart.tsx +160 -0
  40. package/src/components/Collapsible.tsx +45 -0
  41. package/src/components/ColorBox.tsx +30 -0
  42. package/src/components/Dialog.tsx +85 -0
  43. package/src/components/Dimmer.tsx +19 -0
  44. package/src/components/Divider.tsx +26 -0
  45. package/src/components/DmIcon.tsx +72 -0
  46. package/src/components/DraggableControl.jsx +282 -0
  47. package/src/components/Dropdown.tsx +246 -0
  48. package/src/components/FakeTerminal.jsx +52 -0
  49. package/src/components/FitText.tsx +99 -0
  50. package/src/components/Flex.tsx +105 -0
  51. package/src/components/Grid.tsx +44 -0
  52. package/src/components/Icon.tsx +91 -0
  53. package/src/components/Image.tsx +63 -0
  54. package/src/components/InfinitePlane.jsx +192 -0
  55. package/src/components/Input.tsx +181 -0
  56. package/src/components/KeyListener.tsx +40 -0
  57. package/src/components/Knob.tsx +185 -0
  58. package/src/components/LabeledControls.tsx +50 -0
  59. package/src/components/LabeledList.tsx +130 -0
  60. package/src/components/MenuBar.tsx +238 -0
  61. package/src/components/Modal.tsx +25 -0
  62. package/src/components/NoticeBox.tsx +48 -0
  63. package/src/components/NumberInput.tsx +328 -0
  64. package/src/components/Popper.tsx +100 -0
  65. package/src/components/ProgressBar.tsx +79 -0
  66. package/src/components/RestrictedInput.jsx +301 -0
  67. package/src/components/RoundGauge.tsx +189 -0
  68. package/src/components/Section.tsx +125 -0
  69. package/src/components/Slider.tsx +173 -0
  70. package/src/components/Stack.tsx +101 -0
  71. package/src/components/StyleableSection.tsx +30 -0
  72. package/src/components/Table.tsx +90 -0
  73. package/src/components/Tabs.tsx +90 -0
  74. package/src/components/TextArea.tsx +198 -0
  75. package/src/components/TimeDisplay.jsx +64 -0
  76. package/src/components/Tooltip.tsx +147 -0
  77. package/src/components/TrackOutsideClicks.tsx +35 -0
  78. package/src/components/VirtualList.tsx +69 -0
  79. package/src/constants.ts +355 -0
  80. package/src/debug/KitchenSink.jsx +56 -0
  81. package/src/debug/actions.js +11 -0
  82. package/src/debug/hooks.js +10 -0
  83. package/src/debug/index.ts +10 -0
  84. package/src/debug/middleware.js +86 -0
  85. package/src/debug/reducer.js +22 -0
  86. package/src/debug/selectors.js +7 -0
  87. package/src/drag.ts +280 -0
  88. package/src/events.ts +237 -0
  89. package/src/focus.ts +25 -0
  90. package/src/format.ts +173 -0
  91. package/src/hotkeys.ts +212 -0
  92. package/src/http.ts +16 -0
  93. package/src/layouts/Layout.tsx +75 -0
  94. package/src/layouts/NtosWindow.tsx +162 -0
  95. package/src/layouts/Pane.tsx +56 -0
  96. package/src/layouts/Window.tsx +227 -0
  97. package/src/renderer.ts +50 -0
  98. package/styles/base.scss +32 -0
  99. package/styles/colors.scss +92 -0
  100. package/styles/components/BlockQuote.scss +20 -0
  101. package/styles/components/Button.scss +175 -0
  102. package/styles/components/ColorBox.scss +12 -0
  103. package/styles/components/Dialog.scss +105 -0
  104. package/styles/components/Dimmer.scss +22 -0
  105. package/styles/components/Divider.scss +27 -0
  106. package/styles/components/Dropdown.scss +72 -0
  107. package/styles/components/Flex.scss +31 -0
  108. package/styles/components/Icon.scss +25 -0
  109. package/styles/components/Input.scss +68 -0
  110. package/styles/components/Knob.scss +131 -0
  111. package/styles/components/LabeledList.scss +49 -0
  112. package/styles/components/MenuBar.scss +75 -0
  113. package/styles/components/Modal.scss +14 -0
  114. package/styles/components/NoticeBox.scss +65 -0
  115. package/styles/components/NumberInput.scss +76 -0
  116. package/styles/components/ProgressBar.scss +63 -0
  117. package/styles/components/RoundGauge.scss +88 -0
  118. package/styles/components/Section.scss +143 -0
  119. package/styles/components/Slider.scss +54 -0
  120. package/styles/components/Stack.scss +59 -0
  121. package/styles/components/Table.scss +44 -0
  122. package/styles/components/Tabs.scss +144 -0
  123. package/styles/components/TextArea.scss +84 -0
  124. package/styles/components/Tooltip.scss +24 -0
  125. package/styles/functions.scss +79 -0
  126. package/styles/layouts/Layout.scss +57 -0
  127. package/styles/layouts/NtosHeader.scss +20 -0
  128. package/styles/layouts/NtosWindow.scss +26 -0
  129. package/styles/layouts/TitleBar.scss +111 -0
  130. package/styles/layouts/Window.scss +103 -0
  131. package/styles/main.scss +97 -0
  132. package/styles/reset.scss +68 -0
  133. package/styles/themes/abductor.scss +68 -0
  134. package/styles/themes/admin.scss +38 -0
  135. package/styles/themes/cardtable.scss +57 -0
  136. package/styles/themes/hackerman.scss +70 -0
  137. package/styles/themes/malfunction.scss +67 -0
  138. package/styles/themes/neutral.scss +50 -0
  139. package/styles/themes/ntOS95.scss +166 -0
  140. package/styles/themes/ntos.scss +44 -0
  141. package/styles/themes/ntos_cat.scss +148 -0
  142. package/styles/themes/ntos_darkmode.scss +44 -0
  143. package/styles/themes/ntos_lightmode.scss +67 -0
  144. package/styles/themes/ntos_spooky.scss +69 -0
  145. package/styles/themes/ntos_synth.scss +99 -0
  146. package/styles/themes/ntos_terminal.scss +112 -0
  147. package/styles/themes/paper.scss +184 -0
  148. package/styles/themes/retro.scss +72 -0
  149. package/styles/themes/spookyconsole.scss +73 -0
  150. package/styles/themes/syndicate.scss +67 -0
  151. package/styles/themes/wizard.scss +68 -0
  152. package/tsconfig.json +34 -0
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:meta';
7
+ @use './base.scss';
8
+
9
+ // Core styles
10
+ @include meta.load-css('./reset.scss');
11
+
12
+ // Atomic classes
13
+ @include meta.load-css('./atomic/candystripe.scss');
14
+ @include meta.load-css('./atomic/centered-image.scss');
15
+ @include meta.load-css('./atomic/color.scss');
16
+ @include meta.load-css('./atomic/debug-layout.scss');
17
+ @include meta.load-css('./atomic/fit-text.scss');
18
+ @include meta.load-css('./atomic/links.scss');
19
+ @include meta.load-css('./atomic/outline.scss');
20
+ @include meta.load-css('./atomic/text.scss');
21
+
22
+ // Components
23
+ @include meta.load-css('./components/BlockQuote.scss');
24
+ @include meta.load-css('./components/Button.scss');
25
+ @include meta.load-css('./components/ColorBox.scss');
26
+ @include meta.load-css('./components/Dialog.scss');
27
+ @include meta.load-css('./components/Dimmer.scss');
28
+ @include meta.load-css('./components/Divider.scss');
29
+ @include meta.load-css('./components/Dropdown.scss');
30
+ @include meta.load-css('./components/Flex.scss');
31
+ @include meta.load-css('./components/Icon.scss');
32
+ @include meta.load-css('./components/Input.scss');
33
+ @include meta.load-css('./components/Knob.scss');
34
+ @include meta.load-css('./components/LabeledList.scss');
35
+ @include meta.load-css('./components/MenuBar.scss');
36
+ @include meta.load-css('./components/Modal.scss');
37
+ @include meta.load-css('./components/NoticeBox.scss');
38
+ @include meta.load-css('./components/NumberInput.scss');
39
+ @include meta.load-css('./components/ProgressBar.scss');
40
+ @include meta.load-css('./components/RoundGauge.scss');
41
+ @include meta.load-css('./components/SearchItem.scss');
42
+ @include meta.load-css('./components/Section.scss');
43
+ @include meta.load-css('./components/Slider.scss');
44
+ @include meta.load-css('./components/Stack.scss');
45
+ @include meta.load-css('./components/Table.scss');
46
+ @include meta.load-css('./components/Tabs.scss');
47
+ @include meta.load-css('./components/TextArea.scss');
48
+ @include meta.load-css('./components/Tooltip.scss');
49
+
50
+ // Interfaces
51
+ @include meta.load-css('./interfaces/AlertModal.scss');
52
+ @include meta.load-css('./interfaces/Changelog.scss');
53
+ @include meta.load-css('./interfaces/CrewManifest.scss');
54
+ @include meta.load-css('./interfaces/Emojipedia.scss');
55
+ @include meta.load-css('./interfaces/ExperimentConfigure.scss');
56
+ @include meta.load-css('./interfaces/Fabricator.scss');
57
+ @include meta.load-css('./interfaces/Fishing.scss');
58
+ @include meta.load-css('./interfaces/HellishRunes.scss');
59
+ @include meta.load-css('./interfaces/HotKeysHelp.scss');
60
+ @include meta.load-css('./interfaces/Hypertorus.scss');
61
+ @include meta.load-css('./interfaces/IntegratedCircuit.scss');
62
+ @include meta.load-css('./interfaces/LibraryAdmin.scss');
63
+ @include meta.load-css('./interfaces/LibraryComputer.scss');
64
+ @include meta.load-css('./interfaces/ListInput.scss');
65
+ @include meta.load-css('./interfaces/Mecha.scss');
66
+ @include meta.load-css('./interfaces/NtosMessenger.scss');
67
+ @include meta.load-css('./interfaces/NtosNotepad.scss');
68
+ @include meta.load-css('./interfaces/NuclearBomb.scss');
69
+ @include meta.load-css('./interfaces/Orbit.scss');
70
+ @include meta.load-css('./interfaces/Paper.scss');
71
+ @include meta.load-css('./interfaces/PersonalCrafting.scss');
72
+ @include meta.load-css('./interfaces/PreferencesMenu.scss');
73
+ @include meta.load-css('./interfaces/RequestManager.scss');
74
+ @include meta.load-css('./interfaces/Roulette.scss');
75
+ @include meta.load-css('./interfaces/Safe.scss');
76
+ @include meta.load-css('./interfaces/TachyonArray.scss');
77
+ @include meta.load-css('./interfaces/Techweb.scss');
78
+ @include meta.load-css('./interfaces/Trophycase.scss');
79
+ @include meta.load-css('./interfaces/Uplink.scss');
80
+ @include meta.load-css('./interfaces/UtilityModulesPane.scss');
81
+
82
+ // Layouts
83
+ @include meta.load-css('./layouts/Layout.scss');
84
+ @include meta.load-css('./layouts/NtosHeader.scss');
85
+ @include meta.load-css('./layouts/NtosWindow.scss');
86
+ @include meta.load-css('./layouts/TitleBar.scss');
87
+ @include meta.load-css('./layouts/Window.scss');
88
+
89
+ @include meta.load-css('highlight.js/scss/github-dark.scss');
90
+
91
+ // NT Theme
92
+ .Layout__content {
93
+ background-image: url('../assets/bg-nanotrasen.svg');
94
+ background-size: 70%;
95
+ background-position: center;
96
+ background-repeat: no-repeat;
97
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use "./base.scss";
7
+
8
+ html,
9
+ body {
10
+ box-sizing: border-box;
11
+ height: 100%;
12
+ margin: 0;
13
+ font-size: base.$font-size;
14
+ }
15
+
16
+ html {
17
+ overflow: hidden;
18
+ cursor: default; // Reset the cursor.
19
+ }
20
+
21
+ body {
22
+ overflow: auto;
23
+ font-family: Verdana, Geneva, sans-serif;
24
+ }
25
+
26
+ *,
27
+ *:before,
28
+ *:after {
29
+ box-sizing: inherit;
30
+ }
31
+
32
+ h1,
33
+ h2,
34
+ h3,
35
+ h4,
36
+ h5,
37
+ h6 {
38
+ display: block;
39
+ margin: 0;
40
+ padding: 6px 0;
41
+ padding: 0.5rem 0;
42
+ }
43
+
44
+ h1 {
45
+ font-size: 18px;
46
+ font-size: 1.5rem;
47
+ }
48
+
49
+ h2 {
50
+ font-size: 16px;
51
+ font-size: 1.333rem;
52
+ }
53
+
54
+ h3 {
55
+ font-size: 14px;
56
+ font-size: 1.167rem;
57
+ }
58
+
59
+ h4 {
60
+ font-size: 12px;
61
+ font-size: 1rem;
62
+ }
63
+
64
+ td,
65
+ th {
66
+ vertical-align: baseline;
67
+ text-align: left;
68
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #ad2350,
11
+ $fg-map-keys: (),
12
+ $bg-map-keys: ()
13
+ );
14
+ @use '../base.scss' with (
15
+ $color-bg: #2a314a,
16
+ $color-bg-grad-spread: 6%,
17
+ $border-radius: 2px
18
+ );
19
+
20
+ .theme-abductor {
21
+ // Atomic classes
22
+ @include meta.load-css('../atomic/color.scss');
23
+
24
+ // Components
25
+ @include meta.load-css(
26
+ '../components/Button.scss',
27
+ $with: (
28
+ 'color-default': colors.$primary,
29
+ 'color-disabled': #363636,
30
+ 'color-selected': #465899,
31
+ 'color-caution': #be6209,
32
+ 'color-danger': #9a9d00
33
+ )
34
+ );
35
+ @include meta.load-css(
36
+ '../components/Input.scss',
37
+ $with: ('border-color': #404b6e)
38
+ );
39
+ @include meta.load-css(
40
+ '../components/NoticeBox.scss',
41
+ $with: ('background-color': #a82d55)
42
+ );
43
+ @include meta.load-css(
44
+ '../components/NumberInput.scss',
45
+ $with: ('border-color': #404b6e)
46
+ );
47
+ @include meta.load-css(
48
+ '../components/ProgressBar.scss',
49
+ $with: ('background-color': rgba(0, 0, 0, 0.5))
50
+ );
51
+ @include meta.load-css('../components/Section.scss');
52
+ @include meta.load-css(
53
+ '../components/Tooltip.scss',
54
+ $with: ('background-color': #a82d55)
55
+ );
56
+
57
+ // Layouts
58
+ @include meta.load-css('../layouts/Layout.scss');
59
+ @include meta.load-css('../layouts/Window.scss');
60
+ @include meta.load-css(
61
+ '../layouts/TitleBar.scss',
62
+ $with: ('background-color': #9e1b46)
63
+ );
64
+
65
+ .Layout__content {
66
+ background-image: none;
67
+ }
68
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #1596b6,
11
+ $fg-map-keys: (),
12
+ $bg-map-keys: ()
13
+ );
14
+ @use '../base.scss' with (
15
+ $color-bg: #29333a,
16
+ $color-bg-grad-spread: 6%,
17
+ $border-radius: 2px
18
+ );
19
+
20
+ .theme-admin {
21
+ // Atomic classes
22
+ @include meta.load-css('../atomic/color.scss');
23
+
24
+ // Layouts
25
+ @include meta.load-css('../layouts/Layout.scss');
26
+ @include meta.load-css('../layouts/Window.scss');
27
+
28
+ .Layout__content {
29
+ background-image: url('../../assets/bg-admin.svg');
30
+ }
31
+
32
+ .candystripe:nth-child(odd) {
33
+ background-color: rgba(12, 49, 71, 0.25);
34
+ }
35
+ .candystripe:nth-child(even) {
36
+ background-color: rgba(33, 114, 206, 0.25);
37
+ }
38
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #000000,
11
+ $fg-map-keys: (),
12
+ $bg-map-keys: ()
13
+ );
14
+ @use '../base.scss' with (
15
+ $color-bg: #117039,
16
+ $color-bg-grad-spread: 0%,
17
+ $border-radius: 0
18
+ );
19
+
20
+ //Made for the roulette table, probably requires a bunch of manual hacks to work for anything else
21
+ .theme-cardtable {
22
+ // Atomic classes
23
+ @include meta.load-css('../atomic/color.scss');
24
+
25
+ // Components
26
+ @include meta.load-css(
27
+ '../components/Button.scss',
28
+ $with: (
29
+ 'color-default': #117039,
30
+ 'color-disabled': #363636,
31
+ 'color-selected': #9d0808,
32
+ 'color-caution': #be6209,
33
+ 'color-danger': #9a9d00
34
+ )
35
+ );
36
+ @include meta.load-css(
37
+ '../components/NumberInput.scss',
38
+ $with: ('border-color': #fff)
39
+ );
40
+ @include meta.load-css(
41
+ '../components/ProgressBar.scss',
42
+ $with: ('background-color': rgba(0, 0, 0, 0.5))
43
+ );
44
+ @include meta.load-css('../components/Section.scss');
45
+
46
+ // Layouts
47
+ @include meta.load-css('../layouts/Layout.scss');
48
+ @include meta.load-css('../layouts/Window.scss');
49
+ @include meta.load-css(
50
+ '../layouts/TitleBar.scss',
51
+ $with: ('background-color': #381608)
52
+ );
53
+
54
+ .Button {
55
+ border: base.em(2px) solid #fff;
56
+ }
57
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #00ff00,
11
+ $fg-map-keys: (),
12
+ $bg-map-keys: ()
13
+ );
14
+ @use '../base.scss' with (
15
+ $color-bg: #121b12,
16
+ $color-bg-grad-spread: 0%
17
+ );
18
+
19
+ .theme-hackerman {
20
+ // Atomic classes
21
+ @include meta.load-css('../atomic/color.scss');
22
+
23
+ // Components
24
+ @include meta.load-css(
25
+ '../components/Button.scss',
26
+ $with: (
27
+ 'color-default': colors.$primary,
28
+ 'color-disabled': #4a6a4a,
29
+ 'color-selected': #00ff00
30
+ )
31
+ );
32
+ @include meta.load-css(
33
+ '../components/Tabs.scss',
34
+ $with: (
35
+ 'color-default': colors.$primary,
36
+ 'tab-color-selected': #00ff003f,
37
+ 'text-color': #e7e7e7
38
+ )
39
+ );
40
+ @include meta.load-css(
41
+ '../components/Input.scss',
42
+ $with: ('border-color': colors.$primary)
43
+ );
44
+ @include meta.load-css('../components/Modal.scss');
45
+ @include meta.load-css('../components/Section.scss');
46
+
47
+ // Layouts
48
+ @include meta.load-css('../layouts/Layout.scss');
49
+ @include meta.load-css('../layouts/Window.scss');
50
+ @include meta.load-css(
51
+ '../layouts/TitleBar.scss',
52
+ $with: ('background-color': #223d22)
53
+ );
54
+
55
+ .Layout__content {
56
+ background-image: none;
57
+ }
58
+
59
+ .Button {
60
+ font-family: monospace;
61
+ border-width: base.em(2px);
62
+ border-style: outset;
63
+ border-color: #00aa00;
64
+ outline: base.em(1px) solid rgb(0, 122, 0);
65
+ }
66
+
67
+ .candystripe:nth-child(odd) {
68
+ background-color: rgba(0, 100, 0, 0.5);
69
+ }
70
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #910101,
11
+ $fg-map-keys: (),
12
+ $bg-map-keys: ()
13
+ );
14
+ @use '../base.scss' with (
15
+ $color-bg: #1b3443,
16
+ $color-bg-grad-spread: 6%
17
+ );
18
+
19
+ .theme-malfunction {
20
+ // Atomic classes
21
+ @include meta.load-css('../atomic/color.scss');
22
+
23
+ // Components
24
+ @include meta.load-css(
25
+ '../components/Button.scss',
26
+ $with: (
27
+ 'color-default': colors.$primary,
28
+ 'color-disabled': #363636,
29
+ 'color-selected': #1e5881,
30
+ 'color-caution': #be6209,
31
+ 'color-danger': #9a9d00
32
+ )
33
+ );
34
+ @include meta.load-css(
35
+ '../components/Input.scss',
36
+ $with: ('border-color': #910101)
37
+ );
38
+ @include meta.load-css(
39
+ '../components/NoticeBox.scss',
40
+ $with: ('background-color': #1a3f57)
41
+ );
42
+ @include meta.load-css(
43
+ '../components/NumberInput.scss',
44
+ $with: ('border-color': #910101)
45
+ );
46
+ @include meta.load-css(
47
+ '../components/ProgressBar.scss',
48
+ $with: ('background-color': rgba(0, 0, 0, 0.5))
49
+ );
50
+ @include meta.load-css('../components/Section.scss');
51
+ @include meta.load-css(
52
+ '../components/Tooltip.scss',
53
+ $with: ('background-color': #235577)
54
+ );
55
+
56
+ // Layouts
57
+ @include meta.load-css('../layouts/Layout.scss');
58
+ @include meta.load-css('../layouts/Window.scss');
59
+ @include meta.load-css(
60
+ '../layouts/TitleBar.scss',
61
+ $with: ('background-color': #1a3f57)
62
+ );
63
+
64
+ .Layout__content {
65
+ background-image: none;
66
+ }
67
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ $neutral: #ffb300;
10
+
11
+ @use '../colors.scss' with (
12
+ $primary: $neutral,
13
+ $fg-map-keys: (),
14
+ $bg-map-keys: ()
15
+ );
16
+ @use '../base.scss' with (
17
+ $color-bg: color.scale($neutral, $lightness: -40%),
18
+ $color-bg-grad-spread: 6%
19
+ );
20
+
21
+ .theme-neutral {
22
+ // Components
23
+ @include meta.load-css(
24
+ '../components/Button.scss',
25
+ $with: (
26
+ 'color-default': color.scale($neutral, $lightness: -30%),
27
+ 'color-transparent-text': color.scale($neutral, $lightness: 30%)
28
+ )
29
+ );
30
+ @include meta.load-css(
31
+ '../components/ProgressBar.scss',
32
+ $with: (
33
+ 'color-default-fill': $neutral,
34
+ 'background-color': rgba(0, 0, 0, 0.5)
35
+ )
36
+ );
37
+ @include meta.load-css('../components/Section.scss');
38
+
39
+ // Layouts
40
+ @include meta.load-css('../layouts/Layout.scss');
41
+ @include meta.load-css('../layouts/Window.scss');
42
+ @include meta.load-css(
43
+ '../layouts/TitleBar.scss',
44
+ $with: ('background-color': color.scale($neutral, $lightness: -25%))
45
+ );
46
+
47
+ .Layout__content {
48
+ background-image: url('../../assets/bg-neutral.svg');
49
+ }
50
+ }
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ $light-gray: #c3c3c3;
10
+ $dark-gray: #858585;
11
+ $scrollbar-color-multiplier: 1;
12
+
13
+ @use '../colors.scss' with (
14
+ $primary: #000000,
15
+ $good: #007c11,
16
+ $average: #f0ec11,
17
+ $bad: #db2828,
18
+ $label: #000000
19
+ );
20
+ @use '../base.scss' with (
21
+ $color-bg: #008081,
22
+ $color-bg-grad-spread: 0%,
23
+ $border-radius: 0
24
+ );
25
+
26
+ .theme-ntOS95 {
27
+ // Atomic classes
28
+ @include meta.load-css('../atomic/color.scss');
29
+
30
+ // Components
31
+ @include meta.load-css(
32
+ '../components/Button.scss',
33
+ $with: (
34
+ 'color-default': #e8e4c9,
35
+ 'color-disabled': #707070,
36
+ 'color-selected': #007c11,
37
+ 'color-caution': #be6209,
38
+ 'color-danger': #9d0808
39
+ )
40
+ );
41
+ @include meta.load-css(
42
+ '../components/ProgressBar.scss',
43
+ $with: ('background-color': rgba(0, 0, 0, 0.5))
44
+ );
45
+ @include meta.load-css(
46
+ '../components/Section.scss',
47
+ $with: ('background-color': rgba(0, 0, 0, 0.4))
48
+ );
49
+
50
+ @include meta.load-css(
51
+ '../components/Tooltip.scss',
52
+ $with: ('background-color': #ecee9e)
53
+ );
54
+ // Layouts
55
+ @include meta.load-css('../layouts/Layout.scss');
56
+ @include meta.load-css('../layouts/Window.scss');
57
+ @include meta.load-css(
58
+ '../layouts/TitleBar.scss',
59
+ $with: ('background-color': #000080)
60
+ );
61
+
62
+ .Button {
63
+ color: #161613;
64
+ background-color: #c2c2c2;
65
+ //border: base.em(2px) outset #E8E4C9;
66
+ outline: base.em(2px) outset #c3c3c3;
67
+ }
68
+ .Button:hover {
69
+ background-color: #002ead;
70
+ transition: 0.1s;
71
+ }
72
+
73
+ .Section {
74
+ &__titleText {
75
+ color: black;
76
+ }
77
+ color: black;
78
+ background-color: #c0c0c0;
79
+ outline: base.em(2px) outset #c3c3c3;
80
+ }
81
+
82
+ .Input {
83
+ background-color: white;
84
+ outline: base.em(2px) inset #c3c3c3;
85
+ color: black;
86
+ &__input:-ms-input-placeholder {
87
+ color: black;
88
+ }
89
+ }
90
+
91
+ .TextArea {
92
+ background-color: white;
93
+ outline: base.em(2px) inset #c3c3c3;
94
+ }
95
+
96
+ .Layout__content {
97
+ background-image: none;
98
+ }
99
+ .Layout,
100
+ .Layout * {
101
+ // Fancy scrollbar
102
+ scrollbar-base-color: color.scale(
103
+ $light-gray,
104
+ $lightness: -25% * $scrollbar-color-multiplier
105
+ );
106
+ scrollbar-face-color: color.scale(
107
+ $light-gray,
108
+ $lightness: 10% * $scrollbar-color-multiplier
109
+ );
110
+
111
+ scrollbar-3dlight-color: color.scale(
112
+ $light-gray,
113
+ $lightness: 0% * $scrollbar-color-multiplier
114
+ );
115
+ scrollbar-highlight-color: color.scale(
116
+ $light-gray,
117
+ $lightness: 0% * $scrollbar-color-multiplier
118
+ );
119
+ scrollbar-track-color: color.scale(
120
+ $light-gray,
121
+ $lightness: -25% * $scrollbar-color-multiplier
122
+ );
123
+ scrollbar-arrow-color: color.scale(
124
+ $light-gray,
125
+ $lightness: 50% * $scrollbar-color-multiplier
126
+ );
127
+ scrollbar-shadow-color: color.scale(
128
+ $light-gray,
129
+ $lightness: 10% * $scrollbar-color-multiplier
130
+ );
131
+ }
132
+
133
+ .Tab {
134
+ color: #000000;
135
+ background-color: #ecee9e;
136
+ }
137
+
138
+ .Tab--selected {
139
+ color: #9d0808;
140
+ background-color: #c3c3c3;
141
+ }
142
+
143
+ body {
144
+ overflow: auto;
145
+ font-family: ui-sans-serif;
146
+ }
147
+ .ProgressBar {
148
+ color: white;
149
+ }
150
+
151
+ .Table__cell {
152
+ display: table-cell;
153
+ padding: 0 0.25em;
154
+ background-color: #c3c3c3;
155
+ //outline: base.em(3px) outset #c0c0c0
156
+ }
157
+ .Box {
158
+ outline: base.em(3px) outset #c0c0c0;
159
+ }
160
+ .Tooltip {
161
+ color: black;
162
+ }
163
+ .NtosWindow__header {
164
+ background-color: $dark-gray;
165
+ }
166
+ }