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

Component library for UI elements and accompanying style guide #29

Open
hacdias opened this issue Jan 20, 2018 · 5 comments
Open

Component library for UI elements and accompanying style guide #29

hacdias opened this issue Jan 20, 2018 · 5 comments
Labels
dif/medium Prior experience is likely helpful effort/weeks Estimated to take multiple weeks kind/discussion Topical discussion; usually not changes to codebase need/analysis Needs further analysis before proceeding P3 Low: Not priority right now status/deferred Conscious decision to pause or backlog topic/design-front-end Front-end implementation of UX/UI work topic/design-ux UX strategy, research, not solely visual design topic/design-visual Visual design ONLY, not part of a larger UX effort

Comments

@hacdias
Copy link
Member

hacdias commented Jan 20, 2018

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 ipfs-inactive/ipfs-ui-style-guide#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 (ipfs/ipfs-desktop#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:

  1. Move the ipfs-react-components components again to IPFS-Desktop repository.
  2. Fix the issues I've got listed on Fixes Bunch ipfs-desktop#596.
  3. Implement the new UI scheme and during this part of the development, always make the components the more abstract as possible so they can be easily moved to a shared library.
  4. Make this awesome!

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:

ipfs-dashboard is built as a reusable replacement for ipfs-web-ui

It was classified with priority 4. My suggestion is to forget the PR I started (ipfs/ipfs-webui#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:

  1. Wait until we have the new GUI Kit implemented on ipfs-desktop.
  2. Then implement this elements and move some of the other reusable elements created on ipfs-desktop to that repo.
  3. Then, use it during the development of IPFS Dashboard.

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.

@lidel
Copy link
Member

lidel commented Jan 20, 2018

@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: ipfs/ipfs-webui#612 (comment)

@hacdias
Copy link
Member Author

hacdias commented Jan 20, 2018

@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 😄

@olizilla
Copy link
Member

olizilla commented Jan 21, 2018

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.

@ericronne ericronne added design topic/design-visual Visual design ONLY, not part of a larger UX effort and removed design labels May 22, 2019
@jessicaschilling
Copy link
Contributor

Linking to (closed) #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.

@jessicaschilling jessicaschilling added dif/medium Prior experience is likely helpful effort/weeks Estimated to take multiple weeks kind/discussion Topical discussion; usually not changes to codebase need/analysis Needs further analysis before proceeding P3 Low: Not priority right now status/deferred Conscious decision to pause or backlog topic/design-front-end Front-end implementation of UX/UI work topic/design-ux UX strategy, research, not solely visual design labels Apr 6, 2020
@jessicaschilling
Copy link
Contributor

Linking to (closed) #76 for reference on prior work undertaken for a shared React component library.

@jessicaschilling jessicaschilling changed the title Components, UI Style Guide and Focus Component library for UI elements and accompanying style guide Apr 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dif/medium Prior experience is likely helpful effort/weeks Estimated to take multiple weeks kind/discussion Topical discussion; usually not changes to codebase need/analysis Needs further analysis before proceeding P3 Low: Not priority right now status/deferred Conscious decision to pause or backlog topic/design-front-end Front-end implementation of UX/UI work topic/design-ux UX strategy, research, not solely visual design topic/design-visual Visual design ONLY, not part of a larger UX effort
Projects
No open projects
Status: Needs Grooming
Development

No branches or pull requests

5 participants