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
Copy base tailwind config to use tokens
In order to use this library you'll have to generate tokens file by calling initDefaultTheme()
and wire it to your tailwind.config.js
. Pass package directory to tailwind content Array and install @tailwindcss/forms
.
const { join } = require("path");
const { initDefaultTheme } = require("@elpassion/taco");
module.exports = {
darkMode: "class",
mode: "jit",
content: [
join(__dirname, "./app/**/*.{js,ts,jsx,tsx}"),
join(__dirname, "./node_modules/@elpassion/taco/**/*.{js,jsx}"),
],
theme: initDefaultTheme(),
plugins: [require("@tailwindcss/forms")],
};
Add your own custom theme configures
You have to merge the default theme and custom project config you created:
const { merge } = require('lodash');
const customProjectConfig = {...}
module.exports = {
...
theme: merge(initDefaultTheme(), customProjectConfig),
...
};
You can use your own tailwind variables.
- 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()
colorsTokenHelpers()
radiusTokenHelpers()
In Taco, we use several packages that also need to be installed if you use some components.
Here is the list:
- DatePicker - react-datepicker
- Dropdown: SelectDropdown, AsyncSelect, CreatableSelect or MenuDropdown - react-select
- Modal - react-modal
- Carousel - embla-carousel-react
- Table - @tanstack/react-table
- WYSIWYG - react-quill
If you want to import any of the above components use :
import { ComponentName } from "@elpassion/taco/ComponentName";
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
For icons, we use our own font. If you want to use Taco icons, this font has to be imported. For this purpose add the code below to the main styles file (e.g. globals.css) in your project:
@font-face {
font-family: "icons";
src: url("https://elpassion-design-system.s3.eu-west-1.amazonaws.com/fonticon.ttf")
format("opentype");
}
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>
);
}