Sponsor FlatLaf

Thanks for your interest in sponsoring FlatLaf.

Developing and supporting FlatLaf as open-source project is a costly undertaking. Since the start of development in 2019, we've spent nearly 5.000 hours working on FlatLaf. Almost completely financed by FormDev Software GmbH and its JFormDesigner customers. But now, we need your help.

If your company is using FlatLaf, please sponsor FlatLaf to ensure further development. Thank you.

If you're using FlatLaf to build a revenue-generating product, it makes business sense to sponsor FlatLaf's development to ensure that the project that your product relies on stays healthy and actively maintained.

Bronze
500 500 $
  Silver
1.000 1.000 $
  Gold
2.500 2.500 $
  Platinum
5.000 5.000 $
  EUR USD

One-time payment. Prices are without VAT/sales tax. You receive an invoice.
If you like to sponsor a different amount, click one of the above buttons and change the quantity on the order page.

Backer (for individuals)

10 10 $   20 20 $   50 50 $   100 100 $   EUR USD

One-time payment. Prices include VAT. You receive an invoice.
If you like to sponsor a different amount, click one of the above buttons and change the quantity on the order page.

What do I get for my sponsorship?

  • Primary support.
  • Quick fixes and FlatLaf patch releases to keep your product/project up and running.
  • Implementation of new features.
  • If you want, your company/product logo on FlatLaf home page (and on this page) with a link to your site.
    Platinum and Gold sponsors: Prominent logo placement in sidebar on all FlatLaf content pages and in GitHub README.
  • Backers: If you want, your name in sidebar on this page (optionally with a link to your site).

Sponsor feature development

If you need a specific feature, then you can dedicate your sponsorship to that feature and help financing development and support of new features. (enter feature on order page in section "Additional Ordering Information")

Here is a list of some features:

Feature Description Estimated Cost
Light/dark switching
(Windows 10/11)
Auto-switch between dark and light themes on Windows 10/11. Add API to access operating system theme information (light/dark, accent color, etc) and allow listening to changes. (issue #204; suggested API)
(requires new native code in existing Windows native library)
1.000 1.000 $
0 % reached
Light/dark switching
(macOS)
Auto-switch between dark and light themes on macOS. Add API to access operating system theme information (light/dark, accent/highlight color, etc) and allow listening to changes. (issue #204; suggested API)
(takes longer than on Windows 10/11 because a new macOS native library needs to be implemented)
3.500 3.500 $
0 % reached
System file chooser
(Windows 10/11)
Add new API to use native Windows 10/11 file chooser. The same API can be used on macOS to open AWT file chooser, which opens native macOS file chooser. Linux behavior TBD. This does not change JFileChooser. (issue #100, suggested API)
(requires new native code in existing Windows native library)
1.500 1.500 $
0 % reached
Extended file chooser Implement a new Swing UI for JFileChooser that looks more similar to operating system file chooser (e.g. Windows 10/11), that is themeable and provides better usability. (issue #100 and PR #522) 5.000 5.000 $
0 % reached
Toggle Switch component Implement highly customizable and animated toggle switch icon for JToggleButton (and JCheckBox). (issue #135) 800 800 $
0 % reached
Windows 11 themes Implement light and dark themes that look similar to Windows 11. https://learn.microsoft.com/en-us/windows/apps/design/controls/ 4.000 4.000 $
0 % reached
Gnome themes Implement light and dark themes that look similar to Gnome. https://developer.gnome.org/hig/patterns/controls.html 3.200 3.200 $
0 % reached
Material themes Implement light and dark Material Design themes https://m3.material.io/ 6.000 6.000 $
0 % reached
Improve scroll bar

Improve scroll bar customizing to support more styles. E.g.:

  • Windows 11 style, which hides arrow buttons and makes track smaller if not hovered (issue #418).
  • Make (visible) width of track smaller if not hovered (similar to Firefox scroll bars).
  • Support arrow hover/pressed colors and disabling arrow buttons (issue #503).
800 800 $
0 % reached
EUR USD

System Theming

Suggested API:

/**
 * Gives access to system theme information (light/dark, accent color, etc)
 * and allows listening to changes.
 */
public class SystemTheming
{
    /** Returns whether supported on current operating system and CPU architecture. */
    public static boolean isSupportedPlatform()

    /** Returns whether the operating system theme is dark. */
    public static boolean isDarkMode()

    /** Returns the operating system theme accent color, or null. */
    public static Color getAccentColor()

    /** Returns the macOS operating system theme highlight color, or null. */
    public static Color getHighlightColor()

    /** Adds a listener. Will be invoked on AWT thread. */
    public static void addListener( Listener l )

    /** Removes the listener. */
    public static void removeListener( Listener l )

    /** The listener interface for receiving system theme change events. */
    public interface Listener {
        public void systemThemeChanged( Event e );
    }

    /** A event that indicates that the system theme has changed. */
    public static class Event {
        public boolean isDarkMode()
        public Color getAccentColor()
    }
}

Usage:

// setup application look and feel
if( SystemTheming.isDarkMode() )
    FlatDarkLaf.setup();
else
    FlatLightLaf.setup();

// update application look and feel on OS changes 
SystemTheming.addListener( e -> {
    if( e.isDarkMode() )
        FlatDarkLaf.setup();
    else
        FlatLightLaf.setup();
    FlatLaf.updateUI();
} );

// create UI ...

System File Chooser

Suggested API:

/**
 * Gives access to system file chooser.
 */
public class SystemFileChooser
{
    /** Returns whether supported on current operating system and CPU architecture. */
    public static boolean isSupportedPlatform()

    TBD
}

Usage:

TBD