Portfolio site made by Stephanie Thornley using HTML, CSS and jQuery.
I chose not to use any frameworks to create this site in order to gain a better understanding of what frameworks abstract away from the developer and how this can be useful.
Having previously used React and React Native, I felt I needed a clearer idea of why and when these frameworks are useful. When I started making my portfolio site, I felt it would be unnecessary to use a large framework on a fairly simple, not very expensive, one page site.
Because I already had an understanding of HTML methods, I used jQuery in order to understand how libraries can simplify tasks. If I were to re-make portfolio site again, I would consider using more libraries to aid with interactivity, such as animations.
I chose not to use a stylesheet extension such as SASS, as when I started this site, I did not feel confident using CSS, so felt I should use my portfolio as a way to practice and understand it more before trying stylesheet extensions in future.
For hosting, Netlify offered the advantages of automatic deployment once code is pushed to GitHub. I was also persuaded by Netlify's forms, as I was concerned by the security issues of putting my email as a method of contact on my portfolio site or anywhere inside my code, lest spam bots find me.
As well as using semantic markup, I ensured I built my site for users with visual accessibility needs or those who use screen readers and navigate using a keyboard.
The design is based on rem or em units, meaning it will scale according to the user's font size or zooming on the browser. The colour contrast for readable content and graphics are compliant with WCAG guidelines, providing clear indications of links and interactive content. For the contact form, there is appropriate visual indication of the validity of input.
ARIA labels ensure keyboard users do not miss out on important information, or add extra information for clarity, including instructions on the contact form and indication the validity of input.
The site will handle different screen sizes without compromising the availability of information or ease of use.