1- /* CodeClash Trajectory Viewer - Modern CSS with Dark Mode */
1+ /* CodeClash Trajectory Viewer - Bootstrap-enhanced Professional Design */
22
33: root {
4- /* Light theme colors */
4+ /* Professional color palette - aligned with Bootstrap */
5+ --bs-primary : # 0d6efd ;
6+ --bs-secondary : # 6c757d ;
7+ --bs-success : # 198754 ;
8+ --bs-info : # 0dcaf0 ;
9+ --bs-warning : # ffc107 ;
10+ --bs-danger : # dc3545 ;
11+ --bs-light : # f8f9fa ;
12+ --bs-dark : # 212529 ;
13+
14+ /* Custom theme colors */
515 --bg-primary : # ffffff ;
616 --bg-secondary : # f8f9fa ;
717 --bg-tertiary : # e9ecef ;
818 --text-primary : # 212529 ;
919 --text-secondary : # 6c757d ;
1020 --text-muted : # adb5bd ;
1121 --border-color : # dee2e6 ;
12- --accent-color : # 0d6efd ;
22+ --accent-color : var ( --bs-primary ) ;
1323 --accent-hover : # 0b5ed7 ;
14- --success-color : # 198754 ;
15- --warning-color : # fd7e14 ;
16- --danger-color : # dc3545 ;
24+ --success-color : var ( --bs-success ) ;
25+ --warning-color : var ( --bs-warning ) ;
26+ --danger-color : var ( --bs-danger ) ;
1727 --code-bg : # f8f9fa ;
1828 --shadow : 0 0.125rem 0.25rem rgba (0 , 0 , 0 , 0.075 );
1929 --shadow-lg : 0 0.5rem 1rem rgba (0 , 0 , 0 , 0.15 );
2030}
2131
2232[data-theme = "dark" ] {
23- /* Dark theme colors */
24- --bg-primary : # 1a1a1a ;
25- --bg-secondary : # 2d2d2d ;
26- --bg-tertiary : # 404040 ;
33+ /* Dark theme colors - Bootstrap compatible */
34+ --bs-primary : # 6ea8fe ;
35+ --bs-secondary : # 6c757d ;
36+ --bs-success : # 75b798 ;
37+ --bs-info : # 6edff6 ;
38+ --bs-warning : # ffda6a ;
39+ --bs-danger : # ea868f ;
40+ --bs-light : # f8f9fa ;
41+ --bs-dark : # 212529 ;
42+
43+ --bg-primary : # 212529 ;
44+ --bg-secondary : # 343a40 ;
45+ --bg-tertiary : # 495057 ;
2746 --text-primary : # ffffff ;
28- --text-secondary : # b0b0b0 ;
29- --text-muted : # 808080 ;
30- --border-color : # 404040 ;
31- --accent-color : # 4dabf7 ;
32- --accent-hover : # 339af0 ;
33- --success-color : # 51cf66 ;
34- --warning-color : # ff922b ;
35- --danger-color : # ff6b6b ;
36- --code-bg : # 2d2d2d ;
47+ --text-secondary : # adb5bd ;
48+ --text-muted : # 6c757d ;
49+ --border-color : # 495057 ;
50+ --accent-color : var ( --bs-primary ) ;
51+ --accent-hover : # 5a9cfc ;
52+ --success-color : var ( --bs-success ) ;
53+ --warning-color : var ( --bs-warning ) ;
54+ --danger-color : var ( --bs-danger ) ;
55+ --code-bg : # 343a40 ;
3756 --shadow : 0 0.125rem 0.25rem rgba (0 , 0 , 0 , 0.3 );
3857 --shadow-lg : 0 0.5rem 1rem rgba (0 , 0 , 0 , 0.4 );
3958}
4665}
4766
4867body {
49- font-family :
50- -apple-system, BlinkMacSystemFont, "Segoe UI" , "Roboto" , sans-serif;
51- line-height : 1.6 ;
68+ font-family : var (
69+ --bs-font-sans-serif ,
70+ -apple-system,
71+ BlinkMacSystemFont,
72+ "Segoe UI" ,
73+ "Roboto" ,
74+ "Helvetica Neue" ,
75+ Arial,
76+ sans-serif
77+ );
78+ line-height : 1.5 ;
5279 color : var (--text-primary );
5380 background-color : var (--bg-primary );
54- transition : all 0.3s ease;
81+ transition :
82+ color 0.15s ease-in-out,
83+ background-color 0.15s ease-in-out;
84+ font-size : 1rem ;
85+ font-weight : 400 ;
5586}
5687
57- /* Header */
88+ /* Header - Bootstrap enhanced */
5889.header {
5990 background-color : var (--bg-secondary );
6091 border-bottom : 1px solid var (--border-color );
6192 padding : 1rem 0 ;
6293 position : sticky;
6394 top : 0 ;
64- z-index : 100 ;
95+ z-index : 1000 ;
6596 box-shadow : var (--shadow );
97+ backdrop-filter : blur (10px );
6698}
6799
68100.header-content {
@@ -101,24 +133,12 @@ body {
101133 font-size : 0.875rem ;
102134}
103135
136+ /* Override Bootstrap button styles for consistency */
104137.pick-game-button {
105- padding : 0.5rem 1rem ;
106- border : 1px solid var (--border-color );
107- border-radius : 0.375rem ;
108- background-color : var (--accent-color );
109- color : white;
110- font-size : 0.875rem ;
111- font-weight : 500 ;
112- cursor : pointer;
113- transition : all 0.2s ease;
114138 min-width : 120px ;
115139}
116140
117- .pick-game-button : hover {
118- background-color : var (--accent-hover );
119- transform : translateY (-1px );
120- box-shadow : var (--shadow );
121- }
141+ /* Let Bootstrap handle hover states */
122142
123143.pick-game-button kbd {
124144 background-color : rgba (255 , 255 , 255 , 0.2 );
@@ -131,46 +151,24 @@ body {
131151 color : rgba (255 , 255 , 255 , 0.9 );
132152}
133153
154+ /* Bootstrap handles most styling */
134155.pick-game-new-tab-button {
135- padding : 0.5rem ;
136- border : 1px solid var (--border-color );
137- border-radius : 0.375rem ;
138- background-color : var (--bg-tertiary );
139- color : var (--accent-color );
140- font-size : 0.9rem ;
141- font-weight : 500 ;
142- cursor : pointer;
143- transition : all 0.2s ease;
144156 margin-left : 0.5rem ;
145157 min-width : 40px ;
146158}
147159
148- .pick-game-new-tab-button : hover {
149- background-color : var (--accent-color );
150- color : white;
151- transform : translateY (-1px );
152- box-shadow : var (--shadow );
153- }
160+ /* Let Bootstrap handle hover states */
154161
162+ /* Bootstrap handles most styling for theme toggle */
155163# theme-toggle {
156- background-color : var (--bg-tertiary );
157- border : 1px solid var (--border-color );
158- border-radius : 0.375rem ;
159- padding : 0.5rem ;
160- cursor : pointer;
161164 font-size : 1.25rem ;
162- color : var (--text-primary );
163- transition : all 0.2s ease;
164165}
165166
166- # theme-toggle : hover {
167- background-color : var (--accent-color );
168- color : white;
169- }
167+ /* Let Bootstrap handle hover states */
170168
171- /* Main content */
169+ /* Main content - Bootstrap enhanced */
172170.main-content {
173- max-width : 1200 px ;
171+ max-width : 1400 px ;
174172 margin : 0 auto;
175173 padding : 2rem 1rem ;
176174}
@@ -248,13 +246,10 @@ body {
248246 margin-bottom : 2rem ;
249247}
250248
249+ /* Results Table - Bootstrap enhanced */
251250.results-table {
252- width : 100% ;
253- border-collapse : collapse;
254- background-color : var (--bg-secondary );
255251 border-radius : 0.5rem ;
256252 overflow : hidden;
257- border : 1px solid var (--border-color );
258253 box-shadow : var (--shadow );
259254}
260255
@@ -352,14 +347,15 @@ body {
352347 line-height : 1.5 ;
353348}
354349
355- /* Foldouts */
350+ /* Foldouts - Professional styling */
356351.foldout {
357352 border : 1px solid var (--border-color );
358353 border-radius : 0.5rem ;
359354 margin-bottom : 1rem ;
360355 background-color : var (--bg-secondary );
361356 overflow : hidden;
362357 transition : all 0.2s ease;
358+ box-shadow : var (--shadow );
363359}
364360
365361/* Remove any browser default styling that might add blue lines */
@@ -803,12 +799,80 @@ details summary {
803799 }
804800}
805801
806- /* Smooth transitions */
802+ /* Bootstrap Integration & Dark Mode Support */
803+ [data-theme = "dark" ] .btn {
804+ --bs-btn-color : var (--text-primary );
805+ --bs-btn-bg : var (--bg-secondary );
806+ --bs-btn-border-color : var (--border-color );
807+ }
808+
809+ [data-theme = "dark" ] .btn-primary {
810+ --bs-btn-color : # fff ;
811+ --bs-btn-bg : var (--bs-primary );
812+ --bs-btn-border-color : var (--bs-primary );
813+ --bs-btn-hover-color : # fff ;
814+ --bs-btn-hover-bg : var (--accent-hover );
815+ --bs-btn-hover-border-color : var (--accent-hover );
816+ }
817+
818+ [data-theme = "dark" ] .btn-outline-primary {
819+ --bs-btn-color : var (--bs-primary );
820+ --bs-btn-border-color : var (--bs-primary );
821+ --bs-btn-hover-color : # fff ;
822+ --bs-btn-hover-bg : var (--bs-primary );
823+ --bs-btn-hover-border-color : var (--bs-primary );
824+ }
825+
826+ [data-theme = "dark" ] .btn-outline-secondary {
827+ --bs-btn-color : var (--text-secondary );
828+ --bs-btn-border-color : var (--border-color );
829+ --bs-btn-hover-color : var (--text-primary );
830+ --bs-btn-hover-bg : var (--bg-tertiary );
831+ --bs-btn-hover-border-color : var (--border-color );
832+ }
833+
834+ [data-theme = "dark" ] .table {
835+ --bs-table-color : var (--text-primary );
836+ --bs-table-bg : var (--bg-primary );
837+ --bs-table-border-color : var (--border-color );
838+ --bs-table-striped-bg : var (--bg-secondary );
839+ --bs-table-hover-bg : var (--bg-tertiary );
840+ }
841+
842+ [data-theme = "dark" ] .form-control {
843+ color : var (--text-primary );
844+ background-color : var (--bg-primary );
845+ border-color : var (--border-color );
846+ }
847+
848+ [data-theme = "dark" ] .form-control : focus {
849+ color : var (--text-primary );
850+ background-color : var (--bg-primary );
851+ border-color : var (--accent-color );
852+ box-shadow : 0 0 0 0.25rem rgba (110 , 168 , 254 , 0.25 );
853+ }
854+
855+ /* Professional subtle animations */
856+ .btn ,
857+ .foldout summary ,
858+ .nav-to-round-btn {
859+ transition : all 0.2s cubic-bezier (0.4 , 0 , 0.2 , 1 );
860+ }
861+
862+ .btn : hover {
863+ transform : translateY (-1px );
864+ }
865+
866+ .foldout : hover {
867+ transform : translateY (-1px );
868+ }
869+
870+ /* Smooth transitions for theme changes */
807871* {
808872 transition :
809- color 0.3s ease ,
810- background-color 0.3s ease ,
811- border-color 0.3s ease ;
873+ color 0.3s cubic-bezier ( 0.4 , 0 , 0.2 , 1 ) ,
874+ background-color 0.3s cubic-bezier ( 0.4 , 0 , 0.2 , 1 ) ,
875+ border-color 0.3s cubic-bezier ( 0.4 , 0 , 0.2 , 1 ) ;
812876}
813877
814878/* Focus styles for accessibility */
0 commit comments