1 package de.spiritscorp.datasync.theme;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import javafx.scene.Scene;
24
25
26
27
28
29 public class MatrixTerminalTheme implements AppTheme {
30 @Override
31 public void apply( Scene scene ) {
32 scene.getRoot().setStyle( "-fx-font-size: 14; -fx-font-family: 'Consolas', 'Courier New', monospace; -fx-background-color: #050505; -fx-text-fill: #00ff00;" );
33 final String css = """
34 .list-view { -fx-background-color: #050505; }
35 .list-cell { -fx-background-color: #050505; -fx-text-fill: #00ff00; -fx-padding: 10px; -fx-border-color: #003300; -fx-border-width: 0 0 1px 0; }
36 .list-cell:hover { -fx-background-color: #001a00; }
37 .list-cell:selected { -fx-background-color: #003300; -fx-text-fill: #ffffff; -fx-border-color: #00ff00; }
38 .label { -fx-text-fill: #00ff00 !important; }
39 .button { -fx-background-color: #002200; -fx-text-fill: #00ff00; -fx-border-color: #00ff00; -fx-background-radius: 0; -fx-border-radius: 0; -fx-cursor: hand; }
40 .button:hover { -fx-background-color: #00ff00; -fx-text-fill: #000000; }
41 .text-field, .combo-box, .text-area { -fx-background-color: #000000; -fx-text-fill: #00ff00; -fx-border-color: #00ff00; -fx-border-radius: 0; }
42 .text-field:focused, .combo-box:focused, .text-area:focused { -fx-border-color: #000000; }
43
44 .status-success { -fx-text-fill: #22aa22; -fx-font-weight: bold; }
45 .status-error { -fx-text-fill: #ff3333; -fx-font-weight: bold; }
46 .status-warning { -fx-text-fill: #ffaa00; -fx-font-weight: bold; }
47
48
49 .table-view { -fx-background-color: #050505; -fx-border-color: #00ff00; }
50 .table-view .column-header, .table-view .filler { -fx-background-color: #001a00; -fx-border-color: #003300; }
51 .table-view .column-header .label { -fx-text-fill: #00ff00; }
52 .table-row-cell { -fx-background-color: #050505; -fx-text-fill: #00ff00; }
53 .table-row-cell:odd { -fx-background-color: #0a0a0a; }
54 .table-row-cell:selected { -fx-background-color: #003300; }
55 .table-row-cell:selected .text { -fx-fill: #000000; }
56
57 .tab-pane .tab-header-area .tab-header-background { -fx-background-color: #000000; }
58 .tab { -fx-background-color: #002200; -fx-border-color: #00ff00; }
59 .tab:selected { -fx-background-color: #00ff00; }
60 .tab:selected .tab-label { -fx-text-fill: #000000 !important; }
61 .tab .tab-label { -fx-text-fill: #00ff00; }
62
63 .progress-bar .track { -fx-background-color: #404a00; -fx-background-radius: 0; }
64 .progress-bar .bar { -fx-background-color: #006fa0; -fx-background-radius: 0; }
65
66 .check-box .box { -fx-background-color: #000000; -fx-text-fill: #00ff00; -fx-border-color: #00ff00; -fx-background-radius: 3; }
67 .check-box .text { -fx-fill: #00ff00; -fx-background-color: #00ff00; }
68 .check-box:selected .mark { -fx-background-color: #00ff00; }
69
70
71 .scroll-pane, .scroll-pane .viewport {
72 -fx-background-color: #050505 !important;
73 -fx-background: #050505 !important;
74 }
75 .text-area {
76 -fx-background-color: #050505 !important;
77 -fx-text-fill: #00ff00 !important;
78 }
79 .text-area .content {
80 -fx-background-color: #050505 !important;
81 -fx-text-fill: #00ff00 !important;
82 }
83 .scroll-pane .scroll-bar:vertical, .scroll-pane .scroll-bar:horizontal {
84 -fx-background-color: #0d0d0d !important;
85 }
86 .scroll-pane .scroll-bar .thumb {
87 -fx-background-color: #002200 !important;
88 -fx-border-color: #00ff00 !important;
89 }
90 .menu-button {
91 -fx-background-color: #002200;
92 -fx-text-fill: #00ff00;
93 -fx-border-color: #00ff00;
94 -fx-background-radius: 0;
95 -fx-border-radius: 0;
96 }
97 .menu-item {
98 -fx-background-color: #002200;
99 -fx-text-fill: #00ff00;
100 -fx-border-color: #00ff00;
101 -fx-background-radius: 0;
102 -fx-border-radius: 0;
103 }
104 .menu-button:hover {
105 -fx-background-color: #006600;
106 -fx-text-fill: #ff88ff;
107 }
108 .dialog-pane {
109 -fx-background-color: #050505 !important;
110 -fx-border-color: #00ff00 !important;
111 -fx-border-width: 1px !important;
112 }
113 .dialog-pane .header-panel {
114 -fx-background-color: #050505 !important;
115 -fx-border-color: transparent !important;
116 }
117 .dialog-pane .content-panel,
118 .dialog-pane .button-bar {
119 -fx-background-color: #050505 !important;
120 }
121 .dialog-pane .label {
122 -fx-text-fill: #00ff00 !important;
123 }
124 .dialog-pane .button {
125 -fx-background-color: #002200 !important;
126 -fx-text-fill: #00ff00 !important;
127 -fx-border-color: #00ff00 !important;
128 -fx-background-radius: 0 !important;
129 -fx-border-radius: 0 !important;
130 }
131 .dialog-pane .button:hover {
132 -fx-background-color: #00ff00 !important;
133 -fx-text-fill: #000000 !important;
134 }
135 .combo-box:hover {
136 -fx-border-color: #00ff00;
137 }
138 .combo-box .list-cell {
139 -fx-background-color: #00ff00;
140 -fx-text-fill: #252525;
141 }
142 .combo-box .list-cell:hover, .combo-box .list-cell:selected {
143 -fx-background-color: #252525;
144 -fx-text-fill: #00ff00;
145 }
146 """;
147 scene.getStylesheets().clear();
148 scene.getStylesheets().add( "data:text/css," + css.replace( "\n", "" ).replace( " ", "%20" ) );
149 }
150
151 @Override
152 public String getName() { return "Matrix Terminal"; }
153
154 @Override
155 public String toString() {
156 return getName();
157 }
158 }