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

Is this real name of the library or just some artefact? #10

Open
olso opened this issue Nov 17, 2018 · 7 comments
Open

Is this real name of the library or just some artefact? #10

olso opened this issue Nov 17, 2018 · 7 comments

Comments

@olso
Copy link

olso commented Nov 17, 2018

It's kind of confusing to me 🤔 (some buzzwords may be ahead).

List of current libraries I've found

Random dapp components

I wanna ask some questions, it will also help me understand current direction of this repo ✌️.

The goal of this repo is to ultimately create framework (atomic component library), which could be used across whole Status DAO and other DAOs, a framework for everybody ✨ so we can build cities 🏙.

Framework which works for Web, PWA, React Native, Desktop, Dapps. This is kind of difficult to manage in my opinion. Already, we see a problem with having universal components, however, people have tried to work around this problem in form of

My personal opinion is to abandon React Native all together and just use React Web PWA with WASM for crypto libs and 'native' stuff. However, I'm aware that this is currently a no go, because we would loose the wallet wrapper/injection

I've been pointed to outline of the goal here presentation on drive created by https://discuss.status.im/u/ned

I've been in contact with Ned (sadly only on Telegram, I wasn't in the ecosystem yet and didn't really adhere to openness principles yet). We've learned that all projects are building their own thing, but in the end, we are essentially going to end up with the same components for the decentralised web.

Examples of split components own projects which could benefit from having a framework

Some examples of projects building their own thing

Guys from Aragon are building their own design system in form of https://lorikeet.design. We all wanna build but are kind of stuck on with playing with colours.

swarm city

What the goal would look like (technical)

  • component library framework (a single source of truth) [design language/system/spec/sketch/figma]
    • renders to (many render targets)
      • theme wrapper/whitelabel
        • react web (website/storybook/pwa)
        • react native (ios/android)
        • server side
        • dapps (define this)
        • even some web vr/ar stuff
        • extensions?

What do you think of this?

I'm aware of https://xkcd.com/927 😉 and reinventing the wheel memes

Links

https://discuss.status.im/t/universal-component-library-for-status-dao-and-other-daos/762

https://discuss.status.im/t/component-library-11th-oct-meeting-notes/559

https://discuss.status.im/t/community-design-system/721

@olso olso changed the title Is this real name of our library or just some artefact? Is this real name of the library or just some artefact? Nov 17, 2018
@bgits
Copy link
Contributor

bgits commented Nov 17, 2018

This repo came into existence as a proof of concept for the reasons you outline in the goals section.

I personally just figured if I have to build a component for a DApp, I might as well build it here and then import it into the project rather than rebuilding components for each DApp. If we want developers building DApps for Status that play nice it stands to reason such a library will make it easier for developers in the larger community.

Storybook is the name of the framework used to house the components and so it became the name of this repo, but I don't think anyone cares if we change the name.

Something I think would be interesting is building out some of the web3 specific components outlined in this article, which few real world projects have done. The transactions in Metamask are an example that implement such design. https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1

@andytudhope
Copy link
Contributor

andytudhope commented Nov 17, 2018

  1. Don't care about the name - we can call it whatever you like.

1a. EDIT: please can we stop saying things like "Aragon are building their own design system in form of https://lorikeet.design". Aragon built their own design system, https://ui.aragon.one and are now helping with Lorikeet precisely because having your own system leads to xkcd cartoons.

  1. Let's break your first sentence down:

The goal of this repo is to ultimately create framework (atomic component library)

Is it really? This repo is specifically for components related to Status DApps, re-using elements from Status itself. I agree that we should not be building "Status" components long-term because that approach is exactly what leads to the xkcd cartoon's truth value. Lorikeet is one of the best opportunities we have to avoid that, precisely because we can build neutral components and focus on web3 functionality like @bgits suggested, to be re-used across the community, with or without our styling.

which could be used across whole Status DAO and other DAOs

We need to be clear about what problem we're solving. What does the Status DAO or other DAOs have to do with components? The problem this repo is solving is that developers don't want to spend time creating UI components - they want to focus on contracts and cryptoeconomics, and be able to pull most of what they need for the UI from an external, well-tested and well-respected library.

