|  | 
| 1 | 1 | <script lang="ts"> | 
| 2 |  | -  import { styleOptions } from './styleOptions'; | 
|  | 2 | +  import { fly } from "svelte/transition"; | 
|  | 3 | +  import { styleOptions } from "./styleOptions"; | 
| 3 | 4 | </script> | 
| 4 | 5 | 
 | 
| 5 | 6 | <svelte:head> | 
|  | 
| 13 | 14 |     property="og:description" | 
| 14 | 15 |     content="Portfolio of Johnathon Zheng, UC Berkeley Applied Mathematics student." | 
| 15 | 16 |   /> | 
| 16 |  | -  <meta property="og:image" content="https://johnatho.nz/preview.png" />  | 
|  | 17 | +  <meta property="og:image" content="https://johnatho.nz/preview.png" /> | 
| 17 | 18 |   <meta property="og:url" content="https://johnatho.nz" /> | 
| 18 | 19 |   <meta property="og:type" content="website" /> | 
| 19 | 20 | </svelte:head> | 
| 20 | 21 | 
 | 
| 21 |  | -<main class="page"> | 
|  | 22 | +<main class="page" transition:fly={{ y: -50, duration: 600 }}> | 
| 22 | 23 |   <h1>Johnathon Zheng</h1> | 
| 23 | 24 | 
 | 
| 24 | 25 |   <div class="image-container"> | 
|  | 
| 42 | 43 |   </ul> | 
| 43 | 44 | 
 | 
| 44 | 45 |   <p> | 
| 45 |  | -    I'm currently studying Applied Mathematics at the University of California, Berkeley. I earned my | 
| 46 |  | -    Associate of Science degrees in Computer Science and Mathematics from Skyline College in Spring 2025. | 
|  | 46 | +    I'm currently studying Applied Mathematics at the University of California, | 
|  | 47 | +    Berkeley. I earned my Associate of Science degrees in Computer Science and | 
|  | 48 | +    Mathematics from Skyline College in Spring 2025. | 
| 47 | 49 |   </p> | 
| 48 | 50 |   <p> | 
| 49 |  | -    My interests include programming, system administration and computer vision. Projects I've worked on are | 
| 50 |  | -    available on <a href="https://github.com/jojohnathon">Github</a>. | 
|  | 51 | +    My interests include programming, system administration and computer vision. | 
|  | 52 | +    Projects I've worked on are available on <a | 
|  | 53 | +      href="https://github.com/jojohnathon">Github</a | 
|  | 54 | +    >. | 
| 51 | 55 |   </p> | 
| 52 | 56 | 
 | 
| 53 | 57 |   <section class="style-options" aria-labelledby="style-options-heading"> | 
|  | 
| 87 | 91 |     font-weight: 700; | 
| 88 | 92 |     letter-spacing: -0.04em; | 
| 89 | 93 |     margin: 0; | 
|  | 94 | +    animation: slideUp 0.4s ease 0s backwards; | 
| 90 | 95 |   } | 
| 91 | 96 | 
 | 
| 92 | 97 |   .image-container { | 
| 93 | 98 |     display: flex; | 
| 94 | 99 |     height: 50%; | 
| 95 | 100 |     gap: 0.625rem; | 
|  | 101 | +    animation: slideUp 0.4s ease 0.05s backwards; | 
| 96 | 102 |   } | 
| 97 | 103 | 
 | 
| 98 | 104 |   .image-container img { | 
| 99 | 105 |     max-width: 50%; | 
| 100 | 106 |     height: auto; | 
| 101 | 107 |     border-radius: 1rem; | 
| 102 | 108 |     object-fit: cover; | 
|  | 109 | +    transition: transform 0.3s ease; | 
|  | 110 | +    cursor: pointer; | 
|  | 111 | +  } | 
|  | 112 | +
 | 
|  | 113 | +  .image-container img:hover { | 
|  | 114 | +    transform: scale(1.05) rotate(1deg); | 
| 103 | 115 |   } | 
| 104 | 116 | 
 | 
| 105 | 117 |   .contact-list { | 
|  | 
| 109 | 121 |     display: flex; | 
| 110 | 122 |     flex-direction: column; | 
| 111 | 123 |     gap: 0.5rem; | 
|  | 124 | +    animation: slideUp 0.4s ease 0.1s backwards; | 
|  | 125 | +  } | 
|  | 126 | +
 | 
|  | 127 | +  .contact-list li { | 
|  | 128 | +    animation: slideUp 0.4s ease backwards; | 
|  | 129 | +  } | 
|  | 130 | +
 | 
