         guard let string = self.string(for: obj) else { return nil }
         
         let attributedString = NSMutableAttributedString(string: string, attributes: attrs)
-        let attributes: [NSAttributedString.Key: Any] = [.foregroundColor: NSColor.tertiaryLabelColor]
+        let attributes = (attrs ?? [:]).merging([.foregroundColor: NSColor.tertiaryLabelColor]) { $1 }
         
         for (index, codeUnit) in string.utf16.enumerated() {
             guard

                self.invisibles.contains(invisible)
                else { continue }
            
            let range = NSRange(location: index, length: 1)
            attributedString.replaceCharacters(in: range, with: NSAttributedString(string: invisible.usedSymbol, attributes: attributes))
        }
        
        return attributedString

    
    // MARK: Properties
    
    private let invisibles: [Invisible] = [.newLine, .tab, .fullwidthSpace]
    
    
    
