Coder Social home page Coder Social logo

jfxtras / jfxtras-styles Goto Github PK

View Code? Open in Web Editor NEW
624.0 34.0 143.0 2.23 MB

Java, JavaFX themes or look and feels. Currently contains JMetro theme.

Home Page: https://pixelduke.com/java-javafx-theme-jmetro/

CSS 34.31% Java 65.69%
javafx javafx-themes java javafx-library

jfxtras-styles's Introduction

jfxtras-styles

JavaFX themes / styles that can be used to give applications a different look and feel.

JMetro

[Also check out Transit Theme another theme I've created that builds upon lessons learned while developing JMetro]

Sample CAD app using JMetro Sample DansoftOnwer FXTaskbarProgressBar

Documentation

Documentation of JMetro can be found in this link: JMetro Java, Javafx theme documentation.

Strengths and Key Principles

  • Modern look and feel
  • Zero tight coupling with this library:
    • No new controls. Functionality is added "behind the curtains" to existing JavaFX controls through the Skin API
    • Setting and unsetting is seamless and easy (only 1 line of code) even on already existing apps that don't use this theme
  • Looks integrated on Windows (80%/90% of desktop users use Windows) also works well on other OSes
  • Light and Dark versions;
  • Easily override and customize colors by overriding JavaFX CSS variables
  • Only relies on JavaFX CSS, JavaFX API and Java code (no other "foreign" technologies)
  • Samples and theme tester app on samples sub-project
  • Lots of real world, recognized Java apps already using it (NASA's applications, applications used in the White House, etc, etc)

This is a “pluggable” JavaFX theme.
This means there’s zero coupling because this theme doesn’t define any new Controls and the developer only needs to run 1 line of code to set the theme (this is all the coupling you’ll get).
It adds features to the existing JavaFX controls that you regularly use (controls from the standard JavaFX API or from known third party libraries) by leveraging the JavaFX Skin API.

Check documentation for a deeper dive.

Getting JMetro

You can get the jar from Maven Central or download it from the releases tab

Here are examples for Gradle and Maven (replace version number with the version you want):

Gradle

implementation 'org.jfxtras:jmetro:11.6.15'

Maven

<dependency>
    <groupId>org.jfxtras</groupId>
    <artifactId>jmetro</artifactId>
    <version>11.6.15</version>
</dependency>

Source code

We have two important branches:

  • master -> JavaFX 11 and above / Java 11 and above (actively developed branch)
  • jdk-8 -> JavaFX 8 / Java 8 (maintenance mode, no active development is ongoing)

The master branch is being tested using JavaFX 11.

The jmetro-samples subproject has samples that you can run and also check out how to use JMetro.

Java 8 version

The "jdk-8" branch has the code for versions 8 of JMetro which are meant to run with Java 8. It is in maintenance mode, no active development is ongoing. If you want me to add features or make backports from the "master" branch please consider sponsoring those changes.

Pull Requests (PR)

We welcome contributions via PR.
Before submitting a PR, please file an issue for prior discussion. This will avoid you wasting time with a PR that might not be approved because, for instance, it might be outside the intended scope of the project.

Filing bugs

When filing bugs it's most often good practice to attach a small sample app (as small, simple and with the fewest lines of code as possible). This app when executed, should show the bug happening.
The reason for this is the limited amount of resources and time I have and also because in the process of filing a bug, developers sometimes discover that the bug isn't in the library but somewhere else.
Without a small example app the issue might be closed prematurely.

Feedback request

Please show pictures of your application that is using JMetro or share it through social media. This is very important for us to know how users are effectively using it and make adjustments accordingly, to make JMetro better, and, only if you allow it, to showcase example uses.
Seeing JMetro being used is also always a source of motivation to keep working on it.

License

JFXtras uses the new BSD license

jfxtras-styles's People

Contributors

cansik avatar deanriverson avatar dukke avatar faragelfadaly avatar mairwunnx avatar p-dukke avatar satsen avatar tbee avatar thomasdaheim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jfxtras-styles's Issues

When i add JMetro lib to project - application return me exceptions.

Describe the bug

  • Just. When i add your library to my project, my application is crash.

Steps to add library to project

  1. Add your library file to project folder "lib".
  2. Project Structure > Libraries > Add to classes your library.
  3. Project Structure > Artifacts > Add copy of "Extracted Library" your library.

Materials

capture20181225185553811

Additional information

  • It not only with TextField skin, it with anyway controls. See full StackTrace.

Environment information

  • JMetro version: [5.0.0]
  • System: [Windows 10 1803 x64]
  • Java Runtime Environment: [1.8.0_171] and [10.0.2]
  • JavaFx GUI framework: [TornadoFx]

Tabs?

I'm using this theme to make my B4J apps look prettier and so far it's awesome. However, I have noticed that the TabPane still has the Modena style.

What are the chances that you'll at least make the Tabs look Metro-ish?

Please update slider dark and light FD style colors.

Hello! I re-write it text 3 times! Because google crash it page! It so not cool!

Please, review it issue and commit changes, i change dark and light colors of slider to FD style and fixed slider line focus.


Bug (Not-Excepted behavior of slider line):

sliderlineissue

Excepted behavior of slider line:

sliderlineexpected


COLOR CHANGES


Unselected state for dark theme:

unselecteddarkslider

Pressed state for dark theme:

presseddarkslider


Unselected state for light theme:

unselecredslider

Pressed state for light theme:

pressedslider


Code for JMetroBase.css file: view

Code for JMetroLightTheme.css file: view

Code for JMetroDarkTheme.css file: view

Add style for split-pane ui element.

jmetrosplitpanelight fix

jmetrosplitpanedark

@dukke Consider the changes, if everything suits you - I make PR, I think it turned out beautifully :), and if you make background #333333, then in general chocolate :D

p.s all colors by windows explorer scrollbar. (you can self see it on latest windows 10 build)

list-view not filled cells pressed - click issue.

jmetrolistviewissue

When just press on empty cell pressed color changed - it not true behavior
When just click on empty cell before selecting any filled cell - give npe exception

java.lang.NullPointerException
	at bin.AddContentToTreeView$Companion$addContent$1.handle(AddContentToTreeView.kt:28)
	at bin.AddContentToTreeView$Companion$addContent$1.handle(AddContentToTreeView.kt:9)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3470)
	at javafx.scene.Scene$ClickGenerator.access$8100(Scene.java:3398)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3766)
	at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
	at com.sun.glass.ui.View.notifyMouse(View.java:937)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
	at java.lang.Thread.run(Unknown Source)

