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

@exyconn/egds

v0.0.5

Published

Enterprise Grade Design System — Cross-platform SDUI component library

Readme

EGDS — Enterprise Grade Design System

npm license

A cross-platform design system with 60+ production-ready React components. Built with pure CSS variables, fully tree-shakeable, and supports ESM & CJS.

Installation

npm install @exyconn/egds
# or
yarn add @exyconn/egds
# or
pnpm add @exyconn/egds

Peer Dependencies

npm install react react-dom lucide-react

Quick Start

import { Button, Text, Card } from '@exyconn/egds';

function App() {
  return (
    <Card shadow="md" padding="lg">
      <Text variant="h2">Hello EGDS</Text>
      <Button variant="primary" size="md">Get Started</Button>
    </Card>
  );
}

Tree-Shakeable Imports

Import only what you need for smaller bundles:

import { Button } from '@exyconn/egds/button';
import { Text } from '@exyconn/egds/text';
import { AppBar, Toolbar } from '@exyconn/egds/app-bar';

CSS

Import component styles:

import '@exyconn/egds/styles.css';          // all component styles
// or per-component (tree-shaken):
// import '@exyconn/egds/button/styles.css';

Components

Layout

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | Box | @exyconn/egds/box | as, display (block|flex|grid|inline), padding, margin | Layout wrapper with display modes | | Container | @exyconn/egds/container | maxWidth (sm|md|lg|xl|2xl|full), disableGutters | Responsive max-width container | | Flex | @exyconn/egds/flex | direction, align, justify, wrap, gap (none|xs|sm|md|lg|xl|2xl), inline | Flexbox layout component | | Grid | @exyconn/egds/grid | container, item, columns, spacing, span | CSS Grid layout component | | Stack | @exyconn/egds/stack | direction, spacing, align, justify, wrap, divider | Vertical/horizontal stack layout | | Spacer | @exyconn/egds/spacer | size (xs|sm|md|lg|xl|2xl|3xl), axis (horizontal|vertical) | Fixed spacing between elements | | AspectRatio | @exyconn/egds/aspect-ratio | ratio (1/1|4/3|16/9|21/9|3/2 or number) | Enforces fixed aspect ratio | | Hidden | @exyconn/egds/hidden | above, below, at (breakpoint) | Responsive visibility control | | Responsive | @exyconn/egds/responsive | useBreakpoint()isMobile, isTablet, isDesktop | Responsive breakpoint utilities |

Navigation

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | AppBar | @exyconn/egds/app-bar | position (static|fixed|sticky|relative), color (primary|default|transparent), elevation, logo | Top navigation bar with optional logo slot | | Toolbar | @exyconn/egds/app-bar | variant (regular|dense), logo | AppBar content wrapper | | ResponsiveAppBar | @exyconn/egds/app-bar | logo, nav[], actions, breakpoint (default 768) | AppBar that collapses nav into a hamburger drawer below breakpoint | | Sidebar | @exyconn/egds/sidebar | width, position (left|right) | Side navigation panel | | SidebarLink | @exyconn/egds/sidebar | label, active, icon, onClick | Sidebar navigation item | | Breadcrumbs | @exyconn/egds/breadcrumbs | items, separator, maxItems | Navigation path indicator | | Tabs | @exyconn/egds/tabs | value, onChange, variant (standard|contained|underline), size (sm|md|lg), fullWidth | Tabbed interface | | Tab | @exyconn/egds/tabs | value, label, icon, disabled | Individual tab item | | TabPanel | @exyconn/egds/tabs | value | Tab content panel | | Menu | @exyconn/egds/menu | open, onClose, anchorEl | Context/dropdown menu | | MenuItem | @exyconn/egds/menu | disabled, icon, selected, onClick | Menu item | | Pagination | @exyconn/egds/pagination | page, totalPages, onChange, siblingCount, size (sm|md|lg) | Page navigation | | Stepper | @exyconn/egds/stepper | activeStep, orientation (horizontal|vertical) | Process step indicator | | Step | @exyconn/egds/stepper | label, description, icon, optional, error | Individual step | | TreeView | @exyconn/egds/tree-view | nodes, onSelect, selected, defaultExpanded, multiSelect | Hierarchical tree navigation |

