├── .github ├── Contributing.md ├── conduct.md └── workflows │ ├── pr_greeting.yml │ └── static.yml ├── README.md ├── components.css ├── components.html ├── components.json ├── components ├── Login_page │ ├── image │ │ └── view.jpg │ ├── index.html │ └── style2.css ├── Signup_SignIn_page │ ├── index.html │ ├── script.js │ └── style.css ├── contact_form │ └── index.html └── react │ ├── .gitignore │ ├── README.md │ ├── build │ ├── asset-manifest.json │ ├── index.html │ ├── manifest.json │ └── static │ │ ├── css │ │ ├── main.693f2cad.css │ │ └── main.693f2cad.css.map │ │ └── js │ │ ├── main.7087bd13.js │ │ ├── main.7087bd13.js.LICENSE.txt │ │ └── main.7087bd13.js.map │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── index.html │ └── manifest.json │ └── src │ ├── App.css │ ├── App.js │ ├── index.css │ ├── index.js │ └── pages │ ├── error │ ├── Error.jsx │ └── error.css │ ├── layout │ ├── Layout.jsx │ └── layout.css │ ├── pagination │ ├── Pagination.jsx │ └── pagination.css │ └── slider │ ├── Slider.jsx │ └── slider.css ├── images ├── Signup_SignIn_page.png ├── contact.png ├── pagination.png ├── pexels-bich-tran-2481177.jpg ├── slider.png ├── view.jpg └── wb.png ├── index.html ├── script.js └── style.css /.github/Contributing.md: -------------------------------------------------------------------------------- 1 | # **Contributing Guidelines** 📄 2 | 3 | This documentation contains a set of guidelines to help you during the contribution process. 4 | We are happy to welcome all the contributions from anyone willing to improve/add new scripts to this project. 5 | Thank you for helping out and remember, **no contribution is too small.** 6 |
7 | Please note we have a [code of conduct](CODE_OF_CONDUCT.md) please follow it in all your interactions with the project. 8 | 9 | 10 | 11 |
12 | 13 | ## **Need some help regarding the basics?🤔** 14 | 15 | 16 | You can refer to the following articles on basics of Git and Github and also contact the Project Mentors, 17 | in case you are stuck: 18 | 19 | - [Forking a Repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) 20 | - [Cloning a Repo](https://help.github.com/en/desktop/contributing-to-projects/creating-an-issue-or-pull-request) 21 | - [How to create a Pull Request](https://opensource.com/article/19/7/create-pull-request-github) 22 | - [Getting started with Git and GitHub](https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6) 23 | - [Learn GitHub from Scratch](https://lab.github.com/githubtraining/introduction-to-github) 24 | 25 |
26 | 27 | 28 | ## **Pull Request Process 🚀** 29 | 30 | 1. Make sure to first review your code before creating a PR 😀 31 | 2. Make sure you have added the proper description for the functionality of the code 32 | 3. Make sure to add a README file in your repository . 33 | 4. Make sure to add an image in the ```images``` for website preview 34 | 5. Submit your PR by giving the necesarry information and hang tight while we review it 🚀 35 | 36 |
37 | 38 | # **Happy Developing 💗** 39 | -------------------------------------------------------------------------------- /.github/conduct.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | . 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /.github/workflows/pr_greeting.yml: -------------------------------------------------------------------------------- 1 | name: Comment on PR Creation 2 | on: 3 | pull_request_target: 4 | types: 5 | - opened 6 | 7 | jobs: 8 | comment: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - name: Comment on PR 13 | uses: actions/github-script@v4 14 | with: 15 | github-token: ${{ secrets.GITHUB_TOKEN }} # Use secrets.GITHUB_TOKEN 16 | script: | 17 | const { owner, repo, number } = context.issue; 18 | const commentAuthor = context.payload.sender.login; 19 | const commentBody = `Hello! 👋 Thank you @${commentAuthor} for your pull request! \n We appreciate your contribution to "Frontend-Treasure" for Hacktoberfest. Your effort helps make our project better. 🌟 \nOur team will review your PR soon. In the meantime, feel free to explore more ways to contribute or join our community discussions. Your involvement is important to us! \n Keep up the great work! 🚀`; 20 | 21 | await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody }); 22 | console.log(`Commented on the PR: ${commentBody}.`); -------------------------------------------------------------------------------- /.github/workflows/static.yml: -------------------------------------------------------------------------------- 1 | # Simple workflow for deploying static content to GitHub Pages 2 | name: Deploy static content to Pages 3 | 4 | on: 5 | # Runs on pushes targeting the default branch 6 | push: 7 | branches: ["main"] 8 | 9 | # Allows you to run this workflow manually from the Actions tab 10 | workflow_dispatch: 11 | 12 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 13 | permissions: 14 | contents: read 15 | pages: write 16 | id-token: write 17 | 18 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 19 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 20 | concurrency: 21 | group: "pages" 22 | cancel-in-progress: false 23 | 24 | jobs: 25 | # Single deploy job since we're just deploying 26 | deploy: 27 | environment: 28 | name: github-pages 29 | url: ${{ steps.deployment.outputs.page_url }} 30 | runs-on: ubuntu-latest 31 | steps: 32 | - name: Checkout 33 | uses: actions/checkout@v3 34 | - name: Setup Pages 35 | uses: actions/configure-pages@v3 36 | - name: Upload artifact 37 | uses: actions/upload-pages-artifact@v2 38 | with: 39 | # Upload entire repository 40 | path: '.' 41 | - name: Deploy to GitHub Pages 42 | id: deployment 43 | uses: actions/deploy-pages@v2 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 📦 Frontend-Treasure 🌟 2 | 3 | # Introduction 4 | Welcome to Frontend Treasure , a goldmine of web development projects carefully crafted to enhance your frontend skills. Whether you're a budding coder or a seasoned frontend wizard, this open-source repository is your gateway to honing your skills and making valuable contributions to the world of web development. Remember, the path to mastery is paved with hands-on experience! Don't hesitate to dive right in and kickstart your journey to making impactful contributions to this project ✨. 5 | 6 | # Why Explore the Treasure? 7 | * 🌐 Dive into a world of web projects designed to challenge and inspire. 8 | * 🚀 Elevate your frontend skills through hands-on practice and collaboration. 9 | * ⭐ Join our community, star the repository, and share the love for open-source. 10 | 11 | Unlock the chest of knowledge, embark on your journey to mastery, and start making waves in the frontend development universe. Your contributions can shape the future of web design and development! 🌟✨ 12 | 13 | # Why Open Source in Frontend Development? 14 | 15 | Open source in frontend development is a gateway to growth. Here's why: 16 | * **Collaborative Learning:** Join a diverse community of developers to learn from real-world projects and best practices. 17 | * **Hands-on Experience:** Gain practical skills by working on projects that mimic production environments. 18 | * **Networking:** Connect with like-minded individuals and mentors who share your passion for frontend development. 19 | 20 |

