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

reactnativeepictrailsds

v1.0.2

Published

A modern, production-ready design system for React Native — featuring pre-styled, customizable components, state-based UI logic, theme support, and seamless integration with Tailwind, Expo, and TypeScript. Built for scalable mobile app development with ac

Downloads

58

Readme

React Native Epic Trails Design System

License Version TypeScript Demo

A modern, production-ready React Native design system featuring pre-styled, customizable components, state-based UI logic, theme support, and seamless integration with Tailwind, Expo, and TypeScript. Built for scalable mobile app development with accessibility and performance in mind.

🚀 Features

  • 🎯 25+ Production-Ready Components - Buttons, Inputs, Cards, Modals, Navigation, Social Media Stack, and more
  • 🎨 Dual Styling Support - Works with both NativeWind className and React Native styles
  • 🔧 State-Driven UI - Built-in hover, pressed, disabled, loading, and error states
  • 📱 Cross-Platform - Optimized for iOS, Android, and React Native Web
  • 🌗 Theme Ready - Consistent design tokens and customizable variants
  • TypeScript First - Full type safety with comprehensive prop interfaces
  • 🧩 Modular Architecture - Import only what you need for optimal bundle size
  • Accessible - Built-in accessibility support for screen readers
  • 📦 Zero Dependencies - No external UI library dependencies

📦 Installation

npm install reactnativeepictrailsds
# or
yarn add reactnativeepictrailsds

Optional: NativeWind Setup

For enhanced className support (optional - components work with pure React Native styles too):

npm install nativewind tailwindcss

Follow the NativeWind installation guide for your platform.

✨ Quick Start

import React from "react";
import { View } from "react-native";
import { 
  Button, 
  NormalInput, 
  Card, 
  SocialLogin,
  SocialMediaStack,
  StoryProgressBar
} from "reactnativeepictrailsds";

