- Saved searches
- Use saved searches to filter your results more quickly
- License
- weisJ/darklaf
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- FlatLaf — Flat Look and Feel
- Features
- Sponsors
- Demo
- Download
- Getting started
- Customizing
- Themes
- Theme Editor
- License
- Source code
- Best Java Swing Look and Feel Themes | Top 10
- Professional Themes
- Casual Themes
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Darklaf — A themeable swing Look and Feel based on Darcula-Laf
License
weisJ/darklaf
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Darklaf — A themeable swing Look and Feel
This project is based on the darcula look and feel for Swing.
A list of all features can be found here. The LaF is compatible with Java >=1.8 (you need >=1.9 to get proper scaling).
You can find all property values on weisj.github.io/darklaf-docs
This project is available on Maven Central:
dependency> groupId>com.github.weisjgroupId> artifactId>darklaf-coreartifactId> version>3.0.2version> dependency>
implementation("com.github.weisj:darklaf-core:3.0.2")
You can also use the latest nightly build.
repositories < maven < url = uri("https://oss.sonatype.org/content/repositories/snapshots/") > > configurations.all < resolutionStrategy.cacheChangingModulesFor(0, "seconds") > dependencies < implementation("com.github.weisj:darklaf-core:latest.integration") >
The LookAndFeel can be easily installed using the LafManager
// For default theme (IntelliJ) LafManager.install();
// Specify explicit theme. LafManager.setTheme(new IntelliJTheme()); LafManager.install();
// Directly install theme LafManager.install(new DarculaTheme());
For more information see the wiki.
Note: The recommended method is using the LafManager as it automatically handles reloading the ui.
It is highly encouraged to provide users more than one theme. Forcing users to use a light/dark theme because of personal preferences might be degrading their experience in certain situations. For the visually impaired darklaf provides a set of high contrast themes, HighContrastThemeLight and HighContrastThemeDark .
Darklaf supports detecting the system theme on macOS and Windows with the ability to automatically change the theme if the settings change.
// This returns the preferred theme of the system settings. LafManager.themeForPreferredStyle(getPreferredThemeStyle());
The following settings are picked up by darklaf:
Windows | macOS | Setting |
---|---|---|
☑️ | ☑️ | Light/Dark mode |
☑️ | ☑️ | High contrast mode |
☑️ | ☑️ | Accent color |
☑️ | Selection color | |
☑️ | Font size |
You can use the ThemeSettings class with ThemeSettings#showSettingsDialog or ThemeSettings#getSettingsPanel to provide the user the most possible customization.
import com.github.weisj.darklaf.LafManager; import javax.swing.*; import java.awt.*; public class DarklafDemo < public static void main(final String[] args) < SwingUtilities.invokeLater(() -> < LafManager.install(); JFrame frame = new JFrame("Darklaf - A themeable LaF for Swing"); frame.setSize(600, 400); JButton button = new JButton("Click here!"); JPanel content = new JPanel(); content.add(button); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(content); frame.setVisible(true); >); > >
All custom component-variants and settings can be enabled by setting the appropriate client property of the component. They can be found here.
This LookAndFeel supports custom window decorations (only on Windows at this point). In contrast to most other LaFs the native window behaviour is not compromised giving a seamless experience that still looks native.
Check out the darklaf-extension project for additional artifacts which add support for some third-party projects.
When building on Windows, you need a C++ toolchain installed to build native extension.
When building on macOS you need to have XCode (or the command line tools) installed to build the native extension.
If you want to build for platforms different from your machine the necessary binaries are automatically downloaded. For this you have to specify a valid GithubAccessToken using githubAccessToken property in your local gradle.properties file. The access token only needs to have the permission to read repositories.
You can also manually download the respective native libraries from the latest successful run of the Build Native Libraries Action and place it in the corresponding /libraries folder. This is necessary if you don’t have the appropriate toolchain installed, but you machine is a binary target.
Note: You can still build the project without the libraries, but then custom decorations won’t be supported.
Here is a list of things that currently are not finished or need refinement. This list is a work in progress and being updated regulary. If you find any problems with the LaF feel free to submit an issue:
- Native window decorations on Linux.
- See /windows for the Windows implementation.
- See /macos for the macOS implementation.
- Theme preferences panel. here
- Group ID: com.github.weisj
- Version: 3.0.2
- Artifact IDs:
- darklaf-core The LaF itself. Include this in your project to use the LaF. Includes all other artifacts.
- darklaf-iconset The icons used by the laf.
- darklaf-theme The themes to use with the LaF.
- darklaf-theme-spec Relevant classes needed to implement a custom theme.
- darklaf-property-loader Library to load and parse property files and icon.
- darklaf-utils Shared utility classes for other modules.
- darklaf-native-utils Loading of native libraries.
- darklaf-platform-base Common classes for the platform modules.
- darklaf-platform-decorations Standalone module to provide custom window decorations on macOS and Windows.
- darklaf-platform-preferences Standalone module to access and listen to changes to the system theme.
- darklaf-windows Code specific to Windows.
- darklaf-macos Code specific to macOS.
- darklaf-compatiblity Don’t use this. It’s only meant to encapsulate code not portable across JVM versions.
Please send me your project, and I’ll add it here.
This project is licensed under the MIT license.
FlatLaf — Flat Look and Feel
FlatLaf is a modern open-source cross-platform Look and Feel for Java Swing desktop applications.
It looks almost flat (no shadows or gradients), clean, simple and elegant. FlatLaf comes with Light, Dark, IntelliJ and Darcula themes, scales on HiDPI displays and runs on Java 8 or newer.
The look is heavily inspired by Darcula and IntelliJ themes from IntelliJ IDEA 2019.2+ and uses almost the same colors and icons.
Features
- Light, Dark, IntelliJ and Darcula themes
- macOS light and dark themes v3
- can use 3rd party themes developed for IntelliJ Platform
- custom window decorations with embedded menu bar (Window 10/11 and Linux only)
- highly customizable
- typography (predefined header and body fonts)
- scales on HiDPI displays
- cross-platform
- high quality
- lightweight (about 800 KB; no dependencies)
- minimalistic, elegant and modern
- scalable vector icons
- discreet hover effects
- outer or inner focused border
- runs on Java 8 or newer
- Java 9 module (module name is com.formdev.flatlaf )
- macOS platform specific key bindings
- GUI builder friendly
- MigLayout compatible
Sponsors
Demo
Run demo with java -jar flatlaf-demo-.jar (or double-click it). Requires Java 8 or newer.
Download
FlatLaf binaries are available on Maven Central.
If you use Maven or Gradle, add a dependency with following coordinates to your build script:
groupId: com.formdev artifactId: flatlaf version: (see button below)
Otherwise download flatlaf-.jar here:
See also Native Libraries distribution for instructions on how to redistribute FlatLaf native libraries with your application.
Getting started
To enable FlatLaf, add following code to your main method before you create any Swing component:
FlatLightLaf.setup(); // create UI here.
try < UIManager.setLookAndFeel( new FlatLightLaf() ); > catch( Exception ex ) < System.err.println( "Failed to initialize LaF" ); > // create UI here.
Customizing
Themes
Theme Editor
License
FlatLaf is open source licensed under the Apache 2.0 License
FlatLaf documentation on this website is Copyright © 2019-2023 FormDev Software GmbH. All rights reserved. Any other use or reproduction requires written consent of FormDev Software GmbH.
Source code
The FlatLaf source code is hosted on GitHub:
github.com/JFormDesigner/FlatLafBest Java Swing Look and Feel Themes | Top 10
For Years, Java Swing has suffered from poor UI colors and designs. Since the support of Java to let people desing their own Themes, it has revamped those old boring UIs.
When we talk about designing look and feel, we know it is about implementing different UI classes for different components.
Today, we can use Synth look and feel, which allow us to customize the look and feel by writing an XML file.
The other way is to use UIManager to load the L&F class directly from classpath. For which the code goes like this:
UIManager.setLookAndFeel("fully qualified name of look and feel");
The Look and Feel Libraries are broadly divided into two categories.
Skinnable look and feel can’t only change the LAF of wigets in your application, but, can also change the look and feel of window title bars and borders. So here are few Professional and Casual themes that you can use to make your application much more attractive and vibrant:
Professional Themes
This is the theme that’s getting a lot of popularity, specially, after Solaris 10 adopted it.
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
Here’s a screenshot:
Substance
Substance has 6 different flavours for the metallic Look an Feel. The Good one is below. You can checkout other color schemes here (though they are not that attractive). DownloadSea Glass
This is relatively anew theme under development. This one is among the best I’ve seen around. It that mocks Mac-kind look inspired by different colored stones. You can checkout the details here.Info Look And Feel
This one is based on the Metal look and feel. This is the one that you will find in most enterprise or commercial Java Apps. It’s designed to have a slim, clean appearance. It has support for themes. Works best for Windows, though looks decent on KDE as well. DownloadPgs Look And Feel
I would call this a windows and KDE/Gnome hybrid. It aims be a very modern cross-platform LAF with nice features. the UI components are not as-sleek-as-others. DownloadQuaqua Look And Feel
The Quaqua LAF is an user interface library which adheres closest to Mac OS X. DownloadCasual Themes
Oyaha
This one is a cool and trendy. It’s unique, as it features transparency, sounds and is Skinable. For the cool generations. DownloadLiquid Look And Feel
Liquid gives the application a crystal effect on the buttons. It’s based on Mosfet’s Liquid 0.9.6 theme for KDE 3.x. Reminds of Candy theme from StyleXP. DownloadJTattoo
JTattoo is skinnable and consists of several different LAF. User can customize the look by choosing among different available color schemes. DownloadMake Java applications more attractive, and encourage Open Source, cheers.
I`ll keep on updating the list. Make sure you check back.
Do you know of any others? I`ll be happy to include them. Follow me on Twitter.