21 | 22 | [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/cuGKQdRAR8) 23 | 24 | ![GitHub issues](https://img.shields.io/github/issues/csiddu/Frontend-Treasure) 25 | ![GitHub forks](https://img.shields.io/github/forks/csiddu/Frontend-Treasure) 26 | ![GitHub pull requests](https://img.shields.io/github/issues-pr/csiddu/Frontend-Treasure) 27 | ![GitHub Repo stars](https://img.shields.io/github/stars/csiddu/Frontend-Treasure?style=social) 28 | ![GitHub contributors](https://img.shields.io/github/contributors/csiddu/Frontend-Treasure) 29 | ![Website](https://img.shields.io/website?down_color=red&down_message=offline&up_color=blue&up_message=online&url=https%3A%2F%2Fcsiddu.github.io%2FFrontend-Treasure%2F) 30 | 31 |

32 | 33 |
34 |

High VoltageTech Stacks

35 | 36 |
37 |
38 |
39 |

40 |

41 | 42 | 43 | 44 | 45 | 46 | 47 | [![React](https://img.shields.io/badge/React-61DAFB.svg?style=for-the-badge&logo=React&logoColor=white)](https://reactjs.org/) 48 | [![Angular](https://img.shields.io/badge/Angular-DD0031.svg?style=for-the-badge&logo=Angular&logoColor=white)](https://angular.io/) 49 | [![Vue.js](https://img.shields.io/badge/Vue.js-4FC08D.svg?style=for-the-badge&logo=Vue.js&logoColor=white)](https://vuejs.org/) 50 | [![Ember.js](https://img.shields.io/badge/Ember.js-E04E39.svg?style=for-the-badge&logo=Ember.js&logoColor=white)](https://emberjs.com/) 51 | [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6.svg?style=for-the-badge&logo=TypeScript&logoColor=white)](https://www.typescriptlang.org/) 52 | 53 |
54 |

55 |
56 | 57 |
58 |

Rocket Let's start exploring

59 |
60 |
61 | 62 | #### Select an existing issue or create a new issue. Then follow the below steps: 63 | 64 | **1. Fork the repository:** 65 | - Go to the GitHub repository you want to contribute to. 66 | - Click the "Fork" button in the upper right corner to create a fork of the repository on your GitHub account. 67 |
68 | 69 | **2. Clone this repository:** 70 | - Open your terminal. 71 | - Navigate to the directory where you want to clone the repository. 72 | - Use the following command to clone your forked repository to your local machine: 73 | - `git clone "url of the repository"` 74 |
75 | 76 | **3. Create your new branch:** 77 | - Navigate into the cloned repository directory. 78 | - Use the following command to create a new branch for your changes 79 | - `git checkout -b ` or `git switch -c ` 80 |
81 | 82 | **4. Make changes and commit:** 83 | - Make your desired changes to the files in your local repository. 84 | - New component should be added in this manner only : *`components/`* with having index.html file inside it. Do some required changes in **components.json** file and add Name , URL (*Same as folder name of the component*) , Author name and Image-URL . Your changes should be like this : 85 | ``` 86 | { 87 | "name" : "Name of the component", 88 | "url" : "Component's folder name", 89 | "authorName" : "My Name", 90 | "imgUrl" : "./images/example.jpg" 91 | } 92 | ``` 93 | - Use the following commands to stage and commit your changes: 94 | - `git add.` 95 | - `git commit -m "Your message"` 96 |
97 | 98 | **5. Push the branch to your fork on GitHub:** 99 | - Use the following command to push your new branch to your forked repository on GitHub (replace branch-name with your branch name): 100 | - `git push origin ` 101 |
102 | 103 | **6. Create a PR:** 104 | - Visit the original repository (the one you forked from) on GitHub. 105 | - GitHub will typically detect the new branch you pushed and display a "Compare & pull request" button. 106 | - Click on it to create a pull request, review the changes, and submit the request to the original repository. 107 |
108 | 109 | - Submit your changes for review by creating a PR 110 | - And you are done ! 111 | - We will review and merge your code to the main branch of this repository and you will notified for the same 112 | - If you having queries in basic flow of github, you can learn it from [CONTRIBUTING GUIDELINE](.github/Contributing.md) 113 |
114 |
115 |

Page with Curl Contributing Guidelines

116 |
117 |
118 | 119 | 120 | 121 | - Explore our [CONTRIBUTING GUIDELINE](.github/Contributing.md) to discover comprehensive information on how to contribute to Frontend-Treasure. 122 | - Familiarize yourself with the development process and the essential insights required for contributing to our project. 123 | - Should you have any questions, be sure to consult the provided resources within the guidelines. 124 | 125 |
126 | 127 | 128 | 129 |
130 |

Code of Conduct

131 |

132 | Handshake 133 |

134 |
135 | 136 |
137 | 138 | 139 | - Please be aware that this project operates under a [CODE OF CONDUCT](.github/conduct.md). By taking part in this project, you are expected to adhere to these guidelines and agree to conduct yourself accordingly 140 | 141 |
142 | 143 | ## License 144 | [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) 145 | 146 | Terms and conditions for use, reproduction and distribution are under the [Apache-2.0 License](https://opensource.org/license/apache-2-0/). 147 | 148 | 149 |
150 | 151 |
152 |
153 | 154 |
155 |

Red Heart Contributors

156 |
157 |
158 | 159 | 160 | - We extend our heartfelt gratitude to all our contributors for their invaluable contributions to our project. 161 | - Please consider showing your support by giving our repository a ⭐ star. Your appreciation means the world to us! 162 | 163 |
164 | 165 |
166 | 167 | 168 | 169 |
170 |
171 |

Back to top

172 | -------------------------------------------------------------------------------- /components.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Lato&display=swap"); 2 | * { 3 | margin: 0; 4 | padding: 0; 5 | box-sizing: border-box; 6 | font-family: Arial; 7 | } 8 | 9 | body { 10 | /* background-image: url(bg.jpg);` */ 11 | background-color: #f0f0f0; 12 | /* background-size: cover; */ 13 | /* height: 100vh; */ 14 | /* background-position: center; */ 15 | padding: 0 3%; 16 | font-family: "Lato", sans-serif; 17 | } 18 | 19 | header { 20 | width: 100%; 21 | height: 100px; 22 | display: flex; 23 | justify-content: space-between; 24 | align-items: center; 25 | position: fixed; 26 | z-index: 99; 27 | box-shadow: 0 0 10px #0000; 28 | background: rgba(0, 0, 0, 0.5); 29 | } 30 | 31 | #chk1 { 32 | display: none; 33 | } 34 | 35 | i { 36 | color: #fff; 37 | cursor: pointer; 38 | } 39 | 40 | header .logo { 41 | flex: 1; 42 | color: #fff; 43 | margin-left: 50px; 44 | text-transform: uppercase; 45 | font-size: 15px; 46 | } 47 | 48 | header .search-box { 49 | flex: 1; 50 | position: relative; 51 | } 52 | 53 | .search-box input { 54 | width: 100%; 55 | height: 30px; 56 | border: none; 57 | outline: none; 58 | background: #f2f2f2; 59 | border-radius: 30px; 60 | color: gray; 61 | font-size: 14px; 62 | text-align: center; 63 | padding-left: 5px; 64 | padding-right: 40px; 65 | } 66 | 67 | .search-box button { 68 | cursor: pointer; 69 | width: 30px; 70 | height: 30px; 71 | border-radius: 50%; 72 | border: none; 73 | position: absolute; 74 | top: 0; 75 | right: 5px; 76 | transform: scale(0.9); 77 | background: green; 78 | } 79 | 80 | header .menu { 81 | font-size: 2.5em; 82 | display: none; 83 | } 84 | 85 | .wrapper{ 86 | position: relative; 87 | width: 100%; 88 | height: 100%; 89 | padding: 20px; 90 | display: flex; 91 | align-content: center; 92 | justify-content: center; 93 | gap: 24px; 94 | flex-wrap: wrap; 95 | } 96 | 97 | .card{ 98 | position: relative; 99 | width: 325px; 100 | height: 450px; 101 | background: #000; 102 | border-radius: 18px; 103 | overflow: hidden; 104 | box-shadow: 0 5px 10px rgba(0,0,0,.2); 105 | } 106 | 107 | .poster{ 108 | position: relative; 109 | top: 0; 110 | left: 0; 111 | width: 100%; 112 | height: 100%; 113 | overflow: hidden; 114 | } 115 | 116 | .poster a img{ 117 | width: 100%; 118 | height: 100%; 119 | object-fit: cover; 120 | transition: .3s; 121 | } 122 | 123 | .poster::before{ 124 | content: ''; 125 | position: absolute; 126 | bottom: -45%; 127 | left: 0; 128 | width: 100%; 129 | height: 100%; 130 | } 131 | 132 | .details{ 133 | position: absolute; 134 | bottom: -100%; 135 | left: 0; 136 | width: 100%; 137 | height: auto; 138 | padding: 1.5em 1.5em 2em; 139 | background: #000a; 140 | backdrop-filter: blur(16px) saturate(120%); 141 | transition: .3s; 142 | color: #fff; 143 | z-index: 2; 144 | } 145 | 146 | .card:hover .details{ 147 | bottom: 0; 148 | } 149 | 150 | .details h1, 151 | .details h2{ 152 | font-weight: 700; 153 | } 154 | 155 | .details h1{ 156 | font-size: 1.5em; 157 | margin-bottom: 5px; 158 | } 159 | 160 | .details h2{ 161 | font-weight: 400; 162 | font-size: 1em; 163 | margin-left: 10px; 164 | opacity: .6; 165 | } 166 | 167 | @media (max-width: 1000px) { 168 | .search-box button { 169 | position: absolute; 170 | } 171 | header ul { 172 | position: fixed; 173 | top: 100px; 174 | right: -100%; 175 | background: rgba(0, 0, 0, 0.5); 176 | height: calc(100vh - 100px); 177 | width: 50%; 178 | flex-direction: column; 179 | align-items: center; 180 | transition: right 0.5s linear; 181 | } 182 | 183 | .card{ 184 | width: 250px; 185 | height: 375px; 186 | } 187 | header .menu { 188 | display: block; 189 | width: 100px; 190 | text-align: center; 191 | } 192 | 193 | #chk1:checked ~ ul { 194 | right: 0; 195 | } 196 | } 197 | 198 | @media (max-width: 600px) { 199 | header .logo { 200 | font-size: 10px; 201 | margin-left: 8px; 202 | } 203 | 204 | header ul { 205 | width: 100%; 206 | flex-wrap: wrap; 207 | justify-content: center; 208 | } 209 | 210 | .card{ 211 | height: 325px; 212 | width: 225px; 213 | } 214 | } 215 | .navbar-brand { 216 | color: #2a2a2a; 217 | font-size: 160%; 218 | font-weight: 600; 219 | width: 60%; 220 | } 221 | .nav-item { 222 | margin: 0 20px; 223 | } 224 | 225 | .row { 226 | width: 100%; 227 | } 228 | @media only screen and (max-width: 600px) { 229 | .navbar-brand { 230 | width: 70%; 231 | } 232 | } 233 | @media only screen and (max-width: 450px) { 234 | .navbar-brand { 235 | font-size: 140%; 236 | } 237 | } 238 | 239 | /* footer */ 240 | 241 | footer{ 242 | margin-top: 5%; 243 | } 244 | 245 | /* cards css */ 246 | 247 | /* @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap'); */ 248 | 249 | 250 | -------------------------------------------------------------------------------- /components.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 41 | 42 |
43 | 44 | 45 | 46 |
47 | 81 | 82 | 83 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "Login Page", 4 | "url" :"Login_page", 5 | "authorName" : "12Kishan", 6 | "imgUrl" : "./images/view.jpg" 7 | }, 8 | { 9 | "name" : "Contact Form", 10 | "url" :"contact_form", 11 | "authorName" : "NaitikPatel-325", 12 | "imgUrl" : "./images/contact.png " 13 | }, 14 | { 15 | "name" : "Sliders", 16 | "url" :"react/build/?slider", 17 | "authorName" : "kevintamakuwala", 18 | "imgUrl" : "./images/slider.png" 19 | }, 20 | { 21 | "name" : "Pagination", 22 | "url" :"react/build/?pagination", 23 | "authorName" : "kevintamakuwala", 24 | "imgUrl" : "./images/pagination.png" 25 | }, 26 | { 27 | "name" : "Signup_SignIn_page", 28 | "url" : "Signup_SignIn_page", 29 | "authorName" : "Kavya Shah", 30 | "imgUrl" : "./images/Signup_SignIn_page.png" 31 | } 32 | ] -------------------------------------------------------------------------------- /components/Login_page/image/view.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/components/Login_page/image/view.jpg -------------------------------------------------------------------------------- /components/Login_page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Login page 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 49 | 50 |
51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /components/Login_page/style2.css: -------------------------------------------------------------------------------- 1 | body { 2 | text-align: center; 3 | width: 100%; 4 | margin-top: 170px; 5 | padding: 0px; 6 | background-color: orange; 7 | } 8 | 9 | .wrapper { 10 | margin: 0 auto; 11 | padding: 0px; 12 | text-align: center; 13 | width: 995px; 14 | 15 | @media (max-width: 960px) { 16 | display: flex; 17 | flex-direction: column; 18 | align-items: center; 19 | width: 100%; 20 | } 21 | } 22 | 23 | .login_div { 24 | background-color: white; 25 | padding: 20px; 26 | max-width: 300px; 27 | margin-left: 345px; 28 | 29 | @media (max-width: 960px) { 30 | margin-left: 0; 31 | } 32 | } 33 | 34 | .login_div button { 35 | text-decoration: none; 36 | background-color: blue; 37 | color: white; 38 | font-family: cosmic, sans-serif; 39 | text-align: center; 40 | border: 2px solid white; 41 | border-radius: 10px; 42 | transition: 0.5s; 43 | width: 100%; 44 | } 45 | 46 | .login_div button hover { 47 | background-color: black; 48 | color: orange; 49 | border: none; 50 | border-bottom: 4px solid orange; 51 | transition: 0.5s; 52 | } 53 | 54 | .login_div .register { 55 | margin-top: 20px; 56 | float: left; 57 | } 58 | 59 | .login_div .forgot { 60 | margin-top: 20px; 61 | float: right; 62 | margin-left: 8px; 63 | } -------------------------------------------------------------------------------- /components/Signup_SignIn_page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Login 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 25 | 36 |
37 |
38 |
39 |

Already Have Account?

40 |

Please login by feeling up your details

41 | 42 |
43 |
44 |

Create a New Account

45 |

Enter Your details

46 | 47 |
48 |
49 |
50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /components/Signup_SignIn_page/script.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function() { 2 | const container=document.getElementById('container') 3 | const signIn=document.getElementById('signIn-updated') 4 | const signUp=document.getElementById('signup-updated') 5 | 6 | signUp.addEventListener('click',function () { 7 | container.classList.add("right-active") 8 | // console.log("added"); 9 | }) 10 | 11 | signIn.addEventListener('click',function () { 12 | container.classList.remove("right-active") 13 | // console.log("removed"); 14 | }) 15 | 16 | const form = document.getElementById("formSignup"); 17 | // console.log(form); 18 | form.addEventListener("submit", function(event) { 19 | event.preventDefault(); 20 | 21 | const username = document.getElementById("nameId").value; 22 | // console.log(username); 23 | // Redirect to the next page with the username as a query parameter 24 | window.location.href = `../../index.html?username=${username}`; 25 | }); 26 | }); 27 | -------------------------------------------------------------------------------- /components/Signup_SignIn_page/style.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap'); 2 | 3 | 4 | *{ 5 | margin: 0; 6 | padding: 0; 7 | box-sizing: border-box; 8 | } 9 | body{ 10 | display: grid; 11 | place-items: center; 12 | align-items: center; 13 | font-family: 'Montserrat',sans-serif; 14 | height: 100vh; 15 | } 16 | h1{ 17 | font-weight: bold; 18 | margin: 0; 19 | } 20 | 21 | /* p{ 22 | /* fon */ 23 | /* } */ 24 | 25 | 26 | span{ 27 | font-size: 12px; 28 | } 29 | 30 | form{ 31 | background-color: #ffffff; 32 | display: flex; 33 | align-items: center; 34 | justify-content: center; 35 | flex-direction: column; 36 | padding: 0 50px; 37 | height: 100%; 38 | text-align: center; 39 | } 40 | 41 | input{ 42 | background-color: #eee; 43 | border: none; 44 | font-size: 16px; 45 | padding: 10px 12px; 46 | width: 100%; 47 | margin: 8px 0; 48 | } 49 | 50 | .container{ 51 | background-color: #fff; 52 | border-radius: 2em; 53 | box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px ; 54 | position: relative; 55 | overflow: hidden; 56 | width: 650px; 57 | max-width: 100%; 58 | min-height: 550px; 59 | } 60 | 61 | .form-div{ 62 | position: absolute; 63 | top: 0; 64 | height: 100%; 65 | transition: all 0.9s ease-in-out; 66 | } 67 | .sign-in{ 68 | left: 0; 69 | width: 50%; 70 | z-index: 2; 71 | } 72 | .sign-up{ 73 | left: 0; 74 | width: 50%; 75 | opacity: 0; 76 | z-index: 1; 77 | } 78 | .overlay-container{ 79 | position: absolute; 80 | top: 0; 81 | left: 50%; 82 | width: 50%; 83 | height: 100%; 84 | overflow: hidden; 85 | transition: transform 0.9s ease-in-out; 86 | z-index: 100; 87 | } 88 | .overlay{ 89 | background: #08A0DF; 90 | background: -webkit-linear-gradient(20deg,#08A0DF); 91 | background: linear-gradient(0deg,#34a0a4,#08A0DF); 92 | background-repeat: no-repeat; 93 | background-size:cover ; 94 | background-position: 0 0; 95 | color: #ffffff; 96 | position: relative; 97 | left: -100%; 98 | height: 100%; 99 | width: 200%; 100 | transform: translateX(0); 101 | transition: transform 0.9s ease-in-out; 102 | } 103 | .overlay-panel{ 104 | position: absolute; 105 | display: flex; 106 | align-items: center; 107 | justify-content: center; 108 | flex-direction: column; 109 | padding: 0 40px; 110 | text-align: center; 111 | top: 0; 112 | height: 100%; 113 | width: 50%; 114 | transform: translateX(0); 115 | transition: transform 0.9s ease-in-out; 116 | } 117 | .overlay-left{ 118 | transform: translateX(-20%); 119 | } 120 | .overlay-right{ 121 | right: 0; 122 | transform: translateX(0); 123 | } 124 | 125 | a{ 126 | color: #333; 127 | font-size: 14px; 128 | text-decoration: none; 129 | margin: 15px 0; 130 | } 131 | button{ 132 | border-radius: 2em; 133 | border: 1px solid #fff; 134 | cursor: pointer; 135 | font-size: 12px; 136 | font-weight: bold; 137 | padding: 1em 5em; 138 | text-transform: uppercase; 139 | transition: transform 80ms ease-in; 140 | background: #31b3e6; 141 | } 142 | 143 | button:active{ 144 | transform: scale(0.95); 145 | } 146 | button:focus{ 147 | outline: none; 148 | } 149 | 150 | button.ghost{ 151 | background-color: transparent; 152 | border-color:#ffffff ; 153 | } 154 | 155 | 156 | .container.right-active .sign-in{ 157 | transform: translateX(100%); 158 | /* background-color: #333; */ 159 | } 160 | .container.right-active .sign-up{ 161 | transform: translateX(100%); 162 | opacity: 1; 163 | z-index: 5; 164 | animation: show 0.9s; 165 | background-color: #333; 166 | } 167 | 168 | @keyframes show{ 169 | 0%, 49.99%{ 170 | opacity: 0; 171 | z-index: 1; 172 | } 173 | 50%,100%{ 174 | opacity: 1; 175 | z-index: 5; 176 | } 177 | } 178 | 179 | .container.right-active .overlay-container{ 180 | transform: translateX(-100%); 181 | } 182 | 183 | .container.right-active .overlay{ 184 | transform: translateX(50%); 185 | } 186 | 187 | .container.right-active .overlay-left{ 188 | transform: translateX(0); 189 | } 190 | 191 | .container.right-active .overlay-right{ 192 | transform: translateX(20%); 193 | /* background-color: #333; */ 194 | } 195 | -------------------------------------------------------------------------------- /components/contact_form/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Contact Form 7 | 8 | 9 | 10 |
11 |
12 |

Contact Form

13 |
14 |
15 | 16 | 17 |
18 |
19 | 20 | 21 |
22 |
23 | 24 | 25 |
26 |
27 | 28 | 29 |
30 |
31 |
32 |
33 | 34 | -------------------------------------------------------------------------------- /components/react/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | -------------------------------------------------------------------------------- /components/react/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Important!------------------------------------------------------ 3 | 4 | ## To create a new component follow these steps: 5 | - Go to package.JSON file and replace the _**homepage url**_ `https://csiddu.github.io/Frontend-Treasure/components/react/build/` with `http://127.0.0.1:5500/components/react/build/` i.e your live server url followed by `components/react/build/`. This is necessary as Production Url has to be replaced with Live Server's IP. 6 | - Make an entry in **App.js > path** object eg: `: ` 7 | - Make an entry for url in components.JSON. eg: `react/build/?` 8 | - Make an entry for url in Layout.jsx. For local development use: `/components/react/build/?` and before committing make it to `/Frontend-Treasure/components/react/build/?`. This is because repo name should be included for github pages deployment. 9 | - Finally add your component card in components.html. 10 | - #### Note: During development, if your code doesn't work, make sure to build react app. If still any issue persists, read the steps again. 11 | - ### Before committing: 12 | 13 | 1. Always explicitly, **build the react project, every-time before committing** `npm run build`. Only then your changes will be reflected in static build. 14 | 2. Make sure the Urls in package.json and Layout.jsx are production friendly, as mentioned earlier. (Refer code for more understanding). 15 | 16 | ------------------------------------------------------------------ 17 | -------------------------------------------------------------------------------- /components/react/build/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": { 3 | "main.css": "/Frontend-Treasure/components/react/build/static/css/main.693f2cad.css", 4 | "main.js": "/Frontend-Treasure/components/react/build/static/js/main.7087bd13.js", 5 | "index.html": "/Frontend-Treasure/components/react/build/index.html", 6 | "main.693f2cad.css.map": "/Frontend-Treasure/components/react/build/static/css/main.693f2cad.css.map", 7 | "main.7087bd13.js.map": "/Frontend-Treasure/components/react/build/static/js/main.7087bd13.js.map" 8 | }, 9 | "entrypoints": [ 10 | "static/css/main.693f2cad.css", 11 | "static/js/main.7087bd13.js" 12 | ] 13 | } -------------------------------------------------------------------------------- /components/react/build/index.html: -------------------------------------------------------------------------------- 1 | React Components
-------------------------------------------------------------------------------- /components/react/build/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /components/react/build/static/css/main.693f2cad.css: -------------------------------------------------------------------------------- 1 | body{-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@font-face{font-family:swiper-icons;font-style:normal;font-weight:400;src:url("data:application/font-woff;charset=utf-8;base64, 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")}:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;overflow:clip;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{-webkit-transform:translateZ(0);transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:height,-webkit-transform;transition-property:transform,height;transition-property:transform,height,-webkit-transform}.swiper-backface-hidden .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{-webkit-perspective:1200px;perspective:1200px}.swiper-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-3d{-webkit-perspective:1200px;perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{-ms-overflow-style:none;overflow:auto;scrollbar-width:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{-webkit-margin-start:var(--swiper-centered-offset-before);margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{-webkit-margin-before:var(--swiper-centered-offset-before);margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-lazy-preloader{border:4px solid #007aff;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid transparent;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;-webkit-transform-origin:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{-webkit-animation:swiper-preloader-spin 1s linear infinite;animation:swiper-preloader-spin 1s linear infinite}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@-webkit-keyframes swiper-preloader-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes swiper-preloader-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.slider-wrapper{align-items:center;background-color:#557272;display:flex;height:100vh;justify-content:center;margin:0}.swiper{height:100%;scroll-behavior:smooth;width:100%}.swiper-slide{background-position:50%;background-size:cover;height:auto;width:auto}.slide-card{margin:0 .81rem}.wrapper{display:grid;justify-content:center;min-height:100vh;place-items:center;align-items:center;background-color:#fafafa}.pagination{display:flex;list-style:none;margin:15px auto;outline:none}.pagination>.active>a{background-color:#58d358;border-color:#58d358;color:#060b0b}.pagination>li>a{border:1px solid #060b0b;cursor:pointer;outline:none;padding:5px 10px}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{background-color:#58d358;border-color:#060b0b;outline:none}.pagination>li>a,.pagination>li>span{color:#060b0b}.pagination>li:first-child>a,.pagination>li:first-child>span,.pagination>li:last-child>a,.pagination>li:last-child>span{border-radius:0;border-radius:initial} 2 | /*# sourceMappingURL=main.693f2cad.css.map*/ -------------------------------------------------------------------------------- /components/react/build/static/css/main.693f2cad.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/css/main.693f2cad.css","mappings":"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","sources":["index.css","App.css","../node_modules/swiper/swiper.css","pages/slider/slider.css","pages/pagination/pagination.css"],"sourcesContent":["body {\r\n margin: 0;\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n height: 100vh;\r\n /* background-color: aqua; */\r\n}\r\n\r\ncode {\r\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\r\n monospace;\r\n}",".App {\r\n text-align: center;\r\n}\r\n\r\n.App-logo {\r\n height: 40vmin;\r\n pointer-events: none;\r\n}\r\n\r\n@media (prefers-reduced-motion: no-preference) {\r\n .App-logo {\r\n animation: App-logo-spin infinite 20s linear;\r\n }\r\n}\r\n\r\n.App-header {\r\n background-color: #282c34;\r\n min-height: 100vh;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: calc(10px + 2vmin);\r\n color: white;\r\n}\r\n\r\n.App-link {\r\n color: #61dafb;\r\n}\r\n\r\n@keyframes App-logo-spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n","/**\n * Swiper 10.3.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 28, 2023\n */\n\n/* FONT_START */\n@font-face {\n font-family: 'swiper-icons';\n src: url('data:application/font-woff;charset=utf-8;base64, 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');\n font-weight: 400;\n font-style: normal;\n}\n/* FONT_END */\n:root {\n --swiper-theme-color: #007aff;\n /*\n --swiper-preloader-color: var(--swiper-theme-color);\n --swiper-wrapper-transition-timing-function: initial;\n */\n}\n:host {\n position: relative;\n display: block;\n margin-left: auto;\n margin-right: auto;\n z-index: 1;\n}\n.swiper {\n margin-left: auto;\n margin-right: auto;\n position: relative;\n overflow: hidden;\n overflow: clip;\n list-style: none;\n padding: 0;\n /* Fix of Webkit flickering */\n z-index: 1;\n display: block;\n}\n.swiper-vertical > .swiper-wrapper {\n flex-direction: column;\n}\n.swiper-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1;\n display: flex;\n transition-property: transform;\n transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);\n box-sizing: content-box;\n}\n.swiper-android .swiper-slide,\n.swiper-ios .swiper-slide,\n.swiper-wrapper {\n transform: translate3d(0px, 0, 0);\n}\n.swiper-horizontal {\n touch-action: pan-y;\n}\n.swiper-vertical {\n touch-action: pan-x;\n}\n.swiper-slide {\n flex-shrink: 0;\n width: 100%;\n height: 100%;\n position: relative;\n transition-property: transform;\n display: block;\n}\n.swiper-slide-invisible-blank {\n visibility: hidden;\n}\n/* Auto Height */\n.swiper-autoheight,\n.swiper-autoheight .swiper-slide {\n height: auto;\n}\n.swiper-autoheight .swiper-wrapper {\n align-items: flex-start;\n transition-property: transform, height;\n}\n.swiper-backface-hidden .swiper-slide {\n transform: translateZ(0);\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n}\n/* 3D Effects */\n.swiper-3d.swiper-css-mode .swiper-wrapper {\n perspective: 1200px;\n}\n.swiper-3d .swiper-wrapper {\n transform-style: preserve-3d;\n}\n.swiper-3d {\n perspective: 1200px;\n}\n.swiper-3d .swiper-slide,\n.swiper-3d .swiper-cube-shadow {\n transform-style: preserve-3d;\n}\n/* CSS Mode */\n.swiper-css-mode > .swiper-wrapper {\n overflow: auto;\n scrollbar-width: none;\n /* For Firefox */\n -ms-overflow-style: none;\n /* For Internet Explorer and Edge */\n}\n.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {\n display: none;\n}\n.swiper-css-mode > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: start start;\n}\n.swiper-css-mode.swiper-horizontal > .swiper-wrapper {\n scroll-snap-type: x mandatory;\n}\n.swiper-css-mode.swiper-vertical > .swiper-wrapper {\n scroll-snap-type: y mandatory;\n}\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper {\n scroll-snap-type: none;\n}\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: none;\n}\n.swiper-css-mode.swiper-centered > .swiper-wrapper::before {\n content: '';\n flex-shrink: 0;\n order: 9999;\n}\n.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: center center;\n scroll-snap-stop: always;\n}\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {\n margin-inline-start: var(--swiper-centered-offset-before);\n}\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {\n height: 100%;\n min-height: 1px;\n width: var(--swiper-centered-offset-after);\n}\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {\n margin-block-start: var(--swiper-centered-offset-before);\n}\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {\n width: 100%;\n min-width: 1px;\n height: var(--swiper-centered-offset-after);\n}\n/* Slide styles start */\n/* 3D Shadows */\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom,\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 10;\n}\n.swiper-3d .swiper-slide-shadow {\n background: rgba(0, 0, 0, 0.15);\n}\n.swiper-3d .swiper-slide-shadow-left {\n background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-right {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-top {\n background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-bottom {\n background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-lazy-preloader {\n width: 42px;\n height: 42px;\n position: absolute;\n left: 50%;\n top: 50%;\n margin-left: -21px;\n margin-top: -21px;\n z-index: 10;\n transform-origin: 50%;\n box-sizing: border-box;\n border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));\n border-radius: 50%;\n border-top-color: transparent;\n}\n.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,\n.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {\n animation: swiper-preloader-spin 1s infinite linear;\n}\n.swiper-lazy-preloader-white {\n --swiper-preloader-color: #fff;\n}\n.swiper-lazy-preloader-black {\n --swiper-preloader-color: #000;\n}\n@keyframes swiper-preloader-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n/* Slide styles end */\n",".slider-wrapper{\r\n margin: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: rgb(85, 114, 114);\r\n height: 100vh;\r\n}\r\n.swiper {\r\n width: 100%;\r\n height: 100%;\r\n scroll-behavior: smooth;\r\n}\r\n.swiper-slide {\r\n background-position: center;\r\n background-size: cover;\r\n height: auto;\r\n width: auto;\r\n}\r\n.slide-card{\r\n margin:0 .81rem;\r\n}","\r\n.wrapper {\r\n display: grid;\r\n place-items: center;\r\n min-height: 100vh;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: #fafafa;\r\n}\r\n.pagination {\r\n margin: 15px auto;\r\n display: flex;\r\n list-style: none;\r\n outline: none;\r\n}\r\n\r\n.pagination>.active>a {\r\n background-color: #58d358;\r\n border-color: #58d358;\r\n color: #060b0b;\r\n}\r\n\r\n.pagination>li>a {\r\n border: 1px solid #060b0b;\r\n padding: 5px 10px;\r\n outline: none;\r\n cursor: pointer;\r\n}\r\n\r\n.pagination>.active>a, .pagination>.active>span, .pagination>.active>a:hover, .pagination>.active>span:hover, .pagination>.active>a:focus, .pagination>.active>span:focus {\r\n background-color: #58d358;\r\n border-color: #060b0b;\r\n outline: none;\r\n}\r\n\r\n.pagination>li>a, .pagination>li>span {\r\n color: #060b0b;\r\n}\r\n\r\n.pagination>li:first-child>a, .pagination>li:first-child>span, .pagination>li:last-child>a, .pagination>li:last-child>span {\r\n border-radius: unset\r\n}"],"names":[],"sourceRoot":""} -------------------------------------------------------------------------------- /components/react/build/static/js/main.7087bd13.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * @license React 3 | * react-dom.production.min.js 4 | * 5 | * Copyright (c) Facebook, Inc. and its affiliates. 6 | * 7 | * This source code is licensed under the MIT license found in the 8 | * LICENSE file in the root directory of this source tree. 9 | */ 10 | 11 | /** 12 | * @license React 13 | * react-jsx-runtime.production.min.js 14 | * 15 | * Copyright (c) Facebook, Inc. and its affiliates. 16 | * 17 | * This source code is licensed under the MIT license found in the 18 | * LICENSE file in the root directory of this source tree. 19 | */ 20 | 21 | /** 22 | * @license React 23 | * react.production.min.js 24 | * 25 | * Copyright (c) Facebook, Inc. and its affiliates. 26 | * 27 | * This source code is licensed under the MIT license found in the 28 | * LICENSE file in the root directory of this source tree. 29 | */ 30 | 31 | /** 32 | * @license React 33 | * scheduler.production.min.js 34 | * 35 | * Copyright (c) Facebook, Inc. and its affiliates. 36 | * 37 | * This source code is licensed under the MIT license found in the 38 | * LICENSE file in the root directory of this source tree. 39 | */ 40 | -------------------------------------------------------------------------------- /components/react/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-components", 3 | "version": "0.1.0", 4 | "private": true, 5 | "homepage": "https://csiddu.github.io/Frontend-Treasure/components/react/build/", 6 | "dependencies": { 7 | "@testing-library/jest-dom": "^5.17.0", 8 | "@testing-library/react": "^13.4.0", 9 | "@testing-library/user-event": "^13.5.0", 10 | "framer-motion": "^6.3.0", 11 | "react": "^18.2.0", 12 | "react-dom": "^18.2.0", 13 | "react-paginate": "^8.2.0", 14 | "react-scripts": "5.0.1", 15 | "swiper": "^10.3.1", 16 | "web-vitals": "^2.1.4" 17 | }, 18 | "scripts": { 19 | "start": "react-scripts start", 20 | "build": "react-scripts build", 21 | "test": "react-scripts test", 22 | "eject": "react-scripts eject" 23 | }, 24 | "eslintConfig": { 25 | "extends": [ 26 | "react-app", 27 | "react-app/jest" 28 | ] 29 | }, 30 | "browserslist": { 31 | "production": [ 32 | ">0.2%", 33 | "not dead", 34 | "not op_mini all" 35 | ], 36 | "development": [ 37 | "last 1 chrome version", 38 | "last 1 firefox version", 39 | "last 1 safari version" 40 | ] 41 | }, 42 | "devDependencies": { 43 | "react-router-dom": "^6.16.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /components/react/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | React Components 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /components/react/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /components/react/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | background-color: #282c34; 18 | min-height: 100vh; 19 | display: flex; 20 | flex-direction: column; 21 | align-items: center; 22 | justify-content: center; 23 | font-size: calc(10px + 2vmin); 24 | color: white; 25 | } 26 | 27 | .App-link { 28 | color: #61dafb; 29 | } 30 | 31 | @keyframes App-logo-spin { 32 | from { 33 | transform: rotate(0deg); 34 | } 35 | to { 36 | transform: rotate(360deg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /components/react/src/App.js: -------------------------------------------------------------------------------- 1 | import "./App.css"; 2 | import Layout from "./pages/layout/Layout"; 3 | import Slider from "./pages/slider/Slider"; 4 | import Error from "./pages/error/Error"; 5 | import Pagination from "./pages/pagination/Pagination"; 6 | function App() { 7 | const paths = { 8 | home: , 9 | slider: , 10 | pagination: , 11 | }; 12 | const slug = window.location.href.split("?"); 13 | return ( 14 | <> 15 | {slug !== "" && paths.hasOwnProperty(slug[1]) ? ( 16 | paths[slug[1]] 17 | ) : ( 18 | 19 | )} 20 | 21 | ); 22 | } 23 | export default App; 24 | -------------------------------------------------------------------------------- /components/react/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 4 | -webkit-font-smoothing: antialiased; 5 | height: 100vh; 6 | /* background-color: aqua; */ 7 | } 8 | 9 | code { 10 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 11 | monospace; 12 | } -------------------------------------------------------------------------------- /components/react/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import './index.css'; 4 | import App from './App'; 5 | 6 | const root = ReactDOM.createRoot(document.getElementById('root')); 7 | root.render( 8 | 9 | 10 | 11 | ); -------------------------------------------------------------------------------- /components/react/src/pages/error/Error.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const Error = () => { 4 | return ( 5 |
Error
6 | ) 7 | } 8 | 9 | export default Error -------------------------------------------------------------------------------- /components/react/src/pages/error/error.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/components/react/src/pages/error/error.css -------------------------------------------------------------------------------- /components/react/src/pages/layout/Layout.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | const Layout = () => { 3 | return ( 4 | 17 | ); 18 | }; 19 | 20 | export default Layout; 21 | -------------------------------------------------------------------------------- /components/react/src/pages/layout/layout.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/components/react/src/pages/layout/layout.css -------------------------------------------------------------------------------- /components/react/src/pages/pagination/Pagination.jsx: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Kevin Tamakuwala (Github: @kevintamakuwala) 3 | * Date: 18/10/2003 4 | */ 5 | 6 | import React, { useState, useEffect } from "react"; 7 | import ReactPaginate from "react-paginate"; 8 | import "./pagination.css"; 9 | 10 | const Pagination = () => { 11 | // item offset 12 | const [offset, setOffset] = useState(0); 13 | 14 | // Number of items per page 15 | const [perPage] = useState(10); 16 | 17 | // current page number 18 | const [currentPage, setCurrentPage] = useState(0); 19 | 20 | // number of items per page 21 | const [pageCount, setPageCount] = useState(0); 22 | 23 | // posting data 24 | const [postData, setPostData] = useState([]); 25 | 26 | const receivedData = () => { 27 | // Total Number of items 28 | const length = 500; 29 | 30 | // array for storing items, it can be array of objects for API calls. 31 | const data = []; 32 | 33 | for (let i = 1; i <= length; i++) { 34 | data.push(i); 35 | } 36 | 37 | const slice = data.slice(offset, offset + perPage); 38 | const postData = slice.map((element, index) => ( 39 |

{element}

40 | )); 41 | setPageCount(Math.ceil(data.length / perPage)); 42 | setPostData(postData); 43 | }; 44 | 45 | const handlePageClick = (selectedPage) => { 46 | const newOffset = selectedPage * perPage; 47 | setCurrentPage(selectedPage); 48 | setOffset(newOffset); 49 | }; 50 | 51 | useEffect(() => { 52 | receivedData(); 53 | }, [offset]); 54 | 55 | return ( 56 |
57 | {postData} 58 | handlePageClick(selectedPage.selected)} 68 | containerClassName={"pagination"} 69 | subContainerClassName={"pages pagination"} 70 | activeClassName={"active"} 71 | /> 72 |
73 | ); 74 | }; 75 | 76 | export default Pagination; 77 | -------------------------------------------------------------------------------- /components/react/src/pages/pagination/pagination.css: -------------------------------------------------------------------------------- 1 | 2 | .wrapper { 3 | display: grid; 4 | place-items: center; 5 | min-height: 100vh; 6 | justify-content: center; 7 | align-items: center; 8 | background-color: #fafafa; 9 | } 10 | .pagination { 11 | margin: 15px auto; 12 | display: flex; 13 | list-style: none; 14 | outline: none; 15 | } 16 | 17 | .pagination>.active>a { 18 | background-color: #58d358; 19 | border-color: #58d358; 20 | color: #060b0b; 21 | } 22 | 23 | .pagination>li>a { 24 | border: 1px solid #060b0b; 25 | padding: 5px 10px; 26 | outline: none; 27 | cursor: pointer; 28 | } 29 | 30 | .pagination>.active>a, .pagination>.active>span, .pagination>.active>a:hover, .pagination>.active>span:hover, .pagination>.active>a:focus, .pagination>.active>span:focus { 31 | background-color: #58d358; 32 | border-color: #060b0b; 33 | outline: none; 34 | } 35 | 36 | .pagination>li>a, .pagination>li>span { 37 | color: #060b0b; 38 | } 39 | 40 | .pagination>li:first-child>a, .pagination>li:first-child>span, .pagination>li:last-child>a, .pagination>li:last-child>span { 41 | border-radius: unset 42 | } -------------------------------------------------------------------------------- /components/react/src/pages/slider/Slider.jsx: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Kevin Tamakuwala (Github: @kevintamakuwala) 3 | * Date: 16/10/2003 4 | * Functionalities: 5 | * 1) Infinite Autoplay when present on screen 6 | * 2) Swiping functionality 7 | */ 8 | 9 | import React from "react"; 10 | 11 | // Import Swiper React components 12 | import { Swiper, SwiperSlide } from "swiper/react"; 13 | 14 | // Import Swiper styles 15 | import "swiper/css"; 16 | import "swiper/css/effect-coverflow"; 17 | import "swiper/css"; 18 | import "./slider.css"; 19 | import { Pagination, Autoplay } from "swiper/modules"; 20 | import SwiperCore from "swiper"; 21 | 22 | // dummy images, you can keep cards instead. 23 | const dummyImages = [ 24 | "https://images.unsplash.com/photo-1696004503906-6b6ca3923f71?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=300&ixid=MnwxfDB8MXxyYW5kb218MHx8fHx8fHx8MTY5NzQ0ODE3Nw&ixlib=rb-4.0.3&q=80&w=300", 25 | "https://images.unsplash.com/photo-1696526552981-893b9caf991d?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=300&ixid=MnwxfDB8MXxyYW5kb218MHx8fHx8fHx8MTY5NzQ0ODIyNg&ixlib=rb-4.0.3&q=80&w=300", 26 | "https://images.unsplash.com/photo-1693590593548-adb2d98e8f2b?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=300&ixid=MnwxfDB8MXxyYW5kb218MHx8fHx8fHx8MTY5NzQ0ODI4OA&ixlib=rb-4.0.3&q=80&w=300", 27 | "https://images.unsplash.com/photo-1696164712534-25a0dca38a2d?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=300&ixid=MnwxfDB8MXxyYW5kb218MHx8fHx8fHx8MTY5NzQ0ODMyMQ&ixlib=rb-4.0.3&q=80&w=300", 28 | "https://images.unsplash.com/photo-1696164255885-4bb2db6bb3f2?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=300&ixid=MnwxfDB8MXxyYW5kb218MHx8fHx8fHx8MTY5NzQ0ODMzOA&ixlib=rb-4.0.3&q=80&w=300", 29 | "https://source.unsplash.com/random/300x300", 30 | "https://images.unsplash.com/photo-1695642579321-fcb1fc79b976?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=300&ixid=MnwxfDB8MXxyYW5kb218MHx8fHx8fHx8MTY5NzQ0ODM2Mg&ixlib=rb-4.0.3&q=80&w=300", 31 | ]; 32 | 33 | const Slider = () => { 34 | // using autoplay feature 35 | SwiperCore.use([Autoplay]); 36 | 37 | // including styles 38 | const styles = { 39 | slider__inner_container: { 40 | display: "flex", 41 | transition: ".5s", 42 | }, 43 | slider__container: { 44 | overflow: "hidden", 45 | margin: "0 3rem", 46 | }, 47 | __card: { 48 | padding: "1rem 0.5rem", 49 | }, 50 | slideIn: { 51 | display: "none", 52 | }, 53 | }; 54 | 55 | // for autoplay slider: only when present on viewport. Use below code to achieve that using framer-motion and conditional rendering. -------------------------- 56 | 57 | // const [isIntersecting, setIsIntersecting] = useState(false); 58 | // const ref = useRef(null); 59 | 60 | // useEffect(() => { 61 | // const observer = new IntersectionObserver( 62 | // ([entry]) => { 63 | // setIsIntersecting(entry.isIntersecting); 64 | // }, 65 | // { rootMargin: "-100px" } 66 | // ); 67 | // observer.observe(ref.current); 68 | 69 | // return () => observer.disconnect(); 70 | // }, []); 71 | 72 | // useEffect(() => { 73 | // if (isIntersecting) { 74 | // ref.current.querySelectorAll("div").forEach((el) => { 75 | // el.classList.remove("slideIn"); 76 | // }); 77 | // } 78 | // }, [isIntersecting]); 79 | 80 | return ( 81 |
82 |
87 |
88 | 101 | {dummyImages.map((url, index) => { 102 | return ( 103 | 104 |
105 | images 106 |
107 |
108 | ); 109 | })} 110 |
111 |
112 |
113 |
114 | ); 115 | }; 116 | 117 | export default Slider; 118 | -------------------------------------------------------------------------------- /components/react/src/pages/slider/slider.css: -------------------------------------------------------------------------------- 1 | .slider-wrapper{ 2 | margin: 0; 3 | display: flex; 4 | justify-content: center; 5 | align-items: center; 6 | background-color: rgb(85, 114, 114); 7 | height: 100vh; 8 | } 9 | .swiper { 10 | width: 100%; 11 | height: 100%; 12 | scroll-behavior: smooth; 13 | } 14 | .swiper-slide { 15 | background-position: center; 16 | background-size: cover; 17 | height: auto; 18 | width: auto; 19 | } 20 | .slide-card{ 21 | margin:0 .81rem; 22 | } -------------------------------------------------------------------------------- /images/Signup_SignIn_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/images/Signup_SignIn_page.png -------------------------------------------------------------------------------- /images/contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/images/contact.png -------------------------------------------------------------------------------- /images/pagination.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/images/pagination.png -------------------------------------------------------------------------------- /images/pexels-bich-tran-2481177.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/images/pexels-bich-tran-2481177.jpg -------------------------------------------------------------------------------- /images/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/images/slider.png -------------------------------------------------------------------------------- /images/view.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/images/view.jpg -------------------------------------------------------------------------------- /images/wb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csiddu/Frontend-Treasure/fdaf04683e378155e7637a07998d9e60e8f03e6c/images/wb.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Frontend Treasure 7 | 8 | 9 | 15 | 16 | 17 | 24 | 25 | 26 | 27 | 28 | 29 | 66 | 67 |
68 |
69 |
70 | 71 |
72 |
73 |

Code your Dreams!

74 |

75 | Frontend Treasure: Simplify web development. Copy, paste, and create 76 | stunning websites effortlessly. Explore, customize, and bring your 77 | ideas to life. 78 |

79 | 89 |
90 |
91 |
92 | 93 | 94 | 95 | 129 | 130 | 131 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", () => { 2 | const parentDiv = document.getElementById("component-items"); 3 | 4 | fetch("./components.json") 5 | .then((response) => response.json()) 6 | .then((data) => { 7 | data.forEach((component) => { 8 | const newElement = document.createElement("div"); 9 | newElement.innerHTML = `
10 |
${component.name}
12 |
13 |

${component.name}

14 |

By: ${component.authorName}

15 |
16 |
`; 17 | parentDiv.appendChild(newElement); 18 | }); 19 | }); 20 | }); 21 | 22 | function searchComponents() { 23 | const searchInput = document 24 | .getElementById("searchInput") 25 | .value.toLowerCase(); 26 | const cards = document.querySelectorAll(".card"); 27 | 28 | cards.forEach((card) => { 29 | const title = card.querySelector(".details h1").textContent.toLowerCase(); 30 | const author = card.querySelector(".details h2").textContent.toLowerCase(); 31 | console.log(title, author); 32 | 33 | if (title.includes(searchInput) || author.includes(searchInput)) { 34 | card.style.display = "block"; 35 | foundResults = true; 36 | } else { 37 | card.style.display = "none"; 38 | } 39 | }); 40 | } 41 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Lato&display=swap"); 2 | * { 3 | margin: 0; 4 | padding: 0; 5 | box-sizing: border-box; 6 | font-family: Arial; 7 | } 8 | 9 | body { 10 | /* background-image: url(bg.jpg);` */ 11 | background-color: #f0f0f0; 12 | /* background-size: cover; */ 13 | /* height: 100vh; */ 14 | /* background-position: center; */ 15 | padding: 0 3%; 16 | font-family: "Lato", sans-serif; 17 | } 18 | 19 | header { 20 | width: 100%; 21 | height: 100px; 22 | display: flex; 23 | justify-content: space-between; 24 | align-items: center; 25 | position: fixed; 26 | z-index: 99; 27 | box-shadow: 0 0 10px #0000; 28 | background: rgba(0, 0, 0, 0.5); 29 | } 30 | 31 | #chk1 { 32 | display: none; 33 | } 34 | 35 | i { 36 | color: #fff; 37 | cursor: pointer; 38 | } 39 | 40 | header .logo { 41 | flex: 1; 42 | color: #fff; 43 | margin-left: 50px; 44 | text-transform: uppercase; 45 | font-size: 15px; 46 | } 47 | 48 | header .search-box { 49 | flex: 1; 50 | position: relative; 51 | } 52 | 53 | .search-box input { 54 | width: 100%; 55 | height: 30px; 56 | border: none; 57 | outline: none; 58 | background: #f2f2f2; 59 | border-radius: 30px; 60 | color: gray; 61 | font-size: 14px; 62 | text-align: center; 63 | padding-left: 5px; 64 | padding-right: 40px; 65 | } 66 | 67 | .search-box button { 68 | cursor: pointer; 69 | width: 30px; 70 | height: 30px; 71 | border-radius: 50%; 72 | border: none; 73 | position: absolute; 74 | top: 0; 75 | right: 5px; 76 | transform: scale(0.9); 77 | background: green; 78 | } 79 | 80 | header .menu { 81 | font-size: 2.5em; 82 | display: none; 83 | } 84 | 85 | @media (max-width: 1000px) { 86 | .search-box button { 87 | position: absolute; 88 | } 89 | 90 | header ul { 91 | position: fixed; 92 | top: 100px; 93 | right: -100%; 94 | background: rgba(0, 0, 0, 0.5); 95 | height: calc(100vh - 100px); 96 | width: 50%; 97 | flex-direction: column; 98 | align-items: center; 99 | transition: right 0.5s linear; 100 | } 101 | 102 | header .menu { 103 | display: block; 104 | width: 100px; 105 | text-align: center; 106 | } 107 | 108 | #chk1:checked ~ ul { 109 | right: 0; 110 | } 111 | } 112 | 113 | @media (max-width: 600px) { 114 | header .logo { 115 | font-size: 10px; 116 | margin-left: 8px; 117 | } 118 | 119 | header ul { 120 | width: 100%; 121 | flex-wrap: wrap; 122 | justify-content: center; 123 | } 124 | } 125 | .navbar-brand { 126 | color: #2a2a2a; 127 | font-size: 170%; 128 | font-weight: 600; 129 | width: 60%; 130 | } 131 | .nav-item { 132 | margin: 0 20px; 133 | } 134 | #hero-img { 135 | width: 100%; 136 | } 137 | #hero-left { 138 | padding: 7% 0; 139 | } 140 | #hero-head { 141 | color: #4483e5; 142 | font-size: 290%; 143 | font-weight: bold; 144 | } 145 | #hero-right { 146 | display: flex; 147 | flex-direction: column; 148 | align-items: flex-start; 149 | justify-content: center; 150 | } 151 | #hero-text { 152 | color: #2a2a2a; 153 | font-size: 21px; 154 | } 155 | #hero-right form { 156 | margin-top: 5%; 157 | } 158 | #hero-right form input { 159 | width: 350px; 160 | } 161 | .row { 162 | width: 100%; 163 | } 164 | @media only screen and (max-width: 600px) { 165 | .navbar-brand { 166 | width: 70%; 167 | } 168 | #hero-right form input { 169 | width: 250px; 170 | } 171 | #hero-head { 172 | font-size: 200%; 173 | } 174 | #hero-left { 175 | text-align: center; 176 | } 177 | #hero-text { 178 | font-size: 16px; 179 | } 180 | } 181 | @media only screen and (max-width: 450px) { 182 | .navbar-brand { 183 | font-size: 140%; 184 | } 185 | } 186 | 187 | /* Footer */ 188 | footer{ 189 | margin-bottom: 2%; 190 | } --------------------------------------------------------------------------------