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

meticulous-ui

v2.0.3

Published

A lightweight, modern React component library designed for elegance and precision ✨

Readme

meticulous-ui

A lightweight, modern React component library designed for elegance and precision ✨


🚀 Demo

meticulous-ui

🚀 Installation

npm install meticulous-ui

or

yarn add meticulous-ui

🧩 Usage

import { useState } from 'react';

import Pagination from 'meticulous-ui/components/Pagination';
import ChevronLeft from 'meticulous-ui/components/Icons/ChevronLeft';
import blue from 'meticulous-ui/colors/blue';
import capFirstLetter from 'meticulous-ui/utils/capFirstLetter';

function App() {
  const [pageNumber, setPageNumber] = useState(1);

  return (
    <div>
      <h2>{capFirstLetter('example with pagination')}</h2> // returns: Example with pagination
      <ChevronLeft size={10} color={blue.m400} onClick={setPrevPage} />
      <Pagination totalPages={10} pageNumber={pageNumber} setPageNumber={setPageNumber} />
    </div>
  );
}

export default App;

📦 Components

| Component | Description | | ------------- | -------------------------------------------------- | | Pagination | Fully responsive pagination component | | Toast | Push 4 types of notifications on screen | | Timer | Renders analog / digital clock with alarm | | OtpInput | Gives inputs to enter and edit OTP | | VideoPlayer | Renders video with keyboard shortcuts | | Input | Renders input box to let user enter input | | Textarea | Renders textarea box to let user enter description | | Dropdown | Renders dropdown to select from options | | Spinner | Renders a spinner to show the loading state | | Button | Renders a button to click & take an action |

📦 Icon Components

