Open hacdias opened 6 years ago
@hacdias I expect it will be easier if you focus on Desktop for now and make it awesome.
Just like you suggested, having components in the same repo (or submodule -- pick which one makes more sense to you) will enable you to iterate faster. As your work progresses you will see opportunities to extract things that implement Web UI Kit into reusable styles and components.
I would not migrate other apps to them until you feel it is safe to switch Desktop itself to styles/components from external repo. Ignore Companion for now, it would be only a distraction, given it uses tachyons and choo for UI right now. We will apply UX changes to it later, when UI kit is stable.
ps. we need to reword the KR about WebUI, because name change was vetoed: https://github.com/ipfs-shipyard/ipfs-webui/issues/612#issuecomment-353508706
@lidel for now, I'll keep them on the same repository for now and focus only on Desktop. I'll now focus on Desktop and start moving things over to another repo when the UI kit is more stable and when I feel I can use them on Desktop š
I'm interested in how we'd like to implement the shared components and the UI style guide.
After spending lot's of energy trying to wrangle ui systems that worked at the bootstrap kind of scale of components, I'm now more interested in things that focus on much smaller building blocks, like common type, colour and spacing, that are be really nice to play with, and trivial to compose, like tachyons.
As a (p)react friendly extension of those ideas, I'd like to propose https://github.com/jxnblk/styled-system as part of our plan. We can export the core values of the style guide as a json object as per https://github.com/jxnblk/styled-system#configuration and iterate on products independently without to much co-ordination, and still retain a shared look. If we can agree on those fundamental building blocks, then once we've got a bunch of UIs we can start to extract and share composite components where useful.
Linking to (closed) https://github.com/ipfs/ipfs-gui/issues/7 for the sake of reference -- there are lots of mockups in here that we don't want to lose sight of for future work.
Linking to (closed) https://github.com/ipfs/ipfs-gui/issues/76 for reference on prior work undertaken for a shared React component library.
April 2020 update
Let's use this issue as a placeholder for future work on component-izing UI elements (including documenting them, style-guide-wise) in a manner that can easily be reused by all our helper apps as well as anyone else who'd like to build on the core IPFS look and feel.
Note: this should probably end up with its living home in the IPFS UI Style Guide. See issue https://github.com/ipfs-shipyard/ipfs-ui-style-guide/issues/2 (closed in favor of this meta-issue).
Original issue text follows:
Over the last week, I opened some issues, PRs and a repository. All about the same thing: reusable components. And I'm opening this issue to get a central point to discuss everything about this and define priorities and goals.
So, first of all, the references:
@akrych published the first Web GUI Kit on #7 yesterday and it is amazing and there are some things I want to get clear before moving more than I've moved.
During the last week, I fixed some stuff on Desktop, but it was on the PR related to the components so this won't get merged soon, but I am proposing the following.
About IPFS Desktop
This will be the priority for now. @akrych will start drawing some wireframes for it and we can start implementing the new UI on it right after. I started using the ipfs-react-components library on the PR I created (https://github.com/ipfs-shipyard/ipfs-desktop/pull/596) but I'm thinking about moving the components to a directory on IPFS-Desktop or use a Git Submodule.
Why? There is an issue with Electron Forge and it is making it very hard to deploy and develop faster since I can't link the module.
Steps I suggest to do:
ipfs-react-components
components again to IPFS-Desktop repository.About IPFS Companion
Since I'm not really into IPFS Companion, I'd like to ask you what do to next here š /cc @lidel
About IPFS WebUI
After having IPFS Desktop with a nice UI and UX everyone agrees with (as you said @olizilla), we can move to IPFS WebUI. I was taking a look at the OKRs we've got defined for this quarter and saw this:
It was classified with priority 4. My suggestion is to forget the PR I started (https://github.com/ipfs-shipyard/ipfs-webui/pull/618) and start working on
ipfs-dashboard
using the new elements and the new UI. And, when it gets finished, we can replace IPFS WebUI by IPFS Dashboard.About the Reusable Components
So, as you all probably know, I created a repository called
ipfs-react-components
and I was very happy because it was all working. But now it seems it was slowing me down a bit. My suggestions here are to:ipfs-desktop
.In the meanwhile, all the components we make should be "stupid" components, I mean, they don't need Electron's or the browser APIs to work. They receive information and they just work.
What do you all think? Let's make this clear and move forward fast. š Sorry for not having this clear yet.