├── googleec6ed805508de9e8.html ├── favicon.ico ├── assets ├── discordicon.png └── githubicon.png ├── robots.txt ├── modules ├── isEmptyOrSpaces.js ├── generateJson.js ├── theme.js └── export.js ├── scrollbar.css ├── sitemap.xml ├── LICENSE ├── .github └── workflows │ └── pages.yml ├── README.md ├── CONTRIBUTING.md ├── script.js ├── index.html ├── CODE_OF_CONDUCT.md └── style.css /googleec6ed805508de9e8.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googleec6ed805508de9e8.html -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Would-You-Bot/json-generator/HEAD/favicon.ico -------------------------------------------------------------------------------- /assets/discordicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Would-You-Bot/json-generator/HEAD/assets/discordicon.png -------------------------------------------------------------------------------- /assets/githubicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Would-You-Bot/json-generator/HEAD/assets/githubicon.png -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | 4 | Sitemap: https://would-you-bot.github.io/json-generator/sitemap.xml -------------------------------------------------------------------------------- /modules/isEmptyOrSpaces.js: -------------------------------------------------------------------------------- 1 | export default function isEmptyOrSpaces(str) { 2 | return str === null || str.match(/^ *$/) !== null; 3 | } -------------------------------------------------------------------------------- /scrollbar.css: -------------------------------------------------------------------------------- 1 | ::-webkit-scrollbar { 2 | width: 10px; 3 | } 4 | 5 | /* Track */ 6 | ::-webkit-scrollbar-track { 7 | background: #151515; 8 | } 9 | 10 | /* Handle */ 11 | ::-webkit-scrollbar-thumb { 12 | background: #888; 13 | border-radius: 2px; 14 | } 15 | 16 | /* Handle on hover */ 17 | ::-webkit-scrollbar-thumb:hover { 18 | background: #555; 19 | } 20 | -------------------------------------------------------------------------------- /sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | https://would-you-bot.github.io/json-generator/ 9 | 2022-10-08T17:49:08+00:00 10 | 11 | -------------------------------------------------------------------------------- /modules/generateJson.js: -------------------------------------------------------------------------------- 1 | export default function generateJson() { 2 | var arrayuseful = []; 3 | $("#containeruseful :input").each(function (e) { 4 | arrayuseful.push(this.value); 5 | }); 6 | const filteruseful = arrayuseful.filter((a) => a); 7 | var arrayuseless = []; 8 | $("#containeruseless :input").each(function (e) { 9 | arrayuseless.push(this.value); 10 | }); 11 | const filteruseless = arrayuseless.filter((a) => a); 12 | const finished = { 13 | useful: filteruseful, 14 | useless: filteruseless, 15 | }; 16 | return finished; 17 | } -------------------------------------------------------------------------------- /modules/theme.js: -------------------------------------------------------------------------------- 1 | const toggleIcon = document.querySelector("#toggle-icon"); 2 | // for dark theme 3 | (function () { 4 | if (localStorage.getItem("dark") === "false") { 5 | document.body.classList.toggle("light-mode"); 6 | toggleIcon.classList.remove("fa-sun"); 7 | toggleIcon.classList.add("fa-moon"); 8 | } else { 9 | localStorage.setItem("dark", "true"); 10 | } 11 | document.querySelector(".theme-btn").addEventListener("click", () => { 12 | document.body.classList.toggle("light-mode"); 13 | if (localStorage.getItem("dark") === "true") { 14 | localStorage.setItem("dark", "false"); 15 | toggleIcon.classList.remove("fa-sun"); 16 | toggleIcon.classList.add("fa-moon"); 17 | } else { 18 | localStorage.setItem("dark", "true"); 19 | toggleIcon.classList.remove("fa-moon"); 20 | toggleIcon.classList.add("fa-sun"); 21 | } 22 | }); 23 | })(); -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Would You Bot 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/pages.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 one concurrent deployment 19 | concurrency: 20 | group: "pages" 21 | cancel-in-progress: true 22 | 23 | jobs: 24 | # Single deploy job since we're just deploying 25 | deploy: 26 | environment: 27 | name: github-pages 28 | url: ${{ steps.deployment.outputs.page_url }} 29 | runs-on: ubuntu-latest 30 | steps: 31 | - name: Checkout 32 | uses: actions/checkout@v3 33 | - name: Setup Pages 34 | uses: actions/configure-pages@v2 35 | - name: Upload artifact 36 | uses: actions/upload-pages-artifact@v1 37 | with: 38 | # Upload entire repository 39 | path: '.' 40 | - name: Deploy to GitHub Pages 41 | id: deployment 42 | uses: actions/deploy-pages@v1 43 | -------------------------------------------------------------------------------- /modules/export.js: -------------------------------------------------------------------------------- 1 | import generateJson from "./generateJson.js"; 2 | import isEmptyOrSpaces from "./isEmptyOrSpaces.js"; 3 | 4 | const svgContainer = document.getElementById('svg'); 5 | // Setting up bodymovin animation 6 | const animItem = bodymovin.loadAnimation({ 7 | wrapper: svgContainer, 8 | animType: 'svg', 9 | loop: false, 10 | autoplay: false, 11 | path: 'https://assets4.lottiefiles.com/packages/lf20_Jp1pCorlFf.json', 12 | }); 13 | document.getElementById("generatebtn").onclick = function () { 14 | let finished = generateJson(); 15 | let empty = false; 16 | finished["useful"].forEach(e => { 17 | if (isEmptyOrSpaces(e)) empty = true; 18 | }) 19 | finished["useless"].forEach(e => { 20 | if (isEmptyOrSpaces(e)) empty = true; 21 | }) 22 | if (empty) return alert("You can't have empty fields!"); 23 | if (finished["useful"].length == 0 && finished["useless"].length == 0 && finished) 24 | return alert("You need to add at least one question before exporting"); 25 | 26 | svgContainer.classList.remove('hide'); //making visible 27 | animItem.goToAndPlay(0, true); //resetting animation 28 | 29 | const blob = new Blob([JSON.stringify(finished)], { 30 | type: "application/json", 31 | }); 32 | const url = URL.createObjectURL(blob); 33 | const link = document.createElement("a"); 34 | link.href = url; 35 | link.download = "wouldyou-export.json"; 36 | link.click(); 37 | setTimeout(() => { 38 | URL.revokeObjectURL(url); 39 | }, 100); 40 | }; 41 | // Lottie 42 | animItem.addEventListener('complete', () => svgContainer.classList.add('hide')); //Adding back the hide class once animation is complete -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Json Generator 2 | 3 | 4 | GitHub repo size 5 | 6 | Json-Generator 7 | 8 |

