Portfolio website
About the implementation of this site
This portfolio website is built using HTML
, CSS
and JavaScript
. The site is hosted on GitHub using the GitHub Pages service.
Responsiveness
The site is designed to be fully responsive. It adapts to different viewport sizes and retains its visual clarity, cohesiveness and pleasant look on both desktop and mobile devices.
Accessibility
The page is develoepd with accessibility in mind. Here's some notes about the accessibility aspects of this website:
- Attention has been paid to ensuring that there's enough contrast between background colors and text colors.
- Images that are part of the content of the site (not merely decorative) have descriptive
alt
tags. - All
CSS
animations on the site are disabled for devices that are configured to prefer reduced motion, this is achieved with theprefers-reduced-motion
CSS
media query. - I've made a conscious attempt at ensuring that all
HTML
elements are used in their semantically correct contexts. Admittedly there is some room for improvement: currently the site only utilizesHTML5
semantic elements for some parts, where others are built using basic<div>
elements.
Language selection feature
The website is available in two languages: Finnish and English. The language selection feature is entirely self-made. The operating principle is simple: all html documents contain all their contents in both languages and depending on the language chosen some elements are hidden and others shown. This is achieved with JavaScript
.
The possibility of users having JavaScript
blocked is accounted for, albeit with a slight caveat. Without JavaScript
, the site falls back to displaying only the English version.
The language selection is controlled via two separate means. The first one is a search parameter appended to the website address and the other is a variable stored in the LocalStorage of the visitor's browser. The search parameter allows linking directly to either language version of the website.
The source code of the language selection feature can be viewed on GitHub. The implementation isn't very "proudly presentable" currently, though: the code is quite quickly hacked together and lacks any explanatory comments.
Credits
Background image by Joshua Woroniecki on Pixabay.
Flag icons used in the language selection buttons courtesy of flag-icons by lipis.
Fonts from Google Fonts.