@elpassion/zipdo-design-system v0.0.1
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/tacoyarn:
yarn add @elpassion/tacoCopy 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}'), // Existing project config
join(__dirname, '../../node_modules/@elpassion/taco/**/*.{js,jsx}'), // << This needs to be added to prune styles
...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
.jsonfile with the configuration of the selected property - create your own config
.jsonfiles 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()
In Taco, we use several packages that also need to be installed if you use some components.
Here is the list:
- DatePicker - react-datepicker
- SelectDropdown, AsyncSelect, CreatableSelect or Menu Dropdown - react-select
- Modal - react-modal
- Carousel - embla-carousel-react
- Table - 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
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>
);
}2 years ago