9 |  forks 10 |

11 | 12 | ## How to run the project 13 | - Install the [VSCode Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) Extention. 14 | - Navigate to the [`html file`](index.html). 15 | - Start the Live Server. 16 | 17 | ## Want to contribute? 18 | - Take a look at [`contributing guidelines`](CONTRIBUTING.md). 19 | - Refer [GitHub Flow](https://guides.github.com/introduction/flow). 20 | 21 | ## Why should I contribute? 22 | - You can help a small project grow and improve it. 23 | - You can earn points during [hacktoberfest](https://hacktoberfest.com/). 24 | - You can earn yourself a special contributor/helper role on our [discord server](discord.gg/vMyXAxEznS) 25 | 26 | 27 | ## Contributors 28 | 29 | **Thanks goes to these wonderful people ❤️** 30 | 31 |
32 |
33 | 34 | 35 | 36 |
37 | 38 |
39 |
40 |
41 |
© Json Generator 2022 42 |
43 | All Rights Reserved
44 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing Guidelines 2 | 3 | This documentation contains a set of guidelines to help you during the contribution process. 4 | 5 | # Submitting Contributions👩‍💻👨‍💻 6 | Below you will find the process and workflow used to review and merge your changes. 7 | 8 | ## Step 1 : Find an issue 9 | - Take a look at the Existing issues or create your **own** issues! 10 | - Wait for the issue to be assigned to you after which you can start working on it. 11 | 12 | ## Step 2 : Fork the Project 13 | - Fork this Repository. This will create a Local Copy of this Repository on your Github Profile. Keep a reference to the original project in `upstream` remote. 14 | ``` 15 | $ git clone https://github.com//json-generator 16 | $ cd json-generator 17 | $ git remote add upstream https://github.com/Would-You-Bot/json-generator 18 | ``` 19 | 20 | - If you have already forked the project, update your copy before working. 21 | ``` 22 | $ git remote update 23 | $ git checkout 24 | $ git rebase upstream/ 25 | ``` 26 | ## Step 3 : Branch 27 | ``` 28 | # To create a new branch with name branch_name and switch to that branch 29 | $ git checkout -b 30 | ``` 31 | ## Step 4 : Work on the issue assigned 32 | - Work on the issue assigned to you. 33 | - After you've made changes or made your contribution to the project add changes to the branch you've just created by: 34 | ``` 35 | # To add all new files to branch branch_name 36 | $ git add . 37 | ``` 38 | ## Step 5 : Commit 39 | 40 | - To commit give a descriptive message for the convenience of reveiwer by: 41 | ``` 42 | # This message get associated with all files you have changed 43 | $ git commit -m "message" 44 | ``` 45 | 46 | ## Step 6 : Work Remotely 47 | - Now you are ready to your work to the remote repository. 48 | - When your work is ready and complies with the project conventions, upload your changes to your fork: 49 | 50 | ``` 51 | # To push your work to your remote repository 52 | $ git push -u origin 53 | ``` 54 | 55 | ## Step 7 : Pull Request 56 | - Go to your repository in browser and click on compare and pull requests. Then add a title and description to your pull request that explains your contribution. 57 | - Then add a title to your pull request. 58 | - Mention the issue number in your PR. 59 | - Give a brief description about the changes. 60 | - Your Pull Request has been submitted and will be reviewed by the owner and merged.🥳 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | import generateJson from "./modules/generateJson.js"; 2 | import isEmptyOrSpaces from "./modules/isEmptyOrSpaces.js"; 3 | 4 | /* 5 | Functions 6 | */ 7 | function refreshPreview(changeState = false) { 8 | const json = JSON.stringify(generateJson(), undefined, 4); 9 | var preview = document.getElementById("preview-window"); 10 | if (changeState) { 11 | if (preview.parentElement.classList.contains("previewHidden")) { 12 | preview.parentElement.classList.remove("previewHidden"); 13 | preview.parentElement.classList.add("previewVisible"); 14 | } 15 | else { 16 | preview.parentElement.classList.remove("previewVisible"); 17 | preview.parentElement.classList.add("previewHidden"); 18 | } 19 | } 20 | preview.innerHTML = json; 21 | hljs.highlightAll(); 22 | } 23 | function createInput(id, lastKnownValue) { 24 | if (!lastKnownValue) { 25 | return; 26 | } 27 | refreshPreview(); 28 | const container = document.getElementById(id); 29 | const parent = document.createElement("div"); 30 | const remove = document.createElement("button"); 31 | 32 | parent.className = "oneline"; 33 | remove.innerHTML = "-"; 34 | remove.className = "removeBtn"; 35 | remove.addEventListener("click", removeButtonEventListener); 36 | 37 | const input = document.createElement("input"); 38 | input.type = "text"; 39 | input.value = lastKnownValue; 40 | 41 | parent.append(input, remove); 42 | container.append(parent); 43 | } 44 | const onFileChange = (event) => { 45 | let reader = new FileReader(); 46 | reader.onload = onReaderLoad; 47 | reader.readAsText(event.target.files[0]); 48 | }; 49 | 50 | const onReaderLoad = (event) => { 51 | const obj = JSON.parse(event.target.result); 52 | let parsed = false; 53 | 54 | if (obj) { 55 | if (typeof obj === "object") { 56 | if ( 57 | obj.hasOwnProperty("useful") && 58 | obj.hasOwnProperty("useless") 59 | ) { 60 | for (let [k, v] of Object.entries(obj)) { 61 | const id = `container${k}`; 62 | if (typeof v === "object") { 63 | parsed = true; 64 | v.forEach((v) => { 65 | if (!isEmptyOrSpaces(v)) createInput(id, v); 66 | }); 67 | } 68 | } 69 | } 70 | } 71 | } 72 | if (!parsed) { 73 | alert("Error in parsing your JSON file."); 74 | } 75 | }; 76 | const removeButtonEventListener = (e) => { 77 | e.target.parentElement.remove(); 78 | refreshPreview(); 79 | }; 80 | /* 81 | EventListeners. 82 | */ 83 | document.getElementById("addbtn1").onclick = function () { 84 | let value = generateJson(); 85 | if (value.useful.filter(entry => /\S/.test(entry)).length !== value.useful.length) return alert("You can't have empty fields!"); 86 | const inputs = document.querySelectorAll("#containeruseful input"); 87 | var lastInput = inputs.item(inputs.length - 1); 88 | 89 | if (lastInput.value) { 90 | createInput("containeruseful", inputs[0].value); 91 | inputs[0].value = ""; 92 | inputs[0].focus(); 93 | } 94 | }; 95 | document.getElementById("addbtn2").onclick = function () { 96 | let value = generateJson(); 97 | if (value.useless.filter(entry => /\S/.test(entry)).length !== value.useless.length) return alert("You can't have empty fields!"); 98 | const inputs = document.querySelectorAll("#containeruseless input"); 99 | var lastInput = inputs.item(inputs.length - 1); 100 | if (lastInput.value) { 101 | createInput("containeruseless", inputs[0].value); 102 | inputs[0].value = ""; 103 | inputs[0].focus(); 104 | } 105 | }; 106 | 107 | document.getElementById("previewbtn").onclick = function () { 108 | refreshPreview(true); 109 | }; 110 | document.getElementById("file").addEventListener("change", onFileChange); 111 | 112 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 15 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 29 | 30 | 31 | 35 | 36 | 37 | 41 | 42 | 46 | 47 | 51 | 52 | 53 | 54 | Would You - Json Generator 55 | 56 | 57 | 58 |
59 | 60 | 61 | 64 |
65 |
66 |

