npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@jayway/alstom-ui

v0.2.36

Published

This is a draft for a set of reusable components for the Bombardier projects. It is meant as a configurable and extendable toolkit to follow the consistent design language om the Bombardier brand.

Downloads

46

Readme

alstom-ui

This is a draft for a set of reusable components for the Bombardier projects. It is meant as a configurable and extendable toolkit to follow the consistent design language om the Bombardier brand.

To extend components

All components are basing the design on the CSS custom properties definied in src/base and for each component, making it easy to change the design by adding a new css file defining a set of rules like

:root {
  --gap-width-normal: 2rem;
  --button-border-radius: 2rem;
}

To understand which components are included in the toolkit and how they can be used, start the styleguide by running yarn start.

Project setup

yarn install
yarn link
yarn start

In your project where you widh to use the components

Symlink folder to project

yarn link alstom-ui

Install dependencies

yarn add -D babel-plugin-module-resolver postcss-conditionals postcss-custom-media postcss-import postcss-load-config postcss-mixins postcss-preset-env svg-inline-loader

Create config files

babel.config.js

module.exports = {
  presets: ['@vue/cli-plugin-babel/preset'],
  plugins: [
    [
      'babel-plugin-module-resolver',
      {
        alias: {
          ui: 'alstom-ui/src'
        }
      }
    ]
  ]
}

postcss.config.js

module.exports = require('alstom-ui/postcss.config')

vue.config.js

module.exports = {
  runtimeCompiler: true,
  chainWebpack: (config) => {
    const svgRule = config.module.rule('svg')
    svgRule.uses.clear()
    svgRule.use('svg-inline-loader').loade('svg-inline-loader')
  }
}

postcss.config.js

module.exports = require('alstom-ui/postcss.config')

Contributing

This is a standalone library of components meant to be used in multiple Alstom projects. It is therefor important that any changes are backwards compatable with any current use of its content, allowing for future updates without the risk of breaking the UI.

Always keep in mind that the components in this project should be general enough to be able to use in other applications. If you have a specific component used in only one application, it might be better to have it part of that application source code.

Specific design needs can also be accomplished by extending the component in your project. FOr instance most components declare their design rules using CSS custom properties. These can easily be hijacked and changed for local variations.

For example:

.MySpecialButton {
  --button-radius: 50%;
  --button-height: 3em;
  --button-padding: 1em;
}

This way we won't break the design by overriding it's class name styling, and make sure the components will work for future versions.

Applying changes

Can the changes be accomplised using properties, additional class names and extended data, updates can probably be done without risk of breaking backwards compability. But only if the additional properties makes sense.

To change the current behaviour of a component, make sure it's previous use cases are still valid.

Test and document use cases.

Each component in this project has (should have) a markdown file with the same file name. In this file the component use cases should be documented with examples. When starting up the styleguide yarn styleguide all components will render the code expamples from these markdown files in a styleguide, where it is easy to see all props, documentation and example of how the component is meant to be used.

Make sure the component works in isolation before implementing it in any application.

Publish to npm

To publish changes to npm you need access to the Jayway npm organization.

Then login using your npm profile using.

npm login

When code changes are approved and tested you create a new version by calling

yarn bump

or npm run bump, which will version a patch, tag and push the version to github and publish your current project to npm package registery.

For major changes you can change version manually using

yarn version --minor
# or yarn version --major

git push --tags
npm publish