Skip to content
Open
Show file tree
Hide file tree
Changes from 99 commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
8d04392
Add `_variables.scss` to centralize global design tokens like colors,…
mpodaniev Mar 26, 2026
91e6109
Add `_typography.scss` to define reusable typography styles
mpodaniev Mar 26, 2026
5373c13
Set up global SCSS with Vite configuration and import in `index.tsx`
mpodaniev Mar 26, 2026
4da0bc7
Add `_mixins.scss` to define reusable SCSS mixins for layouts and res…
mpodaniev Mar 26, 2026
e6cf12c
Add `_reset.scss` for modern CSS reset and consistency across browsers
mpodaniev Mar 26, 2026
15213d6
Wrap `App` in `HashRouter` and refactor to use `AppRouter` for routing
mpodaniev Mar 26, 2026
bd1ef1f
Add `Header`, `Footer`, and `MainLayout` components to structure appl…
mpodaniev Mar 26, 2026
931d3ed
Add Nice Gadgets logo assets for desktop and mobile
mpodaniev Apr 1, 2026
6b9d7d3
Add `Header` component with responsive navigation and styling
mpodaniev Apr 1, 2026
67c7a4f
Restructure project layout by moving `Header`, `Footer`, and `MainLay…
mpodaniev Apr 1, 2026
df6ac37
Define header and logo dimensions for mobile and desktop in `_variabl…
mpodaniev Apr 1, 2026
58515ab
Configure path alias `@` for streamlined imports in Vite and TypeScri…
mpodaniev Apr 1, 2026
4879e80
Add `AppRouter` component to define application routing structure
mpodaniev Apr 1, 2026
30fd793
Add SVG icon assets: close, menu, favorites, and cart
mpodaniev Apr 1, 2026
0859ad5
Define global font family for `body` in `_typography.scss`
mpodaniev Apr 1, 2026
60f8c64
Prevent body scrolling when menu is open
mpodaniev Apr 1, 2026
a6bf7f0
Restructure project layout by moving `Header`, `Footer`, and `MainLay…
mpodaniev Apr 1, 2026
dfe7b2c
Apply layout styling to `MainLayout` with SCSS module
mpodaniev Apr 1, 2026
08ba351
Add initial page components and export modules for routing
mpodaniev Apr 1, 2026
3af5922
Add route components to `AppRouter` for main application pages
mpodaniev Apr 1, 2026
4f58f20
Add shared UI components: `Loader`, `CartItem`, `Pagination`, `Breadc…
mpodaniev Apr 1, 2026
0e9b5b4
Add `ProductsSlider`, `ShopByCategory`, and `PicturesSlider` componen…
mpodaniev Apr 1, 2026
f85170d
Update `Header` links: correct paths for "Favorites" and "Cart"
mpodaniev Apr 1, 2026
2ce1c15
update @mate-academy package
mpodaniev Apr 2, 2026
585c3c9
Enhance `Header` links: add active state styling and replace `Link` w…
mpodaniev Apr 2, 2026
a7a2f19
Add `swiper` library to dependencies for carousel functionality
mpodaniev Apr 2, 2026
718f646
Refactor `HomePage`: wrap content in styled container and add `HomePa…
mpodaniev Apr 2, 2026
d6d3cdc
Update `.stylelintrc.js`: allow `global` and `local` pseudo-classes
mpodaniev Apr 2, 2026
1d81ef3
Replace `PicturesSlider` with `WelcomeSlider` on `HomePage` for impro…
mpodaniev Apr 2, 2026
5b08497
Replace `PicturesSlider` with `WelcomeSlider` on `HomePage` and add v…
mpodaniev Apr 2, 2026
14ce62e
Add `fonts` partial to define Mont font-face styles and update `index…
mpodaniev Apr 2, 2026
5d8310a
Set `$color-primary` as default text color in `body` style
mpodaniev Apr 2, 2026
ac6d0ce
Add `pageTitle` style to `HomePage` and update markup with a welcomin…
mpodaniev Apr 2, 2026
dbd4cdb
Implement WelcomeSlider with Swiper, navigation, autoplay and respons…
mpodaniev Apr 2, 2026
44f8f01
Implement ProductCard component with product data and actions
mpodaniev Apr 3, 2026
4d1de17
Implement ProductsSlider with Swiper navigation and type-based filtering
mpodaniev Apr 3, 2026
ed49d2c
Add ProductsSlider sections to HomePage
mpodaniev Apr 3, 2026
4cc285b
Add z-index to sticky Header to prevent overlap
mpodaniev Apr 3, 2026
11c3252
fix: replace margin-collapse hack with display flow-root in WelcomeSl…
mpodaniev Apr 3, 2026
128cc9a
feat: add Product type definition
mpodaniev Apr 3, 2026
1f82fb4
chore: update .gitignore to include /.claude/ directory
mpodaniev Apr 3, 2026
0a8aec1
chore: add stylelint-order dependency to package.json
mpodaniev Apr 3, 2026
bd40ca1
chore: update stylelint config with property group ordering rules
mpodaniev Apr 3, 2026
05bec88
style: reorder SCSS properties for consistency across stylesheets
mpodaniev Apr 3, 2026
8b42e86
feat: implement ShopByCategory section with responsive styles
mpodaniev Apr 3, 2026
291937c
feat: dynamically fetch product counts in ShopByCategory section
mpodaniev Apr 3, 2026
25855bd
feat: add Contacts and Rights pages with routes in AppRouter
mpodaniev Apr 3, 2026
c745abe
feat: replace inline SVGs with reusable chevron icon component and up…
mpodaniev Apr 3, 2026
94716e8
feat: create responsive Footer with navigation and back-to-top button
mpodaniev Apr 3, 2026
b7488f4
refactor: restructure Footer layout and adjust styles for better resp…
mpodaniev Apr 4, 2026
72cf01c
style: simplify ProductCard styles by removing redundant declarations
mpodaniev Apr 6, 2026
0ba72ca
feat: add CatalogPage component with dynamic product fetching and styles
mpodaniev Apr 6, 2026
15b517a
feat: update ProductsList to render ProductCards
mpodaniev Apr 6, 2026
7019318
refactor: use CatalogPage in Phones, Tablets, and Accessories pages
mpodaniev Apr 6, 2026
de91002
refactor: update slider and card styles for improved hover effects
mpodaniev Apr 6, 2026
989ab45
feat: add Breadcrumbs component and integrate into CatalogPage
mpodaniev Apr 7, 2026
8fa33be
feat: add Loader component and integrate into CatalogPage
mpodaniev Apr 7, 2026
9b9ae21
style: adjust Breadcrumbs styles for consistent line-height and align…
mpodaniev Apr 7, 2026
346dc30
feat: add error handling and retry logic to CatalogPage
mpodaniev Apr 7, 2026
55d01c3
feat: add category-specific empty state messages to CatalogPage
mpodaniev Apr 7, 2026
2e78258
feat: add reusable Dropdown component with basic styles
mpodaniev Apr 8, 2026
aa78dfa
feat: add sorting and pagination controls to CatalogPage
mpodaniev Apr 8, 2026
2ce1398
feat: add dynamic pagination component and integrate into CatalogPage
mpodaniev Apr 8, 2026
62315ed
style: add top margin to Footer for spacing consistency
mpodaniev Apr 8, 2026
c9961b5
feat: add product link to ProductCard image and title
mpodaniev Apr 9, 2026
2d5321a
feat: add ProductDetailsPage with dynamic data
mpodaniev Apr 9, 2026
ef95aad
feat: add ImageSlider component to ProductDetailsPage
mpodaniev Apr 10, 2026
97ac84d
feat: enhance ProductDetailsPage with detailed view and back button
mpodaniev Apr 10, 2026
5efda99
style: adjust spacing and positioning in Breadcrumbs and ImageSlider
mpodaniev Apr 13, 2026
8f235b9
style: add hover effect to ImageSlider thumbnail
mpodaniev Apr 13, 2026
efea312
feat: add color and capacity selection to ProductDetailsPage
mpodaniev Apr 13, 2026
8bfa0bc
feat: add About and Tech Specs sections to ProductDetailsPage
mpodaniev Apr 13, 2026
3285999
feat: add "you may also like" slider type and responsive widths
mpodaniev Apr 14, 2026
a2fff72
feat: add "you may also like" slider to ProductDetailsPage
mpodaniev Apr 14, 2026
8f63ea4
feat: add FavoritesContext for managing favorite products
mpodaniev Apr 14, 2026
fbd5db4
feat: wrap App in FavoritesProvider for context support
mpodaniev Apr 14, 2026
f40853f
style: disable import/extensions in ESLint config
mpodaniev Apr 14, 2026
429ac1a
feat: add favorite count badge to Header
mpodaniev Apr 14, 2026
76ae4c2
feat: add toggle favorite functionality to ProductCard
mpodaniev Apr 14, 2026
e10b827
feat: integrate FavoritesContext into ProductDetailsPage
mpodaniev Apr 14, 2026
020dff0
style: reorder mixin for better readability in ProductDetailsPage styles
mpodaniev Apr 14, 2026
215f55a
feat: add FavoritesPage with context and styling integration
mpodaniev Apr 14, 2026
abc3ad0
feat: add utility for loading from localStorage
mpodaniev Apr 15, 2026
f58a152
refactor: use shared storage utility in FavoritesContext
mpodaniev Apr 15, 2026
e205513
feat: add CartContext with provider and integration into App
mpodaniev Apr 15, 2026
f69210e
feat: integrate cart functionality into ProductCard
mpodaniev Apr 15, 2026
aa4f459
feat: add cart item count badge to Header
mpodaniev Apr 15, 2026
d2b8bda
feat: add dynamic CartItem component with styling and functionality
mpodaniev Apr 16, 2026
a080793
feat: add CartPage layout with styles and dynamic cart data
mpodaniev Apr 16, 2026
0e7959d
feat: style NotFoundPage with central alignment and layout adjustments
mpodaniev Apr 16, 2026
3221ba1
feat: close menu on route change in Header
mpodaniev Apr 16, 2026
3031559
fix: correct sorting logic in ProductsSlider
mpodaniev Apr 16, 2026
6a1739c
feat: add Home link to NotFoundPage with styles
mpodaniev Apr 16, 2026
0c00c11
feat: add clearCart logic to Checkout button in CartPage
mpodaniev Apr 16, 2026
b171398
feat: add hover scale effect to ProductCard image
mpodaniev Apr 16, 2026
e3c0697
style: nest NotFoundPage h1 inside container for better scoping
mpodaniev Apr 16, 2026
9939ddb
feat: display empty state message on FavoritesPage
mpodaniev Apr 16, 2026
24772f0
feat: enhance product details with color and capacity selectors
mpodaniev Apr 17, 2026
8208c04
fix: update asset and API paths to use relative URLs
mpodaniev Apr 17, 2026
f202389
fix: update ImageSlider image paths to use relative URLs
mpodaniev Apr 17, 2026
51dd175
feat: add content and styling to RightsPage and ContactsPage
mpodaniev Apr 17, 2026
6a3b483
feat: scroll to top on product change in ProductDetailsPage
mpodaniev Apr 17, 2026
4710f73
fix: remove smooth scroll behavior in window.scrollTo
mpodaniev Apr 17, 2026
c268300
style: fix content-width mixin placement in RightsPage and ContactsPage
mpodaniev Apr 17, 2026
c103c51
feat: navigate to selected product on color/capacity change
mpodaniev Apr 17, 2026
b6f28bd
feat: add hideOldPrice prop to ProductCard for conditional price display
mpodaniev Apr 17, 2026
6e636d0
style: remove unnecessary center alignment from Footer styling
mpodaniev Apr 17, 2026
241d9cf
fix: calculate price based on quantity in CartItem component
mpodaniev Apr 17, 2026
d33f69b
feat: add toggleCart function for cart item management
mpodaniev Apr 18, 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
1 change: 1 addition & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ module.exports = {
'react/prop-types': 0,
'react/require-default-props': 0,
'import/prefer-default-export': 0,
'import/extensions': 'off',
'standard/no-callback-literal': 0,
'react/jsx-filename-extension': [1, { extensions: ['.tsx'] }],
'react/destructuring-assignment': 0,
Expand Down
54 changes: 53 additions & 1 deletion .stylelintrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,56 @@
module.exports = {
extends: "@mate-academy/stylelint-config",
rules: {}
plugins: ["stylelint-order"],
rules: {
'selector-pseudo-class-no-unknown': [true, { ignorePseudoClasses: ['global', 'local'] }],
'order/properties-order': [
{
groupName: 'positioning',
properties: ['position', 'top', 'right', 'bottom', 'left', 'z-index'],
},
{
groupName: 'box-model',
properties: [
'display',
'flex', 'flex-direction', 'flex-wrap', 'flex-flow',
'flex-grow', 'flex-shrink', 'flex-basis',
'justify-content', 'justify-items', 'justify-self',
'align-content', 'align-items', 'align-self',
'grid', 'grid-template', 'grid-template-columns', 'grid-template-rows',
'grid-template-areas', 'grid-area', 'grid-column', 'grid-row',
'gap', 'column-gap', 'row-gap',
'width', 'min-width', 'max-width',
'height', 'min-height', 'max-height',
'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left',
'padding-inline', 'padding-block',
'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left',
'margin-inline', 'margin-block',
'overflow', 'overflow-x', 'overflow-y',
],
},
{
groupName: 'visual',
properties: [
'background', 'background-color', 'background-image',
'background-position', 'background-size', 'background-repeat',
'border', 'border-top', 'border-right', 'border-bottom', 'border-left',
'border-width', 'border-style', 'border-color', 'border-radius',
'box-shadow', 'outline', 'opacity', 'visibility', 'cursor',
],
},
{
groupName: 'typography',
properties: [
'font', 'font-family', 'font-size', 'font-weight', 'font-style',
'line-height', 'letter-spacing', 'text-align', 'text-decoration',
'text-transform', 'text-overflow', 'white-space', 'word-break',
'color',
],
},
{
groupName: 'transitions',
properties: ['transition', 'animation', 'transform'],
},
],
},
};
Loading
Loading