TextReplacements is a SwiftUI library that extends the Text
view with ways to customize any parts of its text.
TextReplacements works on all major Apple platforms and is designed to be easy to use.
TextReplacements can be installed with the Swift Package Manager:
https://github.com/danielsaidi/TextReplacements.git
You can become a sponsor to help me dedicate more time on my various open-source tools. Every contribution, no matter the size, makes a real difference in keeping these tools free and actively developed.
TextReplacements let you initialize a Text
view with a string and one or multiple text replacements.
The text view in the preview above is created like this:
Text(
"TextReplacements is a SwiftUI library that extends the Text view with ways to customize any parts of its text. The result is a Text with customized segments that can flow nicely over multiple lines.",
replacements: [
"TextReplacements": {
Text($0)
.font(.title)
.fontWeight(.black)
.fontDesign(.rounded)
.foregroundColor(.green)
},
"SwiftUI": {
Text($0)
.font(.headline)
.fontWeight(.black)
.fontDesign(.rounded)
.foregroundColor(.blue)
},
"Text": {
Text($0)
.fontWeight(.black)
.fontDesign(.rounded)
.foregroundColor(.black.opacity(0.6))
},
"customize": {
Text($0)
.italic()
.underline()
.font(.body)
.fontWeight(.heavy)
.fontDesign(.monospaced)
.foregroundColor(.purple)
},
"par": {
Text($0)
.font(.headline)
.fontWeight(.black)
.fontDesign(.rounded)
.foregroundColor(.red)
},
"can flow nicely over multiple lines": {
Text($0)
.foregroundColor(.orange)
}
]
)
You can perform any modification that result in new Text
views. This brings some limitations, like not being able to apply a background color, but lets you highlight certain parts of a text with very little effort.
This package will be documented once it gets more than 100 stars.
This package will get a demo application once it gets more than 100 stars.
Feel free to reach out if you have questions or want to contribute in any way:
- Website: danielsaidi.com
- E-mail: daniel.saidi@gmail.com
- Bluesky: @danielsaidi@bsky.social
- Mastodon: @danielsaidi@mastodon.social
TextReplacements is available under the MIT license. See the LICENSE file for more info.