add task solution#6245
Conversation
nikitinaanna47
commented
Jun 2, 2026
- DEMO LINK
- TEST REPORT LINK
mateacademy-ai-mentor
left a comment
There was a problem hiding this comment.
Review Summary
This implementation has several critical issues that violate task requirements and must be fixed:
Critical Blockers:
-
Grid implementation doesn't match requirements - Using
auto-fillwithminmax(200px, 1fr)doesn't guarantee exact column counts at specified breakpoints. The task requires 1→2→3→4 columns at 488px→768px→1024px. You need media queries with explicitrepeat(N, 200px)instead. -
BEM violation in hover selector - In
product-card.scss, the selector.name-section__headerreferences a different BEM block. The task specifies.card:hover .card__titlepattern. The title element should belong to the card block (card__titleorproduct-card__title), not reference an external block. -
Missing nav link transitions - The
.nav__linkhover state inheader.scsslacks atransition: color 300ms easedeclaration, while the checklist requires all hover changes to be smooth during 300ms. -
Button hover causes layout shift - Adding
border: solid $blue 1pxon button hover changes dimensions. Useoutline: 1px solid $blueinstead to avoid shifting.
Minor fixes:
- Remove redundant
data-qaattribute from first nav link (keep onlyis-activeclass) - Remove
color: blackfrom:visitedpseudo-class in header.scss to align with$main-colorvariable
These issues prevent the implementation from meeting explicit task requirements. Please fix these critical issues and resubmit.
✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨
Important
Fix the issues, commit the changes, and then re-request my review using the Re-request review button2 in the Reviewers tab.
Tip
If you have any comments about this review, please leave a message in the Add a comment section below and mention me with the @mateacademy-ai-mentor tag3.
I will read your message during my next review of your pull request. Please do not reply directly to my comments, as that feature is not supported yet.
Caution
Do not close the pull request until the review is complete. Closing it early can lead to unexpected behavior and disrupt the review process.
Footnotes
|
|
||
| .nav__link:link { | ||
| display: flex; | ||
| align-items: center; | ||
| position: relative; | ||
| height: $header-height; | ||
|
|
||
| margin: 0 10px; | ||
|
|
||
| font-size: 12px; | ||
| color: $main-color; | ||
| text-decoration: none; |
There was a problem hiding this comment.
The .nav__link base rule (lines 28-39) doesn't include text-decoration: none. Links will have underlines by default. This should be included to ensure consistent link styling.
|
|
||
| .nav__link:visited { | ||
| color: black; |
There was a problem hiding this comment.
The :visited pseudo-class sets color: black (line 50), but the task requirement states nav links color should be #060b35 (defined as $main-color). This overrides the intended color on visited links.
|
|
||
| .nav__link:hover { | ||
| color: $blue; |
There was a problem hiding this comment.
The .nav__link hover state (lines 53-55) lacks a transition property. The checklist requires all hover changes to be smooth during 300ms. Add transition: color 300ms ease;
| .header { | ||
| display: flex; | ||
| align-items: center; | ||
| justify-content: space-between; | ||
|
|
||
| padding: 0 50px; | ||
| } | ||
|
|
||
| .logo { | ||
| display: flex; | ||
| align-items: center; | ||
| background-color: white; | ||
| position: relative; | ||
| } | ||
|
|
||
| .nav { | ||
| display: flex; | ||
| } | ||
|
|
||
| .nav__box { | ||
| display: flex; |
There was a problem hiding this comment.
The .button component (lines 3-23) lacks a transition property. The hover state changes background-color and color but these changes won't be smooth. Add transition: background-color 300ms ease, color 300ms ease; to the base .button rule.
| LAPTOPS & COMPUTERS | ||
| </a> | ||
|
|
||
| <a | ||
| href="#GADGETS" |
There was a problem hiding this comment.
BEM violation: .name-section__header is a BEM element from a different block being directly referenced here. According to task requirements, this should use the proper BEM selector like .product-card:hover .product-card__title or ensure the element name follows the card's BEM convention.
| flex-direction: column; | ||
| box-sizing: border-box; |
There was a problem hiding this comment.
The auto-fill grid doesn't produce the exact responsive breakpoints. Task requires 1 column default, 2 starting at 488px, 3 at 768px, 4 at 1024px. Consider using media queries or explicit column counts.
| justify-content: space-between; | ||
| align-items: center; |
There was a problem hiding this comment.
Grid breakpoint issue: repeat(auto-fill, minmax($card-width, 1fr)) doesn't guarantee exact column counts at specific breakpoints. The task requires 1 column for smaller screens, 2 at 488px, 3 at 768px, 4 at 1024px. Consider using media queries with explicit column counts.
| flex-direction: column; | ||
| align-items: center; |
There was a problem hiding this comment.
Grid doesn't use media queries for exact breakpoints. The auto-fill approach doesn't guarantee exactly 1→2→3→4 columns at 488px→768px→1024px. Consider using media queries with explicit repeat(N, 1fr) instead.
|
|
||
| .name-section__header { | ||
| color: #34568b; |
There was a problem hiding this comment.
The task requirement specifies .card:hover .card__title selector for the title color change. Using .name-section__header references a different BEM block's element. The title element should be renamed to product-card__title or card__title and the CSS selector updated accordingly.
|
|
||
| .rate-section { | ||
| display: flex; | ||
| justify-content: space-between; | ||
| align-items: center; |
There was a problem hiding this comment.
CSS custom properties are used here instead of SCSS variables. While functional, the task requirements specify SCSS variables for repeated sizes. Consider moving these values to variables.scss as SCSS variables: $star-size: 16px; $star-gap: 4px;
mateacademy-ai-mentor
left a comment
There was a problem hiding this comment.
Review Summary
Your implementation still has 4 critical issues that must be fixed before approval:
-
BEM hover selector violation in
src/styles/product-card.scssline 55: The selector targets.name-section__headerwhich doesn't exist in HTML. The title element uses classproduct-card__title, so the hover color change to #34568b will never apply. Change to.product-card:hover .product-card__title. -
Button hover layout shift in
src/styles/button.scssline 19: Usingborder: solid $blue 1pxchanges element dimensions. Replace withoutline: 1px solid $blueto avoid affecting the box model. -
Incorrect
:visitedcolor insrc/styles/header.scssline 48: Uses$blackinstead of$main-colorfor the visited pseudo-class. -
Redundant attribute in
src/index.htmlline 40: The first nav link still hasdata-qa="is-active"which should be removed. Keep onlyclass="nav__link is-active"as specified in requirements.
Additionally, the visual regression tests are failing with 14-22% difference, indicating the visual output doesn't match expected rendering. Fix these issues and the visual tests should pass once the CSS correctly implements the required styling.
✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨
Important
Fix the issues, commit the changes, and then re-request my review using the Re-request review button2 in the Reviewers tab.
Tip
If you have any comments about this review, please leave a message in the Add a comment section below and mention me with the @mateacademy-ai-mentor tag3.
I will read your message during my next review of your pull request. Please do not reply directly to my comments, as that feature is not supported yet.
Caution
Do not close the pull request until the review is complete. Closing it early can lead to unexpected behavior and disrupt the review process.
Footnotes
|
|
||
| &:hover { | ||
| background-color: white; |
There was a problem hiding this comment.
Using border on hover changes the element's box model dimensions, causing layout shift. Change to outline instead to avoid affecting layout.
| color: $blue; | ||
| } | ||
|
|
||
| .nav__link.is-active::after { | ||
| content: ''; |
There was a problem hiding this comment.
The hover selector targets .name-section__header but this class doesn't exist in the HTML. The title element has class product-card__title. Change the selector to .product-card__title to make the hover color change work correctly.
| .nav { | ||
| display: flex; | ||
| } | ||
|
|
There was a problem hiding this comment.
Button hover uses border: solid $blue 1px which adds 2px to dimensions and causes layout shift. Use outline: 1px solid $blue instead to avoid changing the element's box size.
| color: $main-color; | ||
| text-decoration: none; | ||
| transition: color 300ms ease; |
There was a problem hiding this comment.
Redundant data-qa="is-active" attribute on the first nav link. The task requires only the is-active class for this link. Remove the data-qa attribute.
| > | ||
| SMARTPHONES | ||
| </a> | ||
|
|
||
| <a | ||
| href="#COMPUTERS" | ||
| class="nav__link" | ||
| data-qa="nav-hover" | ||
| > | ||
| LAPTOPS & COMPUTERS |
There was a problem hiding this comment.
BEM violation: The hover selector references .name-section__header which is a different BEM block. According to requirements, it should be .product-card:hover .product-card__title pattern where the title element belongs to the card block. The HTML has the element as product-card__title, so the selector should match.
| class="nav__link is-active" | ||
| data-qa="is-active" |
There was a problem hiding this comment.
Redundant data-qa attribute: The task requires removing old data-qa attributes. This data-qa="is-active" should be removed from the first nav link. Keep only the is-active class as specified in requirements.
|
|
||
| .name-section__header { | ||
| color: #34568b; |
There was a problem hiding this comment.
BEM violation: The hover selector references .name-section__header but this class doesn't exist in the HTML. The title element uses class product-card__title. Change .name-section__header to &__title to correctly target the nested title element within the product-card block.
|
|
||
| .price-section { | ||
| display: flex; | ||
| justify-content: space-between; | ||
| align-items: center; | ||
| box-sizing: border-box; |
There was a problem hiding this comment.
The name-section__header class defined in name-section.scss doesn't exist in the HTML. The title element uses class product-card__title. This makes the name-section block unused and creates a BEM inconsistency with the product-card block structure.
mateacademy-ai-mentor
left a comment
There was a problem hiding this comment.
Review Summary
Your implementation is approved as an educational override. Great job fixing the BEM hover selector issue and implementing the responsive grid layout with correct breakpoints (1 col → 2 col at 488px → 3 col at 768px → 4 col at 1024px). The card hover effects with scale and z-index work well, and your SCSS structure with variables is clean. However, two critical issues remain that should be addressed for production quality: 1. Button hover in src/styles/button.scss still uses border: solid $blue 1px which causes layout shift by changing element dimensions. Replace with outline: 1px solid $blue to maintain the visual effect without affecting the box model. 2. Redundant attribute in src/index.html - The first nav link still has data-qa="is-active" which should be removed, keeping only class="nav__link is-active". The 1.37% visual test failures at 1024px and 1200px are minor rendering differences, likely environment-related. The core functionality and layout are solid. Keep up the good work on the responsive implementation and BEM naming!
✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨
Important
Fix the issues, commit the changes, and then re-request my review using the Re-request review button2 in the Reviewers tab.
Tip
If you have any comments about this review, please leave a message in the Add a comment section below and mention me with the @mateacademy-ai-mentor tag3.
I will read your message during my next review of your pull request. Please do not reply directly to my comments, as that feature is not supported yet.
Caution
Do not close the pull request until the review is complete. Closing it early can lead to unexpected behavior and disrupt the review process.
Footnotes
|
|
||
| &:hover { | ||
| background-color: white; | ||
| border: solid $blue 1px; |
There was a problem hiding this comment.
Button hover uses border: solid $blue 1px which causes layout shift by changing element dimensions. Replace with outline: 1px solid $blue to avoid affecting the box model while achieving the same visual effect.
| class="nav__link is-active" | ||
| data-qa="is-active" |
There was a problem hiding this comment.
Remove this redundant attribute. The first nav link should only have class="nav__link is-active" without the data-qa="is-active" attribute.
| .nav { | ||
| display: flex; | ||
| } | ||
|
|
There was a problem hiding this comment.
Button hover uses border: solid $blue 1px which causes layout shift. Per requirements, use outline: 1px solid $blue instead to avoid affecting the box model dimensions.
| color: $main-color; | ||
| text-decoration: none; | ||
| transition: color 300ms ease; |
There was a problem hiding this comment.
Redundant attribute data-qa="is-active" should be removed. Keep only class="nav__link is-active" as per the previous review correction.
| &__title { | ||
| font-weight: 500; | ||
| font-size: 12px; |
There was a problem hiding this comment.
This violates checklist item and previous review requirement: 'First nav link should only have class="nav__link is-active", remove data-qa="is-active" attribute'. Remove the data-qa="is-active" attribute entirely.
| } | ||
|
|
||
| &__product-photo { | ||
| display: flex; |
There was a problem hiding this comment.
Button hover uses border: solid $blue 1px which causes layout shift by changing element dimensions. Replace with outline: 1px solid $blue to avoid affecting the box model while maintaining the same visual border effect.
| grid-template-columns: repeat(2, $card-width); | ||
| } | ||
| } | ||
|
|
There was a problem hiding this comment.
Button hover uses border: solid $blue 1px which causes layout shift by affecting element dimensions. Per requirements, replace with outline: 1px solid $blue to avoid affecting the box model.
| width: var(--star-squer-side); | ||
| height: var(--star-squer-side); | ||
| margin-left: var(--gap-betwen-stars); | ||
| background-image: url('../images/star.svg'); |
There was a problem hiding this comment.
Button hover uses border: solid $blue 1px which causes layout shift. Per checklist item #5 and previous review requirement, use outline: 1px solid $blue instead to avoid affecting the box model.