budibase/packages/bbui
Budibase Staging Release Bot f4823c81ef v2.2.10-alpha.3 2022-12-20 11:08:52 +00:00
..
src Builder data section routing refactor (#8996) 2022-12-17 14:13:06 +00:00
.gitignore
LICENSE
README.md Fixing issue that refactoring file caused (some strings renamed to ts rather than js). 2022-09-22 15:18:10 +01:00
package.json v2.2.10-alpha.3 2022-12-20 11:08:52 +00:00
rollup.config.js Fixing issue that refactoring file caused (some strings renamed to ts rather than js). 2022-09-22 15:18:10 +01:00
yarn.lock Exclude all test utils packages from TS build (#9024) 2022-12-13 09:21:42 +00:00

README.md

Budibase bbui

A package that handles all common components across the Budibase organisation. You can find the current live version Here.

Install

  1. Clone
  2. npm install
  3. npm run svench

(Note: yarn won't work!)

Example workflow to create a component

  1. Create a file: Headline.svelte
  2. Create a Svench file: Headline.svench
  3. Build component and add variants to the Svench file.
  4. Once done, re-export the file in src/index.js.
  5. Publish, update the package in the main project and profit.

Guidelines

Making components

  1. Think about re-usability
  2. Use the css custom properties (variables) that are in the css stylesheet. This makes it easy to tweak things later down the line.
  3. Opt to forward events (<button on:click> for example) rather than using callbacks.
  4. Avoid adding margins to the outermost container of the component.

Using components and the styleguide

  1. Get familiar with the different props that exist on the component. If something vital is missing, make a PR and add it.
  2. Take advantage of the css custom properties in the stylesheet and avoid writing hard-coded values.
  3. Since there is no margin on the components, think about the structure of the DOM and how to achieve correct spacing, etc. This can be done using css grid + grid gap or with a container div where you specify a padding or margin. The best solution depends on the circumstance.

TODO

  • Figure out a good documentation situation
  • Add testing suite (E2E using Playwright?)

Other

The project uses Svench. It is somewhat akin to Storybook but a lot less bloated and much easier to setup. It also supports HMR for quick development.