Tailwind Modal: Tailwind CSS를 사용하여 React Modal을 만드는 방법입니다.
웹 사이트 제작자가 일반적으로 중요하다고 생각하는 특정 정보에 사용자가 집중하게 함으로써 양질의 사용자 경험을 제공하는 그들의 존재로 인해 모달을 보거나 경험했을 가능성이 매우 높습니다.
반응 모달이란?
React Modal은 전체 웹 페이지에 대한 정보를 표시하는 웹 요소인 구성 요소로, 웹 페이지를 비활성화합니다. 모달이 표시되면 일반적으로 오버레이를 제외한 웹 페이지의 나머지 부분에 어두운 오버레이를 배치합니다. 이를 통해 모달이 전달하는 정보에 집중하거나 작업 수행에 집중하거나 모달이 수행하는 상호 작용을 완료할 수 있습니다. 요청합니다.
내용의 테이블
전제 조건
이 문서를 최대한 활용하려면 다음이 있어야 합니다.
Tailwind CSS란?
TailwindCSS은 자신을 유틸리티 우선 CSS 프레임워크라고 합니다. 이 프레임워크는 특수 클래스를 통해 개발자가 사용할 수 있는 맞춤형 스타일을 생성하여 웹 응용 프로그램을 만드는 개발 프로세스를 쉽게 할 수 있도록 설계되었으며 이후 요소에 추가됩니다. .
React 프로젝트 만들기
새 반응 프로젝트를 생성하려면 터미널로 이동하여 원하는 디렉토리로 이동한 다음 이 명령
npx create-react-app project-name
을 실행합니다.cd Documents
npx create-react-app project-name
Tailwind CSS 설치
프로젝트에서 tailwindcss를 사용할 수 있게 하려면 이전에 만든 프로젝트로 cd합니다.
cd project-name
다음 실행
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
템플릿 경로 구성
경로를 구성하려면
tailwind.config.js
로 이동하고 module.exports
개체를 편집하고 content
배열의 템플릿 파일에 대한 경로를 추가합니다.module.exports = {
content: ['./src/**/*.{js,jsx,ts,tsx}'],
theme: {
extend: {},
},
plugins: [],
};
다음으로 Tailwind 지시문을 CSS에 추가합니다.
./src/index.css
파일에 tailwind 지시문을 추가합니다.@tailwind base;
@tailwind components;
@tailwind utilities;
이 후 우리는 프로젝트를 실행합니다
npm run start
http://localhost:3000/
로 이동하면 브라우저에서 이 작업을 수행해야 합니다.Tailwind 모달: Tailwind CSS 모달 만들기
문서의 템플릿을 사용하여 tailwindcss 모달을 만들려면 반응 라이브러리를 설치해야 합니다. 이를 위해 다음 명령을 실행합니다.
// npm
npm install @headlessui/react
// Yarn
yarn add @headlessui/react
간단한 모델
/* This example requires Tailwind CSS v2.0+ */
import { Fragment, useRef, useState } from 'react';
import { Dialog, Transition } from '@headlessui/react';
import { ExclamationIcon } from '@heroicons/react/outline';
export default function Example() {
const [open, setOpen] = useState(true);
const cancelButtonRef = useRef(null);
return (
<Transition.Root show={open} as={Fragment}>
<Dialog
as="div"
className="fixed z-10 inset-0 overflow-y-auto"
initialFocus={cancelButtonRef}
onClose={setOpen}
>
<div
className="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block
sm:p-0"
>
<Transition.Child
as={Fragment}
enter="ease-out duration-300"
enterFrom="opacity-0"
enterTo="opacity-100"
leave="ease-in duration-200"
leaveFrom="opacity-100"
leaveTo="opacity-0"
>
<Dialog.Overlay className="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" />
</Transition.Child>
{/* This element is to trick the browser into centering the modal contents. */}
<span className="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true">
​
</span>
<Transition.Child
as={Fragment}
enter="ease-out duration-300"
enterFrom="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
enterTo="opacity-100 translate-y-0 sm:scale-100"
leave="ease-in duration-200"
leaveFrom="opacity-100 translate-y-0 sm:scale-100"
leaveTo="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
>
<div
className="inline-block align-bottom bg-white rounded-lg
text-left
overflow-hidden shadow-xl
transform transition-all
sm:my-8 sm:align-middle sm:max-w-lg sm:w-full"
>
<div className="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
<div className="sm:flex sm:items-start">
<div
className="mx-auto flex-shrink-0 flex items-center
justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0
sm:h-10 sm:w-10"
>
<ExclamationIcon className="h-6 w-6 text-red-600" aria-hidden="true" />
</div>
<div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
<Dialog.Title as="h3" className="text-lg leading-6 font-medium text-gray-900">
Deactivate account
</Dialog.Title>
<div className="mt-2">
<p className="text-sm text-gray-500">
Are you sure you want to deactivate your account? All of your data will be
permanently removed. This action cannot be undone.
</p>
</div>
</div>
</div>
</div>
<div className="bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse">
<button
type="button"
className="w-full inline-flex justify-center rounded-md
border border-transparent shadow-sm px-4 py-2 bg-red-600
text-base font-medium text-white hover:bg-red-700
focus:outline-none focus:ring-2 focus:ring-offset-2
focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm"
onClick={() => setOpen(false)}
>
Deactivate
</button>
<button
type="button"
className="mt-3 w-full inline-flex justify-center
rounded-md border border-gray-300 shadow-sm px-4 py-2
bg-white text-base font-medium text-gray-700
hover:bg-gray-50 focus:outline-none focus:ring-2
focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0
sm:ml-3 sm:w-auto sm:text-sm"
onClick={() => setOpen(false)}
ref={cancelButtonRef}
>
Cancel
</button>
</div>
</div>
</Transition.Child>
</div>
</Dialog>
</Transition.Root>
);
}
위의 코드 조각에서 우리는 반응에서 얻은
useState
후크를 사용하여 모달이 열리는지 여부를 제어하는 데 사용할 상태 조각을 만듭니다. 우리는 Transition
구성 요소를 사용하여 모달 요소 안팎으로 애니메이션을 적용하고 Dialog
구성 요소를 사용하여 사용자와 통신합니다. 이 구성 요소는 사용자에게 전달하려는 정보를 보유합니다.tailwind css로 다른 템플릿을 사용하려면 프로 버전을 가져와야 합니다here.
결론
이 기사에서는 tailwind css 설치와 이를 설치해야 하는 이유에 대해 논의했습니다. 다음으로 우리는 UI 라이브러리로 반응 부트스트랩 모달을 만들었습니다.
Reference
이 문제에 관하여(Tailwind Modal: Tailwind CSS를 사용하여 React Modal을 만드는 방법입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/devwares/tailwind-modal-how-to-create-a-react-modal-using-tailwind-css-123f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)