├── LICENSE ├── README.md └── style.css /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JavaFX-Dark-Theme :waning_crescent_moon: 2 | A complete CSS stylesheet to set a dark theme in your JavaFX UI. 3 | 4 | Built on top of the default JavaFX theme (Modena) 5 | 6 |
7 | 8 | ## How to use 9 | - **Load via FXML:** 10 | 11 | 12 | Add `stylesheets="@style.css"` to the top-level FXML tag. 13 | 14 |
15 | 16 | - **Load via Java:** 17 | Add the following code: 18 | ``` 19 | File style = new File("relative-path/style.css"); 20 | scene.getStylesheets().add(style.toURI().toURL().toExternalForm()); 21 | ``` 22 | or (online version) 23 | ``` 24 | scene.getStylesheets().add("https://raw.githubusercontent.com/antoniopelusi/JavaFX-Dark-Theme/main/style.css"); 25 | ``` 26 | 27 |
28 | 29 | ## CSS preview example 30 | See this theme in action [**here**](https://github.com/antoniopelusi/KeyHolder-desktop)! 31 | 32 | 33 |
34 | 35 | ## List of JavaFX recolored elements 36 | - Label 37 | - Pane 38 | - GridPane 39 | - TextField 40 | - ComboBox 41 | - ChoiceBox 42 | - ListCell 43 | - ListView 44 | - Button 45 | - CheckBox 46 | - TextArea 47 | - ScrollBar 48 | - Menu 49 | - ProgressBar 50 | - Slider 51 | - TreeView 52 | - Tab 53 | - TitledPane 54 | - TableView 55 | - Tooltip 56 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Author: Antonio Pelusi 4 | * Website: https://www.antoniopelusi.com 5 | * Source code: https://github.com/antoniopelusi/JavaFX-Dark-Theme 6 | * 7 | */ 8 | 9 | .root{ 10 | -fx-background-color: #2D2D30; 11 | background-color: #2D2D30; 12 | } 13 | 14 | 15 | /* Label */ 16 | .label{ 17 | -fx-text-fill: #AFB1B3; 18 | } 19 | 20 | 21 | /* Pane */ 22 | .pane-grid{ 23 | -fx-background-color: #2D2D30; 24 | background-color: #2D2D30; 25 | } 26 | 27 | 28 | /* GridPane */ 29 | .tab-pane-grid{ 30 | /* 31 | * GridPane gridPane = new GridPane(); 32 | * gridPane.getStyleClass().add("tab-pane-grid"); 33 | * gridPane.setPadding(new Insets(3,0,0,0)); 34 | */ 35 | -fx-background-color: #2D2D30; 36 | background-color: #2D2D30; 37 | -fx-background-insets: 3 0 0 0; 38 | } 39 | 40 | 41 | /* TextField */ 42 | .text-field{ 43 | -fx-background-radius: 0; 44 | -fx-border-width: 1; 45 | border-width: 1; 46 | -fx-border-color: #222222; 47 | border-color: #222222; 48 | -fx-background-color: #1A1A1A; 49 | background-color: #1A1A1A; 50 | -fx-text-fill: #AFB1B3; 51 | -fx-highlight-fill: #4e4e4e; 52 | -fx-min-height: 25; 53 | min-height: 25; 54 | -fx-pref-height: 25; 55 | } 56 | .text-field:hover{ 57 | -fx-border-color: #222222; 58 | border-color: #222222; 59 | -fx-background-color: #3E3E40; 60 | background-color: #3E3E40; 61 | } 62 | .text-field:focused{ 63 | -fx-border-color: #4e4e4e; 64 | border-color: #4e4e4e; 65 | -fx-background-color: #1A1A1A; 66 | background-color: #1A1A1A; 67 | } 68 | 69 | 70 | /* ComboBox */ 71 | .combo-box{ 72 | -fx-background-radius: 0; 73 | -fx-border-insets: 0 0 -1 0; 74 | -fx-border-width: 1; 75 | border-width: 1; 76 | -fx-border-color: #222222; 77 | border-color: #222222; 78 | -fx-background-color: #1A1A1A; 79 | background-color: #1A1A1A; 80 | -fx-min-height: 25; 81 | min-height: 25; 82 | -fx-pref-height: 25; 83 | } 84 | .combo-box .list-cell:selected{ 85 | -fx-background-color: #1A1A1A; 86 | background-color: #1A1A1A; 87 | } 88 | .combo-box .list-cell:hover{ 89 | -fx-background-color: #3E3E40; 90 | background-color: #3E3E40; 91 | } 92 | .combo-box:hover{ 93 | -fx-border-color: #222222; 94 | border-color: #222222; 95 | -fx-background-color: #3E3E40; 96 | background-color: #3E3E40; 97 | -fx-cursor: HAND; 98 | cursor: HAND; 99 | } 100 | .combo-box:focused{ 101 | -fx-border-color: #4e4e4e; 102 | border-color: #4e4e4e; 103 | -fx-background-color: #1A1A1A; 104 | background-color: #1A1A1A; 105 | } 106 | .combo-box-base > .arrow-button { 107 | -fx-padding: 0 6; 108 | padding: 0 6; 109 | } 110 | .combo-box-base > .arrow-button > .arrow { 111 | -fx-background-color: #555555; 112 | background-color: #555555; 113 | -fx-background-insets: 0; 114 | -fx-padding: 2 4; 115 | padding: 2 4; 116 | -fx-shape: "M 0 0 H 7 L 3.5 4 z"; 117 | } 118 | .combo-box .list-view{ 119 | -fx-background-radius: 0; 120 | -fx-background-color: #1A1A1A; 121 | background-color: #1A1A1A; 122 | -fx-border-width: 0; 123 | border-width: 0; 124 | -fx-padding: 1; 125 | padding: 1; 126 | } 127 | 128 | /* ChoiceBox */ 129 | .choice-box{ 130 | -fx-background-radius: 0; 131 | -fx-border-insets: 0 0 -1 0; 132 | -fx-border-width: 1; 133 | border-width: 1; 134 | -fx-border-color: #222222; 135 | border-color: #222222; 136 | -fx-background-color: #1A1A1A; 137 | background-color: #1A1A1A; 138 | -fx-min-height: 25; 139 | min-height: 25; 140 | -fx-pref-height: 25; 141 | } 142 | .choice-box:hover{ 143 | -fx-border-color: #222222; 144 | border-color: #222222; 145 | -fx-background-color: #3E3E40; 146 | background-color: #3E3E40; 147 | -fx-cursor: HAND; 148 | cursor: HAND; 149 | } 150 | .choice-box:focused{ 151 | -fx-border-color: #4e4e4e; 152 | border-color: #4e4e4e; 153 | -fx-background-color: #1A1A1A; 154 | background-color: #1A1A1A; 155 | } 156 | 157 | /* ListCell */ 158 | .list-cell{ 159 | -fx-background-radius: 0; 160 | -fx-border-width: 0; 161 | border-width: 0; 162 | -fx-text-fill: #AFB1B3; 163 | -fx-background-color: #1A1A1A; 164 | background-color: #1A1A1A; 165 | -fx-min-height: 18; 166 | min-height: 18; 167 | -fx-pref-height: 18; 168 | -fx-padding: 0 0 0 3; 169 | padding: 0 0 0 3; 170 | } 171 | .list-cell:hover{ 172 | -fx-background-color: #3E3E40; 173 | background-color: #3E3E40; 174 | -fx-cursor: HAND; 175 | cursor: HAND; 176 | } 177 | .list-cell:pressed{ 178 | -fx-background-color: #3E3E40; 179 | background-color: #3E3E40; 180 | } 181 | .list-cell:selected{ 182 | -fx-background-color: #3E3E40; 183 | background-color: #3E3E40; 184 | } 185 | 186 | 187 | /* ListView */ 188 | .list-view{ 189 | -fx-background-radius: 0; 190 | -fx-background-color: #1A1A1A; 191 | background-color: #1A1A1A; 192 | -fx-border-width: 1; 193 | border-width: 1; 194 | -fx-padding: 1; 195 | padding: 1; 196 | } 197 | .list-view .scroll-bar{ 198 | -fx-background-insets: 0 -1 0 0; 199 | } 200 | .list-view .scroll-bar .thumb{ 201 | -fx-background-insets: 0 3 0 2; 202 | } 203 | .list-view:hover{ 204 | -fx-border-color: #3E3E40; 205 | border-color: #3E3E40; 206 | -fx-padding: 0; 207 | padding: 0; 208 | -fx-background-insets: 1 1 0 1; 209 | } 210 | .list-view:focused{ 211 | -fx-background-color: #1A1A1A; 212 | background-color: #1A1A1A; 213 | -fx-border-color: #4e4e4e; 214 | border-color: #4e4e4e; 215 | -fx-padding: 0 0 1 0; 216 | padding: 0 0 1 0; 217 | -fx-background-insets: 1; 218 | } 219 | 220 | 221 | /* Button */ 222 | .button{ 223 | -fx-background-radius: 0; 224 | -fx-border-insets: 0 0 -1 0; 225 | -fx-border-width: 1; 226 | border-width: 1; 227 | -fx-border-color: #222222; 228 | border-color: #222222; 229 | -fx-background-color: #1A1A1A; 230 | background-color: #1A1A1A; 231 | -fx-text-fill: #AFB1B3; 232 | -fx-min-height: 25; 233 | min-height: 25; 234 | -fx-pref-height: 25; 235 | } 236 | .button:focused{ 237 | -fx-border-color: #4e4e4e; 238 | border-color: #4e4e4e; 239 | -fx-background-color: #1A1A1A; 240 | background-color: #1A1A1A; 241 | } 242 | .button:hover{ 243 | -fx-border-color: #222222; 244 | border-color: #222222; 245 | -fx-background-color: #3E3E40; 246 | background-color: #3E3E40; 247 | -fx-cursor: HAND; 248 | cursor: HAND; 249 | } 250 | .button:pressed{ 251 | -fx-border-color: #4e4e4e; 252 | border-color: #4e4e4e; 253 | -fx-background-color: #4e4e4e; 254 | background-color: #4e4e4e; 255 | -fx-cursor: HAND; 256 | cursor: HAND; 257 | } 258 | 259 | 260 | /* CheckBox */ 261 | .check-box{ 262 | -fx-background-radius: 0; 263 | -fx-border-width: 0; 264 | border-width: 0; 265 | -fx-insets: 0 0 0 -1; 266 | -fx-background-color: transparent; 267 | background-color: transparent; 268 | -fx-text-fill: #AFB1B3; 269 | -fx-min-height: 25; 270 | min-height: 25; 271 | -fx-pref-height: 25; 272 | } 273 | .check-box > .box{ 274 | -fx-background-radius: 0; 275 | -fx-border-width: 1; 276 | border-width: 1; 277 | -fx-border-color: #222222; 278 | border-color: #222222; 279 | -fx-insets: 0 0 -1 0; 280 | -fx-background-color: #1A1A1A; 281 | background-color: #1A1A1A; 282 | } 283 | .check-box:focused > .box{ 284 | -fx-border-color: #4e4e4e; 285 | border-color: #4e4e4e; 286 | } 287 | .check-box:hover > .box{ 288 | -fx-background-color: #3E3E40; 289 | background-color: #3E3E40; 290 | -fx-background-insets: 0 0 1 0; 291 | -fx-cursor: HAND; 292 | cursor: HAND; 293 | } 294 | .check-box > .box > .mark{ 295 | -fx-background-color: transparent; 296 | background-color: transparent; 297 | -fx-shape: "M 9.97498 1.22334L 4.6983 9.09834 L 4.52164 9.09834 L 0 5.19331 L 1.27664 3.52165 L 4.255 6.08833 L 8.33331 1.52588e-005 L 9.97498 1.22334 Z " ; 298 | } 299 | .check-box:selected > .box > .mark{ 300 | -fx-background-color: #AFB1B3; 301 | background-color: #AFB1B3; 302 | } 303 | .check-box:pressed > .box > .mark{ 304 | -fx-background-color: #4e4e4e; 305 | background-color: #4e4e4e; 306 | } 307 | 308 | 309 | /* TextArea */ 310 | .text-area{ 311 | -fx-background-radius: 0; 312 | -fx-border-width: 1; 313 | border-width: 1; 314 | -fx-border-color: #222222; 315 | border-color: #222222; 316 | -fx-text-fill: #AFB1B3; 317 | -fx-highlight-fill: #4e4e4e; 318 | -fx-background-color: #1A1A1A; 319 | background-color: #1A1A1A; 320 | } 321 | .text-area:hover{ 322 | -fx-border-color: #3E3E40; 323 | border-color: #3E3E40; 324 | } 325 | .text-area:focused{ 326 | -fx-border-color: #4e4e4e; 327 | border-color: #4e4e4e; 328 | -fx-background-color: #1A1A1A; 329 | background-color: #1A1A1A; 330 | } 331 | .text-area .content{ 332 | -fx-background-radius: 0; 333 | -fx-border-width: 0; 334 | border-width: 0; 335 | -fx-background-radius: 0; 336 | -fx-background-color: #1A1A1A; 337 | background-color: #1A1A1A; 338 | } 339 | .text-area .scroll-bar{ 340 | -fx-background-insets: 0 -0.5 0.5 0; 341 | } 342 | .text-area .scroll-bar .thumb{ 343 | -fx-background-insets: 0 2 0 2; 344 | } 345 | 346 | 347 | /* ScrollBar */ 348 | .scroll-bar{ 349 | -fx-background-radius: 0; 350 | -fx-background-color: #2A2A2C; 351 | background-color: #2A2A2C; 352 | } 353 | .scroll-bar:vertical{ 354 | -fx-background-radius: 0; 355 | -fx-background-color: #2A2A2C; 356 | background-color: #2A2A2C; 357 | } 358 | .scroll-bar > .decrement-button{ 359 | -fx-background-color: #2A2A2C; 360 | background-color: #2A2A2C; 361 | -fx-background-radius: 0; 362 | -fx-border-width: 0; 363 | border-width: 0; 364 | -fx-cursor: HAND; 365 | cursor: HAND; 366 | } 367 | .scroll-bar .decrement-button, 368 | .scroll-bar .increment-button{ 369 | -fx-cursor: HAND; 370 | cursor: HAND; 371 | -fx-border-width: 0; 372 | border-width: 0; 373 | -fx-background-radius: 0; 374 | } 375 | .scroll-bar .decrement-button:hover, 376 | .scroll-bar .increment-button:hover{ 377 | -fx-background-color: #4e4e4e; 378 | background-color: #4e4e4e; 379 | } 380 | .scroll-bar:vertical .increment-arrow, 381 | .scroll-bar:vertical .decrement-arrow, 382 | .scroll-bar:horizontal .increment-arrow, 383 | .scroll-bar:horizontal .decrement-arrow{ 384 | -fx-shape : " "; 385 | } 386 | .scroll-bar:horizontal .thumb, 387 | .scroll-bar:vertical .thumb { 388 | -fx-background-color: #3D3D3D; 389 | background-color: #3D3D3D; 390 | -fx-background-radius : 0; 391 | -fx-cursor: HAND; 392 | cursor: HAND; 393 | } 394 | 395 | 396 | /* Menu */ 397 | .menu-bar { 398 | -fx-background-color: #2D2D30; 399 | background-color: #2D2D30; 400 | -fx-border-width: 0; 401 | border-width: 0; 402 | } 403 | .menu-bar .menu-button{ 404 | -fx-background: #4e4e4e; 405 | background: #4e4e4e; 406 | -fx-text-fill: #AFB1B3; 407 | -fx-min-height: 20; 408 | min-height: 20; 409 | -fx-pref-height: 20; 410 | -fx-padding: 0 5 0 5; 411 | padding: 0 5 0 5; 412 | -fx-cursor: HAND; 413 | cursor: HAND; 414 | } 415 | .menu-item{ 416 | -fx-background-radius: 0; 417 | -fx-border-width: 0; 418 | border-width: 0; 419 | -fx-text-fill: #AFB1B3; 420 | -fx-background-color: #1A1A1A; 421 | background-color: #1A1A1A; 422 | } 423 | .menu-item:hover { 424 | -fx-background-color: #3E3E40; 425 | background-color: #3E3E40; 426 | -fx-cursor: HAND; 427 | cursor: HAND; 428 | } 429 | .menu-item:pressed { 430 | -fx-background-color: #4e4e4e; 431 | background-color: #4e4e4e; 432 | -fx-cursor: HAND; 433 | cursor: HAND; 434 | } 435 | .context-menu { 436 | -fx-background-color: #1A1A1A; 437 | background-color: #1A1A1A; 438 | -fx-border-width: 0; 439 | border-width: 0; 440 | -fx-padding: 0 0 -1 0; 441 | padding: 0 0 -1 0; 442 | } 443 | 444 | 445 | /* ProgressBar */ 446 | .progress-bar{ 447 | -fx-background-color: transparent; 448 | background-color: transparent; 449 | } 450 | .progress-bar .bar{ 451 | -fx-background-color: #4e4e4e; 452 | background-color: #4e4e4e; 453 | -fx-background-radius: 0; 454 | -fx-padding: 3; 455 | padding: 3; 456 | -fx-background-insets: 0; 457 | } 458 | .progress-bar .track { 459 | -fx-background-color: transparent; 460 | background-color: transparent; 461 | -fx-background-radius: 0; 462 | } 463 | 464 | 465 | /* Slider */ 466 | .slider{ 467 | -fx-text-fill: #AFB1B3; 468 | } 469 | .slider .track{ 470 | -fx-background-color: #1A1A1A; 471 | background-color: #1A1A1A; 472 | -fx-background-radius: 0; 473 | -fx-background-insets: 2 -2 1 0; 474 | } 475 | .slider .thumb{ 476 | -fx-background-color: #B1B1B1; 477 | background-color: #B1B1B1; 478 | -fx-background-radius: 6; 479 | -fx-background-insets: 1 0 1 2; 480 | -fx-border-radius: 6; 481 | border-radius: 6; 482 | -fx-border-insets: 1 0 1 2; 483 | -fx-pref-width: 12; 484 | -fx-pref-height: 12; 485 | -fx-cursor: HAND; 486 | cursor: HAND; 487 | } 488 | .slider:focused .thumb{ 489 | -fx-border-color: #4e4e4e; 490 | border-color: #4e4e4e; 491 | } 492 | .slider .thumb:hover{ 493 | -fx-background-color: #3E3E40; 494 | background-color: #3E3E40; 495 | } 496 | .slider .thumb:pressed{ 497 | -fx-background-color: #4e4e4e; 498 | background-color: #4e4e4e; 499 | } 500 | 501 | 502 | /* TreeView */ 503 | .tree-view .scroll-bar{ 504 | -fx-background-insets: 0 -1 0 0; 505 | } 506 | .tree-view .scroll-bar .thumb{ 507 | -fx-background-insets: 0 3 0 2; 508 | } 509 | .tree-view { 510 | -fx-background-insets: 2; 511 | -fx-background-color: #1A1A1A; 512 | background-color: #1A1A1A; 513 | -fx-border-width: 1; 514 | border-width: 1; 515 | -fx-border-color: #222222; 516 | border-color: #222222; 517 | -fx-padding: 0 0 1 0; 518 | padding: 0 0 1 0; 519 | } 520 | .tree-view:hover{ 521 | -fx-border-color: #3E3E40; 522 | border-color: #3E3E40; 523 | } 524 | .tree-view:focused { 525 | -fx-border-color: #4e4e4e; 526 | border-color: #4e4e4e; 527 | } 528 | .tree-cell{ 529 | -fx-background-color: #1A1A1A; 530 | background-color: #1A1A1A; 531 | -fx-text-fill: #AFB1B3; 532 | -fx-border-width: 0; 533 | border-width: 0; 534 | -fx-pref-width: 20; 535 | -fx-pref-height: 20; 536 | -fx-padding: 1; 537 | padding: 1; 538 | -fx-cursor: HAND; 539 | cursor: HAND; 540 | } 541 | .tree-cell:hover{ 542 | -fx-background-color: #3E3E40; 543 | background-color: #3E3E40; 544 | } 545 | .tree-cell:selected{ 546 | -fx-background-color: #3E3E40; 547 | background-color: #3E3E40; 548 | } 549 | .tree-cell:pressed{ 550 | -fx-background-color: #4e4e4e; 551 | background-color: #4e4e4e; 552 | } 553 | .tree-cell > .tree-disclosure-node > .arrow 554 | { 555 | -fx-background-color: #555555; 556 | background-color: #555555; 557 | } 558 | .tree-cell:hover > .tree-disclosure-node > .arrow 559 | { 560 | -fx-background-color: #4e4e4e; 561 | background-color: #4e4e4e; 562 | } 563 | 564 | 565 | /* Tab */ 566 | .tab-pane{ 567 | -fx-background-color: #4e4e4e; 568 | background-color: #4e4e4e; 569 | -fx-border-width: 1; 570 | border-width: 1; 571 | -fx-border-color: transparent; 572 | border-color: transparent; 573 | -fx-background-insets: 25.5 0 0 0; 574 | } 575 | .tab{ 576 | -fx-background-radius: 0; 577 | -fx-border-width: 0; 578 | border-width: 0; 579 | -fx-background-color: #3E3E40; 580 | background-color: #3E3E40; 581 | -fx-text-fill: #AFB1B3; 582 | -fx-min-height: 20; 583 | min-height: 20; 584 | -fx-pref-height: 20; 585 | } 586 | .tab:selected{ 587 | -fx-background-color: #4e4e4e; 588 | background-color: #4e4e4e; 589 | } 590 | .tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator { 591 | -fx-border-color: transparent; 592 | border-color: transparent; 593 | } 594 | .tab .tab-close-button { 595 | -fx-shape: "M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"; 596 | -fx-background-color: #AFB1B3; 597 | background-color: #AFB1B3; 598 | -fx-background-insets: 2; 599 | -fx-margin: 0 0 -5 2; 600 | margin: 0 0 -5 2; 601 | -fx-cursor: HAND; 602 | cursor: HAND; 603 | } 604 | .tab .tab-label { 605 | -fx-text-fill: #AFB1B3; 606 | } 607 | .tab-pane .tab-header-area .tab-header-background { 608 | -fx-opacity: 0.0; 609 | opacity: 0.0; 610 | } 611 | 612 | 613 | /* TitledPane */ 614 | .titled-pane{ 615 | -fx-text-fill: #AFB1B3; 616 | -fx-label-padding: 0 0 -7 0; 617 | -fx-background-color: transparent; 618 | background-color: transparent; 619 | } 620 | .titled-pane .title{ 621 | -fx-background-color: #3E3E42; 622 | background-color: #3E3E42; 623 | -fx-background-radius: 0; 624 | -fx-border-width: 0; 625 | border-width: 0; 626 | -fx-pref-height: 14; 627 | } 628 | .titled-pane .content{ 629 | -fx-background-color: #2D2D30; 630 | background-color: #2D2D30; 631 | -fx-border-color: #3E3E42; 632 | border-color: #3E3E42; 633 | -fx-border-radius: 0; 634 | border-radius: 0; 635 | -fx-border-width: 3 2 2 2; 636 | border-width: 3 2 2 2; 637 | } 638 | 639 | 640 | /* TableView */ 641 | .table-view{ 642 | -fx-border-width: 1; 643 | border-width: 1; 644 | -fx-border-radius: 0; 645 | border-radius: 0; 646 | -fx-border-color: #222222; 647 | border-color: #222222; 648 | -fx-background-radius: 0; 649 | -fx-background-color: #1A1A1A; 650 | background-color: #1A1A1A; 651 | -fx-table-cell-border-color: #222222; 652 | } 653 | .table-view:focused{ 654 | -fx-border-width: 1; 655 | border-width: 1; 656 | -fx-border-radius: 0; 657 | border-radius: 0; 658 | -fx-border-color: #4e4e4e; 659 | border-color: #4e4e4e; 660 | -fx-background-insets: 1; 661 | -fx-background-radius: 0; 662 | -fx-background-color: #1A1A1A; 663 | background-color: #1A1A1A; 664 | } 665 | .table-view .column-header-background{ 666 | -fx-border-width: 0 0 1 0; 667 | border-width: 0 0 1 0; 668 | -fx-border-color: #222222; 669 | border-color: #222222; 670 | -fx-background-radius: 0; 671 | -fx-background-color: #1A1A1A; 672 | background-color: #1A1A1A; 673 | -fx-text-fill: #AFB1B3; 674 | } 675 | .table-view .column-header { 676 | -fx-background-color: transparent; 677 | background-color: transparent; 678 | -fx-border-color: #222222; 679 | border-color: #222222; 680 | } 681 | .table-view .column-resize-line { 682 | -fx-background-color: #4e4e4e; 683 | background-color: #4e4e4e; 684 | -fx-pref-width: 1; 685 | } 686 | .table-row-cell{ 687 | -fx-background-color: #1A1A1A; 688 | background-color: #1A1A1A; 689 | -fx-text-background-color: #AFB1B3; 690 | -fx-margin: 1; 691 | margin: 1; 692 | } 693 | .table-row-cell:hover { 694 | -fx-background-color: #3E3E40; 695 | background-color: #3E3E40; 696 | -fx-background-insets: 0; 697 | -fx-background-radius: 0; 698 | } 699 | .table-row-cell:selected { 700 | -fx-table-cell-border-color: #222222; 701 | -fx-background-color: #3E3E40; 702 | background-color: #3E3E40; 703 | -fx-background-insets: 0; 704 | -fx-background-radius: 0; 705 | } 706 | .table-row-cell:pressed { 707 | -fx-background-color: #4e4e4e; 708 | background-color: #4e4e4e; 709 | -fx-background-insets: 0; 710 | -fx-background-radius: 0; 711 | } 712 | .table-view .column-header .label { 713 | -fx-alignment: center-left; 714 | -fx-cursor: HAND; 715 | cursor: HAND; 716 | } 717 | .table-view .filler { 718 | -fx-background-color: transparent; 719 | background-color: transparent; 720 | } 721 | .table-view .column-drag-header{ 722 | -fx-background-color: #4e4e4e; 723 | background-color: #4e4e4e; 724 | } 725 | 726 | 727 | /* Tooltip */ 728 | .tooltip{ 729 | -fx-background-radius: 0; 730 | -fx-border-radius: 0; 731 | border-radius: 0; 732 | -fx-text-fill: #AFB1B3; 733 | -fx-padding: 5; 734 | padding: 5; 735 | } 736 | --------------------------------------------------------------------------------