This repository contains a Multi-Step Form challenge, created as part of the Frontend Coding Challenges. The form guides users through different steps to collect their personal information, skills, and challenge preferences. After completing the form, users are shown a confirmation message.
The Multi-Step Form is a user-friendly, interactive form that is divided into four steps:
- Personal Information: Collects the user's full name, email, phone number, and portfolio/GitHub link.
- Skills: Allows the user to select their skill level (Beginner, Intermediate, Advanced, Expert).
- Challenge Preferences: Enables the user to select which frontend challenges they are interested in (HTML/CSS/JS, ReactJS, AngularJS, VueJS).
- Review and Confirmation: Displays a summary of the user's information and allows the user to confirm the data.
Once the form is submitted, the user sees a confirmation screen congratulating them for successfully completing the form.
Screenshot
Live Preview
You can also view it Live - Live Demo
- Progress Bar: Shows the user's current step and visual progress.
- Form Validation: Ensures that all required fields are filled out before proceeding.
- Responsive Design: The form adapts to different screen sizes for a seamless user experience.
- Dynamic Summary: In the last step, a dynamic summary of the user’s responses is displayed.
- Confirmation Screen: After submitting the form, a confirmation message appears.
To start, clone the repository to your local machine:
git clone https://github.com/Yashi-Singh-9/Multi-Step-Form.gitIf you are using SCSS and need to compile it into CSS, make sure Node.js and npm are installed on your machine. Follow the steps below to install the necessary dependencies.
Check if Node.js and npm are installed by running the following commands:
node -v
npm -vIf these commands return version numbers, you’re good to go. Otherwise, you can download and install Node.js.
If you want to compile the SCSS files into CSS, install Node-Sass or Dart-Sass using npm.
To install Node-Sass, run the following command:
npm install node-sass --save-devAlternatively, you can use Dart-Sass:
npm install sass --save-devOnce you've installed the necessary tools, you can compile the SCSS to CSS:
npx node-sass style.scss style.cssIf you are using Dart-Sass, the command will be:
npx sass style.scss style.cssTo automatically compile SCSS into CSS every time you make changes, you can use the watch feature:
npx node-sass --watch style.scss style.cssIf you’re using Dart-Sass, the equivalent command is:
npx sass --watch style.scss style.cssIf you're using Visual Studio Code you can use Live Sass Compiler it can also automatically compile scss into scss.
Once the SCSS is compiled into CSS, open the index.html file in any modern browser to interact with the form.
Once you’ve set up the project, open the index.html file in your browser. You’ll be able to interact with the multi-step form. Here's a breakdown of the steps:
- Step 1: Personal Information — Users enter their full name, email, phone number, and portfolio/GitHub link.
- Step 2: Skills — Users select their skill level (Beginner, Intermediate, Advanced, Expert).
- Step 3: Challenge Preferences — Users choose which frontend challenges they want to participate in (e.g., HTML/CSS/JS, ReactJS, Vue.js, etc.).
- Step 4: Review — Users are shown a summary of their inputs and can submit the form.
- Confirmation: After submitting, a confirmation message appears to congratulate the user for completing the form.
multi-step-form/
├── index.html # HTML structure of the form
├── style.scss # SCSS for styling the form
├── style.css # Compiled CSS file (generated from style.scss)
└── script.js # JavaScript logic for form navigation and validation
The style.scss file contains all the styling for the multi-step form, including:
- Progress bar and active step styles
- Form step styles for each section (Personal Information, Skills, Challenge Preferences, Review & Confirmation)
- Responsiveness for different screen sizes
- Animations and transitions to make the form more interactive
- HTML5: Used for structuring the form and content.
- SCSS: For writing modular, maintainable styles and compiling them into CSS.
- JavaScript: Handles form logic, including step navigation, validation, and dynamic content.
- Font Awesome: For icons used throughout the form.
Feel free to fork the repository and make improvements or suggest new features. To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b new-feature). - Make your changes.
- Commit your changes (
git commit -am 'Add new feature'). - Push your changes (
git push origin new-feature). - Create a pull request.
Please ensure your code adheres to the project's coding standards and includes tests where applicable.
This project is licensed under the MIT License - see the LICENSE file for details.
- Font Awesome: For the icons used in the form.
- Frontend Challenges: For providing the challenge idea.
