{"id":15415,"date":"2026-03-30T18:18:49","date_gmt":"2026-03-30T16:18:49","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=15415"},"modified":"2026-03-30T18:18:50","modified_gmt":"2026-03-30T16:18:50","slug":"elena-the-tiny-library-to-build-progressive-web-components","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2026\/03\/30\/elena-the-tiny-library-to-build-progressive-web-components\/","title":{"rendered":"Elena, the tiny library to build Progressive Web Components."},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<pre class=\"wp-block-preformatted\"><a href=\"https:\/\/elenajs.com\/\"> \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588<br \/>\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2591\u2591\u2588\u2588\u2588<br \/> \u2591\u2588\u2588\u2588  \u2588 \u2591  \u2591\u2588\u2588\u2588   \u2588\u2588\u2588\u2588\u2588\u2588  \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588    \u2588\u2588\u2588\u2588\u2588\u2588<br \/> \u2591\u2588\u2588\u2588\u2588\u2588\u2588    \u2591\u2588\u2588\u2588  \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588  \u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588<br \/> \u2591\u2588\u2588\u2588\u2591\u2591\u2588    \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588  \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588   \u2588\u2588\u2588\u2588\u2588\u2588\u2588<br \/> \u2591\u2588\u2588\u2588 \u2591   \u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2591   \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588  \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588<br \/> \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588  \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588<br \/>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591  \u2591\u2591\u2591\u2591\u2591\u2591  \u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591  \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591<br \/><br \/>\u2591\u2588 Simple, tiny library for building Progressive Web Components.<em>|<\/em><\/a><br \/><\/pre>\n\n\n\n<p><strong>Elena is a simple, tiny library (2.6kB) for building <a href=\"https:\/\/elenajs.com\/components\/overview\">Progressive Web Components<\/a>.<\/strong> Unlike most web component libraries, Elena doesn\u2019t force JavaScript for everything. You can load HTML and CSS first, then use JavaScript to progressively add interactivity.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588 Simple, tiny library for building Progressive Web Components.| Elena is a simple, tiny library (2.6kB) for building Progressive Web&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2026\/03\/30\/elena-the-tiny-library-to-build-progressive-web-components\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[46],"tags":[324],"class_list":["post-15415","post","type-post","status-publish","format-standard","hentry","category-web","tag-css"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-40D","jetpack-related-posts":[{"id":6568,"url":"https:\/\/monodes.com\/predaelli\/2020\/01\/29\/element-a-desktop-ui-toolkit-for-web\/","url_meta":{"origin":15415,"position":0},"title":"Element &#8211; A Desktop UI Toolkit for Web","author":"Paolo Redaelli","date":"2020-01-29","format":"link","excerpt":"A Desktop UI LibraryElement, a Vue 2.0 based component library for developers, designers and product managers Source: Element - A Desktop UI Toolkit for Web","rel":"","context":"In &quot;Javascript&quot;","block_context":{"text":"Javascript","link":"https:\/\/monodes.com\/predaelli\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5106,"url":"https:\/\/monodes.com\/predaelli\/2019\/01\/07\/how-to-easily-build-desktop-apps-with-html-css-and-javascript\/","url_meta":{"origin":15415,"position":1},"title":"How to Easily Build Desktop Apps with HTML, CSS and Javascript","author":"Paolo Redaelli","date":"2019-01-07","format":false,"excerpt":"Can HTML, CSS and Javascript really be used to build Desktop Applications? Source: How to Easily Build Desktop Apps with HTML, CSS and Javascript How to Easily Build Desktop Apps with HTML, CSS and Javascript Aditya Sridhar Jan 4 Can HTML, CSS and Javascript really be used to build Desktop\u2026","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6562,"url":"https:\/\/monodes.com\/predaelli\/2020\/01\/29\/9-vue-js-libraries-that-will-make-your-life-easier-better-programming-medium\/","url_meta":{"origin":15415,"position":2},"title":"9 Vue.js Libraries That Will Make Your Life Easier &#8211; Better Programming &#8211; Medium","author":"Paolo Redaelli","date":"2020-01-29","format":"link","excerpt":"9 Vue.js Libraries That Will Make Your Life Easier - Better Programming - Medium\u00a0 Vue-Lazyload is a great library for lazy loading of not only images but also components. vue-head library makes manipulating the information in the head tag a piece of cake. BootstrapVue: Bootstrap components built with Vue. Vue-multiselect\u2026","rel":"","context":"In &quot;Javascript&quot;","block_context":{"text":"Javascript","link":"https:\/\/monodes.com\/predaelli\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8592,"url":"https:\/\/monodes.com\/predaelli\/2021\/08\/04\/why-you-should-stop-using-ui-frameworks-by-beau-beauchamp-nerd-for-tech-medium\/","url_meta":{"origin":15415,"position":3},"title":"Why You Should Stop Using UI Frameworks | by Beau Beauchamp | Nerd For Tech | Medium","author":"Paolo Redaelli","date":"2021-08-04","format":"link","excerpt":"I\u2019ve been a web application developer for over 20 years. I\u2019ve seen all kinds of UI libraries come and I\u2019ve seen them go. I\u2019ve been in the\u2026 Source: Why You Should Stop Using UI Frameworks | by Beau Beauchamp | Nerd For Tech | Medium I once interviewed with a\u2026","rel":"","context":"In &quot;Javascript&quot;","block_context":{"text":"Javascript","link":"https:\/\/monodes.com\/predaelli\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2468,"url":"https:\/\/monodes.com\/predaelli\/2017\/05\/17\/katex-the-fastest-math-typesetting-library-for-the-web\/","url_meta":{"origin":15415,"position":4},"title":"KaTeX \u2013 The fastest math typesetting library for the web","author":"Paolo Redaelli","date":"2017-05-17","format":false,"excerpt":"\u00a0KaTeX \u2013 The fastest math typesetting library for the web Type an expression: f(x) = \\int_{-\\infty}^\\infty<br \/> \\hat f(\\xi)\\,e^{2 \\pi i \\xi x}<br \/> \\,d\\xi See how it renders with KaTeX\\KaTeXKATEX: f(x)=\u222b\u2212\u221e\u221ef^(\u03be)e2\u03c0i\u03bexd\u03bef(x) = \\int_{-\\infty}^\\infty \\hat f(\\xi)\\,e^{2 \\pi i \\xi x} \\,d\\xif(x)=\u222b\u200b\u2212\u221e\u200b\u221e\u200b\u200b\u200bf\u200b^\u200b\u200b(\u03be)e\u200b2\u03c0i\u03bex\u200b\u200bd\u03be Simple API, no dependencies \u2013 yet super-fast on all\u2026","rel":"","context":"In &quot;Javascript&quot;","block_context":{"text":"Javascript","link":"https:\/\/monodes.com\/predaelli\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4454,"url":"https:\/\/monodes.com\/predaelli\/2018\/07\/31\/mlweb-machine-learning-on-the-web\/","url_meta":{"origin":15415,"position":5},"title":"MLweb: Machine Learning on the Web","author":"Paolo Redaelli","date":"2018-07-31","format":false,"excerpt":"Javascript libraries and web applications for machine learning and scientific computing including (linear algebra, statistics and optimization). Sorgente: MLweb: Machine Learning on the Web","rel":"","context":"In &quot;Javascript&quot;","block_context":{"text":"Javascript","link":"https:\/\/monodes.com\/predaelli\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/15415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=15415"}],"version-history":[{"count":1,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/15415\/revisions"}],"predecessor-version":[{"id":15416,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/15415\/revisions\/15416"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=15415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=15415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=15415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}