Code Monkey home page Code Monkey logo

vue-design-system's Introduction

Build status Dependencies status MIT License Gitter

Vue Design System

Vue Design System is an open source tool for building UI Design Systems with Vue.js. It provides you and your team a set of organized tools, patterns & practices that work as the foundation for your application development.

The tool is built on top of Vue.js, Vue Styleguidist, Webpack, and Theo and is aimed for designers and front-end developers who have at least basic knowledge of component based workflows + HTML, SCSS & JavaScript.

Made by @arielsalminen and other contributors. See also the official website of Vue Design System and read my article on the processes and workflow I use to get started with a new design system project.

Screenshot

Features

  • A set of interconnected patterns & practices for you and your team.
  • A well thought-out terminology, naming conventions, and hierarchy.
  • Get an automated overview of how your design system progresses over time.
  • Global design tokens in YAML format that you can use inside any component.
  • Automatic generation of living, user editable documentation.
  • Easily export and use your Design System as an NPM dependency in another Vue.js or Nuxt.js project.
  • Create a token, an element, or a pattern, and it’s immediately available across all components.
  • Pre-configured Prettier setup for auto-formatting code on both save and before commit.
  • Live Reloading, Autoprefixing, SCSS, and helper functions + simple and sane defaults for SVG and Webfont usage out-of-the-box.
  • Documentation and the app logic are separated, so you can have public docs while the app itself stays private.
  • And more…

Documentation

Examples

Roadmap

Changelog

  • 3.5.7 is the latest release.
  • See Releases page for the full changelog.

Need more help?

About to get started with a new design system? I’m an independent designer and developer, specialized in helping companies to build design systems. I also conduct design system workshops and do consulting. Let’s talk!

Authors and License

Ariel Salminen, Artem Sapegin, Rafael Escala, react-styleguidist contributors, vue-styleguidist contributors, Vue.js contributors, vue-webpack-boilerplate contributors, Theo contributors, and Polaris contributors.

Licensed under the MIT license.

vue-design-system's People

Contributors

arielsalminen avatar arojunior avatar benjixx avatar d2s avatar elevatebart avatar rafaesc 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  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

vue-design-system's Issues

Better contributing guidelines

The project needs a better “contributing guidelines” template for people to use. There is one now, but it needs more relevant content.

A simple guide to update the version

Hi,

I appreciate the constant updates to the repo to make it better.

Just a suggestion that I believe a simple guide on how to upgrade the previous version to the latest version will help us too. Thank you again for this!

Guidance for using customized Design System as an npm module from a private git repository

We're intending to use Vue Design System as the starting point for our internal design system.
As recommended in the Getting Started wiki, we'll be publishing our customized version as a new package that our main website will import.

I'm struggling to arrive at the "right" approach to accomplish the following:

  • Start with a clone of vue-design-system or checkout of master
  • Begin working in a repository connected to our company's internal GitLab
  • Customize existing settings/files, and build out the rest of our system
  • Retain the ability to pull down updates made to the master branch of the original project, which seem to be happening at a rapid pace, and merge into our customized version

Is there a specific approach you're intending teams building on a foundation of vue-design-system to use?

Upgrage to Webpack 4

No hurry, but probably makes sense to do sooner or later. Maybe wait for Vue 3.0 as well?

Separate pages & URLs for all nav items to allow richer documentation of components

“One component per page” functionality is now supported in Vue Styleguidist and I want to bring it into Vue Design System rather soon as well. It does require a couple of things:

  • Updating Vue Styleguidist NPM dependency
  • Changing the formatting of the Vue Styleguidist config (mostly template option)
  • Edits to the way sidenav highlights items (has to support highlighting of sub items as well)
  • Edits to the overall styles of docs (they need to better support separate pages)
  • Reordering sections/components.
  • Richer example content that better supports separate pages and one component per page. Could include things like:
    • Best practices
    • Content guidelines
    • Usage do’s & don’ts

Looking for input from the community at the moment. Seem my second comment below.

Any plan to support visualization of different component state?

I really dig the more systematic, process oriented approach offered by VueDS. Compared to Storybook, I think VueDS is more opinionated and designer friendly.

One thing that might be a deal-breaker for me is the ability the visualize different state of components (clicked/closed/hovering etc) and have a ActionLogger. Storybook provide this feature and make it more like a UI components playground. Is this something you guys are considering in the future?
And how do you position VueDS itself comparing to Storybook or Patternplate?

1231313

74123тлщлио дщ о лд

Start Script not working

C:\Users\btw\Dev\vue\vue-design-system>npm start

> [email protected] start C:\Users\btw\Dev\vue\vue-design-system
> bash start.sh

npm ERR! code ELIFECYCLE
npm ERR! errno 3221225775
npm ERR! [email protected] start: `bash start.sh`
npm ERR! Exit status 3221225775
npm ERR!
npm ERR! Failed at the [email protected] start script.

