Skip to content
Open

Develop #2733

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
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
2f53dec
Extrct title style to block file
MateuszRuszczynski Feb 18, 2026
9097554
positioning title in header
MateuszRuszczynski Feb 18, 2026
8e2185d
setting header background
MateuszRuszczynski Feb 18, 2026
49f5d27
html for main section
MateuszRuszczynski Feb 18, 2026
daf85d8
css for main section and h2 styles
MateuszRuszczynski Feb 18, 2026
ae38606
html and css for recommended block
MateuszRuszczynski Feb 18, 2026
93b3fa3
html and css for products card section
MateuszRuszczynski Feb 19, 2026
ad8fad6
rename scss file
MateuszRuszczynski Feb 19, 2026
c85e894
add semantic html for gallery section
MateuszRuszczynski Feb 19, 2026
af7cdfe
create categories scss file
MateuszRuszczynski Feb 19, 2026
20a4af4
styles for categories section
MateuszRuszczynski Feb 19, 2026
f04bdb4
add styles for categories section and seperate styles for button
MateuszRuszczynski Feb 19, 2026
65477e1
html for article section
MateuszRuszczynski Feb 19, 2026
504e6a2
styles for article section
MateuszRuszczynski Feb 19, 2026
1174fb5
fix grid issue for categories
MateuszRuszczynski Feb 19, 2026
8c4aee0
fix article section
MateuszRuszczynski Feb 19, 2026
19a8e74
fix categories layout
MateuszRuszczynski Feb 21, 2026
99bcaea
html for contact section
MateuszRuszczynski Feb 21, 2026
6dc90eb
styles for contact section
MateuszRuszczynski Feb 21, 2026
a52e855
fix textarea contact form
MateuszRuszczynski Feb 21, 2026
c491b8d
html for footer
MateuszRuszczynski Feb 21, 2026
5812f74
styles for footer
MateuszRuszczynski Feb 21, 2026
38695d4
mixin for visually hidden
MateuszRuszczynski Feb 22, 2026
f44d72f
html for navigation section
MateuszRuszczynski Feb 22, 2026
02d3276
styles for navigation section
MateuszRuszczynski Feb 22, 2026
06cd53a
html for menu
MateuszRuszczynski Feb 22, 2026
c573738
styles for menu section
MateuszRuszczynski Feb 22, 2026
c5a1b4e
new styles for close img in menu section
MateuszRuszczynski Feb 22, 2026
8aeeeb6
add varibles.scss
MateuszRuszczynski Feb 23, 2026
fe24142
add @media for header block
MateuszRuszczynski Feb 23, 2026
a186dea
add @media for navigation block
MateuszRuszczynski Feb 23, 2026
e4023a5
add @media for menu block
MateuszRuszczynski Feb 23, 2026
096fcec
add @media for products block
MateuszRuszczynski Feb 23, 2026
1172cfa
add @media for categories block
MateuszRuszczynski Feb 23, 2026
dbca3a0
add @media for article block
MateuszRuszczynski Feb 23, 2026
7757d8f
add @media for contact block
MateuszRuszczynski Feb 23, 2026
f820793
add @media for header
MateuszRuszczynski Feb 23, 2026
ef5963c
add @media for products block
MateuszRuszczynski Feb 24, 2026
a128a5f
add variables for all blocks
MateuszRuszczynski Feb 24, 2026
b354a4b
add mixins.scss
MateuszRuszczynski Feb 24, 2026
dbc0705
fix href attribute for contact block
MateuszRuszczynski Feb 24, 2026
4fd0d9a
add hover for contact block
MateuszRuszczynski Feb 24, 2026
e1080f7
add overflow hidden while menu is open
MateuszRuszczynski Feb 24, 2026
3c7f0b7
add js script for contact block
MateuszRuszczynski Feb 24, 2026
fa9a1b0
add @media for menu block
MateuszRuszczynski Feb 25, 2026
8a1532e
create readme.md
MateuszRuszczynski Feb 25, 2026
99c1ceb
Update demo link in README.md
MateuszRuszczynski Feb 25, 2026
8495873
fix path for main.scss and main.js
MateuszRuszczynski Feb 25, 2026
015e0da
Merge branch 'develop' of github.com:MateuszRuszczynski/layout_miami …
MateuszRuszczynski Feb 25, 2026
8c4a61b
change readme.md
MateuszRuszczynski Feb 25, 2026
e1ba894
change readme.md
MateuszRuszczynski Feb 25, 2026
b5dc8af
fix gh pages
MateuszRuszczynski Feb 25, 2026
15a9b08
fix paths url for header and footer
MateuszRuszczynski Feb 25, 2026
2f82884
fix readme.md
MateuszRuszczynski Feb 25, 2026
0f4900e
fix layout according to the mentor suggestions
MateuszRuszczynski Feb 27, 2026
1de2295
fix header padding
MateuszRuszczynski Feb 27, 2026
9ed8db4
fix position of icons for header and menu
MateuszRuszczynski Mar 3, 2026
abc9533
fixing icons size
MateuszRuszczynski Mar 4, 2026
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
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:

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

