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 🙏

© 2026 – Pkg Stats / Ryan Hefner

uilang

v1.0.1-1

Published

A minimal, UI-focused programming language for web designers.

Readme

uilang

uilang is a dead simple programming language for web designers. With uilang, you write your code just like plain English, straight into your HTML using a <code> element. uilang's logic relies on manipulating classes on HTML elements and using these classes in CSS to show, hide, animate and transform elements when a click occurs. This simple logic lets designers create most of the typical user interface behaviours: tabs, popovers, overlays, sliding menus, etc.

Getting started

Download the node module with npm:

npm i --save uilang

You can use browserify to include the 1kb-sized javascript:

var uilang = require('uilang');

or using a copy task and insert it to your html:

<script src="path/to/uilang.js"></script>

You're now ready to write some uilang. Your code should be inserted in a <code> element, preferably at the very end of your page (just before </body>). The syntax looks like this:

<code>
  clicking on ".hide" adds class "hidden" on "div"
</code>

This is pretty much the only syntax you'll have to learn. This code is straightforward: when you click on an element with a hide class, a hidden class will be added to every div.

Now, this hidden class can be used in your CSS to actually hide these divs with, for example, a simple fade-out effect:

div {
  transition: opacity .5s;
}
div.hidden {
  opacity: 0;
}

Syntax

Let's deconstruct the syntax from our previous example:

<code>
  clicking on ".hide"(1) adds(2) class "hidden"(3) on "div"(4)
</code>
  1. Any CSS selector.
  2. adds, removes or toggles.
  3. Any class name.
  4. Any CSS selector or the target keyword (which selects the clicked element).

You can add as many instructions as you want into your <code> element:

<code>
  clicking on ".hide" adds class "hidden" on "div"
  clicking on "nav .tabs" adds class "active" on "target"
  clicking on "img:first-child" toggles class "big" on "target"
</code>

Don't worry about having other <code> elements on your page, uilang will only execute the one containing your uilang code.

Please note that uilang only supports click events. Hover effects can usually be achieved in CSS and other events are simply out of the scope of this language. By keeping its feature set light and focused, uilang aims to lower the barriers to entry into programming.

Comments

Keep in mind uilang is basically just HTML, which means that you're already familiar with the syntax for comments:

<code>
  <!-- I'm a comment. -->
  clicking on ".hide" adds class "hidden" on "div"

  <!-- I'm also a comment! -->
  clicking on "nav .tabs" adds class "active" on "target"
</code>

Examples

You'll find more examples on uilang.com.