Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not loading extended theme in tailwind config #46

Open
quant-daddy opened this issue Oct 29, 2019 · 4 comments
Open

Not loading extended theme in tailwind config #46

quant-daddy opened this issue Oct 29, 2019 · 4 comments

Comments

@quant-daddy
Copy link

I am extending the default tailwind config as shown below. It allows me to use new class names like bg-black-100 but it is not being recognized by the tailwind macro. I'm using the latest build of the macro and the latest tailwind stable release.

module.exports = {
  theme: {
    extend: {
      colors: {
        black: {
          100: 'rgb(245,245,245)',
          200: 'rgb(240,240,240)',
          300: 'rgb(220,220,220)',
          400: 'rgb(200,200,200)',
          500: 'rgb(160,160,160)',
          600: 'rgb(100,100,100)',
          700: 'rgb(60,60,60)',
          800: 'rgb(30,30,30)',
          900: 'rgb(0,0,0)',
        },
        kgreen: {
          700: '#03A87C',
          800: 'rgb(4,117,111)',
          900: '#02403C',
        },
      },
    },
  },
  variants: {
    backgroundColor: ['responsive', 'hover', 'focus', 'active'],
  },
  plugins: [],
};
@modulareverything
Copy link

Did you ever resolve this @skk2142 ?

@mhaagens
Copy link

Having the same issue. Anyone found a fix?

@hacknug
Copy link

hacknug commented Feb 18, 2020

Seems like @mhaagens and @nicwhitts found a solution on #50.

@quant-daddy
Copy link
Author

Sorry for a late response. So I started working on a new project and things seems to be working. Here's my setup for reference:

// postcss.config.js
const plugins = {
  'postcss-import': {},
  tailwindcss: {},
  autoprefixer: {},
  cssnano: {},
};

if (process.env.NODE_ENV === 'production') {
  plugins['@fullhuman/postcss-purgecss'] = {
    content: ['./pages/**/*.{js,jsx,ts,tsx}', './src/**/*.{js,jsx,ts,tsx}'],
    defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || [],
  };
}

module.exports = { plugins };

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        black: {
          100: 'rgb(245,245,245)',
          200: 'rgb(240,240,240)',
          300: 'rgb(220,220,220)',
          400: 'rgb(200,200,200)',
          500: 'rgb(160,160,160)',
          600: 'rgb(100,100,100)',
          700: 'rgb(60,60,60)',
          800: 'rgb(30,30,30)',
          900: 'rgb(0,0,0)',
        },
        kgreen: {
          600: '#03A87C',
          700: '#08916C',
          800: '#078765',
          900: '#02403C',
        },
      },
    },
  },
  variants: {},
  plugins: [],
};

// babel.config.js
module.exports = {
  presets: ['next/babel', '@zeit/next-typescript/babel'],
  plugins: [
    ['styled-components', { ssr: true }],
    '@babel/plugin-syntax-object-rest-spread',
    'macros',
  ],
  env: {
    test: {
      plugins: ['transform-es2015-modules-commonjs'],
    },
  },
};

// babel-plugin-macros.config.js
module.exports = {
  tailwind: {
    config: './tailwind.config.js',
    format: 'auto',
    styled: 'styled-components',
  },
};

// App.tsx
import { NextPage } from 'next';
import styled from 'styled-components';
import tw from 'tailwind.macro';

const Wrapper = tw.h1`text-kgreen-600`;
const Para = styled.p`
  ${tw`text-kgreen-400`}
`;

const Home: NextPage<{ userAgent: string }> = ({ userAgent }) => (
  <Wrapper>
    Hello world! - user agent:
    <Para>{userAgent}</Para>
  </Wrapper>
);

Home.getInitialProps = async ({ req }) => {
  const userAgent = req ? req.headers['user-agent'] || '' : navigator.userAgent;
  return { userAgent };
};

export default Home;

