https://braverokmc79.github.io/tailwind-clipboard-website/
https://github.dev/braverokmc79/tailwind-clipboard-website
1.설정 및 구성
프로젝트 설정:
- 'Simple Tailwind Starter'를 복사해 프로젝트 폴더에 붙여 넣고 npm install 명령어로 패키지를 설치한 후, npm run watch를 실행해 개발 환경을 설정합니다.
이미지 및 SVG 파일 준비:
- 프로젝트에 사용할 이미지를 'project assets' 폴더에서 가져와 root 폴더에 저장합니다.
- SVG 파일은 성능 문제로 직접 HTML 파일에 넣는 것이 좋지만, 이 프로젝트에서는 이미지 태그를 사용해 관리합니다.
Tailwind 설정 수정:
- Tailwind 설정 파일(tailwind.config.js)에서 화면 크기와 색상에 대한 설정을 추가합니다.
- 화면 크기: 480px, 768px, 976px, 1440px의 breakpoint를 설정합니다.
- 색상: Strong Cyan, Light Blue, Dark Grayish Blue, Grayish Blue 등의 커스텀 색상을 추가합니다.
글꼴 설정:
- Google Fonts에서 'Nanum Gothic' 폰트를 가져와 HTML 파일에 추가하고, Tailwind의 fontFamily 속성에 추가합니다.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <!-- 구글 폰트 및 외부 스타일시트 연결 --> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link href="https://fonts.googleapis.com/css2?family=Bai+Jamjuree:wght@400;600&display=swap" rel="stylesheet" /> <link href="https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700;800&display=swap" rel="stylesheet"> <link rel="stylesheet" href="css/style.css" /> <title>클립보드 웹사이트</title> </head> <body> </body> </html>
tailwind.config.js
module.exports = { content: ['./*.html'], theme: { screens: { sm: '480px', md: '768px', lg: '976px', xl: '1440px', }, extend: { colors: { strongCyan: 'hsl(171, 66%, 44%)', lightBlue: 'hsl(233, 100%, 69%)', darkGrayishBlue: 'hsl(210, 10%, 33%)', grayishBlue: 'hsl(201, 11%, 66%)', }, fontFamily: { sans: ['Nanum Gothic', 'sans-serif'], }, }, }, plugins: [], }
1. Hero 섹션
Hero 섹션은 웹사이트의 첫인상을 결정짓는 중요한 부분으로, 로고와 헤딩, 설명, 다운로드 버튼을 포함합니다.
Hero 섹션 HTML 코드:
<section id="hero"> <div class="section-container mb-40 pt-16"> <img src="images/logo.svg" alt="" class="mx-auto my-16" /> <h3 class="font-sans text-4xl font-bold text-darkGrayishBlue mb-8"> 복사한 모든 것의 기록 </h3> <p class="section-content mb-10 text-2xl text-grayishBlue"> 클립보드를 사용하면 복사한 모든 항목을 추적하고 정리할 수 있습니다. 모든 기기에서 클립보드를 즉시 사용할 수 있습니다. </p> <div class="button-container flex flex-col md:flex-row space-y-4 md:space-y-0 md:space-x-4"> <a href="#" class="p-4 px-8 rounded-full shadow-lg bg-strongCyan duration-200 hover:opacity-80"> iOS 다운로드 </a> <a href="#" class="p-4 px-8 rounded-full shadow-lg bg-lightBlue duration-200 hover:opacity-80"> Mac용 다운로드 </a> </div> </div> </section>
설명:
- section-container: Hero 섹션을 감싸는 컨테이너로, Tailwind 클래스를 사용하여 여백 및 패딩을 설정합니다.
- 로고 이미지: mx-auto 클래스를 사용해 가운데 정렬하고, my-16으로 상하 여백을 추가합니다.
- 제목 (H3): font-sans, text-4xl, font-bold, text-darkGrayishBlue, mb-8 클래스를 사용하여 폰트, 크기, 색상, 여백을 설정합니다.
- 설명 (Paragraph): section-content, mb-10, text-2xl, text-grayishBlue 클래스를 사용하여 텍스트 스타일을 설정합니다.
- 버튼: button-container 클래스를 사용하여 버튼을 수직 및 수평으로 정렬하며, Tailwind 클래스 p-4, px-8, rounded-full, shadow-lg, bg-strongCyan, bg-lightBlue, duration-200, hover:opacity-80를 사용해 스타일을 지정합니다.
2. Snippets 섹션
Snippets 섹션 HTML 코드:
<section id="snippets"> <div class="section-container my-20"> <h3 class="text-3xl font-semibold mb-6">스니펫을 추적하세요</h3> <p class="section-content text-xl text-grayishBlue mb-24"> 클립보드는 복사한 모든 항목을 클라우드에 즉시 저장하므로 모든 기기에서 스니펫에 쉽게 접근할 수 있습니다. Mac과 iOS 앱으로 모든 항목을 정리할 수 있습니다. </p> </div> </section>
설명:
- 제목 (H3): text-3xl, font-semibold, mb-6 클래스를 사용하여 제목의 크기, 폰트 두께, 여백을 설정합니다.
- 설명 (Paragraph): section-content, text-xl, text-grayishBlue, mb-24 클래스를 사용하여 설명의 스타일을 설정합니다.
3. Features 섹션
Features 섹션 HTML 코드:
<section id="features"> <div class="section-container my-20"> <div class="relative flex flex-col md:flex-row md:space-x-32"> <div class="md:w-1/2"> <img src="images/image-computer.png" alt="" class="md:absolute top-0 right-0" /> </div> <div class="flex flex-col mt-16 mb-24 space-y-12 text-xl md:w-1/2 md:mb-60 md:text-left md:pl-16"> <div> <h5 class="text-2xl font-semibold mb-4">빠른 검색</h5> <p class="max-w-md text-grayishBlue"> 스니펫을 내용, 카테고리, 웹 주소, 애플리케이션 등으로 쉽게 검색하세요. </p> </div> <div> <h5 class="text-2xl font-semibold mb-4">iCloud 동기화</h5> <p class="max-w-md text-grayishBlue"> 모든 기기에서 스니펫이 즉시 저장되고 동기화됩니다. </p> </div> <div> <h5 class="text-2xl font-semibold mb-4">완전한 기록</h5> <p class="max-w-md text-grayishBlue"> 앱 사용을 시작한 첫 순간부터 모든 스니펫을 검색할 수 있습니다. </p> </div> </div> </div> </div> </section>
설명:
- 이미지: relative, md:absolute, top-0, right-0 클래스를 사용하여 이미지의 위치를 조정합니다.
- 기능 설명: 각 기능 설명 블록에 대해 text-2xl, font-semibold, mb-4 클래스를 사용하여 제목의 스타일을 설정하고, max-w-md, text-grayishBlue 클래스를 사용하여 텍스트 스타일을 설정합니다.
4. Access Anywhere 섹션
Access Anywhere 섹션 HTML 코드:
<section id="access"> <div class="section-container my-20"> <h3 class="text-3xl font-semibold mb-6">어디서나 클립보드에 접근하세요</h3> <p class="section-content text-xl text-grayishBlue mb-24"> 이동 중이든 컴퓨터 앞에 있든, 몇 번의 클릭만으로 모든 스니펫에 접근할 수 있습니다. </p> <img src="images/image-devices.png" alt="" class="mx-auto" /> </div> </section>
설명:
- 제목 (H3): text-3xl, font-semibold, mb-6 클래스를 사용하여 제목의 크기, 폰트 두께, 여백을 설정합니다.
- 설명 (Paragraph): section-content, text-xl, text-grayishBlue, mb-24 클래스를 사용하여 설명의 스타일을 설정합니다.
- 이미지: mx-auto 클래스를 사용하여 이미지를 가운데 정렬합니다.
5. Supercharge 섹션
Supercharge 섹션 HTML 코드:
<section id="supercharge"> <div class="section-container my-20"> <h3 class="text-3xl font-semibold mb-6">작업 흐름을 강화하세요</h3> <p class="section-content text-xl text-grayishBlue mb-16"> 생산성을 높일 수 있는 도구를 제공합니다. </p> <div class="flex flex-col md:flex-row items-center justify-between space-y-16 md:space-y-0 md:space-x-12"> <div class="flex flex-col items-center space-y-5"> <img src="images/icon-blacklist.svg" alt="" class="mb-6" /> <h5 class="text-2xl font-semibold">블랙리스트 생성</h5> <p class="text-grayishBlue max-w-md"> 특정 스니펫을 검색하거나 관리할 수 있습니다. </p> </div> <div class="flex flex-col items-center space-y-5"> <img src="images/icon-text.svg" alt="" class="mb-6" /> <h5 class="text-2xl font-semibold">평문 텍스트 스니펫</h5> <p class="text-grayishBlue max-w-md"> 복사한 텍스트에서 불필요한 서식을 제거하고 일관된 형식을 유지하세요. </p> </div> <div class="flex flex-col items-center space-y-5"> <img src="images/icon-preview.svg" alt="" class="mb-6" /> <h5 class="text-2xl font-semibold">미리보기</h5> <p class="text-grayishBlue max-w-md"> 클립보드의 모든 스니펫을 빠르게 미리 볼 수 있습니다. </p> </div> </div> </div> </section>
설명:
- 기능 설명: 각 기능 설명 블록에 대해 text-2xl, font-semibold, mb-6 클래스를 사용하여 제목의 스타일을 설정하고, text-grayishBlue, max-w-md 클래스를 사용하여 텍스트 스타일을 설정합니다.
- 아이콘 이미지: mb-6 클래스를 사용하여 여백을 설정합니다.
Bottom CTA (Call-to-Action) 섹션
이 섹션은 iOS 및 Mac 앱 다운로드 링크를 제공하는 부분입니다. 간단한 제목과 설명 문구, 그리고 두 개의 버튼으로 구성됩니다.
개발 과정:
섹션 컨테이너 설정:
<section id="bottom"> <div class="section-container my-20">
section-container 클래스는 이 프로젝트 전반에 걸쳐 일관된 스타일을 유지하도록 설정되었습니다.
헤딩 및 설명 추가:
<h3>iOS 및 Mac용 클립보드</h3> <p class="section-content mb-10 text-xl"> 앱스토어에서 무료로 제공됩니다. Mac 또는 iOS용으로 다운로드하고 iCloud와 동기화하여 사용을 시작하세요. </p>
section-container 클래스는 이 프로젝트 전반에 걸쳐 일관된 스타일을 유지하도록 설정되었습니다.
헤딩 및 설명 추가:
<h3>iOS 및 Mac용 클립보드</h3> <p class="section-content mb-10 text-xl"> 앱스토어에서 무료로 제공됩니다. Mac 또는 iOS용으로 다운로드하고 iCloud와 동기화하여 사용을 시작하세요. </p>
- section-content: 텍스트에 일관된 스타일을 적용.
- mb-10: 하단에 여백을 추가하여 텍스트와 버튼 간 간격을 조정.
버튼 추가:
<div class="button-container"> <a href="#" class="p-4 px-8 rounded-full shadow-lg bg-strongCyan duration-200 hover:opacity-80">iOS 다운로드</a> <a href="#" class="p-4 px-8 rounded-full shadow-lg bg-lightBlue duration-200 hover:opacity-80">Mac용 다운로드</a> </div>
3. Footer 섹션
푸터는 로고, 메뉴, 그리고 소셜 아이콘으로 구성된 최하단 섹션입니다. 반응형 디자인을 통해 작은 화면에서는 세로로, 큰 화면에서는 가로로 정렬됩니다.
개발 과정:
푸터 컨테이너 설정:
<footer class="bg-gray-50"> <div class="section-container"> <div class="flex flex-col items-center justify-between md:flex-row">
- 푸터는 bg-gray-50 배경 색상을 사용해 구분되며, Flexbox를 통해 아이템들이 정렬됩니다.
로고 및 메뉴 추가:
<img src="images/logo.svg" alt="" class="scale-50" /> <div class="flex flex-col space-y-4 text-center md:text-left"> <div><a href="#" class="hover:text-strongCyan">FAQ</a></div> <div><a href="#" class="hover:text-strongCyan">연락처</a></div> </div>
- 메뉴는 FAQ, 연락처 등으로 구성되고, hover 시 글자 색상이 변하는 효과를 추가했습니다.
소셜 아이콘 추가:
<div class="flex justify-between w-32 py-1"> <a href="#"><img src="images/icon-facebook.svg" alt="" /></a> <a href="#"><img src="images/icon-twitter.svg" alt="" /></a> <a href="#"><img src="images/icon-instagram.svg" alt="" /></a> </div>
각 아이콘에 hover 효과를 적용해 색상이 변경되도록 했습니다.
전체
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <!-- 구글 폰트 및 외부 스타일시트 연결 --> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link href="https://fonts.googleapis.com/css2?family=Bai+Jamjuree:wght@400;600&display=swap" rel="stylesheet" /> <link href="https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700;800&display=swap" rel="stylesheet"> <link rel="stylesheet" href="css/style.css" /> <title>Clipboard Website</title> </head> <body> <!-- Hero 섹션: 로고, 헤딩, 설명, iOS/Mac 다운로드 버튼 --> <section id="hero"> <div class="section-container mb-40 pt-16"> <img src="images/logo.svg" alt="" class="mx-auto my-16" /> <h3 class="font-sans">복사한 모든 것의 기록</h3> <p class="section-content mb-10 text-2xl"> 클립보드를 사용하면 복사한 모든 항목을 추적하고 정리할 수 있습니다. 모든 기기에서 클립보드를 즉시 사용할 수 있습니다. </p> <div class="button-container"> <a href="#" class="p-4 px-8 rounded-full shadow-lg bg-strongCyan duration-200 hover:opacity-80" > iOS 다운로드 </a> <a href="#" class="p-4 px-8 rounded-full shadow-lg bg-lightBlue duration-200 hover:opacity-80" > Mac용 다운로드 </a> </div> </div> </section> <!-- Snippets 섹션: 클립보드 기능 설명 --> <section id="snippets"> <div class="section-container my-20"> <h3>스니펫을 추적하세요</h3> <p class="section-content mb-24 text-xl"> 클립보드는 복사한 모든 항목을 클라우드에 즉시 저장하므로 모든 기기에서 스니펫에 쉽게 접근할 수 있습니다. Mac과 iOS 앱으로 모든 항목을 정리할 수 있습니다. </p> </div> </section> <!-- Features 섹션: 주요 기능 3가지 소개 --> <section id="features"> <div class="section-container my-20"> <div class="relative flex flex-col md:flex-row md:space-x-32"> <div class="md:w-1/2"> <img src="images/image-computer.png" alt="" class="md:absolute top-0 right-[50%]" /> </div> <div class="flex flex-col mt-16 mb-24 space-y-12 text-xl md:w-1/2 md:mb-60 md:text-left md:pl-16" > <div> <h5>빠른 검색</h5> <p class="max-w-md text-grayishBlue"> 스니펫을 내용, 카테고리, 웹 주소, 애플리케이션 등으로 쉽게 검색하세요. </p> </div> <div> <h5>iCloud 동기화</h5> <p class="max-w-md text-grayishBlue"> 모든 기기에서 스니펫이 즉시 저장되고 동기화됩니다. </p> </div> <div> <h5>완전한 기록</h5> <p class="max-w-md text-grayishBlue"> 앱 사용을 시작한 첫 순간부터 모든 스니펫을 검색할 수 있습니다. </p> </div> </div> </div> </div> </section> <!-- Access Anywhere 섹션: 어디서든지 클립보드 접근 가능 --> <section id="access"> <div class="section-container my-20"> <h3>어디서나 클립보드에 접근하세요</h3> <p class="section-content mb-24 text-xl"> 이동 중이든 컴퓨터 앞에 있든, 몇 번의 클릭만으로 모든 스니펫에 접근할 수 있습니다. </p> <img src="images/image-devices.png" alt="" class="mx-auto" /> </div> </section> <!-- Supercharge 섹션: 생산성 향상 도구 소개 --> <section id="supercharge"> <div class="section-container my-20"> <h3>작업 흐름을 강화하세요</h3> <p class="section-content mb-16 text-xl"> 생산성을 높일 수 있는 도구를 제공합니다. </p> <div class="flex flex-col items-center justify-between space-y-16 md:flex-row md:space-y-0 md:space-x-12"> <div class="flex flex-col items-center space-y-5"> <img src="images/icon-blacklist.svg" alt="" class="mb-6" /> <h5>블랙리스트 생성</h5> <p class="max-w-md text-grayishBlue"> 특정 스니펫을 검색하거나 관리할 수 있습니다. </p> </div> <div class="flex flex-col items-center space-y-5"> <img src="images/icon-text.svg" alt="" class="mb-6" /> <h5>평문 텍스트 스니펫</h5> <p class="max-w-md text-grayishBlue"> 복사한 텍스트에서 불필요한 서식을 제거하고 일관된 형식을 유지하세요. </p> </div> <div class="flex flex-col items-center space-y-5"> <img src="images/icon-preview.svg" alt="" class="mb-6" /> <h5>미리보기</h5> <p class="max-w-md text-grayishBlue"> 클립보드의 모든 스니펫을 빠르게 미리 볼 수 있습니다. </p> </div> </div> </div> </section> <!-- References 섹션: 협력사 로고 --> <section id="references"> <div class="flex flex-col items-center justify-between max-w-6xl px-10 mx-auto space-y-16 my-44 md:flex-row md:space-y-0" > <img src="images/logo-google.png" alt="" /> <img src="images/logo-ibm.png" alt="" /> <img src="images/logo-microsoft.png" alt="" /> <img src="images/logo-hp.png" alt="" /> <img src="images/logo-vector-graphics.png" alt="" /> </div> </section> <!-- Bottom CTA 섹션: 다운로드 링크 제공 --> <section id="bottom"> <div class="section-container my-20"> <h3>iOS 및 Mac용 클립보드</h3> <p class="section-content mb-10 text-xl"> 앱스토어에서 무료로 제공됩니다. Mac 또는 iOS용으로 다운로드하고 iCloud와 동기화하여 사용을 시작하세요. </p> <div class="button-container"> <a href="#" class="p-4 px-8 rounded-full shadow-lg bg-strongCyan duration-200 hover:opacity-80" > iOS 다운로드 </a> <a href="#" class="p-4 px-8 rounded-full shadow-lg bg-lightBlue duration-200 hover:opacity-80" > Mac용 다운로드 </a> </div> </div> </section> <!-- Footer 섹션: 푸터에 메뉴와 소셜 아이콘 포함 --> <footer class="bg-gray-50"> <div class="section-container"> <div class="flex flex-col items-center justify-between md:flex-row"> <img src="images/logo.svg" alt="" class="scale-50" /> <div class="flex flex-col items-center justify-between flex-1 mb-10 space-y-6 md:flex-row md:mb-0 md:space-y-0 text-grayishBlue" > <div class="flex flex-col space-y-4 md:flex-row md:ml-24 md:space-x-24 md:space-y-0" > <div class="flex flex-col space-y-4 text-center md:text-left"> <div><a href="#" class="hover:text-strongCyan">FAQ</a></div> <div><a href="#" class="hover:text-strongCyan">연락처</a></div> </div> <div class="flex flex-col space-y-4 text-center md:text-left"> <div><a href="#" class="hover:text-strongCyan">개인정보 보호</a></div> <div><a href="#" class="hover:text-strongCyan">이용 약관</a></div> </div> </div> <div class="flex justify-between w-32 py-1"> <a href="#"><img src="images/icon-facebook.svg" alt="" /></a> <a href="#"><img src="images/icon-twitter.svg" alt="" /></a> <a href="#"><img src="images/icon-instagram.svg" alt="" /></a> </div> </div> </div> </div> </footer> </body> </html>
style.css
/* ! tailwindcss v3.0.24 | MIT License | https://tailwindcss.com */ /* 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) */ *, ::before, ::after { box-sizing: border-box; /* 1 */ border-width: 0; /* 2 */ border-style: solid; /* 2 */ border-color: #e5e7eb; /* 2 */ } ::before, ::after { --tw-content: ''; } /* 1. Use a consistent sensible line-height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. 3. Use a more readable tab size. 4. Use the user's configured `sans` font-family by default. */ html { line-height: 1.5; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -moz-tab-size: 4; /* 3 */ -o-tab-size: 4; tab-size: 4; /* 3 */ font-family: Nanum Gothic ,Bai Jamjuree, sans-serif; /* 4 */ } /* 1. Remove the margin in all browsers. 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. */ body { margin: 0; /* 1 */ line-height: inherit; /* 2 */ } /* 1. Add the correct height in Firefox. 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) 3. Ensure horizontal rules are visible by default. */ hr { height: 0; /* 1 */ color: inherit; /* 2 */ border-top-width: 1px; /* 3 */ } /* Add the correct text decoration in Chrome, Edge, and Safari. */ abbr:where([title]) { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; } /* Remove the default font size and weight for headings. */ h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; } /* Reset links to optimize for opt-in styling instead of opt-out. */ a { color: inherit; text-decoration: inherit; } /* Add the correct font weight in Edge and Safari. */ b, strong { font-weight: bolder; } /* 1. Use the user's configured `mono` font family by default. 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ font-size: 1em; /* 2 */ } /* Add the correct font size in all browsers. */ small { font-size: 80%; } /* Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) 3. Remove gaps between table borders by default. */ table { text-indent: 0; /* 1 */ border-color: inherit; /* 2 */ border-collapse: collapse; /* 3 */ } /* 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. 3. Remove default padding in all browsers. */ button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: inherit; /* 1 */ color: inherit; /* 1 */ margin: 0; /* 2 */ padding: 0; /* 3 */ } /* Remove the inheritance of text transform in Edge and Firefox. */ button, select { text-transform: none; } /* 1. Correct the inability to style clickable types in iOS and Safari. 2. Remove default button styles. */ button, [type='button'], [type='reset'], [type='submit'] { -webkit-appearance: button; /* 1 */ background-color: transparent; /* 2 */ background-image: none; /* 2 */ } /* Use the modern Firefox focus style for all focusable elements. */ :-moz-focusring { outline: auto; } /* Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) */ :-moz-ui-invalid { box-shadow: none; } /* Add the correct vertical alignment in Chrome and Firefox. */ progress { vertical-align: baseline; } /* Correct the cursor style of increment and decrement buttons in Safari. */ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; } /* 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ [type='search'] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } /* Remove the inner padding in Chrome and Safari on macOS. */ ::-webkit-search-decoration { -webkit-appearance: none; } /* 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } /* Add the correct display in Chrome and Safari. */ summary { display: list-item; } /* Removes the default spacing and border for appropriate elements. */ blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; } fieldset { margin: 0; padding: 0; } legend { padding: 0; } ol, ul, menu { list-style: none; margin: 0; padding: 0; } /* Prevent resizing textareas horizontally by default. */ textarea { resize: vertical; } /* 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) 2. Set the default placeholder color to the user's configured gray 400 color. */ input::-moz-placeholder, textarea::-moz-placeholder { opacity: 1; /* 1 */ color: #9ca3af; /* 2 */ } input:-ms-input-placeholder, textarea:-ms-input-placeholder { opacity: 1; /* 1 */ color: #9ca3af; /* 2 */ } input::placeholder, textarea::placeholder { opacity: 1; /* 1 */ color: #9ca3af; /* 2 */ } /* Set the default cursor for buttons. */ button, [role="button"] { cursor: pointer; } /* Make sure disabled buttons don't get the pointer cursor. */ :disabled { cursor: default; } /* 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) This can trigger a poorly considered lint error in some tools but is included by design. */ img, svg, video, canvas, audio, iframe, embed, object { display: block; /* 1 */ vertical-align: middle; /* 2 */ } /* Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) */ img, video { max-width: 100%; height: auto; } /* Ensure the default browser behavior of the `hidden` attribute. */ [hidden] { display: none; } h3 { margin-bottom: 2rem; font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; --tw-text-opacity: 1; color: hsl(210 10% 33% / var(--tw-text-opacity)); } @media (min-width: 768px) { h3 { font-size: 3rem; line-height: 1; } } h5 { margin-bottom: 0.5rem; font-size: 1.5rem; line-height: 2rem; font-weight: 700; --tw-text-opacity: 1; color: hsl(210 10% 33% / var(--tw-text-opacity)); } *, ::before, ::after { --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; } .relative { position: relative; } .top-0 { top: 0px; } .right-\[50\%\] { right: 50%; } .mx-auto { margin-left: auto; margin-right: auto; } .my-16 { margin-top: 4rem; margin-bottom: 4rem; } .my-20 { margin-top: 5rem; margin-bottom: 5rem; } .my-44 { margin-top: 11rem; margin-bottom: 11rem; } .mb-40 { margin-bottom: 10rem; } .mb-10 { margin-bottom: 2.5rem; } .mb-24 { margin-bottom: 6rem; } .mt-16 { margin-top: 4rem; } .mb-16 { margin-bottom: 4rem; } .mb-6 { margin-bottom: 1.5rem; } .flex { display: flex; } .w-32 { width: 8rem; } .max-w-md { max-width: 28rem; } .max-w-6xl { max-width: 72rem; } .flex-1 { flex: 1 1 0%; } .scale-50 { --tw-scale-x: .5; --tw-scale-y: .5; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .flex-col { flex-direction: column; } .items-center { align-items: center; } .justify-between { justify-content: space-between; } .space-y-12 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(3rem * var(--tw-space-y-reverse)); } .space-y-16 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(4rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(4rem * var(--tw-space-y-reverse)); } .space-y-5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); } .space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); } .space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1rem * var(--tw-space-y-reverse)); } .rounded-full { border-radius: 9999px; } .bg-strongCyan { --tw-bg-opacity: 1; background-color: hsl(171 66% 44% / var(--tw-bg-opacity)); } .bg-lightBlue { --tw-bg-opacity: 1; background-color: hsl(233 100% 69% / var(--tw-bg-opacity)); } .bg-gray-50 { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); } .p-4 { padding: 1rem; } .px-8 { padding-left: 2rem; padding-right: 2rem; } .px-10 { padding-left: 2.5rem; padding-right: 2.5rem; } .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; } .pt-16 { padding-top: 4rem; } .text-center { text-align: center; } .text-2xl { font-size: 1.5rem; line-height: 2rem; } .text-xl { font-size: 1.25rem; line-height: 1.75rem; } .text-grayishBlue { --tw-text-opacity: 1; color: hsl(201 11% 66% / var(--tw-text-opacity)); } .shadow-lg { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .duration-200 { transition-duration: 200ms; } .section-container { margin-left: auto; margin-right: auto; max-width: 72rem; padding-left: 2.5rem; padding-right: 2.5rem; text-align: center; } .section-content { margin-left: auto; margin-right: auto; max-width: 48rem; text-align: center; line-height: 2.25rem; --tw-text-opacity: 1; color: hsl(201 11% 66% / var(--tw-text-opacity)); } .button-container { display: flex; width: 100%; flex-direction: column; justify-content: center; } .button-container > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); } .button-container { font-size: 1.25rem; line-height: 1.75rem; --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); } @media (min-width: 768px) { .button-container { flex-direction: row; } .button-container > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0px * var(--tw-space-y-reverse)); --tw-space-x-reverse: 0; margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); } } body { background-image: url('../images/bg-header-desktop.png'); background-repeat: no-repeat; background-size: contain; } @media (max-width: 576px) { body { background-image: url('../images/bg-header-mobile.png'); } } .ficon:hover { filter: invert(53%) sepia(68%) saturate(434%) hue-rotate(121deg) brightness(101%) contrast(94%); } .hover\:text-strongCyan:hover { --tw-text-opacity: 1; color: hsl(171 66% 44% / var(--tw-text-opacity)); } .hover\:opacity-80:hover { opacity: 0.8; } @media (min-width: 768px) { .md\:absolute { position: absolute; } .md\:mb-60 { margin-bottom: 15rem; } .md\:mb-0 { margin-bottom: 0px; } .md\:ml-24 { margin-left: 6rem; } .md\:w-1\/2 { width: 50%; } .md\:flex-row { flex-direction: row; } .md\:space-x-32 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(8rem * var(--tw-space-x-reverse)); margin-left: calc(8rem * calc(1 - var(--tw-space-x-reverse))); } .md\:space-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0px * var(--tw-space-y-reverse)); } .md\:space-x-12 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(3rem * var(--tw-space-x-reverse)); margin-left: calc(3rem * calc(1 - var(--tw-space-x-reverse))); } .md\:space-x-24 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(6rem * var(--tw-space-x-reverse)); margin-left: calc(6rem * calc(1 - var(--tw-space-x-reverse))); } .md\:pl-16 { padding-left: 4rem; } .md\:text-left { text-align: left; } }
댓글 ( 0)
댓글 남기기