• This repository has been archived on 31/Jul/2022
  • Stars
    star
    100
  • Rank 329,636 (Top 7 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Lightweight web components library built with LitElement.

Aybolit

Aybolit is a lightweight, standards-based, framework agnostic UI components library built with LitElement.

Aybolit is a fictional character from the children's poems by Korney Chukovsky. He is a traveling doctor who treats animals for free, regardless of their injuries. The name may be translated as "Ouch, [it] hurts!"

Live Demo β†—

CircleCI code style: prettier

Overview

Aybolit is based on the modern web standards: Custom Elements, Shadow DOM and CSS Custom Properties. Using these parts of the web platform allows Aybolit to easily solve several common problems which have been around for years:

  1. Proper style scoping and zero global CSS! With Aybolit you are safe to use any CSS class name in your project, and never get any side effects. Forget about the evil hacks like using !important to override 3rd party CSS specificity.

  2. Granular DOM structure. You no longer have to place HTML elements in the specific order to satisfy CSS selectors like input ~Β label - these are now implementation detail. The resulting markup is cleaner, easier to read and maintain.

  3. Flexible theming API: custom CSS properties and calc() allow to dynamically change colors at any part of the cascade, and make it possible to auto-adjust level of contrast for elements like buttons and checkboxes.

The mission of Aybolit is to let developers stop reinventing the wheel, and ensure a painless developer experience. Aybolit starts with the basics and provides a few primitive UI components, laying the groundwork for a lot more in future.

Project Structure

Aybolit project is a monorepo and contains the following npm packages:

Check the README of each individual package for more details.

Supported Browsers

Chrome, Firefox 64+ and Safari 11+ are targeted browsers. They all support Custom Elements, Shadow DOM, custom CSS properties and ES modules, and do not need any polyfills.

Any up-to-date Chromium-based browsers, like Samsung Internet, Opera, Vivaldi, Brave, Yandex Browser and many others, are supported too. Microsoft Edge will hopefully join this group later this year.

Internet Explorer is not officially supported. It is generally possible to make web components work in IE11 using polyfills and Babel, but certain things will not work as expected to say the least.

Contact

If you have questions, feedback or anything to share related to the project, feel free to contact me via:

More Repositories

1

awesome-web-components

A curated list of awesome Web Components resources.
2,636
star
2

awesome-lit

A curated list of awesome Lit resources.
1,299
star
3

vanilla-colorful

A tiny color picker custom element for modern web apps (2.7 KB) 🎨
TypeScript
731
star
4

vanilla-hamburger

Animated hamburger menu icons for modern web apps (1.8 KB) πŸ”
TypeScript
120
star
5

polymer3-webpack-starter

Polymer 3 starter built with Vaadin components and Vaadin.Router library, using webpack and modern tools
JavaScript
101
star
6

webcomponents.today

A curated collection of Web Components resources.
JavaScript
80
star
7

lit-components

Moved to https://github.com/vaadin/component-mixins
JavaScript
60
star
8

lit-vaadin-helpers

A set of helpers for using Vaadin web components with Lit 2.
TypeScript
10
star
9

ts-vaadin-examples

Examples for using Vaadin components with TypeScript
TypeScript
8
star
10

pack

Polymer App Creation Kit
HTML
8
star
11

wc-jest-puppeteer-demo

JavaScript
5
star
12

polylit

An experiment to use Polymer based mixins with Lit.
JavaScript
4
star
13

a11y-vaadin-playground

Demo app showcasing accessibility fixes to Vaadin web components.
HTML
4
star
14

lit-overlays

Prototyping a set of overlay components with LitElement & TS
TypeScript
3
star
15

webpack-wc-demo

JavaScript
3
star
16

stylelint-config-polymer

shareable stylelint config for Polymer elements
JavaScript
2
star
17

elements-viewer

Vaadin core components demos & API docs https://web-padawan.github.io/elements-viewer/?vaadin-button#docs
HTML
2
star
18

fusion-wtr

TypeScript
1
star
19

a11y-vaadin-proto

JavaScript
1
star
20

npm-stats-training

HTML
1
star
21

colorizr

a WIP demo project built with Polymer 1.x
HTML
1
star
22

web-padawan.github.io

Homepage
Nunjucks
1
star
23

component-mixins

Moved to vaadin/component-mixins
TypeScript
1
star
24

hermione-esm

hermione plugin that starts @web/dev-server before running tests
JavaScript
1
star
25

pnpm-resolutions

An example how to make yarn resolutions work with pnpm
JavaScript
1
star
26

npm-downloads

JavaScript
1
star
27

skystart

frontend project template
CSS
1
star
28

components-flowchart

Visualise hierarchical relationships within Vaadin components.
1
star
29

ngplugins

plugins for NG CMS
PHP
1
star
30

shadow-examples

Examples of using Shadow DOM
HTML
1
star
31

polymer-sort-and-search

React Challenge #1 task built with Polymer
HTML
1
star