frontend-mentor-projects

Frontend Mentor Projects

A comprehensive collection of Frontend Mentor challenges focusing on mastering fundamental web development skills through practical, real-world projects.

🎯 Repository Purpose

This repository serves as a dedicated workspace for Frontend Mentor challenges, emphasizing:

πŸ—οΈ Project Structure

Each project follows a consistent structure for maintainability and clarity:

project-name/
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ fonts/          # Local font files (GDPR-compliant)
β”‚   └── images/         # Project images and assets
β”œβ”€β”€ css/
β”‚   β”œβ”€β”€ global/         # Modular CSS architecture
β”‚   β”‚   β”œβ”€β”€ fonts.css
β”‚   β”‚   β”œβ”€β”€ reset.css
β”‚   β”‚   └── variables.css
β”‚   └── style.css       # Main stylesheet
β”œβ”€β”€ index.html          # Project entry point
└── README.md           # Project-specific documentation

πŸ“‹ Current Projects

Completed Challenges

Project Difficulty Technologies Live Demo Status
07 - Testimonials Grid Newbie HTML, CSS Grid, Flexbox Demo βœ… Complete

Planned Projects

πŸ› οΈ Development Approach

Technology Stack

Development Tooling & Code Quality

Linting & Formatting

Why @antfu/eslint-config over ESLint + Prettier?

Traditional ESLint + Prettier setups suffer from conflicting opinions between the two tools, requiring careful configuration management to avoid conflicts. The antfu configuration solves this by integrating ESLint Stylistic, providing:

View ESLint Configuration ```javascript // eslint.config.mjs import antfu from "@antfu/eslint-config"; export default antfu({ type: "app", vue: true, typescript: true, formatters: true, stylistic: { indent: 2, semi: true, quotes: "double", objectCurlySpacing: "always", arrowParens: "always", linebreaks: "unix", }, ignores: [".pnpm-store/**", "node_modules/**", "**/migrations/*"], }, { rules: { "vue/max-attributes-per-line": ["error", { singleline: { max: 2 }, multiline: { max: 1 }, }], "ts/consistent-type-definitions": ["error", "type"], "no-console": ["warn"], "perfectionist/sort-imports": ["error", { tsconfigRootDir: ".", }], "unicorn/filename-case": ["error", { cases: { camelCase: true, kebabCase: true }, ignore: ["README.md"], }], }, }); ``` **VS Code Workspace Settings:** ```json { // Disable Prettier, use ESLint for formatting "prettier.enable": false, "editor.formatOnSave": false, // Auto-fix on save with ESLint "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, // Silent stylistic rules in IDE (auto-fix without noise) "eslint.rules.customizations": [ { "rule": "style/*", "severity": "off", "fixable": true }, { "rule": "format/*", "severity": "off", "fixable": true } ], // Enable ESLint for all supported languages "eslint.validate": [ "javascript", "typescript", "vue", "html", "css", "scss", "json", "markdown" ] } ```

Git Workflow & Automation

Project Maintenance Philosophy

Deployment Strategy

πŸ“š Learning Documentation

Current Focus Areas

Future Documentation Plans

External Profiles

🎨 Design Philosophy

This repository represents a deliberate return to fundamentals after extensive framework experience. The goal is to achieve native-level fluency with core web technologies, treating HTML and CSS with the same intuitive comfort as spoken language.

Each project emphasizes:

πŸš€ Getting Started

Prerequisites

Local Development

  1. Clone the repository:

    git clone https://github.com/hbabb/frontend-mentor-projects.git
    cd frontend-mentor-projects
    
  2. Install development dependencies:

    pnpm install
    
  3. VS Code Setup (recommended):
    • Open the project in VS Code
    • Install recommended extensions when prompted (see .vscode/extensions.json)
    • Extensions include ESLint, Live Server, HTML/CSS tools, and productivity enhancements
  4. Run code quality checks:

    pnpm lint        # Check for linting issues
    pnpm lint:fix    # Auto-fix issues where possible
    
  5. Navigate to any project directory and open index.html in your browser or use Live Server

  6. Development workflow:
    • Make changes to project files
    • Stage changes with git add
    • Pre-commit hooks automatically run linting on staged files
    • Commit and push - GitHub Actions handles deployment

Contributing to Learning

While this is a personal learning repository, feedback and suggestions are welcome through:

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


About the Developer: Heath Babb HB Consultants, LLC (DBA TechSolvd) Building mastery one challenge at a time