2018-03-19T22_54_56_380Z-debug.log

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Users\\btw\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle [email protected]~prestart: [email protected]
6 info lifecycle [email protected]~start: [email protected]
7 verbose lifecycle [email protected]~start: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]~start: PATH: C:\Users\btw\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\btw\Dev\vue\vue-design-system\node_modules\.bin;C:\Python27\;C:\Python27\Scripts;C:\Users\btw\AppData\Local\Programs\Python\Python36-32\;C:\Program Files\Ruby24-x64\bin;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\btw\AppData\Local\Microsoft\WindowsApps;C:\cygwin64\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Users\btw\apps;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Yarn\bin;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\WINDOWS\System32\OpenSSH\;C:\WINDOWS\System32\LibreSSL\;C:\Users\btw\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\btw\AppData\Local\atom\bin;C:\Users\btw\AppData\Local\GitHubDesktop\bin;C:\Users\btw\AppData\Local\Yarn\bin;C:\Users\btw\AppData\Roaming\npm
9 verbose lifecycle [email protected]~start: CWD: C:\Users\btw\Dev\vue\vue-design-system
10 silly lifecycle [email protected]~start: Args: [ '/d /s /c', 'bash start.sh' ]
11 silly lifecycle [email protected]~start: Returned: code: 3221225775  signal: null
12 info lifecycle [email protected]~start: Failed to exec start script
13 verbose stack Error: [email protected] start: `bash start.sh`
13 verbose stack Exit status 3221225775
13 verbose stack     at EventEmitter.<anonymous> (C:\Users\btw\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\index.js:285:16)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at EventEmitter.emit (events.js:214:7)
13 verbose stack     at ChildProcess.<anonymous> (C:\Users\btw\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at ChildProcess.emit (events.js:214:7)
13 verbose stack     at maybeClose (internal/child_process.js:925:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid [email protected]
15 verbose cwd C:\Users\btw\Dev\vue\vue-design-system
16 verbose Windows_NT 10.0.17115
17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\btw\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "start"
18 verbose node v8.9.3
19 verbose npm  v5.7.1
20 error code ELIFECYCLE
21 error errno 3221225775
22 error [email protected] start: `bash start.sh`
22 error Exit status 3221225775
23 error Failed at the [email protected] start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 3221225775, true ]

Issues following the "Getting Started" instructions

I downloaded the repo, following the directions provided online. Git clone, npm install, and npm start. I'm on a mac with High Sierra, and Node v8.5.0. Without making any changes to the code, I get these errors:

Warning: highlightTheme config option is deprecated. Use the theme property in the editorConfig option instead

^ That warning disappears when I remove styleguide.config.js line 29 (highlightTheme: "night"). I also see:

 ERROR  Failed to compile with 1 errors                            15:57:33

 error  in (webpack)-dev-server/client?http://localhost:8080

Module build failed: TypeError: /Users/miriam/Sites/vue-design-system/node_modules/webpack-dev-server/client/index.js: Property object of MemberExpression expected node to be of a type ["Expression"] but instead got null

The browser automatically opens to localhost:8080, with only the note: Cannot GET /. Maybe I missed something implied in the docs?

Styleguide dependancies on tokens

I'm having a bit of a problem in that there are styles in the styleguide that are dependant on tokens set for the normal front end. For example, there are colors set in src/tokens/color.yml eg color_silver which break the site if you remove them, because those variables are being used in the docs eg /docs/components/tokens/Color.vue

Not sure if I'm doing something wrong, but this doesn't seem like good behaviour to me

Get rid of unnecessary highlightTheme warning

Currently, Vue StyleGuidist is giving the following error:

Warning: highlightTheme config option is deprecated. Use the theme property in the editorConfig option instead.

This doesn’t cause any issues, but can be annoying to the user.

Cannot find image src path?

Hi,

I may be missing something but I can't work out the path for an image stored in assets folder?
I have added an imgs folder to the assets folder so it's path is src/assets/imgs/logo.png and am trying to use it in an <img src="src/assets/imgs/logo.png" /> in an element component but no matter what path I try it cannot be found.

Is there something I am doing wrong or need to do?

Thank you

wiki: Getting Started: clone with https

Thanks for making this project. On the wiki's Getting Started page, the git clone via ssh doesn't work for all users:

git clone [email protected]:viljamis/vue-design-system.git

A suggested fix is to replace it with a clone that uses https:

git clone https://github.com/viljamis/vue-design-system.git

Component Status logic needs to be refactored

  • Current version is more of a prototype of what we want to achieve.
  • It works fully, but isn’t very elegant solution.
  • I wonder if we could use JSDoc custom plugin to do this in a more clean manner.

Using `npm run styleguide:build` breaks icon asset URLs

This is a known issue at the moment and is related to the way how the icons are handled currently. To go around it you need to manually copy the /static folder and its contents into the styleguide build directory for now. Need to automate it. Happy to accept pull request too for this.

Bring back open in isolated mode

In vue-styleguidist there's an option to toggle the code editor view, also with the option to open the component in an isolated view. How can I enable them in VueDS?

Spacing utilities and documentation

Vue Design System is missing proper utilities/framework for spacing components and layout. I’m proposing the addition of the following helpers which would be either based on the x-height of the chosen typeface or then just the base space token (if based on x-height, will have to change the spacing tokens to match as well).

Utilities:

  • INSET-SPACE: For interface containers.
  • INSET-SQUISH-SPACE: For buttons, form elements, cells, etc…
  • STACK-SPACE: For vertically stacked content.
  • INLINE-SPACE: For things displayed inline.

Advantages:

  • Most components would come with spacing included using the above helpers/mixins.
  • A developer would be able to just lay out components and they would take care of the spacing automatically as well as they can.
  • Collisions with component level spacing and inset spacing would be solved systematically using for example mixin or advanced CSS selectors inside space mixins.
  • In addition, we need margin and padding utilities for added convenience in laying out components.

Prototype

Resources:

Most of the ideas are from the following articles:

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.