Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
51ed1f2
update @mate-academy/scripts to 0.8.0
mriynyk Mar 16, 2021
3373a85
Merge pull request #376 from mate-academy/mate-scripts-update
mriynyk Mar 16, 2021
ef3e72b
update @mate-academy/bemlint
mriynyk Mar 17, 2021
d38c587
Merge pull request #377 from mate-academy/mate-scripts-update
mriynyk Mar 17, 2021
093ed97
Update README.md
mgrinko Apr 6, 2021
07810a6
Update README.md
mgrinko Apr 6, 2021
e97bb22
defer was added to the script
mgrinko Apr 12, 2021
f0a6fab
Update checklist.md
ArtemTopolskyi Apr 14, 2021
911941b
Update README.md
ArtemTopolskyi Apr 14, 2021
b54970e
icons were added
mgrinko Apr 23, 2021
965b202
Update package.json
solaryasha Jun 15, 2021
ded947b
Update README.md
mgrinko Aug 30, 2021
c59c8b8
Add a code for fixing menu on small screens
mgrinko Sep 7, 2021
3272d43
Update README.md
mgrinko Sep 14, 2021
e412629
Create README.md
mgrinko Sep 14, 2021
687fd68
Update README.md
mgrinko Sep 15, 2021
fa91c5f
Update README.md
mgrinko Sep 23, 2021
2c4ea26
Update README.md
aliceblunt8 Sep 23, 2021
88a53ff
update readme
VinnieJ-2k20 Sep 23, 2021
b996e24
Merge pull request #648 from mate-academy/fix-script-for-linter
VinnieJ-2k20 Sep 23, 2021
10fdb68
added checklist item regarding default margins for headings
illiarerun Sep 27, 2021
868a292
fixed formatting
illiarerun Sep 27, 2021
5b3a936
fixed formatting
illiarerun Sep 27, 2021
76da35d
Merge pull request #657 from mate-academy/add_checklist_item_regardin…
solaryasha Sep 27, 2021
1f6c506
Add point to readme
AlinaMatuschak Oct 28, 2021
52efd1e
add checklist link to readme
AlinaMatuschak Oct 28, 2021
6431215
add new point to checklist
AlinaMatuschak Oct 28, 2021
04205d4
add enter before image
AlinaMatuschak Oct 28, 2021
b5eb6bc
Merge pull request #701 from mate-academy/add-new-point-to-readme
AlinaMatuschak Oct 28, 2021
bca54db
added menu tab bug item
illiarerun Oct 28, 2021
b0466f3
transferred checklist from reabme to checklist.md
illiarerun Oct 28, 2021
d23e307
Merge pull request #704 from mate-academy/add-menu-tab-bug-item-check…
illiarerun Oct 28, 2021
e3ebcb3
Update checklist.md
aionova Nov 1, 2021
88c2633
Add jest in package in devDependencies
Nov 19, 2021
a6093d9
Merge pull request #733 from mate-academy/mate-scripts-update
Ihor-Karpyn Nov 19, 2021
21e33e6
Update checklist.md
ArtemTopolskyi Dec 3, 2021
af40665
Add new version of @linthtml/linthtml and @mate-academy/linthtml-conf…
OleksiiBlezniuk Dec 14, 2021
3776419
Merge pull request #796 from mate-academy/mate-scripts-update
OleksiiBlezniuk Dec 14, 2021
d924238
Update .linthtmlrc.json
OleksiiBlezniuk Dec 14, 2021
42318cb
update point about tab navigate
AlinaMatuschak Jan 5, 2022
f52ca3d
Update checklist.md
AlinaMatuschak Jan 5, 2022
38f9e18
Merge pull request #814 from mate-academy/AlinaMatuschak-patch-1
AlinaMatuschak Jan 5, 2022
14e6ed8
update point about tab navigation
AlinaMatuschak Jan 5, 2022
ff588f0
Merge pull request #815 from mate-academy/tab-point
mgrinko Jan 5, 2022
aed330e
Update checklist.md
mgrinko Jan 17, 2022
c1a855b
Update checklist.md
mgrinko Jan 17, 2022
5658469
Update README.md
nadiia-m Jan 25, 2022
2a16cb5
Update checklist.md
illiarerun Mar 8, 2022
4026b49
Delete footer.jpg
AlinaMatuschak Mar 16, 2022
b3da47a
Delete header.jpg
AlinaMatuschak Mar 16, 2022
2d38886
Delete 1.jpg
AlinaMatuschak Mar 16, 2022
17e6e3d
Delete 2.jpg
AlinaMatuschak Mar 16, 2022
814f350
Delete 3.jpg
AlinaMatuschak Mar 16, 2022
94e635d
Merge pull request #929 from mate-academy/delete-base-images
mgrinko Mar 16, 2022
627801c
update checklist to be more generic
meforoma Apr 12, 2022
625185e
Merge pull request #990 from mate-academy/develop
meforoma Apr 12, 2022
b7a677c
Updated README.md with demo link sample
jstmpelowycz May 27, 2022
7e13326
Removed content bug in README.md
jstmpelowycz May 27, 2022
c2d1ad9
Update checklist.md
mgrinko Jun 22, 2022
6426dbe
Update README.md
mgrinko Jun 27, 2022
6c493f2
Update README.md
mgrinko Jun 27, 2022
61ea8cb
Update README.md
mgrinko Jun 27, 2022
374f13c
Update README.md
solaryasha Jul 8, 2022
8d0b01e
Update README.md
mgrinko Sep 6, 2022
cee64a5
changed my bike figma link to a new version
ihor-jpeg Sep 7, 2022
ea0dece
Merge pull request #1494 from mate-academy/update-my-bike-figma-link
ihor-jpeg Sep 7, 2022
c057b9a
Update README.md
mgrinko Sep 19, 2022
ee253f8
Update checklist.md
G-YaSha Oct 18, 2022
0b6e00c
downgrade parcel to 1.12.3
mgrinko Jun 8, 2023
6e9bbda
Update README.md
mgrinko Jun 16, 2023
b43bc67
fix dependencies
mhrynko Jul 14, 2023
c8ef338
update dependencies
Nov 12, 2023
e2200a7
Merge pull request #2614 from SerhiiKirik/update-deps
mgrinko Nov 20, 2023
bfd224b
fix deps
mgrinko Nov 29, 2023
c514de5
feature/prettier added prettier, updated packages
mykhalenych Feb 21, 2024
484c7a8
feature/prettier updated package
mykhalenych Feb 22, 2024
00951e4
Update package.json
mgrinko Feb 22, 2024
870cfed
Merge pull request #2644 from mykhalenych/feature/prettier
mgrinko Feb 22, 2024
6032576
Update package.json
mgrinko Mar 1, 2024
be86692
Update package.json
mgrinko Mar 4, 2024
03b8d7d
fix deps for node20
mgrinko Mar 11, 2024
b402e4f
add latest deps
mgrinko Jul 21, 2024
f5c9d49
Merge pull request #2660 from mate-academy/node20
mgrinko Sep 2, 2024
b647d3a
Update test.yml
mgrinko Sep 2, 2024
dac1f00
Update test.yml
mgrinko Sep 10, 2024
6e7453b
feat: use vite for layout (vue config uses vite under the hood)
Ayzrian Sep 28, 2025
5958067
feat: use layoutVite project type
Ayzrian Sep 28, 2025
cb9ab14
fix: add cross-env
Ayzrian Sep 28, 2025
bb67c56
feat: update package version to use vite
Ayzrian Sep 30, 2025
5e03630
fix: remove @parcel/transformer-sass
Ayzrian Sep 30, 2025
3fbec07
fix: remove cross-env
Ayzrian Sep 30, 2025
027fc57
Merge pull request #2711 from Ayzrian/feat/use-vite-for-layout
Sep 30, 2025
f15dcb5
Update package.json
mykhalenych Oct 2, 2025
043c9e2
Merge pull request #2713 from mykhalenych/patch-1
alenatovstukha Oct 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .bemlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"elementDivider": "__",
"modifierDivider": "--",
"ignore": [
"node_modules",
"dist"
],
"rules": {
"one-block": true,
"one-element": true,
"element-inside-parent-block": true,
"no-double-element": true,
"no-neighbour-parent-block": true,
"modifiable-class": true
}
}
2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/backstop_data
/dist
/node_modules
12 changes: 9 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,19 @@ jobs:

