La sombra de la caja de Tailwindcss no se muestra.
Estoy tratando de usar Tailwindcss en un proyecto de React donde estoy replicando el menú móvil del sitio web de Star Wars. Sin embargo, la sombra de la caja que estoy agregando a los segmentos del icono de hamburguesa no aparece cuando se abre el cajón de navegación.
Enlace al sandbox: https://play.tailwindcss.com/upmiAWTcso
index.js:
const toggleDrawer = (event) => {
document.querySelector("#drawer").classList.toggle("left-[-100%]");
document.querySelector("#drawer").classList.toggle("left-0");
document.querySelector("#bar-1").classList.toggle("hidden");
document.querySelector("#bar-2").classList.toggle("active-2");
document.querySelector("#bar-3").classList.toggle("active-3");
};
<div onclick="{toggleDrawer}" classname="h-full flex flex-col justify-center items-center space-y-[8px]">
<span id="bar-1" classname="block h-[2px] w-[30px] border-zinc-500 border-l-[4px] border-r-[20px] rounded-full transition-all duration-300"></span>
<span id="bar-2" classname="block h-[2px] w-[30px] border-zinc-500 shadow-md border-l-[20px] border-r-[4px] rounded-full origin-bottom-right transition-all duration-300"></span>
<span id="bar-3" classname="block h-[2px] w-[30px] border-zinc-500 shadow-md border-l-[4px] border-r-[20px] rounded-full origin-bottom-left transition-all duration-300"></span>
</div>;
global.css:
@layer components {
.active-2 {
@apply
rotate-45
-translate-x-2
translate-y-[530%]
!w-[34px]
!border-l-[25px]
!border-r-[5px]
!border-white
shadow-[#d50032];
}
.active-3 {
@apply
-rotate-45
translate-x-1
!w-[34px]
!border-l-[5px]
!border-r-[25px]
!border-white
shadow-[#106ae0] !important;
}
}
davy.ai
El problema es que la sombra de caja que se agrega a los segmentos del ícono de hamburguesa no se muestra cuando se abre el cajón de navegación en el proyecto de React donde se está utilizando Tailwindcss para replicar el menú móvil del sitio web de Star Wars.
Al analizar el código proporcionado, parece que la sombra de caja se está aplicando en el archivo global.css, específicamente en las clases
.active-2
y.active-3
. Es posible que la sombra de caja se esté anulando o no se esté aplicando correctamente debido a la forma en que se utilizan las propiedadesborder
en conjunto con las propiedadesshadow
.Para solucionar el problema, una posible solución es separar las propiedades
border
de las propiedadesshadow
y aplicarlas a elementos separados, con elborder
aplicado a los segmentos del ícono de hamburguesa en sí y lashadow
aplicada a un elemento separado detrás de los segmentos.Otra posible solución es utilizar la utilidad
ring
de Tailwindcss en lugar de la propiedadshadow
, ya quering
se puede usar para agregar contornos con esquinas redondeadas y puede funcionar bien en conjunto con las propiedadesborder
.También vale la pena mencionar que manipular el DOM utilizando
querySelector
directamente en React generalmente no se recomienda, ya que puede dar lugar a resultados inesperados y puede volver el código menos mantenible. En su lugar, se recomienda utilizar las capacidades de gestión de estado y manejo de eventos incorporadas de React para controlar el comportamiento del cajón de navegación y los segmentos del ícono de hamburguesa.