Skip to content

Commit 5186802

Browse files
committed
document set_class
1 parent c0cda89 commit 5186802

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

docs/guide/CSS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ Unlike the `id` attribute, a widget's classes can be changed after the widget wa
297297
- [remove_class()][textual.dom.DOMNode.remove_class] Removes class name(s) from a widget.
298298
- [toggle_class()][textual.dom.DOMNode.toggle_class] Removes a class name if it is present, or adds the name if it's not already present.
299299
- [has_class()][textual.dom.DOMNode.has_class] Checks if one or more classes are set on a widget.
300+
- [set_class()][textual.css.query.DOMQuery.set_class] Sets or removes a class dependant on a boolean.
300301
- [classes][textual.dom.DOMNode.classes] Is a frozen set of the class(es) set on a widget.
301302

302303

src/textual/dom.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,6 +1665,17 @@ def has_class(self, *class_names: str) -> bool:
16651665
def set_class(self, add: bool, *class_names: str, update: bool = True) -> Self:
16661666
"""Add or remove class(es) based on a condition.
16671667
1668+
This can condense the four lines required to implement the equivalent branch into a single line.
1669+
1670+
Example:
1671+
```python
1672+
#if foo:
1673+
# self.add_class("-foo")
1674+
#else:
1675+
# self.remove_class("-foo")
1676+
self.set_class(foo, "-foo")
1677+
```
1678+
16681679
Args:
16691680
add: Add the classes if True, otherwise remove them.
16701681
update: Also update styles.

0 commit comments

Comments
 (0)