diff options
Diffstat (limited to 'scripts/theme-studio/face_specs.py')
| -rw-r--r-- | scripts/theme-studio/face_specs.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/theme-studio/face_specs.py b/scripts/theme-studio/face_specs.py new file mode 100644 index 00000000..20894cd6 --- /dev/null +++ b/scripts/theme-studio/face_specs.py @@ -0,0 +1,37 @@ +"""Shared face-spec defaults for theme-studio generation.""" + +from __future__ import annotations + +from typing import Any + + +STYLE_DEFAULTS: dict[str, Any] = { + "fg": None, + "bg": None, + "bold": False, + "italic": False, + "underline": False, + "strike": False, + "box": None, +} + +PACKAGE_DEFAULTS: dict[str, Any] = { + **STYLE_DEFAULTS, + "inherit": None, + "height": 1, +} + + +def face_spec(spec: dict[str, Any] | None = None, *, package: bool = False) -> dict[str, Any]: + out = dict(PACKAGE_DEFAULTS if package else STYLE_DEFAULTS) + if spec: + out.update(spec) + return out + + +def ui_face_spec(spec: dict[str, Any] | None = None) -> dict[str, Any]: + return face_spec(spec, package=False) + + +def package_face_spec(spec: dict[str, Any] | None = None) -> dict[str, Any]: + return face_spec(spec, package=True) |