Please, add metro-fluent titled-pane dark and light styles.

I created styles for titled-pane light and dark. Please, review my adds on titled-pane, maybe you like it :)

Also please, check css code style, i newbie in kotlin and css, i can be produce mistakes, but i try not-make mistakes :D

titled-pane

Changes in JMetroBase.css: (Summary screen)

image

Code of changes in JMetroBase.css:

/*******************************************************************************
 *                                                                             *
 * TitledPane (Expanded and unexpanded)                                        *
 *                                                                             *
 ******************************************************************************/

/* titled pane expanded & unexpanded disabled */
.titled-pane:disabled {
    -fx-opacity: 0.7;
}

/* titled pane expanded & unexpanded */
.titled-pane:expanded, .titled-pane .title {
    -fx-border-width: 1;
    -fx-border-color: accent_color;
}

/* titled pane expanded & unexpanded header */
.titled-pane:expanded .title, .titled-pane .title {
    -fx-background-color: accent_color;
    -fx-border-color: accent_color;
}

/* titled pane expanded & unexpanded header text */
.titled-pane:expanded .title .text, .titled-pane .title .text {
    -fx-font-family: "Segoe UI";
    -fx-font-size: 1.166667em; /* 14 */
}

/* titled pane expanded & unexpanded header arrow */
.titled-pane:expanded .title .arrow-button .arrow,
.titled-pane .title .arrow-button .arrow {
    -fx-shape: "M 4.21875 10.78125 L 2.78125 12.21875 L 15.28125 24.71875 L 16 25.40625 L 16.71875 24.71875 L 29.21875 12.21875 L 27.78125 10.78125 L 16 22.5625 Z";
}

