This challenge allows you to practice the concepts and techniques learned over the past week and apply them in a concrete project. This Sprint explored advanced CSS techniques using Responsive Design and Preprocessing. During this Sprint, you studied how to use the viewport meta tag, media queries, setting up a preprocessor, and advanced use of preprocessing techniques. In your challenge this week, you will demonstrate proficiency by updating a website that is missing content as well as adding mobile styling.
Read these instructions carefully. Understand exactly what is expected before starting this Sprint Challenge.
This is an individual assessment. All work must be your own. Your challenge score is a measure of your ability to work independently using the material covered through this sprint. You need to demonstrate proficiency in the concepts and objectives introduced and practiced in preceding days.
You are not allowed to collaborate during the Sprint Challenge. However, you are encouraged to follow the twenty-minute rule and seek support from your PM and Instructor in your cohort help channel on Slack. Your work reflects your proficiency in advanced css and your command of the concepts and techniques in responsive web design and preprocessing.
You have three hours to complete this challenge. Plan your time accordingly.
Commit your code regularly and meaningfully. This helps both you (in case you ever need to return to old code for any number of reasons) and your project manager.
The client for this challenge is Spacewalkers Magazine. Spacewalkers needs your help to build a small proof of concept website for their marketing team. They have provided designs for both desktop and phone views. In addition to designs and content they have most of the home page coded for you. You just need to finish the navigation and header as well as the mobile styles.
In meeting the minimum viable product (MVP) specifications listed below, your web page should look like the solution design files of the desktop and mobile views:
Click here to review the home design
Click here to review the mobile design
Demonstrate your understanding of this week's concepts by answering the following free-form questions.
Edit this document to include your answers after each question. Make sure to leave a blank line above and below your answer so it is clear and easy to read by your project manager
- What is the difference between an adaptive website and a fully responsive website?
An adaptive website responds to window size but doesn't use media queries to change the format. A fully responsive website does use media queries to adjust how the website is displayed depending on screen size and/or type of device.
- Describe what it means to be mobile first vs desktop first.
When doing mobile first, you're first designing the website with a mobile view in mind before designing the other versions. Each version adapts for a different size until it's typically a desktop version of the website. Desktop first is the exact opposite of mobile first.
- What does
font-size: 62.5%
in thehtml
tag do for us when usingrem
units?
Setting the font-size to 62.5% sets the pixels for the font to exactly 10px if the viewer is currently on the medium font size setting (browsers will typically default to this size). This makes it easier to set fonts sizes because you're working with 10's instead of 16's since the medium font setting is generally 16px.
- How would you describe preprocessing to someone new to CSS?
Preprocessing extends the functionality of CSS to include functions, variables, and mixins. It also allows for nesting the code which promotes structure that makes the code easier to read and understand. The code can be written in a preprocessing language, like SASS or LESS, and then can be converted into standard CSS using the complier so that browsers can understand it.
- What is your favorite concept in preprocessing? What is the concept that gives you the most trouble?
My favorite concepts are mixins and nesting. It's hard to choose a favorite! Mixins are great for producing DRY code. And nesting makes everything easier to understand since it structures everything so well if written properly. The concept that gave me the most trouble was probably the nesting because there are no set rules on structure. It's a learning process to figure out how to best nest everything.
You are expected to be able to answer all these questions. Your responses contribute to your Sprint Challenge grade. Skipping this section will prevent you from passing this challenge.
Follow these steps to set up your project:
- Create a forked copy of this project.
- Add your project manager as collaborator on Github.
- Clone your OWN version of the repository (Not Lambda's by mistake!).
- Create a new branch: git checkout -b
<firstName-lastName>
. - Implement the project on your newly created
<firstName-lastName>
branch, committing changes regularly. - Push commits: git push origin
<firstName-lastName>
.
Follow these steps for completing your project.
- Submit a Pull-Request to merge Branch into master (student's Repo). Please don't merge your own pull request
- Add your project manager as a reviewer on the pull-request
- Your project manager will count the project as complete by merging the branch back into master.
- Verify that you have LESS installed correctly by running
lessc -v
in your terminal, if you don't get a version message back, reach out to your project manager for help. - Open your terminal and navigate to your preprocessing project by using the
cd
command - Once in your project's root folder, run the following command
less-watch-compiler less css index.less
- Verify your compiler is working correctly by changing the
background-color
on thehtml
selector tored
in yourindex.less
file. - Once you see the red screen, you can delete that style and you're ready to start on the next task
Your finished project must include all of the following requirements:
- Navigate to your
index.less
file. Notice the file is blank. You have been asked to use a certain import order. That order is as follows:
1.variables.less
2.mixins.less
3.reset.less
4.global.less
5.navigation.less
6.footer.less
7.home-page.less
You will know everything is working properly when you see the styles enabled for the provided content.
-
Take 10 minutes to review the code that has already been provided for you. Take time to see how the home page was built.
-
Add a viewport meta tag to the head of your index.html page
-
Review the provided home desktop design file. You are to build the missing navigation system and header image. You have been provided all content necessary in the index.html file
-
Navigation Styles: Use the
navigation.less
file for styling. -
Main Content Styles: Use the
home-page.less
file for styling -
LESS Mixins: Create and use 2 different mixins to aid your styling. Use the
mixins.less
file for your mixins -
LESS Parametric Mixin: create a parametric mixin that is used to create the
sign up
button styles. -
Use at least 2 parameters to create your button
-
Create a hover state that swaps the background color and font color of the base button styles.
-
Create a
@phone
variable that contains amax-width: 500px
media query string. Use the@phone
variable for all your nested mobile styling. -
Review the provided home mobile design file. Match your mobile styling the best you can using the design file.
-
Push your changes and create a pull request if you haven't already.
In your solution, it is essential that you follow best practices and produce clean and professional results. Schedule time to review, refine, and assess your work and perform basic professional polishing including spell-checking and grammar-checking on your work. It is better to submit a challenge that meets MVP than one that attempts too much and does not.
After finishing your required elements, you can push your work further. These goals may or may not be things you have learned in this module but they build on the material you just studied. Time allowing, stretch your limits and see if you can deliver on the following optional goals:
-
Build a page of your choosing from the navigation items. Come up with content and images that fit the theme.
-
Introduce CSS animations to your site.
-
Create a fixed navigation and add some opacity to the background
-
Create a form that would allow someone to sign up for a Spacewalkers Magazine subscription