With Testlio 3.0 we developed a scalable design system called Panthera. The name Panthera came from the Lion theme at Testlio. Lion has a scientific name “Panthera leo” and it belongs to a group of cats called Panthera which is a genus within the family of Felidae. It aligns well as a Design System is the single source of truth which groups all the elements that will allow the teams to design, realize and develop a product.
To use the library in your application, npm install @testlio/panthera
.
Import components with eg. import { Button, Card } from '@testlio/panthera';
Import component-specific types with import { TTableSortDirection } from 'panthera/primitives/Table';
Develop locally by running styleguide. There are two options:
- directly from this repo folder with
npm run styleguide
- dockerized, running
docker-compose up -d panthera
inCompose
folder. Styleguidist is served on port6060
->http://local.testlio:6060/
.
- make sure you've ran
npm install @testlio/panthera
on the receiving end - run
npm pack
in Panthera - unzip the tarball in the receiving app, in the
node_modules/@testlio/panthera
folder - replace the contents of
node_modules/@testlio/panthera
folder with the contents of the newpackage
folder - important! make sure you don't delete the node_modules folder in the folder mentioned above
- making sure you're on a clean branch (all changes committed)
- making sure that package build works by running
npm pack
- running
npm version patch | minor | major
, depending on the scope of changes since the last publish (bugfixes | new features | breaking changes).npm version prerelease --preid=YOUR_FEATURE_HERE
if you'd like to publish a package for testing in staging. - push package.json change and tags with
git push --follow-tags
- check CircleCI and approve the
approve publish npm package
task once available
If the component needs to be deprecated please do the following:
- Mark component as deprecated with a special notation
/**
* @deprecated Please use NewComponentName component instead.
*/
const ComponentName = () => {
...
}
- Please updated the Readme of the deprecated component with a note:
***Component is deprecated, please use [NewComponentName](#newcomponentname) component instead!***