ing-bank/lion - Fundamental white label web component features for your design system. https://github.com/ing-bank/lion
Find a file
CircleCI 4cbfa65cf2 chore: release new versions
- @lion/input-datepicker@0.4.5
2019-11-27 13:21:46 +00:00
.circleci chore: update ci to node 10.16; use local chrome for speed 2019-08-21 11:30:31 +02:00
.github/ISSUE_TEMPLATE chore: add issue template 2019-10-15 08:31:52 +02:00
.storybook chore: add storybook addon for a11y and fix violations 2019-11-13 11:01:37 +01:00
assets chore: remove unused assets 2019-06-27 18:18:52 +02:00
docs chore(docs): core docs about style components 2019-09-17 11:04:53 +02:00
packages chore: release new versions 2019-11-27 13:21:46 +00:00
scripts chore: update linting 2019-08-21 11:30:51 +02:00
stories feat: finalize validation and adopt it everywhere 2019-11-18 15:30:08 +01:00
.editorconfig chore: support linting and formatting of markdown files 2019-07-24 15:02:50 +02:00
.eslintignore feat: release inital public lion version 2019-04-26 10:37:57 +02:00
.eslintrc.js chore: update linting 2019-08-21 11:30:51 +02:00
.gitignore chore: added browserstack.err to .gitignore 2019-08-07 15:00:38 +02:00
.markdownlint.json chore: support linting and formatting of markdown files 2019-07-24 15:02:50 +02:00
.prettierignore chore: support linting and formatting of markdown files 2019-07-24 15:02:50 +02:00
commitlint.config.js feat: release inital public lion version 2019-04-26 10:37:57 +02:00
CONTRIBUTING.md chore: update docs for closing feature requests 2019-11-13 10:41:53 +01:00
husky.config.js feat: release inital public lion version 2019-04-26 10:37:57 +02:00
karma.bs.config.js chore: enable circleci 2019-04-26 14:06:15 +02:00
karma.conf.js chore: update @open-wc/testing to latest version 2019-08-21 11:27:51 +02:00
lerna.json chore: test/* and *.md changes do not trigger a release 2019-07-30 14:50:19 +02:00
LICENSE feat: release inital public lion version 2019-04-26 10:37:57 +02:00
package.json chore: add storybook addon for a11y and fix violations 2019-11-13 11:01:37 +01:00
prettier.config.js feat: release inital public lion version 2019-04-26 10:37:57 +02:00
README.md chore: update docs for closing feature requests 2019-11-13 10:41:53 +01:00
wallaby.js chore: update linting 2019-08-21 11:30:51 +02:00
yarn.lock chore: add storybook addon for a11y and fix violations 2019-11-13 11:01:37 +01:00

Lion Web Components

🛠 Status: Pilot Phase

Lion Web Components are still in an early alpha stage; they should not be considered production ready yet.

The goal of our pilot phase is to gather feedback from a private group of users. Therefore, during this phase, we kindly ask you to:

  • not publicly promote or link us yet: (no tweets, blog posts or other forms of communication about Lion Web Components)
  • not publicly promote or link products derived from/based on Lion Web Components

As soon as Pilot Phase ends we will let you know (feel free to subscribe to this issue https://github.com/ing-bank/lion/issues/1)

Lion web components is a set of highly performant, accessible and flexible Web Components. They provide an unopinionated, white label layer that can be extended to your own layer of components.

Demos

We do have a live Storybook which shows all our components.

How to install

npm i @lion/<package-name>

Content

The accessibility column indicates whether the functionality is accessible in its core. Aspects like styling and content determine actual accessibility in usage.

Package Version Description Accessibility
core core Core System (exports LitElement, lit-html) n/a
localize localize Localize and translate your application/components n/a
ajax ajax Fetching data via ajax request n/a
button button Button #64
switch switch Switch ✔️
calendar calendar Standalone calendar #195, #194, #193, #191
icon icon Display our svg icons #173, #172
steps steps Multi Step System n/a
tabs tBS Move between a small number of equally important views n/a
-- Forms --
form form Wrapper for multiple form elements ✔️
field field Base Class for all inputs #190
fieldset fieldset Group for form inputs ✔️
validate validate Validation for form components n/a
checkbox checkbox Checkbox form element ✔️
checkbox-group checkbox-group Group of checkboxes ✔️
input input Input element for strings ✔️
input-amount input-amount Input element for amounts #166
input-date input-date Input element for dates ✔️
input-datepicker input-datepicker Input element for dates with a datepicker ✔️
input-email input-email Input element for e-mails #169
input-iban input-iban Input element for IBANs #169
radio radio Radio from element ✔️
radio-group radio-group Group of radios ✔️
select select Simple native dropdown element ✔️
textarea textarea Multiline text input #165
-- Overlays --
overlays overlays Overlays System using lit-html for rendering ✔️
popup popup Popup element #175, #174
tooltip tooltip Popup element #178, #177, #176, #175, #174

How to use

Use a Web Component

<script type="module">
  import '@lion/input/lion-input.js';
</script>

<lion-input name="firstName"></lion-input>

Use a JavaScript system

<script type="module">
  import { ajax } from '@lion/ajax';

  ajax.get('data.json').then(response => {
    // most likely you will use response.data
  });
</script>

Extend a Web Component

import { LionInput } from '@lion/input';

class MyInput extends LionInput {}
customElements.define('my-input', MyInput);

Key Features

  • High Performance - Focused on great performance in all relevant browsers with a minimal number of dependencies
  • Accessibility - Aimed at compliance with the WCAG 2.0 AA standard to create components that are accessible for everybody
  • Flexibility - Provides solutions through Web Components and JavaScript classes which can be used, adopted and extended to fit all needs

Technologies

Lion Web Components aims to be future proof and use well-supported proven technology. The stack we have chosen should reflect this.

Rationale

We know from experience that making high quality, accessible UI components is hard and time consuming: it takes many iterations, a lot of development time and a lot of testing to get a generic component that works in every context, supports many edge cases and is accessible in all relevant screen readers.

Lion aims to do the heavy lifting for you. This means you only have to apply your own Design System: by delivering styles, configuring components and adding a minimal set of custom logic on top.

Coding guidlines

Check out our coding guidelines for more detailed information.

How to contribute

Lion Web Components are only as good as its contributions. Read our contribution guide and feel free to enhance/improve Lion. We keep feature requests closed while we're not working on them.

Contact

Feel free to create a github issue for any feedback or questions you might have. You can also find us on the Polymer slack in the #lion channel.

You can join the Polymer slack by visiting Polymer Slack Invite.

Support and issues

As stated above "support and issues time" is currently rather limited: feel free to open a discussion. However, we can not guarantee any response times.