1- /* Minimal Black & White Design */
1+ /* Minimal Black & White Design with Micro-Animations */
22* {
33 margin : 0 ;
44 padding : 0 ;
@@ -13,87 +13,164 @@ body {
1313 max-width : 800px ;
1414 margin : 0 auto;
1515 padding : 2rem ;
16+ animation : fadeIn 0.8s ease-out;
1617}
1718
18- /* Typography */
19+ /* Fade in animation for page load */
20+ @keyframes fadeIn {
21+ from { opacity : 0 ; transform : translateY (20px ); }
22+ to { opacity : 1 ; transform : translateY (0 ); }
23+ }
24+
25+ /* Typography with subtle animations */
1926h1 , h2 , h3 , h4 , h5 , h6 {
2027 font-weight : normal;
2128 margin : 2rem 0 1rem 0 ;
2229 border-bottom : 1px solid # 000 ;
2330 padding-bottom : 0.5rem ;
31+ transition : border-color 0.3s ease;
2432}
2533
2634h1 {
2735 font-size : 2rem ;
2836 text-transform : uppercase;
2937 letter-spacing : 2px ;
38+ animation : slideInFromLeft 0.6s ease-out;
3039}
3140
3241h2 {
3342 font-size : 1.5rem ;
3443 margin-top : 3rem ;
44+ animation : slideInFromLeft 0.8s ease-out;
3545}
3646
3747h3 {
3848 font-size : 1.2rem ;
3949 border-bottom : 1px dotted # 000 ;
4050}
4151
52+ /* Slide in animations */
53+ @keyframes slideInFromLeft {
54+ from { opacity : 0 ; transform : translateX (-30px ); }
55+ to { opacity : 1 ; transform : translateX (0 ); }
56+ }
57+
58+ @keyframes slideInFromRight {
59+ from { opacity : 0 ; transform : translateX (30px ); }
60+ to { opacity : 1 ; transform : translateX (0 ); }
61+ }
62+
4263p {
4364 margin : 1rem 0 ;
65+ animation : fadeInUp 1s ease-out;
66+ }
67+
68+ @keyframes fadeInUp {
69+ from { opacity : 0 ; transform : translateY (15px ); }
70+ to { opacity : 1 ; transform : translateY (0 ); }
4471}
4572
46- /* Links */
73+ /* Enhanced link animations */
4774a {
4875 color : # 000 ;
4976 text-decoration : none;
5077 border-bottom : 1px solid # 000 ;
51- transition : all 0.2s ease;
78+ transition : all 0.3s cubic-bezier (0.4 , 0 , 0.2 , 1 );
79+ position : relative;
80+ overflow : hidden;
5281}
5382
54- a : hover {
83+ a ::before {
84+ content : '' ;
85+ position : absolute;
86+ top : 0 ;
87+ left : -100% ;
88+ width : 100% ;
89+ height : 100% ;
5590 background : # 000 ;
91+ transition : left 0.3s ease;
92+ z-index : -1 ;
93+ }
94+
95+ a : hover ::before {
96+ left : 0 ;
97+ }
98+
99+ a : hover {
56100 color : # fff ;
57101 padding : 2px 4px ;
102+ transform : translateY (-1px );
58103}
59104
60- /* Lists */
105+ /* Lists with staggered animation */
61106ul , ol {
62107 margin : 1rem 0 ;
63108 padding-left : 2rem ;
64109}
65110
66111li {
67112 margin : 0.5rem 0 ;
113+ animation : fadeInLeft 0.6s ease-out;
114+ animation-fill-mode : both;
68115}
69116
70- /* Line Art Elements */
117+ li : nth-child (1 ) { animation-delay : 0.1s ; }
118+ li : nth-child (2 ) { animation-delay : 0.2s ; }
119+ li : nth-child (3 ) { animation-delay : 0.3s ; }
120+ li : nth-child (4 ) { animation-delay : 0.4s ; }
121+ li : nth-child (5 ) { animation-delay : 0.5s ; }
122+
123+ @keyframes fadeInLeft {
124+ from { opacity : 0 ; transform : translateX (-20px ); }
125+ to { opacity : 1 ; transform : translateX (0 ); }
126+ }
127+
128+ /* Animated line art elements */
71129hr {
72130 border : none;
73131 border-top : 1px solid # 000 ;
74132 margin : 2rem 0 ;
133+ animation : expandWidth 1s ease-out;
75134}
76135
77- /* Code */
136+ @keyframes expandWidth {
137+ from { width : 0 ; }
138+ to { width : 100% ; }
139+ }
140+
141+ /* Code with typewriter effect */
78142code {
79143 background : none;
80144 border : 1px solid # 000 ;
81145 padding : 2px 4px ;
82146 font-family : inherit;
147+ animation : typewriter 0.5s steps (10 );
148+ }
149+
150+ @keyframes typewriter {
151+ from { width : 0 ; }
152+ to { width : auto; }
83153}
84154
85155pre {
86156 border : 1px solid # 000 ;
87157 padding : 1rem ;
88158 margin : 1rem 0 ;
89159 overflow-x : auto;
160+ animation : slideInFromRight 0.8s ease-out;
90161}
91162
92- /* Navigation */
163+ /* Enhanced navigation with hover effects */
93164nav {
94165 border-bottom : 2px solid # 000 ;
95166 margin-bottom : 2rem ;
96167 padding-bottom : 1rem ;
168+ animation : slideInFromTop 0.6s ease-out;
169+ }
170+
171+ @keyframes slideInFromTop {
172+ from { opacity : 0 ; transform : translateY (-20px ); }
173+ to { opacity : 1 ; transform : translateY (0 ); }
97174}
98175
99176nav ul {
@@ -107,37 +184,80 @@ nav a {
107184 border : none;
108185 text-transform : uppercase;
109186 letter-spacing : 1px ;
187+ position : relative;
188+ transition : all 0.3s ease;
110189}
111190
112- /* Project Cards */
191+ nav a ::after {
192+ content : '' ;
193+ position : absolute;
194+ bottom : -5px ;
195+ left : 0 ;
196+ width : 0 ;
197+ height : 2px ;
198+ background : # 000 ;
199+ transition : width 0.3s ease;
200+ }
201+
202+ nav a : hover ::after {
203+ width : 100% ;
204+ }
205+
206+ nav a : hover {
207+ transform : translateY (-2px );
208+ }
209+
210+ /* Project cards with hover animations */
113211.project-card {
114212 border : 1px solid # 000 ;
115213 margin : 2rem 0 ;
116214 padding : 1.5rem ;
215+ transition : all 0.3s ease;
216+ animation : fadeInUp 0.8s ease-out;
217+ }
218+
219+ .project-card : hover {
220+ transform : translateY (-5px );
221+ box-shadow : 5px 5px 0px # 000 ;
117222}
118223
119224.project-title {
120225 border-bottom : 1px dotted # 000 ;
121226 margin-bottom : 1rem ;
227+ transition : border-color 0.3s ease;
122228}
123229
124230.tech-stack {
125231 margin-top : 1rem ;
126232 font-size : 0.9rem ;
233+ animation : slideInFromRight 1s ease-out;
127234}
128235
129236.tech-stack ::before {
130237 content : "→ " ;
238+ animation : pulse 2s infinite;
239+ }
240+
241+ @keyframes pulse {
242+ 0% , 100% { opacity : 1 ; }
243+ 50% { opacity : 0.5 ; }
131244}
132245
133- /* Minimal Form Elements */
246+ /* Enhanced form elements */
134247input , textarea {
135248 border : 1px solid # 000 ;
136249 background : # fff ;
137250 padding : 0.5rem ;
138251 font-family : inherit;
139252 width : 100% ;
140253 margin : 0.5rem 0 ;
254+ transition : all 0.3s ease;
255+ }
256+
257+ input : focus , textarea : focus {
258+ outline : none;
259+ border-width : 2px ;
260+ transform : scale (1.02 );
141261}
142262
143263button {
@@ -149,35 +269,79 @@ button {
149269 font-family : inherit;
150270 text-transform : uppercase;
151271 letter-spacing : 1px ;
272+ transition : all 0.3s ease;
273+ position : relative;
274+ overflow : hidden;
152275}
153276
154- button : hover {
277+ button ::before {
278+ content : '' ;
279+ position : absolute;
280+ top : 50% ;
281+ left : 50% ;
282+ width : 0 ;
283+ height : 0 ;
155284 background : # fff ;
285+ transition : all 0.3s ease;
286+ transform : translate (-50% , -50% );
287+ border-radius : 50% ;
288+ }
289+
290+ button : hover ::before {
291+ width : 300px ;
292+ height : 300px ;
293+ }
294+
295+ button : hover {
156296 color : # 000 ;
157- border : 1 px solid # 000 ;
297+ transform : translateY ( -2 px ) ;
158298}
159299
160- /* ASCII Art Style Elements */
300+ /* ASCII Art Style Elements with animation */
161301.ascii-divider ::before {
162302 content : "────────────────────────────────────────" ;
163303 display : block;
164304 text-align : center;
165305 margin : 2rem 0 ;
306+ animation : drawLine 1.5s ease-out;
307+ }
308+
309+ @keyframes drawLine {
310+ from { width : 0 ; overflow : hidden; }
311+ to { width : 100% ; }
166312}
167313
168- /* Black & White Emoji Styling */
314+ /* Black & White Emoji Styling with subtle animation */
169315.emoji {
170316 filter : grayscale (100% ) contrast (200% );
171317 font-style : normal;
318+ transition : transform 0.3s ease;
319+ display : inline-block;
320+ }
321+
322+ .emoji : hover {
323+ transform : scale (1.2 ) rotate (5deg );
172324}
173325
174326.section-icon {
175327 font-size : 1.2em ;
176328 margin-right : 0.5rem ;
177329 filter : grayscale (100% ) contrast (200% );
330+ transition : all 0.3s ease;
331+ display : inline-block;
332+ }
333+
334+ .section-icon : hover {
335+ transform : scale (1.3 ) rotate (-5deg );
336+ filter : grayscale (100% ) contrast (300% );
337+ }
338+
339+ /* Footer animation */
340+ footer {
341+ animation : fadeInUp 1.2s ease-out;
178342}
179343
180- /* Responsive */
344+ /* Responsive with maintained animations */
181345@media (max-width : 600px ) {
182346 body {
183347 padding : 1rem ;
@@ -191,6 +355,11 @@ button:hover {
191355 h1 {
192356 font-size : 1.5rem ;
193357 }
358+
359+ /* Reduce animation intensity on mobile */
360+ * {
361+ animation-duration : 0.3s !important ;
362+ }
194363}
195364
196365/* Print Styles */
@@ -199,6 +368,12 @@ button:hover {
199368 max-width : none;
200369 margin : 0 ;
201370 padding : 1rem ;
371+ animation : none;
372+ }
373+
374+ * , * ::before , * ::after {
375+ animation : none !important ;
376+ transition : none !important ;
202377 }
203378
204379 a {
0 commit comments