eccenca GUI elements
Collection of React elements based on Palantir BlueprintJS and IBM Carbon, used for eccenca Corporate Memory applications.
How to install
We provide packages via npm registry of GitHub Packages, you need to enhance your project .npmrc
file by:
@eccenca:registry=https://npm.pkg.github.com
It could be also included as Git submodule to your projects and used via yarn link or yarn workspaces.
How to use
- To include SCSS styles for all basic components add
@import "~@eccenca/gui-elements/index";
into your main SCSS file. - To use extensions and special Corporate Memory components the include of
@eccenca/gui-elements/extensions
and @eccenca/gui-elements/cmem
is necessary - To include only the default configuration add
@import "~@eccenca/gui-elements/src/configuration/variables;
into your SCSS file.
Justify default configuration
All configuration variables can be set before importing the full library or the default configuration but for the main changes you should need to change only a few parameters:
- Basic colors
$eccgui-color-primary
: color for very important buttons and switches$eccgui-color-primary-contrast
: readable text color used on primary color areas$eccgui-color-accent
: color for most conformation buttons, links, etc$eccgui-color-accent-contrast
: readable text color used on accent color areas$eccgui-color-applicationheader-text
$eccgui-color-applicationheader-background
$eccgui-color-workspace-text
$eccgui-color-workspace-background
- Basic sizes
$eccgui-size-typo-base
: size including absolute unit, currently only px
is supported$eccgui-size-typo-base-lineheight
: only ratio to font size, no unit!$eccgui-size-type-levelratio
: ratio without unit! used to calculate different text sizes based on $eccgui-size-typo-base
$eccgui-size-block-whitespace
: white space between block level elements, currently only px
is supported
How to develop
Allowed branch names
Aside from the main
and develop
branches we have some rules for branch names and they must be prefixed:
feature/*
: feature branches introducing new elements and functionalitybugfix/*
: used to fix bugs without extending functionality, leading to patch release of the most recent versionhotfix/*
: used to fix bugs of past versions, they can tagged directly by the developer to publish packages (not implemented yet!)temp/*
: branches for testing purposes, they wont get merged, only deleted from time to timerelease/*
: release branches, they must be created from latest develop
via the GitHub interface
Running tests
Run the Jest tests with yarn test
, for test coverage information run yarn test:coverage
.
You can check easily code for code errors by yarn compile
(JS/Typescript) and yarn compile-scss
(SASS).
Running Storybook
All storiy source files are kept in the respective components, extensions and cmem folders, using *.stories.tsx
file name pattern.
Run the storybook by
yarn install
yarn storybook
If you want to include Jest test results into the Storybook, run yarn test:generate-output
before yarn storybook
.
If the stories and the tests share exactly the compononent name in the file names, e.g. Button.stories.tsx
and Button.
, then tests are included automazically when the test output is available.
In case the file names cannot match by pattern then test file names need to be configured in the stories:
Default.parameters = {
jest: "MyTestFile.test.tsx",
};
Process for pull requests and publishing releases
feature/*
and bugfix/*
branches are merged into develop
via pull requestrelease/*
branch is created from develop
via GitHub interface, there will be created a pull request automatically
- PR from release branch into
main
need to be approved
- this will lead to a published package of the release
License
Apache License, Version 2.0, January 2004