You can also follow the project on GitHub.<\/a> I\u2019d love for you to check it out, leave feedback, open issues, or even contribute to it.<\/p>\n","protected":false},"excerpt":{"rendered":"I recently launched the first production version of Halfmoon, a front-end framework that I have been building for the last few months. This is a short introductory post about what the framework is, and why I decided to build it.<\/p>\n","protected":false},"author":276754,"featured_media":318135,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"c2c_always_allow_admin_comments":false,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":[]},"categories":[4],"tags":[571],"jetpack_publicize_connections":[],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/07\/halfmoon.png?fit=1200%2C600&ssl=1","jetpack-related-posts":[{"id":325887,"url":"https:\/\/css-tricks.com\/considerations-for-making-a-css-framework\/","url_meta":{"origin":318129,"position":0},"title":"Considerations for Making a CSS Framework","date":"November 25, 2020","format":false,"excerpt":"Around eight months ago, I started building a framework which would eventually go on to become Halfmoon. I made a post on this very website announcing the launch of the very first version. Halfmoon has been billed as a Bootstrap alternative with a built-in dark mode feature, that is especially\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/11\/halfmoon-screen-logo.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":360239,"url":"https:\/\/css-tricks.com\/make-a-component-multiple-frameworks-in-a-monorepo\/","url_meta":{"origin":318129,"position":1},"title":"How to Make a Component That Supports Multiple Frameworks in a Monorepo","date":"January 5, 2022","format":false,"excerpt":"Your mission \u2014 should you decide to accept it \u2014 is to build a Button component in four frameworks, but, only use one button.css file! This idea is very important to me. I\u2019ve been working on a component library called AgnosticUI where the purpose is building UI components that aren\u2019t\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2022\/01\/button-frameworks.jpg?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":346702,"url":"https:\/\/css-tricks.com\/creating-headless-wordpress-site-with-frontity\/","url_meta":{"origin":318129,"position":2},"title":"Creating a Headless WordPress Site With Frontity","date":"August 20, 2021","format":false,"excerpt":"Frontity is a WordPress-focused React-based server-side dynamic-rendering framework (phew!) that allows us to create fast headless websites. Chris has a good introduction to Frontity. I guess you could think of it like Next.js for WordPress. And while the demand for headless WordPress sites may be a niche market at the\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/s_9E6672BCB84648F19EDC33083BD06060398B4F707F82EA99B7C0B4A389E8CF04_1620244127345_ct_front-1-01.png.jpeg?fit=1200%2C605&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":352621,"url":"https:\/\/css-tricks.com\/tonic-component-framework\/","url_meta":{"origin":318129,"position":3},"title":"Tonic (Component Framework)","date":"September 27, 2021","format":false,"excerpt":"I enjoy little frameworks like Tonic. It's essentially syntactic sugar over to make them feel easier to use. Define a Class, template literal an HTML template, probably some other fancy helpers, and you've got a component that doesn't feel terribly different to something like a React component, except\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/09\/tonic.jpg?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":333376,"url":"https:\/\/css-tricks.com\/some-react-blog-posts-ive-bookmarked-and-read-lately\/","url_meta":{"origin":318129,"position":4},"title":"Some React Blog Posts I’ve Bookmarked and Read Lately","date":"February 5, 2021","format":false,"excerpt":"The React Hooks Announcement In Retrospect: 2 Years Later \u2014 Ryan Carniato considers hooks to be the most significant turning point in front end in the past five years, but he also says hooks have muddied the waters as well.Mediator Component in React \u2014 Robin Wieruch's article made me think\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/04\/react.jpg?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":336024,"url":"https:\/\/css-tricks.com\/web-frameworks-why-you-dont-always-need-them\/","url_meta":{"origin":318129,"position":5},"title":"Web Frameworks: Why You Don\u2019t Always Need Them","date":"March 9, 2021","format":false,"excerpt":"Richard MacManus explaining Daniel Kehoe's approach to building websites, which he calls \"Stackless\": There are three key web technologies underpinning Kehoe\u2019s approach: ES6 Modules: JavaScript ES6 can support import modules, which are also supported by browsers. Module CDNs: JavaScript modules can now be downloaded from third-party content delivery networks (CDNs).\u2026","rel":"","context":"In "Link"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/03\/6d65f352-painter-2798557_1280-1024x576-1.jpg?fit=1024%2C576&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"featured_media_src_url":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/07\/halfmoon.png?fit=1024%2C512&ssl=1","_links":{"self":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/318129"}],"collection":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/users\/276754"}],"replies":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/comments?post=318129"}],"version-history":[{"count":10,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/318129\/revisions"}],"predecessor-version":[{"id":319055,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/318129\/revisions\/319055"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media\/318135"}],"wp:attachment":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media?parent=318129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/categories?post=318129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/tags?post=318129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}