Changes in JMetroDarkTheme.css: (Summary screen)

image

Code of changes in JMetroDarkTheme.css:

/*******************************************************************************
 *                                                                             *
 * TitledPane (Expanded and unexpanded)                                        *
 *                                                                             *
 ******************************************************************************/

/* titled pane expanded & unexpanded header text */
.titled-pane:expanded .title .text, .titled-pane .title .text {
    -fx-fill: #fff;
}

/* titled pane expanded & unexpanded header arrow */
.titled-pane:expanded .title .arrow-button .arrow, .titled-pane .title .arrow-button .arrow {
    -fx-background-color: #fff;
}

/* titled pane expanded & unexpanded content */
.titled-pane:expanded .content {
    -fx-background-color: #2B2B2B;
    -fx-border-color: #2B2B2B;
}

Changes in JMetroLightTheme.css: (Summary screen)

image

Code of changes in JMetroLightTheme.css:

/*******************************************************************************
 *                                                                             *
 * TitledPane (Expanded and unexpanded)                                        *
 *                                                                             *
 ******************************************************************************/

/* titled pane expanded & unexpanded header text */
.titled-pane:expanded .title .text, .titled-pane .title .text {
    -fx-fill: #fff;
}

/* titled pane expanded & unexpanded header arrow */
.titled-pane:expanded .title .arrow-button .arrow, .titled-pane .title .arrow-button .arrow {
    -fx-background-color: #fff;
}

/* titled pane expanded & unexpanded content */
.titled-pane:expanded .content {
    -fx-background-color: #fff;
    -fx-border-color: #fff;
}

Set background colors for layout panes (BorderPane, etc) according to Style value. Also set them for Toolbar, ScrollPane, controls, etc

Dark theme:

image

After adding background style property:

image

image

I think it needed to do automatically, right? Because, new people who want to use your lib and themes, want what all controls be themed, right? Then need it do automatically, it no hard, just add background prop to it elements. just then theme applied to all controls needed, i think you understand me :)

additional ui elements needed to automatically background color: [ "Pane", "Anchor Pane", "Scroll Pane", "Scroll Pane Empty", "ToolBar"]

Size & font mismatch among different controls

I noticed the following mismatch:

  1. Size: Different controls seem to have different default sizes (see different height of Button vs ChoiceBox).

  2. Font: Different controls seem to have different default fonts (see the size and color of Label vs Checkbox vs ChoiceBox).

  3. Background Color: Some panes have back color in DARK mode, but not all (see the black TitlePane vs. white HBox).

Maybe some of these mismatch are intentional. If so, an explanation would be useful.

ui

How compile or run demo project?

Hi again @dukke! I try to compile your lib, ok, lib is compiled, but i can't start samples, how i can run it?
Sorry, i never work with gradle, and maybe i stupid in it.

image

image

image

Licence problem

I only wanna to use your great "ToggleSwitch"-class (and necessary files to use this switch control) in a small JavaFX project with some settings.

Therefore I looked up your licence definition. Your refer to an article which is generally about BSD licences. On this page I cannot recognice if you mean with "new" the 4-clause , the 3-clause or the 2-clause BSD licence?

Please help me in this lincene problem. I would appreciate using your software.

Jmetro and tableviewFilter (controlsfx)

Hi, i am using your theme in my javafx test playground, and when i apply tablefilter from controlsfx on table, and try to right click on column name, i do get sorting options but i also get crash in application. i can copy paste error that i get , but its null pointer exception related to textfieldSkin. When i disable your theme and just try vanila javafx everything is ok.

Jmetro 4.4 jdk 9 java.lang.NoClassDefFoundError

When run new JMetro(JMetro.Style.DARK).applyTheme(parent);
java.lang.NoClassDefFoundError: com/sun/javafx/scene/control/skin/TextFieldSkin
java.lang.NoClassDefFoundError: com/sun/javafx/scene/control/skin/ButtonSkin

jfxtras-styles does not build in Java 10 on macOS High Sierra (10.13.6)

When attempting to build the following types of errors are generated:

