Coder Social home page Coder Social logo

specialdoom / proi-ui Goto Github PK

View Code? Open in Web Editor NEW
142.0 9.0 10.0 6.2 MB

yet another Svelte ui library

Home Page: https://proi-ui.vercel.app

License: MIT License

JavaScript 1.90% Svelte 40.52% CSS 0.25% TypeScript 57.27% Shell 0.05%
svelte uilib

proi-ui's Introduction

Hi there ๐Ÿ‘‹

  • ๐Ÿ”ญ Iโ€™m currently involved in developing a SvelteKit app.
  • ๐Ÿค” Iโ€™ve archived the @specialdoom/proi-ui.
  • ๐Ÿ’ฌ Ask me about @specialdoom/proi-ui or anything.
  • โšก Fun fact: I'm playing Fortnite.

proi-ui's People

Contributors

dependabot[bot] avatar modernizer-bot avatar specialdoom 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  avatar  avatar

proi-ui's Issues

Alert on mobile break-word

Describe the bug
Close icon on mobile display does not stay middle centered when there is more text to show.

To Reproduce
Steps to reproduce the behavior:

  1. Go to proi-ui.herokuapp.com
  2. Click on docs.
  3. Choose Alert component
  4. See error

Expected behavior
Close icon should stay middle centered.

Smartphone (please complete the following information):

  • Device: Huawei P20 Lite
  • OS: Android 8
  • Browser Chrome
  • Version 80

Port docs to storybook or histoire

Right now @specialdoom/proi-ui is using a from scratch solution for components docs and installation tutorial.

@specialdoom/proi-ui should be able to use an already existing solution like Storybook or Histoire

Close icon of closable alert component does not display properly

Describe the bug
Close icon of closable alert component does not display properly.

To Reproduce
Steps to reproduce the behavior:

  1. Go to docs site
  2. Click on docs
  3. Choose alert component
  4. Scroll down to closable attribute
  5. See error

Expected behavior
Close icon should be positioned centered right.

Screenshots
No screenshots.

Additional context
No additional context.

Add toaster specific method for error, info, warning and error.

Is your feature request related to a problem? Please describe.
Trying to send a toast needs to specify type of toast.

Describe the solution you'd like
I would like to have a specific method to call when trying to send a specific toast.
toaster.error(message) instead of toaster.send({type: 'error', message})

Input 50% width

Describe the bug
Width will take 50% space of parent container.

To Reproduce
Steps to reproduce the behavior:

  1. Add a div with 300px width.
  2. Add an input
  3. Input will be 150px.

Expected behavior
Input to take the entire container space.

Add disable cursor for disabled button, input and checkbox

Is your feature request related to a problem? Please describe.
Don't like that when a button is disabled the cursor is still default.

Describe the solution you'd like
I want the cursor to be the not-allowed one.

Describe alternatives you've considered
No alternatives.

Additional context
No context.

Documentation does not seem right

The documentation tells you to import @specialdoom/proi-ui/dist/proi-ui.css to my project and apply styling but there is no dist folder in the @specialdoom/proi-ui/ folder and it raises an error. Instead the proi-ui.css is in src folder inside the proi-ui folder and not in dist folder.

feat: forward `$$restProps` to container of component

We need to forward the $$restProps to the container of every component in the application. Currently, the $$restProps are not being passed to the container, which limits the flexibility and customization options available to the containers.

Requirements:

  • Forward $$restProps to the container of the component.
  • Add unit tests where custom props are being passed and we are expecting the change to be reflected on the container.

Tasks:

  • Investigate the current codebase to understand how components and their containers are structured (optional).
  • Determine the best approach for forwarding $$restProps to the container of the component.
  • Modify the component code to include the necessary logic for passing $$restProps to the container.
  • Create unit tests to verify that $$restProps are correctly forwarded to the container.

Deliverables:

  • Document outlining the approach, architecture, and API contract for forwarding $$restProps to the container.
  • Include any necessary instructions, examples, and caveats.
  • Ensure the feature is properly integrated and functional.

tech: Use `convetional-commits`

There should be a way to define the structure of commit to be able to generate change logs based on squashed or merge commits on main branch.

Add styling support to components

