Installation
TACO UI
TACO UI is a system of React components highly based on tailwindcss, it is available as an npm package.
See full documentation here via storybook
npm:
npm install @elpassion/taco
yarn:
yarn add @elpassion/taco
In Taco, we use several packages that also need to be installed.
Here is the list:
- react-datepicker
- react-select
- react-modal
- embla-carousel-react
- react-table
- react-quill
If you add a new package to the design system, please add it to the list above, and what's more important, you have to add this package to peerDependencies in npm-package.json
Copy files
In order to use this library you'll have to generate tokens file and wire it to your tailwind.config.js
with generateConfigFunc()
or initDefaultTheme()
. And pass package directory to tailwind content Array.
const { initDefaultTheme } = require('@elpassion/taco');
const { merge } = require('lodash');
const customProjectConfig = {
extend: [...]
}
module.exports = {
darkMode: "class",
mode: "jit",
content: [
join(__dirname, './pages/**/*.{js,ts,jsx,tsx}'),
join(__dirname, '../../node_modules/@elpassion/taco/**/*.{js,jsx}'),
...createGlobPatternsForDependencies(__dirname),
],
theme: merge(initDefaultTheme(), customProjectConfig),
plugins: [require('@tailwindcss/forms')],
}
Custom tokens
If you want, yo can use your own tokens values for chosen components. To do so, except using initDefaultTheme()
:
- import appropriate tokenHelpers function
- create your own config
.json
file with the configuration of the selected property - create your own config
.json
files with values for chosen component - extend tailwind config with them like below:
const { colorsTokenHelpers } = require("@elpassion/taco");
const customProjectConfig = {
extend: {
colors: merge(colorsTokenHelpers.getColorsConfig(colors), {
hoveredFacebookButton: "#f9f9f9",
hoveredGoogleButton: "#f9f9f9",
}),
...merge(
...colorsTokenHelpers.getComponentsColorConfig(
["button"],
importJson,
colors
)
),
},
};
The following helpers are currently available:
colorsTokenHelpers()
radiusTokenHelpers()
Optionally (WIP) (Now it's still required for some compoennts to work)
You can use icons locally from icons font or use cdn https://elpassion-design-system.s3.eu-west-1.amazonaws.com/fonticon.ttf
TODO:
- Allow importing font file from npm package
Then use it in your app for example:
import React from "react";
import Button from "@elpassion/taco";
export default function App() {
return (
<div className="App">
<Button {...props} />
</div>
);
}