Introduction
Halfmoon is a responsive front-end framework with a lot of useful and interesting qualities to help you build websites. It comes with a built-in dark mode, which is one of its most important and defining features.
Commenting
|
New message!
Jane Doe just sent you a new message.
|
Halfmoon is a responsive front-end framework with a lot of useful and interesting qualities to help you build websites. It comes with a built-in dark mode, which is one of its most important and defining features.
You can click on the following button to toggle dark mode (or press shift + D).
<!-- HTML -->
<button class="btn btn-primary" type="button" onclick="toggleDemo()">Click me!</button>
<!-- JavaScript -->
<script src="path/to/halfmoon.js"></script>
<script type="text/javascript">
// Dark mode toggle demo
function toggleDemo() {
halfmoon.toggleDarkMode();
}
</script>
Every single element has a different set of styles in dark mode. The dark mode styles are applied to an element when its parent element has the .dark-mode class. Therefore, the ideal way to do this is by adding the class to the DOM's body.
This is exactly what the built-in halfmoon.toggleDarkMode() method is doing in the above example (along with saving the preference in a cookie). You can read more about this in the core JavaScript library section (opens in new tab) of the documentation.
Another great thing about the framework is that it is built entirely using CSS variables (also known as CSS custom properties). There are close to 1,500 CSS variables, which means that almost everything can be customized by overriding a property, making it very easy to theme Halfmoon to fit your brand.
You can see a demo of this below. Click the button on the top right to change the theme.
This demo does not work on Internet Explorer, because the browser does not support CSS variables. Please open this page using another browser to view the demo.
While it is impossible to understand what is happening without looking at the code, the gist of it is that you can simply override the variables to create a custom theme, or even create completely new components. You can learn about these concepts and also find detailed code examples in the customize section (opens in new tab) of the docs. We highly recommend giving that page a good, thorough read.
Halfmoon can be used to create most types of websites. However, it really shines when it comes to building dashboards and other tools (such as admin panels). This is thanks to the following features:
Moreover, you will also find that most examples in the docs are geared towards dashboards and tools. For instance, check out this example (opens in new tab) in the grid system section of the docs. With all that said, it is worth repeating that Halfmoon can definitely be used to build other types of websites as well.
Many of the components found in Halfmoon are built to work without JavaScript, including things like modals and tooltips. Given below is an example.
The following button opens a modal with a tooltip attached to it. All of this works without any JavaScript.
Open modal<!-- Modal -->
<div class="modal" id="demo-modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
...
</div>
</div>
</div>
<!-- Button to open modal -->
<a href="#demo-modal" class="btn btn-primary" data-toggle="tooltip" data-title="Tooltip message" role="button">Open modal</a>
However, Halfmoon comes with a powerful JS library that implements all the necessary functionalities in one small file. This also includes things like the keyboard shortcuts mentioned above — shift + D to toggle dark mode, and shift + S to toggle the sidebar. Please note, the shortcuts don't interfere with inputs, and is turned off by default.
See the core JavaScript library (opens in new tab) for details. You can also download it (along with all the other things) from the download page (opens in new tab). Moreover, there is no dependency on jQuery, and everything is pure, vanilla JavaScript.
Halfmoon is designed to have classes very similar to the ones found in Bootstrap, which is by far the most popular CSS framework in the world. This is because most designers are already familiar with those class names, and can therefore immediately jump into Halfmoon.
Most of the commonly used components, such as buttons, tables, inputs, dropdowns, alerts, modals, pagination, breadcrumb, badges, etc, are fully similar (in terms of class names and structure). Some components do have tiny differences, but the differences are usually trivial. For instance, see the switches below.
This switch is rendered using class names taken from Bootstrap's docs:
<!-- Bootstrap classes -->
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="switch-1">
<label class="custom-control-label" for="switch-1">Toggle switch</label>
</div>
This switch element is rendered using class names found in Halfmoon:
<!-- Halfmoon classes -->
<div class="custom-switch">
<input type="checkbox" id="switch-2">
<label for="switch-2">Toggle switch</label>
</div>
Therefore, even when there are differences, they are usually insignificant. It has to be noted, however, that Halfmoon is not a drop-in replacement theme for Bootstrap. It is a custom front-end framework built from the ground up with a very simple goal — help people quickly build dashboards, tools, and other websites that are highly usable and automatically come with built-in dark modes for their users.
Halfmoon is compatible with almost all the browsers available, including some legacy ones that are still used. This includes but is not limited to:
and more. As mentioned above, Halfmoon has almost full compatibility with IE11. You can learn more about this in the Internet Explorer support section (opens in new tab) of the docs.
The core of Halfmoon is the following — one CSS file, and one JavaScript file (with no dependencies). This lack of bloat, and use of native browser technology (plain old CSS and vanilla JS) results in fast page loads and good performance all across the board. Everything is designed to feel snappy and responsive.
Once you are ready to get started, you can jump to the download section. You can also check out the customize section of the docs, which is a guide for understanding customization with CSS variables (as mentioned above). Other than that, the page building section breaks down the basics of building pages in Halfmoon. There is also a starter template generator, which lets you generate boilerplates for your project. We look forward to seeing what you decide to build with Halfmoon.
Our goal is to make Halfmoon the go-to framework for building dashboards and tools on the web. We are already working on things like a form validator, number input, datepicker, multi-select (think Select2 without jQuery), tabs component, JSX docs, and so much more. You can learn more in the project roadmap.
However, we need your help to grow. So if you truly believe in our goal, please consider supporting us through Patreon.
The following is the highest tier, with a maximum of 1 sponsor.
(Also seen at the top of the page)
The following is the normal tier, with a maximum of 10 sponsors.
AYCD
Automation Done Right
Sponsor (9 available)
Halfmoon needs your support! Become a sponsor to place an image and description of your product here. Click here
The following people have generously decided to support Halfmoon.
Become a backer on Patreon .