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?
-
Adaptive: hard coded with pixels and is quicker way to build for specific devices.
-
Responsive: takes longer to build and uses responsive units to create a seamless user experience across many devices at 1 time.
-
-
Describe what it means to be mobile first vs desktop first.
- Designing mobile first, means to code CSS specifically for mobile functionality first and expand layout and features out to desktop with media queries.
-
What does
font-size: 62.5%
in thehtml
tag do for us when usingrem
units?- Helps set the root font to typical web browser default font of 10px, then setting your font-size to 1.8 rems makes it easy to mathematically convert from rems to pixels. 1.8 rems = 18px.
-
How would you describe preprocessing to someone new to CSS?
- Very interesting and useful. Also, a great way to collaboratively work on a project with multiple people on certain aspects of the project, your compiler will compile all work with no git issues between multiple collaborators. Making collaborations easier with less issues.
-
What is your favorite concept in preprocessing? What is the concept that gives you the most trouble?
-
Favorite: Mixins and variables are my favorite as they help with multiple styling and not having to rewrite the same code constantly, easy to inter grade with multiple colors/sizing/flexboxes.
-
Troubles: Parametric mixins and nesting, dived a little deeper on these 2 just to fully understand a little better. Parametrics- really didn't understand the differences between () and no (), when to use @functions and when to just pass a argument. As for nesting, had to watch my placements of my }, when I would jump to my design file and see that it wasn't working, I would end up deleting it instead of investigating the issue. Eventually got it.
-
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