Giter Club home page Giter Club logo

catalog's Introduction

Magic_Patterns

Discover the perfect component from a variety of design systems with our Catalog. The Catalog is maintained by Magic Patterns and the open-source community.

Patterns - Find the perfect component | Product Hunt

Catalog

Features

  • Browse by Design System — Find sets of visually consistent components.
  • Browse by Component Type — Compare components across to find the perfect one.

Generating UI with Magic Patterns

Magic Patterns helps engineers ship faster by generating frontend code from your component library.

If you are interested in learning more about generating UI from your design system, feel free to book a meeting with us:

Schedule a meeting

Join our community of designers and engineers!

  • Slack — join our growing community!
  • YouTube — watch content about coding and design systems.
  • X - follow our latest updates on X.

catalog's People

Contributors

adefizzy avatar agupta0001 avatar alexdanilowicz avatar arneesh avatar asjadaugust avatar betty-alagwu avatar bismay5467 avatar danielrees8743 avatar dsinghvi avatar gnwx avatar handotdev avatar joelcmk avatar joshuarotimi avatar karanvirsb avatar kunalznk avatar lagneshthakur avatar mbmarsell avatar nagy-nabil avatar noobcode-69 avatar nyeno avatar nytrek avatar pranav2612000 avatar prichter avatar saganic avatar sonylomo avatar sugamadhiakri avatar teddarific avatar tobiasdossinger avatar tvergho avatar zachsnoek 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

catalog's Issues

`yarn run mirrorful` didn't work in monorepo

Log:

yarn run v1.22.18
$ /Users/shyamswaroop/projects/cruxcode/atrilabs-engine/node_modules/.bin/mirrorful
Running Mirrorful version: 2.0.5
Starting Mirrorful in /Users/shyamswaroop/projects/cruxcode/atrilabs-engine/packages/example-atri-app.

Error: ENOENT: no such file or directory, chdir '/Users/shyamswaroop/projects/cruxcode/atrilabs-engine/packages/example-atri-app' -> 'node_modules/mirrorful/editor'
    at process.wrappedChdir [as chdir] (node:internal/bootstrap/switches/does_own_process_state:112:14)
    at /Users/shyamswaroop/projects/cruxcode/atrilabs-engine/node_modules/mirrorful/dist/init.js:35:21
    at Generator.next (<anonymous>)
    at fulfilled (/Users/shyamswaroop/projects/cruxcode/atrilabs-engine/node_modules/mirrorful/dist/init.js:5:58) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'chdir',
  path: '/Users/shyamswaroop/projects/cruxcode/atrilabs-engine/packages/example-atri-app',
  dest: 'node_modules/mirrorful/editor'
}

Feature Request: Allow addition of multiple color variants at once in the mirrorful editor

Problem

Currently, if I add a new color to the theme, I have to add it's variants one by one using the mirrorful editor which is a tedious process.

Proposed Solution

Could a feature be added in the editor that allows the user to add multiple variants at once by passing the variants as key-value pairs in a javascript object?

{ 
      "50": "#c8bbf0",
      "100": "#b4a3ea",
      "200": "#a08ae4",
      "300": "#8b71de",
      "400": "#7758d9",
      "500": "#633fd3",
      "600": "#532dc6",
      "700": "#4828ad",
      "800": "#3e2294",
      "900": "#331c7b"
}

Sort fontsizes by size

In this example, 0.75 rem should be first, even if it was added last.

For now, we can just sort by unit. For example, you can sort the rems, then px, then em. Then you can avoid crazy math.

Screen Shot 2023-03-08 at 3 46 18 PM

Proposal: Token Nested Structuring

Proposal

Categorize the tokens across relevant theme files.

Why?

Currently, all the tokens stay in the same hierarchy at the root level of the Token object. (both named and unnamed). The issue that arises with this approach is that all the theme colour objects stay at the same level as the fontSizes = {} object. Which causes an issue when we need to override certain components inside our existing theme/design system.

For example, in cases such: tailwind-next, the existing tailwind theme colours of a project are overridden as:

  theme: {
    extend: {
      colors: mirrorful.Tokens,
    },
  },

This approach works fine but the fontSizes = {} object will also be included in the colors object of tailwind, which won't break anything but should not be there. As the project size increases more and more components will be added and I think the categorization process should be done from the very start instead of people having to run migrations at a later stage.

Note: For now, I just added a basic .filter() function to mirrorful.Tokens which excludes the fontSizes object, but I think it's a very hacky approach and would keep getting worse if/when more components are added to the theme files.

Current Structure