strategy:
matrix:
node-version: [12.x]
node-version: [20.x]

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm start & sleep 5 && npm test
- run: npm install
- run: npm test
- name: Upload HTML report(backstop data)
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: report
path: backstop_data
18 changes: 10 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# IDE
.idea
.vscode

# Node
build
dist
node_modules

# MacOS
.DS_Store

# Generated files
backstop_data
dist
npm-debug.log*
yarn-debug.log*
yarn-error.log*

raw_reports
reports
cypress/screenshots
cypress/videos
2 changes: 1 addition & 1 deletion .linthtmlrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
],
"tag-name-lowercase": true,
"tag-name-match": true,
"tag-self-close": "never",
"tag-self-close": false,
"tag-close": true,
"text-ignore-regex": "&",
"title-no-dup": true,
Expand Down
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/node_modules
/dist
**/*.test.js
20 changes: 20 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "all",
"printWidth": 80,
"overrides": [
{
"files": "*.html",
"options": {
"parser": "html",
"insertPragma": false,
"endOfLine": "auto",
"singleAttributePerLine": true,
"htmlWhitespaceSensitivity": "ignore"
}
}
]
}
5 changes: 1 addition & 4 deletions .stylelintrc.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
module.exports = {
extends: [
"stylelint-config-recommended-scss",
"@mate-academy/stylelint-config"
],
extends: "@mate-academy/stylelint-config",
plugins: [
"stylelint-scss"
],
Expand Down
33 changes: 12 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,15 @@
# Miami landing page
- Implement [the landing page](https://www.figma.com/file/nHz8bflIwJaWP3P99vKTH5/miami_home_new?node-id=0%3A2)
- Follow this [video guide](https://www.youtube.com/watch?v=sq184jq9DV8&feature=youtu.be) and write your own implementation.

## Instructions
1. **Fork** the repo.
2. **Clone** the forked one. (The project link should have your name but not `mate-academy`)
3. Run `npm install` (or just `npm i`)
4. Run `npm start`.
5. Open one more terminal window for the next steps
6. `git checkout -b develop` - to create new branch and switch on it
7. Write you code in `src` folder
8. Run `npm run lint` and fix code style errors.
9. Run `npm run deploy` to deploy your solution to `gh-pages`
10. `git add . && git commit -m 'solution'` to save your changes
11. `git push origin develop` - to send you code for PR
12. Create a Pull Request (PR) from your branch `develop` to branch `master` of original repo.
13. Replace `<your_account>` with your Github username in the
[DEMO LINK](https://<your_account>.github.io/layout_miami/)
14. Copy `DEMO LINK` to the PR description
In this task, you will learn how to implement a landing page. To do that:

> To update you PR repeat steps 7-11

--> [CHECKLIST](https://github.com/mate-academy/layout_miami/blob/master/checklist.md)
- choose a landing page design from the list below;
- [BOSE landing](https://www.figma.com/file/DtkQmQ797hk0nI4KfMi2Uq/BOSE-New-Version?type=design&node-id=6703-88&t=L7eKz5YKLN0m5WxR-0)
- [MET landing](https://www.figma.com/file/lSR1m42L9YwzQwzzxKwHpw/THE-MET)
- [MYBIKE landing](https://www.figma.com/file/NZQAIydtHo5QkINyGLHNcq/BIKE-New-Version?node-id=0%3A1)
- [B&O](https://www.figma.com/file/DtkQmQ797hk0nI4KfMi2Uq/BOSE-New-Version?type=design&node-id=6817-212&t=ZTV6Gl8NzaWkJ4FK-0)
- [Nothing](https://www.figma.com/file/DtkQmQ797hk0nI4KfMi2Uq/BOSE-New-Version?type=design&node-id=6802-139&t=L7eKz5YKLN0m5WxR-0)
- watch the lesson videos and implement your page blocks similarly to the videos;
- **DON'T** try to do it `Pixel Perfect` - implement it the most `simple` way so it looks similar;
- when you finish the first block of your page deploy it and create a Pull Request with a [DEMO LINK](https://<your_account>.github.io/layout_miami/)
- after each next block do the same (add, commit and push the changes, and deploy the updated demo;
- check yourself using the [CHECKLIST](https://github.com/mate-academy/layout_miami/blob/master/checklist.md) when finished;
95 changes: 46 additions & 49 deletions checklist.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,48 @@
- make sure all links work
- comments are usually applicable to the whole project, not only the place where it was left (think about similar issues in your code)
- did you fully followed the design?
- make sure there is an empty line at the end of the file ([find out why](https://evanhahn.com/newline-necessary-at-the-end-of-javascript-files/))
- follow DRY principle
- write semantic markup
- elements of type block (e.g. `div`) are already 100% wide, there is no need to write this in styles
- after you open the tag, you have to add at least one more level of indentation before you close this tag
1. Add a favicon
2. Don’t forget to add a title for the whole web page (it could be the name of your landing)
3. All Logos on the page should be links to home page
4. Change text color on hover for phone, email and address
5. When you click on phone icon or phone number in contacts section, make sure that there is no 404 error, make it a real link to start a call on device
6. Same when you click on logo. There shouldn't be any error.
7. When clicking on any location / address - prevent errors and make it to open location in Google Maps
8. Pictures in Gallery should increase on hover
9. Location-related addresses / links should open google maps in a new tab `target="_blank"`
10. Apply `:hover` effect for images on page (testimonials / gallery, other sections).
11. Make sure everything looks neat on mobile and without horizontal scrolling
12. The speed of animations is the same throughout the landing page (for example, increasing when hovering or moving blocks when scrolling)
13. Placeholders in the forms suggest what to enter; apply validation of the form fields (`required`, `email / tel etc.`), then it is clear in what format to enter the data
14. Form shouldn't be submitted if some of the fields are not filled
15. Page shouldn't be reloaded on form submit (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)
16. Add a smooth scroll for the whole page
17. Fix menu for small screens (if there is not enough space for all the menu items)
```css
.menu {
/* Move these rules from .menu__content */
box-sizing: border-box;
height: 100vh;
padding: 24px 0;

