tailwind 설치 (+ postcss, autoprefixer)
tailwind
css framework. https://tailwindcss.com/
postcss
css와 javascript의 결합을 지원하는 라이브러리
autoprefixer
vender-prefix css 자동 적용 라이브러리
일단 라이브러리를 설치한다.
npm install -D tailwindcss postcss autoprefixernpx로 tailwind 초기화. 그럼 tailwind.config.js 를 생성한다.
npx tailwindcss inittailwind.config.js 파일은 본 프로젝트에 적용할 tailwind의 기본 css 값들을 설정한다. 초기 생성된 내용은 아래와 같다.
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [],
theme: {
extend: {},
},
plugins: [],
}module.exports.content 부분에 tailwind가 탐색할 html, js, jsx 등의 적용 리소스 파일을 기술한다. 실제 적용한 내용은 아래와 같다.
/** @type {import('tailwindcss').Config} */
const colors = require('tailwindcss/colors')
module.exports = {
purge: ['./public/**/*.html'],
content: ["./src/**/*.{html,js,jsx,ts,tsx}"],
darkMode: 'class', // or 'media' or false
theme: {
fontFamily: {
sans: ['cairo', 'sans-serif'],
},
extend: {
colors: {
light: 'var(--light)',
dark: 'var(--dark)',
darker: 'var(--darker)',
primary: {
DEFAULT: 'var(--color-primary)',
50: 'var(--color-primary-50)',
100: 'var(--color-primary-100)',
light: 'var(--color-primary-light)',
lighter: 'var(--color-primary-lighter)',
dark: 'var(--color-primary-dark)',
darker: 'var(--color-primary-darker)',
},
secondary: {
DEFAULT: colors.fuchsia[600],
50: colors.fuchsia[50],
100: colors.fuchsia[100],
light: colors.fuchsia[500],
lighter: colors.fuchsia[400],
dark: colors.fuchsia[700],
darker: colors.fuchsia[800],
},
success: {
DEFAULT: colors.green[600],
50: colors.green[50],
100: colors.green[100],
light: colors.green[500],
lighter: colors.green[400],
dark: colors.green[700],
darker: colors.green[800],
},
warning: {
DEFAULT: colors.orange[600],
50: colors.orange[50],
100: colors.orange[100],
light: colors.orange[500],
lighter: colors.orange[400],
dark: colors.orange[700],
darker: colors.orange[800],
},
danger: {
DEFAULT: colors.red[600],
50: colors.red[50],
100: colors.red[100],
light: colors.red[500],
lighter: colors.red[400],
dark: colors.red[700],
darker: colors.red[800],
},
info: {
DEFAULT: colors.cyan[600],
50: colors.cyan[50],
100: colors.cyan[100],
light: colors.cyan[500],
lighter: colors.cyan[400],
dark: colors.cyan[700],
darker: colors.cyan[800],
},
},
},
},
variants: {
extend: {
backgroundColor: ['checked', 'disabled'],
opacity: ['dark'],
overflow: ['hover'],
},
},
plugins: [],
}
tailwind는 tailwind의 규칙에 따라서 작성된 css 파일을 컴파일하여 실제 html, js에 적용할 css를 생성한다.
npx tailwindcss -i ./src/tailwind.css -p ./public/fmap.css그래서 실제 작성한(컴파일 전) css 파일을 아래와 같다.
:root {
--light: #edf2f9;
--dark: #152e4d;
--darker: #12263f;
/* */
--color-primary: var(--color-cyan);
--color-primary-50: var(--color-cyan-50);
--color-primary-100: var(--color-cyan-100);
--color-primary-light: var(--color-cyan-light);
--color-primary-lighter: var(--color-cyan-lighter);
--color-primary-dark: var(--color-cyan-dark);
--color-primary-darker: var(--color-cyan-darker);
/* */
--color-green: #16a34a;
--color-green-50: #f0fdf4;
--color-green-100: #dcfce7;
--color-green-light: #22c55e;
--color-green-lighter: #4ade80;
--color-green-dark: #15803d;
--color-green-darker: #166534;
/* */
--color-blue: #2563eb;
--color-blue-50: #eff6ff;
--color-blue-100: #dbeafe;
--color-blue-light: #3b82f6;
--color-blue-lighter: #60a5fa;
--color-blue-dark: #1d4ed8;
--color-blue-darker: #1e40af;
/* */
--color-cyan: #0891b2;
--color-cyan-50: #ecfeff;
--color-cyan-100: #cffafe;
--color-cyan-light: #06b6d4;
--color-cyan-lighter: #22d3ee;
--color-cyan-dark: #0e7490;
--color-cyan-darker: #155e75;
/* */
--color-teal: #0d9488;
--color-teal-50: #f0fdfa;
--color-teal-100: #ccfbf1;
--color-teal-light: #14b8a6;
--color-teal-lighter: #2dd4bf;
--color-teal-dark: #0f766e;
--color-teal-darker: #115e59;
/* */
--color-fuchsia: #c026d3;
--color-fuchsia-50: #fdf4ff;
--color-fuchsia-100: #fae8ff;
--color-fuchsia-light: #d946ef;
--color-fuchsia-lighter: #e879f9;
--color-fuchsia-dark: #a21caf;
--color-fuchsia-darker: #86198f;
/* */
--color-violet: #7c3aed;
--color-violet-50: #f5f3ff;
--color-violet-100: #ede9fe;
--color-violet-light: #8b5cf6;
--color-violet-lighter: #a78bfa;
--color-violet-dark: #6d28d9;
--color-violet-darker: #5b21b6;
}
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.toggle:checked + span {
@apply top-0 left-6 bg-primary;
}
.toggle:disabled + span {
@apply bg-gray-500 shadow-none;
}
.toggle:checked:disabled {
@apply bg-gray-200;
}
.toggle:checked:disabled + span {
@apply shadow-none bg-primary-lighter;
}
.toggle:focus + span {
@apply ring ring-primary-lighter;
}
input:invalid.invalid,
textarea:invalid.invalid {
@apply ring ring-danger-light dark:ring-danger;
}
}생성된 css 파일은 너무 길어서 넘어간다.
답글 남기기