Files
onlyqr/styles.css
2025-06-11 14:31:53 +02:00

335 lines
5.4 KiB
CSS

* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20px;
}
.container {
background: white;
border-radius: 20px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
padding: 40px;
max-width: 600px;
width: 100%;
text-align: center;
}
h1 {
color: #333;
margin-bottom: 30px;
font-size: 2.5em;
font-weight: 300;
}
.input-group {
margin-bottom: 25px;
display: flex;
flex-wrap: wrap;
gap: 15px;
align-items: center;
justify-content: center;
}
#text {
flex: 1;
min-width: 250px;
padding: 15px 20px;
border: 2px solid #e1e8ed;
border-radius: 25px;
font-size: 16px;
outline: none;
transition: border-color 0.3s ease;
}
#text:focus {
border-color: #4a5568;
}
#color {
width: 60px;
height: 50px;
border: none;
border-radius: 25px;
cursor: pointer;
outline: none;
}
#download {
background: linear-gradient(45deg, #4a5568, #2d3748);
color: white;
border: none;
padding: 15px 25px;
border-radius: 25px;
font-size: 16px;
font-weight: 500;
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease;
position: relative;
overflow: hidden;
}
#download:hover {
transform: translateY(-2px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.glitter-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
overflow: hidden;
border-radius: 25px;
}
.glitter {
position: absolute;
width: 4px;
height: 4px;
border-radius: 50%;
pointer-events: none;
opacity: 0;
}
@keyframes glitter1 {
0% {
opacity: 0;
transform: translateY(0) translateX(0) scale(0);
}
50% {
opacity: 1;
transform: translateY(-20px) translateX(10px) scale(1);
}
100% {
opacity: 0;
transform: translateY(-40px) translateX(20px) scale(0);
}
}
@keyframes glitter2 {
0% {
opacity: 0;
transform: translateY(0) translateX(0) scale(0) rotate(0deg);
}
50% {
opacity: 1;
transform: translateY(-15px) translateX(-15px) scale(1.2) rotate(180deg);
}
100% {
opacity: 0;
transform: translateY(-30px) translateX(-30px) scale(0) rotate(360deg);
}
}
@keyframes glitter3 {
0% {
opacity: 0;
transform: translateY(0) translateX(0) scale(0);
}
30% {
opacity: 1;
transform: translateY(-10px) translateX(5px) scale(0.8);
}
70% {
opacity: 1;
transform: translateY(-25px) translateX(-5px) scale(1.1);
}
100% {
opacity: 0;
transform: translateY(-35px) translateX(-10px) scale(0);
}
}
.glitter.anim1 {
animation: glitter1 1.5s ease-out infinite;
}
.glitter.anim2 {
animation: glitter2 1.8s ease-out infinite;
}
.glitter.anim3 {
animation: glitter3 1.2s ease-out infinite;
}
.qr-container {
margin: 30px 0;
display: flex;
justify-content: center;
align-items: center;
background: #f8f9fa;
border-radius: 15px;
padding: 20px;
overflow: visible;
position: relative;
}
#qrcode {
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
#qrcode svg {
max-width: 100%;
max-height: none;
width: auto;
height: auto;
border-radius: 10px;
background: white;
padding: 10px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
display: block;
}
.qr-glitter-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
overflow: visible;
z-index: 10;
}
.qr-glitter {
position: absolute;
width: 6px;
height: 6px;
border-radius: 50%;
pointer-events: none;
opacity: 0;
}
@keyframes qrGlitter1 {
0% {
opacity: 0;
transform: translateY(0) translateX(0) scale(0);
}
50% {
opacity: 1;
transform: translateY(-30px) translateX(15px) scale(1);
}
100% {
opacity: 0;
transform: translateY(-60px) translateX(30px) scale(0);
}
}
@keyframes qrGlitter2 {
0% {
opacity: 0;
transform: translateY(0) translateX(0) scale(0) rotate(0deg);
}
50% {
opacity: 1;
transform: translateY(-25px) translateX(-20px) scale(1.3) rotate(180deg);
}
100% {
opacity: 0;
transform: translateY(-50px) translateX(-40px) scale(0) rotate(360deg);
}
}
@keyframes qrGlitter3 {
0% {
opacity: 0;
transform: translateY(0) translateX(0) scale(0);
}
30% {
opacity: 1;
transform: translateY(-15px) translateX(8px) scale(0.9);
}
70% {
opacity: 1;
transform: translateY(-35px) translateX(-8px) scale(1.2);
}
100% {
opacity: 0;
transform: translateY(-55px) translateX(-15px) scale(0);
}
}
.qr-glitter.anim1 {
animation: qrGlitter1 2s ease-out;
}
.qr-glitter.anim2 {
animation: qrGlitter2 2.2s ease-out;
}
.qr-glitter.anim3 {
animation: qrGlitter3 1.8s ease-out;
}
.footer {
margin-top: 20px;
color: #666;
font-size: 14px;
}
.footer-credits {
margin-top: 10px;
font-size: 12px;
color: #999;
}
.footer-credits a {
color: #667;
text-decoration: none;
}
.source-link {
display: inline-flex;
align-items: center;
gap: 3px;
}
@media (max-width: 480px) {
.container {
padding: 25px;
margin: 10px;
}
h1 {
font-size: 2em;
margin-bottom: 20px;
}
.input-group {
flex-direction: column;
}
#text {
min-width: 100%;
}
}