exports.Tokens = {
  'acme-inc-purple': {
    50: '#fefeff',
    100: '#ebe4fb',
    200: '#d8c9f7',
    300: '#c5aff2',
    400: '#b294ee',
    500: '#9f7aea',
    600: '#8c60e6',
    700: '#7945e2',
    800: '#662bdd',
    900: '#5820ca',
    base: '#9F7AEA',
  },
  'acme-inc-error-red': {
    50: '#fffefe',
    100: '#fbe4e9',
    200: '#f7c9d3',
    300: '#f2afbd',
    400: '#ee94a8',
    500: '#ea7a92',
    600: '#e6607c',
    700: '#e24567',
    800: '#dd2b51',
    900: '#ca2044',
    base: '#ea7a92',
  },
...
  fontSizes: {
    sm: '1rem',
    md: '1.2rem',
    lg: '1.4rem',
  },
}

Proposed Structure

exports.Tokens = {
  themeColors: {
    'acme-inc-purple': {
      50: '#fefeff',
      100: '#ebe4fb',
      200: '#d8c9f7',
      300: '#c5aff2',
      400: '#b294ee',
      500: '#9f7aea',
      600: '#8c60e6',
      700: '#7945e2',
      800: '#662bdd',
      900: '#5820ca',
      base: '#9F7AEA',
    },
    'acme-inc-error-red': {
      50: '#fffefe',
      100: '#fbe4e9',
      200: '#f7c9d3',
      300: '#f2afbd',
      400: '#ee94a8',
      500: '#ea7a92',
      600: '#e6607c',
      700: '#e24567',
      800: '#dd2b51',
      900: '#ca2044',
      base: '#ea7a92',
    },
  },
  fontSizes: {
    sm: '1rem',
    md: '1.2rem',
    lg: '1.4rem',
  },
  xyzCategory: {
    key1: 'value1',
    key2: 'value2',
  },
  pqrCategory: {
    key3: 'value3',
    key4: 'value4',
  },
}

Make Onboarding more clear by using actual values from your color palette

  1. It's unclear what file to put the import statement in: Screen Shot 2023-03-01 at 9 14 39 PM

  2. The import statement depends on relative path, we should make that more clear, perhaps clarify it's an example

  3. It's unclear that the <Button> referenced in the onboarding is from a UI library, and not a regular HTML <button> which does not have _hover property.

Screen Shot 2023-03-01 at 9 17 24 PM

On editor startup, there is no initial indication if you have colors already defined - just the "Add new color" button

If you have colors defined when you start mirrorful, you don't go through the onboarding process, rather your colors appear in the editor. However, in between opening mirrorful and the colors loading asynchronously, there is no 'loading' indicator, you are merely faced with the "Add new color" button, with no indication that you have colors defined.

Add async loading indicator to editor in non-onboarding mode.

Add dark mode to editor

My concussion turned me into a pseudo-vampire, so this is partly an a11y issue.

Please add darkmode support to both the designer, then dogfood it in your homepage.
TIA

Add ability to add custom variants for colors

Instead of predefining things like active and hover, we should aim for flexibility instead of guidance —

image

Objective: Remove any opinions on the variants that users should have, and instead offer the flexibility to define custom variants (e.g. 25, 50)

This ticket is dependent on moving to conf because it will require a database migration.

Typography section doesn't allow decimal points in variant value input

If you attempt to edit a typography variant, the variant value input won't permit addition of a value containing a decimal place. Furthermore, if the value has been imported with a decimal place and you attempt to delete the digit after the decimal place, the decimal place disappears. If you attempt to type another decimal place in the case of an imported decimal, the input displays NaN.

Recommend `hover` & `active` variants of colors

image

Adding a new color right now can be intimidating / confusing because of the hover & active options. We should add a "magic wand" icon button that will prefill in a recommended shade. We can just prefill in colorShades['600'] as the hover, and colorShades['700'] as the active

Add Mirrorful VS Code extension

As an engineer, I'd like to have a way to quickly reference my project's Mirrorful tokens without starting the local editor. It'd be nice to have a VS Code extension that reads the Mirrorful config and displays the tokens, similar to the Mirrorful UI. Having the Mirrorful editor in an extension might also be useful 👀.

Add tooltip to variant square that is assigned as the base

If you add a color in the editor, it automatically creates a "500" variant, which when edited shows the "Set as base" flag set. If you delete this variant, because of the flag set, it also deletes the base color. This is not immediately obvious before the fact. Suggest a "500 (BASE)" description in tile to make this clearer, or similar mechanism.

🌎 Help us translate Mirrorful

🌎 We want to let as many people use Mirorrful as possible! Help us translate it! 🚀

Translate our top-level README.

If you have any questions, just shoot them in the comments to this issue or join our Slack.

Warning in console when picking optional color not previously set.

Low priority issue I presume, but when a new color is added, and only the base color is set, if you select an optional color input(such as hover or active) and then click in the color picker, a react warning appears in the console:

image

Tidy up uncontrolled input required (?)

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.