|
1 | | - |
| 1 | + |
2 | 2 |
|
3 | 3 | # CSS | Slack clone with Flexbox |
4 | 4 |
|
5 | 5 | ## Introduction |
6 | 6 |
|
7 | | -You should be reaaaaally familiar with [Slack](https://www.slack.com/) at this point, but just to make it more clear, **Slack** is a cloud-based set of team collaboration tools and services or in simpler terms, it is a chatting program. |
| 7 | +**Slack** is a cloud-based set of team collaboration tools and services, or in simpler terms, an online chat application. |
| 8 | + |
| 9 | +We use Slack app almost every day to keep our communications with our classmates and the **Ironhack** team, but today we will be focusing on their landing page. In today's lab, we'll recreate Slack's landing page while ensuring it's responsive and adapts well to different screens. You can see the web page that we will be cloning [here](https://www.figma.com/proto/k77VYVA70WcPYRLvg4QmIf/LAB-CSS-Slack-Clone?node-id=125%3A3&scaling=scale-down-width&page-id=125%3A2&starting-point-node-id=125%3A3&hide-ui=1). |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | +The goal of the lab is to create a *responsive* landing page using **CSS**, **Flexbox**, and **media queries**. |
8 | 14 |
|
9 | | -We use the app almost every day to keep our communications with our classmates and the **Ironhack** team, so we know perfectly the chat interface but today we are going to clone their landing page. [Here](https://www.slack.com/) you can visit the website and check what are we going to do. :stuck_out_tongue_winking_eye: |
10 | 15 |
|
11 | | -We want to practice our new **Flexbox** skills, so we are going to implement the *"responsiveness"* of the landing page. No worries, we will show you what we need! |
12 | 16 |
|
13 | 17 |
|
14 | 18 | ## Requirements |
15 | 19 |
|
16 | 20 | - Fork this repo |
| 21 | + |
17 | 22 | - Clone this repo |
18 | 23 |
|
| 24 | + |
| 25 | + |
19 | 26 | ## Submission |
20 | 27 |
|
21 | | -Upon completion, run the following commands: |
22 | | -``` |
23 | | -$ git add . |
24 | | -$ git commit -m "done" |
25 | | -$ git push origin master |
26 | | -``` |
27 | | -Create Pull Request so your TAs can check up your work. |
| 28 | +- Upon completion, run the following commands: |
| 29 | + |
| 30 | + ```bash |
| 31 | + git add . |
| 32 | + git commit -m "done" |
| 33 | + git push origin master |
| 34 | + ``` |
| 35 | + |
| 36 | +- Create a Pull Request so that your TAs can check your work. |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | +## Instructions |
| 41 | + |
| 42 | +The `starter_code` folder contains all the files you'll need. The `images` folder contains all the images you'll need for your page, although most of them are already displayed on the page. |
| 43 | + |
28 | 44 |
|
29 | | -## Exercise |
30 | 45 |
|
31 | | -The **starter_code** contains the basic structure of an HTML & CSS project to start working. You will also find and **images** folder where all the images you will need for the project are stored. |
| 46 | +**The `index.html` already contains all the text and content needed. We will be focusing on the CSS and the styling!** |
32 | 47 |
|
33 | | -**In the HTML you find all the text needed! Focus on give it some style!** |
34 | 48 |
|
35 | | -### Iteration 1 | Extra Small Screen (width < 768px) |
| 49 | + |
| 50 | +During each iteration, the first step you should do is to inspect the provided screenshots. These are included in each iteration, along with a preview of the final result. Use these as a starting point for implementing your styles. |
| 51 | + |
| 52 | +<br /> |
| 53 | + |
| 54 | +<!-- |
| 55 | +
|
| 56 | +## Iteration 0 | Introduction to Figma |
| 57 | +
|
| 58 | +The first step during every iteration will be to inspect the design files. These were created using Figma are usually handed of to developers by designers. [Figma](https://www.figma.com/) is a web-based UI (User Interface) design tool, used for creating design prototypes for websites and applications. |
| 59 | +
|
| 60 | +Figma is great because it allows designers and developers to collaborate on projects while also making it simple to share and preview the web page designs. |
| 61 | +
|
| 62 | +When you begin working as a developer, it is very likely that your team will use Figma to handoff the designs of the features you will be asked to create. We're going to assume you've never seen Figma before, so don't worry. The following short videos should get you up to speed: |
| 63 | +
|
| 64 | +- [What is Figma?](https://www.youtube.com/watch?v=_d8GG2QZYAM) |
| 65 | +
|
| 66 | +- [Figma for Frontend developers [ in 5 minutes ]](https://www.youtube.com/watch?v=hbN9RGcQFNU) |
| 67 | +
|
| 68 | +--> |
| 69 | + |
| 70 | +---- |
| 71 | + |
| 72 | +### Iteration 1 | Mobile Screens (width < 768px) |
36 | 73 |
|
37 | 74 | Mobile first right? :wink: |
38 | 75 |
|
39 | | -First, we are going to clone the mobile design of the webpage! 📱 Oh! Remember to use **flexbox**, because it will be really helpful later on when we need to adapt it to different screen-size! |
40 | | - |
41 | | -After doing your magic, you should have something like this: |
| 76 | +We will start by focusing on the styles for mobile screens first! 📱 Oh! Remember to use **Flexbox** to create the layout and display the content in rows or columns from the start. You'll be working on adapting the layout to different screen sizes in the following iterations, so it's essential that you start using Flexbox from start to end! |
| 77 | + |
42 | 78 |
|
43 | | -<img src="https://user-images.githubusercontent.com/23629340/33178991-38f26dcc-d068-11e7-8ebd-3e0ef8d72ad4.gif" alt="mobile-1" style="width:23%"> |
44 | 79 |
|
| 80 | +<br> |
45 | 81 |
|
46 | | -<img src="https://user-images.githubusercontent.com/23629340/33178659-3a19db82-d067-11e7-85a5-62eeb67a0645.png" alt="mobile-1" style="width:23%"> |
| 82 | +When done, your page should look like this: [Preview - Mobile](https://www.figma.com/proto/k77VYVA70WcPYRLvg4QmIf/LAB-CSS-Slack-Clone?node-id=68%3A2762&scaling=scale-down&page-id=68%3A2761&starting-point-node-id=68%3A2762&show-proto-sidebar=1&hide-ui=1) |
47 | 83 |
|
48 | | -<img src="https://user-images.githubusercontent.com/23629340/33178689-508d3b48-d067-11e7-9b9f-e6548b71cecd.png" alt="mobile-1" style="width:23%"> |
49 | 84 |
|
50 | | -<img src="https://user-images.githubusercontent.com/23629340/33178733-685542ac-d067-11e7-8a72-39ac499bf0f4.png" alt="mobile-1" style="width:23%"> |
51 | 85 |
|
52 | | -<img src="https://user-images.githubusercontent.com/23629340/33178749-6e4442bc-d067-11e7-9d0b-b141b790baa0.png" alt="mobile-1" style="width:23%"> |
| 86 | +<br> |
53 | 87 |
|
54 | | -<img src="https://user-images.githubusercontent.com/23629340/33178753-74a135de-d067-11e7-8e96-6b27ea3f258f.png" alt="mobile-1" style="width:23%"> |
| 88 | +Use the following page screenshot as the guide: |
55 | 89 |
|
56 | | -<img src="https://user-images.githubusercontent.com/23629340/33178771-7cf0f440-d067-11e7-9676-0a61eb7c8568.png" alt="mobile-1" style="width:23%"> |
| 90 | +<details> |
| 91 | + <summary>Screenshot - Mobile Screens</summary> |
| 92 | + <img src="https://education-team-2020.s3.eu-west-1.amazonaws.com/web-dev/m1/lab-flexbox-slack/Home+Page+-+420px.png" /> |
| 93 | + <br/> |
57 | 94 |
|
| 95 | + [Back to top](#iteration-1--mobile-screens-width--768px) |
| 96 | +</details> |
58 | 97 |
|
59 | | -### Iteration 2 | Small Screen (961px > width > 767px) |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | +<!-- |
| 103 | +
|
| 104 | +You can inspect the page styles here: |
| 105 | +
|
| 106 | +[Figma file - Mobile]() |
| 107 | +
|
| 108 | +--> |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | +<br> |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | +---- |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | + |
| 121 | +### Iteration 2 | Small Screens (width > 768px and width < 1024px) |
60 | 122 |
|
61 | 123 | Let's start growing our screen size. Focus on small screens (iPads, tablets or bigger smartphones). Notice we have some changes. You need to work on the following ones: |
62 | 124 |
|
63 | | -1. The buttons and inputs stop occupying 100%. |
| 125 | +- The **header** should go from 1 column to display 2 columns; one with the content and buttons and the other with the image. |
| 126 | +- The **company logos** should be displayed in a single row |
| 127 | +- The **images** in the sections in the **main** part should be fully displayed and aligned to the left or right side of the page, respectively. |
| 128 | +- The **section "Team large and small rely on Slack"** should have the list items and the buttons displayed horizontally as rows. |
| 129 | +- The **subfooter** items, previously displayed as a column, should now be displayed in a single row. |
| 130 | + |
| 131 | + |
| 132 | + |
| 133 | +<br> |
| 134 | + |
| 135 | +When done, your page should look like this: [Preview - Small Screens](https://www.figma.com/proto/k77VYVA70WcPYRLvg4QmIf/LAB-CSS-Slack-Clone?node-id=49%3A1508&scaling=scale-down&page-id=68%3A2976&starting-point-node-id=49%3A1508&hide-ui=1) |
| 136 | + |
| 137 | + |
| 138 | + |
| 139 | +<br> |
| 140 | + |
| 141 | +Use the following page screenshot as the guide: |
| 142 | + |
| 143 | +<details> |
| 144 | + <summary>Screenshot - Small Screens</summary> |
| 145 | + <img src="https://education-team-2020.s3.eu-west-1.amazonaws.com/web-dev/m1/lab-flexbox-slack/Home+Page+-+768px.png" /> |
| 146 | + <br/> |
| 147 | + |
| 148 | + [Back to top](#iteration-2--small-screens-width--768px-and-width--1024px) |
| 149 | +</details> |
| 150 | + |
| 151 | + |
| 152 | + |
| 153 | +<!-- |
| 154 | +
|
| 155 | +You can inspect the page styles here: |
| 156 | +
|
| 157 | +[Figma file - Small Screens]() |
| 158 | +
|
| 159 | +--> |
| 160 | + |
| 161 | + |
| 162 | + |
| 163 | + |
| 164 | + |
| 165 | +<br> |
| 166 | + |
| 167 | + |
| 168 | + |
| 169 | +---- |
| 170 | + |
| 171 | + |
| 172 | + |
| 173 | +### Iteration 3 | Medium Screens (width > 1024px and width < 1440px) |
| 174 | + |
| 175 | +The easiest change we will have. We'll continue by focusing on the meduim screen size devices (notebooks and bigger tablets): |
| 176 | + |
| 177 | + |
| 178 | + |
| 179 | +- The **navbar** should now display all the menu links. The previously displayed menu icon should now be hidden. |
| 180 | +- The **sections** in the **main** part should now display the content in 2 columns; one column for the heading and text and the other for the image. |
| 181 | +- The **section "Welcome to your new digital HQ"** should now have the buttons displayed horizontally as rows. |
| 182 | + |
| 183 | + |
| 184 | + |
| 185 | +<br> |
| 186 | + |
| 187 | +When done, your page should look like this: [Preview - Medium Screens](https://www.figma.com/proto/k77VYVA70WcPYRLvg4QmIf/LAB-CSS-Slack-Clone?node-id=49%3A2159&scaling=scale-down&page-id=68%3A2977&starting-point-node-id=49%3A2159&hide-ui=1) |
| 188 | + |
| 189 | + |
| 190 | + |
| 191 | +<br> |
| 192 | + |
| 193 | +Use the following page screenshot as the guide: |
| 194 | + |
| 195 | +<details> |
| 196 | + <summary>Screenshot - Medium Screens</summary> |
| 197 | + <img src="https://education-team-2020.s3.eu-west-1.amazonaws.com/web-dev/m1/lab-flexbox-slack/Home+Page+-+1024px.png" /> |
| 198 | + <br/> |
| 199 | + |
| 200 | + [Back to top](#iteration-3--medium-screens-width--1024px-and-width--1440px) |
| 201 | +</details> |
| 202 | + |
| 203 | + |
| 204 | + |
| 205 | +<!-- |
| 206 | +
|
| 207 | +You can inspect the page styles here: |
| 208 | +
|
| 209 | +[Figma file - Medium Screens]() |
| 210 | +
|
| 211 | +--> |
| 212 | + |
| 213 | + |
| 214 | + |
| 215 | +<br> |
| 216 | + |
| 217 | + |
| 218 | + |
| 219 | +---- |
| 220 | + |
| 221 | + |
| 222 | + |
| 223 | + |
| 224 | +### Iteration 4 | Large Screens (width > 1440px) |
| 225 | + |
| 226 | +Last one! Some small changes and we are done! In this iteration we are targeting the large screen devices such as desktops and laptops: |
| 227 | + |
| 228 | +- The **sign up buttons** in the **header** should now be displayed horizontally, next to each other. Additionaly, the image shown in the **header** should be centered and fully visible. |
64 | 229 |
|
65 | | -2. Now we have 2 companies logos on each row. |
| 230 | + |
66 | 231 |
|
67 | | -3. The **subfooter** goes from 2 columns, to display all the 4 columns in the same row. |
| 232 | +<br> |
68 | 233 |
|
69 | | -4. The **footer** goes from 3 different rows of content to a simple row displaying some info at the left and some to the right. |
| 234 | +When done, your page should look like this: [Preview - Large Screens](https://www.figma.com/proto/k77VYVA70WcPYRLvg4QmIf/LAB-CSS-Slack-Clone?node-id=49%3A2489&scaling=scale-down&page-id=68%3A2978&starting-point-node-id=49%3A2489&hide-ui=1) |
70 | 235 |
|
71 | | -<img src="https://user-images.githubusercontent.com/23629340/33179399-8b29965a-d069-11e7-881a-667a1ca65f09.gif" alt="small-1" style="width:30%"> |
72 | 236 |
|
73 | | -<img src="https://user-images.githubusercontent.com/23629340/33179329-53cf51fe-d069-11e7-8445-fd29ea7f72b7.png" alt="small-1" style="width:30%"> |
74 | 237 |
|
75 | | -<img src="https://user-images.githubusercontent.com/23629340/33179319-4baeedc2-d069-11e7-8b93-9faf914bf856.png" alt="small-1" style="width:30%"> |
| 238 | +<br> |
76 | 239 |
|
77 | | -<img src="https://user-images.githubusercontent.com/23629340/33179312-433f1374-d069-11e7-86e9-cc329b545dbc.png" alt="small-1" style="width:30%"> |
| 240 | +Use the following page screenshot as the guide: |
78 | 241 |
|
79 | | -<img src="https://user-images.githubusercontent.com/23629340/33179339-5a8e8f28-d069-11e7-909b-045ee2f6126b.png" alt="small-1" style="width:30%"> |
| 242 | +<details> |
| 243 | + <summary>Screenshot - Large Screens</summary> |
| 244 | + <img src="https://education-team-2020.s3.eu-west-1.amazonaws.com/web-dev/m1/lab-flexbox-slack/Home+Page+-+1440px.png" /> |
| 245 | + <br/> |
80 | 246 |
|
81 | | -### Iteration 3 | Medium Screen (1024px > width > 960px) |
82 | 247 |
|
83 | | -The easiest change we will have. You should display 3 logos per row on the **"You're in good company"** section. Easy peasy! |
| 248 | + [Back to top](#iteration-4--large-screens-width--1440px) |
84 | 249 |
|
85 | | -<img src="https://user-images.githubusercontent.com/23629340/33180156-17eac5e4-d06c-11e7-85b6-60197aa9ec48.gif" alt="medium-1" style="width:50%"> |
| 250 | +</details> |
86 | 251 |
|
87 | 252 |
|
88 | | -### Iteration 4 | Large Screen (width > 1200px) |
89 | 253 |
|
90 | | -Last one! Some small changes and we are done! |
| 254 | +<!-- |
91 | 255 |
|
92 | | -1. Our **nav-bar** starts to show all the menu links, so go ahead, remove the collapse icon and add the list. |
| 256 | +You can inspect the page styles here: [Figma file - Large Screens]() |
93 | 257 |
|
94 | | -2. On the top of the webpage, the image is displayed in line with the "Where work happens" text. If you are using `flex-box` (you must :wink: ), this should be super easy! |
| 258 | +--> |
95 | 259 |
|
96 | | -<img src="https://user-images.githubusercontent.com/23629340/33180433-f5016870-d06c-11e7-96d4-ac6e08ccd008.gif" alt="medium-1" style="width:48%"> |
97 | 260 |
|
98 | | -<img src="https://user-images.githubusercontent.com/23629340/33180340-a19dc6f6-d06c-11e7-9ab6-a6090940d613.png" alt="medium-1" style="width:48%"> |
99 | 261 |
|
100 | | -<img src="https://user-images.githubusercontent.com/23629340/33180353-b49700b0-d06c-11e7-9e87-e54735699ad5.png" alt="medium-1" style="width:48%"> |
| 262 | +<br /> |
101 | 263 |
|
102 | | -<img src="https://user-images.githubusercontent.com/23629340/33180357-bda7665e-d06c-11e7-8a2f-4d647de32944.png" alt="medium-1" style="width:48%"> |
103 | 264 |
|
104 | 265 |
|
105 | | -Happy coding! ❤️ |
| 266 | +Happy coding! ❤️ |
0 commit comments