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

arnis-gui

v0.1.16

Published

A developer-focused React + Tailwind CSS UI component library for dark-mode apps

Downloads

14

Readme

ArnisGUI

A modern React + Tailwind CSS UI component library built for developers who value simplicity, performance, and clean design. Perfect for building dark-mode applications with minimal setup.

ArnisGUI React TypeScript Tailwind License

What Makes ArnisGUI Different

  • Built for Speed - Optimized bundle with tree-shaking. Only import what you need
  • Dark Theme First - Beautiful components that look great out of the box
  • Accessible by Default - WCAG compliant with proper keyboard navigation
  • Runtime Theming - Change colors and styles on the fly without rebuilding
  • Mobile Responsive - Works perfectly on all screen sizes
  • TypeScript Native - Full type safety and excellent IntelliSense
  • Zero Bloat - Only React and React-DOM as dependencies

Quick Start

Install

npm install arnis-gui

Basic Usage

import { Button, Card, Hero } from 'arnis-gui'
import 'arnis-gui/style.css'

function App() {
  return (
    <div>
      <Hero title="Welcome" subtitle="Get started with ArnisGUI" />
      <Card>
        <Button>Click me</Button>
      </Card>
    </div>
  )
}

Component Library

Forms

  • Button - Primary, secondary, and ghost variants with multiple sizes
  • Input - Text input with validation states and custom styling
  • Textarea - Multi-line text input with resize options
  • Checkbox - Accessible checkbox with custom styling
  • Radio - Radio button groups with proper form handling
  • Switch - Toggle switch component with smooth animations
  • Slider - Range input with custom thumb and track styling
  • Combobox - Searchable select with multi-selection support
  • DatePicker - Date selection with calendar interface
  • Upload - File upload with drag & drop support
  • Dropdown - Custom dropdown component

Feedback & Status

  • Alert - Informational, warning, and error messages
  • Badge - Status indicators and labels
  • Progress - Linear progress bars with indeterminate support
  • ProgressCircle - Circular progress indicators
  • Skeleton - Loading placeholders for content
  • Loader - Spinner and loading animations
  • LoadingOverlay - Fullscreen loading states
  • Toast - Notification system with auto-dismiss

Navigation & Layout

  • Navbar - Responsive navigation header
  • Tabs - Tabbed content with smooth transitions
  • Breadcrumbs - Navigation path indicators
  • Pagination - Page navigation with configurable limits
  • Menu - Dropdown menu system
  • Drawer - Slide-in side panels

Content Display

  • Card - Content containers with flexible layouts
  • Avatar - User profile images with fallbacks
  • Accordion - Collapsible content sections
  • Table - Data tables with sorting and pagination
  • Carousel - Image and content carousels

Utilities

  • Separator - Visual dividers and spacing
  • Tooltip - Contextual information on hover
  • Popover - Floating content panels
  • Modal - Overlay dialogs with focus management
  • Hero - Landing page hero sections
  • Footer - Page footers with organized links

Theming System

Theme Provider

Wrap your app with ThemeProvider for dynamic theming:

import { ThemeProvider } from 'arnis-gui'

function App() {
  return (
    <ThemeProvider theme={{
      accent: '#3b82f6',
      accentHover: '#2563eb',
      onAccent: '#ffffff',
      radius: '0.75rem'
    }}>
      {/* Your app content */}
    </ThemeProvider>
  )
}

CSS Variables

All colors and styles use CSS variables for easy customization:

:root {
  --arnis-background: #121212;
  --arnis-heading: #ffffff;
  --arnis-body: #b3b3b3;
  --arnis-accent: #ffffff;
  --arnis-accent-hover: #e5e5e5;
  --arnis-on-accent: #0b0b0b;
  --arnis-radius: 0.5rem;
}

Tailwind Preset

Use the included Tailwind preset for consistent styling:

// tailwind.config.js
module.exports = {
  presets: [require('arnis-gui/tailwind-preset')],
  content: ['./index.html', './src/**/*.{ts,tsx}'],
  theme: {
    extend: {
      colors: {
        accent: '#3b82f6',
        accentHover: '#2563eb',
      },
      borderRadius: {
        md: '0.75rem',
      }
    }
  }
}

Package Structure

arnis-gui/
├── dist/                    # Built components
├── tailwind-preset.js      # Tailwind configuration preset
├── style.css               # Base styles and CSS variables
├── animations.css          # Optional animation utilities
└── README.md              # This file

Development

Prerequisites

  • Node.js 18+
  • npm or yarn

Setup

git clone https://github.com/arnis-lv/arnis-gui.git
cd arnis-gui
npm install

Available Scripts

npm run dev          # Start development server
npm run build        # Build for production
npm run preview      # Preview production build
npm run release      # Build and publish to npm
npm run size         # Check bundle size

Documentation Site

npm run docs:dev     # Start docs development server
npm run docs:build   # Build docs for production
npm run docs:preview # Preview docs build

Bundle Information

  • ESM Bundle: ~3KB gzipped
  • UMD Bundle: ~4KB gzipped
  • Tree-shaking: Supported for individual component imports
  • CSS: ~26KB (includes all component styles)

Examples

Component Composition

import { Card, Button, Input, Alert } from 'arnis-gui'

function UserForm() {
  return (
    <Card className="max-w-md mx-auto">
      <h2 className="text-xl font-semibold mb-4">User Profile</h2>
      
      <div className="space-y-4">
        <Input placeholder="Full Name" />
        <Input placeholder="Email" type="email" />
        
        <Button className="w-full">Save Profile</Button>
        
        <Alert variant="info">
          Your profile will be updated immediately.
        </Alert>
      </div>
    </Card>
  )
}

Custom Styling

import { Button } from 'arnis-gui'

function CustomButton() {
  return (
    <Button 
      className="bg-gradient-to-r from-purple-500 to-pink-500 hover:from-purple-600 hover:to-pink-600"
    >
      Gradient Button
    </Button>
  )
}

Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Links

Built With


Made with ❤️ by the ArnisGUI team