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

@melphys/pop-compiler

v0.2.1

Published

POP — Pixel On Pages. Declarative visual language with 8-bit color palette support.

Readme

POP — Pixel On Pages

A declarative visual language for building portfolios and websites.
Write shapes. Define motion. Compile to HTML.

npm install -g pop-lang
pop build portfolio.pop

What is POP?

POP is a language designed for visual thinkers. Instead of writing HTML, CSS, and JavaScript in three separate files, you describe what you want to see — and POP compiles it into a real website.

tokens {
  bg:     #020f09
  fg:     #00ff88
  accent: #ffb300
}

shape Hero {
  @type   block
  @size   fill × 100vh
  @tint   tokens.bg
  @font   mono 48px
  @text   "YOUR NAME"
  @align  center

  enter {
    @ease  glitch
    @dur   600ms
  }
}

layout {
  @flow  vertical
  @align center
  place  Hero
}

Installation

npm install -g pop-lang

Requires Node.js 16 or higher.


Usage

# Compile a .pop file to HTML
pop build mypage.pop

# Specify output file
pop build mypage.pop -o dist/index.html

# Help
pop help

File structure

A POP project uses three file types per page:

| File | Role | Example | |------|------|---------| | .pop | Main file — assembles everything | portfolio.pop | | .data | Content — text, images, links | profil.data | | .view | Visual — shapes and layout | profil.view | | .motion | Animation — timing and effects | profil.motion |


Language reference

Shapes

shape Name {
  @type    block | text | image | canvas
  @size    width × height
  @tint    background color
  @ink     text color
  @font    mono | sans | serif  size
  @text    "content" or data.field
  @src     path/to/image.jpg
  @border  1px #color
  @pad     24px
  @round   8px | full
  @align   center | left | right
  @pos     free
  @x       position
  @y       position
  @z       z-index
}

Layout

layout {
  @flow     vertical | horizontal | grid N
  @align    center | left | right
  @gap      24px
  @cols     12

  place ShapeName
  place ShapeName @span 6
  repeat CardShape from data.items
}

Animation

motion PageName {
  on load {
    seq {
      ShapeName enter
        @ease  glitch | out-expo | spring | bounce
        @dur   500ms
        @from  opacity:0
        @wait  200ms
    }
  }

  on ShapeName hover {
    ShapeName
      @scale  1.05
      @dur    200ms
  }

  on scroll > 80% {
    ShapeName pulse
      @loop  2s
  }
}

Tokens

tokens {
  bg:     #020f09
  fg:     #00ff88
  dim:    #00994d
  accent: #ffb300
}

Use them anywhere with tokens.name.

Data

data Profile {
  name:   "Your Name"
  title:  "Designer & Developer"
  bio:    "Short description."
  avatar: "./img/photo.jpg"

  links: [
    { label: "github"  url: "github.com/you" }
    { label: "mail"    url: "[email protected]"  }
  ]
}

Easing functions

| Name | Effect | |------|--------| | linear | Constant speed | | out-expo | Fast start, smooth stop | | in-back | Slight overshoot | | spring | Elastic feel | | bounce | Bouncy landing | | glitch | Digital distortion — POP exclusive |


VS Code extension

Install POP Language Support from the VS Code marketplace for:

  • Syntax highlighting
  • Autocomplete for attributes and keywords
  • Error underlining

License

MIT — made by Stael Prill