Real-Dev-Squad / skill-tree-frontend

Display the skills a user has and the endorsements created for adding new skills to users profile
https://skills.realdevsquad.com/
0 stars 12 forks source link

Create a resuable combo box component to choose and search a particular skill [RFC] #92

Closed Abhay5855 closed 1 week ago

Abhay5855 commented 1 month ago

Description Issue link

Why we are making this component ? There is a field in the endorsement form with label skill, we can have the option to choose from the list the particular skill or search from the list and then select the skill, also if we don't have any skill in the list we display a Add Skill - option that will redirect to alert for now.

Which Library provides combo box component? I have considered 3 Different Libraries that have the combo box component, that allows to select and search in the List.

  1. MUI

    • MUI is widely used library and provides the combo box component that fullfills our requirement.
    • The Combo box component - combo box
    • Screenshot of the component image
  2. Headless UI

    • Headless UI is a light weight fully customizable library, with no default styles present.
    • The Combo box component - combo box
    • SS image

3. React Aria components

Comparison of MUI (Material-UI), Headless UI, and React Aria Components

Feature MUI (Material-UI) Headless UI React Aria
Bundle Size Larger due to comprehensive features and built-in styles. Smaller since it provides unstyled components. Smaller, designed to be lightweight with focus on accessible hooks.
Customization Highly customizable with robust theming system. Default Material Design theme is extensible. Extremely customizable with unstyled components. Works well with Tailwind CSS and other CSS frameworks. Provides low-level hooks for building custom components. Full control over appearance.
Accessibility Built-in accessibility. Focuses on accessible, essential components Emphasizes accessibility. Part of React Spectrum ecosystem with related

Functional Requirements

Non Functional Requirements

Possible solutions:

yesyash commented 1 month ago
Abhay5855 commented 1 month ago

@yesyash

yesyash commented 1 month ago
Abhay5855 commented 1 month ago

@yesyash, These are the components, but we do need to install them as well they are the libraries as well Headless UI - https://headlessui.com/react/combobox React Aria components - https://react-spectrum.adobe.com/react-aria/ComboBox.html

iamitprakash commented 1 month ago

Hello @Abhay5855 as per discussion please use Headless UI and proceed ahead. cc- @yesyash

yesyash commented 1 week ago