diff --git a/src/ert/gui/styling/__init__.py b/src/ert/gui/styling/__init__.py new file mode 100644 index 00000000000..7419981b28c --- /dev/null +++ b/src/ert/gui/styling/__init__.py @@ -0,0 +1,9 @@ +from __future__ import annotations + +from ert.gui.styling.theme_manager.manager import ColorSchemeManager +from ert.gui.styling.theme_manager.theme import ColorScheme + +__all__ = [ + "ColorScheme", + "ColorSchemeManager", +] diff --git a/tests/ert/unit_tests/gui/theming/__init__.py b/src/ert/gui/styling/theme_manager/__init__.py similarity index 100% rename from tests/ert/unit_tests/gui/theming/__init__.py rename to src/ert/gui/styling/theme_manager/__init__.py diff --git a/src/ert/gui/theming/manager.py b/src/ert/gui/styling/theme_manager/manager.py similarity index 100% rename from src/ert/gui/theming/manager.py rename to src/ert/gui/styling/theme_manager/manager.py diff --git a/src/ert/gui/theming/theme.py b/src/ert/gui/styling/theme_manager/theme.py similarity index 100% rename from src/ert/gui/theming/theme.py rename to src/ert/gui/styling/theme_manager/theme.py diff --git a/src/ert/gui/styling/themes/dark.json b/src/ert/gui/styling/themes/dark.json new file mode 100644 index 00000000000..17d6dbdc8ea --- /dev/null +++ b/src/ert/gui/styling/themes/dark.json @@ -0,0 +1,100 @@ +{ + "bg-neutral-canvas": "#0b0b0b", + "bg-neutral-surface": "#202223", + "bg-neutral-fill-muted-default": "#525c65", + "bg-neutral-fill-muted-hover": "#5d6b76", + "bg-neutral-fill-muted-active": "#6b7d8b", + "bg-neutral-fill-emphasis-default": "#b4c7d7", + "bg-neutral-fill-emphasis-hover": "#cadae7", + "bg-neutral-fill-emphasis-active": "#deeaf4", + "bg-accent-canvas": "#0a0b0b", + "bg-accent-surface": "#1e2323", + "bg-accent-fill-muted-default": "#3c6266", + "bg-accent-fill-muted-hover": "#3e7378", + "bg-accent-fill-muted-active": "#41878e", + "bg-accent-fill-emphasis-default": "#8cd2da", + "bg-accent-fill-emphasis-hover": "#ace3e9", + "bg-accent-fill-emphasis-active": "#c7f1f6", + "bg-success-canvas": "#0a0c0a", + "bg-success-surface": "#1e231e", + "bg-success-fill-muted-default": "#3c673a", + "bg-success-fill-muted-hover": "#3e793c", + "bg-success-fill-muted-active": "#418e3e", + "bg-success-fill-emphasis-default": "#8cdb87", + "bg-success-fill-emphasis-hover": "#aceba8", + "bg-success-fill-emphasis-active": "#c7f7c3", + "bg-info-canvas": "#0a0b0c", + "bg-info-surface": "#1d2226", + "bg-info-fill-muted-default": "#33607e", + "bg-info-fill-muted-hover": "#316f98", + "bg-info-fill-muted-active": "#2e82b7", + "bg-info-fill-emphasis-default": "#7dceff", + "bg-info-fill-emphasis-hover": "#a2e0ff", + "bg-info-fill-emphasis-active": "#c4eeff", + "bg-warning-canvas": "#0c0b0a", + "bg-warning-surface": "#27201b", + "bg-warning-fill-muted-default": "#7e4e25", + "bg-warning-fill-muted-hover": "#97571b", + "bg-warning-fill-muted-active": "#b46201", + "bg-warning-fill-emphasis-default": "#ffad63", + "bg-warning-fill-emphasis-hover": "#ffc791", + "bg-warning-fill-emphasis-active": "#ffddb9", + "bg-danger-canvas": "#0d0a0a", + "bg-danger-surface": "#2a1e1e", + "bg-danger-fill-muted-default": "#923a3c", + "bg-danger-fill-muted-hover": "#b03940", + "bg-danger-fill-muted-active": "#d43745", + "bg-danger-fill-emphasis-default": "#ffa3a1", + "bg-danger-fill-emphasis-hover": "#ffc1bf", + "bg-danger-fill-emphasis-active": "#ffd9d7", + "bg-floating": "#202223", + "bg-backdrop": "#738696", + "bg-input": "#0b0b0b", + "bg-disabled": "#525c65", + "border-neutral-subtle": "#525c65", + "border-neutral-medium": "#738696", + "border-neutral-strong": "#9fb4c6", + "border-accent-subtle": "#3c6266", + "border-accent-medium": "#439199", + "border-accent-strong": "#6ec0c9", + "border-success-subtle": "#3c673a", + "border-success-medium": "#439941", + "border-success-strong": "#6eca6a", + "border-info-subtle": "#33607e", + "border-info-medium": "#2d8bc5", + "border-info-strong": "#5abbfb", + "border-warning-subtle": "#7e4e25", + "border-warning-medium": "#c36800", + "border-warning-strong": "#f99539", + "border-danger-subtle": "#923a3c", + "border-danger-medium": "#e53748", + "border-danger-strong": "#ff8082", + "border-focus": "#2d8bc5", + "border-disabled": "#738696", + "text-neutral-subtle": "#d6e3ee", + "text-neutral-strong": "#f5fdff", + "text-neutral-subtle-on-emphasis": "#333639", + "text-neutral-strong-on-emphasis": "#030303", + "text-accent-subtle": "#bcebf1", + "text-accent-strong": "#e6ffff", + "text-accent-subtle-on-emphasis": "#2c3839", + "text-accent-strong-on-emphasis": "#030303", + "text-success-subtle": "#bcf2b8", + "text-success-strong": "#e6ffe3", + "text-success-subtle-on-emphasis": "#2c392b", + "text-success-strong-on-emphasis": "#030303", + "text-info-subtle": "#b7e8ff", + "text-info-strong": "#ecffff", + "text-info-subtle-on-emphasis": "#2a3741", + "text-info-strong-on-emphasis": "#030304", + "text-warning-subtle": "#ffd4aa", + "text-warning-strong": "#fff7e6", + "text-warning-subtle-on-emphasis": "#413226", + "text-warning-strong-on-emphasis": "#040303", + "text-danger-subtle": "#ffd0ce", + "text-danger-strong": "#fff5f4", + "text-danger-subtle-on-emphasis": "#492d2c", + "text-danger-strong-on-emphasis": "#040303", + "text-link": "#5abbfb", + "text-disabled": "#738696" +} diff --git a/src/ert/gui/styling/themes/light.json b/src/ert/gui/styling/themes/light.json new file mode 100644 index 00000000000..56633fb5592 --- /dev/null +++ b/src/ert/gui/styling/themes/light.json @@ -0,0 +1,100 @@ +{ + "bg-neutral-canvas": "#f5f5f5", + "bg-neutral-surface": "#ffffff", + "bg-neutral-fill-muted-default": "#e1e1e1", + "bg-neutral-fill-muted-hover": "#d4d4d4", + "bg-neutral-fill-muted-active": "#c4c4c4", + "bg-neutral-fill-emphasis-default": "#636363", + "bg-neutral-fill-emphasis-hover": "#525252", + "bg-neutral-fill-emphasis-active": "#4d4d4d", + "bg-accent-canvas": "#eaf8fa", + "bg-accent-surface": "#f6ffff", + "bg-accent-fill-muted-default": "#cfe7e9", + "bg-accent-fill-muted-hover": "#bbdbdf", + "bg-accent-fill-muted-active": "#a2cdd2", + "bg-accent-fill-emphasis-default": "#206f77", + "bg-accent-fill-emphasis-hover": "#205c62", + "bg-accent-fill-emphasis-active": "#20565c", + "bg-success-canvas": "#eafbe8", + "bg-success-surface": "#f6fff5", + "bg-success-fill-muted-default": "#cfeacc", + "bg-success-fill-muted-hover": "#bbe0b8", + "bg-success-fill-muted-active": "#a2d49e", + "bg-success-fill-emphasis-default": "#207720", + "bg-success-fill-emphasis-hover": "#20621f", + "bg-success-fill-emphasis-active": "#215c1f", + "bg-info-canvas": "#e7f8ff", + "bg-info-surface": "#f4ffff", + "bg-info-fill-muted-default": "#cae6fa", + "bg-info-fill-muted-hover": "#b5daf5", + "bg-info-fill-muted-active": "#99cbf0", + "bg-info-fill-emphasis-default": "#006aa0", + "bg-info-fill-emphasis-hover": "#085883", + "bg-info-fill-emphasis-active": "#0e5279", + "bg-warning-canvas": "#fff1e2", + "bg-warning-surface": "#fffcf0", + "bg-warning-fill-muted-default": "#fbdac1", + "bg-warning-fill-muted-hover": "#f6caaa", + "bg-warning-fill-muted-active": "#f0b689", + "bg-warning-fill-emphasis-default": "#9b4900", + "bg-warning-fill-emphasis-hover": "#813e00", + "bg-warning-fill-emphasis-active": "#773a00", + "bg-danger-canvas": "#ffecea", + "bg-danger-surface": "#fff9f8", + "bg-danger-fill-muted-default": "#ffd0ce", + "bg-danger-fill-muted-hover": "#ffbcba", + "bg-danger-fill-muted-active": "#ffa3a1", + "bg-danger-fill-emphasis-default": "#bc002a", + "bg-danger-fill-emphasis-hover": "#9a1026", + "bg-danger-fill-emphasis-active": "#8e1525", + "bg-floating": "#ffffff", + "bg-backdrop": "#aeaeae", + "bg-input": "#f5f5f5", + "bg-disabled": "#e1e1e1", + "border-neutral-subtle": "#d4d4d4", + "border-neutral-medium": "#aeaeae", + "border-neutral-strong": "#696969", + "border-accent-subtle": "#bbdbdf", + "border-accent-medium": "#7cbac1", + "border-accent-strong": "#21767e", + "border-success-subtle": "#bbe0b8", + "border-success-medium": "#7cc278", + "border-success-strong": "#227e22", + "border-info-subtle": "#b5daf5", + "border-info-medium": "#6fb6e9", + "border-info-strong": "#0070a9", + "border-warning-subtle": "#f6caaa", + "border-warning-medium": "#e89959", + "border-warning-strong": "#a34e00", + "border-danger-subtle": "#ffbcba", + "border-danger-medium": "#ff7a7d", + "border-danger-strong": "#c6002d", + "border-focus": "#6fb6e9", + "border-disabled": "#aeaeae", + "text-neutral-subtle": "#585858", + "text-neutral-strong": "#1d1d1d", + "text-neutral-subtle-on-emphasis": "#dedede", + "text-neutral-strong-on-emphasis": "#ffffff", + "text-accent-subtle": "#1f6369", + "text-accent-strong": "#141f20", + "text-accent-subtle-on-emphasis": "#cae4e7", + "text-accent-strong-on-emphasis": "#ffffff", + "text-success-subtle": "#20691f", + "text-success-strong": "#142114", + "text-success-subtle-on-emphasis": "#cae8c7", + "text-success-strong-on-emphasis": "#ffffff", + "text-info-subtle": "#015e8d", + "text-info-strong": "#121e27", + "text-info-subtle-on-emphasis": "#c5e3f9", + "text-info-strong-on-emphasis": "#ffffff", + "text-warning-subtle": "#8a4100", + "text-warning-strong": "#27190e", + "text-warning-subtle-on-emphasis": "#fad6bc", + "text-warning-strong-on-emphasis": "#ffffff", + "text-danger-subtle": "#a50827", + "text-danger-strong": "#2e1414", + "text-danger-subtle-on-emphasis": "#ffcbc9", + "text-danger-strong-on-emphasis": "#ffffff", + "text-link": "#0070a9", + "text-disabled": "#aeaeae" +} diff --git a/src/ert/gui/theming/__init__.py b/src/ert/gui/theming/__init__.py deleted file mode 100644 index dd497f7ed3b..00000000000 --- a/src/ert/gui/theming/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from __future__ import annotations - -from .manager import ColorSchemeManager -from .theme import ColorScheme - -__all__ = [ - "ColorScheme", - "ColorSchemeManager", -] diff --git a/tests/ert/unit_tests/gui/styling/__init__.py b/tests/ert/unit_tests/gui/styling/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/ert/unit_tests/gui/theming/test_qss_loading.py b/tests/ert/unit_tests/gui/styling/test_qss_loading.py similarity index 87% rename from tests/ert/unit_tests/gui/theming/test_qss_loading.py rename to tests/ert/unit_tests/gui/styling/test_qss_loading.py index 0fed214516b..c60dcf5318d 100644 --- a/tests/ert/unit_tests/gui/theming/test_qss_loading.py +++ b/tests/ert/unit_tests/gui/styling/test_qss_loading.py @@ -2,9 +2,9 @@ import pytest -from ert.gui.theming import ColorScheme -from ert.gui.theming import theme as theme_module -from ert.gui.theming.theme import load_qss +from ert.gui.styling import ColorScheme +from ert.gui.styling.theme_manager import theme as theme_module +from ert.gui.styling.theme_manager.theme import load_qss class _MissingResource: diff --git a/tests/ert/unit_tests/gui/theming/test_theme_detection.py b/tests/ert/unit_tests/gui/styling/test_theme_detection.py similarity index 94% rename from tests/ert/unit_tests/gui/theming/test_theme_detection.py rename to tests/ert/unit_tests/gui/styling/test_theme_detection.py index 0049f19f12b..32ffc57a516 100644 --- a/tests/ert/unit_tests/gui/theming/test_theme_detection.py +++ b/tests/ert/unit_tests/gui/styling/test_theme_detection.py @@ -4,9 +4,9 @@ from PyQt6.QtCore import Qt from PyQt6.QtGui import QColor, QGuiApplication, QPalette -from ert.gui.theming import ColorScheme -from ert.gui.theming import manager as manager_module -from ert.gui.theming.manager import ( +from ert.gui.styling import ColorScheme +from ert.gui.styling.theme_manager import manager as manager_module +from ert.gui.styling.theme_manager.manager import ( _DARK_BASE_VALUE_THRESHOLD, detect_system_color_scheme, ) diff --git a/tests/ert/unit_tests/gui/theming/test_theme_manager.py b/tests/ert/unit_tests/gui/styling/test_theme_manager.py similarity index 96% rename from tests/ert/unit_tests/gui/theming/test_theme_manager.py rename to tests/ert/unit_tests/gui/styling/test_theme_manager.py index 8fbc7bf4aa1..54a9328ad22 100644 --- a/tests/ert/unit_tests/gui/theming/test_theme_manager.py +++ b/tests/ert/unit_tests/gui/styling/test_theme_manager.py @@ -7,9 +7,9 @@ from PyQt6.QtGui import QGuiApplication from PyQt6.QtWidgets import QApplication -from ert.gui.theming import ColorScheme, ColorSchemeManager -from ert.gui.theming import manager as manager_module -from ert.gui.theming.theme import load_qss +from ert.gui.styling import ColorScheme, ColorSchemeManager +from ert.gui.styling.theme_manager import manager as manager_module +from ert.gui.styling.theme_manager.theme import load_qss @pytest.fixture(autouse=True)