
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
A shared design system and UI component library built on Radix UI primitives and styled with Tailwind CSS, providing the visual foundation for pmcx applications.
A shared design system and UI component library built on Radix UI primitives and styled with Tailwind CSS, providing the visual foundation for pmcx applications.
This package serves as the centralized design system for the pmcx workspace, delivering consistent, accessible, and composable UI primitives for the web application. By maintaining a single source of truth for visual components, we ensure design coherence and reduce duplication while enabling rapid feature development.
The package follows a layered composition model:
Each component is exported as a standalone module, allowing consuming applications to import only what they need and enabling tree-shaking for optimal bundle sizes.
The design system uses a shared theme architecture for consistency:
packages/ui/
├── tailwind.theme.ts # Shared theme factory (single source of truth)
├── tailwind.config.ts # UI package config (no prefix)
├── tailwind.preset.ts # Consuming apps preset (ds- prefix)
└── src/styles/tokens.css # Standalone CSS tokens (ds- prefix)
tailwind.theme.ts: Exports createThemeConfig(prefix) function that generates theme configurationtailwind.config.ts: Uses createThemeConfig('') with no prefix for internal componentstailwind.preset.ts: Uses createThemeConfig('ds-') with ds- prefix for consuming applicationsThis ensures zero duplication and automatic consistency between configurations.
Accessibility First – All components meet WCAG 2.1 standards through Radix UI's built-in accessibility patterns, ensuring keyboard navigation, screen reader support, and proper focus management.
Composability – Components are designed to be composed together rather than configured through props, following the compound component pattern where appropriate.
Theme Consistency – Visual tokens (colors, typography, spacing) are defined through Tailwind's configuration and consumed via CSS variables, enabling runtime theme switching when needed.
Type Safety – Full TypeScript support with exported types for component props, variants, and composition patterns.
Import components directly from their respective paths:
import {Button} from '@pmcx/ui/components/button'
import {Input} from '@pmcx/ui/components/input'
import {Stack} from '@pmcx/ui/components/stack'
Components support variant-based styling through class-variance-authority:
<Button variant="primary" size="md">
Click me
</Button>
The design system can be consumed by other applications with the ds- prefix for namespace isolation.
// apps/web/tailwind.config.ts
import dsPreset from '@pmcx/ui/tailwind.preset'
export default {
presets: [dsPreset],
prefix: 'ds-',
content: [
'./src/**/*.{ts,tsx}',
'../../packages/ui/src/**/*.{ts,tsx}', // Include UI components
],
}
// apps/web/src/app/layout.tsx
import '@pmcx/ui/tokens.css'
<div className="ds-bg-surface-primary-base ds-text-content-strong ds-p-md ds-rounded-lg">
<h1 className="ds-text-24 ds-font-bold">Hello Design System</h1>
<button className="ds-bg-surface-info-base ds-text-content-invert-strong ds-px-xs ds-py-2xs">
Click me
</button>
</div>
@pmcx/ui – Component library@pmcx/ui/tailwind.preset – Tailwind preset with design tokens@pmcx/ui/tokens.css – CSS custom properties with --ds- prefixThe configuration follows Tailwind's conventions for token keys:
DEFAULT (uppercase): Reserved Tailwind keyword for top-level colors that generate classes without suffixes
primary: { DEFAULT: '...' } → bg-primarybase: Semantic key for nested tokens with multiple variants
error: { base: '...', subdued: '...' } → bg-error-base, bg-error-subduedprimary: { 500: '...' } → bg-primary-500CSS variables remain unchanged (e.g., --color-surface-error-default) regardless of Tailwind key naming.
pnpm build
Compiles TypeScript and generates type definitions for distribution.
pnpm dev
Runs in watch mode, rebuilding on file changes for rapid iteration.
pnpm storybook:dev
Launches Storybook at http://localhost:6006 to explore components, view usage examples, and test different states interactively.
pnpm lint # Check for code issues
pnpm format # Auto-fix and format code
Applications consuming this package must:
For consuming the design system with namespace isolation, use the Tailwind preset approach documented in the Usage section above.
FAQs
A shared design system and UI component library built on Radix UI primitives and styled with Tailwind CSS, providing the visual foundation for pmcx applications.
We found that @pmcx/ui demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.