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

@rbxts/shime

v0.1.3

Published

A port of Ryan Luu's Shime library

Readme

GitHub release GitHub top language GitHub license Lint Discord

Open in GitHub Codespaces

About

[!TIP]

Visit the Shime Wiki for more information about Shime, including installation, usage, and documentation.

Shime is a module that allows you to easily create a shimmer effect on any GuiObject. Shime is easy to use and extremely customizable. Shime achieves this by using a UIGradient that is animated using a Tween. Shime will detect the GuiObject's size and position to apply the proper gradient to it and will clip to the guiobject's size including UICorners.

Demo

[!NOTE]

Shimmer Demo has Content Sharing enabled. You can download the demo from the Roblox website by clicking the ellipsis (...)and selecting Edit.

We provide an open-source demo of Shime, you can view the demo on Roblox. Feel free to use the demo as a reference for how to use Shime and modify it to your liking.

Features

Shime has a lot of features that allow you to customize the shimmer effect to your liking. Here are some of the features:

Tween Animations

Shime uses a TweenService to animate the gradient. This allows you to customize the animation to your liking. You can change the time, style, direction, repeat count, and delay time. You can change the TweenInfo of the animation by using the Shime.new constructor and passing in the parameters you want to change.

Easy & Versatile

Shime is extremely versatile, working on nearly all GuiObjects and allows easy customization through its class. You can use Shime on any GuiObject including TextButtons, TextLabels, ImageLabels, Frames, and more. Shime will automatically detect the GuiObject's size and position to apply the proper gradient to it and will clip to the guiobject's size including any UICorner instances.

Informative Wiki

Shime has its own GitHub Wiki with an included Getting Started page that will help you get started with Shime which includes multiple installation methods, usage guides, and real-world code samples. The wiki also includes a Documentation page with all the methods, properties, and constructors for Shime.

Installation

[!NOTE]

Visit the Installation page more information on installation. Below is a quick summary of the installation methods.

Shime is easy to install. They are many ways to install Shime. The links below will take you to the installation method you want to use.

| Install Method | Asset Link | | :--- | :--- | | Install from Roblox | Shimmer - Creator Marketplace | | Install from GitHub | Shime - GitHub

Usage

[!NOTE]

Visit the Usage page more information on usage, including additional code samples.

Shime is easy to use. The API is simple and easy to understand. Below is a simple code sample of how to create a shimmer effect on a GuiObject using Shime.

-- Require the Shime module
local Shime = require(game.ReplicatedStorage.Shime)

-- Create a new Shimmer and play it
local shimmer = Shime.new(script.Parent)
shimmer:Play()

Documentation

[!NOTE]

Visit the Documentation page more information on the Shime module and more details about Shime Constructors, Methods, and Properties.

Shime has many methods and properties that allow you to customize the shimmer effect to your liking. Below is a summary of all the methods, properties, and constructors for Shime.

Constructors

| new(parent: GuiObject) | | :--- | | Returns a table containing Shimmer's metatable. Shimmers using default parameters. |

| new(parent: GuiObject, time: number?, style: EasingStyle?, direction: EasingDirection?, repeatCount: number?, reverses: boolean?, delayTime: number?) | | :--- | | Returns a table containing Shimmer's metatable. Shimmers using specified parameters. |

Properties

| Property | Description | | :--- | :--- | | PlaybackState: Enum.PlaybackState | This read-only property will return Enum.PlaybackState. |

Methods

| GetFrame(): Frame | | :--- | | The GetFrame function returns the Frame that is used to create the shimmer effect. This frame can be customized after the shimmer is created.|

| GetGradient(): UIGradient | | :--- | | The GetGradient function returns the UIGradient that is used to create the shimmer effect. This gradient can be customized after the shimmer is created. |

| Stop(): void | | :--- | | The Stop function halts Shimmer. If Shimmer:Play() is called again the Shimmer will resume interpolating towards their destination but take the full length of the time to do so. |

| Pause(): void | | :--- | | The Pause function halts Shimmer. If you call Shimmer:Play() again, the shimmer resumes playback from the moment it was paused. |

| Play(): void | | :--- | The Play function starts Shimmer. Note that if a shimmer has already begun calling Play will have no effect unless the shimmer has finished or has been stopped (either by Shimmer:Stop() or Shimmer:Pause(). |

Contributing

We worked hard to make this open-source, so please contribute at your will. Go ahead and fork this repository, and maybe we will merge together someday.

If you have a change you want to make, please open a new pull request.

If you see a bug or want a feature, please open an issue.

To get started to go CONTRIBUTING.md on how to contribute.

License

Shime is licensed under Apache License 2.0. See LICENSE.txt for details.