Giter Site home page Giter Site logo

ckgrafico / papanasi Goto Github PK

View Code? Open in Web Editor NEW
574.0 7.0 29.0 3.26 MB

🥯Papanasi is the Frontend UI library to use cross Frameworks. A set of components to use in Angular, Preact, Qwik, React, Solid, Svelte, Vue and Web Components

Home Page: http://papanasi.js.org

License: MIT License

JavaScript 28.42% TypeScript 48.20% CSS 23.38%
angular components mitosis react universal vue solidjs bem svelte w3c

papanasi's Introduction

Papanasi

The Universal UI Library

🔍 Overview

🥯Papanasi (pronunced pɑpənæʃ or papanash) is a UI library to use cross Frameworks. A set of components to use in Angular, Preact, Qwik, React, Solid, Svelte, Vue and Web Components. Is based on the Mitosis library and documented using Storybook.

Package version GitHub stars Tweet Sponsor

🚀 Platforms


Angular
Angular Sandbox Angular downloads

Preact
Preact Sandbox Preact downloads

Qwik
Qwik Sandbox Qwik downloads

React
React Sandbox React downloads

Solid
Solid Sandbox Solid downloads

Svelte
Svelte Sandbox Svelte downloads

Vue
Vue Sandbox Vue downloads

Web Comps.
Webcomponents Sandbox Web Components downloads

🔮 Demos


Nextjs
Nextjs Demo

Nuxt 3
Nuxt Demo

Svelte Kit
Svelte Kit Demo

Solid Start
Solid Start Demo

Qwik City
Qwik Demo

📣 Manifesto

This library born as a pet project to create universal components, easy to extend in any project and easy to use with any framework, is based on the next principles:

A Component...

  • ...should be cross-libraries but the code should be written once.
  • ...should have a minimum style but easy to extend it via CSS by any dev.
  • ...should provide some optional themes to make it easy to use.
  • ...should be accessible (FUTURE RELEASES).
  • ...should be made for developers not for non-coders, they will decide how to style most of the things.
  • ...should be tree-shakable.
  • ...should be compatible with StoryBook.
  • ...should be inspired by other UI Libraries and don't reinvent the wheel.
  • ...should be easy to create new variants.

🧩 Elements Showcase

Layout


Container
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Row
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Column
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Grid
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Components


Avatar
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Button
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Code
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Pill
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Spinner
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Enterprise


Itchio
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

Extensions


Tooltip
Angular status Preact status Qwik status React status
Solid status Svelte status Vue status W3c status
Preview

📚 Setup and scripts

With npm:

$ npm install @papanasi/[target] # ex: @papanasi/react

With yarn:

$ yarn add @papanasi/[target] # ex: @papanasi/vue

🪲 Debugger

To debug elements you can use setDebugLevel function from @papanasi/[target] package. This function is totally optional and the default value is DebugLevel.None the recommended is to use DebugLevel.Log to have a log of the different events happening.

window.addEventListener('load', () => {
  setDebugLevel(DebugLevel.Log);
});

📗 Documentation

To learn more about Papanasi, check the documentation.

📃 License

MIT

🚀 Contributing

Contributing Guidelines

To build the project run:

> yarn compile

You can choose which frameworks to build by passing the --platforms:

> yarn compile --platforms react vue

It is also possible to specify which components to build --elements:

> yarn compile --elements avatar pill

If you want to disable the linting use --no-lint:

> yarn compile --no-lint

To contribute and watch the changes in local environment just use:

> yarn dev

Finally, to launch storybook use:

> yarn start

Our Sponsors


Sponsor the project

HelpDev

Thanks to everyone who contributed:

Contributors

And special thanks to @samijaber @mhevery and Builder project

papanasi's People

Contributors

alexonaci avatar ckgrafico avatar dependabot[bot] avatar edward-designer avatar patrickjs avatar shalokshalom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

papanasi's Issues

Improve project infrastructure

Stop working on components and create a long-term infrastructure.

To finish this we have also will include

  • Improve CLI for compilation
  • Choose state and styles for each framework
  • Improve local dev scripts (new cli??)
  • Separate logic from components + communication between components (signal?) #45
  • Think again about signals, not working as expected when more than once the same component
  • Improve all the components like avatar
  • Fix signals in solid preactjs/signals#223
  • Refactor Code component
  • check solid refs #42
  • check typings status #8
  • add alias on imports #11
  • Qwik #49
  • Add all this information to the readmes
  • Fix storybook errors

TO DO before release 1.0.0

Mandatory before release:

  • Refactor code component
  • Finish Tooltip
  • Fix itchio component
  • Create in storybook a page explaining components
  • Make all the component services transient or hooks
  • Qwik #49
  • Improve Qwik compilation file
  • Check how styles re generated

Optional:

  • Use https://github.com/tabler/tabler-icons icons in readmes
  • Fix storybook errors
  • Improve window for ssr
  • New Storybook theme
  • Add a manifest to webcomponents package #54
  • Breakpoints are not refreshed to changes in breakpoint. Helper #22
  • Improve W3C Web components

Code Component

Code component is not working very well in angular or vue.

Add the Qwik Framework

Hello,

Qwik is now ready in mitosis! Could we kindly request that it would be added to Papanasi?

-- Misko

Vue has types disabled

As was really difficult to have vue types working I've disabled them.

How to resolve:
Add typings again.

Customization component bad UI

Except the select (becausewe are going to have a custom select) I don line the UX/UI of the customization component, should be improved.

image

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.