GithubHelp home page GithubHelp logo

alundiak / marzena Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 13 KB

Marzena UI - experimental repository to represent a few variants of UI Library (platform of shared UI components) of My Dreams.

marzena's Introduction

Marzena UI

UI Library In My Dreams. This is experimental repository to represent a few variants of UI library as platform of shared UI components.

Based on my experience, I worked at least with 2 versions, 2 approaches of how to implement UI components, as library which then shared with different projects.

So this repo represents such versions, at least for information.

The key to success of great UI library is - UI components and layout regulated by UX/Designers. Design dictates how business should evolve on web. For example Twitter Bootstrap or Semantic UI or Materialize or any similar well known UI libraries. They evolve faster than any business who uses the library. And good designers can persuade VBusiness stakeholders that Design matters.

V1 - Lightweight Version

  • Codebase is monorepo. Because it's not expected much of logic change, much of variety of features. UI library is simply VIEW of your DATA, and you CONTROL how and where to put it on your web page.
  • Styling fo UI components developed in SCSS/LESS but bundled in CSS only. Because it's expected to NOT have hacks, overrides, harmfully towards component itself. Just usage.
  • Packaged as single file with set of CSS code for UI/HTML/React components look-n-feel.
  • Any JavaScript or minimal logic bundled as separate JavaScript or TypeScript file(s).
  • But customization or extend is possible, using themization or branding. So that every customer would have their set of files ON TOP of basic design. And if anything changed in main design it should not reflect Branding and vs. Potentially JSS or Styled Components is allowed. TBD.
  • Whole repo contains one common tests and storybook folders.
  • Ideally, would be great to have Designers team with at least one UI developer, who could extract CSS from InVision/Sketch/PhotoShop/etc software and convert to CSS files and pushed to repo. Then Business related UI development team, just upgrades CSS file with latest Design changes to their codebase, and doesn't change but just use. They can change logic of their components, or logic in the wrappers around shared UI components, but changing of design should be strictly forbidden.

V1 alternative.

Reusing Bootstrap or Semantic UI as example of possible reusage of basic components layout and customization for LOB/Business with further upgrades and customizations.

Or BEM-based stub. https://en.bem.info/libraries/classic/bem-core/4.2.0/ + https://github.com/bem/project-stub

V2 - Complex Version

  • Codebase is split repositories or branches or git submodules.
  • Every component behaves as independent component, with its own repo, tests, storybook, CI flow, npm publish, etc.
  • Styling of UI components can be CSS for start, but most probably will end up with JSS/Styled Components.
  • Customization starts disappearing, because every component can be imported/included independently and so that can be extended in different ways.
  • Bundled as CommonJS/AMD or any else modern approach but for proper Component-based architecture of web application based on JavaScript/TypeScript/React/Angular.
  • Maybe: Should be exported as universal code with no dependency on main development technology.
  • Ideally, designers work on initial design, and later Business can suggest some features, taken from another LOB to be common/shared.

Comparison

  • Independence: more in V1
  • Maintenance: easier in V1
  • Customization: easier in V1, but more flexible in V2.

marzena's People

Contributors

alundiak avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.