
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
A modern React dashboard UI kit with a flexible theming system
npm install plynx
// main.tsx
import { ThemeProvider, baseTheme, darkTheme, professionalTheme } from 'plynx'
import 'plynx/styles'
ReactDOM.createRoot(document.getElementById('root')!).render(
<ThemeProvider
initialTheme={baseTheme}
themes={[baseTheme, darkTheme, professionalTheme]}
>
<App />
</ThemeProvider>
)
// App.tsx
import { Button, Card, Input } from 'plynx'
export function App() {
return (
<Card header="Welcome">
<Input label="Email" placeholder="you@example.com" type="email" />
<Button className="mt-4">Get started</Button>
</Card>
)
}
| Theme | Description |
|---|---|
baseTheme | Clean, minimal with light neutral tones |
darkTheme | Dark mode variant with light text |
professionalTheme | Navy-toned corporate theme with tighter radius |
Switch themes at runtime:
import { useTheme } from 'plynx'
function ThemeToggle() {
const { setTheme, currentTheme } = useTheme()
return (
<button onClick={() => setTheme(currentTheme.name === 'dark' ? 'base' : 'dark')}>
Toggle dark mode
</button>
)
}
| Component | Description |
|---|---|
Button | Variants: primary, secondary, outline, ghost · Sizes: sm, md, lg |
Input | With label, error state, and help text |
Card | With header, footer, and elevated variant |
| Component | Description |
|---|---|
DashboardLayout | Full page shell: sidebar + header + content |
Sidebar | Collapsible navigation panel with logo, footer, and built-in toggle |
Header | Top bar with title, breadcrumbs, and actions |
PageContent | Scrollable main content area |
| Component | Description |
|---|---|
NavItem | Navigation link with active state, icon, badge, and collapsed tooltip |
NavGroup | Collapsible labeled section with hierarchy lines |
| Hook | Description |
|---|---|
useSidebarContext | Returns { collapsed: boolean } — safe to call outside Sidebar (defaults to false) |
| Component | Description |
|---|---|
Badge | Status indicators with success / warning / error / info |
Alert | Dismissable feedback messages |
Modal | Accessible overlay dialog |
Tabs | Content switcher with keyboard support |
Dropdown | Floating menu triggered by a button |
Tooltip | Hover label with directional positioning |
Sidebar manages its own collapsed state and exposes it via SidebarContext. Child NavItem and NavGroup components read this context automatically — no wiring required.
import { Sidebar, NavItem, NavGroup } from 'plynx'
import { LayoutDashboard, Settings } from 'lucide-react'
<Sidebar logo={<strong>Plynx</strong>} footer={<span>user@example.com</span>}>
<NavGroup label="Main">
<NavItem label="Dashboard" href="/" icon={<LayoutDashboard size={16} />} isActive />
<NavItem label="Settings" href="/settings" icon={<Settings size={16} />} badge={3} />
</NavGroup>
</Sidebar>
Collapsed state — when the user clicks the built-in toggle button, the sidebar narrows to icon-only mode (w-16). In this state:
NavItem shows only the icon (or a 2-letter initial if no icon is provided) and renders a portal-based tooltip on hoverNavGroup hides its label and expand/collapse button, rendering only its childrenfooter slot is hiddenuseSidebarContext — read the collapsed state anywhere inside the tree:
import { useSidebarContext } from 'plynx'
function MyNavItem() {
const { collapsed } = useSidebarContext()
return <span>{collapsed ? '…' : 'Full label'}</span>
}
NavGroup — collapsible by default (starts open). Click the label row to toggle. Shows a left-border hierarchy line when expanded.
<NavGroup label="Settings" className="mt-4">
<NavItem label="Profile" href="/profile" icon={<User size={16} />} />
<NavItem label="Security" href="/security" icon={<Shield size={16} />} />
</NavGroup>
Peer dependency —
lucide-reactis a peer dependency. Install it alongsideplynxif you use Lucide icons in nav items:npm install lucide-react
MIT
FAQs
Modern React dashboard UI kit with flexible theming
We found that plynx 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.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.