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

raw3d-ui

v0.1.5

Published

A 3D UI component library built for the Log It Raw community, starting with a mechanical keycap button.

Readme

raw3d-ui

A 3D UI component library with immersive sound effects for React applications.

Description

raw3d-ui provides a set of 3D components that enhance user interaction with immersive visuals and satisfying sound effects. Inspired by mechanical keyboards and skeuomorphic design, this library creates engaging user interfaces that feel tactile and responsive.

Features

  • 🎨 3D Design Language - Components with depth, perspective, and realistic shadows
  • 🔊 Sound Integration - Optional audio feedback with easy-to-use hooks
  • ⌨️ Mechanical Keyboard Inspiration - Keycap buttons that mimic real switches
  • 🎯 TypeScript Support - Fully typed components for better developer experience
  • 🎨 Flexible Theming - Customize colors, fonts, and shadows with styled-components
  • 📚 Storybook Integration - Interactive component playground and documentation

Installation

Install raw3d-ui via npm:

npm install raw3d-ui

Quick Start

import { SoundProvider, Button3D, useSound } from 'raw3d-ui';

function App() {
  return (
    <SoundProvider>
      <Button3D variant="keycap">Mechanical Keycap</Button3D>
      <Button3D variant="drawn">Drawn Style</Button3D>
    </SoundProvider>
  );
}

Sound System

The library includes a powerful sound system that makes it easy to add audio feedback to your components.

Using Pre-configured Sounds

import { useSound } from 'raw3d-ui';

function MyComponent() {
  const { playClick, playHover, playSuccess, playError } = useSound();
  
  return (
    <div>
      <button onClick={playClick} onMouseEnter={playHover}>
        Interactive Button
      </button>
      <button onClick={playSuccess}>Success Action</button>
      <button onClick={playError}>Error Action</button>
    </div>
  );
}

Custom Sounds

import { useSound } from 'raw3d-ui';

function MyComponent() {
  const { playCustom } = useSound();
  
  const handleCustomAction = () => {
    playCustom({
      src: '/path/to/your/sound.wav',
      volume: 0.7,
      playbackRate: 1.2
    });
  };
  
  return <button onClick={handleCustomAction}>Custom Sound</button>;
}

Global Sound Control

import { useSound } from 'raw3d-ui';

function SoundToggle() {
  const { soundOn, toggleSound } = useSound();
  
  return (
    <button onClick={toggleSound}>
      {soundOn ? '🔊 Sound ON' : '🔇 Sound OFF'}
    </button>
  );
}

Components

Core Components

  • Button3D - 3D buttons with 'keycap' and 'drawn' variants
  • Card3D - 3D cards with perspective and hover effects
  • Input3D - 3D input fields
  • Modal3D - 3D modal dialogs
  • Dropdown3D - 3D dropdown menus
  • Navbar3D - 3D navigation bars
  • Table3D - 3D table components
  • Alert3D - 3D alert messages with variants
  • Tooltip3D - 3D tooltips
  • ProgressBar3D - 3D progress bars

Sound Components

  • SoundProvider - Context provider for sound management
  • MuteSwitch - Global sound toggle component

Hooks

  • useSound - Hook for easy sound integration

Theming

Customize the look and feel with styled-components:

import { ThemeProvider } from 'styled-components';
import { Button3D } from 'raw3d-ui';

const customTheme = {
  colors: {
    primary: '#2c3e50',
    secondary: '#34495e',
    border: '#2c3e50',
    text: '#ecf0f1',
    accent: '#e74c3c',
  },
  fonts: {
    main: 'Arial, sans-serif',
  },
  shadows: {
    light: '0 2px 4px rgba(0, 0, 0, 0.1)',
    medium: '0 4px 8px rgba(0, 0, 0, 0.2)',
    dark: '0 8px 16px rgba(0, 0, 0, 0.3)',
  },
};

function App() {
  return (
    <ThemeProvider theme={customTheme}>
      <Button3D>Custom Themed Button</Button3D>
    </ThemeProvider>
  );
}

Development

Storybook

Run Storybook to explore components interactively:

npm run storybook

Build

Build the library for production:

npm run build

Community

Built for the Log It Raw community - bringing tactile, satisfying interactions to the web.

License

This project is licensed under the MIT License.