Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI Components Library #44668

Closed
37 of 49 tasks
ahmaxed opened this issue Jan 4, 2022 · 34 comments
Closed
37 of 49 tasks

UI Components Library #44668

ahmaxed opened this issue Jan 4, 2022 · 34 comments
Labels
platform: learn UI side of the client application that needs familiarity with React, Gatsby etc. scope: UI Threads for addressing UX changes and improvements to user interface

Comments

@ahmaxed
Copy link
Member

ahmaxed commented Jan 4, 2022

Description:

We need a better way of managing our styles and components. In order to achieve that we should create our own light-weight component library that uses Storybook (isolate the components and document them) and tailwindCSS (style each component) and make sure it meets the web accessibility requirements.

Todo list:

Completed tasks

Development steps

Refer to the Component Library documentation for research and development steps.

Notes

  • After the above-mentioned components are released to production, the rest of the UI components will be added to the library and all CSS will be removed from the client directory.
  • This issue is based on discussions in UI Components Library #41580
  • Comments with lower priority are deleted regularly to reduce the communication overhead.
@ahmaxed ahmaxed added scope: UI Threads for addressing UX changes and improvements to user interface platform: learn UI side of the client application that needs familiarity with React, Gatsby etc. labels Jan 4, 2022
@ahmaxed ahmaxed pinned this issue Jan 4, 2022
@freeCodeCamp freeCodeCamp deleted a comment from Ismailtlem May 23, 2022
@masterX89
Copy link
Contributor

masterX89 commented Jul 27, 2022

Hi! I found these components like DropdownButton , Modal and ToggleButton are considered using Headless UI. So I wonder if Tabs, Tab and TabPane could also consider Headless UI's Tabs?
Can I try to work on these above components?

@ahmaxed
Copy link
Member Author

ahmaxed commented Jul 27, 2022

@masterX89, we consider using headlessUI if the component is complex and using headless UI would speed up the implementation considerably.
Feel free to research a component that you are interested in and summarize your findings in a new issue. Then, we could discuss the implementation in more details.

@JordanMooree JordanMooree unpinned this issue Aug 7, 2022
@JordanMooree JordanMooree pinned this issue Aug 7, 2022
@mriiad
Copy link

mriiad commented Aug 8, 2022

Hello @ahmadabdolsaheb, I would like to work on Panel & MenuItem please!

@ahmaxed
Copy link
Member Author

ahmaxed commented Aug 9, 2022

Thanks for your interest @mriiad.
Please feel free to proceed with reading the issue and related documentation thoroughly and opening an issue with your research findings on the Panel component.

Let's hold of on the Menuitem since it is very close to what @shootermv is working on in #47043.

@lexyd
Copy link

lexyd commented Aug 18, 2022

@ahmadabdolsaheb Is there a design file like on Figma where the consistency of the UI components can be designed first.

I would like to contribute to it.

@ahmaxed
Copy link
Member Author

ahmaxed commented Aug 19, 2022

@lexyd at this point we are focusing on replacing the existing customized react-bootstrap library.

Once that is done, we will audit our component library's design. We could consider having Figma files then, but it would be more work to keep them in-sync over time.

I will tag you if we decide to go down that route. Meanwhile, feel free to work on the remaining components if you are interested.

@freeCodeCamp freeCodeCamp deleted a comment from hectoraldairah Aug 19, 2022
@freeCodeCamp freeCodeCamp deleted a comment from Jmagero Aug 19, 2022
@freeCodeCamp freeCodeCamp deleted a comment from huyenltnguyen Aug 19, 2022
@freeCodeCamp freeCodeCamp deleted a comment from wadhia-yash Aug 19, 2022
@rajgaur98
Copy link
Contributor

rajgaur98 commented Nov 3, 2022

Hi @ahmadabdolsaheb , I was researching for the ToggleButton component.
I have a question, do we need to implement the ToggleButton from components/helpers or the ToggleButton from @freecodecamp/react-bootstrap ?

@ahmaxed
Copy link
Member Author

ahmaxed commented Nov 3, 2022

@rajgaur98, thanks for your interest. For the first iteration, it should replace the @freecodecamp/react-bootstrap and include the style overwrites.

@Sboonny
Copy link
Member

Sboonny commented Jan 21, 2023

<Tab> element doesn't exist in codebase, how should we implement it in the UI_Component?

@ahmaxed
Copy link
Member Author

ahmaxed commented Jan 25, 2023

