{"_id":"@danilvladov/antislop-ui","_rev":"2-cd032e31707a9dc38864707f3e91027e","name":"@danilvladov/antislop-ui","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@danilvladov/antislop-ui","version":"0.1.0","keywords":["react","ui","components","design-system","zero-border","zero-shadow","fintech","tailwind-alternative","antislop","typescript"],"author":{"url":"https://www.npmjs.com/~danilvladov","name":"Danil Vladov"},"license":"MIT","_id":"@danilvladov/antislop-ui@0.1.0","maintainers":[{"name":"danilvladov","email":"danikov.welcome@gmail.com"}],"homepage":"https://github.com/danilvladov/antislop-ui","bugs":{"url":"https://github.com/danilvladov/antislop-ui/issues"},"dist":{"shasum":"60a9f81f0cb4cb1f54d9e730b515ddbe0f8636de","tarball":"https://registry.npmjs.org/@danilvladov/antislop-ui/-/antislop-ui-0.1.0.tgz","fileCount":98,"integrity":"sha512-mB6MgG9QBBB2yu8l6m2+b1KSsoGGYMQ0zqpu99xaldNadpQJB0ocpxRBM3lvbGCCFCjy1VSKcDgqZXVUFeDMdQ==","signatures":[{"sig":"MEUCIQDU7IHWLJjGRyUPEONF5bx2TkzBCKYup5N6pk+q6ozLTwIgevldURdPDjn11xwwFz2LrLGdLCjyJAoTN6QLAsKo7+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300196},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens.css":"./src/styles/tokens.css","./styles/tokens.css":"./src/styles/tokens.css"},"scripts":{"dev":"vite","lint":"oxlint","build":"npm run build:lib && npm run build:app","preview":"vite preview","build:app":"tsc -b && vite build","build:lib":"vite build --mode lib","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"danilvladov","email":"danikov.welcome@gmail.com"},"repository":{"url":"git+https://github.com/danilvladov/antislop-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Zero-Border, Zero-Shadow React UI component system. Calibrated luminance surface hierarchy, macOS spring physics, and FinTech telemetry widgets.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.0","react":"^19.2.8","oxlint":"^1.75.0","react-dom":"^19.2.8","typescript":"~6.0.2","@types/node":"^24.13.3","@types/react":"^19.2.17","lucide-react":"^1.31.0","vite-plugin-dts":"^4.5.3","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.4"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","lucide-react":"^1.0.0 || ^0.400.0"},"_npmOperationalInternal":{"tmp":"tmp/antislop-ui_0.1.0_1787006398627_0.6381459930739899","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@danilvladov/antislop-ui","version":"0.1.1","description":"Zero-Border, Zero-Shadow React UI component system. Calibrated luminance surface hierarchy, macOS spring physics, and FinTech telemetry widgets.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles/tokens.css":"./src/styles/tokens.css","./tokens.css":"./src/styles/tokens.css"},"keywords":["react","ui","components","design-system","zero-border","zero-shadow","fintech","tailwind-alternative","antislop","typescript"],"author":{"name":"Danil Vladov","url":"https://www.npmjs.com/~danilvladov"},"license":"MIT","homepage":"https://github.com/danilvladov/antislop-ui","repository":{"type":"git","url":"git+https://github.com/danilvladov/antislop-ui.git"},"scripts":{"dev":"vite","build:app":"tsc -b && vite build","build:lib":"vite build --mode lib","build":"npm run build:lib && npm run build:app","prepublishOnly":"npm run build:lib","lint":"oxlint","preview":"vite preview"},"peerDependencies":{"lucide-react":"^1.0.0 || ^0.400.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"devDependencies":{"@types/node":"^24.13.3","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.4","lucide-react":"^1.31.0","oxlint":"^1.75.0","react":"^19.2.8","react-dom":"^19.2.8","typescript":"~6.0.2","vite":"^8.2.0","vite-plugin-dts":"^4.5.3"},"_id":"@danilvladov/antislop-ui@0.1.1","bugs":{"url":"https://github.com/danilvladov/antislop-ui/issues"},"_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-gEs6kKAvs1AZNCTkl3Ui4mMrI+CpOmgHKAKxUSD/aZjz/UNYN459vcDHH61Cag9cXP+GbfrI+m4Fn0395RyNcQ==","shasum":"d6bf38873c4965a0e3d1e8a8205beebff2c126a0","tarball":"https://registry.npmjs.org/@danilvladov/antislop-ui/-/antislop-ui-0.1.1.tgz","fileCount":98,"unpackedSize":300378,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA8TlWTxqe+tOvvW4w3zvcwlcdP74FHcItUu5hR7GLR6AiAv4oVvmP5IgT44bDIuZudope/E8hUUrCDot5830zHC1A=="}]},"_npmUser":{"name":"danilvladov","email":"danikov.welcome@gmail.com"},"directories":{},"maintainers":[{"name":"danilvladov","email":"danikov.welcome@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/antislop-ui_0.1.1_1787006726806_0.5869266750355344"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T22:39:58.503Z","modified":"2026-08-17T22:45:27.131Z","0.1.0":"2026-08-17T22:39:58.772Z","0.1.1":"2026-08-17T22:45:26.961Z"},"bugs":{"url":"https://github.com/danilvladov/antislop-ui/issues"},"author":{"name":"Danil Vladov","url":"https://www.npmjs.com/~danilvladov"},"license":"MIT","homepage":"https://github.com/danilvladov/antislop-ui","keywords":["react","ui","components","design-system","zero-border","zero-shadow","fintech","tailwind-alternative","antislop","typescript"],"repository":{"type":"git","url":"git+https://github.com/danilvladov/antislop-ui.git"},"description":"Zero-Border, Zero-Shadow React UI component system. Calibrated luminance surface hierarchy, macOS spring physics, and FinTech telemetry widgets.","maintainers":[{"name":"danilvladov","email":"danikov.welcome@gmail.com"}],"readme":"<div align=\"center\">\n\n# AntiSlop UI\n\n**Zero-Border, Zero-Shadow Design System and Component Library for React.**\n\n[![npm version](https://img.shields.io/badge/npm-v0.1.1-black?style=flat-square&logo=npm)](https://www.npmjs.com/package/@danilvladov/antislop-ui)\n[![License: MIT](https://img.shields.io/badge/License-MIT-black?style=flat-square)](LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-black?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)\n[![React](https://img.shields.io/badge/React-18%20%2F%2019-black?style=flat-square&logo=react)](https://react.dev/)\n[![Bundle Size](https://img.shields.io/badge/gzipped-58.9_kB-black?style=flat-square)](https://bundlephobia.com)\n\n<p align=\"center\">\n  <a href=\"#overview\">Overview</a> &bull;\n  <a href=\"#design-invariants\">Design Invariants</a> &bull;\n  <a href=\"#visual-preview\">Visual Preview</a> &bull;\n  <a href=\"#installation\">Installation</a> &bull;\n  <a href=\"#quick-start\">Quick Start</a> &bull;\n  <a href=\"#design-tokens\">Design Tokens</a> &bull;\n  <a href=\"#component-api\">Component API</a> &bull;\n  <a href=\"#license\">License</a>\n</p>\n\n</div>\n\n---\n\n## Visual Preview\n\n### Dark Theme Interface\n![AntiSlop UI Interface — Dark Theme](./assets/dark.png)\n\n### Light Theme Interface\n![AntiSlop UI Interface — Light Theme](./assets/light.png)\n\n---\n\n## Overview\n\nAntiSlop UI is a React component system built around strict visual invariants: **zero borders** and **zero drop shadows**. \n\nTraditional web interfaces rely heavily on 1px borders and artificial blurred box-shadows to separate elements. In dense dashboard and FinTech environments, this creates visual noise, unnecessary cognitive load, and dated aesthetics.\n\nAntiSlop UI establishes depth, elevation, and hierarchy exclusively through:\n1. **Calibrated Multi-Layer Surface Luminance**: Discrete luminance contrast steps between Canvas, Surface, Soft container, and Sunken inputs.\n2. **macOS-Grade Spring Physics**: Tactile cubic-bezier transitions (`cubic-bezier(0.175, 0.885, 0.32, 1.275)`) delivering immediate physical feedback.\n3. **Hardware-Accelerated Backdrop Filters**: Optical blur overlays (`backdrop-filter: blur(16px–20px)`) for sheets, dialogs, and floating navigation.\n4. **Zero External Runtime Dependencies**: Pure React and standard CSS Custom Properties.\n\n---\n\n## Design Invariants\n\n```\n+-------------------------------------------------------------------+\n| Layer 0: App Canvas Canvas             (--p-app: #08080a)         |\n|   +-------------------------------------------------------------+ |\n|   | Layer 1: Elevated Surface Card     (--p-surface: #141419)   | |\n|   |   +-------------------------------------------------------+ | |\n|   |   | Layer 2: Inner Widget Container (--p-soft: #1c1c24)   | | |\n|   |   |   +-------------------------------------------------+ | | |\n|   |   |   | Layer 3: Tactile Recessed Input (--p-input-bg)  | | | |\n|   |   |   +-------------------------------------------------+ | | |\n|   |   +-------------------------------------------------------+ | |\n|   +-------------------------------------------------------------+ |\n+-------------------------------------------------------------------+\n```\n\n| Property | AntiSlop UI Standard | Conventional UI Libraries |\n| :--- | :--- | :--- |\n| **Borders** | `border: none` (0px) | `1px solid rgba(255,255,255,0.1)` |\n| **Shadows** | `box-shadow: none` | `0 10px 30px rgba(0,0,0,0.5)` |\n| **Depth Engine** | Multi-tier surface luminance | Blur radii and spread distances |\n| **Overlays** | Hardware optical blur (`16px`) | Solid tint with high opacity |\n| **Interaction Physics** | Sub-millisecond spring curves | Linear or generic ease-in-out |\n| **Bundle Overhead** | Zero runtime CSS dependencies | Heavy runtime CSS-in-JS injection |\n\n---\n\n## Installation\n\nInstall `@danilvladov/antislop-ui` along with `lucide-react` icons:\n\n```bash\nnpm install @danilvladov/antislop-ui lucide-react\n```\n\nOr using alternative package managers:\n\n```bash\n# pnpm\npnpm add @danilvladov/antislop-ui lucide-react\n\n# bun\nbun add @danilvladov/antislop-ui lucide-react\n\n# yarn\nyarn add @danilvladov/antislop-ui lucide-react\n```\n\nImport design tokens in your application entry point (`main.tsx`, `index.tsx`, or `_app.tsx`):\n\n```tsx\nimport '@danilvladov/antislop-ui/styles/tokens.css';\n```\n\n---\n\n## Quick Start\n\n### FinTech Analytics & Controls Example\n\n```tsx\nimport React, { useState } from 'react';\nimport {\n  Card,\n  StatCard,\n  Sparkline,\n  Input,\n  PasswordInput,\n  PinInput,\n  Select,\n  Button,\n  Dialog,\n  Badge,\n} from '@danilvladov/antislop-ui';\nimport { Mail, Zap, TrendingUp } from 'lucide-react';\n\nexport function ClusterDashboard() {\n  const [pin, setPin] = useState('5921');\n  const [plan, setPlan] = useState('pro');\n  const [dialogOpen, setDialogOpen] = useState(false);\n\n  return (\n    <Card\n      title=\"Cluster Infrastructure\"\n      subtitle=\"42 edge nodes synchronized with zero cold starts.\"\n      action={<Badge variant=\"success\" dot>Operational</Badge>}\n    >\n      {/* 2x2 Metric Grid */}\n      <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 10 }}>\n        <StatCard\n          title=\"Throughput\"\n          value=\"4.8 GB/s\"\n          change=\"+14.2%\"\n          trend=\"up\"\n          icon={<TrendingUp size={13} />}\n        />\n        <div style={{ padding: 12, backgroundColor: 'var(--p-soft)', borderRadius: 'var(--p-r-md)' }}>\n          <Sparkline\n            data={[14, 22, 18, 36, 42, 38, 56, 64, 58, 80]}\n            color=\"var(--p-success)\"\n            height={32}\n          />\n        </div>\n      </div>\n\n      {/* Tactile Form Inputs */}\n      <Input\n        label=\"Workspace Email\"\n        icon={<Mail size={13} />}\n        value=\"alex.chen@antislop.dev\"\n        onChange={() => {}}\n      />\n\n      <PasswordInput\n        label=\"Access Secret\"\n        value=\"secret_live_8912\"\n        onChange={() => {}}\n      />\n\n      {/* Aligned 2FA PIN and Select Controls */}\n      <div style={{ display: 'grid', gridTemplateColumns: 'auto 1fr', gap: 16, alignItems: 'flex-start' }}>\n        <PinInput\n          label=\"2FA PIN Code\"\n          length={4}\n          value={pin}\n          onChange={setPin}\n        />\n        <div style={{ minWidth: 0 }}>\n          <Select\n            label=\"Plan\"\n            value={plan}\n            onChange={setPlan}\n            options={[\n              { value: 'core', label: 'Community Core ($0)' },\n              { value: 'pro', label: 'Enterprise Pro ($49/mo)' },\n              { value: 'scale', label: 'Dedicated Scale (Custom)' },\n            ]}\n          />\n        </div>\n      </div>\n\n      <Button\n        variant=\"primary\"\n        icon={<Zap size={13} />}\n        onClick={() => setDialogOpen(true)}\n      >\n        Deploy Infrastructure\n      </Button>\n\n      {/* Optical Blur Sheet Dialog */}\n      <Dialog\n        open={dialogOpen}\n        onClose={() => setDialogOpen(false)}\n        title=\"Confirm Infrastructure Deployment\"\n        description=\"Propagating 100+ design tokens across 42 global edge clusters.\"\n        icon={<Zap size={18} color=\"var(--p-success)\" />}\n        footer={\n          <>\n            <Button variant=\"ghost\" size=\"sm\" onClick={() => setDialogOpen(false)}>\n              Cancel\n            </Button>\n            <Button\n              variant=\"primary\"\n              size=\"sm\"\n              onClick={() => setDialogOpen(false)}\n            >\n              Deploy Now\n            </Button>\n          </>\n        }\n      >\n        <p>Deployment will initiate mTLS mutual handshake across all regional nodes.</p>\n      </Dialog>\n    </Card>\n  );\n}\n```\n\n---\n\n## Design Tokens\n\nTokens are exposed as standard CSS Custom Properties and adapt automatically based on the `data-theme` attribute (`light`, `dark`, or `midnight`).\n\n```html\n<html data-theme=\"dark\">\n```\n\n### Surface & Canvas Tokens\n\n| Token | Light (`light`) | Dark (`dark`) | Midnight (`midnight`) | Description |\n| :--- | :--- | :--- | :--- | :--- |\n| `--p-app` | `#f2f3f6` | `#08080a` | `#020204` | Application canvas canvas |\n| `--p-surface` | `#ffffff` | `#141419` | `#0e0e13` | Elevated card container |\n| `--p-soft` | `#e8e9ef` | `#1c1c24` | `#161620` | Inner widget background |\n| `--p-input-bg` | `#eaebee` | `#14141a` | `#0b0b10` | Tactile recessed input |\n| `--p-hover` | `#dedfe7` | `#252530` | `#20202e` | Interactive hover state |\n| `--p-t-900` | `#0f0f13` | `#fafafc` | `#ffffff` | Primary text |\n| `--p-t-500` | `#717180` | `#6c6c7c` | `#5a5a68` | Secondary / muted text |\n| `--p-success` | `#16a34a` | `#34d399` | `#34d399` | Success / live indicator |\n| `--p-danger` | `#dc2626` | `#f87171` | `#f87171` | Error / danger state |\n\n### Motion & Radius Tokens\n\n```css\n--p-r-sm: 6px;\n--p-r-md: 10px;\n--p-r-lg: 14px;\n--p-r-xl: 18px;\n--p-r-full: 9999px;\n\n--p-ease: cubic-bezier(0.22, 0.61, 0.36, 1);\n--p-ease-out: cubic-bezier(0.16, 1, 0.3, 1);\n--p-ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n```\n\n---\n\n## Component API\n\nThe library exports 100+ primitives and composite modules organized across functional domains:\n\n### 1. Structure & Shell\n- `Card`: Zero-border container with header, subtitle, actions, and surface contrast.\n- `SectionHeader`: Section titles with metadata counters and action slots.\n- `Divider`: Pure surface separator without 1px border lines.\n- `Breadcrumb`: Interactive navigation path with click handlers.\n- `Stack`: Flexible flexbox alignment container.\n\n### 2. Form Controls & Inputs\n- `Input`: Single-line text field with icon prefixes, suffixes, and error states.\n- `PasswordInput`: Masked input with toggle visibility action.\n- `PinInput`: 2FA OTP segmented input with automatic key navigation and backspace handling.\n- `NumberInput`: Stepper control with increment and decrement constraints.\n- `Textarea`: Multi-line text input with automatic line height calculation.\n- `SearchInput`: Search control with keyboard shortcut (`⌘K`) indicator and clear action.\n- `Dropzone`: Drag-and-drop file upload zone.\n\n### 3. Selection & Ranges\n- `Select`: Custom dropdown selector with keyboard navigation.\n- `MultiSelect`: Multi-item pill selector with individual tag removal.\n- `Slider`: Range slider with tactile thumb physics.\n- `RangeSlider`: Dual-handle min/max range selector.\n- `DatePicker`: Calendar date picker with month navigation.\n- `ColorPicker`: Palette swatch selector.\n- `SegmentedControl`: Sliding pill selector with spring transitions.\n- `Checkbox`: Tactile toggle box.\n- `Switch`: iOS-style binary switch.\n- `RadioGroup`: Segmented radio option list.\n\n### 4. FinTech & Telemetry\n- `Sparkline`: Lightweight SVG trend sparkline chart with customizable stroke and fill.\n- `StatCard`: KPI summary card with percentage delta, direction indicators, and icon slots.\n- `ActivityHeatmap`: Contribution and activity matrix grid.\n- `PricingTier`: SaaS subscription tier card with feature checklist and popular highlight.\n- `CreditCardPreview`: Virtual credit card renderer with chip and masked PAN.\n- `InvoiceRow`: Financial transaction row item with status badge.\n\n### 5. Overlays & Dialogs\n- `Dialog`: macOS-style sheet dialog with `16px` backdrop blur and escape key handling.\n- `Drawer`: Slide-out panel for configurations and complex forms.\n- `CommandPalette`: Global `⌘K` command search palette with fuzzy filtering.\n- `ContextMenu`: Right-click contextual action menu.\n- `DropdownMenu`: Anchor-aligned action menu.\n- `Tooltip`: Micro-interaction tooltip with automatic positioning.\n\n### 6. Data & Feedback\n- `Table`: Zero-border fixed data table with hover highlighting and row click callbacks.\n- `Badge`: Capsule badge with status dot indicators (`success`, `danger`, `neutral`, `pro`).\n- `StatusDot`: Animated heartbeat status indicator.\n- `Progress`: Linear progress indicator with percentage output.\n- `CircularProgress`: Radial progress gauge with SVG stroke calculations.\n- `Spinner`: Micro-interaction loading indicator.\n- `Skeleton`: Content placeholder shimmer with rectangle, circle, and text variants.\n- `Toast`: Imperative notification toast system.\n- `Accordion`: Collapsible disclosure panel with spring physics.\n- `Tree`: Hierarchical folder and node tree navigator.\n- `Timeline`: Chronological event sequence list.\n\n---\n\n## Local Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/your-username/antislop-ui.git\n\n# Navigate to project directory\ncd antislop-ui\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n\n# Run production build validation\nnpm run build\n```\n\n---\n\n## License\n\nMIT License &copy; 2026 **AntiSlop UI Foundation**\n\nFree for use in personal, open-source, and commercial SaaS applications.\n","readmeFilename":"README.md"}