diff --git a/README.md b/README.md index a5b2b18..5650670 100644 --- a/README.md +++ b/README.md @@ -1 +1,25 @@ [![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-24ddc0f5d75046c5622901739e7c5dd533143b0c8e959d652212380cedb1ea36.svg)](https://classroom.github.com/a/59P2FRZS) + + +This repository contains all the files necessary for the portfolio website Feast and Wonder. Feast and Wonder is a food travel blog with the design goal of creating a pleasurable user experience for the Blind and Visually Impaired. It contains five html documents, one CSS document and an image folder. + +This portfolio website was made in the context of a homework assignment and is not for commercial use. It is submitted along a UX report via Turnitin. + +# File content +The following HTML files are used to create the website: + +| File | Content | +| --- | --- | +| `index.html` | landing and home page | +| `seoul.html` | gallery page for Seoul | +| `paris.html` | gallery page for Paris | +| `brussels.html` | gallery page for Brussels | +| `contact.html` | Contact page containing the contact form | + +Additionally, a global stylesheet entitled `styles.css` is used to set styles for all five pages above. + +Comments have been provided in each document to provide further explanation on implementation details, the structure of the file (CSS file) and when references have been used. + +All images and videos can be found in the `image` folder. + +The food images and videos were provided by Birkbeck University and are free to use. The social media icons (Instagram, Facebook, and Pinterest) were download from [Free Icons, Clipart Illustrations, Photos, and Music (icons8.com)](https://icons8.com/) for free through the developer’s personal account and following their [licensing requirements.](https://icons8.com/vue-static/landings/pricing/icons8-license.pdf) diff --git a/brussels.html b/brussels.html index db31f43..863742f 100644 --- a/brussels.html +++ b/brussels.html @@ -4,13 +4,17 @@ - Food Travel Blog + Feast and Wonder
+
+ Skip to main content +
+ -
-
-
+
+

Brussels

-
+
+ +
+ -
- +
+

At the chocolate shop

+

This short video shows a rotating pile of filled chocolates in a local chocolate shop -known as a chocolaterie. + Shaped in the form of seashells, made from a mix of white and dark chocolate, and filled with praline -a nut and sugar paste- these + chocolates are emblematic of Belgian chocolate. +

+
-
- x - x - x - x +
+ Freshly made waffles in the shape of a heart pictured with a bowl of flour, two eggs and a whisk. + Star shaped spiced cinnamon christmas cookies surrounded by pine cones, whole walnuts in their shell, and cinnamon sticks. +  A close up picture of small differently shaped chocolates displayed in rows ; a combination of both filled and solid in white and dark chocolate. +  A close up picture of small bread buns -known in belgium as pistolet- coated with flour.
-
+
diff --git a/contact.html b/contact.html index 2ff5b33..ea82395 100644 --- a/contact.html +++ b/contact.html @@ -4,13 +4,17 @@ - Food Travel Blog + Feast and Wonder
+ + -
-
-

Contact me

-
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
+
+
+

Contact me

+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
diff --git a/images/Espresso.mp4 b/images/Espresso.mp4 deleted file mode 100644 index 9942c20..0000000 Binary files a/images/Espresso.mp4 and /dev/null differ diff --git a/images/Restaurant.mp4 b/images/Restaurant.mp4 deleted file mode 100644 index 9314efe..0000000 Binary files a/images/Restaurant.mp4 and /dev/null differ diff --git a/images/Running Sushi.mp4 b/images/Running Sushi.mp4 deleted file mode 100644 index 6b7d25e..0000000 Binary files a/images/Running Sushi.mp4 and /dev/null differ diff --git a/images/artichoke.jpg b/images/artichoke.jpg deleted file mode 100644 index 7909f8c..0000000 Binary files a/images/artichoke.jpg and /dev/null differ diff --git a/images/berries.jpg b/images/berries.jpg deleted file mode 100644 index 557cf9c..0000000 Binary files a/images/berries.jpg and /dev/null differ diff --git a/images/canape.jpg b/images/canape.jpg deleted file mode 100644 index 8bc9477..0000000 Binary files a/images/canape.jpg and /dev/null differ diff --git a/images/candies.jpg b/images/candies.jpg deleted file mode 100644 index 016c2d5..0000000 Binary files a/images/candies.jpg and /dev/null differ diff --git a/images/facebook-icon.png b/images/facebook-icon.png deleted file mode 100644 index 1a0ca03..0000000 Binary files a/images/facebook-icon.png and /dev/null differ diff --git a/images/fresh-veggies.jpg b/images/fresh-veggies.jpg deleted file mode 100644 index 86e60df..0000000 Binary files a/images/fresh-veggies.jpg and /dev/null differ diff --git a/images/icons8-facebook-96.png b/images/icons8-facebook-96.png new file mode 100644 index 0000000..851084e Binary files /dev/null and b/images/icons8-facebook-96.png differ diff --git a/images/icons8-facebook-96.png:Zone.Identifier b/images/icons8-facebook-96.png:Zone.Identifier new file mode 100644 index 0000000..053d112 --- /dev/null +++ b/images/icons8-facebook-96.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +HostUrl=about:internet diff --git a/images/icons8-instagram-96.png b/images/icons8-instagram-96.png new file mode 100644 index 0000000..436c174 Binary files /dev/null and b/images/icons8-instagram-96.png differ diff --git a/images/icons8-instagram-96.png:Zone.Identifier b/images/icons8-instagram-96.png:Zone.Identifier new file mode 100644 index 0000000..053d112 --- /dev/null +++ b/images/icons8-instagram-96.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +HostUrl=about:internet diff --git a/images/icons8-pinterest-96.png b/images/icons8-pinterest-96.png new file mode 100644 index 0000000..9b0a00a Binary files /dev/null and b/images/icons8-pinterest-96.png differ diff --git a/images/icons8-pinterest-96.png:Zone.Identifier b/images/icons8-pinterest-96.png:Zone.Identifier new file mode 100644 index 0000000..053d112 --- /dev/null +++ b/images/icons8-pinterest-96.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +HostUrl=about:internet diff --git a/images/instagram-icon.png b/images/instagram-icon.png deleted file mode 100644 index d41b68d..0000000 Binary files a/images/instagram-icon.png and /dev/null differ diff --git a/images/mushrooms.jpg b/images/mushrooms.jpg deleted file mode 100644 index c497543..0000000 Binary files a/images/mushrooms.jpg and /dev/null differ diff --git a/images/paris-brest.jpg b/images/paris-brest.jpg deleted file mode 100644 index fdf3bcc..0000000 Binary files a/images/paris-brest.jpg and /dev/null differ diff --git a/images/party-cake.jpg b/images/party-cake.jpg deleted file mode 100644 index 91a2657..0000000 Binary files a/images/party-cake.jpg and /dev/null differ diff --git a/images/pinterest-icon.png b/images/pinterest-icon.png deleted file mode 100644 index a4a9d33..0000000 Binary files a/images/pinterest-icon.png and /dev/null differ diff --git a/images/shish-kebab.jpg b/images/shish-kebab.jpg deleted file mode 100644 index 016cb80..0000000 Binary files a/images/shish-kebab.jpg and /dev/null differ diff --git a/images/starch.jpg b/images/starch.jpg deleted file mode 100644 index 26d1daf..0000000 Binary files a/images/starch.jpg and /dev/null differ diff --git a/images/tartine-fig.jpg b/images/tartine-fig.jpg deleted file mode 100644 index 98c3091..0000000 Binary files a/images/tartine-fig.jpg and /dev/null differ diff --git a/images/tomatoes.jpg b/images/tomatoes.jpg deleted file mode 100644 index 357890e..0000000 Binary files a/images/tomatoes.jpg and /dev/null differ diff --git a/index.html b/index.html index 452397e..b3aa2c8 100644 --- a/index.html +++ b/index.html @@ -1,16 +1,20 @@ - + - - Food Travel Blog - - + + Feast and Wonder + + -
+
+ +
-
+
-
+

Feast
&Wonder


@@ -35,20 +39,22 @@

Feast
&

-
+
diff --git a/paris.html b/paris.html index 6df953b..a4b3ba0 100644 --- a/paris.html +++ b/paris.html @@ -4,13 +4,17 @@ - Food Travel Blog + Feast and Wonder
+ + -
-
-
+
+

Paris

-
+
-
- +
+ + +
+

At the bakery

+

This short slow-motion video pans over freshly baked croissants and pains au chocolat. + Known as viennoiserie, these pastries are a staple in every French bakery -boulangerie- and + are commonly enjoyed for breakfast with a cup of strong coffee. +

+
- x - x - x - x + A selection of macarons in bright and loud colours. + Close up picture of croissants, coated in sugar, fresh out of the oven. + Charcuterie and cheese board accompanied by fresh cherry tomatoes and sliced cucumber, and a bottle of white wine. + A buffet display of bread rolls, cheese, and chutney accompanied by fresh grapes, apples, and pears.
-
+
diff --git a/seoul.html b/seoul.html index c232f46..cdbbfe1 100644 --- a/seoul.html +++ b/seoul.html @@ -4,13 +4,17 @@ - Food Travel Blog + Feast and Wonder
+ +
-
-
+
+

Seoul

- + + +
+

In the street of Seoul

+

This short time-lapse video is set at night in a busy street in downtown Seoul and shows a street food stalls + serving korean pancakes to passerbyers. It illustrates an important aspect of korean food culture: + the simple but flavoursome cuisine made and sold by street vendors. +

+
- x - x - x - x + A bird's eye view of a ramen bowl filled with egg noodles, boiled egg, fresh spinach, sauteed mushrooms and marinated sliced chicken. + A geometric display of suchi composed of california maki rolls and tuna and salmon sashimi. + A close up of a rich and spicy beef broth garnished with fresh coriander. + Raw tofu arranged neatly in slices on a serving plater.
-
+
diff --git a/styles.css b/styles.css index b0fa5a8..98e97a1 100644 --- a/styles.css +++ b/styles.css @@ -1,56 +1,64 @@ /*Cascading CSS and Phone version*/ -*{ /*https://www.freecodecamp.org/news/html-page-width-height/#:~:text=If%20you%20set%20the%20width,width%20value%20on%20the%20body.*/ - margin: 0; - padding: 0; - box-sizing: border-box; -} -html { - font-size: 16px; - font-family: Arial, sans-serif; - background-color: black; +*{ /*resetting - Applied the following properties from https://www.freecodecamp.org/news/html-page-width-height/#:~:text=If%20you%20set%20the%20width,width%20value%20on%20the%20body. To avoid a horizontal scrollbar, and body to be 100% of the viewport, default margins removed.*/ + margin: 0; /*removing all default margins*/ + padding: 0; /*removing all default paddings*/ + box-sizing: border-box; /*Including width and height of padding and border when calculating the element's width and height.*/ +} +html { /*root element of my webpage. Specifying here the default styles for my entire webpage, cascading onto the child elements.*/ + font-size: 16px; + font-family: Arial, Helvetica, sans-serif; + background-color: black; color: white; } -body { +body { /*targetting body so that the width is that of the viewport and height is at least that of the viewport*/ min-height: 100vh; - width: 100%; + width: 100%; } -main{ - margin-top: 20%; /*margin top equivalent to heigh of the navbar so they dont overlap*/ - padding-left: 10%; /*use of vw so it is responsive according to the viewport*/ +#main{ /*targetting element that has this id*/ + margin-top: 20%; + padding-left: 10%; padding-right: 10%; - margin-bottom: 5%; + margin-bottom: 5%; width: 100%; + min-height: 100vh; +} + +/*Skip to main content styles*/ +.skip-to-main a { /*targetting a tag in element classified as skip to main*/ + position: absolute; + top: -500px; /*placing the element 500px above the viewport hidding it from view but accessible via keyboard*/ + left: 0; + padding: 10px; + background-color: white; + color: black; + text-decoration: none; +} +.skip-to-main a:focus { /*targetting a tag in element classified as skip to main when focused*/ + top: 0; } /*Nav bar Styles*/ header { - position: fixed; - left: 0; - right: 0; + position: fixed; /*Applying this property so that my header does not move when the user scrolls vertically*/ + left: 0; /*aligning header to the left of the viewport*/ + right: 0; top: 0; - height: 11%; - z-index: 1; - background-color: black; - padding-left: 10%; + height: 11%; + z-index: 1; /*Giving a stacking order that is more than 0 so that my header appears on top of any other content*/ + background-color: black; + padding-left: 10%; padding-right: 10%; } .navbar { - position: relative; - left: 0; - right: 0; - margin-top: 3%; + margin-top: 3%; + width: 100%; + height: auto; } .navbar ul { - list-style-type: none; - display: flex; - justify-content: space-between; - align-items: center; - background-color: black; - padding: 0; -} -.navbar ul li { - display: inline; + list-style-type: none; + display: flex; /*applying flexbox to ul element*/ + justify-content: space-between; /*distributing the child elements li evenly within ul*/ } .navbar a { text-decoration: none; @@ -59,35 +67,40 @@ header { } /*Breadcrumbs Styles*/ -.breadcrumbs{ +.breadcrumbs{ /*targetting elements classified as breadcrumbs*/ display: flex; position: fixed; right: 0; line-height: 0.05; - background-color: black; margin-top: 3%; margin-right: 10%; } -.breadcrumbs ul { +.breadcrumbs ul { /*targetting ul tag in elements classified as breadcrumbs*/ display: flex; justify-content: end; } -.breadcrumbs ul li{ +.breadcrumbs ul li { display: inline; list-style: none; text-decoration: none; } -.breadcrumbs li a{ +.breadcrumbs li a { text-decoration: none; color: white; } -.breadcrumbs li+li::before { +.breadcrumbs li+li::before { color: white; content: "/\00a0 "; } +/*Hover Styles*/ +nav a:hover { /*targetting a tag in nav tags, using a pseudo-class to change the appearance of the a tag when the user hovers over it*/ + padding-bottom: 1%; + border-bottom-style: solid; +} + /* Focus Styles for accessibility*/ -.navbar a:focus { +.navbar a:focus { /*targetting a tag in my elements classified as navbar, using a pseudo-class to change the appearance of the a tag when the user focuses on it over it*/ outline: 2px solid white; background-color: white; color: black; @@ -97,14 +110,12 @@ header { background-color: white; color: black; } -footer a:focus { +.socials a:focus { outline: 2px solid white; - background-color: black; - color: black; } /*Footer Styles*/ -footer { +footer { position: relative; bottom: 0; left: 0; @@ -113,153 +124,184 @@ footer { padding-right: 10%; padding-left: 10%; width: 100%; - color: white; text-decoration: none; } -footer hr { +footer h2 { + margin-top: 2%; + margin-bottom: 2%; +} +h3{ + margin-top: 2%; + margin-bottom: 2%; +} +footer hr { width: 100%; } -.socials{ +.socials { + list-style: none; display: flex; flex-direction: row; - justify-content: space-around; - align-items: center; - list-style-type: none; + justify-content: center; width: 100%; padding: 0; margin-top: 3%; margin-bottom: 3%; } -.socials img{ +.socials li{ display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - width: 20%; + justify-content: center; +} +.socials a{ + display: flex; + justify-content: center; +} +.socials img { + display: flex; + width: 100%; height: auto; } +.attribution { + display: flex; + flex-direction: row; + flex-wrap: wrap; + font-size: 0.9rem; + align-content: center; +} +.attribution a { + color: white; + padding-right: 0.9%; + padding-left: 0.9%; +} /*Landing page styles*/ -.grid-main{ /*using grid for the structure of the page*/ - position: relative; - top: 0; - display: grid; - grid-template-rows: 0.8fr 2fr; /*separating title h1 and body text*/ +.grid-main { + display: grid; /*Using grid to structure the page*/ + grid-template-rows: auto auto; /*Separating title and text*/ + row-gap: 3%; } .title-container { position: relative; - left: 0px; - line-height: 0.9; + left: 0; /*Assuring the title is on the left of the page*/ + line-height: 0.9; /*Reducing line height for the title*/ } -.larger{ - font-size: 2em; /*Explain the use of em*/ +.title-container hr { + margin-top: 3%; } -.smaller{ - font-size: 1em; +.larger { + font-size: 3.5rem; /*Making the font size 3.5 bigger than the one set up in the html tag*/ } -.between{ - font-size: 1.5em; +.smaller { + font-size: 2rem; + margin-left: 2%; } -hr { - width: 100%; -} -.body-container { - position: relative; - top: 0; - margin-top: 3%; +.between { + font-size: 2rem; } .body-container p { - text-align: justify; - line-height: 2; - font-size: 100%; + line-height: 2; /*Doubling line height to increase readability*/ } -/*gallery pages styles*/ -.city-name{ +/*Gallery pages styles*/ +.city-name { + font-size: 2rem; + margin-bottom: 3%; +} +.flexbox-container { + display: flex; /*Creating flexible responsive layout*/ + flex-direction: column; /*Stacking video-container and image-container vertically*/ + width: 100%; + height: auto; /*Maintaining the aspect ratio*/ + gap: 10px; /*Adding space between video-conatiner and image-container*/ +} +.video-container { + display: flex; /*Applying flex to the child element*/ + flex-direction: column; + gap: 10px; width: 100%; + height: auto; } -.flexbox-container{ - display: flex; - flex-direction: column; - justify-content: center; - gap: 10px; +.video-transcript { width: 100%; + height: auto; } -.video-container{ - display: flex; - flex-direction: column; - justify-content: center; - gap: 10px; +.video-container video{ width: 100%; + height: auto; +} +.video-transcript h2 { + font-size: 1.5rem; + margin-bottom: 3%; +} +.video-transcript p { + line-height: 2; } .image-container { - display: flex; + display: flex; /*Applying flexbox to the child element*/ flex-direction: column; - justify-content: center; - gap: 10px; + gap: 10px; width: 100%; + height: auto; } -.image-container img{ +.image-container img { width: 100%; height: auto; } -/*Contact form style https://blog.logrocket.com/how-to-style-forms-with-css-a-beginners-guide/*/ +/*Contact form style*/ form { - display: flex; - flex-direction: row; - flex-wrap: wrap; - padding-left: 10vw; - padding-right: 10vw; -} -.form-section{ - display: flex; - flex-direction: row; + display: flex; /*Creating flexbox layout for the contact form*/ + flex-direction: row; flex-wrap: wrap; - width: 100%; + padding-left: 10%; + padding-right: 10%; } -.form-section label { - display: flex; +.form-section { + display: flex; flex-direction: row; flex-wrap: wrap; width: 100%; } .form-section input{ - display: flex; - flex-direction: row; - flex-wrap: wrap; width: 100%; - padding:10px; - margin:10px 0; - border-radius:10px; - + padding: 2%; + margin: 2% 0; + border-radius: 10px; } .form-section textarea{ - display: flex; - flex-direction: row; - flex-wrap: wrap; width: 100%; - padding:10px; - margin:10px 0; - border-radius:10px; + padding: 2%; + margin: 2% 0; + border-radius: 10px; + font-family: inherit; } .button { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; - align-items: center; width: 100%; } -button{ - padding:10px; - margin:10px 0; - border-radius:10px; +button { + padding: 10px; + margin: 10px 0; + border-radius: 10px; } -@media screen and (min-width:601px) and (max-width:900px){ /* Adding Media Query for Ipad accessibility reasons?*/ +@media screen and (min-width:601px) and (max-width:900px){ /*Adding Media Query*/ + +/*footer styles*/ +footer h3 { + text-align: center; +} +.socials img { + width: 90%; + height: auto; +} +.attribution { + font-size: 0.8rem; +} -/*Landing page styles iPad*/ +/*Landing page*/ .grid-main{ position: relative; top: 0; @@ -281,85 +323,81 @@ button{ margin-top: 3%; } .body-container p { - text-align: justify; line-height: 1.7; } -/*gallery pages styles iPad*/ +/*gallery pages styles*/ .grid-second{ display: grid; - grid-template-rows: 0.5fr 3fr; + grid-template-rows: auto auto; + row-gap: 2%; text-align: center; - justify-content: center; - align-items: center; } .city-name{ - grid-row: 1; text-align: center; } .flexbox-container { + grid-row: 2; display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - flex-wrap: wrap; - width: 100%; + flex-direction: column; } .video-container { display: flex; flex-direction: row; - justify-content: center; - align-items: center; flex-wrap: wrap; width: 100%; } .image-container { display: flex; flex-direction: row; - justify-content: center; - align-items: center; flex-wrap: wrap; width: 100%; } .video-container video { - width: 82%; - height: 100%; + width: 95%; +} +.video-transcript { + width: 95%; } .image-container img{ - width: 40%; - height: 10em; + width: 47%; /*modified number until wanted effect was reached*/ + height: auto; +} +} + +@media screen and (min-width:901px) { /*Adding Media Query*/ + +/*Nav bar Styles*/ +header { + height: 17%; +} +.navbar a { + font-size: 1.5rem; +} +.breadcrumbs li { + font-size: 1.5rem; } -/*Footer Styles on iPad*/ +/*Footer Styles*/ footer { position: fixed; width: auto; background-color: black; margin-top: 2%; } -footer hr { - width: 100%; +.socials { + gap: 50px; } -.socials{ - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - list-style-type: none; - width: 100%; - padding: 0; - margin-bottom: 3%; -} -.socials img{ - width: 20%; +.socials img { + width: 50%; height: auto; } +.attribution { + font-size: 0.9rem; } -@media screen and (min-width:901px) { /* Adding Media Query for laptop accessibility reasons?*/ - -/*Landing page styles laptop*/ -.grid-main{ +/*Landing page styles*/ +.grid-main { position: relative; top: 0; display: grid; @@ -379,35 +417,10 @@ footer hr { margin-top: 3%; } .body-container p { - text-align: justify; + font-size: 1.5rem; line-height: 1.7; } -/*Footer Styles laptop*/ -footer { - position: fixed; - width: auto; - background-color: black; - margin-top: 2%; -} -footer hr { - width: 100%; -} -.socials{ - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - list-style-type: none; - width: 100%; - padding: 0; - margin-bottom: 3%; -} -.socials img{ - width: 20%; - height: auto; -} - /*gallery pages styles*/ .grid-second{ display: grid; @@ -415,7 +428,6 @@ footer hr { text-align: center; } .city-name{ - grid-row: 1; text-align: center; margin-bottom: 3%; } @@ -429,21 +441,61 @@ footer hr { .video-container{ display: flex; flex-direction: row; + flex-wrap: wrap; width: 45%; } .image-container{ display: flex; flex-direction: row; flex-wrap: wrap; - width: 45%; + width: 50%; } .video-container video{ width: 100%; height: auto; } +.video-transcript { + line-height: 1.7; + width: 100%; + height: auto; +} .image-container img{ - width: 40%; + width: 45%; height: auto; } +/*Contact form styles*/ +.grid-contact { + display: grid; + grid-template-rows: auto auto; +} +form { + display: grid; + grid-template-rows: auto auto; + grid-template-columns: auto auto; + row-gap: 3%; + column-gap: 3%; +} +.form-section label { + font-size: 1.2rem; +} +.form-section input{ + padding: 5%; + margin: 5% 0; + border-radius: 15px; +} +.form-section textarea{ + padding: 5%; + margin: 5% 0; + border-radius: 15px; +} +button { + padding: 3%; + margin: 3% 0; + border-radius: 15px; +} +.button{ + justify-content: left; +} + }