forked from drowl87/hextra_mirror

* chore: migrate PostCSS configuration to v4 * chore: update dependencies in package.json and package-lock.json - Bump versions for autoprefixer, postcss, postcss-cli, prettier, and tailwindcss. - Remove unused dependencies to streamline the project. * chore: add @tailwindcss/postcss and update package-lock.json * fix: update import paths in CSS files for consistency * fix: change prefix from `hx-` to `hx:` * chore: migrate primary color theme variables to CSS * fix: remove unnecessary text decoration property from anchor styles in typography CSS * fix: update CSS styles for improved consistency and clarity across components * chore: clean up package.json and package-lock.json, remove unused dependencies, and update CSS imports for better organization * fix: bulk replace prefix `hx-` with `hx:` * fix: update tailwind css prefix * fix: styling consistent issues - steps counter fix in v4 - removed tailwind.css - update hr border colors - fix button cursor in v4 - fix border colors in various places * fix: update class prefixes for consistency in menu and sidebar components * fix: refine CSS classes and transitions for navbar and sidebar components - Updated hamburger menu styles for improved animation and structure. - Adjusted sidebar transition duration for smoother effects. - Standardized class prefixes for consistency across components. * fix: update border color in hero badge component for improved styling consistency * fix: update tab button cursor style for improved user interaction * chore: recompile css * fix: dark mode color not applied for before / after elements * fix: docs navigation * chore: recompile CSS * chore: update Tailwind CSS and PostCSS dependencies to version 4.0.17, recompile CSS, and add safelist * fix: typo in class name and add back decoration-from-font for typography a tags * fix: update class syntax for Tailwind CSS compatibility in mermaid code block
29 lines
1.1 KiB
JavaScript
29 lines
1.1 KiB
JavaScript
(function () {
|
|
const languageSwitchers = document.querySelectorAll('.language-switcher');
|
|
languageSwitchers.forEach((switcher) => {
|
|
switcher.addEventListener('click', (e) => {
|
|
e.preventDefault();
|
|
switcher.dataset.state = switcher.dataset.state === 'open' ? 'closed' : 'open';
|
|
const optionsElement = switcher.nextElementSibling;
|
|
optionsElement.classList.toggle('hx:hidden');
|
|
|
|
// Calculate position of language options element
|
|
const switcherRect = switcher.getBoundingClientRect();
|
|
const translateY = switcherRect.top - window.innerHeight - 15;
|
|
optionsElement.style.transform = `translate3d(${switcherRect.left}px, ${translateY}px, 0)`;
|
|
optionsElement.style.minWidth = `${Math.max(switcherRect.width, 50)}px`;
|
|
});
|
|
});
|
|
|
|
// Dismiss language switcher when clicking outside
|
|
document.addEventListener('click', (e) => {
|
|
if (e.target.closest('.language-switcher') === null) {
|
|
languageSwitchers.forEach((switcher) => {
|
|
switcher.dataset.state = 'closed';
|
|
const optionsElement = switcher.nextElementSibling;
|
|
optionsElement.classList.add('hx:hidden');
|
|
});
|
|
}
|
|
});
|
|
})();
|