[HTML, CSS, JS] Como fiz um efeito para "enxergar" através de uma <div> | Efeito lanterna

Sei que o título é estranho, mas vamos lá...

Decidi começar estudar programação recentemente e para treinar eu penso em algumas tarefas, efeitos ou qualquer coisa do tipo e tento "construir" efetivamente essa minha "mini ideia".

Ideia

Sobrepor duas "camadas" e conseguir enxergar a camada que está por baixo, porém, somente na região onde o mouse estiver.

Código

HTML

<div id="fundo">
    FUNDO
</div>
<div id="frente">
    FRENTE
</div> 

CSS

*{
   margin: 0;
   padding: 0;
   font: bold 80pt arial;
}

div{    
    display: flex;    
    justify-content: center;    
    align-items: center;    
    height: 100vh;    
    width: 100vw;    
    cursor: none;    
} 

#fundo{    
    background-color: rgb(207, 207, 50);    
    color: rgb(29, 29, 29);    
}   

#frente{    
    background-color: rgb(29, 29, 29);    
    color: white;    
    position: absolute;    
    top: 0;    
    left: 0;    
}

JavaScript

let  frente  =  document.getElementById("frente")

document.addEventListener('mousemove', (event) =>{
    let  x  =  event.pageX  +  "px";
    let  y  =  event.pageY  +  "px";
    frente.style.webkitMaskImage  =  `radial-gradient(circle at ${x}  ${y}, transparent 100px, black 0%)`;
})

Resultado

efeito-vazado.gif

Efeito lanterna

Vendo o resultado tive a sensação de estar olhando para um feixe de luz de uma lanterna, então fiz o seguinte exemplo: efeito-lanterna.gif Neste exemplo a diferença foi que deixei a camada da frente com o alfa em 0,95 (rgba(0, 0, 0, 0.95)) e o radial gradient um pouco mais "esfumaçado" com branco.

Conclusão

Sei que talvez seja algo muito básico para alguns ou então que exista algo pronto para executar isso, mas é muito gratificante pegar algo que "saiu" da tua cabeça e conseguir executar.

E aí, sabe outra forma de conseguir o mesmo resultado ?

Abraço!!

Dá pra fazer um joguinho com isso. Coloca um contador de tempo Coloca um objeto pequeno, aleatoreamente no espaço para ser clicado. Pronto!

Ficou top cara, um código simples que pose ser implementado em alguns projetos. Basta a criatividade

Muito interessante. Será que daria para fazer o mesmo efeito utilizando, ao inves de dois elementos diferentes, uma div e aplicando ao seu after e before? Talvez deixe o cod mais complexo, mas tudo estaria em só um lugar

Muito bom, pensei em muitas utilidades, parabéns!

Parabéns mano, ficou muito legal, já me vejo usando nos próximos projetos web.

Caramba genial, dá pra adaptar pra outras coisas

Geralmente as criações mais simples são as mais espetaculares. Adorei esse efeito, e vou favoritar pra quando precisar de algo diferente e criativo pra usar 🤩

Cara, ficou show de bola. Parabéns.

Não liga para o comentário maldoso que colocaram. A pessoa que fez isso é um coitado que não sabe reconhecer o trabalho dos outros.

Ficou muito bom mesmo. Você vai longe!

Caramba que top isso, parabens!! Já vou salvar aqui pra usar em projetos futuro.

muito maneiro, ficou excelente!

Sensacional. Parabéns!

Código bem simples, muito bom. Parabéns

Muito interessante!

Parabéns!!! ficou show !!!

Isso ficou uma merdakkkkkk pra quem fazer isso coloca max-blend: exclusion

Cara na real para que um comentário desses? acredito que nossa comunidade não concorde com esse tipo de comportamento, se você não gostou sugira uma forma melhor. Acho que a intencao do filipedeschamps ao criar essa comunidade não era fomentar comentários dessa forma, seja respeitoso com as pessoas. Lembre-se que tem pessoas de todos os niveis, conhecimento e culturas aqui nesse pedacinho de internet portanto se não for para ajudar recomendo que você vá para outro lugar e até sugiro uma outra rede social aquela do pássaro que esse comportamento inclusive é premiado.
Oshe mas que esquisitão esse comentário ._. Eu achei bem legal a ideia, simples e direta. Seria mais construtivo você mostrar um exemplo feito por vc usando esse max-blend:exclusion. Mas será se vc consegue mesmo?
Soou comentário de recalque, pois ao não se mostrar capaz de fazer ou pensar essa solução e aprender com ela, é muito melhor pro ego simplesmente partir pra ofensa. Esse seu comentário diz muito ao seu respeito do que você imagina