D2-UI is a user interface component library for developing DHIS2 applications. The core development team uses and maintains these components to ensure visual consistency between DHIS2 web applications.
This is a monorepo comprised of many packages which are individually published to NPM using Yarn Workspaces. Yarn Workspaces handles linking the packages in this repository together, and ensures that everything is using the latest code.
See packages to see what components are available.
The example application
In the d2-ui root directory:
yarn install yarn watch
In the examples/create-react-app subdirectory:
Now you are able to change any component in packages/ and the changes will be reflected live in the example application.
Linking individual components
When working on a component that's consumed by a different app, you can preview the changes without publishing by using
yarn link. Let's say you're working on the
legend component. First you'll need to build the components. Run this from the d2-ui root directory:
yarn install yarn run build
After that link the components you're working on (we'll use legend for this example):
cd d2-ui/packages/legend/build yarn link
After that, change directory to the app that consumes the component you're working on (let's say the maintenance-app). From the root of that project run:
yarn link @dhis2/d2-ui-legend`
This will link your local version of the component and your local changes will be reflected in the app.
See how to contribute.
Documented in RELEASING.