GOOD example:
```
<div>
<div>
some text
</div
</div>
```
background-color: #0075ff;

BAD example:
```
<div>
<div>
some text
</div
</div>
```
- do not add extra files to the PR, use `git add <file_name>` instead of `git add.` or use `.gitignore` file ([gitignore](https://git-scm.com/docs/gitignore))
- check the [style guide](https://mate-academy.github.io/style-guides/htmlcss.html)
- `*` selector is used to add styles to EACH element of the file, you don't usually need this and this is too heavy for the big page,
that's why this is better to add this style to those elements you really need (the major case when it is used is for `box-sizing` property)
- we preferably use classes for styling, not tags, ids, attributes or something else
- do not reset paddings for `body`, it doesn't have them by default
- check your class names again and make sure they are meaningful and describe the element behavior or its appearance
- styles for `body` is usually written at the beginning of the file
- don't increase specificity of selectors ([about selectors specificity](https://www.w3schools.com/css/css_specificity.asp))
- don't use word `image` in alt ([check here why](https://moz.com/learn/seo/alt-text))
- hover with transition should work perfectly
- all interactive elements should have cursor pointer
- inputs must have `name` attribute
- check the page on different screen sizes, it should be responsive (including sizes over 1700px)
- remove commented code and unnecessary comments
- use either `kebab-case` or `snake_case` for class names
- if you pushed some new changes, deploy them as well
- check up this [link](https://docs.google.com/document/d/1iglPsTDmcbDEwCEga20cUFO0eu8IIgXeqy06PLb46jY/edit) to prepare your project for HR review
- phones should be links like this: `<a href="tel:123-456-7890">123-456-7890</a>`
- emails should be links like this: `<a href="mailto:someone@yoursite.com">Email Us</a>`
- use ids for anchoring from your `nav` through site
- forms should have attributes `method` and `action`
- phone inputs in forms should have `type="tel"` so the HTML validation works
- email inputs in forms should have `type="email"` so the HTML validation works
- form have button with `type="submit"` ([check here why button](https://html.com/attributes/button-type/#Difference_between_ltbutton_typesubmitgt_and_ltinput_typesubmitgt))
/* Add this rule to add scroll when there is not enough space */
overflow-y: auto;

...
```
18. To disable page scrolling under the menu add the next code
```css
.page__body--with-menu {
overflow: hidden;
}
```
```js
window.addEventListener('hashchange', () => {
if (window.location.hash === '#menu') {
document.body.classList.add('page__body--with-menu');
} else {
document.body.classList.remove('page__body--with-menu');
}
});
```
19. Remember to reset default margins for headings (h1, h2, h3, etc.).
* Only for Miami: Make sure that ```<h1>``` is positioned exactly 80px from the bottom of the header.
22 changes: 22 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0"
/>
<title>Miami</title>
<link
rel="stylesheet"
href="src/styles/main.scss"
/>
<script
src="src/scripts/main.js"
defer
></script>
</head>
<body>
<h1>Miami</h1>
</body>
</html>
Loading