Inputs & Forms

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | Button | @exyconn/egds/button | variant (primary|secondary|outline|ghost), size (sm|md|lg), loading, disabled, leadingIcon, trailingIcon | Interactive button | | Input | @exyconn/egds/input | label, error, type (text|email|password|number|search), fullWidth, icon, iconPosition | Text input field | | Select | @exyconn/egds/select | options, value, onChange, label, error, size (sm|md|lg), multiple | Dropdown select | | Checkbox | @exyconn/egds/checkbox | checked, onChange, label, color (primary|success|warning|error), size (sm|md|lg), indeterminate | Binary selection input | | Radio | @exyconn/egds/radio | value, checked, onChange, label, color, size | Radio button | | RadioGroup | @exyconn/egds/radio | value, onChange, name, direction | Radio button group | | Switch | @exyconn/egds/switch | checked, onChange, label, color (primary|success|warning|error), size (sm|md|lg) | Toggle switch | | Slider | @exyconn/egds/slider | value, min, max, step, onChange, size (sm|md|lg), showValue | Range slider input | | Autocomplete | @exyconn/egds/autocomplete | options, value, onChange, label, placeholder, error, fullWidth | Input with suggestions | | DatePicker | @exyconn/egds/date-picker | value, onChange, label, min, max, disabled, error | Date selection input | | TimePicker | @exyconn/egds/time-picker | value, onChange, label, use24Hour, minuteStep, disabled | Time selection input | | ColorPicker | @exyconn/egds/color-picker | label, value, onChange, showInput, size (sm|md|lg) | Color selection input | | Rating | @exyconn/egds/rating | value, max, precision (0.5|1), onChange, readOnly, size | Star rating input | | FileUpload | @exyconn/egds/file-upload | label, multiple, accept, maxFiles, variant (dropzone|button|inline) | File upload with dropzone | | Form | @exyconn/egds/form | children, onSubmit | Form wrapper | | FormControl | @exyconn/egds/form | error, disabled, required, fullWidth | Form field wrapper |

Data Display

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | Text | @exyconn/egds/text | variant (h1|h2|h3|h4|body|caption|label), color, align (left|center|right) | Typography component | | Badge | @exyconn/egds/badge | text, variant (filled|outline|subtle), color (primary|success|warning|error|info|neutral), size (sm|md|lg) | Status/count label | | Card | @exyconn/egds/card | padding, shadow (none|xs|sm|md|lg|xl|2xl), onClick | Content container with elevation | | Table | @exyconn/egds/table | variant (default|striped|bordered), size (sm|md|lg), stickyHeader, hoverable | Data table | | TableHeaderCell | @exyconn/egds/table | align, sortable, sortDirection (asc|desc|none), onSort | Sortable header cell | | DataGrid | @exyconn/egds/data-grid | rows, columns, rowKey, pageSize, sortable, hoverable, onRowClick | Advanced data table | | List | @exyconn/egds/list | dense, disablePadding | Vertical list container | | ListItem | @exyconn/egds/list | selected, disabled, icon, secondaryAction, onClick | List item | | Avatar | @exyconn/egds/avatar | src, alt, size (xs|sm|md|lg|xl), variant (circular|rounded|square), initials | User avatar image | | Chip | @exyconn/egds/chip | label, variant (filled|outlined), color (primary|success|warning|error|info|neutral), size (sm|md|lg), onDelete | Compact value chip | | Divider | @exyconn/egds/divider | orientation (horizontal|vertical), spacing (none|xs|sm|md|lg|xl) | Visual separator | | Paper | @exyconn/egds/paper | elevation (0–5), variant (elevation|outlined), square | Surface elevation | | Image | @exyconn/egds/image | src, alt, fit (cover|contain|fill|none|scale-down), rounded (none|sm|md|lg|xl|full) | Image with fit options | | ImageSlider | @exyconn/egds/image-slider | images, height, autoPlay, interval, showIndicators, showArrows | Image carousel |