export default function App() {
  return (
    <View style={{ flex: 1, padding: 20, justifyContent: 'center' }}>
      <Card>
        <NormalInput 
          placeholder="Enter your email"
          size="full"
        />
        
        <Button
          title="Sign In"
          variant="primary"
          onPress={() => console.log('Pressed!')}
        />
        
        <SocialLogin 
          google 
          apple 
          onGoogleSignIn={() => console.log('Google')}
          onAppleSignIn={() => console.log('Apple')}
        />
      </Card>
    </View>
  );
/>

Social Media Stack Example

import React, { useState } from "react";
import {
  SocialMediaStack,
  SocialMediaContainer,
  SocialMediaEngagement,
  StoryProgressBar,
  BottomNav
} from "reactnativeepictrailsds";

export default function StoriesScreen() {
  const [activeIndex, setActiveIndex] = useState(0);
  
  const contentItems = [
    {
      type: "text" as const,
      text: "Welcome to our app!",
      backgroundColor: "#e74c3c"
    },
    {
      type: "image" as const,
      imageUri: require("./assets/image.png"),
      isLocal: true
    }
  ];
  
  const engagementIcons = [
    { name: "heart-outline", onPress: () => console.log("Like") },
    { name: "chatbox-outline", onPress: () => console.log("Comment") },
    { name: "paper-plane-outline", onPress: () => console.log("Share") }
  ];
  
  return (
    <SocialMediaStack>
      <StoryProgressBar
        totalStories={contentItems.length}
        activeStoryIndex={activeIndex}
      />
      <SocialMediaEngagement icons={engagementIcons} />
      <SocialMediaContainer
        contentItems={contentItems}
        duration={5000}
        onActiveIndexChange={(index: number) => setActiveIndex(index)}
        index={activeIndex}
      />
    </SocialMediaStack>
  );
}

🧩 Available Components

Core Components

| Component | Description | Key Props | |-----------|-------------|----------| | Button | Primary button with variants and states | label, variant, size, state | | Input | Text input with label, hint, and validation | label, placeholder, state, curved | | Card | Container with elevation and padding | elevation, padding, backgroundColor | | Alert | Notification component with variants | type, message, dismissible | | Loading | Loading spinner with customizable size | size, color | | Skeleton | Loading placeholder animations | width, height, animated |

Navigation Components

| Component | Description | Key Props | |-----------|-------------|----------| | NavTabs | Tab navigation component | tabs, activeTab, onTabPress | | BottomNav | Bottom navigation bar | items, activeIndex, onItemPress | | Tabs | Horizontal tab switcher | items, selected, onChange |

Layout Components

| Component | Description | Key Props | |-----------|-------------|----------| | Grid | Responsive grid layout | columns, spacing, children | | Tile | Grid tile with content | title, subtitle, onPress | | Collapse | Expandable/collapsible content | title, expanded, children | | EmptyStates | Empty state illustrations | title, message, actionButton |

Form Components

| Component | Description | Key Props | |-----------|-------------|----------| | Select | Dropdown selection component | options, value, onSelect | | Autocomplete | Auto-completing text input | data, onSelect, placeholder | | NormalInput | Basic text input (alias for Input) | Same as Input |

Modal & Dialog Components

| Component | Description | Key Props | |-----------|-------------|----------| | Dialog | Modal dialog with actions | visible, title, message, actions | | AndroidModalSheet | Android-style bottom sheet | visible, onClose, children | | IosModalSheet | iOS-style modal presentation | visible, onClose, children |

Social & Authentication

| Component | Description | Key Props | |-----------|-------------|----------| | SocialLogin | Social login buttons | google, apple, facebook, email | | TypeDoc | Terms agreement with checkbox | label, buttonLabel, onAccept |

Social Media Stack

| Component | Description | Key Props | |-----------|-------------|----------| | SocialMediaStack | Container for social media components | children | | SocialMediaContainer | Story/post container with navigation | contentItems, duration, onActiveIndexChange | | SocialMediaEngagement | Like, comment, share buttons | icons, onIconPress | | StoryProgressBar | Progress indicator for stories | totalStories, activeStoryIndex |

Icons & Graphics

| Component | Description | Key Props | |-----------|-------------|----------| | Iconography | Icon component with avatars and placeholders | type, iconName, size, initials |

Button Variants

| Component | Description | Key Props | |-----------|-------------|----------| | ButtonIcon | Button with icon support | label, icon, iconPosition | | ButtonRect | Rectangular button variant | label, variant, size | | RectButton | Alias for ButtonRect | label, variant, size | | ButtonTypeDoc | Button with terms agreement | label, termsText, onAccept |

🎨 Styling Approaches

Method 1: NativeWind Classes (Recommended)

import { Button } from "reactnativeepictrailsds";

<Button 
  label="Styled Button"
  className="bg-blue-500 rounded-lg shadow-md"
/>

Method 2: React Native Styles

import { Button } from "reactnativeepictrailsds";

<Button 
  label="Styled Button"
  style={{
    backgroundColor: '#3b82f6',
    borderRadius: 8,
    shadowColor: '#000',
    shadowOffset: { width: 0, height: 2 },
    shadowOpacity: 0.25,
    shadowRadius: 3.84,
    elevation: 5,
  }}
/>

Method 3: Hybrid Approach

<Button 
  label="Hybrid Button"
  className="rounded-lg shadow-md" // NativeWind classes
  style={{ backgroundColor: '#custom-color' }} // Direct styles
/>

🧪 Component States

| State | Description | Availability | |-------|-------------|-------------| | default | Default appearance | All interactive components | | hover | Mouse hover effect | Web + compatible components | | pressed | Active press state | Pressable components | | disabled | Non-interactive state | Form + button components | | loading | Loading with spinner | Async action components | | success | Success state | Form validation components | | error | Error state | Form validation components |

🛠 Development

# Clone the repository
git clone https://github.com/gaureshpai/reactnativeepictrailsds.git
cd reactnativeepictrailsds


```bash
# Clone the demo repo
git clone https://github.com/Milan-C-I/Demo-react-native-epic-trails-ds.git
cd Demo-react-native-epic-trails-ds

# Install dependencies
npm install

# Build the library
npm run build

Building the Library

# Build all formats (CommonJS, ESM, TypeScript declarations)
npm run build

# Development build with watch mode
npm run build:watch

# Type checking
npm run type-check

📅 Roadmap

✅ Completed

  • Core component library (25+ components)
  • Button variants with full state management
  • Form and input controls with validation
  • Modal and dialog primitives
  • Navigation components (tabs, bottom nav)
  • Layout components (grid, tiles, cards)
  • Social authentication components
  • Social Media Stack (Instagram-like stories)
  • Iconography system with avatars and icons
  • TypeScript support with full type definitions
  • Dual styling system (NativeWind + React Native)
  • Cross-platform compatibility (iOS, Android, Web)
  • React Native 0.76.x compatibility
  • Expo SDK 52 compatibility

🚧 In Progress

  • Enhanced theme system with design tokens
  • Advanced animation support
  • Component documentation site
  • Storybook integration
  • Video support for Social Media Stack

🎯 Planned

  • Dark mode theme variants
  • Advanced accessibility features
  • Performance optimizations
  • Extended icon library
  • Form validation utilities
  • Gesture-based components

🧑‍💻 Contributing

We welcome contributions! Please refer to our contributing guidelines before submitting a PR.

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m 'Add my feature')
  4. Push to your branch (git push origin feature/my-feature)
  5. Open a pull request and describe your changes

📝 License

This project is licensed under the MIT License.

🤝 Contributors

Thanks to these wonderful people: