-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
RFC: Amplify UI Component Library Refactor #3279
Comments
Note: all experience has been with the React components. I'm glad to see that the team will refactor these components.
|
Hey @ajhool, Thank you for the feedback.
|
Thanks for the response and I look forward to contributing towards Storybook integration and Typescript compatibility, these are excellent tools! Would it be helpful if I created a Storybook integration for the existing UI components? If so, would the team accept the use of typescript to build the storybook? |
We would greatly appreciate the contribution of Storybook integration with our existing UI components and accept the use of Typescript to build this! If this is something you would like to contribute, you can open a new issue to track this feature request/implementation and reference this RFC. |
Same note as @ajhool Hi, I agree with ajhool on all the points. The doc is really great for a beginner with lot of exemples but once you try to make more complex uses cases there are some important points and props that are not documented. And searching in source code is quite annoying. Storybook or a similar product could be a good solution I also agree on the amplify lib development "break-neck" thing. Sometimes I'm completely wondering why a feature is not implemented whereas it's a typical use case for a website. For instance, user administration, choose on wich s3 bucket I want to upload my files (default one or another one) and lot more and i'm not talking about visual components. Everytime amplify is updated I'm wondering what have changed. With this new approach it could be an excellent idea to implement a changelog system. It will sure avoid some side effects du to upgrading the library in the future. During the last month amplify have changed a lot and I think this proposition of refactoring is a great news for amplify developers and users. |
|
Hi, following the discussion here : #4515 (comment) can you add this to your things to do on amplify-ui : (@ericclemmons, tell me if it's enough or if i have to open a specific issue and link it here. ) Thanks ! |
This probably isn't right but as of now I think in terms of signup/signin forms aren't all bad. The default auth ui sucks but you can easily make your own! I Found using formik works well for auth forms, it's simple where you can make checks for basic things like "is it an email" or "is it a zipcode", but what I think would be nice is a way to check something like isValidPassword() for when you login because while the auth form handles all this, not all people want to use it. In my case I use filepond for uploading files, and I can't do that with the auth form, so these tiny details would be nice. Or add a component that's highly customizable. A side suggestion would be to change the community channel Glitter to something like Slack. One major problem is if you want to search something it's almost impossible on Glitter. Some things on the wiki are not up to date or complex and when someone explains it it's impossible to find and or the chat is dead and no one really has a solution. I think Slack or some other program would be nice and it would allow us to easily communicate, possibly track issues from Slack or discuss problems and solutions with AWS devs and the community. |
Is there a list of issues related to this RFC, or is it still in discussion? I'd love to start contributing and it would be awesome if related issues could be triaged with a label for it and good-first-issues too. |
We used amplify-react, then amplify-react-native, and then built a custom UI for the next project. There are so few AmplifyJS API calls needed for each auth component that I'd rather see good documentation on how to set up an "Authenticator" yourself. Handling auth state changes + specific API calls to do Signin, forgot password, etc. Building a signin form is not hard. Handling Amplify's auth flows properly is. Help us model our UI in the correct form, but don't make us try to customize a premade one. |
Amplify UI Component (Preview)Hello all, Wanted to provide an update on the status for this project and give an overview of the phases we are planning on releasing in the near future. As mentioned above in this RFC the problems we wanted to solve for this project included:
Phase 1In Phase 1 of this project we will seek to solve or at least alleviate all of the problems listed above. To achieve this we will be releasing a brand new web component library and new libraries for each of the frameworks that we currently support. The framework libraries will include React, Angular, and Vue and these will be generated based off of the code in the core web components library. The original component libraries offered in the current release of amplify-js will go into maintenance mode and we will no longer be adding features to these libraries. For customers using the original React, Angular, or Vue component libraries, we will be providing migration guides for those looking to migrate to using the new components. Phase 1 is complete when we are at feature parity with the original UI component libraries. Here is a breakdown of the new libraries being added:
The For feedback and feature requests related to this preview release please open a new issue in our issue queue and add the label: Amplify UI Components. Also, feel free to comment below on this RFC. Phase 2Once our new UI component libraries are at feature parity with the original libraries, we will move on to Phase 2. In this phase we will be looking to address the comments and requests presented in this RFC. I really like the ideas presented here especially the one about offering an In addition to addressing the comments in this RFC, we will also be doing a retro on the issues and feature requests in our queue related to UI components. This milestone will be used to track the progress for these. Phase 2 may also include new components from other Amplify categories like Predictions or API. If anyone would like to contribute ideas to what components you’d like to see added in the future please post it in this RFC or open a new feature request with the Amplify UI Components label! Thank you!The feedback that you all give is extremely helpful and gives us a better understanding of what people want us to build. Go ahead and try out the new component libraries and let us know what you think. |
The Phase 1 of the post I made above has been released for the Auth category components! Here is the blog post: Here is our new preview Docs: We will now be working on adding additional category support for Storage, API, etc. and then moving on to Phase 2. I am going to close this RFC now. Thank you everyone for the feedback on this Issue! Cheers 🍻 |
This issue has been automatically locked since there hasn't been any recent activity after it was closed. Please open a new issue for related bugs. Looking for a help forum? We recommend joining the Amplify Community Discord server |
This issue is a Request For Comments (RFC). It is intended to elicit community feedback regarding a proposed change to the Amplify JS UI components. Please feel free to post comments or questions here.
Current state of Amplify UI Components
Amplify JS currently provides a library of UI components intended to help developers leverage Amplify categories such as API, Auth, Storage, Interactions and XR. These UI components are implemented in different modules based on a particular frontend framework. Currently these frameworks include:
The components provided by these modules are implemented in each respective JavaScript framework with duplicated logic. UI components are loosely styled using the Amplify UI style guide with some shared and some duplicated CSS. UI components are customizable but this functionality is limited and lacks parity between frameworks.
The Problem
This framework-specific approach has led to a variety of maintenance and extensibility challenges, including but not limited to:
The Proposed Solution
Overview
Currently, we plan to implement an Amplify UI design system using Web Components generated by StencilJS. We plan to refactor the current framework-specific component logic to alternatively use the logic implemented inside of web components from this design system.
Additionally, we will utilize CSS-in-JS to create a more flexible customization and theming strategy for components. We are evaluating the use of Emotion to build this strategy into our web components.
This approach has a number of benefits associated with it, including but not limited to:
Design Requirements
Related Github Issues
Customizable components
Component improvements
Related milestone: https://github.com/aws-amplify/amplify-js/milestone/13
The text was updated successfully, but these errors were encountered: