{"_id":"@amped17/glint-ui","_rev":"6-67b1d6724fc1f65a5df5826c0bf77de5","name":"@amped17/glint-ui","dist-tags":{"latest":"1.1.1"},"versions":{"0.1.0":{"name":"@amped17/glint-ui","version":"0.1.0","keywords":["web-components","ui-library","components","shadow-dom","custom-elements","ui","design-system","framework-agnostic","typescript","zero-dependencies","glint"],"author":{"name":"Amped"},"license":"MIT","_id":"@amped17/glint-ui@0.1.0","maintainers":[{"name":"amped17","email":"statzt01@gmail.com"}],"homepage":"https://github.com/AmpedWasTaken/Glint#readme","bugs":{"url":"https://github.com/AmpedWasTaken/Glint/issues"},"dist":{"shasum":"bfeaf7c43411584c2a19f8a7a24785a2705c688d","tarball":"https://registry.npmjs.org/@amped17/glint-ui/-/glint-ui-0.1.0.tgz","fileCount":149,"integrity":"sha512-mhDbRuW3WgI1S6YgDjBIAK+Lkh67x7b1J7moKQTYc35dkyyfDy4ZDVA8W/7dZ8AKtDneJxCl04j5l2j3ed4c5w==","signatures":[{"sig":"MEYCIQCXRnGs3/Fp1VkkU5zqvsiNIEkGYP11Kk7qlkSJDpb/5AIhAO/NP37zEooFguqihF0jEN6pSjw+bRQkBuUP09nD4jOQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":626887},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./glint.css":"./dist/glint.css"},"gitHead":"785c05109a7407228072e4eecd3456d10e4ef3de","scripts":{"dev":"rollup -c -w","lint":"eslint .","build":"rimraf dist && rollup -c","format":"prettier . --check","prepack":"npm run build","format:write":"prettier . --write","prepublishOnly":"npm run build"},"_npmUser":{"name":"amped17","email":"statzt01@gmail.com"},"repository":{"url":"git+https://github.com/AmpedWasTaken/Glint.git","type":"git"},"_npmVersion":"11.6.2","description":"Glint — modern, minimal Web Components UI library","directories":{},"sideEffects":["*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.30.0","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.10.5","eslint-plugin-wc":"^2.1.0","rollup-plugin-dts":"^6.1.1","eslint-plugin-import":"^2.29.1","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","eslint-config-prettier":"^9.1.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^11.1.6","@typescript-eslint/parser":"^8.19.0","@rollup/plugin-node-resolve":"^16.0.0","@typescript-eslint/eslint-plugin":"^8.19.0"},"_npmOperationalInternal":{"tmp":"tmp/glint-ui_0.1.0_1769071669987_0.16597995904586038","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amped17/glint-ui","version":"0.1.1","keywords":["web-components","ui-library","components","shadow-dom","custom-elements","ui","design-system","framework-agnostic","typescript","zero-dependencies","glint"],"author":{"name":"Amped"},"license":"MIT","_id":"@amped17/glint-ui@0.1.1","maintainers":[{"name":"amped17","email":"statzt01@gmail.com"}],"homepage":"https://github.com/AmpedWasTaken/Glint#readme","bugs":{"url":"https://github.com/AmpedWasTaken/Glint/issues"},"dist":{"shasum":"8e73f37b767dab3fb96864fe2cede2b552ea9c3a","tarball":"https://registry.npmjs.org/@amped17/glint-ui/-/glint-ui-0.1.1.tgz","fileCount":149,"integrity":"sha512-hIJe400no7nyy0MAdfw9iw0VVJBfV1YjqGoou7DXU5g5mupgtMfT9NTWrXMjI19Nv/iHxmgIeLSDp4IU/ihg/A==","signatures":[{"sig":"MEYCIQCsRffFUeFKUAfi50tzZPohsNYp8L5H0bFbuZtsFso2hgIhAJem9u2SnWXbYLW8HaY1QCKncG0a3pJV58ww64XteFlB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":626887},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./glint.css":"./dist/glint.css"},"gitHead":"785c05109a7407228072e4eecd3456d10e4ef3de","scripts":{"dev":"rollup -c -w","lint":"eslint .","build":"rimraf dist && rollup -c","format":"prettier . --check","prepack":"npm run build","format:write":"prettier . --write","prepublishOnly":"npm run build"},"_npmUser":{"name":"amped17","email":"statzt01@gmail.com"},"repository":{"url":"git+https://github.com/AmpedWasTaken/Glint.git","type":"git"},"_npmVersion":"11.6.2","description":"Glint — modern, minimal Web Components UI library","directories":{},"sideEffects":["*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.30.0","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.10.5","eslint-plugin-wc":"^2.1.0","rollup-plugin-dts":"^6.1.1","eslint-plugin-import":"^2.29.1","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","eslint-config-prettier":"^9.1.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^11.1.6","@typescript-eslint/parser":"^8.19.0","@rollup/plugin-node-resolve":"^16.0.0","@typescript-eslint/eslint-plugin":"^8.19.0"},"_npmOperationalInternal":{"tmp":"tmp/glint-ui_0.1.1_1769071848647_0.5393651936018191","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@amped17/glint-ui","version":"0.2.0","keywords":["web-components","ui-library","components","shadow-dom","custom-elements","ui","design-system","framework-agnostic","typescript","zero-dependencies","glint"],"author":{"name":"Amped"},"license":"MIT","_id":"@amped17/glint-ui@0.2.0","maintainers":[{"name":"amped17","email":"statzt01@gmail.com"}],"homepage":"https://github.com/AmpedWasTaken/Glint#readme","bugs":{"url":"https://github.com/AmpedWasTaken/Glint/issues"},"dist":{"shasum":"8c3df314aa4c34288406aae059b7333925d285e6","tarball":"https://registry.npmjs.org/@amped17/glint-ui/-/glint-ui-0.2.0.tgz","fileCount":209,"integrity":"sha512-5Y4ltbI00RnOJmlSfd2sNSHMjWiA2EQVu185c3pCCsCpZipnxvCVeMk7GqICclQIYJYjv6dL3/BK57BsWrJcPQ==","signatures":[{"sig":"MEQCIArvP6xfQnjeR/iDicDZtpF6h503lOP8oC1PfgtakgStAiBUd/gLpl0GmOAMiPjX+dvn4A8zVUElE6Z33Z4fpajEXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1229210},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./glint.css":"./dist/glint.css"},"gitHead":"1d5cafc79aa914da4264060384f61455890f18f2","scripts":{"dev":"rollup -c -w","lint":"eslint .","build":"rimraf dist && rollup -c","format":"prettier . --check","prepack":"npm run build","format:write":"prettier . --write","prepublishOnly":"npm run build"},"_npmUser":{"name":"amped17","email":"statzt01@gmail.com"},"repository":{"url":"git+https://github.com/AmpedWasTaken/Glint.git","type":"git"},"_npmVersion":"11.6.2","description":"Glint — modern, minimal Web Components UI library","directories":{},"sideEffects":["*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.30.0","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.10.5","eslint-plugin-wc":"^2.1.0","rollup-plugin-dts":"^6.1.1","eslint-plugin-import":"^2.29.1","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","eslint-config-prettier":"^9.1.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^11.1.6","@typescript-eslint/parser":"^8.19.0","@rollup/plugin-node-resolve":"^16.0.0","@typescript-eslint/eslint-plugin":"^8.19.0"},"_npmOperationalInternal":{"tmp":"tmp/glint-ui_0.2.0_1769091915037_0.49949603973905754","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@amped17/glint-ui","version":"1.0.0","keywords":["web-components","ui-library","components","shadow-dom","custom-elements","ui","design-system","framework-agnostic","typescript","zero-dependencies","glint"],"author":{"name":"Amped"},"license":"MIT","_id":"@amped17/glint-ui@1.0.0","maintainers":[{"name":"amped17","email":"statzt01@gmail.com"}],"homepage":"https://github.com/AmpedWasTaken/Glint#readme","bugs":{"url":"https://github.com/AmpedWasTaken/Glint/issues"},"dist":{"shasum":"af22cae77dca1871e3f41d5ce2f1b2f8ce5c0281","tarball":"https://registry.npmjs.org/@amped17/glint-ui/-/glint-ui-1.0.0.tgz","fileCount":297,"integrity":"sha512-2FwNpeg9HddbygaoVuOEmMciPIq6cp2wsSECG7h/YtXr9fZJOkNaBcsWBjc5AJSNyjewAGxJBQoUq59pW79UyA==","signatures":[{"sig":"MEYCIQDx8mq/5VNvIXKJ4IZowOVaj+mfxmwWnCmn+/kE0dS1IwIhAO46xDLmDNbG6wHdjXvrMFzn6rQ2Ijyjex7TwpUwXRpx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1870779},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./glint.css":"./dist/glint.css"},"gitHead":"ac1ef86cf8bcb3ad618b8d28bccd5f30ac5e7406","scripts":{"dev":"rollup -c -w","lint":"eslint .","build":"rimraf dist && rollup -c","format":"prettier . --check","prepack":"npm run build","format:write":"prettier . --write","prepublishOnly":"npm run build"},"_npmUser":{"name":"amped17","email":"statzt01@gmail.com"},"repository":{"url":"git+https://github.com/AmpedWasTaken/Glint.git","type":"git"},"_npmVersion":"11.6.2","description":"Glint — modern, minimal Web Components UI library","directories":{},"sideEffects":["*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.30.0","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.10.5","eslint-plugin-wc":"^2.1.0","rollup-plugin-dts":"^6.1.1","eslint-plugin-import":"^2.29.1","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","eslint-config-prettier":"^9.1.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^11.1.6","@typescript-eslint/parser":"^8.19.0","@rollup/plugin-node-resolve":"^16.0.0","@typescript-eslint/eslint-plugin":"^8.19.0"},"_npmOperationalInternal":{"tmp":"tmp/glint-ui_1.0.0_1769174607945_0.854841578206833","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@amped17/glint-ui","version":"1.1.0","keywords":["web-components","ui-library","components","shadow-dom","custom-elements","ui","design-system","framework-agnostic","typescript","zero-dependencies","glint"],"author":{"name":"Amped"},"license":"MIT","_id":"@amped17/glint-ui@1.1.0","maintainers":[{"name":"amped17","email":"statzt01@gmail.com"}],"homepage":"https://github.com/AmpedWasTaken/Glint#readme","bugs":{"url":"https://github.com/AmpedWasTaken/Glint/issues"},"dist":{"shasum":"e37c8b6da6a6f1dc4f314ab6f83b7d72e1195ea7","tarball":"https://registry.npmjs.org/@amped17/glint-ui/-/glint-ui-1.1.0.tgz","fileCount":299,"integrity":"sha512-0Jnnlv6QI6b/iFtG31n86QXyLgxAx1gLukhkZHprjtRWlZNdyOEWZGWAm/A+X0T153lArdSUm7SeONY/CMmFGg==","signatures":[{"sig":"MEYCIQCpkvQXmLoD9nC806n4ASFS6zvUZpwIFmT2hRGm2pyTBQIhAJacnKkIPEY6ZDUn4aZMlVqjthe+1iNDVYCVMvxT2luU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2046048},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./glint.css":"./dist/glint.css"},"gitHead":"cee2974bac691f9f7aa86a69f68834bb6ee05e4b","scripts":{"dev":"rollup -c -w","lint":"eslint .","build":"rimraf dist && rollup -c","format":"prettier . --check","prepack":"npm run build","format:write":"prettier . --write","prepublishOnly":"npm run build"},"_npmUser":{"name":"amped17","email":"statzt01@gmail.com"},"repository":{"url":"git+https://github.com/AmpedWasTaken/Glint.git","type":"git"},"_npmVersion":"11.6.2","description":"Glint — modern, minimal Web Components UI library","directories":{},"sideEffects":["*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.30.0","prettier":"^3.4.2","typescript":"^5.7.3","@types/node":"^22.10.5","eslint-plugin-wc":"^2.1.0","rollup-plugin-dts":"^6.1.1","eslint-plugin-import":"^2.29.1","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","eslint-config-prettier":"^9.1.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^11.1.6","@typescript-eslint/parser":"^8.19.0","@rollup/plugin-node-resolve":"^16.0.0","@typescript-eslint/eslint-plugin":"^8.19.0"},"_npmOperationalInternal":{"tmp":"tmp/glint-ui_1.1.0_1769181458517_0.6947914236856878","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@amped17/glint-ui","version":"1.1.1","description":"Glint — modern, minimal Web Components UI library","license":"MIT","repository":{"type":"git","url":"git+https://github.com/AmpedWasTaken/Glint.git"},"author":{"name":"Amped"},"keywords":["web-components","ui-library","components","shadow-dom","custom-elements","ui","design-system","framework-agnostic","typescript","zero-dependencies","glint"],"homepage":"https://github.com/AmpedWasTaken/Glint#readme","bugs":{"url":"https://github.com/AmpedWasTaken/Glint/issues"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./glint.css":"./dist/glint.css"},"main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","sideEffects":["*.css"],"publishConfig":{"access":"public"},"scripts":{"dev":"rollup -c -w","build":"rimraf dist && rollup -c","lint":"eslint .","format":"prettier . --check","format:write":"prettier . --write","prepublishOnly":"npm run build","prepack":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-node-resolve":"^16.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@typescript-eslint/eslint-plugin":"^8.19.0","@typescript-eslint/parser":"^8.19.0","@types/node":"^22.10.5","eslint":"^9.17.0","eslint-config-prettier":"^9.1.0","eslint-plugin-import":"^2.29.1","eslint-plugin-wc":"^2.1.0","prettier":"^3.4.2","rimraf":"^6.0.1","rollup":"^4.30.0","rollup-plugin-dts":"^6.1.1","rollup-plugin-postcss":"^4.0.2","tslib":"^2.6.3","typescript":"^5.7.3"},"gitHead":"1a9b9192ebaf67cb0770445d09e1d144e8029f9b","_id":"@amped17/glint-ui@1.1.1","_nodeVersion":"22.20.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-/R3G48pW2hmxbI9AK/miwFog4oHoCn/GCe5UOOlmTlqWsBP7JE+C26n5MTx3vEkPkLQmFAH4qRwudMbaY/7xsg==","shasum":"656a1e07c1f41658839b80bfbf215c7f87f86458","tarball":"https://registry.npmjs.org/@amped17/glint-ui/-/glint-ui-1.1.1.tgz","fileCount":299,"unpackedSize":2046183,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGgguHafAm7DpHqBL0FbcFNKoijMk4YAty9WkTQs+IOmAiB0fQfG8vyteMfGzlM/lhbJzMV5VVfRP1BmSRcGMfwbPw=="}]},"_npmUser":{"name":"amped17","email":"statzt01@gmail.com"},"directories":{},"maintainers":[{"name":"amped17","email":"statzt01@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/glint-ui_1.1.1_1769181690125_0.6540543831647607"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-22T08:47:49.898Z","modified":"2026-01-23T15:21:30.461Z","0.1.0":"2026-01-22T08:47:50.178Z","0.1.1":"2026-01-22T08:50:48.786Z","0.2.0":"2026-01-22T14:25:15.181Z","1.0.0":"2026-01-23T13:23:28.250Z","1.1.0":"2026-01-23T15:17:38.703Z","1.1.1":"2026-01-23T15:21:30.367Z"},"bugs":{"url":"https://github.com/AmpedWasTaken/Glint/issues"},"author":{"name":"Amped"},"license":"MIT","homepage":"https://github.com/AmpedWasTaken/Glint#readme","keywords":["web-components","ui-library","components","shadow-dom","custom-elements","ui","design-system","framework-agnostic","typescript","zero-dependencies","glint"],"repository":{"type":"git","url":"git+https://github.com/AmpedWasTaken/Glint.git"},"description":"Glint — modern, minimal Web Components UI library","maintainers":[{"name":"amped17","email":"statzt01@gmail.com"}],"readme":"<div align=\"center\">\r\n\r\n<p align=\"center\">\r\n  <img src=\"https://i.postimg.cc/Nf5mThW2/Chat-GPT-Image-Jan-21-2026-10-06-54-AM-(1).png\" alt=\"Glint\" width=\"180\" />\r\n</p>\r\n\r\n**Modern, minimal Web Components UI library built with Shadow DOM**\r\n\r\n[![npm version](https://img.shields.io/npm/v/@amped17/glint-ui?style=for-the-badge&color=693B93)](https://www.npmjs.com/package/@amped17/glint-ui)\r\n[![License](https://img.shields.io/npm/l/@amped17/glint-ui?style=for-the-badge&color=693B93)](LICENSE)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue?style=for-the-badge)](https://www.typescriptlang.org/)\r\n[![Zero Dependencies](https://img.shields.io/badge/Dependencies-0-brightgreen?style=for-the-badge)](package.json)\r\n\r\n**One CSS file. One JS file. Zero dependencies.**\r\n\r\n[Documentation](#-documentation) • [Components](#-components) • [Quick Start](#-quick-start) • [Installation](#-installation)\r\n\r\n</div>\r\n\r\n---\r\n\r\n## 🚀 Why Glint?\r\n\r\n**Glint** is a modern, lightweight **Web Components UI library** built with **Shadow DOM**. Inspired by shadcn/ui's elegant API and UX, Glint ships as a single JavaScript file and CSS file—no build step required. Perfect for building framework-agnostic UI components that work everywhere.\r\n\r\n### ✨ Key Features\r\n\r\n- 🎯 **Zero Dependencies** - One CSS file, one JS file. No build step required.\r\n- ♿ **Fully Accessible** - Built with ARIA attributes, keyboard navigation, and focus management.\r\n- 🌙 **Dark Mode Ready** - System preference detection and manual theme switching out of the box.\r\n- 🎨 **Highly Customizable** - CSS custom properties for easy theming and customization.\r\n- 🎭 **Motion Options** - Subtle, snappy, or bounce animations. Respects `prefers-reduced-motion`.\r\n- 🔒 **Shadow DOM** - Styles are encapsulated. No CSS conflicts. Works alongside any stylesheet.\r\n- 📦 **Tree Shakeable** - Import only what you need (ESM). Shadow DOM encapsulation doesn't prevent tree-shaking of unused component definitions.\r\n- 🚀 **Framework Agnostic** - Works with React, Vue, Angular, Svelte, or vanilla JavaScript.\r\n- ⚙️ **TypeScript Ready** - Full TypeScript support with comprehensive type definitions.\r\n- 🎪 **50+ Components** - [Complete component list](#-components) with forms, navigation, overlays, feedback, and layout components.\r\n\r\n---\r\n\r\n## 🎯 Quick Start\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html lang=\"en\" class=\"glint\">\r\n<head>\r\n  <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@amped17/glint-ui@1.0.0/dist/glint.css\" />\r\n</head>\r\n<body>\r\n  <gl-button>Click me</gl-button>\r\n  <script src=\"https://cdn.jsdelivr.net/npm/@amped17/glint-ui@1.0.0/dist/glint.js\"></script>\r\n</body>\r\n</html>\r\n```\r\n\r\nThat's it! The `defineGlint()` function is called automatically and is **idempotent** (safe to call multiple times).\r\n\r\n---\r\n\r\n## 📦 Installation\r\n\r\n### npm\r\n\r\n```bash\r\nnpm install @amped17/glint-ui\r\n```\r\n\r\n### CDN / Plain HTML\r\n\r\n```html\r\n<!-- Recommended: Pin to specific version for stability -->\r\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@amped17/glint-ui@1.0.0/dist/glint.css\" />\r\n<script src=\"https://cdn.jsdelivr.net/npm/@amped17/glint-ui@1.0.0/dist/glint.js\"></script>\r\n```\r\n\r\n**Note:** Always pin to a specific version in production. The CDN script automatically calls `defineGlint()` (idempotent).\r\n\r\n### ESM\r\n\r\n```typescript\r\nimport \"@amped17/glint-ui/glint.css\";\r\nimport { defineGlint } from \"@amped17/glint-ui\";\r\n\r\ndefineGlint(); // Idempotent - safe to call multiple times\r\n```\r\n\r\n### CommonJS\r\n\r\n```javascript\r\nrequire(\"@amped17/glint-ui/glint.css\");\r\nconst { defineGlint } = require(\"@amped17/glint-ui\");\r\n\r\ndefineGlint(); // Idempotent - safe to call multiple times\r\n```\r\n\r\n---\r\n\r\n## 📊 Browser Support\r\n\r\nGlint works in all modern browsers that support Web Components (Custom Elements v1) and Shadow DOM v1.\r\n\r\n**Supported browsers:**\r\n- Chrome/Edge 67+\r\n- Firefox 63+\r\n- Safari 10.1+\r\n- Opera 54+\r\n\r\n**Note:** Glint requires CSS Custom Properties support, which is available in all modern browsers listed above.\r\n\r\n---\r\n\r\n## 🎨 Theming & Customization\r\n\r\nGlint uses CSS custom properties for easy theming. Set theme on any container:\r\n\r\n```html\r\n<html class=\"glint\" data-glint-theme=\"dark\">\r\n```\r\n\r\nSupported themes:\r\n- `data-glint-theme=\"light\"` - Light mode\r\n- `data-glint-theme=\"dark\"` - Dark mode\r\n- `data-glint-theme=\"system\"` - Follows system preference\r\n\r\nOverride design tokens:\r\n\r\n```css\r\n:root {\r\n  --gl-primary: #693B93;\r\n  --gl-radius: 16px;\r\n  --gl-space-4: 20px;\r\n}\r\n```\r\n\r\n---\r\n\r\n## 🎭 Motion & Animations\r\n\r\nMost components support customizable motion:\r\n\r\n```html\r\n<gl-button motion=\"subtle\">Subtle</gl-button>\r\n<gl-button motion=\"snappy\">Snappy</gl-button>\r\n<gl-button motion=\"bounce\">Bounce</gl-button>\r\n<gl-button motion=\"none\">No animation</gl-button>\r\n```\r\n\r\nGlint automatically respects `prefers-reduced-motion` for accessibility.\r\n\r\n---\r\n\r\n## 🎪 Components\r\n\r\n### Form Controls\r\n- **Button** - Multiple variants, sizes, and motion options\r\n- **Input** - Text input with validation states\r\n- **Textarea** - Multi-line text input\r\n- **Select** - Dropdown select with options\r\n- **Checkbox** - Selection checkbox\r\n- **Radio** - Radio button groups\r\n- **Switch** - Toggle switch\r\n- **Slider** - Range input with keyboard support\r\n- **Date Picker** - Calendar-based date selection with range support (advanced)\r\n- **Time Picker** - Time selection input with custom picker UI\r\n- **Color Picker** - Color selection with hex/rgb/hsl support\r\n- **File Upload** - Drag & drop file upload with preview and validation\r\n- **Search Input** - Search input with autocomplete suggestions\r\n- **Tag Input** - Multi-tag input with add/remove functionality\r\n- **Rating** - Star rating component with keyboard navigation\r\n- **Form** - Form wrapper with validation and submission handling\r\n\r\n### Layout & Navigation\r\n- **Card** - Container with header, body, footer slots\r\n- **Navbar** - Navigation bar with brand, nav links, and actions\r\n- **Topbar** - Top bar with left, center, right slots\r\n- **Tabs** - Tabbed interface with keyboard navigation\r\n- **Accordion** - Collapsible content panels\r\n- **Breadcrumb** - Navigation trail\r\n- **Pagination** - Page navigation controls\r\n- **Stepper** - Step-by-step wizard component with navigation\r\n- **Menu** - Context menu with keyboard navigation\r\n- **Command Palette** - Command palette with search and keyboard shortcuts (advanced)\r\n- **Split Pane** - Resizable split pane layout\r\n- **Stack** - Flexbox and Grid layout component\r\n- **Container** - Responsive container component\r\n\r\n### Overlays & Modals\r\n- **Modal** - Dialog with focus trap and backdrop\r\n- **Drawer** - Slide-out drawer component with backdrop and multiple positions\r\n- **Sidebar** - Slide-out panel\r\n- **Popover** - Positioned popup with rich content\r\n- **Tooltip** - Hover/focus tooltip\r\n- **Dropdown** - Menu dropdown\r\n\r\n### Feedback & Display\r\n- **Alert** - Alert messages with variants\r\n- **Toast** - Notification toasts with auto-dismiss\r\n- **Progress** - Progress bar with animation\r\n- **Spinner** - Loading spinner\r\n- **Badge** - Status indicator\r\n- **Avatar** - User avatar with status\r\n- **Skeleton** - Loading placeholders\r\n- **Divider** - Horizontal and vertical dividers\r\n\r\n### Code & Data\r\n- **Codeblock** - Syntax-highlighted code blocks with copy\r\n- **Table** - Data tables with variants\r\n- **Link** - Styled link component with variants\r\n\r\n---\r\n\r\n## 📚 Documentation\r\n\r\n### Full Component Documentation\r\n\r\nVisit our [component gallery](examples/components.html) for complete documentation, examples, and API reference.\r\n\r\n### Key Concepts\r\n\r\n#### Effects & Surfaces\r\n\r\n```html\r\n<!-- Glassmorphism effect -->\r\n<gl-card surface=\"glass\">...</gl-card>\r\n\r\n<!-- 3D tilt effect on hover -->\r\n<gl-card effect=\"tilt\" motion=\"snappy\">...</gl-card>\r\n\r\n<!-- Both effects -->\r\n<gl-card surface=\"glass\" effect=\"tilt\">...</gl-card>\r\n```\r\n\r\n#### Component Triggers\r\n\r\nAuto-wire buttons to open/close components without JavaScript:\r\n\r\n```html\r\n<gl-button trigger=\"modal:myModal\">Open Modal</gl-button>\r\n<gl-button trigger=\"sidebar:mySidebar\">Open Sidebar</gl-button>\r\n<gl-button trigger=\"drawer:myDrawer\">Open Drawer</gl-button>\r\n<gl-button trigger=\"toast\" toast-title=\"Success!\" toast-description=\"Action completed\">Show Toast</gl-button>\r\n<gl-button trigger=\"close:myModal\">Close</gl-button>\r\n```\r\n\r\n#### Gradient Text\r\n\r\n```html\r\n<h1 class=\"gl-gradient-text\" data-animate=\"true\">Animated Gradient</h1>\r\n```\r\n\r\n---\r\n\r\n## 🌟 Use Cases\r\n\r\n- **Dashboard & Admin Panels** - Complete admin interfaces with command palettes, data tables, navigation, and modals\r\n- **Form Heavy Applications** - Beautiful, accessible forms with validation, date/time pickers, file uploads, and multi-step wizards\r\n- **Marketing Websites** - Stunning landing pages with glassmorphism effects and smooth animations\r\n- **Design Systems** - Customizable foundation for building your own design system\r\n- **Framework-Agnostic Projects** - Works seamlessly with React, Vue, Angular, Svelte, or vanilla JavaScript\r\n\r\n---\r\n\r\n## 🔧 Framework Integration\r\n\r\n### React\r\n\r\n```tsx\r\nimport { useEffect } from 'react';\r\nimport '@amped17/glint-ui/glint.css';\r\nimport { defineGlint } from '@amped17/glint-ui';\r\n\r\nfunction App() {\r\n  useEffect(() => {\r\n    defineGlint();\r\n  }, []);\r\n\r\n  return <gl-button>Click me</gl-button>;\r\n}\r\n```\r\n\r\n### Vue\r\n\r\n```vue\r\n<template>\r\n  <gl-button>Click me</gl-button>\r\n</template>\r\n\r\n<script setup>\r\nimport '@amped17/glint-ui/glint.css';\r\nimport { defineGlint } from '@amped17/glint-ui';\r\n\r\ndefineGlint();\r\n</script>\r\n```\r\n\r\n### Angular\r\n\r\n```typescript\r\nimport { Component, OnInit } from '@angular/core';\r\nimport '@amped17/glint-ui/glint.css';\r\nimport { defineGlint } from '@amped17/glint-ui';\r\n\r\n@Component({\r\n  selector: 'app-root',\r\n  template: '<gl-button>Click me</gl-button>'\r\n})\r\nexport class AppComponent implements OnInit {\r\n  ngOnInit() {\r\n    defineGlint();\r\n  }\r\n}\r\n```\r\n\r\n---\r\n\r\n## 🛠️ Development\r\n\r\n```bash\r\n# Install dependencies\r\nnpm install\r\n\r\n# Start development server\r\nnpm run dev\r\n\r\n# Build for production\r\nnpm run build\r\n\r\n# Lint code\r\nnpm run lint\r\n\r\n# Format code\r\nnpm run format:write\r\n```\r\n\r\n### Examples\r\n\r\nAfter building, open:\r\n- `examples/index.html` - Marketing homepage\r\n- `examples/components.html` - Component gallery and documentation\r\n\r\n---\r\n\r\n## 📊 Browser Support\r\n\r\nGlint works in all modern browsers that support Web Components (Custom Elements v1) and Shadow DOM v1.\r\n\r\n**Supported browsers:**\r\n- Chrome/Edge 67+\r\n- Firefox 63+\r\n- Safari 10.1+\r\n- Opera 54+\r\n\r\n**Note:** Glint requires CSS Custom Properties support, which is available in all modern browsers listed above.\r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n\r\n1. Fork the repository\r\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\r\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\r\n4. Push to the branch (`git push origin feature/amazing-feature`)\r\n5. Open a Pull Request\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n---\r\n\r\n## 🔄 Comparison\r\n\r\n### Glint vs Other Libraries\r\n\r\n| Feature | Glint | shadcn/ui | Radix UI | Shoelace |\r\n|---------|-------|-----------|----------|----------|\r\n| **Framework** | Web Components | React | React | Web Components |\r\n| **Shadow DOM** | ✅ Yes | ❌ No | ❌ No | ✅ Yes |\r\n| **Zero Dependencies** | ✅ Yes | ⚠️ React required | ⚠️ React required | ✅ Yes |\r\n| **Framework Agnostic** | ✅ Yes | ❌ React only | ❌ React only | ✅ Yes |\r\n| **Build Step Required** | ❌ No | ✅ Yes | ✅ Yes | ❌ No |\r\n| **TypeScript** | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |\r\n| **Tree Shakeable** | ✅ Yes (ESM) | ✅ Yes | ✅ Yes | ✅ Yes |\r\n\r\n**When to choose Glint:**\r\n- You need framework-agnostic components\r\n- You want zero dependencies and no build step\r\n- You're building with vanilla JavaScript or multiple frameworks\r\n- You need Shadow DOM encapsulation for style isolation\r\n\r\n---\r\n\r\n## 🙏 Acknowledgments\r\n\r\n- Inspired by [shadcn/ui](https://ui.shadcn.com/) structure, API, and UX\r\n- Built with modern web standards and best practices\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**Made with ❤️ by [Amped](https://github.com/AmpedWasTaken)**\r\n\r\n[⭐ Star on GitHub](https://github.com/AmpedWasTaken/Glint) • [📖 Documentation](examples/components.html) • [🐛 Report Bug](https://github.com/AmpedWasTaken/Glint/issues) • [💡 Request Feature](https://github.com/AmpedWasTaken/Glint/issues)\r\n\r\n</div>\r\n","readmeFilename":"README.md"}