Task :jmetro:compileJava
/Users/wbeebe/Git/jfxtras-styles/jmetro/src/main/java/impl/jfxtras/styles/jmetro8/TextFieldWithButtonSkin.java:31: error: cannot find symbol
import com.sun.javafx.scene.control.skin.TextFieldSkin;

Investigation shows that according to JEP 253 that:

The intention is to move many JavaFX control skins into the appropriate public package, most probably javafx.scene.control.skin. There is no intent to also move the related behavior classes.

(see http://openjdk.java.net/jeps/253)

It is my intention to

  1. Fork jfxtras-styles
  2. Attempt to find and fix these errors
  3. Propose the fixes back to the project via a pull request.

I make no guarantees this will be straightforward, or that I will succeed. But someone needs to try.

Please, update Tooltip fluent design specification.

image

Dark theme for tooltip not correctly. I think, dark colors for you tooltip not correct.
Also not correctly border width, i changed from 2px to 1px, but you can commit with 2px, as you liked.

I improve dark theme for tooltip, please review it, it looks better and looks like tooltip in fluent.

JMetroBase.css: (Summary screen)

image

Removed lines:

-fx-background-color: #f2f2f2;
-fx-text-fill: #111;

Changed lines:

old: -fx-border-width: 2px; new: -fx-border-width: 1px;

JMetroLightTheme.css (Added .tooltip block (after .tab-pane))

image

JMetroDarkTheme.css: (Added .tooltip block (after .tab-pane)

image

Result: (Left - Edited css, Right - Original fluent design)

image

image

Please, update button dark n light themes to fluent specifications.

Hi again @dukke bro! I changed button colors for dark and light themes to semi-fully fluent specifications.
Please, review changes and it issue, and if you like it changes - commit it.

buttonchanges


buttonchangesdark


Source Code:

JMetroBase.css code:

Replace old .button:default:pressed block to next code:

.button:default:pressed {
    -fx-background-color: border_pressed_default_color;
    -fx-border-color: background_pressed_default_color;
}

Replace old .toggle-button:selected:pressed block to next code:

.toggle-button:selected:pressed {
    -fx-background-color: border_pressed_default_color;
    -fx-border-color: background_pressed_default_color;
}

JMetroLightTheme.css code:

Replace old .button, .toggle-button block to next code:

.button, .toggle-button {
    background_color: #ccc;

    background_pressed_color: #999;
    background_pressed_default_color: #999;
    border_pressed_default_color: #999;

    border_hover_default_color: #004881;
    border_hover_selected_color: #004881;

    border_hover_color: #7a7a7a;

    text_color: #111;
    default_button_text_color: white;

    focus_ring_border_color: white;
}

JMetroDarkTheme.css code:

Replace old .button, .toggle-button block to next code:

.button, .toggle-button {
    background_color: #333;

    background_pressed_color: #666;
    background_pressed_default_color: #666;
    border_pressed_default_color: #666;

    border_hover_default_color: #66AEE7;
    border_hover_selected_color: #66AEE7;
    
    border_hover_color: #858585;

    text_color: white;
    default_button_text_color: white;

    focus_ring_border_color: white;
}

TextArea throwing warnings

When using a javafx.scene.control.TextArea in my application, I received the following warnings:

Nov 07, 2018 3:52:39 PM javafx.scene.CssStyleHelper calculateValue
WARNING: Could not resolve 'border' while resolving lookups for '-fx-background-color' from rule '.text-input' in stylesheet jar:file:/C:/Users/adam/.m2/repository/org/jfxtras/jmetro/4.6/jmetro-4.6.jar!/jfxtras/styles/jmetro8/JMetroLightTheme.css
Nov 07, 2018 3:52:39 PM javafx.scene.CssStyleHelper calculateValue
WARNING: Could not resolve 'highlight' while resolving lookups for '-fx-highlight-fill' from rule '
.text-input' in stylesheet jar:file:/C:/Users/adam/.m2/repository/org/jfxtras/jmetro/4.6/jmetro-4.6.jar!/jfxtras/styles/jmetro8/JMetroLightTheme.css
Nov 07, 2018 3:52:39 PM javafx.scene.CssStyleHelper calculateValue
WARNING: Could not resolve 'highlight_text' while resolving lookups for '-fx-highlight-text-fill' from rule '.text-input' in stylesheet jar:file:/C:/Users/adam/.m2/repository/org/jfxtras/jmetro/4.6/jmetro-4.6.jar!/jfxtras/styles/jmetro8/JMetroLightTheme.css
Nov 07, 2018 3:52:39 PM javafx.scene.CssStyleHelper calculateValue
WARNING: Could not resolve 'prompt_text' while resolving lookups for '-fx-prompt-text-fill' from rule '
.text-input' in stylesheet jar:file:/C:/Users/adam/.m2/repository/org/jfxtras/jmetro/4.6/jmetro-4.6.jar!/jfxtras/styles/jmetro8/JMetroLightTheme.css

I am using JDK 1.8_172 if that is helpful.

TableView and Dialogs not working perfectly

Hi, it's more kind a doubt than a issue, i'm sorry if i'm posting this in the wrong place, but i need a little help. I have a project in JavaFX wich i'm using your fantastic lib, but i only import the JAR to the program. And there's a lot of things that are being missed, cause now i realized that i have to use a stylesheet. The problem is, i'm starting coding and i don't know what i have to download to make the styleesheet work, so if you can tell me i'll be so so glad. Thanks and sorry for my bad english.

TreeTableView row selection sometimes doesn't work

Sometimes you need to click more than once for a row to get selected on a TreeTableView.
I'm not sure whether this is a JMetro bug or a JavaFX bug. And if it is the latter whether we can do a workaround to fix it.

Right click on button with animation causes exceptions.

image

stacktrace when right clicking on button with animation.
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
	at com.sun.javafx.scene.control.skin.BehaviorSkinBase$2.handle(BehaviorSkinBase.java:107)
	at com.sun.javafx.scene.control.skin.BehaviorSkinBase$2.handle(BehaviorSkinBase.java:105)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene.processMenuEvent(Scene.java:1802)
	at javafx.scene.Scene.access$4500(Scene.java:159)
	at javafx.scene.Scene$ScenePeerListener.menuEvent(Scene.java:2516)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$null$354(GlassViewEventHandler.java:466)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMenuEvent$355(GlassViewEventHandler.java:449)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMenuEvent(GlassViewEventHandler.java:448)
	at com.sun.glass.ui.View.handleMenuEvent(View.java:563)
	at com.sun.glass.ui.View.notifyMenu(View.java:889)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
	at java.lang.Thread.run(Thread.java:748)

License

http://jfxtras.org/ states that

JFXtras and JFXtras Labs are licensed under the New BSD License

but this repository is missing any license information and it is unclear if it's part of "JFXtras and JFXtras Labs". Could you please add a license to this repo or at least confirm that any content here is licensed under the New BSD License?

demo application

It needed for any users of JMetro library, currently i do it.

Publish to Maven Central

It would be great if the project would publish artifacts to Maven Central. I'm a big fan of Bintray however JCenter is not accessible at my current location (filtered by IT staff) and only Maven Central is allowed.

I can help setup the required bits in terms of Gradle configuration however the last step (Sonatype username & password) must behandled by @dukke.

The New Fluent Design

I love the what you've built. But is there a plan on rewriting JMetro for the new Fluent Design Guidelines?

Remove faragelfadaly from committers list

It appears somehow he has made his way, contributing a txt file in 2013, which makes no sense, with just a small text message saying the project was his.
Possibly an exploit of a bug in Github back in 2013.

Not working with Java Modular Project

If I try to use JMetro in a modular project I get the following error:

Exception in Application start method
Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: com/sun/javafx/scene/control/skin/ButtonSkin

Seems like JMetro (or jfxtras) are using an old path for the ButtonSkin. It shouldnt be com/sun/javafx/scene/control/skin/ButtonSkin. It must be javafx/scene/control/skin/ButtonSkin in a modular project

Add constants for common accent colors

Add constants for common accent colors so programmers can easily choose a nice accent color, like this:

.root {
  accent_color: JMETRO_NAVY_BLUE;
}

(This would be defined in a new style sheet added after applying JMetro)

Windows has a list of pre defined accent colors that one can choose from. If you right click the desktop background - select Personalize - select Colors.

Bintray Downloads don't Work for Versions 4.2 and 4.4

I used maven to download the jar from bintray and found that both versions 4.2 and 4.4 are invalid jar files. When I run jar tf on it there is an error. Also trying to unzip the jar using a generic zip program I get an error about the jar not being a valid zip file. If I use version 4.0 everything works fine.

Not correctly behavior disabled menu-item color.

image

image

Dark and light theme for disabled menu-item not correctly. It must be fully disabled without changing background \ hover color and just it UX rules :)

Maybe i improve it, and i set it not-hovering and without changing background if menu-item disabled.

JMetroBase.css: (Added to end of file)

image

/* disabled */
.menu-item:disabled:hover,
.menu-item:disabled:focused,
.menu-item:disabled:pressed {
    -fx-background-color: background_color;
}

Result: (I hover on disabled menu-item, but it hard to see :D)

image

image

Programmatically filled password fields not masked

When you create a new PasswordField object and fill it programmatically the password field is not masked, instead it shows the raw text.
The text is only masked after clicking the show password button once and then releasing it.
image

Text kerning on Button changes when Button shrinks (after it's pressed)

Text kerning on Button changes when Button shrinks (after it's pressed). I think this might be because JavaFX tries to preserve the same font size on a smaller space.
Maybe changing the font size when the Button shrinks could be a solution.

  • In the following I'm pressing the top left button
    Normal Button:
    image

Button pressed:
image

JMetro 5.3: Reduce font size

I want to use JMetro theme in my javafx application. Problem is it renders the texts with bigger font size, especially the TableView cell text. How to reduce the font size?
My java version is 8 u181.

Radio-Button not correct color on mouse hover.

Describe the bug

  • Incorrect color change behavior when hovering over RadioButton when it was turned off after being turned on.

Steps to reproduce the behavior

  1. Add radio-button to your scene.
  2. Set Focus Traversable to true.
  3. Click on or check radio-button.
  4. Uncheck your radio-button.
  5. Now. Hover on radio-button and see issue.

Materials

metroradiobuttonissue

Environment information

  • JMetro version: [5.0.0]
  • System: [Windows 10 1803 x64]
  • Java Runtime Environment: [1.8.0_171]

Selected font is overriden

I change the default font of a button in FXML:

image

In Modena it looks like this:

image

In JMetro it looks like this:

image

Make JMetros stylesheet be an user agent stylesheet

Since JMetro is as of now a regular author stylesheet, unlike Modena, it will overwrite any styling set in code, including FXML (which is code).

If JMetro starts being an user agent stylesheet it will behave just like Modena.

This might be a considerable work, we need to add every Modena defined style that's not currently being defined in JMetro to the JMetro CSS stylesheet.

Users of JMetro are advised, for the time being, to do all the styling in CSS. Add they're own stylesheets that overwrite JMetro CSS after applying JMetro.

If anyone wants to step in and do this they're much welcome. I won't be doing this in the foreseeable future as there are several things currently on my plate.

Date-picker not correct text color on lost focus.

Describe the bug

  • Incorrect color change text of text-box in date-picker when happens lost focus.

Steps to reproduce the behavior

  1. Add date-picker to your scene.
  2. Put data in date-picker text-box or just select date.
  3. Cause lost focus of it object, or focus on other ui element.
  4. Again focus on out added date-picked ui element.
  5. Now see issue, and read great it text :D.

Materials

datapickerissue

Environment information

  • JMetro version: [Source Based]
  • System: [Windows 10 1809 x64]
  • Java Runtime Environment: [1.8.0_171]

Please, update TextBox fluent design specification.

capture20181219201159957

Dark theme not correctly. I think, dark colors for you textbox not correct.

I improve dark theme for textbox, please review it, it looks better and looks like textbox in fluent.

JMetroBase.css: (left green line - changed line)

image

JMetroDarkTheme.css: (left cyan line - changed line)

image

Result: (Left - Edited css, Right - Original fluent design)

image

image

image

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.