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

strides-ui

v1.4.1

Published

A modern design system built with React, TypeScript, TailwindCSS, and Storybook

Downloads

7

Readme

Strides UI

A modern, accessible design system built with React, TypeScript, TailwindCSS, and Storybook.

Features

  • 🎨 Modern Design: Clean and contemporary UI components
  • 🌓 Dark Mode: Full light/dark mode theming system with automatic switching
  • High Performance: Built with Vite for fast development and building
  • 🎭 TypeScript: Full type safety and excellent developer experience
  • 🎨 TailwindCSS: Utility-first CSS framework with CSS custom properties
  • 📚 Storybook: Interactive component documentation with dark mode preview
  • Accessible: Built with accessibility in mind
  • 🎯 Tree-shakable: Import only the components you need
  • 🎨 Design Tokens: Comprehensive semantic color system

Installation

npm install strides-ui

Usage

Important: You must import the CSS for the components to be styled correctly.

import { Button } from 'strides-ui';
import 'strides-ui/styles';

function App() {
  return (
    <Button variant="primary" size="md">
      Click me
    </Button>
  );
}

Available Components

Button

A versatile button component with multiple variants and states.

import { Button } from 'strides-ui';

// Basic usage
<Button>Click me</Button>

// With variants
<Button variant="primary">Primary</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="outline">Outline</Button>
<Button variant="ghost">Ghost</Button>
<Button variant="destructive">Destructive</Button>

// With sizes
<Button size="sm">Small</Button>
<Button size="md">Medium</Button>
<Button size="lg">Large</Button>

// With states
<Button loading>Loading...</Button>
<Button disabled>Disabled</Button>

// With icons
<Button startIcon={<PlusIcon />}>Add Item</Button>
<Button endIcon={<ArrowIcon />}>Next</Button>

// Full width
<Button fullWidth>Full Width Button</Button>

Dark Mode Support

The design system includes built-in dark mode support using CSS custom properties.

import { Button, initializeTheme, toggleTheme } from 'strides-ui';

function App() {
  // Initialize theme on app start
  React.useEffect(() => {
    initializeTheme();
  }, []);

  const handleToggleTheme = () => {
    toggleTheme();
  };

  return (
    <div>
      <Button onClick={handleToggleTheme}>
        Toggle Theme
      </Button>
      <Button variant="primary">Primary Button</Button>
    </div>
  );
}

Theme Utilities

import { getTheme, setTheme, toggleTheme, initializeTheme } from 'strides-ui';

// Get current theme
const currentTheme = getTheme(); // 'light' | 'dark'

// Set specific theme
setTheme('dark');

// Toggle between themes
const newTheme = toggleTheme();

// Initialize theme (usually on app start)
initializeTheme();

Development

Getting Started

  1. Clone the repository:
git clone <repository-url>
cd strides-ui
  1. Install dependencies:
npm install
  1. Start Storybook:
npm run storybook
  1. Build the library:
npm run build

Available Scripts

  • npm run dev - Start Vite development server
  • npm run build - Build the library for production
  • npm run preview - Preview the production build
  • npm run storybook - Start Storybook development server
  • npm run build-storybook - Build Storybook for production
  • npm run lint - Run ESLint
  • npm run lint:fix - Fix ESLint errors

Design Tokens

The design system uses a comprehensive semantic color system with CSS custom properties that automatically adapts to light and dark modes.

Semantic Colors

  • Primary: Main brand color for primary actions and elements
  • Secondary: Secondary brand color and neutral elements
  • Destructive: Error and destructive action colors
  • Muted: Subdued text and backgrounds
  • Accent: Accent colors for highlights and interactive states
  • Background: Main background colors
  • Foreground: Primary text colors
  • Border: Border and divider colors
  • Input: Form input backgrounds
  • Card: Card and elevated surface colors
  • Popover: Overlay and modal backgrounds
  • Ring: Focus ring colors

Color Usage

/* Use semantic colors in your CSS */
.my-component {
  background-color: var(--background);
  color: var(--foreground);
  border: 1px solid var(--border);
}

/* Or with Tailwind classes */
.my-component {
  @apply bg-background text-foreground border border-border;
}

Typography

  • Font Family: Inter (with system fallbacks)
  • Font Sizes: xs, sm, base, lg, xl, 2xl, 3xl, 4xl

Spacing

  • Standard spacing scale based on 0.25rem increments
  • Custom spacing values: 18 (4.5rem), 88 (22rem)

Border Radius

  • Standard border radius values: xl, 2xl, 3xl

Dark Mode

The design system automatically switches between light and dark variants of all colors based on the presence of the dark class on the <html> or <body> element.

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/new-component
  3. Make your changes and add tests
  4. Run the linter: npm run lint
  5. Build the library: npm run build
  6. Commit your changes: git commit -am 'Add new component'
  7. Push to the branch: git push origin feature/new-component
  8. Submit a pull request

License

MIT © Douglas Henrique

Changelog

v1.0.0

  • Initial release
  • Button component with multiple variants and states
  • TailwindCSS integration
  • Storybook documentation
  • TypeScript support