diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java index bbd126e943..e7aba556ea 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java @@ -32,6 +32,7 @@ import javax.swing.JButton; import javax.swing.JPanel; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; +import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.PluginPanel; @Slf4j @@ -52,6 +53,8 @@ public class DevToolsPanel extends PluginPanel this.plugin = plugin; this.widgetInspector = widgetInspector; + setBackground(ColorScheme.DARK_GRAY_COLOR); + varTracker = new VarTracker(client); add(createOptionsPanel()); } @@ -59,6 +62,7 @@ public class DevToolsPanel extends PluginPanel private JPanel createOptionsPanel() { final JPanel container = new JPanel(); + container.setBackground(ColorScheme.DARK_GRAY_COLOR); container.setLayout(new GridLayout(0, 2, 3, 3)); final JButton renderPlayersBtn = new JButton("Players"); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 16c55e4bfc..e67f79adc0 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -67,11 +67,12 @@ import net.runelite.client.events.PluginToolbarButtonAdded; import net.runelite.client.events.PluginToolbarButtonRemoved; import net.runelite.client.events.TitleToolbarButtonAdded; import net.runelite.client.events.TitleToolbarButtonRemoved; +import net.runelite.client.ui.skin.SubstanceRuneLiteLookAndFeel; import net.runelite.client.input.KeyManager; import net.runelite.client.util.OSType; import net.runelite.client.util.OSXUtil; import net.runelite.client.util.SwingUtil; -import org.pushingpixels.substance.api.skin.SubstanceGraphiteLookAndFeel; +import org.pushingpixels.substance.internal.SubstanceSynapse; import org.pushingpixels.substance.internal.utils.SubstanceCoreUtilities; import org.pushingpixels.substance.internal.utils.SubstanceTitlePaneUtilities; @@ -327,7 +328,7 @@ public class ClientUI SwingUtil.setupDefaults(); // Use substance look and feel - SwingUtil.setTheme(new SubstanceGraphiteLookAndFeel()); + SwingUtil.setTheme(new SubstanceRuneLiteLookAndFeel()); // Use custom UI font SwingUtil.setFont(FontManager.getRunescapeFont()); @@ -362,6 +363,8 @@ public class ClientUI navContainer.setLayout(new BorderLayout(0, 0)); navContainer.setMinimumSize(new Dimension(0, 0)); navContainer.setMaximumSize(new Dimension(0, Integer.MAX_VALUE)); + // To reduce substance's colorization (tinting) + navContainer.putClientProperty(SubstanceSynapse.COLORIZATION_FACTOR, 1.0); container.add(navContainer); pluginToolbar = new ClientPluginToolbar(); @@ -565,6 +568,7 @@ public class ClientUI /** * Get offset of game canvas in game window + * * @return game canvas offset */ public Point getCanvasOffset() diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ColorScheme.java b/runelite-client/src/main/java/net/runelite/client/ui/ColorScheme.java new file mode 100644 index 0000000000..1f5f9d7878 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/ui/ColorScheme.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2018, Psikoi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.ui; + +import java.awt.Color; + +/** + * This class serves to hold commonly used UI colors. + */ +public class ColorScheme +{ + /* The orange color used for the branding's accents */ + public static final Color BRAND_ORANGE = new Color(220, 138, 0); + + public static final Color DARKER_GRAY_COLOR = new Color(30, 30, 30); + public static final Color DARK_GRAY_COLOR = new Color(40, 40, 40); + public static final Color MEDIUM_GRAY_COLOR = new Color(77, 77, 77); + public static final Color LIGHT_GRAY_COLOR = new Color(165, 165, 165); + public static final Color DARK_GRAY_HOVER_COLOR = new Color(35, 35, 35); + + /* The color for the green progress bar (used in ge offers, farming tracker, etc)*/ + public static final Color PROGRESS_COMPLETE_COLOR = new Color(55, 240, 70); + + /* The color for the red progress bar (used in ge offers, farming tracker, etc)*/ + public static final Color PROGRESS_ERROR_COLOR = new Color(230, 30, 30); + + /* The color for the orange progress bar (used in ge offers, farming tracker, etc)*/ + public static final Color PROGRESS_INPROGRESS_COLOR = new Color(230, 150, 30); + + /* The color for the price indicator in the ge search results */ + public static final Color GRAND_EXCHANGE_PRICE = new Color(110, 225, 110); + + /* The color for the high alch indicator in the ge search results */ + public static final Color GRAND_EXCHANGE_ALCH = new Color(240, 207, 123); + + /* The background color of the scrollbar's track */ + public static final Color SCROLL_TRACK_COLOR = new Color(25, 25, 25); +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/ui/PluginPanel.java b/runelite-client/src/main/java/net/runelite/client/ui/PluginPanel.java index 36dd220fcc..ca93c74fe0 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/PluginPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/PluginPanel.java @@ -60,10 +60,12 @@ public abstract class PluginPanel extends JPanel { setBorder(BORDER_PADDING); setLayout(new GridLayout(0, 1, 0, 3)); + setBackground(ColorScheme.DARK_GRAY_COLOR); final JPanel northPanel = new JPanel(); northPanel.setLayout(new BorderLayout()); northPanel.add(this, BorderLayout.NORTH); + northPanel.setBackground(ColorScheme.DARK_GRAY_COLOR); scrollPane = new JScrollPane(northPanel); scrollPane.getVerticalScrollBar().setUnitIncrement(16); //Otherwise scrollspeed is really slow diff --git a/runelite-client/src/main/java/net/runelite/client/ui/skin/ObsidianSkin.java b/runelite-client/src/main/java/net/runelite/client/ui/skin/ObsidianSkin.java new file mode 100644 index 0000000000..6cd6e140d4 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/ui/skin/ObsidianSkin.java @@ -0,0 +1,220 @@ +/* + * Copyright (c) 2018, Tomas Slusny + * Copyright (c) 2018, Psikoi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.ui.skin; + +import javax.swing.AbstractButton; +import org.pushingpixels.substance.api.ComponentState; +import org.pushingpixels.substance.api.SubstanceColorSchemeBundle; +import org.pushingpixels.substance.api.SubstanceSkin; +import org.pushingpixels.substance.api.SubstanceSlices.ColorSchemeAssociationKind; +import org.pushingpixels.substance.api.SubstanceSlices.DecorationAreaType; +import org.pushingpixels.substance.api.colorscheme.ColorSchemeSingleColorQuery; +import org.pushingpixels.substance.api.colorscheme.SubstanceColorScheme; +import org.pushingpixels.substance.api.painter.border.ClassicBorderPainter; +import org.pushingpixels.substance.api.painter.border.CompositeBorderPainter; +import org.pushingpixels.substance.api.painter.border.DelegateBorderPainter; +import org.pushingpixels.substance.api.painter.decoration.MatteDecorationPainter; +import org.pushingpixels.substance.api.painter.fill.FractionBasedFillPainter; +import org.pushingpixels.substance.api.painter.highlight.ClassicHighlightPainter; +import org.pushingpixels.substance.api.painter.overlay.BottomLineOverlayPainter; +import org.pushingpixels.substance.api.painter.overlay.BottomShadowOverlayPainter; +import org.pushingpixels.substance.api.painter.overlay.TopBezelOverlayPainter; +import org.pushingpixels.substance.api.painter.overlay.TopLineOverlayPainter; +import org.pushingpixels.substance.api.shaper.ClassicButtonShaper; +import org.pushingpixels.substance.internal.utils.SubstanceColorUtilities; + +public class ObsidianSkin extends SubstanceSkin +{ + /** + * Display name for this skin. + */ + private static final String NAME = "RuneLite"; + + /** + * Creates a new RuneLite skin. + */ + ObsidianSkin() + { + final SubstanceSkin.ColorSchemes schemes = SubstanceSkin + .getColorSchemes(getClass().getResource(NAME + ".colorschemes")); + final SubstanceColorScheme activeScheme = schemes.get("RuneLite Active"); + final SubstanceColorScheme enabledScheme = schemes.get("RuneLite Enabled"); + + final SubstanceColorSchemeBundle defaultSchemeBundle = new SubstanceColorSchemeBundle( + activeScheme, enabledScheme, enabledScheme); + defaultSchemeBundle.registerColorScheme(enabledScheme, 0.6f, + ComponentState.DISABLED_UNSELECTED); + defaultSchemeBundle.registerColorScheme(activeScheme, 0.6f, + ComponentState.DISABLED_SELECTED); + + // borders + final SubstanceColorScheme borderDisabledSelectedScheme = schemes + .get("RuneLite Selected Disabled Border"); + final SubstanceColorScheme borderScheme = schemes.get("RuneLite Border"); + defaultSchemeBundle.registerColorScheme(borderDisabledSelectedScheme, + ColorSchemeAssociationKind.BORDER, ComponentState.DISABLED_SELECTED); + defaultSchemeBundle.registerColorScheme(borderScheme, ColorSchemeAssociationKind.BORDER); + + // marks + final SubstanceColorScheme markActiveScheme = schemes.get("RuneLite Mark Active"); + defaultSchemeBundle.registerColorScheme(markActiveScheme, ColorSchemeAssociationKind.MARK, + ComponentState.getActiveStates()); + defaultSchemeBundle.registerColorScheme(markActiveScheme, 0.6f, + ColorSchemeAssociationKind.MARK, ComponentState.DISABLED_SELECTED, + ComponentState.DISABLED_UNSELECTED); + + // separators + final SubstanceColorScheme separatorScheme = schemes.get("RuneLite Separator"); + defaultSchemeBundle.registerColorScheme(separatorScheme, + ColorSchemeAssociationKind.SEPARATOR); + + // tab borders + defaultSchemeBundle.registerColorScheme(schemes.get("RuneLite Tab Border"), + ColorSchemeAssociationKind.TAB_BORDER, ComponentState.getActiveStates()); + + final SubstanceColorScheme watermarkScheme = schemes.get("RuneLite Watermark"); + + this.registerDecorationAreaSchemeBundle(defaultSchemeBundle, watermarkScheme, + DecorationAreaType.NONE); + + final SubstanceColorSchemeBundle decorationsSchemeBundle = new SubstanceColorSchemeBundle( + activeScheme, enabledScheme, enabledScheme); + decorationsSchemeBundle.registerColorScheme(enabledScheme, 0.5f, + ComponentState.DISABLED_UNSELECTED); + + // borders + decorationsSchemeBundle.registerColorScheme(borderDisabledSelectedScheme, + ColorSchemeAssociationKind.BORDER, ComponentState.DISABLED_SELECTED); + decorationsSchemeBundle.registerColorScheme(borderScheme, + ColorSchemeAssociationKind.BORDER); + + // marks + decorationsSchemeBundle.registerColorScheme(markActiveScheme, + ColorSchemeAssociationKind.MARK, ComponentState.getActiveStates()); + + // separators + final SubstanceColorScheme separatorDecorationsScheme = schemes + .get("RuneLite Decorations Separator"); + decorationsSchemeBundle.registerColorScheme(separatorDecorationsScheme, + ColorSchemeAssociationKind.SEPARATOR); + + final SubstanceColorScheme decorationsWatermarkScheme = schemes + .get("RuneLite Decorations Watermark"); + + this.registerDecorationAreaSchemeBundle(decorationsSchemeBundle, decorationsWatermarkScheme, + DecorationAreaType.TOOLBAR, DecorationAreaType.GENERAL, DecorationAreaType.FOOTER); + + final SubstanceColorSchemeBundle headerSchemeBundle = new SubstanceColorSchemeBundle(activeScheme, + enabledScheme, enabledScheme); + headerSchemeBundle.registerColorScheme(enabledScheme, 0.5f, + ComponentState.DISABLED_UNSELECTED); + + // borders + final SubstanceColorScheme headerBorderScheme = schemes.get("RuneLite Header Border"); + headerSchemeBundle.registerColorScheme(borderDisabledSelectedScheme, + ColorSchemeAssociationKind.BORDER, ComponentState.DISABLED_SELECTED); + headerSchemeBundle.registerColorScheme(headerBorderScheme, + ColorSchemeAssociationKind.BORDER); + // marks + headerSchemeBundle.registerColorScheme(markActiveScheme, ColorSchemeAssociationKind.MARK, + ComponentState.getActiveStates()); + + headerSchemeBundle.registerHighlightColorScheme(activeScheme, 0.7f, + ComponentState.ROLLOVER_UNSELECTED, ComponentState.ROLLOVER_ARMED, + ComponentState.ARMED); + headerSchemeBundle.registerHighlightColorScheme(activeScheme, 0.8f, + ComponentState.SELECTED); + headerSchemeBundle.registerHighlightColorScheme(activeScheme, 1.0f, + ComponentState.ROLLOVER_SELECTED); + + final SubstanceColorScheme headerWatermarkScheme = schemes.get("RuneLite Header Watermark"); + + this.registerDecorationAreaSchemeBundle(headerSchemeBundle, headerWatermarkScheme, + DecorationAreaType.PRIMARY_TITLE_PANE, DecorationAreaType.SECONDARY_TITLE_PANE, + DecorationAreaType.HEADER); + + setTabFadeStart(0.2); + setTabFadeEnd(0.9); + + // Add overlay painters to paint drop shadows along the bottom + // edges of toolbars and footers + this.addOverlayPainter(BottomShadowOverlayPainter.getInstance(), + DecorationAreaType.TOOLBAR); + this.addOverlayPainter(BottomShadowOverlayPainter.getInstance(), DecorationAreaType.FOOTER); + + // add an overlay painter to paint a dark line along the bottom + // edge of toolbars + final BottomLineOverlayPainter toolbarBottomLineOverlayPainter = new BottomLineOverlayPainter( + (SubstanceColorScheme scheme) -> scheme.getUltraDarkColor().darker()); + this.addOverlayPainter(toolbarBottomLineOverlayPainter, DecorationAreaType.TOOLBAR); + + // add an overlay painter to paint a dark line along the bottom + // edge of toolbars + final TopLineOverlayPainter toolbarTopLineOverlayPainter = new TopLineOverlayPainter( + (SubstanceColorScheme scheme) -> SubstanceColorUtilities + .getAlphaColor(scheme.getForegroundColor(), 32)); + this.addOverlayPainter(toolbarTopLineOverlayPainter, DecorationAreaType.TOOLBAR); + + // add an overlay painter to paint a bezel line along the top + // edge of footer + final TopBezelOverlayPainter footerTopBezelOverlayPainter = new TopBezelOverlayPainter( + (SubstanceColorScheme scheme) -> scheme.getUltraDarkColor().darker(), + (SubstanceColorScheme scheme) -> SubstanceColorUtilities + .getAlphaColor(scheme.getForegroundColor(), 32)); + this.addOverlayPainter(footerTopBezelOverlayPainter, DecorationAreaType.FOOTER); + + this.setTabFadeStart(0.18); + this.setTabFadeEnd(0.18); + + // Set button shaper to use "flat" design + this.buttonShaper = new ClassicButtonShaper() + { + @Override + public float getCornerRadius(AbstractButton button, float insets) + { + return 0; + } + }; + + this.watermark = null; + this.fillPainter = new FractionBasedFillPainter("RuneLite", + new float[]{0.0f, 0.5f, 1.0f}, + new ColorSchemeSingleColorQuery[]{ColorSchemeSingleColorQuery.ULTRALIGHT, + ColorSchemeSingleColorQuery.LIGHT, ColorSchemeSingleColorQuery.LIGHT}); + this.decorationPainter = new MatteDecorationPainter(); + this.highlightPainter = new ClassicHighlightPainter(); + this.borderPainter = new CompositeBorderPainter("RuneLite", new ClassicBorderPainter(), + new DelegateBorderPainter("RuneLite Inner", new ClassicBorderPainter(), 0x40FFFFFF, + 0x20FFFFFF, 0x00FFFFFF, + (SubstanceColorScheme scheme) -> scheme.tint(0.2f))); + } + + @Override + public String getDisplayName() + { + return NAME; + } +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/ui/skin/SubstanceRuneLiteLookAndFeel.java b/runelite-client/src/main/java/net/runelite/client/ui/skin/SubstanceRuneLiteLookAndFeel.java new file mode 100644 index 0000000000..86afea00a8 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/ui/skin/SubstanceRuneLiteLookAndFeel.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2018, Tomas Slusny + * Copyright (c) 2018, Psikoi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.ui.skin; + +import org.pushingpixels.substance.api.SubstanceLookAndFeel; + +public class SubstanceRuneLiteLookAndFeel extends SubstanceLookAndFeel +{ + public SubstanceRuneLiteLookAndFeel() + { + super(new ObsidianSkin()); + } +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/util/SwingUtil.java b/runelite-client/src/main/java/net/runelite/client/util/SwingUtil.java index ff5015917e..b6a66a35d6 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/SwingUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/util/SwingUtil.java @@ -25,6 +25,7 @@ package net.runelite.client.util; import java.awt.AWTException; +import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Frame; @@ -79,6 +80,9 @@ public class SwingUtil ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false); JPopupMenu.setDefaultLightWeightPopupEnabled(false); + UIManager.put("Button.foreground", Color.WHITE); + UIManager.put("MenuItem.foreground", Color.WHITE); + // Do not render shadows under popups/tooltips. // Fixes black boxes under popups that are above the game applet. System.setProperty("jgoodies.popupDropShadowEnabled", "false"); @@ -210,7 +214,7 @@ public class SwingUtil result = JOptionPane.showConfirmDialog( frame, "Are you sure you want to exit?", "Exit", - JOptionPane .OK_CANCEL_OPTION, + JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); } } diff --git a/runelite-client/src/main/resources/net/runelite/client/ui/skin/RuneLite.colorschemes b/runelite-client/src/main/resources/net/runelite/client/ui/skin/RuneLite.colorschemes new file mode 100644 index 0000000000..1d9ffee41b --- /dev/null +++ b/runelite-client/src/main/resources/net/runelite/client/ui/skin/RuneLite.colorschemes @@ -0,0 +1,166 @@ +# Copyright (c) 2018, Tomas Slusny +# Copyright (c) 2018, Psikoi +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +RuneLite Enabled { + kind=Dark + colorUltraLight=#232323 + colorExtraLight=#232323 + colorLight=#232323 + colorMid=#232323 + colorDark=#232323 + colorUltraDark=#232323 + colorForeground=#C6C6C6 +} + +RuneLite Active { + kind=Light + colorUltraLight=#4e4e4e + colorExtraLight=#4e4e4e + colorLight=#4e4e4e + colorMid=#232323 + colorDark=#232323 + colorUltraDark=#232323 + colorForeground=#000000 +} + +RuneLite Selected Disabled Border { + kind=Dark + colorUltraLight=#191919 + colorExtraLight=#191919 + colorLight=#191919 + colorMid=#191919 + colorDark=#191919 + colorUltraDark=#191919 + colorForeground=#C6C6C6 +} + +RuneLite Border { + kind=Dark + colorUltraLight=#191919 + colorExtraLight=#191919 + colorLight=#191919 + colorMid=#191919 + colorDark=#191919 + colorUltraDark=#191919 + colorForeground=#C6C6C6 +} + +RuneLite Tab Border { + kind=Light + colorUltraLight=#232323 + colorExtraLight=#232323 + colorLight=#232323 + colorMid=#232323 + colorDark=#232323 + colorUltraDark=#232323 + colorForeground=#232323 +} + +RuneLite Mark Active { + kind=Dark + colorUltraLight=#191919 + colorExtraLight=#191919 + colorLight=#191919 + colorMid=#191919 + colorDark=#191919 + colorUltraDark=#191919 + colorForeground=#191919 +} + +RuneLite Highlight { + kind=Light + colorUltraLight=#C6C6C6 + colorExtraLight=#C6C6C6 + colorLight=#C6C6C6 + colorMid=#C6C6C6 + colorDark=#C6C6C6 + colorUltraDark=#C6C6C6 + colorForeground=#191919 +} + +RuneLite Watermark { + kind=Light + colorUltraLight=#313131 + colorExtraLight=#313131 + colorLight=#313131 + colorMid=#313131 + colorDark=#313131 + colorUltraDark=#313131 + colorForeground=#C6C6C6 +} + +RuneLite Decorations Watermark { + kind=Light + colorUltraLight=#1e1e1e + colorExtraLight=#1e1e1e + colorLight=#1e1e1e + colorMid=#1e1e1e + colorDark=#1e1e1e + colorUltraDark=#1e1e1e + colorForeground=#1e1e1e +} + +RuneLite Separator { + kind=Dark + colorUltraLight=#232323 + colorExtraLight=#232323 + colorLight=#232323 + colorMid=#232323 + colorDark=#232323 + colorUltraDark=#232323 + colorForeground=#232323 +} + +RuneLite Decorations Separator { + kind=Dark + colorUltraLight=#232323 + colorExtraLight=#232323 + colorLight=#232323 + colorMid=#232323 + colorDark=#232323 + colorUltraDark=#232323 + colorForeground=#232323 +} + +RuneLite Header Watermark { + kind=Dark + colorUltraLight=#1e1e1e + colorExtraLight=#1e1e1e + colorLight=#1e1e1e + colorMid=#1e1e1e + colorDark=#1e1e1e + colorUltraDark=#1e1e1e + colorForeground=#C6C6C6 +} + +RuneLite Header Border { + kind=Dark + colorUltraLight=#1e1e1e + colorExtraLight=#1e1e1e + colorLight=#1e1e1e + colorMid=#1e1e1e + colorDark=#1e1e1e + colorUltraDark=#1e1e1e + colorForeground=#C6C6C6 +} \ No newline at end of file