Skip to content
/ vpweb Public

Vanilla+: minimalistic web interface development library.

License

Notifications You must be signed in to change notification settings

vphantom/vpweb

Repository files navigation

Vanilla+

license

Vanilla+ is a minimalistic web interface development library. It adds no abstraction layers and thus allows you to use only the portions you need without bloat from the rest. It is divided in 3 main parts:

  • A basic CSS library
  • A JS library
  • A collection of web components

The components utilize the JS library while maintaining independence. They operate without relying on the CSS library, which serves solely for theming purposes. Whenever feasible, these components are designed as progressive enhancements.

Status

WORKING PROTOTYPE "It works for me." The APIs may still change significantly, bugs and browser incompatibilities may still abound.

Development has resumed and a stable version 1.0 is expected by July 2025.

See TODO for details of what's coming up.

Installation

npm install vpweb

…or simply download the files you need from this repository.

CSS FRAMEWORK

Main objectives:

  • Responsive, but with desktop as a first-class citizen
  • Nearly pure CSS, relying on JS only when CSS falls short
  • Usable as a package or as a set of stand-alone files
  • Unique selectors to minimize conflicts with other frameworks
  • Forego advanced concepts in favor of small size and high performance

Documentation: CSS

JS LIBRARY

Docs: Stdlib | Browser

The minimalistic library aims to make "Vanilla JS" development more expressive without masking the native objects or impeding run-time performance. More specifically:

  • 100% compatible with plain JS, every function is independently opt-in
  • Compatibility down to Chrome/Edge/Opera 79, Safari 12, Firefox 78
  • Abstract away boilerplate, alias frequently used long-named symbols
  • Cooperate with tree-shaking bundlers
  • Tiny: stay under 4KB minified (not compressed)

Specifically avoided are:

  • To wrap native objects (i.e. HTMLElement)
  • To alias or wrap the entire DOM API
  • Other development comforts which would cost run-time overhead (i.e. a universal $())

COMPONENTS

Docs: Editeur | Fast Clicks | Forms

If you want to use the whole thing in one line without need to activate manually on shadowed elements:

// Option 1 (recommended): include in your build.
// No configuration options
import 'vpweb/vpweb';
<!-- Option 2: load as stand-alone script -->
<script src="dist/vpweb.min.js"></script>

You may also use individual components, although if you use more than one as stand-alone scripts, there will be some redundancy.

Note that components triggered by attributes or class names cannot self-activate inside shadow DOMs. If you want to use Vanilla+ components inside those, you'll need to activate them manually (for example, with fast.preclick(element)). See each component's documentation for manual activation usage.

ACKNOWLEDGEMENTS

Graph X Design Inc. https://www.gxd.ca/ sponsored this project.

LICENSE AND COPYRIGHT

Copyright (c) 2019-2025 Stéphane Lavergne https://github.com/vphantom

Distributed under the MIT (X11) License: http://www.opensource.org/licenses/mit-license.php

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Vanilla+: minimalistic web interface development library.

Resources

License

Stars

Watchers

Forks

Packages

No packages published