Is your feature request related to a problem? Please describe.
I'd like to add custom styles to components.

Describe the solution you'd like
Either add a class property and/or style property to components.

Describe alternatives you've considered
Add more options to components to make them more customizable.

Additional context
I like this library and want to use it.

refactor: remove `toaster` provider functionality and rename `Toast` to `Notification`

We need to deprecate the existing toaster provider functionality in our library and rename the Toast component to Notification component. The current implementation of the toaster provider it's not in the purpose of the design system and in case of a monorepo could become a separate library that uses the Toast(Notification). By deprecating this functionality and introducing the Notification component, we aim to provide a more feasible and consumer wise way of displaying notifications.

Requirements:

  • Deprecate the existing toaster provider functionality and remove it from the codebase.
  • Rename the Toast component to Notification component in all relevant files and references.
  • Update the documentation and any relevant guides or resources to reflect the changes.
  • Ensure backward compatibility for existing code that uses the deprecated toaster provider functionality.
  • Test the Notification component thoroughly to ensure it functions correctly and provides a seamless user experience.

Tasks:

  • Assess the current implementation of the toaster provider and identify its dependencies and usage throughout the codebase (optional, only if not familiar).
  • Deprecate the toaster provider functionality by removing it from the codebase and updating related files and references. Remove ToasterProvider component, toast svelte store and the utility methods.
  • Rename the Toast component to Notification component in all relevant files and references.
  • Update the documentation and any relevant guides or resources to reflect the deprecation and renaming.
  • Test the Notification component thoroughly to ensure it functions correctly and provides a seamless user experience.

Deliverables:

  • Deprecated toaster provider functionality, removed from the codebase.
  • Toast component renamed as Notification component in all relevant files and references.
  • Updated documentation and guides reflecting the deprecation and renaming.
  • Thoroughly tested Notification component ensuring it functions correctly and provides a seamless user experience.
  • Communication and guidance provided to the development team for the transition period.

feat: create a generic `<Spinner>` component

We need to create a more generic spinner component for our design system that can be easily reused across different projects and applications. The existing spinner component are tightly coupled with specific implementations and lack flexibility based on the logo of the proi-ui design system. This new spinner component should provide a consistent and customizable loading indicator that can be used in various contexts.

Requirements:

  • The spinner component should be size customizable, allowing developers to easily modify its size.
  • It should support a circular version for now (in the future maybe icon based).
  • The component should provide options to customize the size.

Tasks:

  • Design and implement a generic spinner component that meets the above requirements.
  • Provide clear and comprehensive documentation on how to use and customize the spinner component.
  • Write unit tests to ensure the correctness and reliability of the spinner component.
  • Integrate the spinner component into our design system and update the documentation accordingly.

Deliverables:

  • A well-documented and reusable spinner component that can be easily integrated into different projects.
  • Unit tests covering the functionality and edge cases of the spinner component.
  • Updated design system documentation with clear instructions on how to use and customize the spinner component.

Design:

https://www.figma.com/community/file/1150697835816146933

docs: migrate from `histoire` to `storybook7`

We need to migrate our existing project from histoire to storybook 7 to take advantage of the latest features and improvements offered by Storybook. histoire is an alternative option for Storybook but right now it's offering poor support and less functionality. The version 7 of storybook will provide better performance, enhanced developer experience, and improved compatibility with the latest version of svelte.

Requirements:

  • Migrate the project from histoire to storybook7 while preserving the existing components, stories structure, and theming configuration
  • Update the project dependencies and configuration files to reflect the migration to storybook 7.
  • Test the migrated project thoroughly to ensure that all stories and components function as expected.
  • Update the documentation and provide guidelines on how to use Storybook 7 for development and story authoring.

Tasks:

  • Research and familiarize yourself with the differences between histoire and storybook.
  • Create a migration plan outlining the necessary steps to migrate from histoire to storybook (optional).
  • Install and configure storybook 7 in the project, ensuring compatibility with the existing codebase.
  • Migrate the existing stories and components to the new storybook 7 structure and format.
  • Update the project dependencies and configuration files to reflect the migration to storybook 7.
  • Test the migrated project thoroughly to ensure that all stories and components function as expected.
  • Remove histoire and related files.

