Flowbite를 사용하여 Tailwind CSS 다크 모드 스위처 빌드
15990 단어 tailwindcssoptutorialwebdev
귀하의 웹 사이트에 어두운 버전을 제공하는 것은 요즘 좋은 기능이라기보다는 기대되는 기능에 가깝습니다. 다행히 Tailwind CSS에는 어두운 모드 기능이 활성화되어 있으며 Flowbite의 구성 요소도 "class"옵션을 사용하여 이를 지원합니다.
JavaScript 및 구성 파일을 사용하여 dark version switcher for Tailwind CSS and Flowbite를 활성화하고 빌드하는 방법을 알아봅니다.
다크 모드를 수동으로 전환
Tailwind CSS 프로젝트 및 Flowbite 구성 요소에 어두운 모드를 활성화하려면
tailwind.config.js
파일 내에 다음 코드를 추가한 다음 dark
요소에 html
클래스를 추가하기만 하면 됩니다.// tailwind.config.js
module.exports = {
darkMode: 'class',
// ...
}
또는 "미디어"옵션을 사용하여 브라우저의 색 구성표 기본 설정에 따라 어둡거나 밝은 테마를 자동으로 설정할 수도 있습니다.
// tailwind.config.js
module.exports = {
darkMode: 'media',
// ...
}
다크 모드 스위처
Tailwind CSS 및 Flowbite용 다크 모드 전환기를 만들려면 일부 JavaScript 코드와 사용자가 기본 설정을 변경하는 데 사용할 수 있는 토글 요소를 추가해야 합니다.
<head>
태그에서 사용자 기본 설정을 확인하여 어두운 모드를 전환합니다.<script>
// On page load or when changing themes, best to add inline in `head` to avoid FOUC
if (localStorage.getItem('color-theme') === 'dark' || (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark')
}
</script>
먼저 이전에 로컬 저장소를 사용하여 테마 색상 기본 설정을 수동으로 설정했는지 확인하고 폴백으로 브라우저 색 구성표 기본 설정에 따라 어둡거나 밝은 모드를 설정합니다.
<button>
요소를 만듭니다.<button id="theme-toggle" type="button" class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5">
<svg id="theme-toggle-dark-icon" class="w-5 h-5 hidden" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"></path></svg>
<svg id="theme-toggle-light-icon" class="w-5 h-5 hidden" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" fill-rule="evenodd" clip-rule="evenodd"></path></svg>
</button>
이 예에서는 현재 색 구성표를 기반으로 내부 아이콘을 변경하는
<button>
구성 요소를 사용했습니다.<button>
요소에서 클릭 이벤트를 처리합니다.var themeToggleDarkIcon = document.getElementById('theme-toggle-dark-icon');
var themeToggleLightIcon = document.getElementById('theme-toggle-light-icon');
// Change the icons inside the button based on previous settings
if (localStorage.getItem('color-theme') === 'dark' || (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
themeToggleLightIcon.classList.remove('hidden');
} else {
themeToggleDarkIcon.classList.remove('hidden');
}
var themeToggleBtn = document.getElementById('theme-toggle');
themeToggleBtn.addEventListener('click', function() {
// toggle icons inside button
themeToggleDarkIcon.classList.toggle('hidden');
themeToggleLightIcon.classList.toggle('hidden');
// if set via local storage previously
if (localStorage.getItem('color-theme')) {
if (localStorage.getItem('color-theme') === 'light') {
document.documentElement.classList.add('dark');
localStorage.setItem('color-theme', 'dark');
} else {
document.documentElement.classList.remove('dark');
localStorage.setItem('color-theme', 'light');
}
// if NOT set via local storage previously
} else {
if (document.documentElement.classList.contains('dark')) {
document.documentElement.classList.remove('dark');
localStorage.setItem('color-theme', 'light');
} else {
document.documentElement.classList.add('dark');
localStorage.setItem('color-theme', 'dark');
}
}
});
이 스크립트는 이전 기본 설정을 기반으로 버튼 내부의 아이콘을 변경하고 로컬 저장소를 사용하여 어두운 모드 기본 설정을 지정하고 기본
dark
태그에서 <html>
클래스를 추가하거나 제거하여 클릭 이벤트도 처리합니다.Flowbite - Tailwind CSS 구성 요소 라이브러리
이 다크 모드 스위처는 Flowbite라는 Tailwind CSS로 구축된 더 큰 오픈 소스 구성 요소 라이브러리의 일부입니다.
공식 Flowbite 문서를 확인하여 이에 대해 자세히 알아볼 수 있습니다Tailwind CSS component library.
Reference
이 문제에 관하여(Flowbite를 사용하여 Tailwind CSS 다크 모드 스위처 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zolidev/bulding-a-talwind-css-dark-mode-switcher-5g9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)