For our first major assignment in the Web Design, Development and Maintenance program, my class and I were to create a calendar using our knowledge of HTML5 and CSS3 accordingly.
We were to create a calendar that was supposed to feature all of the days of a chosen month. In addition, we were required to put up notices when you would choose a certain day of the month if it was a holiday. Other points included the choice of colour and theme as well as properly labelled syntax and markup which made the code easy to read and identify.
As opposed to just creating a basic, mundane looking calendar I decided that I’d like to go with creating something similar to a menu screen from a game I have played in the past known as Dead Space .
The following image below is what I used as a point of reference.
From then on, I was set on re-creating something similar to this menu.
Little did I know, how much work I had just put on myself to complete this task…..
Anyhow, starting with the basic tags I created the Header, Main, Nav, Section and Footer tags all associated with HTML5 , and of course the classic Div tags.
You can of course see for yourself how I built this project in the source code with the link at the bottom of this article but in a nutshell I had the months included in an H1 tag nested in a Div tag nested in the Header which then was followed by my Main tag.
The Main tag is where the bulk of my work began.
First off, I included a Nav tag that included the months of the year in a sidebar to the left with the Months header inside an H2 tag. Initially I had planned to include this in an Aside tag but if I was going to put all my months in a list, I’d just go with a standard Nav tag with an Unordered List tag that listed every month.
Next up was the most tedious part of the project.
Creating a Div within a Div within a Div, (are you still with me?.. :P) I included the days of the week under an H3 tag to easily identify them in the CSS3 when editing them. After that I had included 7 rows of Nav tags, all representing a day of the week within a column in a Li tag nested inside a Ul tag.
After that, I had created the right side section in a Section tag with the header Notes under an H2 tag followed by another Div featuring my Copyright Information. Following this of course was the Footer tag that included a Section tag with 3 Div tags inside, one for the top, middle and bottom of the footer. The middle Div is where I planned to have my notices for the Holidays pop-up when you would hover over certain days in each month.
In the end, I had my Markup complete and it would end up looking something similar to this:
Not exactly the most interesting looking calendar yet but I at least had the skeleton of the document complete and would move on to the CSS3 in order to do some basic styling and get all the sections where I wanted to be on my second step.
Mind you I did not include the Eric Meyer CSS Reset in this picture for clarity.
By properly labelling my Divs, Sections, Navs and all other tags either as Classes or ID’s I worked on the widths, heights, margins, paddings, font sizes and backgrounds in order to make it visibly be laid out clearly.
After much tweaking, I had finally come to get my calendar to look like the following:
Obviously it was still not complete, but I was getting there. Now that I had my HTML5 and the bulk of my CSS3 complete, I was ready to begin adding the graphics. This part was an interesting approach as I had decided to use a combination of Vector graphics, Raster graphics and CSS3 styling to come to the final look that I had wanted.
I traced out the graphics in Adobe Illustrator which in itself looked decent. Following that I used Adobe Photoshop to add some texture with an image of a steel surface that was placed on top with a clipping mask and then using either a Pin Light or Overlay blend mode on top to create a more rugged look to my graphics, to properly convey the look and mood that I was going for.
I did this for every background image until I had them all complete and imported them into my images folder. After that I had added them as background images in CSS3 to whichever class or ID that it corresponded to. Unfortunately at first I did not realize how the graphics would play into the the final look of the calendar so I had had to do some re-adjusting with margins, padding and widths in order for them to fit appropriately without breaking the entire layout that I just spent quite some time adjusting.
Using CSS3, I added some minor adjustments to my images such as the background glow for the left and right sidebars, the headers as well as some border colouring and opacity to avoid the backgrounds get cut off so obviously and suddenly, leaving a more smooth looking border around some sections.
Initially, I had planned to write my Header and Li tags using a custom font in photoshop and then uploading the background to where it was needed but I found the text was too pixelated to read in the browser so I choose to redo the graphics with no text and write the Headers and list items in my HTML5 document instead (in the Photoshop image below, you’ll see that I wrote ‘March 2017’ in Photoshop but in the final cut it’s actually written in HTML5).
Here’s a couple screenshots of my work in Adobe Illustrator and Photoshop:
Phewwwww! *takes deep breathe*
Once that was complete, I had finally managed to have the final look of my calendar complete.
In essence this was what was needed for my assignment, but I had decided to go with completing the rest of the months. With that, as mentioned before, I had decided to go with jQuery to make this work. Essentially I would build the other 11 months of the year in HTML5 and apply all the same CSS3 Classes and IDs for styling and the Graphic work. That was the easy part.
The hard (or at least harder) part was including the jQuery to make my Hover functions work properly when selecting each month. Once I had linked externally with jQuery and embedded my .js file I began the document. Starting off, I decided upon load that January would naturally be the first to show so I had all my months and Headers IDs hidden besides January’s with the .show and .hide function. Once that was completed I had created a separate function for each month in the left sidebar so when you select a particular month, it’s respective Header and Month would fade in and any active month/header would disappear using the fadeIn and .hide functions.
Since I had started with March 2017, the month that I began this project, one of the requirements was to include a notice of every holiday in that particular month – in this case St. Patricks Day. If you go to that month and hover over March 17, you will see that in the middle div of the footer tag it displays a notice that it is St. Patrick’s Day. I managed to do this in jQuery with the .click, .appendTo and fadeToggle functions.
Once this was complete, I again did some minor tweaking to make things work and some re-adjustments I had noticed upon further review. You can see a sample of my changes through my Bitbucket account when I uploaded them through the Terminal Command :
With that being said, I had now gone beyond the basic requirements of what was required for this project. I had planned to add a Responsive Layout for smaller screens but due to time constraints I was unable to fully get my calendar responsive on all screens. Currently this calendar is optimized only for the widescreen format. In the near future, I will definitely have that completed as soon as my time frees up from other projects that we are going to begin within the next few days. 🙂
Click here to view the live Calendar
Thanks for stopping by!