@Sboonny, there used to be one, but it has been removed recently. I removed it from the spec accordingly.

@Sboonny
Copy link
Member

Sboonny commented Apr 23, 2023

I have marked ToggleButtonGroup off, because it has been recently deleted from the codebase.

@fluxthedev
Copy link

If no one's started the modal component. I should be able to knock that out. My nickname was modalBoi when I was on a project at Victoria's Secret 😂

@kondapalli19
Copy link

I would like to work on this issue can you assign it to me?

@fluxthedev
Copy link

I would like to work on this issue can you assign it to me?

Go at it, work and life hit so I won't be able to git to it anytime soon.

@JordanMooree
Copy link
Sponsor Member

@kondapalli19 please refer to this comment - no assignment is necessary

@sidemt sidemt unpinned this issue Jul 11, 2023
@naomi-lgbt naomi-lgbt pinned this issue Jul 11, 2023
@ahmaxed ahmaxed mentioned this issue Aug 7, 2023
6 tasks
@winniecwng
Copy link

Hi, there's a comment above that we don't need to be assigned to work on an issue but I just want to make sure that's the case; I'd like to work on the "Audit and clean up any unused CSS" but not sure if this issue will start until all styles are changed to tailwind

@Sboonny
Copy link
Member

Sboonny commented Sep 8, 2023

Hi, @winniecwng.

Ideally the CSS properties removal should occur with the swapping of the components, because if we need to revert the component PR, we won't need to revert multiple PRs, the PR that adds the component, and the PR that removes the CSS properties, which can lead to broken styles if the order of reverting is incorrect.

if you want to focus purely on cleaning unused CSS, feel free to open PR that clean unused CSS that you find unused, no need to wait, but waiting can make things easier for you.

@KSSaiTeja
Copy link
Contributor

@ahmaxed i want to work on replacing react-bootstrap. could you please tell me more about this.

@ahmaxed
Copy link
Member Author

ahmaxed commented Sep 19, 2023

@KSSaiTeja, thank you for our interest. The component creation phase has been completed. Now @Sboonny is focused on replacing the components and cleaning out the styles from the client. Feel free to start with replacing the Alert component.

@KSSaiTeja
Copy link
Contributor

@ahmaxed thanks for the reply. could you please tell me what should i do in alert component

@KSSaiTeja
Copy link
Contributor

@ahmaxed should i optimsize the alert component? if you don't mind.. as a beginner i didn't understand what should i do now. could you please tell me clearly what should i do now and mentioning the file you're saying..

Hope you will give reply soon..!

@Sboonny
Copy link
Member

Sboonny commented Sep 19, 2023

@KSSaiTeja, the workflow should be similar to the Button component PR, and it should be simpler.

  • export the function in tools/ui-components/src/index.ts.
  • build the development environment. so you can easily import the component through TypeScript.
  • remove the Alert import from bootstrap.
  • import the Alert from the library.
  • swap the bsStyle prop with variant prop, TypeScript should warn you if you missed a prop.
  • check if the classes related to .alert and .alert-success are needed, if they aren't needed, remove them.

Note:

There are classes in bootstrap.min.css but they shouldn't be changed, because the file will be deleted later when the components are merges.

@KSSaiTeja
Copy link
Contributor

@Sboonny thanks for the reply. i will follow your instructions and implement them. And will raise a PR soon

@Eleazar23
Copy link

Hi, I would like to help with this task: Remove @freecodecamp/react-bootstrap as a dependency

@huyenltnguyen
Copy link
Member

Hey @Eleazar23, thank you for the interest! We are still in the process of build new components, so the dependency replacement is currently still blocked. Please check back later, and in the meantime, we are looking for contributions with issues labelled with help wanted or first timers only.

@Sboonny
Copy link
Member

Sboonny commented Oct 12, 2023

Image and ToggleButton aren't used in the /learn, we can decide what to do with them later, for now I won't create a PR that add them to /learn.

There are good points mentioned by Huyen about the future of the library, that we can discuss and go into further details and how they can be implemented.

@Sboonny Sboonny unpinned this issue Oct 12, 2023
@ahmaxed
Copy link
Member Author

ahmaxed commented Oct 19, 2023

The remaining tasks have been migrated to #52030

@ahmaxed ahmaxed closed this as completed Oct 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
platform: learn UI side of the client application that needs familiarity with React, Gatsby etc. scope: UI Threads for addressing UX changes and improvements to user interface
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.