WEBLEB
Inicio
Editora de código
Iniciar sesión
Pro
Español
English
Français
Español
Português
Deutsch
Italiano
हिंदी
Interruptor de Bombilla
3528
loader7
Abrir en el editor
Publica tu código
Recomendado
30 August 2024
Animaciones impulsadas por desplazamiento Detección de desplazamiento
26 October 2024
Bot de planes (página de inicio)
28 December 2024
Un código de staticdata256
HTML
Copy
Light Bulb Switch
CSS
Copy
body { height: 100vh; display: flex; align-items: center; justify-content: center; background-color: #514878; overflow: hidden; } .switch { position: relative; } .switch input { height: 100%; width: 100%; position: absolute; left: 0; top: 0; opacity: 0; z-index: 100; cursor: pointer; } .switch label { height: 110px; width: 220px; background-color: #39315a; border-radius: 100px; display: block; box-shadow: inset 0 0 20px rgba(0,0,0,0.2), inset 0 0 5px -2px rgba(0,0,0,0.4); } .switch label .bulb { height: 90px; width: 90px; background-color: #4a426b; border-radius: 50%; position: relative; top: 10px; left: 10px; display: block; transition: 0.7s; box-shadow: inset 0 0 1px 3px #4a426b, inset 0 0 6px 8px #423963, 0 20px 30px -10px rgba(0,0,0,0.4); } .switch label .bulb .bulb-center { position: absolute; display: block; height: 36px; width: 36px; background-color: #5a527b; border-radius: 50%; top: 50%; left: 50%; transition: 0.7s; transform: translate(-50%, -50%); box-shadow: inset 0 0 0 4px #635a84; } .switch label .bulb .bulb-center:after { content: ""; display: block; height: 14px; width: 14px; background-color: #7b7394; border-radius: 50%; position: absolute; transition: 0.7s; top: 50%; left: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 2px 4px #524a73; } .switch label .bulb .filament-1, .switch label .bulb .filament-2 { position: absolute; display: block; height: 35px; width: 35px; border-radius: 50%; top: 50%; left: 50%; overflow: hidden; transform: translate(-50%, -50%) rotate(-45deg); } .switch label .bulb .filament-1:after, .switch label .bulb .filament-2:after, .switch label .bulb .filament-1:before, .switch label .bulb .filament-2:before { content: ""; display: block; height: 6px; width: 17px; border-radius: 50%; border: 2px solid #4a426b; position: absolute; transition: 0.7s; top: -4px; left: -2px; transform: rotate(-10deg); } .switch label .bulb .filament-1:before, .switch label .bulb .filament-2:before { left: 15px; transform: rotate(10deg); } .switch label .bulb .filament-2 { transform: translate(-50%, -50%) rotate(45deg) !important; } .reflections { height: 100%; width: 100%; display: block; border-radius: 50%; overflow: hidden; position: absolute; z-index: 90; perspective: 70px; } .reflections span { height: 80px; width: 80px; border-radius: 50%; background-image: linear-gradient(-135deg, transparent 10%, rgba(255,255,255,0.3)); position: absolute; left: -40px; bottom: -45px; } .reflections span:after { content: ""; display: block; height: 35px; width: 20px; position: absolute; top: -36px; right: -40px; border-radius: 50%; box-shadow: 4px -2px 0 -3px rgba(255,255,255,0.4); filter: blur(1px); transform: rotate(-10deg); } .reflections:after { content: ""; display: block; height: 80px; width: 50px; background-image: linear-gradient(80deg, rgba(255,255,255,0.05) 45%, rgba(255,255,255,0.5)); border-radius: 10% 20% 50% 30%/30% 60% 30% 40%; position: absolute; transform-style: preserve-3d; transform: rotateX(-25deg) rotate(-35deg) skewx(-15deg) translate(10px, -20px); top: -8px; left: -5px; } .reflections:before { content: ""; display: block; position: absolute; height: 10px; width: 30px; background-image: linear-gradient(to right, transparent, rgba(255,255,255,0.15)); bottom: 10px; right: 0px; transform: rotate(45deg); } .sparks .spark1 { display: block; height: 1px; width: 1px; background-color: #d1b82b; position: absolute; right: -5px; border-radius: 50%; bottom: 23px; transition: 0.4s; opacity: 0; } .sparks .spark2 { display: block; height: 3px; width: 3px; background-color: #d1b82b; position: absolute; right: 20px; border-radius: 50%; bottom: 80px; transition: 0.4s; opacity: 0; } .sparks .spark3 { display: block; height: 3px; width: 3px; background-color: #d1b82b; position: absolute; left: 20px; border-radius: 50%; bottom: 80px; transition: 0.4s; opacity: 0; } .sparks .spark4 { display: block; height: 3px; width: 3px; background-color: #d1b82b; position: absolute; left: 20px; border-radius: 50%; bottom: 20px; transition: 0.4s; opacity: 0; } .switch input:checked ~ label .bulb { left: 120px; background-color: #a7694a; box-shadow: inset 0 0 1px 3px #a56758, inset 0 0 6px 8px #6b454f, 0 20px 30px -10px rgba(0,0,0,0.4), 0 0 30px 50px rgba(253,184,67,0.1); } .switch input:checked ~ label .bulb > .bulb-center { background-color: #feed6b; box-shadow: inset 0 0 0 4px #fdec6a, 0 0 12px 10px #bca83c, 0 0 20px 14px #a1664a; } .switch input:checked ~ label .bulb > .bulb-center:after { background-color: #fef401; box-shadow: 0 0 2px 4px #fdb843; } .switch input:checked ~ label .bulb >.filament-1:before, .switch input:checked ~ label .bulb >.filament-2:before, .switch input:checked ~ label .bulb >.filament-1:after, .switch input:checked ~ label .bulb >.filament-2:after { border-color: #fef4d5; } .switch input:checked ~ label .bulb > .sparks .spark1 { height: 1px; width: 1px; -webkit-animation: spark1 2s ease-in-out; animation: spark1 2s ease-in-out; -webkit-animation-delay: 0.4s; animation-delay: 0.4s; } .switch input:checked ~ label .bulb > .sparks .spark2 { height: 1px; width: 1px; -webkit-animation: spark2 2.4s ease-in-out; animation: spark2 2.4s ease-in-out; -webkit-animation-delay: 0.4s; animation-delay: 0.4s; } .switch input:checked ~ label .bulb > .sparks .spark3 { height: 1px; width: 1px; -webkit-animation: spark3 2s ease-in-out; animation: spark3 2s ease-in-out; -webkit-animation-delay: 0.9s; animation-delay: 0.9s; } .switch input:checked ~ label .bulb > .sparks .spark4 { height: 1px; width: 1px; -webkit-animation: spark4 1.7s ease-in-out; animation: spark4 1.7s ease-in-out; -webkit-animation-delay: 0.9s; animation-delay: 0.9s; } @-webkit-keyframes spark1 { 0% { right: -5px; height: 1px; width: 1px; opacity: 0; } 20% { height: 3px; width: 3px; right: 0px; opacity: 1; } 30% { right: -5px; opacity: 1; height: 3px; width: 3px; } 70% { height: 3px; width: 3px; } 100% { right: -60px; bottom: 40px; opacity: 0; } } @keyframes spark1 { 0% { right: -5px; height: 1px; width: 1px; opacity: 0; } 20% { height: 3px; width: 3px; right: 0px; opacity: 1; } 30% { right: -5px; opacity: 1; height: 3px; width: 3px; } 70% { height: 3px; width: 3px; } 100% { right: -60px; bottom: 40px; opacity: 0; } } @-webkit-keyframes spark2 { 0% { height: 3px; width: 3px; opacity: 0; } 30% { opacity: 1; } 100% { right: -20px; bottom: 100px; opacity: 0; } } @keyframes spark2 { 0% { height: 3px; width: 3px; opacity: 0; } 30% { opacity: 1; } 100% { right: -20px; bottom: 100px; opacity: 0; } } @-webkit-keyframes spark3 { 0% { opacity: 0; } 30% { opacity: 1; height: 2px; width: 2px; } 100% { left: 0px; bottom: 100px; opacity: 0; height: 3px; width: 3px; } } @keyframes spark3 { 0% { opacity: 0; } 30% { opacity: 1; height: 2px; width: 2px; } 100% { left: 0px; bottom: 100px; opacity: 0; height: 3px; width: 3px; } } @-webkit-keyframes spark4 { 0% { opacity: 0; } 30% { opacity: 1; height: 2px; width: 2px; } 100% { left: -20px; bottom: -10px; opacity: 0; height: 3px; width: 3px; } } @keyframes spark4 { 0% { opacity: 0; } 30% { opacity: 1; height: 2px; width: 2px; } 100% { left: -20px; bottom: -10px; opacity: 0; height: 3px; width: 3px; } }
JS
Copy
/* Replace with your JS Code (Leave empty if not needed) */