We are trying to be clear about the distinction between "components Status needs for DApps we build" (ENS usernames, voting, curation, etc.) and "components for your general developer". The second takes more time and effort as @andmironov points out. The real question here is: is such time and effort (spent working with Lorikeet) worth it, versus building out what we need quickly and "internally"? My argument is that it is, precisely because working in a shared repo is probably the best hope we have of avoiding the xkcd-like proliferation of standards.

a framework for everybody

Yes, of course. But this, specifically, is a framework for every developer, as those are the people actually capable of making use of tools like frameworks currently. Again, this is not to say that we shouldn't build whatever components we need for a Status DAO, and in such a way that they really can be used by everybody - I'm totally behind that goal. It's just not the point of this repo, and would be more impactfully achieved from the Lorikeet repos (you know, seeing as Aragon build DAOs. It's kinda their thing).

Goals

Which brings me to those technical goals. They actually sound really awesome ❤️ Do you have an idea of how we could build that, and would you be keen to collaborate with others on it, because I think the people at Lorikeet would also be really interested and we're only in the ideation stage, so any and all improvements can be suggested! It would decrease the internal resources we need and really strengthen the project as a whole... i.e. Lorikeet is not some fixed system - we can build it to be whatever we want it to be, it's just that we can do it with the help and input of others (with significant experience and demonstrated expertise).

@olso
Copy link
Author

olso commented Nov 19, 2018

@bgits Thanks for the link, off to reading about this 👍

@olso
Copy link
Author

olso commented Nov 19, 2018

@andytudhope

Sure, we can stop. Obviously, my research on who is helping who, wasn't so thorough and you have a better grasp of community around here, thanks for clearing things up 🙂

The real question here is: is such time and effort (spent working with Lorikeet) worth it, versus building out what we need quickly and "internally"? My argument is that it is, precisely because working in a shared repo is probably the best hope we have of avoiding the xkcd-like proliferation of standards.

My activity in this repo is connected to my interview/hiring process. I've been in contact with Ned and Diana. They've pointed me to this project, I'm just trying to make sense of it. I've been told that there is a status internal initiative to hire a dev who would work closely with the design team. This initiative has been presented at town hall before Devcon. My original task was change something big/small here to prove my coding/design skills.

Do you have an idea of how we could build that, and would you be keen to collaborate with others on it, because I think the people at Lorikeet would also be really interested and we're only in the ideation stage, so any and all improvements can be suggested

I don't really mind where this library will be housed. I'd love to collaborate with anyone if that makes more sense 🤩

Trying to spawn https://github.com/aragon/aragon-ui/graphs/contributors @bpierre @sohkai here ❤️

@andytudhope
Copy link
Contributor

wdyt @olso ed959db ?

Would be interested to hear your feedback on the call today as well. Just start a chat with andy in Status and you'll find me 👍

@olso
Copy link
Author

olso commented Nov 22, 2018

wdyt @olso ed959db ?

I think this will be refined still, but gives nice overview of the path! ❤️

Btw, found another ui lib/components from @austintgriffith

https://github.com/austintgriffith/dapparatus

Also, Figma to React?
https://www.figma.com/blog/introducing-figma-to-react/
https://github.com/figma/figma-api-demo/tree/master/figma-to-react
https://medium.com/pagedraw/pagedraw-figma-integration-5f99090ec1d4

@sohkai
Copy link

sohkai commented Nov 23, 2018

@olso We're highly aligned with @andytudhope's vision in #10 (comment).

If you're interested in joining, we'd love to have you on our weekly Lorikeet calls (a consistent time is still being worked out).

To possibly repeat some words from before, and reemphasize them, we'd like to focus on building a really great, atomic design system that has components any one can use for their project—decentralized or not. But of course, we'll include some components that only make sense in the context of Ethereum or other decentralized networks.

The design system will cover component states, their animation properties, and provide guidelines over what and how you should use when presented a particular problem. We really like what material and Polaris have done.

As for the technical aspects, our current focus is on React (web), and there are a number of issues with using one of the native-compat libraries. For now I'd like to focus on making the design system great, and have a great reference implementation in React (web), and then allow others to implement the design system as they'd like in other environments.

Theming, of course, is a prime consideration and the trickiest aspect in our initial migration from aragon-ui to Lorikeet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants