diff --git a/src/textual/css/styles.py b/src/textual/css/styles.py index 4e48fa95b..c324426e9 100644 --- a/src/textual/css/styles.py +++ b/src/textual/css/styles.py @@ -235,6 +235,10 @@ class Styles: else: return None + def reset(self) -> None: + for rule_name in INTERNAL_RULE_NAMES: + setattr(self, rule_name, None) + def extract_rules( self, specificity: Specificity3 ) -> list[tuple[str, Specificity4, Any]]: diff --git a/src/textual/css/stylesheet.py b/src/textual/css/stylesheet.py index d441a2d12..81a4ff14b 100644 --- a/src/textual/css/stylesheet.py +++ b/src/textual/css/stylesheet.py @@ -114,7 +114,7 @@ class Stylesheet: _check_rule = self._check_rule - node.reset_styles() + node.styles.reset() # Get the default node CSS rules for key, default_specificity, value in node._default_rules: diff --git a/tests/test_styles.py b/tests/test_styles.py new file mode 100644 index 000000000..074ef06ad --- /dev/null +++ b/tests/test_styles.py @@ -0,0 +1,11 @@ +from rich.style import Style + +from textual.css.styles import Styles + + +def test_styles_reset(): + styles = Styles() + styles.text_style = "not bold" + assert styles.text_style == Style(bold=False) + styles.reset() + assert styles.text_style is Style.null()