|  | 131 | +  .contact-list li:nth-child(1) { | 
|  | 132 | +    animation-delay: 0.15s; | 
|  | 133 | +  } | 
|  | 134 | +  .contact-list li:nth-child(2) { | 
|  | 135 | +    animation-delay: 0.2s; | 
|  | 136 | +  } | 
|  | 137 | +  .contact-list li:nth-child(3) { | 
|  | 138 | +    animation-delay: 0.25s; | 
|  | 139 | +  } | 
|  | 140 | +
 | 
|  | 141 | +  p { | 
|  | 142 | +    animation: slideUp 0.4s ease backwards; | 
|  | 143 | +  } | 
|  | 144 | +
 | 
|  | 145 | +  p:nth-of-type(1) { | 
|  | 146 | +    animation-delay: 0.3s; | 
|  | 147 | +  } | 
|  | 148 | +  p:nth-of-type(2) { | 
|  | 149 | +    animation-delay: 0.35s; | 
|  | 150 | +  } | 
|  | 151 | +
 | 
|  | 152 | +  @keyframes slideUp { | 
|  | 153 | +    from { | 
|  | 154 | +      opacity: 0; | 
|  | 155 | +      transform: translateY(20px); | 
|  | 156 | +    } | 
|  | 157 | +    to { | 
|  | 158 | +      opacity: 1; | 
|  | 159 | +      transform: translateY(0); | 
|  | 160 | +    } | 
| 112 | 161 |   } | 
| 113 | 162 | 
 | 
| 114 | 163 |   .contact-list a { | 
| 115 | 164 |     color: #2563eb; | 
| 116 | 165 |     font-weight: 600; | 
| 117 | 166 |     text-decoration: none; | 
|  | 167 | +    position: relative; | 
|  | 168 | +    padding: 0.25rem 0.5rem; | 
|  | 169 | +    border-radius: 0.25rem; | 
|  | 170 | +    transition: color 0.3s ease; | 
|  | 171 | +  } | 
|  | 172 | +
 | 
|  | 173 | +  .contact-list a::after { | 
|  | 174 | +    content: ""; | 
|  | 175 | +    position: absolute; | 
|  | 176 | +    bottom: 0.1rem; | 
|  | 177 | +    left: 0.5rem; | 
|  | 178 | +    width: 0; | 
|  | 179 | +    height: 2px; | 
|  | 180 | +    background: #2563eb; | 
|  | 181 | +    transition: width 0.3s ease; | 
| 118 | 182 |   } | 
| 119 | 183 | 
 | 
| 120 | 184 |   .contact-list a:hover { | 
| 121 |  | -    text-decoration: underline; | 
|  | 185 | +    color: #1d47a1; | 
|  | 186 | +  } | 
|  | 187 | +
 | 
|  | 188 | +  .contact-list a:hover::after { | 
|  | 189 | +    width: calc(100% - 1rem); | 
|  | 190 | +  } | 
|  | 191 | +
 | 
|  | 192 | +  p a { | 
|  | 193 | +    color: #2563eb; | 
|  | 194 | +    font-weight: 600; | 
|  | 195 | +    text-decoration: none; | 
|  | 196 | +    position: relative; | 
|  | 197 | +    transition: color 0.3s ease; | 
|  | 198 | +  } | 
|  | 199 | +
 | 
|  | 200 | +  p a::after { | 
|  | 201 | +    content: ""; | 
|  | 202 | +    position: absolute; | 
|  | 203 | +    bottom: 0.05rem; | 
|  | 204 | +    left: 0; | 
|  | 205 | +    width: 0; | 
|  | 206 | +    height: 2px; | 
|  | 207 | +    background: #2563eb; | 
|  | 208 | +    transition: width 0.3s ease; | 
|  | 209 | +  } | 
|  | 210 | +
 | 
|  | 211 | +  p a:hover { | 
|  | 212 | +    color: #1d47a1; | 
|  | 213 | +  } | 
|  | 214 | +
 | 
|  | 215 | +  p a:hover::after { | 
|  | 216 | +    width: 100%; | 
| 122 | 217 |   } | 
| 123 | 218 | 
 | 
| 124 | 219 |   p { | 
|  | 
| 162 | 257 |     padding: 0.75rem; | 
| 163 | 258 |     background: rgba(15, 23, 42, 0.08); | 
| 164 | 259 |     border-radius: 0.75rem; | 
| 165 |  | -    font-family: 'Fira Code', 'SFMono-Regular', Consolas, 'Liberation Mono', monospace; | 
|  | 260 | +    font-family: "Fira Code", "SFMono-Regular", Consolas, "Liberation Mono", | 
|  | 261 | +      monospace; | 
| 166 | 262 |     font-size: 0.9rem; | 
| 167 | 263 |     white-space: pre-wrap; | 
| 168 | 264 |   } | 
|  | 
0 commit comments