| Icons | Description | | ---------------------------- | ---------------------------------- | | AddCircleFilled | Add circle filled icon | | AddCircle | Add circle icon | | Add | Add icon | | ArrowDown | Arrow down icon | | ArrowLeft | Arrow left icon | | ArrowRight | Arrow right icon | | ArrowUp | Arrow up icon | | BagFilled | Bag filled icon | | BagOutline | Bag outline icon | | BellFilled | Bell filled icon | | BellOffFilled | Bell off filled icon | | BellOffOutline | Bell off outline icon | | BellOutline | Bell outline icon | | BookmarkFilled | Bookmark filled icon | | BookmarkOutline | Bookmark outline icon | | BoxCoveredFilled | Box covered filled icon | | BoxCoveredOutline | Box covered outline icon | | BoxFilled | Box filled icon | | BoxOutline | Box outline icon | | CalendarDays | Calendar days icon | | CalendarLinesPen | Calendar lines pen icon | | CartCheckFilled | Cart check filled icon | | CartCheckOutline | Cart check outline icon | | CartCrossFilled | Cart cross filled icon | | CartCrossOutline | Cart cross outline icon | | CartFilled | Cart filled icon | | CartMinusFilled | Cart minus filled icon | | CartMinusOutline | Cart minus outline icon | | CartOutline | Cart outline icon | | CartPlusFilled | Cart plus filled icon | | CartPlusOutline | Cart plus outline icon | | CheckDouble | Check double icon | | Check | Check icon | | ChevronDown | Chevron down icon | | ChevronLeft | Chevron left icon | | ChevronRight | Chevron right icon | | ChevronUp | Chevron up icon | | ClockCircleOutline | Clock circle outline icon | | ClockSquareOutline | Clock square outline icon | | CloseCircleFilled | Close circle filled icon | | CloseCircleOutline | Close circle outline icon | | Close | Close icon | | CommentBubbleFilled | Comment bubble filled icon | | CommentBubbleOutline | Comment bubble outline icon | | CommentFilled | Comment filled icon | | CommentLineFilled | Comment line filled icon | | CommentLineOutline | Comment line outline icon | | CommentOutline | Comment outline icon | | ContactDetailsFilled | Contact details filled icon | | ContactDetailsOutline | Contact details outline icon | | DeliveryTruckFastFilled | Delivery truck fast filled icon | | DeliveryTruckFastOutline | Delivery truck fast outline icon | | DeliveryTruckLeftFilled | Delivery truck left filled icon | | DeliveryTruckLeftOutline | Delivery truck left outline icon | | DeliveryTruckRightFilled | Delivery truck right filled icon | | DeliveryTruckRightOutline | Delivery truck right outline icon | | DetailsOutline | Details outline icon | | DiscordConversation | Discord conversation icon | | DiscordFilled | Discord filled icon | | DiscordOutline | Discord outline icon | | DoorClosedFilled | Door closed filled icon | | DoorClosedOutline | Door closed outline icon | | DoorOpenFilled | Door open filled icon | | DoorOpenOutline | Door open outline icon | | DotsHorizontalFilled | Dots horizontal filled icon | | DotsHorizontalOutline | Dots horizontal outline icon | | DotsVerticalFilled | Dots vertical filled icon | | DotsVerticalOutline | Dots vertical outline icon | | DownloadBoxFilled | Download box filled icon | | DownloadBoxOutline | Download box outline icon | | Download | Download icon | | EditBoxThick | Edit box thick icon | | EditBoxThin | Edit box thin icon | | EmailFilled | Email filled icon | | EmailOutline | Email outline icon | | ExitArrowInOutline | Exit arrow in outline icon | | ExitArrowOutOutline | Exit arrow out outline icon | | EyeClosed | Eye closed icon | | EyeFilled | Eye filled icon | | EyeOutline | Eye outline icon | | FacebookFilled | Facebook filled icon | | FacebookMessengerOutline | Facebook messenger outline icon | | FacebookOutline | Facebook outline icon | | FacebookRoundFilled | Facebook round filled icon | | FilterList | Filter list icon | | FilterThickFilled | Filter thick filled icon | | FilterThickOutline | Filter thick outline icon | | Filter | Filter icon | | FullScreenArrowThick | Full screen arrow thick icon | | FullScreenArrowThin | Full screen arrow thin icon | | FullScreenFilled | Full screen filled icon | | FullScreenOutline | Full screen outline icon | | HamburgerMenu | Hamburger menu icon | | HamburgerSpaced | Hamburger spaced icon | | HeartFilled | Heart filled icon | | HeartOutline | Heart outline icon | | HelpCircleFilled | Help circle filled icon | | HelpCircleOutline | Help circle outline icon | | Help | Help icon | | HomeFilled | Home filled icon | | HomeOutline | Home outline icon | | InfoCircleFilled | Info circle filled icon | | InfoCircleOutline | Info circle outline icon | | InfoSquareFilled | Info square filled icon | | InfoSquareOutline | Info square outline icon | | Info | Info icon | | InstagramOuline | Instagram ouline icon | | InstagramRoundFilled | Instagram round filled icon | | KeyFilled | Key filled icon | | KeyInSquareFilled | Key in square filled icon | | KeyInSquareOutline | Key in square outline icon | | KeyOutline | Key outline icon | | KeySideSquareFilled | Key side square filled icon | | KeySideSquareOutline | Key side square outline icon | | KeySquareFilled | Key square filled icon | | KeySquareOutline | Key square outline icon | | Link | Link icon | | LinkedinFilled | Linkedin filled icon | | LinkedinOutline | Linkedin outline icon | | LinkedinRoundFilled | Linkedin round filled icon | | Loading | Loading icon | | LocationArrowFilled | Location arrow filled icon | | LocationArrowOutline | Location arrow outline icon | | LocationFilled | Location filled icon | | LocationOutline | Location outline icon | | LockKeyholeOutline | Lock keyhole outline icon | | LockKeyholeUnlockedOutline | Lock keyhole unlocked outline icon | | LockKeyholeUnlocked | Lock keyhole unlocked icon | | LockKeyhole | Lock keyhole icon | | MediaPauseCircleFilled | Media pause circle filled icon | | MediaPauseCircleOuline | Media pause circle ouline icon | | MediaPauseFilled | Media pause filled icon | | MediaPauseOutline | Media pause outline icon | | MediaPlayCircleFilled | Media play circle filled icon | | MediaPlayCircleOutline | Media play circle outline icon | | MediaPlayFilled | Media play filled icon | | MediaPlayOutline | Media play outline icon | | MediaStopCircleFilled | Media stop circle filled icon | | MediaStopCircleOutline | Media stop circle outline icon | | MediaStopFilled | Media stop filled icon | | MediaStopOutline | Media stop outline icon | | MinusCircleFilled | Minus circle filled icon | | MinusCircle | Minus circle icon | | Minus | Minus icon | | MoneyBagOutline | Money bag outline icon | | MoneyBriefcaseFilled | Money briefcase filled icon | | MoneyBriefcaseOutline | Money briefcase outline icon | | NoEntryFilled | No entry filled icon | | NoEntryOutline | No entry outline icon | | NoEntry | No entry icon | | PaymentCardFilled | Payment card filled icon | | PaymentCardOutline | Payment card outline icon | | PhoneCallingFilled | Phone calling filled icon | | PhoneCallingOutline | Phone calling outline icon | | PhoneFilled | Phone filled icon | | PhoneOutline | Phone outline icon | | PinAddFilled | Pin add filled icon | | PinAddOutline | Pin add outline icon | | PinCircleFilled | Pin circle filled icon | | PinCircleOutline | Pin circle outline icon | | PinFilled | Pin filled icon | | PinOutline | Pin outline icon | | PinSubFilled | Pin sub filled icon | | PinSubOutline | Pin sub outline icon | | Pin | Pin icon | | PinterestFilled | Pinterest filled icon | | PinterestOutline | Pinterest outline icon | | ProfileFemaleOutline | Profile female outline icon | | ProfileGroupFilled | Profile group filled icon | | ProfileMaleFilled | Profile male filled icon | | ProfileMaleOutline | Profile male outline icon | | RedditFilled | Reddit filled icon | | RedditOutline | Reddit outline icon | | RedditRoundFilled | Reddit round filled icon | | RedditRoundOutline | Reddit round outline icon | | RupeeOutlined | Rupee outline icon | | RupeeSign | Rupee sign icon | | SaveFilled | Save filled icon | | SaveOutline | Save outline icon | | Search | Search icon | | SettingFilled | Setting filled icon | | SettingOutline | Setting outline icon | | ShareAllFilled | Share all filled icon | | ShareAllOutline | Share all outline icon | | ShareBoxOutline | Share box outline icon | | ShareFilled | Share filled icon | | ShareOutline | Share outline icon | | ShareThickFilled | Share thick filled icon | | ShieldCheckFilled | Shield check filled icon | | ShieldCheckOutline | Shield check outline icon | | ShieldCrossFilled | Shield cross filled icon | | ShieldCrossOutline | Shield cross outline icon | | ShieldFilled | Shield filled icon | | ShieldOutline | Shield outline icon | | ShieldWarningFilled | Shield warning filled icon | | ShieldWarningOutline | Shield warning outline icon | | SnapchatFilled | Snapchat filled icon | | SnapchatOutline | Snapchat outline icon | | SortBottomToTop | Sort bottom to top icon | | SortHorizontal | Sort horizontal icon | | SortTopToBottom | Sort top to bottom icon | | SortVertical | Sort vertical icon | | StarFilled | Star filled icon | | StarOutline | Star outline icon | | TelegramFilled | Telegram filled icon | | TelegramOutline | Telegram outline icon | | TelegramRoundFilled | Telegram round filled icon | | ThumbsDownFilled | Thumbs down filled icon | | ThumbsDownOutline | Thumbs down outline icon | | ThumbsUpFilled | Thumbs up filled icon | | ThumbsUpOutline | Thumbs up outline icon | | TiktokBox | Tiktok box icon | | TiktokThickFilled | Tiktok thick filled icon | | TiktokThinFilled | Tiktok thin filled icon | | TrashBigFilled | Trash big filled icon | | TrashBigOutline | Trash big outline icon | | TrashFilled | Trash filled icon | | TrashLinesFilled | Trash lines filled icon | | TrashLinesOutline | Trash lines outline icon | | TrashOutline | Trash outline icon | | UploadBoxFilled | Upload box filled icon | | UploadBoxOutline | Upload box outline icon | | Upload | Upload icon | | VolumeFilled | Volume filled icon | | VolumeMuteFilled | Volume mute filled icon | | VolumeMuteOutline | Volume mute outline icon | | VolumeOffFilled | Volume off filled icon | | VolumeOffOutline | Volume off outline icon | | VolumeOutline | Volume outline icon | | WalletFilled | Wallet filled icon | | WalletOutline | Wallet outline icon | | WarningCircleFilled | Warning circle filled icon | | WarningCircleOutline | Warning circle outline icon | | WarningSmall | Warning small icon | | WarningTriangleFilled | Warning triangle filled icon | | WarningTriangleOutline | Warning triangle outline icon | | Warning | Warning icon | | WhatsappFilled | Whatsapp filled icon | | WhatsappOutline | Whatsapp outline icon | | YoutubeFilled | Youtube filled icon | | YoutubeRoundFilled | Youtube round filled icon | | Youtube | Youtube icon |