steps:
- uses: actions/checkout@v2
Expand All @@ -20,10 +20,10 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm start & sleep 5 && npm test
- run: npm test
- name: Upload HTML report(backstop data)
if: ${{ always() }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: report
path: backstop_data
29 changes: 29 additions & 0 deletions .github/workflows/test.yml-template
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Test

on:
pull_request:
branches: [ master ]

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
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 install
- run: npm test
- name: Upload HTML report(backstop data)
if: ${{ always() }}
uses: actions/upload-artifact@v2
with:
name: report
path: backstop_data
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ node_modules
backstop_data
dist
.cache
.parcel-cache
48 changes: 47 additions & 1 deletion .linthtmlrc.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,49 @@
{
"extends": "@mate-academy/linthtml-config"
"attr-bans": [
"align",
"background",
"bgcolor",
"border",
"frameborder",
"style"
],
"attr-name-ignore-regex": "viewBox",
"attr-no-dup": true,
"attr-quote-style": "double",
"attr-req-value": true,
"class-no-dup": true,
"doctype-first": true,
"doctype-html5": true,
"fig-req-figcaption": true,
"head-req-title": true,
"html-req-lang": true,
"id-class-style": false,
"id-no-dup": true,
"img-req-src": true,
"img-req-alt": "allownull",
"indent-width": 2,
"indent-style": "spaces",
"indent-width-cont": true,
"input-radio-req-name": true,
"spec-char-escape": true,
"tag-bans": [
"b",
"i",
"u",
"center",
"style",
"marquee",
"font",
"s"
],
"tag-name-lowercase": true,
"tag-name-match": true,
"tag-self-close": false,
"tag-close": true,
"text-ignore-regex": "&",
"title-no-dup": true,
"line-end-style": "lf",
"attr-new-line": 2,
"attr-name-style": "dash",
"attr-no-unsafe-char": true
}
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
54 changes: 46 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,50 @@
# Miami landing page
# Bose - Premium Headphones Landing Page

You have several designs that are very similar to Miami. Choose the most interesting for you. Don't be afraid of another markup. We developed landing pages that in coding will be almost the same as Miami. You still able to chose Miami.
A modern, responsive landing page for high-end audio products, featuring a sleek design and smooth user experience. This project was built to demonstrate clean SCSS architecture, BEM methodology, and modern JavaScript integration.

- [the BOSE landing page](https://www.figma.com/file/OMjQNb3hg1LKMV4OwyQ3Ao/BOSE?node-id=0%3A1)
- [the MYBIKE landing page](https://www.figma.com/file/Ic3SlZjkATYaS7uTifZAIk/BIKE?node-id=0%3A1)
- [the MET landing page](https://www.figma.com/file/lSR1m42L9YwzQwzzxKwHpw/THE-MET?node-id=0%3A1)
- [the Miami landing page](https://www.figma.com/file/nHz8bflIwJaWP3P99vKTH5/miami_home_new?node-id=16033%3A3)
## 🌐 Live Preview

Implement selected landing page following the lesson videos.
* **Demo:** https://mateuszruszczynski.github.io/layout_miami
* **Layout:** https://www.figma.com/design/DtkQmQ797hk0nI4KfMi2Uq/BOSE-New-Version?node-id=6703-88&p=f&t=fRh8fbS5vT6bQSZu-0

--> [CHECKLIST](https://github.com/mate-academy/layout_miami/blob/master/checklist.md)
---

## 🛠 Technologies Used

* **HTML5** – Semantic structure for better SEO and accessibility.
* **SCSS (Sass)** – Modular architecture using mixins, variables, and nesting.
* **JavaScript (ES6+)** – Interactive elements and form handling.
* **BEM Methodology** – Consistent and scalable naming convention.
* **Vite** – Modern build tool for fast development and bundling.

---

## 🚀 Launching the Project

Follow these steps to run the project locally:

### 1. Prerequisites
Make sure you have **Node.js** installed on your machine.

### 2. Installation
Clone the repository and install dependencies:
```bash
git clone https://github.com/MateuszRuszczynski/layout_miami
npm install
npm start
```
The project will be available at http://localhost:5173.

## ✨ Key Features
Responsive Web Design (RWD): Fully optimized for mobile, tablet, and desktop views.

Interactive Mobile Menu: Custom navigation with scroll-lock functionality on the body.

Form Handling: Implemented preventDefault() to handle contact form submissions without page reloads, preventing 404 errors.

Modern UI: High-fidelity implementation based on professional layouts with smooth hover effects and transitions.

## 📁 Project Structure
* **src/styles/** – SCSS files divided into utils (variables/mixins) and components.
* **src/scripts/** – JavaScript modules for interactivity.
* **index.html** – Main entry point.
8 changes: 4 additions & 4 deletions checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
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 / images should open google maps in a new tab `target="_blank"`
10. Apply :hover effect for images on page (testimonials / gallery, other sections).
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
Expand All @@ -29,7 +29,7 @@

...
```
15. To disable page scrolling under the menu add the next code
18. To disable page scrolling under the menu add the next code
```css
.page__body--with-menu {
overflow: hidden;
Expand All @@ -44,5 +44,5 @@
}
});
```
16. Remember to reset default margins for headings (h1, h2, h3, etc.).
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.
Loading