{"id":13516670,"url":"https://github.com/franciscop/umbrella","last_synced_at":"2025-04-09T00:29:10.963Z","repository":{"id":22208571,"uuid":"25541186","full_name":"franciscop/umbrella","owner":"franciscop","description":":umbrella: Lightweight javascript library for DOM manipulation and events","archived":false,"fork":false,"pushed_at":"2024-10-02T21:17:03.000Z","size":1902,"stargazers_count":2317,"open_issues_count":0,"forks_count":111,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-04-01T23:11:29.464Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://umbrellajs.com/","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/franciscop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"Contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://www.paypal.me/franciscopresencia/19"}},"created_at":"2014-10-21T19:19:27.000Z","updated_at":"2025-03-28T15:36:42.000Z","dependencies_parsed_at":"2024-01-13T19:26:18.774Z","dependency_job_id":"cc26109a-d77b-4970-a50f-c0d25f004084","html_url":"https://github.com/franciscop/umbrella","commit_stats":{"total_commits":577,"total_committers":39,"mean_commits":"14.794871794871796","dds":0.4835355285961872,"last_synced_commit":"260bebcc46d1171b481b97e1eda38e801a955813"},"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franciscop%2Fumbrella","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franciscop%2Fumbrella/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franciscop%2Fumbrella/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franciscop%2Fumbrella/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/franciscop","download_url":"https://codeload.github.com/franciscop/umbrella/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247949057,"owners_count":21023267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T05:01:24.719Z","updated_at":"2025-04-09T00:29:10.939Z","avatar_url":"https://github.com/franciscop.png","language":"JavaScript","funding_links":["https://www.paypal.me/franciscopresencia/19"],"categories":["JavaScript","*.js","UI Frameworks"],"sub_categories":["Browser"],"readme":"# Umbrella JS [![test badge](https://github.com/franciscop/umbrella/workflows/tests/badge.svg)](https://github.com/franciscop/umbrella/actions) [![stats](https://data.jsdelivr.com/v1/package/npm/umbrellajs/badge?style=rounded)](https://www.jsdelivr.com/package/npm/umbrellajs) [![License MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/franciscop/umbrella/blob/master/LICENSE)\n\n\u003e [**Library Documentation**](http://umbrellajs.com/documentation) | [**Migrating from jQuery guide**](https://github.com/franciscop/umbrella/blob/master/jquery.md)\n\nCovers your javascript needs for those rainy days. A \u003c3kb performant jQuery-like library born from the question: [You might not need jQuery](http://youmightnotneedjquery.com/), then what do you need?\n\nYou probably need awesome CSS (like [Picnic CSS](http://picnicss.com/)) and a lightweight, modern and performant javascript library. This does:\n\n- DOM traversal (selector, filter, find, each, etc.)\n- DOM editing (classes \u0026 attributes, html, before, etc.)\n- Event handling\n\nA couple of simple examples:\n\n```js\n// Simple events like jQuery\nu(\"button\").on('click', e =\u003e {\n  alert(\"Hello world\");\n});\n\n// Handle form submissions\nu('form.login').handle('submit', async e =\u003e {\n  const user = await fetch('/login', {\n    method: 'POST', body: new FormData(e.target)\n  }).then(res =\u003e res.json());\n  window.href = '/user/' + user.id;\n});\n```\n\n\n## Getting started\n\nThere are few ways to use Umbrella JS:\n\n\n### Play with it\n\nInstead of installing it, you can just play with it in JSFiddle:\n\n[**Try on JSFiddle**](https://jsfiddle.net/franciscop/mwpcqddj/)\n\n\n### Use a CDN\n\njsdelivr.com is an awesome OSS service that hosts many open source projects so you don't need to even download the code:\n\n```js\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/umbrellajs\"\u003e\u003c/script\u003e\n```\n\n\n### Install with `npm`\n\nUsing npm is a front-end package manager that makes it super-easy to add a new package:\n\n```\nnpm install umbrellajs\n```\n\n\n### Module support\n\nIf you use a front-end module bundler like Webpack or Browserify, `u` is exposed as CommonJS exports. You can pull them in like so:\n\n```js\n// ES Modules/Webpack/etc\nimport u from 'umbrellajs';\n\n// Commonjs\nvar u = require('umbrellajs');\n```\n\n### ES Module support\n\nIf you use an ES Module, `u` and `ajax` are exposed as ES Module exports.\nYou can pull them in like so:\n\n```\nimport u from 'umbrellajs/umbrella.esm.js'\n```\n\n### Download it\n\nIf you like it or prefer to try it locally, just download `umbrella.min.js`:\n\n[**Download Umbrella JS**](https://raw.githubusercontent.com/franciscop/umbrella/master/umbrella.min.js)\n\nAdd it to your project:\n\n```html\n\u003cscript src=\"umbrella.min.js\"\u003e\u003c/script\u003e\n```\n\n\n\n## Support: IE11+\n\nCurrent usage for IE 10- is under 1% for each version (8, 9, 10) so it's not Umbrella's mission to support this. However, those extra seconds gained from loading faster on mobile might be even bigger than that percentage. You should probably test it.\n\nKnown, wontfix IE10- bugs:\n\n- [Invalid target element for this operation](http://caniuse.com/#feat=insertadjacenthtml) when trying to use any of these methods on **table**, **tbody**, **thead** or **tr**. Check [the issue on StackOverflow](http://stackoverflow.com/q/8771498/938236). For those elements, this gives an error:\n  - `.before()`\n  - `.after()`\n  - `.append()`\n  - `.prepend()`\n\n\n- [Unable to get property ____ of undefined or null reference](http://caniuse.com/#search=classList) since classList is not supported by IE9-. Just use `polyfill.js` and they will work. Affects:\n  - `.addClass()`\n  - `.removeClass()`\n  - `.hasClass()`\n  - `.toggleClass()`\n\n- Choosing multiple options within `\u003cselect\u003e` doesn't work with IE10- when using `.serialize()` (and thus `.ajax()`). No idea why, but it's a really corner case. Affects:\n  - `.ajax()`\n  - `.serialize()`\n\n\n\n## Alternatives\n\n- [jQuery](https://jquery.com/)\n\n- [Zepto](http://zeptojs.com/)\n\n- [Bliss](http://blissfuljs.com/)\n\n- [NodeList](https://github.com/eorroe/NodeList.js)\n\n- [Micro Framework (many)](http://microjs.com/)\n\n\n## Author and License\n\nCreated and maintained by [Francisco Presencia](https://github.com/franciscop) under the MIT license.\n\n\n## References\n\n- https://www.bennadel.com/blog/4184-replacing-jquery-110kb-with-umbrella-js-8kb.htm\n- http://www.tutsplanet.com/umbrella-js-alternative-jquery-288/\n- http://www.hongkiat.com/blog/umbrella-js/\n- http://www.catswhocode.com/blog/umbrella-js-a-tiny-yet-powerful-alternative-to-jquery\n- https://webmaster.kitchen/jquery-kutuphanesine-alternatif-umbrellajs-kimdir/\n- https://wmaraci.com/blog/umbrellajs-jquery-alternatifiniz-olmaya-aday-533\n- http://qiita.com/kt3k/items/0da4c0b36c402b96122b\n- https://whatpixel.com/umbrella-js-library/\n- https://gomakethings.com/umbrella-js/\n- https://medium.com/@rintoug/umbrella-js-is-your-alternative-to-jquery-c73fab99061\n- https://lean.codecomputerlove.com/keeping-your-code-dry-with-umbrellajs/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranciscop%2Fumbrella","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffranciscop%2Fumbrella","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranciscop%2Fumbrella/lists"}