1.0.5 • Published 5 years ago
gatsby-theme-tastyled v1.0.5
Tailwind CSS + Styled Components + PurgeCSS
This theme installs Tailwind CSS + PostCSS + PurgeCSS + Styled Components (with twin macro).
Configuration
Add Tailwind CSS's directives
As stated in the Tailwind documentation, you should create a css file with the base tailwind directives.
Create a site.css file with the following directives and include it in your project. In this example, I will use the root folder.
@tailwind base;
@tailwind components;
@tailwind utilities;├── gatsby-config.js
├── node_modules
├── package.json
├── site.cssInclude them in gatsby-browser.js
In your gatsby-browser.js, import your css directives
import './site.css';Add Tailwind CSS Config File
Create tailwind.config.js at the root folder in order to start using twin.macro and also customize tailwindcss.
npx tailwindcss initor
yarn tailwind initAdd twin.macro config
Create a babel-plugin-macros.config.js in order to use twin.macro with styled-components
module.exports = {
twin: {
preset: 'styled-components',
},
};Example Usage
import React, { useState } from 'react';
import tw, { styled } from 'twin.macro';
const Container = styled.div`
${tw`p-4`}
${({ isLight }) => (isLight ? tw`py-2` : tw`py-2 bg-black`)}
.heading {
${tw`text-xl`}
${({ isLight }) => (isLight ? tw`text-black` : tw`text-white`)}
}
button {
${tw`mt-2 p-2 rounded-lg font-bold`}
${({ isLight }) => (isLight ? tw`bg-black text-white` : tw`bg-white`)}
}
`;
export default () => {
const [isLight, setLight] = useState(true);
return (
<Container isLight={isLight}>
<p className="heading">Homepage in a users site</p>
<button onClick={() => setLight(!isLight)}>Toggle color</button>
</Container>
);
};