Would You

67 |

JSON Generator

68 |
69 |

70 | Generate would you rather import files using this UI! Press the + 71 | button to add more! 72 |

73 |
74 |
75 |

Useful👍

76 |
77 |
78 | 79 | 80 |
81 |
82 |
83 |
84 |

Useless👎

85 |
86 |
87 | 88 | 89 |
90 |
91 |
92 |
93 | 94 | 98 | 99 |
100 | 101 |
102 | 103 | 104 | 105 | 106 |
108 |
109 |
110 | 111 |
112 | discord logo 119 | discord logo 126 |
127 |
134 | Copyright © 2022 All Rights Reserved by Would You. 135 |
136 | 137 | 138 | 144 | 145 | 146 | 147 | 148 | 149 | -------------------------------------------------------------------------------- /CODE_OF_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 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /* Language: css */ 2 | /* Path: style.css */ 3 | * { 4 | text-decoration: none; 5 | } 6 | 7 | /* for dark theme */ 8 | :root { 9 | --color-primary: #191d2b; 10 | --color-white: #ffffff; 11 | --color-grey-2: #b2becd; 12 | --color-grey-4: #454e56; 13 | --br-sm-2: 14px; 14 | --box-shadow-1: 0 3px 15px rgba(0, 0, 0, 0.3); 15 | } 16 | 17 | .light-mode { 18 | --color-primary: #ffffff; 19 | --color-white: #454e56; 20 | --color-grey-2: #6c7983; 21 | --color-grey-4: #454e56; 22 | } 23 | 24 | body { 25 | background-color: var(--color-primary); 26 | text-align: center; 27 | color: var(--color-white); 28 | font-family: "Source Code Pro", monospace; 29 | } 30 | 31 | /* css for button */ 32 | 33 | .theme-btn { 34 | top: 2%; 35 | right: 4%; 36 | width: 60px; 37 | height: 60px; 38 | border-radius: 50%; 39 | background-color: var(--color-grey-4); 40 | cursor: pointer; 41 | position: fixed; 42 | display: flex; 43 | justify-content: center; 44 | align-items: center; 45 | box-shadow: 0 3px 15px rgba(0, 0, 0, 0.3); 46 | transition: all 0.1s ease-in-out; 47 | user-select: none; 48 | border: none; 49 | } 50 | 51 | .theme-btn:active { 52 | translate: 0 -3px; 53 | } 54 | 55 | .theme-btn i { 56 | font-size: 1.4rem; 57 | color: var(--color-grey-2); 58 | pointer-events: none; 59 | } 60 | 61 | @media (max-width: 420px) { 62 | .theme-btn i { 63 | font-size: 1.2rem; 64 | } 65 | .theme-btn { 66 | width: 50px; 67 | height: 50px; 68 | } 69 | } 70 | #headings h1, 71 | #headings h2 { 72 | margin: 0px; 73 | color: white; 74 | } 75 | 76 | #headings { 77 | display: flex; 78 | flex-wrap: wrap; 79 | flex-direction: column; 80 | } 81 | 82 | .containerbox { 83 | background-image: linear-gradient(to bottom right, #f00708, #0697f4); 84 | display: flex; 85 | width: 100%; 86 | min-height: 40rem; 87 | align-items: center; 88 | justify-content: center; 89 | left: 50%; 90 | translate: -50% 0; 91 | border-radius: 50px; 92 | margin-top: 50px; 93 | margin-bottom: 40px; 94 | position: relative; 95 | max-width: 628px; 96 | } 97 | 98 | .containermain { 99 | display: flex; 100 | width: 400px; 101 | top: 50%; 102 | left: 50%; 103 | align-items: center; 104 | justify-content: center; 105 | flex-wrap: wrap; 106 | margin: 20px 0px; 107 | flex-direction: column; 108 | padding: 10px 10px 10px 10px; 109 | } 110 | 111 | #generatebtn { 112 | background-color: transparent; 113 | padding: 14px 20px; 114 | margin: 20px 0; 115 | border: none; 116 | cursor: pointer; 117 | width: 100%; 118 | border: #f1f1f1 2px solid; 119 | border-radius: 50px; 120 | color: lightblue; 121 | transition: all 0.9s ease; 122 | } 123 | 124 | #generatebtn:hover { 125 | border-radius: 10px; 126 | transition: all 0.5s ease; 127 | } 128 | 129 | #container { 130 | font-family: "Abyssinica SIL", serif; 131 | color: navajowhite; 132 | } 133 | #container input { 134 | color: #f1f1f1; 135 | background-color: #151515; 136 | border-radius: 4px; 137 | border: none; 138 | transition: all 0.9s; 139 | height: 23px; 140 | margin-top: 3px; 141 | padding: 2% 5%; 142 | } 143 | 144 | #container input:hover { 145 | color: #f1f1f1; 146 | background-color: #151515; 147 | border-radius: 15px; 148 | transition: all 0.9s; 149 | } 150 | 151 | #container button { 152 | color: #f1f1f1; 153 | cursor: pointer; 154 | background-color: transparent; 155 | border: none; 156 | font-size: 20px; 157 | } 158 | 159 | .container { 160 | background-color: #2c2c2c; 161 | } 162 | 163 | .list { 164 | display: flex; 165 | flex-wrap: wrap; 166 | align-items: flex-start; 167 | flex-direction: column; 168 | } 169 | 170 | .oneline { 171 | display: flex; 172 | flex-wrap: nowrap; 173 | } 174 | 175 | .bottom-btns { 176 | background-color: transparent; 177 | padding: 14px 20px; 178 | margin: 10px 0; 179 | border: none; 180 | cursor: pointer; 181 | width: 70%; 182 | border: #f1f1f1 2px solid; 183 | border-radius: 50px; 184 | transition: all 0.9s ease; 185 | color: wheat; 186 | } 187 | 188 | .bottom-btns:hover { 189 | border-radius: 10px; 190 | transition: all 0.5s ease; 191 | } 192 | 193 | .previewHidden { 194 | visibility: hidden; 195 | opacity: 0; 196 | height: 0; 197 | } 198 | 199 | .previewVisible { 200 | visibility: visible; 201 | opacity: 1; 202 | height: auto; 203 | transition: visibility 300ms ease-in-out 0s, opacity 600ms; 204 | } 205 | 206 | #preview-window { 207 | border-radius: 20px; 208 | text-align: left; 209 | background-color: #151515; 210 | width: 360px; 211 | } 212 | 213 | .file-upload { 214 | margin-top: 20px; 215 | color: wheat; 216 | } 217 | 218 | .button { 219 | background-color: transparent; 220 | padding: 14px 20px; 221 | margin: 10px 0; 222 | cursor: pointer; 223 | width: 70%; 224 | border: #f1f1f1 2px solid; 225 | border-radius: 50px; 226 | transition: all 0.9s ease; 227 | } 228 | .button:hover { 229 | border-radius: 10px; 230 | transition: all 0.5s ease; 231 | } 232 | label.bottom-btns { 233 | font-size: 13px; 234 | width: 60%; 235 | } 236 | 237 | @media screen and (max-width: 535px) { 238 | .containerbox { 239 | width: 100%; 240 | } 241 | } 242 | @media (max-width: 480px) { 243 | #generatebtn { 244 | width: 60%; 245 | } 246 | .language-json { 247 | width: 300px !important; 248 | } 249 | } 250 | @media (max-width: 360px) { 251 | .language-json { 252 | width: 200px !important; 253 | } 254 | } 255 | #social-buttons { 256 | padding: 2%; 257 | background-color: rgb(21, 21, 21, 0); 258 | /* opacity: 0.5; */ 259 | } 260 | 261 | img { 262 | border-radius: 50%; 263 | margin: 20px; 264 | } 265 | 266 | /* Lottie Animation */ 267 | .svg { 268 | width: 40rem; 269 | position: absolute; 270 | left: 50%; 271 | pointer-events: none; 272 | translate: -48% -50%; 273 | } 274 | .hide { 275 | display: none; 276 | } 277 | --------------------------------------------------------------------------------