📦 Tokens

| Types | Description | | -------- | ------------------------------- | | Colors | At least 10 shades of 23 colors |

| Colors | Shades | | ------------ | --------------------------------------------------------------------------------- | | amber | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | black | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900 | | blue | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | blueGray | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900 | | brown | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900 | | cider | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900 | | cyan | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | deepOrange | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | deepPurple | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | green | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | grey | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900 | | indigo | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | lightBlue | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | lightGreen | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | lime | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | orange | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | pink | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | purple | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | red | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | teal | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | violet | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 | | white | #FFFFFF | | yellow | m50, m100, m200, m300, m400, m500, m600, m700, m800, m900, a100, a200, a400, a700 |

📦 Utils

| Functions | Description | | ----------------- | -------------------------------------------------------------------------------------------------------------- | | capFirstLetter | Takes a string and returns with first letter capitalised | | compose | Performs right-to-left function composition using transforming function | | hasEqualProps | Takes two args: Component’s previous props & its new props; returns true if all-non functional props are equal | | isNonEmptyArray | Takes an array & returns true if is not empty | | randomInt | Takes min, max integer & returns random integer between them | | randomValue | Takes min, max value & returns random value between them |

🌱 Features

⚛️ Built with React + Styled Components

💨 Zero external CSS dependencies

🧱 Easy to extend and customize

🪶 Small bundle size

📦 ESM + CJS support out of the box

🛠️ Build Setup (for contributors)


# install dependencies
npm install

# run development build
npm run dev

# build for production (dist/)
npm run build