π Welcome to the source code of my personal website, robertonto.netlify.app
- βοΈ React for the frontend;
- π Styled Components for styling;
- πΌοΈ Flicking for BEAUTIFUL carousels
- π Netlify for hosting.
useAudio/useSoundFX- both are supposed to receive an audio file as a parameter and return the "playing" state and the "toggle" function.
- Their difference is that
useSoundFXis supposed to be used for sound effects, playing from the beginning every time the "toggle" function is called.useAudiois meant to be used for background music/audio, so it will alternate between paused/playing state the audio from .
useViewportDimensions- returns the current viewport dimensions on an array of [width, height] in pixels. Was used to make the carousels responsive.
ViewContext- this context is used to inform the active view of the website to other components. Its states areviewIndex, currentView, viewsand its state setter functions arenextView, previousView.
viewsis an array with each view components with the propsview,heading,emojiandhideIcons.- The
currentViewstate can be "About", "Greetings", "Resume" and "Portfolio", which are all React components within theviewsarray.- The
nextViewandpreviousViewfunctions are bound to the left-right button in the page, changing the current view component shown to the user.
Header- a component that dynamically updates itsheading,iconandicons' visibilitystates based on the current view in the user's screen. These states are set based on theViewContextview changes.
SpringButton- a button with a spring animation when hovered. It can be personalized through thecolorprop. It can also receivechildrento be rendered inside the button.
- Theres is a limited list of
colorprops: "blue", "green", "pink", "black", "lightBlue", "red".
Rocket- a rocket button to skip from first view to last view (and vice-versa).
LanguageButton- a button to change the language of the website.
Currently, there are two files containing the carrousel data:
events.jsandprojects.js. They are both arrays of objects with the following structure:
events:{ 'id', 'icon', 'title', 'location', 'period', 'description'; }
projects:{ 'projectName', 'projectType', 'techStack', 'printscreen', 'key', 'repo', 'live'; }
π There are plans of changing from static data files to actual database.
