|
13 | 13 |
|
14 | 14 | class ThemeStyles |
15 | 15 | { |
| 16 | + |
16 | 17 | // to maintain BC w/ old names that were defined in LESS |
17 | 18 | private static $propertyNamesToLessVariableNames = [ |
18 | 19 | 'fontFamilyBase' => 'theme-fontFamily-base', |
@@ -49,162 +50,168 @@ class ThemeStyles |
49 | 50 | ]; |
50 | 51 |
|
51 | 52 | /** |
52 | | - * @var string |
| 53 | + * @var boolean |
| 54 | + */ |
| 55 | + public $isDarkMode = false; |
| 56 | + |
| 57 | + /** |
| 58 | + * @var string|array<string> |
53 | 59 | */ |
54 | 60 | public $fontFamilyBase = '-apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, Oxygen-Sans, Cantarell, \'Helvetica Neue\', sans-serif'; |
55 | 61 |
|
56 | 62 | /** |
57 | | - * @var string |
| 63 | + * @var string|array<string> |
58 | 64 | */ |
59 | | - public $colorBrand = '#43a047'; |
| 65 | + public $colorBrand = ['#43a047', '#778fd4']; |
60 | 66 |
|
61 | 67 | /** |
62 | | - * @var string |
| 68 | + * @var string|array<string> |
63 | 69 | */ |
64 | | - public $colorBrandContrast = '#fff'; |
| 70 | + public $colorBrandContrast = ['#fff', '#ffffff']; |
65 | 71 |
|
66 | 72 | /** |
67 | | - * @var string |
| 73 | + * @var string|array<string> |
68 | 74 | */ |
69 | 75 | public $colorFocusRing = '#0969da'; |
70 | 76 |
|
71 | 77 | /** |
72 | | - * @var string |
| 78 | + * @var string|array<string> |
73 | 79 | */ |
74 | 80 | public $colorFocusRingAlternative; |
75 | 81 |
|
76 | 82 | /** |
77 | | - * @var string |
| 83 | + * @var string|array<string> |
78 | 84 | */ |
79 | | - public $colorText = '#212121'; |
| 85 | + public $colorText = ['#212121', '#fff']; |
80 | 86 |
|
81 | 87 | /** |
82 | | - * @var string |
| 88 | + * @var string|array<string> |
83 | 89 | */ |
84 | | - public $colorTextLight = '#444'; |
| 90 | + public $colorTextLight = ['#444', '#ccc']; |
85 | 91 |
|
86 | 92 | /** |
87 | | - * @var string |
| 93 | + * @var string|array<string> |
88 | 94 | */ |
89 | | - public $colorTextLighter = '#666666'; |
| 95 | + public $colorTextLighter = ['#666666', '#aaa']; |
90 | 96 |
|
91 | 97 | /** |
92 | | - * @var string |
| 98 | + * @var string|array<string> |
93 | 99 | */ |
94 | | - public $colorTextContrast = '#37474f'; |
| 100 | + public $colorTextContrast = ['#37474f', '#fff']; |
95 | 101 |
|
96 | 102 | /** |
97 | | - * @var string |
| 103 | + * @var string|array<string> |
98 | 104 | */ |
99 | | - public $colorLink = '#1976D2'; |
| 105 | + public $colorLink = ['#1976D2', '#778fd4']; |
100 | 106 |
|
101 | 107 | /** |
102 | | - * @var string |
| 108 | + * @var string|array<string> |
103 | 109 | */ |
104 | 110 | public $colorBaseSeries = '#ee3024'; |
105 | 111 |
|
106 | 112 | /** |
107 | | - * @var string |
| 113 | + * @var string|array<string> |
108 | 114 | */ |
109 | 115 | public $colorHeadlineAlternative = '#4E4E4E'; |
110 | 116 |
|
111 | 117 | /** |
112 | | - * @var string |
| 118 | + * @var string|array<string> |
113 | 119 | */ |
114 | | - public $colorHeaderBackground = '#3450A3'; |
| 120 | + public $colorHeaderBackground = ['#3450A3', '#2b3138']; |
115 | 121 |
|
116 | 122 | /** |
117 | | - * @var string |
| 123 | + * @var string|array<string> |
118 | 124 | */ |
119 | 125 | public $colorHeaderText = '#fff'; |
120 | 126 |
|
121 | 127 | /** |
122 | | - * @var string |
| 128 | + * @var string|array<string> |
123 | 129 | */ |
124 | 130 | public $colorMenuContrastText; |
125 | 131 |
|
126 | 132 | /** |
127 | | - * @var string |
| 133 | + * @var string|array<string> |
128 | 134 | */ |
129 | 135 | public $colorMenuContrastTextSelected; |
130 | 136 |
|
131 | 137 | /** |
132 | | - * @var string |
| 138 | + * @var string|array<string> |
133 | 139 | */ |
134 | | - public $colorMenuContrastTextActive = '#3450A3'; |
| 140 | + public $colorMenuContrastTextActive = ['#3450A3', '#fff']; |
135 | 141 |
|
136 | 142 | /** |
137 | | - * @var string |
| 143 | + * @var string|array<string> |
138 | 144 | */ |
139 | 145 | public $colorMenuContrastBackground; |
140 | 146 |
|
141 | 147 | /** |
142 | | - * @var string |
| 148 | + * @var string|array<string> |
143 | 149 | */ |
144 | 150 | public $colorWidgetExportedBackgroundBase; |
145 | 151 |
|
146 | 152 | /** |
147 | | - * @var string |
| 153 | + * @var string|array<string> |
148 | 154 | */ |
149 | 155 | public $colorWidgetTitleText; |
150 | 156 |
|
151 | 157 | /** |
152 | | - * @var string |
| 158 | + * @var string|array<string> |
153 | 159 | */ |
154 | 160 | public $colorWidgetTitleBackground; |
155 | 161 |
|
156 | 162 | /** |
157 | | - * @var string |
| 163 | + * @var string|array<string> |
158 | 164 | */ |
159 | | - public $colorBackgroundBase = '#eff0f1'; |
| 165 | + public $colorBackgroundBase = ['#eff0f1', '#202329']; |
160 | 166 |
|
161 | 167 | /** |
162 | | - * @var string |
| 168 | + * @var string|array<string> |
163 | 169 | */ |
164 | 170 | public $colorBackgroundTinyContrast = '#f2f2f2'; |
165 | 171 |
|
166 | 172 | /** |
167 | | - * @var string |
| 173 | + * @var string|array<string> |
168 | 174 | */ |
169 | 175 | public $colorBackgroundLowContrast = '#d9d9d9'; |
170 | 176 |
|
171 | 177 | /** |
172 | | - * @var string |
| 178 | + * @var string|array<string> |
173 | 179 | */ |
174 | | - public $colorBackgroundContrast = '#fff'; |
| 180 | + public $colorBackgroundContrast = ['#fff', '#2b3138']; |
175 | 181 |
|
176 | 182 | /** |
177 | | - * @var string |
| 183 | + * @var string|array<string> |
178 | 184 | */ |
179 | 185 | public $colorBackgroundHighContrast = '#202020'; |
180 | 186 |
|
181 | 187 | /** |
182 | | - * @var string |
| 188 | + * @var string|array<string> |
183 | 189 | */ |
184 | 190 | public $colorBorder = '#cccccc'; |
185 | 191 |
|
186 | 192 | /** |
187 | | - * @var string |
| 193 | + * @var string|array<string> |
188 | 194 | */ |
189 | 195 | public $colorCode = '#f3f3f3'; |
190 | 196 |
|
191 | 197 | /** |
192 | | - * @var string |
| 198 | + * @var string|array<string> |
193 | 199 | */ |
194 | 200 | public $colorCodeBackground = '#4d4d4d'; |
195 | 201 |
|
196 | 202 | /** |
197 | | - * @var string |
| 203 | + * @var string|array<string> |
198 | 204 | */ |
199 | 205 | public $colorWidgetBackground; |
200 | 206 |
|
201 | 207 | /** |
202 | | - * @var string |
| 208 | + * @var string|array<string> |
203 | 209 | */ |
204 | 210 | public $colorWidgetBorder; |
205 | 211 |
|
206 | | - public function __construct() |
| 212 | + public function __construct($isDarkMode = true) |
207 | 213 | { |
| 214 | + $this->isDarkMode = $isDarkMode; |
208 | 215 | $this->colorFocusRingAlternative = $this->colorBrand; |
209 | 216 | $this->colorMenuContrastText = $this->colorText; |
210 | 217 | $this->colorMenuContrastTextSelected = $this->colorMenuContrastText; |
@@ -235,6 +242,9 @@ public function toLessCode() |
235 | 242 | { |
236 | 243 | $result = ''; |
237 | 244 | foreach (get_object_vars($this) as $name => $value) { |
| 245 | + if (is_array($value)) { |
| 246 | + $value = $this->isDarkMode ? $value[1] : $value[0]; |
| 247 | + } |
238 | 248 | $varName = isset(self::$propertyNamesToLessVariableNames[$name]) ? self::$propertyNamesToLessVariableNames[$name] : $this->getGenericThemeVarName($name); |
239 | 249 | $result .= "@$varName: $value;\n"; |
240 | 250 | } |
|
0 commit comments