A modern, responsive React website for a hair and beauty salon featuring component-scoped CSS architecture with BEM methodology, mobile-first design, and professional UI/UX.
- Responsive design (mobile-first)
- Component-scoped CSS architecture with BEM naming
- Professional CSS system with variables and utilities
- Accessible navigation with mobile menu
- Smooth scrolling and interactive elements
- Enterprise-level code organization
- Future-ready for booking system integration
- React 18.2.0 - Modern component-based UI library
- HTML5 - Semantic markup within JSX
- CSS3 - Mobile-first responsive design with CSS variables
- JavaScript ES6+ - Modern JavaScript with React hooks
- Node.js (version 18 or higher recommended)
- npm (comes with Node.js)
- Clone or download this project
- Navigate to the project directory:
cd salon-web-react
- Install dependencies:
npm install
npm start
- Opens the app in your default browser at
http://localhost:3000
- Hot reload enabled - changes automatically refresh the browser
- Development server runs in the background
- In Terminal: Press
Ctrl + C
(Windows/Linux) orCmd + C
(Mac) - Close Terminal: Simply close the terminal window
npm run build # Create production build
npm test # Run tests
npm run eject # Eject from Create React App (advanced)
- Start the development server with
npm start
- Edit React components in
src/components/
- Modify component styles in respective
.css
files - Update global styles in
src/styles/
- Changes automatically reload in the browser
Follow the component-scoped architecture:
// 1. Create component folder: src/components/NewComponent/
// 2. Create component file: src/components/NewComponent/NewComponent.js
import './NewComponent.css';
// 3. Create styles file: src/components/NewComponent/NewComponent.css
// Use BEM naming: .new-component, .new-component__element
- Use BEM naming for component styles
- Leverage CSS variables from
variables.css
- Follow mobile-first responsive design
- Keep styles component-scoped when possible
- Staff member profiles
- Service catalog with detailed pricing
- Interactive image gallery
- Customer testimonials
- Contact form with validation
- Social media integration
- SEO optimization - Meta tags, Open Graph tags, structured data
- Form validation - Client-side contact form validation with better UX
- Performance optimization - Image optimization, lazy loading, code splitting
- Animation enhancements - Scroll animations, hover effects, transitions
- Accessibility improvements - ARIA labels, keyboard navigation, screen reader support
- Progressive Web App (PWA) - Service worker, offline capability, installable
- Implement CSS Modules or Styled Components
- Add TypeScript for better development experience
- Unit testing with Jest and React Testing Library
This project uses a component-scoped CSS architecture
variables.css
- CSS custom properties for consistent design tokensutilities.css
- Reusable utility classes for common patternsresponsive.css
- Global breakpoints and mobile-first designstyles.css
- Shared component patterns and reusable stylesComponent.css
- Component-specific styles using BEM naming
Components use Block-Element-Modifier methodology for clear, maintainable CSS:
.navigation { } /* Block */
.navigation__content { } /* Element */
.navigation__menu--mobile { } /* Modifier */
- Scoped styles - No CSS conflicts between components
- Easy maintenance - Styles live next to their components
- Team collaboration - Clear ownership and naming conventions
- Scalable architecture - Easy to add new components
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- This project is licensed under the GNU GPL-3.0 License.