/* Basisstyles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Arial', sans-serif; background: linear-gradient(135deg, #463308, #00000072); display: flex; justify-content: center; align-items: center; height: 100vh; overflow: hidden; color: #fff; animation: gradientAnimation 8s ease-in-out infinite alternate; } .container { background-color: rgba(0, 0, 0, 0.7); border-radius: 15px; padding: 40px; width: 350px; text-align: center; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); animation: containerPop 1s ease-in-out; } @keyframes containerPop { 0% {transform: scale(0.5); opacity: 0;} 100% {transform: scale(1); opacity: 1;} } .heading { font-size: 2rem; margin-bottom: 20px; font-weight: 600; color: #fff; animation: fadeInUp 1s ease-in-out; } @keyframes fadeInUp { 0% {transform: translateY(30px); opacity: 0;} 100% {transform: translateY(0); opacity: 1;} } .password-input, .number-input, .generated-password { width: 100%; padding: 15px; font-size: 18px; margin-bottom: 20px; border: none; border-radius: 5px; background-color: #333; color: #fff; box-shadow: 0 0 15px rgba(0, 0, 0, 0.3); outline: none; transition: all 0.3s ease; animation: inputGlow 1s ease-in-out infinite alternate; } @keyframes inputGlow { 0% {box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);} 100% {box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);} } .strength { margin-top: 15px; font-size: 1.2rem; font-weight: bold; animation: fadeIn 0.8s ease-in-out; } .suggestion { margin-top: 15px; font-size: 0.9rem; color: #ddd; animation: fadeIn 1.2s ease-in-out; } .strength.weak { color: red; } .strength.medium { color: orange; } .strength.strong { color: green; } .divider { border: 1px solid rgba(255, 255, 255, 0.2); margin: 20px 0; } .checkbox-container { display: flex; justify-content: space-between; margin-bottom: 20px; } .generate-btn, .copy-btn { background-color: #0072ff; color: white; border: none; padding: 10px 20px; font-size: 16px; border-radius: 5px; cursor: pointer; box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); transition: all 0.2s ease; animation: buttonGlow 1.5s ease-in-out infinite alternate; } @keyframes buttonGlow { 0% {box-shadow: 0 0 10px #0072ff;} 100% {box-shadow: 0 0 25px #0072ff;} } .generate-btn:hover, .copy-btn:hover { background-color: #0056b3; transform: scale(1.05); } input[type="number"] { -webkit-appearance: none; -moz-appearance: textfield; } input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } .copy-btn { margin-top: 10px; } /* Glow Text Animation */ .footer { position: absolute; bottom: 10px; /* Abstand vom unteren Rand */ width: 100%; text-align: center; font-family: 'Arial', sans-serif; } .glow { font-size: 12px; /* Kleine Schriftgröße */ font-weight: bold; color: #fff; text-shadow: 0 0 5px #fff, 0 0 10px #ff00ff, 0 0 15px #ff00ff, 0 0 20px #ff00ff, 0 0 25px #ff00ff; animation: glow-animation 1.5s ease-in-out infinite alternate; } /* Glow Animation */ @keyframes glow-animation { 0% { text-shadow: 0 0 5px #fff, 0 0 10px #ff00ff, 0 0 15px #ff00ff, 0 0 20px #ff00ff, 0 0 25px #ff00ff; } 50% { text-shadow: 0 0 10px #fff, 0 0 20px #ff00ff, 0 0 30px #ff00ff, 0 0 40px #ff00ff, 0 0 50px #ff00ff; } 100% { text-shadow: 0 0 15px #fff, 0 0 30px #ff00ff, 0 0 45px #ff00ff, 0 0 60px #ff00ff, 0 0 75px #ff00ff; } } /* Feedback */ /* Feedback-Button */ #feedback-container { position: fixed; bottom: 20px; right: 20px; z-index: 9999; } .feedback-button { background-color: #00c6ff; border: none; color: rgb(188, 0, 0); font-size: 1.5rem; padding: 15px; border-radius: 50%; cursor: pointer; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4); transition: all 0.3s ease; animation: bounceIn 1s ease-out; } .feedback-button:hover { background-color: #0090c2; transform: scale(1.1); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5); } @keyframes bounceIn { 0% { transform: scale(0.5); opacity: 0; } 60% { transform: scale(1.2); } 100% { transform: scale(1); opacity: 1; } } /* Modal Feedback-Form */ .feedback-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); justify-content: center; align-items: center; z-index: 10000; } .modal-content { background: #bd0000; padding: 30px; border-radius: 10px; width: 80%; max-width: 600px; animation: fadeInModal 0.5s ease; } @keyframes fadeInModal { 0% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } } textarea { width: 100%; height: 150px; padding: 10px; border: 2px solid #ddd; border-radius: 8px; font-size: 1rem; margin-bottom: 20px; resize: none; } textarea:focus { outline: none; border-color: #00c6ff; } .submit-feedback, .close-feedback { background-color: #00c6ff; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; transition: all 0.3s ease; } .submit-feedback:hover, .close-feedback:hover { background-color: #0090c2; } .close-feedback { background-color: #ff4c4c; } #feedback-button { transition: transform 0.3s ease; } /* Style für den Feedback-Button */ .feedback-button { position: fixed; bottom: 20px; right: 20px; background-color: #4CAF50; color: rgb(150, 85, 85); border: none; padding: 10px 20px; font-size: 18px; border-radius: 50px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); cursor: pointer; transition: background-color 0.3s ease, transform 0.2s ease; } .feedback-button:hover { background-color: #45a049; transform: scale(1.1); } /* Style für das Modal */ #feedback-modal { display: none; /* Standardmäßig ausgeblendet */ position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); justify-content: center; align-items: center; z-index: 10000; } /* Style für den Modal-Inhalt */ .modal-content { background: #000000; border-radius: 10px; padding: 20px; width: 400px; max-width: 90%; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } h2 { margin-top: 0; font-family: 'Arial', sans-serif; color: #333; } textarea { width: 100%; height: 150px; border: 1px solid #00000000; border-radius: 5px; padding: 10px; font-size: 14px; margin-top: 10px; font-family: 'Arial', sans-serif; } button { background-color: #4CAF50; color: white; border: none; padding: 10px 20px; font-size: 16px; cursor: pointer; border-radius: 5px; margin-top: 10px; transition: background-color 0.3s ease, transform 0.2s ease; } button:hover { background-color: #45a049; transform: scale(1.05); } #close-feedback { background-color: #f44336; } #close-feedback:hover { background-color: #e53935; } /* Modal sichtbar machen */ #feedback-modal.show { display: flex; /* Zeigt das Modal an */ } /* Zahlen-Animation */ @keyframes fadeIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); animation: alternate-reverse; animation-fill-mode: both; animation-delay: 0.5s; animation-iteration-count: 1; animation-direction: normal; animation-timing-function: ease-in-out; } } #error-message { background: linear-gradient(90deg, #ff4b4b, #ff6a6a); padding: 10px; border-radius: 8px; margin: 10px auto; box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2); animation: fadeIn 0.5s ease-in-out; animation-fill-mode: both; animation-delay: 0.5s; animation-iteration-count: 1; animation-direction: normal; animation-timing-function: ease-in-out; animation-play-state: running; animation-fill-mode: forwards; animation-delay: 0s; animation-direction: normal; animation-timing-function: ease-in-out; animation-play-state: running; animation-fill-mode: forwards; animation-delay: 0s; } @keyframes animateNumbers { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } @keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; transform: scale(1); } } @-webkit-keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; transform: scale(1); } } @keyframes fadeInUp { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }