├── .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 | [](https://discord.gg/cuGKQdRAR8)
23 |
24 | 
25 | 
26 | 
27 | 
28 | 
29 | 
30 |
31 |
32 |
33 |
34 |
Tech Stacks
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | [](https://reactjs.org/)
48 | [](https://angular.io/)
49 | [](https://vuejs.org/)
50 | [](https://emberjs.com/)
51 | [](https://www.typescriptlang.org/)
52 |
53 |
54 |
55 |
56 |
57 |
58 |
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 |
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 |
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 | [](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 |
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 |
19 |
40 |
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 |
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 |
15 |
24 |
25 |
36 |
37 |
38 |
39 |
Already Have Account?
40 |
Please login by feeling up your details
41 |
Sign IN
42 |
43 |
44 |
Create a New Account
45 |
Enter Your details
46 |
Sign Up
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 |
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 React Based 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 | React Based Components
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 |
5 |
16 |
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 |
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 |
30 |
31 |
Frontend Treasure
32 |
38 |
39 |
40 |
41 |
52 |
53 |
59 |
60 | Search
61 |
62 |
63 |
64 |
65 |
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 |
80 |
85 |
86 | Search
87 |
88 |
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 |
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 | }
--------------------------------------------------------------------------------