struct ContentView: View {
   @State private var text: AttributedString = ""
   @State private var selection = AttributedTextSelection()

   var body: some View {
      VStack {
         Button(action: {
            let blueRanges = text.characters.ranges(of: "blue")
            let rangeSet = RangeSet(blueRanges)
            text[rangeSet].foregroundColor = .blue
         }, label: {
            Text("Set Blue")
         }).buttonStyle(.glass)
         
         TextEditor(text: $text, selection: $selection)
            .padding(10)
            .scrollContentBackground(.hidden)
            .background(.gray.opacity(0.2))
            .padding(20)
      }
   }
}