Deliverables:

  • Migrated project from histoire to storybook 7, with all existing components and stories intact.
  • Updated project dependencies and configuration files reflecting the migration to storybook 7.
  • Thoroughly tested project to ensure all stories and components function correctly.

bug: Possible incorrect path issue?

I am making use of pnpm (which shouldn't cause any issues, in my opinion). I've tried both CSS as well as JS method, for which I am getting the same issue.

Failed to load url ./tags/Badge.svelte (resolved id: ./tags/Badge.svelte). Does the file exist?
Error: Failed to load url ./tags/Badge.svelte (resolved id: ./tags/Badge.svelte). Does the file exist?
    at loadAndTransform (file:///home/ashvith/Desktop/portfolio/node_modules/.pnpm/[email protected]/node_modules/vite/dist/node/chunks/dep-0bae2027.js:39278:21)

From what I've noticed, looks like Badge.svelte is inside ./tags/badge/Badge.svelte and not ./tags/Badge.svelte

feat: add theming

There should be a research regarding what will be the best way to achieve the dark theme.

  • Do we need to use a style preprocessor?'
  • Designs on figma need to be updated for dark theme as well.

Issue will close after we reach a deciding point. Any relevant information regarding css dark theme should be left as a comment on this issue.

components: Add `gap` property for `Button` component

The display property of Button container element is set to flex so whenever you want to use it with an Icon for example there won't be any gap between innerText and icon element.

  • gap property should be added with a value of 4px

installation

When I run npm i @specialdoom/proi-ui I get this message:

npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@specialdoom%2fproi-ui - Not found
npm ERR! 404 
npm ERR! 404  '@specialdoom/proi-ui@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

feat: update components to be ARIA compliant

This issue aims to update all components in the library to be Accessible Rich Internet Applications (ARIA) compliant. Currently, some components might not fully adhere to the ARIA guidelines and accessibility best practices, which can impact the usability and experience for users with disabilities.

ARIA compliance ensures that the components are accessible to individuals who use assistive technologies such as screen readers or keyboard navigation. By updating the components to follow ARIA guidelines, we can provide a more inclusive and accessible experience for all users.

Tasks:

  • Study the ARIA guidelines and familiarize yourself with the principles and best practices for accessibility.
  • Understand the specific ARIA roles, states, and properties relevant to our components.
  • Conduct an accessibility audit of the existing components to identify areas that need improvement.
  • Identify components that currently lack proper ARIA attributes or have accessibility issues.
  • Update each component to adhere to ARIA guidelines.
  • Add appropriate ARIA roles, states, and properties to enhance accessibility.
  • Ensure components are operable via keyboard navigation and provide clear focus indicators.
  • Perform thorough testing to ensure the updated components are ARIA compliant.
  • Test with assistive technologies such as screen readers and keyboard navigation.
  • Validate the accessibility improvements against WCAG (Web Content Accessibility Guidelines) standards.
  • Update the component documentation to include information about the ARIA attributes used and their purpose.
  • Provide guidelines for developers on how to maintain ARIA compliance when creating new components.

Deliverables:

  • Updated components with ARIA attributes following the ARIA guidelines.
  • Documentation updates reflecting the changes made for ARIA compliance.
  • Testing reports and validation results demonstrating the improved accessibility.
  • Code review feedback and addressed issues.
  • Knowledge sharing sessions or documentation on developing accessible components.

Note: It is important to prioritize the components for updates based on their impact and usage. Link for ARIA patterns https://www.w3.org/WAI/ARIA/apg/

Component ARIA compliant
Accordion โœ…
Alert ๐Ÿšง
Avatar โŒ
Badge โŒ
Breadcrumb โŒ
Button โŒ
Card โŒ
Checkbox โŒ
Pill โŒ
Dialog โŒ
Divider โŒ
Dropdown โŒ
TextInput โŒ
Textarea โŒ
PasswordInput โŒ
Notification โŒ
Progress โŒ
Switch โŒ
Spinner โŒ
Link โŒ
Dot โŒ
Tabs โŒ
  • โœ… done
  • ๐Ÿšง in progress
  • โŒ not done

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.