// package.json
{
  "name": "frontend",
  "version": "0.1.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "apollo:codegen": "apollo codegen:generate --excludes=node_modules/* --includes=**/*.tsx --endpoint https://swapi-graphql.netlify.com/.netlify/functions/index --target typescript --tagName gql --outputFlat src/generated",
    "dev": "DEV_API_URL='http://localhost:3000' node server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js",
    "storybook": "start-storybook -p 9001 -c .storybook",
    "lint": "eslint src/** --ext .ts,.tsx --fix",
    "test": "jest",
    "posttest": "ts-node -P scripts/tsconfig.json scripts/publish.pact.ts",
    "test:watch": "jest --watch",
    "test:e2e": "is-ci \"test:e2e:run\" \"test:e2e:dev\"",
    "pretest:e2e:run": "npm run build",
    "test:e2e:run": "start-server-and-test start http://example.io cy:run",
    "test:e2e:dev": "start-server-and-test dev http://example.io cy:open",
    "cy:run": "cypress run",
    "cy:open": "cypress open"
  },
  "keywords": [],
  "author": "Suraj Keshri <[email protected]>",
  "license": "UNLICENSED",
  "dependencies": {
    "@apollo/react-hooks": "^3.1.3",
    "@apollo/react-ssr": "^3.1.3",
    "apollo-cache-inmemory": "^1.6.5",
    "apollo-client": "^2.6.8",
    "apollo-link-http": "^1.5.16",
    "autoprefixer": "^9.7.4",
    "express": "^4.17.1",
    "graphql": "^14.6.0",
    "graphql-tag": "^2.10.3",
    "is-ci-cli": "^2.0.0",
    "isomorphic-unfetch": "^3.0.0",
    "next": "^9.2.1",
    "postcss-import": "^12.0.1",
    "react": "^16.12.0",
    "react-dom": "^16.12.0",
    "tailwind.macro": "^1.0.0-alpha.10",
    "tailwindcss": "^1.2.0",
    "styled-components": "^4.4.0"
  },
  "devDependencies": {
    "@babel/core": "^7.8.4",
    "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
    "@fullhuman/postcss-purgecss": "^2.0.6",
    "@pact-foundation/pact": "^9.6.1",
    "@pact-foundation/pact-node": "^10.2.4",
    "@storybook/addon-knobs": "^5.3.12",
    "@storybook/react": "^5.3.12",
    "@testing-library/cypress": "^5.3.0",
    "@testing-library/dom": "^6.12.2",
    "@testing-library/jest-dom": "^5.1.1",
    "@testing-library/react": "^9.4.0",
    "@testing-library/user-event": "^8.1.0",
    "@types/faker": "^4.1.9",
    "@types/jest": "^25.1.2",
    "@types/node": "^13.7.0",
    "@types/react": "^16.9.19",
    "@types/styled-components": "^5.0.0",
    "@typescript-eslint/eslint-plugin": "^2.19.1",
    "@typescript-eslint/parser": "^2.19.1",
    "@zeit/next-typescript": "^1.1.1",
    "babel-loader": "^8.0.6",
    "babel-plugin-macros": "^2.8.0",
    "babel-plugin-styled-components": "^1.10.7",
    "babel-plugin-tailwind-components": "^0.5.10",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
    "babel-preset-react-app": "^9.1.1",
    "css-loader": "^3.4.2",
    "cssnano": "^4.1.10",
    "eslint": "^6.8.0",
    "eslint-config-airbnb": "^18.0.1",
    "eslint-config-prettier": "^6.10.0",
    "eslint-plugin-cypress": "^2.9.0",
    "eslint-plugin-import": "^2.20.1",
    "eslint-plugin-jest": "^23.7.0",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-prettier": "^3.1.2",
    "eslint-plugin-react": "^7.18.3",
    "eslint-plugin-react-hooks": "^2.3.0",
    "faker": "^4.1.0",
    "http-proxy-middleware": "^0.20.0",
    "jest": "^25.1.0",
    "jest-watch-typeahead": "^0.4.2",
    "postcss-loader": "^3.0.0",
    "prettier": "^1.19.1",
    "start-server-and-test": "^1.10.8",
    "ts-jest": "^25.2.0",
    "ts-node": "^8.6.2",
    "typescript": "^3.7.5"
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants