77 --accent-2 : # 93c5fd
88}
99
10+
11+ body : not (.dark-mode ) {
12+ --bg : # f8f9fa ;
13+ --card : # ffffff ;
14+ --text : # 1a1a1a ;
15+ --muted : # 6b7280 ;
16+ --bg-gradient-start : # f0f4f8 ;
17+ --bg-gradient-end : # e2e8f0 ;
18+ --border : # e5e7eb ;
19+ --input-bg : # ffffff ;
20+ }
21+
22+
23+ body .dark-mode {
24+ --bg : # 0f0f12 ;
25+ --card : # 17171c ;
26+ --text : # eef1f8 ;
27+ --muted : # a6adbb ;
28+ --bg-gradient-start : # 0b0b0e ;
29+ --bg-gradient-end : # 121217 ;
30+ --border : # 262631 ;
31+ --input-bg : # 0e0e13 ;
32+ }
33+
1034* {
1135 box-sizing : border-box
1236}
@@ -19,13 +43,15 @@ body {
1943
2044body {
2145 font-family : system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;
22- background : linear-gradient (180deg , # 0b0b0e, # 121217 );
23- color : var (--text )
46+ background : linear-gradient (180deg , var (--bg-gradient-start , # 0b0b0e ), var (--bg-gradient-end , # 121217 ));
47+ color : var (--text );
48+ transition : background 0.3s ease, color 0.3s ease;
2449}
2550
2651.site-header {
2752 padding : 2rem 1rem ;
28- text-align : center
53+ text-align : center;
54+ position : relative;
2955}
3056
3157.site-header h1 {
@@ -42,16 +68,69 @@ body {
4268 display : flex;
4369 gap : .5rem ;
4470 justify-content : center;
45- flex-wrap : wrap
71+ flex-wrap : wrap;
72+ align-items : center;
4673}
4774
4875.controls input ,
4976.controls select {
5077 padding : .5rem .75rem ;
5178 border-radius : .5rem ;
52- border : 1px solid # 2a2a33 ;
53- background : # 0e0e13 ;
54- color : var (--text )
79+ border : 1px solid var (--border , # 2a2a33 );
80+ background : var (--input-bg , # 0e0e13 );
81+ color : var (--text );
82+ transition : background 0.3s ease, border-color 0.3s ease;
83+ }
84+
85+
86+ .theme-toggle {
87+ background : var (--card );
88+ border : 2px solid var (--border , # 262631 );
89+ border-radius : 50% ;
90+ width : 50px ;
91+ height : 50px ;
92+ cursor : pointer;
93+ display : flex;
94+ align-items : center;
95+ justify-content : center;
96+ transition : all 0.3s ease;
97+ position : fixed;
98+ top : 1rem ;
99+ right : 1rem ;
100+ z-index : 1000 ;
101+ color : var (--text );
102+ box-shadow : 0 4px 12px rgba (0 , 0 , 0 , 0.15 );
103+ }
104+
105+ .theme-toggle : hover {
106+ transform : rotate (15deg ) scale (1.1 );
107+ border-color : var (--accent );
108+ box-shadow : 0 6px 16px rgba (110 , 231 , 183 , 0.2 );
109+ }
110+
111+ .theme-toggle svg {
112+ position : absolute;
113+ transition : all 0.3s ease;
114+ }
115+
116+ .theme-toggle .sun-icon {
117+ opacity : 0 ;
118+ transform : rotate (90deg );
119+ }
120+
121+ .theme-toggle .moon-icon {
122+ opacity : 1 ;
123+ transform : rotate (0deg );
124+ }
125+
126+ body : not (.dark-mode ) .theme-toggle .sun-icon {
127+ opacity : 1 ;
128+ transform : rotate (0deg );
129+ }
130+
131+ body : not (.dark-mode ) .theme-toggle .moon-icon {
132+ opacity : 0 ;
133+ transform : rotate (-90deg );
55134}
56135
57136.project-grid {
@@ -65,10 +144,11 @@ body {
65144
66145.card {
67146 background : var (--card );
68- border : 1px solid # 262631 ;
147+ border : 1px solid var ( --border , # 262631) ;
69148 border-radius : .75rem ;
70149 padding : 1rem ;
71- box-shadow : 0 0 0 1px rgba (255 , 255 , 255 , .02 ) inset
150+ box-shadow : 0 0 0 1px rgba (255 , 255 , 255 , .02 ) inset;
151+ transition : background 0.3s ease, border-color 0.3s ease;
72152}
73153
74154.card h3 {
@@ -110,5 +190,15 @@ body {
110190 padding : 2rem 1rem ;
111191 text-align : center;
112192 color : var (--muted );
113- border-top : 1px solid # 22222b
193+ border-top : 1px solid var (--border , # 22222b );
194+ transition : border-color 0.3s ease;
195+ }
196+
197+ .site-footer a {
198+ color : var (--accent );
199+ text-decoration : none;
200+ }
201+
202+ .site-footer a : hover {
203+ text-decoration : underline;
114204}
0 commit comments