Charts

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | BarChart | @exyconn/egds/chart | data, horizontal, showValues | Bar chart visualization | | LineChart | @exyconn/egds/chart | data, smooth, showDots, strokeWidth, filled | Line chart visualization | | PieChart | @exyconn/egds/chart | data, donut, size | Pie/donut chart visualization |

Feedback

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | Alert | @exyconn/egds/alert | severity (success|warning|error|info), variant (filled|outlined|standard), title, icon, action | Status alert message | | Snackbar | @exyconn/egds/snackbar | open, message, onClose, autoHideDuration, position (top|bottom|top-left|top-right|bottom-left|bottom-right) | Temporary toast notification | | Dialog | @exyconn/egds/dialog | open, onClose, title, size (sm|md|lg|xl|fullscreen), actions | Modal dialog | | Drawer | @exyconn/egds/drawer | open, onClose, position (left|right|top|bottom), size (sm|md|lg|xl) | Side panel drawer | | Loader | @exyconn/egds/loader | size, color, label | Loading indicator | | Spinner | @exyconn/egds/loader | size (xs|sm|md|lg|xl), color | Spinning loader | | Skeleton | @exyconn/egds/loader | variant (text|circular|rectangular), width, height, animation | Content placeholder | | Progress | @exyconn/egds/loader | value, variant (determinate|indeterminate) | Progress bar | | Tooltip | @exyconn/egds/tooltip | title, placement (top|bottom|left|right), delay | Hover tooltip | | Backdrop | @exyconn/egds/backdrop | open, variant (transparent|dim|glass|fog), onClick, blurAmount | Overlay backdrop |

Editors

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | CodeEditor | @exyconn/egds/code-editor | value, onChange, language (javascript|typescript|json|html|css|python|markdown), readOnly, lineNumbers | Code editor with syntax highlighting | | RichTextEditor | @exyconn/egds/rich-text-editor | value, onChange, formats (bold|italic|underline|strikethrough|code|link), readOnly | WYSIWYG text editor |

Overlay & Utility

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | Accordion | @exyconn/egds/accordion | expanded, onChange, disabled, defaultExpanded | Collapsible content panel | | CommandPalette | @exyconn/egds/command | open, onClose, items, placeholder | Command/search palette | | ChatBubble | @exyconn/egds/chat | content, sender, timestamp, avatar | Chat message bubble | | MessageList | @exyconn/egds/chat | messages | Chat message list | | ChatInput | @exyconn/egds/chat | value, onChange, onSend | Simple chat text input | | EgdsChatInput | @exyconn/egds/chat-input | value, onChange, onSend, leadingActions[], trailingActions[], size (sm|md|lg), variant (filled|outline), maxLength, minRows, maxRows, loading, submitOnEnter | Full-featured chat input with auto-resize, attachments slot, send button & optional character counter | | Portal | @exyconn/egds/portal | children | Renders children into a portal | | ClickAway | @exyconn/egds/click-away | onClickAway, children | Detects clicks outside | | FocusTrap | @exyconn/egds/focus-trap | active, children | Traps keyboard focus | | ScrollArea | @exyconn/egds/scroll-area | maxHeight, direction (vertical|horizontal|both) | Custom scroll container | | Transition | @exyconn/egds/transition | show, type (fade|slide-up|slide-down|scale|none), duration, delay | Animation wrapper | | Fade | @exyconn/egds/transition | show, duration | Fade animation | | Slide | @exyconn/egds/transition | show, duration | Slide animation | | Scale | @exyconn/egds/transition | show, duration | Scale animation |

Theming & Tokens

| Component | Import | Key Props | Description | |-----------|--------|-----------|-------------| | ThemeProvider | @exyconn/egds/theme | defaultMode (light|dark|system), overrides (primaryColor, borderRadius, spacingScale, fontFamily) | Theme mode & customization | | TokenProvider | @exyconn/egds/tokens | tokens, mode | Design token injection via CSS variables | | Icons | @exyconn/egds/icons | 100+ icons from lucide-react | <Search />, <Home />, <Settings />, <User />, etc. |

TypeScript

All components are fully typed. Import types alongside components:

import { Button } from '@exyconn/egds/button';
import type { ButtonProps, ButtonVariant, ButtonSize } from '@exyconn/egds/button';

License

MIT