Tailwind CSSã®ããªã»ããããŒãžããã¹ã¿ãŒããã°ããŒãã«ãªèŠç¹ã§ã¹ã±ãŒã©ãã«ã§ä¿å®æ§ã®é«ããããžã§ã¯ããæ§ç¯ãåœééçºã®ããã®é«åºŠãªèšå®æ§æãã¯ããã¯ãåŠã³ãŸãããã
Tailwind CSSããªã»ããã®ããŒãžïŒã°ããŒãã«éçºè ã®ããã®èšå®æ§æ
Tailwind CSSã¯ããŠãŒãã£ãªãã£ãã¡ãŒã¹ãã®ã¢ãããŒããšæ¯é¡ã®ãªãæè»æ§ã§ç§°è³ãããçŸä»£ã®Webéçºã®ç€ãšãªã£ãŠããŸãããã®æè»æ§ãå¯èœã«ããæã匷åãªæ©èœã®äžã€ãããªã»ããã·ã¹ãã ã§ãããéçºè ã¯åå©çšå¯èœãªèšå®ãå®çŸ©ãããããžã§ã¯ããå¹ççã«ã«ã¹ã¿ãã€ãºã§ããŸãããã®èšäºã§ã¯ãTailwind CSSã®ããªã»ããããŒãžãšèšå®æ§æã®æè¡ãæ·±ãæãäžããã¹ã±ãŒã©ãã«ã§ä¿å®æ§ãé«ããã°ããŒãã«ã«å¯Ÿå¿ããWebã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ãç®æãéçºè ã®ããã®å æ¬çãªã¬ã€ããæäŸããŸãã
Tailwind CSSããªã»ããã®åãçè§£ãã
æ žå¿ãšããŠãTailwind CSSããªã»ããã¯èšå®ãªããžã§ã¯ãã§ããã«ã©ãŒãã¬ããããã©ã³ããã¡ããªãŒãããã¹ããŒã·ã³ã°ã¹ã±ãŒã«ãã¬ã¹ãã³ã·ããã¬ãŒã¯ãã€ã³ããŸã§ãäžé£ã®ãã¶ã€ã³éžæãã«ãã»ã«åããŸãããããã®ããªã»ããã¯éåçãšããŠæ©èœãããããžã§ã¯ãå šäœã§äžè²«ããã¹ã¿ã€ã«ãé©çšã§ããŸããCSSãã¬ãŒã ã¯ãŒã¯å ã«ãã¶ã€ã³ã·ã¹ãã ãäœæãããããªãã®ã ãšèããŠãã ããã
ããªã»ããã䜿çšããå©ç¹ã¯æ°å€ããããŸãïŒ
- äžè²«æ§ïŒ ãã¹ãŠã®ããŒãžãšã³ã³ããŒãã³ãã§çµ±äžãããã«ãã¯ã¢ã³ããã£ãŒã«ãä¿èšŒããŸãã
- ä¿å®æ§ïŒ ãã¶ã€ã³ã®æ±ºå®ãäžå€®éæš©åããæŽæ°ãä¿®æ£ã容æã«ããŸããããªã»ããã®å€ã倿Žãããšãããã䜿çšãããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ãèªåçã«æŽæ°ãããŸãã
- ã¹ã±ãŒã©ããªãã£ïŒ ã¹ã¿ã€ã«ã®å€æŽã容æã«äŒæãããããšã§ãå€§èŠæš¡ãããžã§ã¯ãã®ç®¡çãç°¡çŽ åããŸãã
- åå©çšæ§ïŒ è€æ°ã®ãããžã§ã¯ãã§èšå®ãåå©çšã§ããã¯ãŒã¯ãããŒãå¹çåããŸãã
- ã³ã©ãã¬ãŒã·ã§ã³ïŒ æç¢ºãªãã¶ã€ã³ã¬ã€ãã©ã€ã³ã確ç«ããããšã§ãéçºããŒã éã®ã³ã©ãã¬ãŒã·ã§ã³ãä¿é²ããŸãã
Tailwind CSSã®åã¯ãã®èšå®å¯èœæ§ã«ãããããªã»ããã¯ãã®å¯èœæ§ãè§£ãæŸã€éµã§ãããããã¯ãããè€éã§æŽç·Žããããã¶ã€ã³ãäœãäžããããã®æ§æèŠçŽ ãªã®ã§ãã
Tailwind CSSããªã»ããã®æ§é
å žåçãªTailwind CSSããªã»ããã¯ãèšå®ãªããžã§ã¯ãããšã¯ã¹ããŒãããJavaScriptãã¡ã€ã«ã§ãããã®ãªããžã§ã¯ãã«ã¯ããã¶ã€ã³ã·ã¹ãã ãå®çŸ©ããæ§ã ãªããããã£ãå«ãŸããŠããŸããäž»èŠãªã»ã¯ã·ã§ã³ã¯ä»¥äžã®éãã§ãïŒ
- theme: ããã¯ããªã»ããã®äžå¿ã§ãããã«ã©ãŒãã¬ããããã©ã³ããã¡ããªãŒãã¹ããŒã·ã³ã°ããã¬ãŒã¯ãã€ã³ããªã©ãå®çŸ©ããŸãã
- variants: Tailwind CSSãçæããã¬ã¹ãã³ã·ãããã³ç¶æ ããŒã¹ã®ä¿®é£Ÿåãå®çŸ©ããŸãã
- plugins: ã«ã¹ã¿ã ãŠãŒãã£ãªãã£ããã£ã¬ã¯ãã£ãã远å ããŠãTailwindã®æ©èœãæ¡åŒµã§ããŸãã
- corePlugins: preflightãcontainerãªã©ãç¹å®ã®Tailwind CSSã³ã¢æ©èœãæå¹ãŸãã¯ç¡å¹ã«ã§ããŸãã
以äžã«ããªã»ããã®åºæ¬çãªäŸã瀺ããŸãïŒ
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
'primary': '#3490dc',
'secondary': '#ffed4a',
},
fontFamily: {
sans: ['Helvetica', 'Arial', 'sans-serif'],
},
},
},
plugins: [],
}
ãã®äŸã§ã¯ãããã©ã«ãã®TailwindããŒããæ¡åŒµããŠãã«ã¹ã¿ã ã«ã©ãŒãšã«ã¹ã¿ã ãã©ã³ããã¡ããªãŒã远å ããŸãããããã¯åºæ¬çãªæ§é ã瀺ããŠããŸãã`extend`ããŒã¯éèŠã§ããããã«ãããæ¢åã®Tailwindã®ããã©ã«ããå®å šã«äžæžãããããšãªã远å ã§ããŸããäžæžãã¯ããã¬ãŒã ã¯ãŒã¯ã®ãŠãŒãã£ãªãã£ãã¡ãŒã¹ãã¢ãããŒãã®å©ç¹ãæãªãããšããããããŸãã
ããªã»ããã®ããŒãžïŒè€éãã®ããã®èšå®ã®çµã¿åãã
ããªã»ããã®ããŒãžãšã¯ãè€æ°ã®Tailwind CSSèšå®ãªããžã§ã¯ããçµã¿åãããããã»ã¹ã§ããããã«ãããéå±€åããããã¶ã€ã³ã·ã¹ãã ãäœæã§ããç°ãªãèšå®ãçµã¿åãããŠæãŸããçµæãåŸãããšãã§ããŸããããã¯ãè€æ°ã®ããŒãããã©ã³ãããŸãã¯ãã¶ã€ã³ããªãšãŒã·ã§ã³ãæã€è€éãªãããžã§ã¯ãã§ç¹ã«åœ¹ç«ã¡ãŸãã
ããªã»ãããããŒãžããäž»ãªæ¹æ³ã¯2ã€ãããŸãïŒ
- `extend`ããŒã®äœ¿çšïŒ åã®äŸã§ç€ºããããã«ã`extend`ããŒã䜿çšãããšãæ¢åã®ããŒãããããã£ãä»ã®èšå®ã»ã¯ã·ã§ã³ã«è¿œå ã§ããŸããããã¯ãã«ã¹ã¿ã ã«ã©ãŒããã©ã³ãããŸãã¯ãŠãŒãã£ãªãã£ã¯ã©ã¹ã远å ããã®ã«çæ³çã§ãã
- `require`颿°ã®äœ¿çšïŒ è€æ°ã®èšå®ãã¡ã€ã«ãrequireããæåã§ããŸãã¯`tailwindcss/resolve-config`ã®ãããªãŠãŒãã£ãªãã£ã䜿çšããŠããŒãžã§ããŸããããã¯ãåããããžã§ã¯ãå ã§è€æ°ã®ããŒãããã©ã³ãèšå®ã管çãããªã©ãããè€éãªã·ããªãªã§åœ¹ç«ã¡ãŸãã
äŸïŒããã©ã«ãããŒãã®æ¡åŒµ
ããã©ã«ãã®Tailwind CSSã«ã©ãŒã®äžã«ã«ã¹ã¿ã ã«ã©ãŒãã¬ããã远å ããããšããŸãã以äžã¯`extend`ã®äœ¿ç𿹿³ã§ãïŒ
// tailwind.config.js
const defaultTheme = require('tailwindcss/defaultTheme');
module.exports = {
theme: {
extend: {
colors: {
'brand-primary': '#007bff',
'brand-secondary': '#6c757d',
},
fontFamily: {
sans: ['Roboto', ...defaultTheme.fontFamily.sans],
},
},
},
plugins: [],
}
ãã®å Žåã`brand-primary`ãš`brand-secondary`ã«ã©ãŒã¯ãããã©ã«ãã®Tailwindã«ã©ãŒãšäžŠè¡ããŠå©çšå¯èœã«ãªããŸããããã©ã«ãã®sans-serifãã©ã³ããæ³šå ¥ããããã«ããã©ã«ãããŒãã䜿çšããŠããããšã«æ³šç®ããŠãã ãããããã«ãããåºæ¬ã¹ã¿ã€ãªã³ã°ãšã®äžè²«æ§ãä¿ãããŸããããã¯ãåºç€ã®*äžã«*æ§ç¯ããçŽ æŽãããäŸã§ãã
äŸïŒ`require`ãšResolve Configã«ããããŒãž
ããè€éãªã»ããã¢ããã§ã¯ã`tailwindcss/resolve-config`ã®äœ¿çšãæ€èšããŠãã ãããããã¯ããã«ããã©ã³ãã®ãŠã§ããµã€ãããŠãŒã¶ãŒå®çŸ©ããŒããæã€ãã©ãããã©ãŒã ãæ§ç¯ããå Žåã«ç¹ã«äŸ¿å©ã§ããã°ããŒãã«ãªeã³ããŒã¹ãã©ãããã©ãŒã ã®ãããªäŒæ¥ããããããç¬èªã®ã¹ã¿ã€ãªã³ã°ãæã€è€æ°ã®ãã©ã³ããåäžã«çœ®ããŠããã·ããªãªãæ³åããŠã¿ãŠãã ããã
// tailwind.config.js
const resolveConfig = require('tailwindcss/resolve-config')
const brandConfig = require('./tailwind.brand.js')
const baseConfig = require('./tailwind.base.js')
const config = resolveConfig([baseConfig, brandConfig])
module.exports = config;
äžèšã®ã³ãŒãã®äœ¿çšæ³ã説æããããã«ãrequireããããã¡ã€ã«ã®å 容ãèŠãŠã¿ãŸãããã
// tailwind.base.js
module.exports = {
theme: {
extend: {
colors: {
'gray-200': '#edf2f7',
},
},
},
plugins: [],
}
// tailwind.brand.js
module.exports = {
theme: {
extend: {
colors: {
'brand-primary': '#007bff',
},
},
},
plugins: [],
}
ãã®ã¢ãããŒãã¯ã¹ã±ãŒã©ãã«ã§ãã`baseConfig`ã«ã¯äžè¬çãªã¹ã¿ã€ãªã³ã°ãã`brandConfig`ã«ã¯ãã©ã³ãåºæã®ã«ã©ãŒããã©ã³ããå«ããããšã«ãªãã§ããããããã«ãããé¢å¿äºã®åé¢ãæç¢ºã«ãªãããã©ã³ããããŒãžã£ãŒãç°¡åã«ã¹ã¿ã€ãªã³ã°ãã«ã¹ã¿ãã€ãºã§ããããã«ãªããŸãã
èšå®æ§æïŒé«åºŠãªãã¯ããã¯
åçŽãªããŒãžãè¶ ããŠãTailwind CSSã¯çã«æŽç·Žããããã¶ã€ã³ãæ§ç¯ããããã®é«åºŠãªèšå®æ§æãã¯ããã¯ãæäŸããŸãïŒ
1. ã«ã¹ã¿ã ãã©ã°ã€ã³
ã«ã¹ã¿ã ãã©ã°ã€ã³ã䜿çšãããšãç¬èªã®ãŠãŒãã£ãªãã£ãã³ã³ããŒãã³ãããŸãã¯ãã£ã¬ã¯ãã£ããäœæããŠTailwindã®æ©èœãæ¡åŒµã§ããŸããããã¯ããããžã§ã¯ãåºæã®ã«ã¹ã¿ã ã¹ã¿ã€ãªã³ã°ãæ©èœã远å ããã®ã«éåžžã«è²Žéã§ããäŸãã°ãç¹å®ã®UIãã¿ãŒã³ã®ããã®ãŠãŒãã£ãªãã£ã¯ã©ã¹ãçæãããã©ã°ã€ã³ããåœéåãåŠçãããã©ã°ã€ã³ãäœæã§ããŸãã
// tailwind.config.js
const plugin = require('tailwindcss/plugin')
module.exports = {
plugins: [
plugin(function ({ addUtilities }) {
const newUtilities = {
'.flow-space-small > *:not(:first-child)': {
'margin-top': '0.5rem',
},
'.flow-space-medium > *:not(:first-child)': {
'margin-top': '1rem',
},
}
addUtilities(newUtilities)
}),
],
}
ãã®ãã©ã°ã€ã³ã¯ãèŠçŽ éã«ã¹ããŒã·ã³ã°ã远å ããããã®`flow-space-small`ããã³`flow-space-medium`ã¯ã©ã¹ãäœæãããããã¯ã°ããŒãã«ãªã³ã³ããã¹ãã§é©çšã§ããŸãããã©ã°ã€ã³ã¯ãTailwindã®æ©èœãæ¡åŒµããããã®ç¡éã®å¯èœæ§ãè§£ãæŸã¡ãŸãã
2. ããªã¢ã³ãã«ããæ¡ä»¶ä»ãã¹ã¿ã€ãªã³ã°
ããªã¢ã³ãã䜿çšãããšãhoverãfocusãactiveããŸãã¯ã¬ã¹ãã³ã·ããã¬ãŒã¯ãã€ã³ããªã©ãããŸããŸãªç¶æ ãæ¡ä»¶ã«åºã¥ããŠã¹ã¿ã€ã«ãé©çšã§ããŸããã«ã¹ã¿ã ããªã¢ã³ããäœæããŠãç¹å®ã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãããã€ã¹ç¹æ§ã«åãããŠãã¶ã€ã³ã調æŽã§ããŸããã«ã¹ã¿ã ããªã¢ã³ãã¯ãåœéåãå³ããå·Šãžèšè¿°ããèšèªãªã©ãç°ãªãèšèªã¬ã€ã¢ãŠããæ±ãéã«ç¹ã«åœ¹ç«ã¡ãŸãã
äŸãã°ãããªãã®ãã©ãããã©ãŒã ãç°ãªãåœã®ãŠãŒã¶ãŒãããã°ããŒãã«ãªãŠãŒã¶ãŒããŒã¹åãã«èšèšãããŠãããšããŸããå³ããå·ŠãžïŒRTLïŒèšèªãæ±ãããã®ã«ã¹ã¿ã ããªã¢ã³ãã远å ããŠããŠãŒã¶ãŒã®èšèªèšå®ã«åºã¥ããŠæ¡ä»¶ä»ãã§ã¹ã¿ã€ã«ãé©çšããããããããŸããã
// tailwind.config.js
const plugin = require('tailwindcss/plugin')
module.exports = {
variants: {
extend: {
ltr: ['direction'], // Custom variant for left-to-right languages
rtl: ['direction'], // Custom variant for right-to-left languages
},
},
plugins: [
plugin(function ({ addVariant }) {
addVariant('rtl', '&[dir=rtl] &')
addVariant('ltr', '&[dir=ltr] &')
}),
],
}
ãã®èšå®ã«ããã`rtl:text-right`ã`ltr:text-left`ã䜿çšããŠãHTMLèŠçŽ ã®`dir`屿§ã«åºã¥ããŠããã¹ãã®é 眮ãå¶åŸ¡ã§ããããã«ãªããçã«æè»ã§é©å¿æ§ã®ãããã¶ã€ã³ãå¯èœã«ãªããŸãããã®ã¢ãããŒãã¯ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«å¯Ÿå¿ããéã«äžå¯æ¬ ã§ãã
3. ç°å¢å€æ°ã«ããåçèšå®
ç°å¢å€æ°ã䜿çšãããšãTailwind CSSã®èšå®ãåçã«æ§æã§ããŸããããã¯ãç°ãªãç°å¢ïŒéçºãã¹ããŒãžã³ã°ãæ¬çªïŒã®ç®¡çãç°ãªãããŒãã®é©çšããŸãã¯ãŠãŒã¶ãŒã®å¥œã¿ã«åºã¥ãæ©èœã®æå¹å/ç¡å¹åã«äžå¯æ¬ ã§ãããã®ã¢ãããŒãã¯ããã«ãããã³ãã¢ããªã±ãŒã·ã§ã³ããè€æ°ã®åœããµããŒãããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ã§ç¹ã«åœ¹ç«ã¡ãŸãã
`tailwind.config.js`ãã¡ã€ã«å ã§`process.env`ã䜿çšããŠç°å¢å€æ°ã«ã¢ã¯ã»ã¹ã§ããŸããäŸãã°ã`THEME`ãšããååã®ç°å¢å€æ°ãããå Žåã以äžã®ã³ãŒãã䜿çšã§ããŸãïŒ
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
'primary': process.env.THEME === 'dark' ? '#1a202c' : '#3490dc',
},
},
},
plugins: [],
}
ãã®ã¢ãããŒãã«ãããã°ããŒãã«ãªãŠã§ããµã€ãã§äžè¬çãªèŠä»¶ã§ããè¿ éãªããŒãåãæ¿ããå¯èœã«ãªããŸãããã®åŸããã«ãããã»ã¹ãæ§æããŠãç°ãªãç°å¢ã«å¯ŸããŠç°ãªãç°å¢å€æ°ãèšå®ã§ããŸãã
ã°ããŒãã«ãªãŒãã£ãšã³ã¹åãã®æ§ç¯ïŒåœéåãšå°åå
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã«æ§ç¯ããå Žåãèšèšãšéçºããã»ã¹å šäœãéããŠåœéåïŒi18nïŒãšå°ååïŒl10nïŒãèæ ®ããããšãäžå¯æ¬ ã§ããTailwind CSSãšãã®ããªã»ããããŒãžæ©èœã¯ããã®åãçµã¿ã«ãããŠåŒ·åãªå³æ¹ãšãªãåŸãŸãã
- å³ããå·ŠãžïŒRTLïŒã®ãµããŒãïŒ å ã«ç€ºããããã«ãã«ã¹ã¿ã ããªã¢ã³ãã䜿çšããããšã§RTLèšèªã®ãµããŒãã容æã«ãªããŸããããã«ãããã¢ã©ãã¢èªãããã©ã€èªããã«ã·ã£èªãªã©ãå³ããå·ŠãžèªãŸããèšèªã«å¯ŸããŠã¬ã€ã¢ãŠããæ£ããã¬ã³ããªã³ã°ãããããšãä¿èšŒãããŸãã
- èšèªåºæã®ã¹ã¿ã€ãªã³ã°ïŒ Tailwind CSSã®èœåãæŽ»çšããŠãç°ãªããã±ãŒã«ã«å¯ŸããŠç°ãªãCSSãçæããããšãã§ããŸãããã±ãŒã«ããšã«ç°ãªãCSSãã¡ã€ã«ãäœæããããæ£ããèšå®ãåçã«èªã¿èŸŒã¿ãŸãã
- æ¥ä»ãšæå»ã®ãã©ãŒãããïŒ ã«ã¹ã¿ã ãã©ã°ã€ã³ããŠãŒãã£ãªãã£ã¯ã©ã¹ã䜿çšããŠããŠãŒã¶ãŒã®ãã±ãŒã«ã«åºã¥ããŠæ¥ä»ãšæå»ã®ãã©ãŒãããã管çããŸãã
- éè²šãšæ°å€ã®ãã©ãŒãããïŒ ãŠãŒã¶ãŒã®å Žæã«é©ãã圢åŒã§éè²šãšæ°å€ã衚瀺ããããã®ã«ã¹ã¿ã ãŠãŒãã£ãªãã£ãå®è£ ããŸãã
- æåçæåæ§ïŒ è²ãç»åããã®ä»ã®èŠèŠèŠçŽ ãéžæããéã«ã¯ãæåçãªæåæ§ãèæ ®ããŠãã ããããã¶ã€ã³ãå æ¬çã§ãããæå³ããªãåèŠãé¿ããããã«ããŸãã
äºåã«èšç»ããTailwind CSSãææ ®æ·±ãé©çšããããšã§ãèŠèŠçã«é åçãªã ãã§ãªãã倿§ãªã°ããŒãã«ãªãŒãã£ãšã³ã¹ã«ãšã£ãŠé©å¿æ§ãããã䜿ãããããã©ãããã©ãŒã ãäœæã§ããŸããåœéåã¯åãªã翻蚳以äžã®ãã®ã§ãããçã«ã°ããŒãã«ãªäœéšãåµé ããããšã§ãã
Tailwind CSSããªã»ããããŒãžã®ãã¹ããã©ã¯ãã£ã¹
Tailwind CSSã®ããªã»ããããŒãžã®å¹æãæå€§åããããã«ã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããïŒ
- èšå®ã®ã¢ãžã¥ãŒã«åïŒ Tailwind CSSã®èšå®ããããå°ããåå©çšå¯èœãªã¢ãžã¥ãŒã«ã«åå²ããŸããããã«ããããã¶ã€ã³ã·ã¹ãã ã®ç®¡çããã¹ããä¿®æ£ã容æã«ãªããŸããç°ãªãããŒãããã©ã³ãã«å¯Ÿå¿ããããã«èšå®ãã¢ãžã¥ãŒã«åããããšãèããŠãã ããã
- ããªã»ããã®ææžåïŒ ããªã»ãããšãã®æå³ããç®çã培åºçã«ææžåããŸããããã«ãããåŸã§ããªããšããªãã®ããŒã ã®æéãšãã©ã¹ãã¬ãŒã·ã§ã³ãç¯çŽã§ããŸããç°ãªãèšå®ãªãã·ã§ã³ã®ç®çã説æããã³ã¡ã³ããå«ããŠãã ããã
- äžè²«ããåœåèŠåã«åŸãïŒ è²ããã©ã³ããã¹ããŒã·ã³ã°ããã®ä»ã®ãã¶ã€ã³èŠçŽ ã«å¯ŸããŠäžè²«ããåœåèŠåã確ç«ããŸããããã«ãããå¯èªæ§ãšä¿å®æ§ãåäžããŸãããã¹ãŠã®ãã±ãŒã«ã§äžè²«ããååã䜿çšããããšã¯ãå€èšèªãµã€ãã®çè§£ãšä¿å®ã«ã倧ãã«åœ¹ç«ã¡ãŸãã
- ããŒãžã§ã³ç®¡çã®äœ¿çšïŒ Tailwind CSSã®èšå®ãžã®å€æŽã远跡ããããã«ãåžžã«ããŒãžã§ã³ç®¡çïŒäŸïŒGitïŒã䜿çšããŸããããã«ãããå¿ èŠã«å¿ããŠä»¥åã®ããŒãžã§ã³ã«æ»ããããä»ã®äººãšå¹æçã«å ±åäœæ¥ãããã§ããŸãã
- ããªã»ããã®ãã¹ãïŒ ããªã»ããã培åºçã«ãã¹ãããŠãæåŸ ãããçµæãçã¿åºãããšã確èªããŸãããã¶ã€ã³ã·ã¹ãã ãæ€èšŒããããã®èªåãã¹ãã®äœæãæ€èšããŠãã ãããããã¯ã°ããŒãã«éçºã«ãããŠç¹ã«éèŠã§ãã
- ã¢ã¯ã»ã·ããªãã£ã®åªå ïŒ åžžã«ã¢ã¯ã»ã·ããªãã£ã®ãã¹ããã©ã¯ãã£ã¹ãèæ ®ããŠãã ããããã¶ã€ã³ããã¹ãŠã®èœåãæã€ãŠãŒã¶ãŒã«ã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŸããããã¯ããžã¿ã«ããã€ããé¿ããã®ã«åœ¹ç«ã¡ãŸãã
é«åºŠãªã·ããªãªãšã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªæèã«ãããããªã»ããããŒãžã®æçšæ§ã匷調ãããããã€ãã®é«åºŠãªã·ããªãªãèããŠã¿ãŸãããã
1. ãã«ããã©ã³ãã£ã³ã°ãšå°åçããªãšãŒã·ã§ã³
ç¹å®ã®å°åãã¿ãŒã²ããã«ããè€æ°ã®ãµããã©ã³ããæã€ã°ããŒãã«äŒæ¥ãæ³åããŠã¿ãŠãã ãããåãã©ã³ãã¯ãç¬èªã®ã«ã©ãŒãã¬ãããã¿ã€ãã°ã©ãã£ããããŠå Žåã«ãã£ãŠã¯ã«ã¹ã¿ã ã³ã³ããŒãã³ããå¿ èŠãšãããããããŸãããããªã»ããããŒãžã¯åŒ·åãªè§£æ±ºçãæäŸããŸãã
äžè¬çãªã¹ã¿ã€ã«ãå ±éã³ã³ããŒãã³ãããŠãŒãã£ãªãã£ã¯ã©ã¹ãå«ãåºæ¬èšå®ïŒ`tailwind.base.js`ïŒãäœæããŸããæ¬¡ã«ããã©ã³ãåºæã®è²ããã©ã³ãããã®ä»ã®ã«ã¹ã¿ãã€ãºã§åºæ¬èšå®ãäžæžããããã©ã³ãåºæã®èšå®ïŒäŸïŒ`tailwind.brandA.js`ã`tailwind.brandB.js`ïŒãäœæããŸãã
ç°å¢å€æ°ããã«ãããã»ã¹ã䜿çšããŠããã©ã³ããå°åã«åºã¥ããŠé©åãªèšå®ãèªã¿èŸŒãããšãã§ããŸãããã®ããã«ããŠãåãã©ã³ãã¯å ±éã®ã³ãŒããšã³ã³ããŒãã³ããå ±æããªãããç¬èªã®ã¢ã€ãã³ãã£ãã£ãç¶æããŸãã
2. åçããŒãèšå®ãšãŠãŒã¶ãŒã®å¥œã¿
ãŠãŒã¶ãŒãã©ã€ãã¢ãŒããšããŒã¯ã¢ãŒãããããã¯ã«ã¹ã¿ã ããŒããéžæã§ããããã«ããããšã¯äžè¬çã§ããããªã»ããããŒãžãšç°å¢å€æ°ãJavaScriptãšçµã¿åãããããšã§ãããã容æã«å®çŸã§ããŸãã
åºæ¬èšå®ãäœæããŸããæ¬¡ã«ãããŒãåºæã®èšå®ïŒäŸïŒ`tailwind.dark.js`ïŒãäœæããŸããããŒãåºæã®èšå®ã¯åºæ¬ãäžæžãã§ããŸããHTMLã§ã¯ãJavaScriptã䜿çšããŠæ£ããããŒããåçã«èªã¿èŸŒããã`html`ã¿ã°ã«é©çšãããã¯ã©ã¹ã䜿çšããŸããæçµçã«ã`dark:bg-gray-900`ã®ãããªCSSã¯ã©ã¹ãèªåçã«é©çšãããŸãããŠãŒã¶ãŒã®å¥œã¿ã¯ã¢ããªã±ãŒã·ã§ã³å šäœã§å°éãããŸãã
ããã«ããããŠãŒã¶ãŒã¯èªèº«ã®äœéšãå¶åŸ¡ã§ãã倿§ãªå¥œã¿ã«å¯Ÿå¿ããããã«äžå¯æ¬ ã§ãã
3. è€éãªã¬ã€ã¢ãŠããšå°åå·®
ãŠã§ããµã€ãã¯ãé²èЧãããå°åã«ãã£ãŠã¬ã€ã¢ãŠããç°ãªãããšããããããŸããäŸãã°ãããã²ãŒã·ã§ã³ãè£œåæ å ±ãé£çµ¡å æ å ±ãªã©ãç°ãªãæ¹æ³ã§è¡šç€ºããå¿ èŠããããããããŸããã
`require`ã¡ãœããã䜿çšããŠå°åããšã®èšå®ïŒäŸïŒ`tailwind.us.js`ãš`tailwind.eu.js`ïŒãèªã¿èŸŒã¿ãŸããæ¬¡ã«ããããåºæ¬èšå®ããã³ãã©ã³ãåºæã®èšå®ãšçµã¿åãããŸãã
ãã®ãã¯ããã¯ã«ãããé©åãªã¬ã€ã¢ãŠããšã³ã³ãã³ãé¢é£ã®ã«ã¹ã¿ãã€ãºãé©çšã§ããŸãã
äžè¬çãªåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
以äžã«ããã€ãã®äžè¬çãªåé¡ãšãã®å¯ŸåŠæ³ã瀺ããŸãïŒ
- äžæ£ãªèšå®ãã¹ïŒ èšå®ãã¡ã€ã«ãæ£ããå Žæã«ããããã¹ããã«ãããã»ã¹ã§æ£ããæå®ãããŠããããšãå確èªããŠãã ããã
- ã¹ã¿ã€ã«ã®ç«¶åïŒ èšå®ãããŒãžããéãè€æ°ã®èšå®ãåãã¹ã¿ã€ã«ãå®çŸ©ããŠããå Žåã«ç«¶åãçºçããããšããããŸããåªå é äœãçè§£ããŠãããã®ç«¶åã解決ããŠãã ãããéåžžã*æåŸã«*èªã¿èŸŒãŸããèšå®ãã¡ã€ã«ãåªå ãããŸãã`!important`ã¯æ éã«ãå¿ èŠãªå Žåã«ã®ã¿äœ¿çšããŠãã ããã
- ãã«ãããã»ã¹ãšã©ãŒïŒ ãã«ãããã»ã¹ïŒäŸïŒWebpackãParcelãViteïŒãTailwind CSSèšå®ãæ£ããåŠçããããã«èšå®ãããŠããããšã確èªããŠãã ããããšã©ãŒã¡ãã»ãŒãžã調ã¹ãŠåé¡ãç¹å®ãã解決ããŠãã ããã
- 詳现床ã®ç«¶åïŒ ãŠãŒãã£ãªãã£ã¯ã©ã¹ã®é åºãé©ç𿹿³ã«åœ±é¿ãäžããããšããããŸããã¯ã©ã¹ã®é åºã倿Žãããã詳现床ãäžãããããããšãã§ããŸãããããã¯ãã¶ã€ã³ã®ããè¯ãã³ã³ããŒãã³ãåãå¿ èŠã§ããããšã瀺ããŠããŸãã
- ã¯ã©ã¹ã®æ¬ èœïŒ ã¯ã©ã¹ãçæãããªãå Žåã¯ãããããèšå®ã§å®çŸ©ãããŠããããšã`npx tailwindcss -i ./src/input.css -o ./dist/output.css`ãªã©ã®ã³ãã³ãã§ãããžã§ã¯ãããã«ãããããšããããŠé©åãªã³ã³ãã³ããã¹ïŒäŸïŒãã³ãã¬ãŒããã¡ã€ã«çšïŒã`tailwind.config.js`ã§èšå®ãããŠããããšã確èªããŠãã ããã
çµè«ïŒã°ããŒãã«ãªæªæ¥ã®ããã®èšå®æ§æããã¹ã¿ãŒãã
Tailwind CSSã®ããªã»ããããŒãžãšèšå®æ§æã¯ãWebéçºã®ã¯ãŒã¯ãããŒãåäžããã匷åãªãã¯ããã¯ã§ããèšå®ã广çã«çµã¿åãããæ¹æ³ãçè§£ããããšã§ãã¹ã±ãŒã©ãã«ã§ä¿å®æ§ãé«ããé«åºŠã«ã«ã¹ã¿ãã€ãºå¯èœãªãããžã§ã¯ããæ§ç¯ã§ããŸããããã¯ç¹ã«ã°ããŒãã«å±éã«åœ¹ç«ã¡ãŸãã
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã®Webã¢ããªã±ãŒã·ã§ã³ãäœæããéã«ã¯ãi18n/l10nãèæ ®ããããã«ç¹å¥ãªæ³šæãæã£ãŠãã ãããRTLãµããŒããå°åã«ããã¹ã¿ã€ã«ã®éãã«ç¹ã«æ³šæãæããŸããTailwind CSSãšãã®ããªã»ããæ©èœã掻çšããããšã§ããã®ããã»ã¹ãå€§å¹ ã«ç°¡çŽ åã§ããŸãããããã®å®è·µãåãå ¥ããããšã§ãçŸä»£ã®Webéçºã®è€éãã«åãçµã¿ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«åè¶ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæ§ç¯ããããã®æºåãæŽããŸãã
Tailwind CSSã®æ¢æ±ãç¶ããããŸããŸãªããªã»ããããŒãžãã¯ããã¯ã詊ããŠã¿ãŠãã ãããç·Žç¿ããã°ããã»ã©ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã®å€æ§ãªããŒãºã«å¿ãããè€éã§ãšã¬ã¬ã³ããªãã¶ã€ã³ãæ§æããèœåãé«ãŸããŸããçã«ã°ããŒãã«ãªãŠã§ããµã€ããæ§ç¯ããããšã¯é·æçãªåãçµã¿ã§ããTailwindã¯å©ãã«ãªããŸãããåªãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããã«ã¯ãã¢ã¯ã»ã·ããªãã£ãæåçæåæ§ãåœéåãå°ååã«é¢ãããã¹ããã©ã¯ãã£ã¹ã«ã€ããŠãåŠã¶ããšãéèŠã§ãã