{"_id":"@ars-design/bauhaus-ui","_rev":"7-8a38b8587bea1d92fc0e9f89c3af9af6","name":"@ars-design/bauhaus-ui","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@ars-design/bauhaus-ui","version":"0.1.0","keywords":["react","react-components","ui","ui-library","components","bauhaus","design-system","css-modules","minimalist","ars-design"],"author":{"name":"ARS Design","email":"contact@ars-design.com"},"license":"MIT","_id":"@ars-design/bauhaus-ui@0.1.0","maintainers":[{"name":"jessi.borda","email":"jessi.borda09@gmail.com"}],"homepage":"https://github.com/jessicaborda/Bauhaus_components#readme","bugs":{"url":"https://github.com/jessicaborda/Bauhaus_components/issues"},"dist":{"shasum":"3de1134dad4c852a0cb72a62b5fdc8324ea8253b","tarball":"https://registry.npmjs.org/@ars-design/bauhaus-ui/-/bauhaus-ui-0.1.0.tgz","fileCount":7,"integrity":"sha512-lPpjr653bn7OcSp2TBEcV2VHX9wD9Jh9t7llvYJ4Hdye486Z35TqWC2EsdxFoO+ZiPDgdf8bd6T1cCh7OC8nlw==","signatures":[{"sig":"MEUCIQDViPcfb4L6kDvVd5NzbUIa+MOsTRuFkqZFH221IxKG0AIgb7/QL9gAFmIIXO0Y1nB48QtDekWZYvEjt7g2o7cQhXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28021},"main":"./dist/bauhaus-ui.umd.cjs","type":"module","module":"./dist/bauhaus-ui.js","exports":{".":{"import":"./dist/bauhaus-ui.js","require":"./dist/bauhaus-ui.umd.cjs"},"./styles":"./dist/style.css"},"gitHead":"8ab7b9eaf9469fc26e543a27c98dc18936f09c30","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},"repository":{"url":"git+https://github.com/jessicaborda/Bauhaus_components.git","type":"git"},"_npmVersion":"11.6.4","description":"Minimalist React component library inspired by the Bauhaus design school","directories":{},"_nodeVersion":"24.10.0","dependencies":{"prop-types":"^15.8.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","react":"^19.0.0","react-dom":"^19.0.0","storybook":"^10.1.2","@vitejs/plugin-react":"^4.3.4","@storybook/addon-docs":"^10.1.2","@storybook/react-vite":"^10.1.2","@storybook/addon-links":"^10.1.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bauhaus-ui_0.1.0_1764545853422_0.8791665939905033","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ars-design/bauhaus-ui","version":"0.1.1","keywords":["react","react-components","ui","ui-library","components","bauhaus","design-system","css-modules","minimalist","ars-design"],"author":{"name":"ARS Design","email":"contact@ars-design.com"},"license":"MIT","_id":"@ars-design/bauhaus-ui@0.1.1","maintainers":[{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},{"name":"wtoloza","email":"wtorrestoloza@hotmail.com"}],"homepage":"https://jessicaborda.github.io/Bauhaus_components","bugs":{"url":"https://github.com/jessicaborda/Bauhaus_components/issues"},"dist":{"shasum":"a63066e216052bf0382a773703306375d406d486","tarball":"https://registry.npmjs.org/@ars-design/bauhaus-ui/-/bauhaus-ui-0.1.1.tgz","fileCount":7,"integrity":"sha512-BK93c4oVl8z3e4KzFPYjpW14Vni9k5a8OHLQENaNsqeFkRbZdcAni0ZnJ7509rRjABt/YST97iL9LQstO/z5Sw==","signatures":[{"sig":"MEUCIQCadGYYbCvKB95d0nt77hpZo8rW8mTVJo8ntPTvbF/u4QIgGMYBMftYs6ZnTJaJWqDpbCPROeDe5omFJQEvKQdTmvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28352},"main":"./dist/bauhaus-ui.umd.cjs","type":"module","module":"./dist/bauhaus-ui.js","exports":{".":{"import":"./dist/bauhaus-ui.js","require":"./dist/bauhaus-ui.umd.cjs"},"./styles":"./dist/bauhaus-ui.css"},"gitHead":"dd329a1f657c67463443ecd7a0183f7b98851d6d","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},"repository":{"url":"git+https://github.com/jessicaborda/Bauhaus_components.git","type":"git"},"_npmVersion":"11.6.4","description":"Minimalist React component library inspired by the Bauhaus design school","directories":{},"_nodeVersion":"24.10.0","dependencies":{"prop-types":"^15.8.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","react":"^19.0.0","react-dom":"^19.0.0","storybook":"^10.1.2","@vitejs/plugin-react":"^4.3.4","@storybook/addon-docs":"^10.1.2","@storybook/react-vite":"^10.1.2","@storybook/addon-links":"^10.1.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bauhaus-ui_0.1.1_1764721431318_0.32626450749970903","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ars-design/bauhaus-ui","version":"0.1.2","keywords":["react","react-components","ui","ui-library","components","bauhaus","design-system","css-modules","minimalist","ars-design"],"author":{"name":"ARS Design","email":"contact@ars-design.com"},"license":"MIT","_id":"@ars-design/bauhaus-ui@0.1.2","maintainers":[{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},{"name":"wtoloza","email":"wtorrestoloza@hotmail.com"}],"homepage":"https://jessicaborda.github.io/Bauhaus_components","bugs":{"url":"https://github.com/jessicaborda/Bauhaus_components/issues"},"dist":{"shasum":"082b7a441eee9112616da6900511fe9801b48cdb","tarball":"https://registry.npmjs.org/@ars-design/bauhaus-ui/-/bauhaus-ui-0.1.2.tgz","fileCount":7,"integrity":"sha512-EJhfQdolOb1Y4WxtJly06nFvxeqNQm+sg9CPmL0h90w7oFphXv8XT2g8jryK916/1cn0JtYfkszB/YHvLxR4Mw==","signatures":[{"sig":"MEQCICGNBg7X44epnZrtBh24PvDps6VjGp9YxzBrwuYNxVscAiBOoh4w9y2Nqa3kRmfPFhDA7Mz34SWZlvyB1agW6Y7imw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83697},"main":"./dist/bauhaus-ui.umd.cjs","type":"module","module":"./dist/bauhaus-ui.js","exports":{".":{"import":"./dist/bauhaus-ui.js","require":"./dist/bauhaus-ui.umd.cjs"},"./styles":"./dist/style.css"},"gitHead":"0b265be8c378a6f2d396d45e9c9c0321fff3db0f","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},"repository":{"url":"git+https://github.com/jessicaborda/Bauhaus_components.git","type":"git"},"_npmVersion":"10.9.2","description":"Minimalist React component library inspired by the Bauhaus design school","directories":{},"_nodeVersion":"22.14.0","dependencies":{"prop-types":"^15.8.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","react":"^19.0.0","react-dom":"^19.0.0","storybook":"^10.1.2","@vitejs/plugin-react":"^4.3.4","@storybook/addon-docs":"^10.1.2","@storybook/react-vite":"^10.1.2","@storybook/addon-links":"^10.1.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bauhaus-ui_0.1.2_1765213082712_0.46367224107699045","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ars-design/bauhaus-ui","version":"0.1.3","keywords":["react","react-components","ui","ui-library","components","bauhaus","design-system","css-modules","minimalist","ars-design"],"author":{"name":"ARS Design","email":"contact@ars-design.com"},"license":"MIT","_id":"@ars-design/bauhaus-ui@0.1.3","maintainers":[{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},{"name":"wtoloza","email":"wtorrestoloza@hotmail.com"}],"homepage":"https://jessicaborda.github.io/Bauhaus_components","bugs":{"url":"https://github.com/jessicaborda/Bauhaus_components/issues"},"dist":{"shasum":"0046d64f3d9f6a6c42cc7f5b2e2164516ad0c2fa","tarball":"https://registry.npmjs.org/@ars-design/bauhaus-ui/-/bauhaus-ui-0.1.3.tgz","fileCount":7,"integrity":"sha512-jHVz/BBexbVNhynqgnaNu8Q/0zto50w5xqMUMucDbytBipghM6lgzIYKQmY6RJ1kB0KLO8LYGbLKYq5GMJ/N5w==","signatures":[{"sig":"MEYCIQDctRqeoxjS84d0/MS5c+kLlREx6jpPg7LPFNeKH4GveAIhAJE35mAW/yMcQvwogzxdsQ/ZfyvrbKIw/nBZRJIBzRM0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83374},"main":"./dist/bauhaus-ui.umd.cjs","type":"module","module":"./dist/bauhaus-ui.js","exports":{".":{"import":"./dist/bauhaus-ui.js","require":"./dist/bauhaus-ui.umd.cjs"},"./styles":"./dist/bauhaus-ui.css"},"gitHead":"0745c0a3323592c1e9dcc70487e020df524d6fd7","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},"repository":{"url":"git+https://github.com/jessicaborda/Bauhaus_components.git","type":"git"},"_npmVersion":"11.6.4","description":"Minimalist React component library inspired by the Bauhaus design school","directories":{},"_nodeVersion":"24.10.0","dependencies":{"prop-types":"^15.8.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","react":"^19.0.0","react-dom":"^19.0.0","storybook":"^10.1.2","@vitejs/plugin-react":"^4.3.4","@storybook/addon-docs":"^10.1.2","@storybook/react-vite":"^10.1.2","@storybook/addon-links":"^10.1.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bauhaus-ui_0.1.3_1765214360577_0.7228194998978379","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ars-design/bauhaus-ui","version":"0.2.0","keywords":["react","react-components","ui","ui-library","components","bauhaus","design-system","css-modules","minimalist","ars-design","typescript"],"author":{"name":"ARS Design","email":"contact@ars-design.com"},"license":"MIT","_id":"@ars-design/bauhaus-ui@0.2.0","maintainers":[{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},{"name":"wtoloza","email":"wtorrestoloza@hotmail.com"}],"homepage":"https://jessicaborda.github.io/Bauhaus_components","bugs":{"url":"https://github.com/jessicaborda/Bauhaus_components/issues"},"dist":{"shasum":"f1536b172d5bc10ed98b5460a0c8da9491525bd9","tarball":"https://registry.npmjs.org/@ars-design/bauhaus-ui/-/bauhaus-ui-0.2.0.tgz","fileCount":8,"integrity":"sha512-MFhyQ2nNcoES2ZsGr5lK+MPnvx4DBdP5tN3byqK7ZHz/8/n6DTznxrVLMSgAkZ7OA0tDXWsVWG27mAKfIBL0ug==","signatures":[{"sig":"MEYCIQCJV2lZD/MFqly5OCAIecFhYWQYuTlaXiXitrKg5/zlUQIhAIF4aNTliHPpO/4PuCu2FTuelYV5YNBrKSv9A9GK5GGs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79779},"main":"./dist/bauhaus-ui.umd.cjs","type":"module","types":"./dist/bauhaus-ui.d.ts","module":"./dist/bauhaus-ui.js","exports":{".":{"types":"./dist/bauhaus-ui.d.ts","import":"./dist/bauhaus-ui.js","require":"./dist/bauhaus-ui.umd.cjs"},"./styles":"./dist/bauhaus-ui.css"},"gitHead":"88d6e7d6b2d1b6d17800b46a244606a537e259be","scripts":{"dev":"vite","lint":"biome lint .","build":"vite build","check":"biome check --write .","format":"biome format --write .","preview":"vite preview","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","build-storybook":"storybook build"},"_npmUser":{"name":"wtoloza","email":"wtorrestoloza@hotmail.com"},"repository":{"url":"git+https://github.com/jessicaborda/Bauhaus_components.git","type":"git"},"_npmVersion":"11.6.4","description":"Minimalist React component library inspired by the Bauhaus design school","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","react":"^19.2.3","react-dom":"^19.2.3","storybook":"^10.1.10","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7","@biomejs/biome":"2.3.10","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^5.1.2","@storybook/addon-docs":"^10.1.10","@storybook/react-vite":"^10.1.10","@storybook/addon-links":"^10.1.10"},"peerDependencies":{"react":"^19.2.3","react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/bauhaus-ui_0.2.0_1766254475701_0.3582448324897469","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@ars-design/bauhaus-ui","version":"0.2.1","description":"Minimalist React component library inspired by the Bauhaus design school","type":"module","main":"./dist/bauhaus-ui.umd.cjs","module":"./dist/bauhaus-ui.js","types":"./dist/bauhaus-ui.d.ts","publishConfig":{"access":"public"},"exports":{".":{"types":"./dist/bauhaus-ui.d.ts","import":"./dist/bauhaus-ui.js","require":"./dist/bauhaus-ui.umd.cjs"},"./styles":"./dist/bauhaus-ui.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","typecheck":"tsc --noEmit","changeset":"changeset","version-packages":"changeset version","release":"npm run build && changeset publish","format":"biome format --write .","lint":"biome lint .","check":"biome check --write .","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"keywords":["react","react-components","ui","ui-library","components","bauhaus","design-system","css-modules","minimalist","ars-design","typescript"],"author":{"name":"ARS Design","email":"contact@ars-design.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/jessicaborda/Bauhaus_components.git"},"bugs":{"url":"https://github.com/jessicaborda/Bauhaus_components/issues"},"homepage":"https://jessicaborda.github.io/Bauhaus_components","peerDependencies":{"react":"^19.2.3","react-dom":"^19.2.3"},"devDependencies":{"@biomejs/biome":"2.3.10","@changesets/cli":"^2.29.8","@storybook/addon-docs":"^10.1.10","@storybook/addon-links":"^10.1.10","@storybook/react-vite":"^10.1.10","@types/node":"^25.0.3","@types/react":"^19.2.7","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^5.1.2","react":"^19.2.3","react-dom":"^19.2.3","storybook":"^10.1.10","typescript":"^5.9.3","vite":"^7.3.0","vite-plugin-dts":"^4.5.4"},"gitHead":"5607bdce77c8ee151debddbe2fc1e716f54a3df7","_id":"@ars-design/bauhaus-ui@0.2.1","_nodeVersion":"24.10.0","_npmVersion":"11.6.4","dist":{"integrity":"sha512-BaN9dIqceFLHWQpSdr5b693GCYonvtdXBYo/IqOLufkRXe5VBEMwPv+OU5FBl8D1nLT82JmKiZbr8MZ6KpK3Mg==","shasum":"a9e4fa9b6a34d94bf75cd008c2041e56cef3c8c7","tarball":"https://registry.npmjs.org/@ars-design/bauhaus-ui/-/bauhaus-ui-0.2.1.tgz","fileCount":8,"unpackedSize":88401,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHcjjAuzgUnszgOFyW6rAspBiSpoJFgFrmue1LiZKnoFAiEAku3OmXmniMfO0PnS4UDiAyBzYAthKJi2cGMMe+X8Tpo="}]},"_npmUser":{"name":"wtoloza","email":"wtorrestoloza@hotmail.com"},"directories":{},"maintainers":[{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},{"name":"wtoloza","email":"wtorrestoloza@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bauhaus-ui_0.2.1_1766277836540_0.868846290390006"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-30T23:37:33.364Z","modified":"2025-12-21T00:43:56.866Z","0.1.0":"2025-11-30T23:37:33.622Z","0.1.1":"2025-12-03T00:23:51.520Z","0.1.2":"2025-12-08T16:58:02.853Z","0.1.3":"2025-12-08T17:19:20.717Z","0.2.0":"2025-12-20T18:14:35.914Z","0.2.1":"2025-12-21T00:43:56.662Z"},"bugs":{"url":"https://github.com/jessicaborda/Bauhaus_components/issues"},"author":{"name":"ARS Design","email":"contact@ars-design.com"},"license":"MIT","homepage":"https://jessicaborda.github.io/Bauhaus_components","keywords":["react","react-components","ui","ui-library","components","bauhaus","design-system","css-modules","minimalist","ars-design","typescript"],"repository":{"type":"git","url":"git+https://github.com/jessicaborda/Bauhaus_components.git"},"description":"Minimalist React component library inspired by the Bauhaus design school","maintainers":[{"name":"jessi.borda","email":"jessi.borda09@gmail.com"},{"name":"wtoloza","email":"wtorrestoloza@hotmail.com"}],"readme":"# Bauhaus UI\n\nA minimalist React + TypeScript component library inspired by the Bauhaus design school. Clean, functional, and beautiful.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![React](https://img.shields.io/badge/React-19.0.0-61dafb.svg)](https://reactjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.6-3178c6.svg)](https://www.typescriptlang.org/)\n\n## Features\n\n- ⚛️ React 19 + TypeScript components\n- 🎨 Bauhaus-inspired design system\n- 📦 Tree-shakeable ESM builds\n- 🎯 CSS Modules with BEM methodology\n- 🎛️ Customizable via CSS variables (`--bh-*` prefix)\n- 📚 Fully documented with Storybook\n- 🚀 Built with Vite\n\n## Installation\n\n```bash\nnpm install @ars-design/bauhaus-ui\n```\n\n## Quick Start\n\n```tsx\nimport { Button, VerticalTitleCard } from '@ars-design/bauhaus-ui';\nimport '@ars-design/bauhaus-ui/styles';\n\nfunction App() {\n  return (\n    <VerticalTitleCard \n      title=\"Welcome\" \n      buttonText=\"Get Started\"\n      onButtonClick={() => console.log('Clicked!')}\n    >\n      <p>Hello Bauhaus!</p>\n    </VerticalTitleCard>\n  );\n}\n```\n\n## Components\n\n### Button\n\nVersatile button with Bauhaus-style thick borders and 3D hover effect.\n\n```tsx\n<Button variant=\"solid\" color=\"blue\" size=\"medium\" onClick={(e) => console.log(e)}>\n  Primary Action\n</Button>\n\n<Button variant=\"outline\" color=\"red\" size=\"small\">\n  Secondary\n</Button>\n\n<Button variant=\"text\" color=\"green\" fullWidth>\n  Full Width\n</Button>\n```\n\n**Props:**\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `variant` | `'solid' \\| 'outline' \\| 'text'` | `'solid'` | Button style |\n| `color` | `'blue' \\| 'red' \\| 'yellow' \\| 'green' \\| 'orange' \\| 'purple'` | `'blue'` | Button color |\n| `size` | `'small' \\| 'medium' \\| 'large'` | `'medium'` | Button size |\n| `disabled` | `boolean` | `false` | Disabled state |\n| `fullWidth` | `boolean` | `false` | 100% width |\n| `className` | `string` | `''` | Custom CSS class |\n| `onClick` | `(event: MouseEvent) => void` | - | Click handler |\n\n---\n\n### Input\n\nText input with underline focus effect.\n\n```tsx\n<Input \n  label=\"Email\" \n  type=\"email\" \n  placeholder=\"you@example.com\"\n  error=\"Invalid email\"\n  fullWidth\n/>\n```\n\n**Props:**\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `label` | `ReactNode` | - | Label text |\n| `size` | `'small' \\| 'medium' \\| 'large'` | `'medium'` | Input size |\n| `error` | `ReactNode` | - | Error message |\n| `fullWidth` | `boolean` | `false` | 100% width |\n| `disabled` | `boolean` | `false` | Disabled state |\n| `className` | `string` | `''` | Custom CSS class |\n\n---\n\n### Checkbox\n\nCheckbox with diamond indicator when checked.\n\n```tsx\n<Checkbox \n  label=\"Subscribe to newsletter\"\n  onCheckedChange={(checked) => console.log(checked)}\n/>\n\n// Or with full event\n<Checkbox \n  label=\"Accept terms\"\n  onChange={(e) => console.log(e.target.checked)}\n/>\n```\n\n**Props:**\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `label` | `ReactNode` | - | Label text |\n| `size` | `'small' \\| 'medium' \\| 'large'` | `'medium'` | Checkbox size |\n| `checked` | `boolean` | - | Controlled state |\n| `defaultChecked` | `boolean` | - | Uncontrolled default |\n| `onCheckedChange` | `(checked: boolean) => void` | - | Simple change handler |\n| `onChange` | `(event: ChangeEvent) => void` | - | Full event handler |\n| `disabled` | `boolean` | `false` | Disabled state |\n\n---\n\n### Dropdown\n\nDropdown menu with keyboard navigation (↑↓, Enter, Escape).\n\n```tsx\n<Dropdown \n  label=\"Actions\"\n  size=\"medium\"\n  items={[\n    { label: 'Edit', onClick: () => console.log('Edit') },\n    { label: 'Delete', onClick: () => console.log('Delete'), disabled: true },\n  ]}\n/>\n```\n\n**Props:**\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `label` | `ReactNode` | `'Options'` | Trigger text |\n| `items` | `DropdownItem[]` | `[]` | Menu items |\n| `size` | `'small' \\| 'medium' \\| 'large'` | `'medium'` | Dropdown size |\n| `disabled` | `boolean` | `false` | Disabled state |\n\n---\n\n### VerticalTitleCard\n\nCard with vertical rotated title, colored accents, and integrated button.\n\n```tsx\n<VerticalTitleCard \n  title=\"Card Title\"\n  buttonText=\"Action\"\n  buttonColor=\"blue\"\n  buttonVariant=\"solid\"\n  onButtonClick={() => console.log('Clicked!')}\n  tail={true}\n>\n  <p>Card content</p>\n</VerticalTitleCard>\n```\n\n**Props:**\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `title` | `string` | **required** | Vertical title text |\n| `icon` | `ReactNode` | - | Icon (replaces blue accent) |\n| `tail` | `boolean` | `true` | Show yellow tail accent |\n| `buttonVariant` | `'solid' \\| 'outline' \\| 'text' \\| 'none'` | `'solid'` | Button style |\n| `buttonText` | `string` | `'Action'` | Button text |\n| `buttonColor` | `Color` | `'blue'` | Button color |\n| `onButtonClick` | `() => void` | - | Button click handler |\n| `buttonFill` | `boolean` | `false` | Full width button |\n| `minHeight` | `string \\| number` | `'300px'` | Minimum height |\n| `minWidth` | `string \\| number` | `'400px'` | Minimum width |\n\n---\n\n### HorizontalImageCard\n\nCard with image on left, content on right, and yellow tail accent.\n\n```tsx\n<HorizontalImageCard \n  imageSrc=\"/path/to/image.jpg\"\n  title=\"Card Title\"\n  subtitle=\"Subtitle text\"\n  buttonText=\"Learn More\"\n  onButtonClick={() => console.log('Clicked!')}\n/>\n```\n\n**Props:**\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `imageSrc` | `string` | **required** | Image URL |\n| `title` | `string` | **required** | Card title |\n| `subtitle` | `string` | - | Card subtitle |\n| `imageAlt` | `string` | `''` | Image alt text |\n| `tail` | `boolean` | `true` | Show yellow tail accent |\n| `buttonVariant` | `'solid' \\| 'outline' \\| 'text' \\| 'none'` | `'solid'` | Button style |\n| `buttonText` | `string` | `'Action'` | Button text |\n| `buttonColor` | `Color` | `'blue'` | Button color |\n| `onButtonClick` | `() => void` | - | Button click handler |\n| `buttonFill` | `boolean` | `false` | Full width button |\n| `minHeight` | `string \\| number` | `'300px'` | Minimum height |\n| `minWidth` | `string \\| number` | `'500px'` | Minimum width |\n\n---\n\n### VerticalImageCard\n\nCard with image on top, content below, and yellow tail accent.\n\n```tsx\n<VerticalImageCard\n  imageSrc=\"/path/to/image.jpg\"\n  title=\"Card Title\"\n  subtitle=\"Subtitle text\"\n  buttonText=\"Action\"\n  onButtonClick={() => console.log('Clicked!')}\n  imageHeight=\"40%\"\n/>\n```\n\n**Props:**\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `imageSrc` | `string` | **required** | Image URL |\n| `title` | `string` | - | Card title |\n| `subtitle` | `string` | - | Card subtitle |\n| `imageAlt` | `string` | `''` | Image alt text |\n| `imageHeight` | `string \\| number` | `'40%'` | Image height |\n| `tail` | `boolean` | `true` | Show yellow tail accent |\n| `buttonVariant` | `'solid' \\| 'outline' \\| 'text' \\| 'none'` | `'solid'` | Button style |\n| `buttonText` | `string` | `'Action'` | Button text |\n| `buttonColor` | `Color` | `'blue'` | Button color |\n| `onButtonClick` | `() => void` | - | Button click handler |\n| `buttonFill` | `boolean` | `false` | Full width button |\n| `minHeight` | `string \\| number` | `'400px'` | Minimum height |\n| `minWidth` | `string \\| number` | `'300px'` | Minimum width |\n\n---\n\n### Card\n\nCard with Bauhaus-style accents: top blue accent, red divider, optional subtitle/children and optional tail.\n\n```tsx\n<Card\n  title=\"Card Title\"\n  subtitle=\"Subtitle text\"\n  buttonText=\"Action\"\n  onButtonClick={() => console.log('Clicked!')}\n>\n  <p>Optional extra content (children)</p>\n</Card>\n```\n\n**Props:**\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `title` | `string` | - | Card title |\n| `subtitle` | `string` | - | Card subtitle |\n| `children` | `ReactNode` | - | Optional extra content |\n| `tail` | `boolean` | `true` | Show yellow tail accent |\n| `buttonVariant` | `'solid' \\| 'outline' \\| 'text' \\| 'none'` | `'solid'` | Button style |\n| `buttonText` | `string` | `'Action'` | Button text |\n| `buttonColor` | `Color` | `'blue'` | Button color |\n| `onButtonClick` | `() => void` | - | Button click handler |\n| `buttonFill` | `boolean` | `false` | Full width button |\n| `minHeight` | `string \\| number` | `'300px'` | Minimum height |\n| `minWidth` | `string \\| number` | `'400px'` | Minimum width |\n\n---\n\n## Design System\n\n### CSS Variables\n\nAll variables use the `--bh-` prefix to avoid collisions with your project:\n\n#### Colors (no prefix - Bauhaus identity)\n```css\n--bauhaus-blue: #0063C2\n--bauhaus-red: #CD3F2A\n--bauhaus-yellow: #F9B700\n--bauhaus-green: #06A77D\n--bauhaus-orange: #FF6B35\n--bauhaus-purple: #7209B7\n--bauhaus-black: #000000\n--bauhaus-white: #FFFFFF\n```\n\n#### Spacing\n```css\n--bh-space-xs: 4px\n--bh-space-sm: 8px\n--bh-space-md: 16px\n--bh-space-lg: 24px\n--bh-space-xl: 32px\n```\n\n#### Typography\n```css\n--bh-font-size-xs: 12px\n--bh-font-size-sm: 14px\n--bh-font-size-md: 16px\n--bh-font-size-lg: 20px\n--bh-font-size-xl: 24px\n\n--bh-font-weight-normal: 400\n--bh-font-weight-medium: 500\n--bh-font-weight-bold: 700\n```\n\n#### Borders\n```css\n--bh-border-width: 1px\n--bh-border-width-thick: 2px\n--bh-border-card: 8px solid var(--bauhaus-black)\n--bh-border-accent: 6px\n--bh-btn-border-width: 3px\n```\n\n#### Transitions\n```css\n--bh-transition-fast: 150ms ease-in-out\n--bh-transition-normal: 250ms ease-in-out\n```\n\n### Customization\n\nOverride variables in your CSS:\n\n```css\n:root {\n  /* Change primary blue */\n  --bauhaus-blue: #0066FF;\n  \n  /* Adjust spacing */\n  --bh-space-md: 20px;\n  \n  /* Thicker borders */\n  --bh-btn-border-width: 4px;\n}\n```\n\n---\n\n## Development\n\n### Setup\n\n```bash\n# Install dependencies\nnpm install\n\n# Start Storybook\nnpm run storybook\n\n# Build library\nnpm run build\n```\n\n### Project Structure\n\n```\nbauhaus-ui/\n├── src/\n│   ├── components/\n│   │   ├── Button/\n│   │   │   ├── Button.tsx\n│   │   │   ├── Button.module.css\n│   │   │   ├── Button.stories.tsx\n│   │   │   └── index.ts\n│   │   ├── Input/\n│   │   ├── Checkbox/\n│   │   ├── Dropdown/\n│   │   ├── VerticalTitleCard/\n│   │   ├── HorizontalImageCard/\n│   │   ├── VerticalImageCard/\n│   │   ├── Card/\n│   │   └── Toggle/\n│   ├── styles/\n│   │   ├── variables.css\n│   │   └── global.css\n│   ├── types/\n│   │   └── index.ts\n│   └── index.ts\n├── dist/\n├── package.json\n├── tsconfig.json\n└── vite.config.ts\n```\n\n### Creating a New Component\n\n1. Create component directory:\n```\nsrc/components/MyComponent/\n├── MyComponent.tsx\n├── MyComponent.module.css\n├── MyComponent.stories.tsx\n└── index.ts\n```\n\n2. Follow BEM methodology for CSS classes:\n```css\n.bh-my-component { }\n.bh-my-component__element { }\n.bh-my-component--modifier { }\n```\n\n3. Export from `src/index.ts`:\n```typescript\nexport { MyComponent } from './components/MyComponent';\nexport type { MyComponentProps } from './components/MyComponent';\n```\n\n---\n\n## TypeScript Support\n\nAll components are fully typed. Import types:\n\n```typescript\nimport type { \n  ButtonProps, \n  InputProps, \n  CheckboxProps,\n  DropdownProps,\n  VerticalTitleCardProps,\n  HorizontalImageCardProps,\n  Size,\n  Color,\n  ButtonVariant,\n} from '@ars-design/bauhaus-ui';\n```\n\n---\n\n## Design Philosophy\n\nBauhaus UI follows the principles of the Bauhaus design school:\n\n- **Form Follows Function** - No unnecessary decorations\n- **Simple Geometry** - Basic shapes, sharp corners, bold lines\n- **Primary Colors** - Red, blue, yellow + neutrals\n- **Thick Borders** - 8px card borders, 3px button borders\n- **Visual Accents** - Colored bars (yellow tail, red divider, blue accent)\n\n---\n\n## Browser Support\n\n- Chrome (latest)\n- Firefox (latest)\n- Safari (latest)\n- Edge (latest)\n\n---\n\n## Contact\n\nQuestions, feedback, or collaboration?\n\n[![Instagram](https://img.shields.io/badge/Instagram-@ars__design__st-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/ars_design_st/)\n\n---\n\n## License\n\nMIT © ars-design\n\n---\n\n**Made with ❤️ inspired by Bauhaus design principles**\n","readmeFilename":"README.md"}