Skip to main content

Contributing Guide

How to Report Issues​

If you encounter a bug, inconsistency, or any problem while using Qbit Design, follow these steps to report it:

  1. Identify and document the issue: Reproduce the issue and collect relevant details such as error messages, screenshots, and steps to replicate the problem.
  2. Visit the official issues page: Visit the official issues page or the bug report section on the website.
  3. Submit the issue: Click on the "New Issue" button and provide the following details:
    • Issue title: A concise summary of the problem.
    • Description: A detailed explanation of the issue, including steps to reproduce, expected behavior, and actual behavior.
    • Attachments: Upload any screenshots, logs, or other files to support your report.
  4. Confirmation: You will receive a confirmation email within seven days acknowledging your report.
  5. Resolution: The Qbit team will review your issue and notify you once it has been resolved or if additional information is needed.

Proposing a Change​

We welcome suggestions and improvements to make Qbit Design even better. To propose a change:

  1. Analyze Your Idea: Clearly define your proposed change, including its purpose, benefits, and any potential impact on existing features.
  2. Open a Discussion: Start a discussion by creating a post in the "Discussions" tab of the Qbit GitHub Repository.
  3. Draft a Proposal: Once your idea gains support, draft a detailed proposal, including:
    • The problem your change addresses.
    • How your change improves the library.
    • Any implementation details or examples.
  4. Submit the Proposal: Create a new issue titled "Proposal: [Your Idea]" and attach your detailed proposal.
  5. Review Process: The Qbit team will evaluate your proposal, and you’ll receive updates on its status.

Pull Requests​

We sincerely appreciate your contributions to Qbit Design! Your efforts help improve the framework, making it more efficient, user-friendly, and robust for developers worldwide. Whether you're fixing bugs, enhancing features, or improving documentation, every contribution plays a vital role in the project's success. To ensure a seamless collaboration, please follow these steps when submitting a pull request (PR):

  1. Fork the Repository: Go to the Qbit GitHub Repository and click the "Fork" button to create a copy under your account.

  2. Clone the Repository:

    git clone https://github.com/your-username/qbit.git
  3. Install Dependencies and Run Commands:

    # Install dependencies
    pnpm install

    # Run development server
    pnpm dev

    # Run tests
    pnpm test

    # Run Storybook
    pnpm storybook

    # Build project
    pnpm build
  4. Folder structure for creating a new element or skin:

    Project file
    ├── src
    │ └── skins
    │ ├── default skins
    │ │ └── element skins folder
    │ │ └── element skins
    │ └── optional skin
    │ └── element skins folder
    │ ├── other skins for the element
    │ ├── other skins for the element
  5. Commit and Push Considerations:

    • Follow Conventional Commits
    • Ensure test cases have a pass rate above 70%
    • Use the branch naming format: feature/ACEL-1234/feature-branch
    • Husky & ESLint will validate code before pushing
    • Install required extensions on your VS Code: Prettier, SonarQube, NPM Intellisense, GitLens, Git Graph.
    • Submit pull requests to the dev branch
    • Engage in GitHub conversations for reviews
    • Successfully merged branches will be deleted

Development Workflow​

Qbit Design is an easy-to-implement element library with a logical and design-separated architecture. Follow these steps to integrate it:

  1. Install Qbit:

    pnpm install qbit
  2. Import the Required Element:

    import Element from '@qbit/Element';
  3. Use the Element in Your Component:


    # creating a sample function for pass in onclick props


    # creating a sample function for pass in onclick props

    const SampleFunction = () => {
    alert('It’s done');
    }

    <div>
    <QbitElement renderer={ElementSkin} onClick={SampleFunction} props={props} />
    </div>
  4. Apply Skins:

    import CustomSkin from '@skins/designedSkin';
    import QbitSkin from '@qbit/defaultSkins';

    <Element renderers={{ renderer: QbitSkin, childRenderer: CustomSkin }}>
    <Children props={props} />
    </Element>
  5. Run the Project:

    pnpm dev

Development Tools​

Supported Browsers for Testing​