feat: More styles, renames some items.

This commit is contained in:
2024-12-04 16:15:21 -05:00
parent 10119c3e51
commit 2a9b350b26
10 changed files with 198 additions and 30 deletions

View File

@@ -0,0 +1,32 @@
import Rainbow
public extension TextNode {
@inlinable
func textStyle(_ styles: Style...) -> some TextNode {
modifier(StyleModifier(styles: styles))
}
@inlinable
func textStyle(_ styles: [Style]) -> some TextNode {
modifier(StyleModifier(styles: styles))
}
}
@usableFromInline
struct StyleModifier<Content: TextNode>: NodeModifier {
@usableFromInline
let styles: [Style]
@usableFromInline
init(styles: [Style]) {
self.styles = styles
}
@usableFromInline
func render(content: Content) -> some TextNode {
styles.reduce(content.render()) {
$0.applyingStyle($1)
}
}
}