     message>> write ;
 
 M: join write-irc
-    "* " green write-color
+    "* " dark-green write-color
     prefix>> parse-name write
-    " has entered the channel." green write-color ;
+    " has entered the channel." dark-green write-color ;
 
 M: part write-irc
-    "* " red write-color
-    [ prefix>> parse-name write ] keep
-    " has left the channel" red write-color
-    trailing>> dot-or-parens red write-color ;
+    "* " dark-red write-color
+    [ prefix>> parse-name write ] keep
+    " has left the channel" dark-red write-color
+    trailing>> dot-or-parens dark-red write-color ;
 
 M: quit write-irc
-    "* " red write-color
-    [ prefix>> parse-name write ] keep
-    " has left IRC" red write-color
-    trailing>> dot-or-parens red write-color ;
+    "* " dark-red write-color
+    [ prefix>> parse-name write ] keep
+    " has left IRC" dark-red write-color
+    trailing>> dot-or-parens dark-red write-color ;
 
 : full-mode ( message -- mode )
     parameters>> rest " " sjoin ;

    line>> blue write-color ;

M: irc-end write-irc
    drop "* You have left IRC" red write-color ;

M: irc-disconnected write-irc
    drop "* Disconnected" red write-color ;

M: irc-connected write-irc
    drop "* Connected" green write-color ;

M: irc-listener-end write-irc
    drop ;

: update-participants ( tab -- )
    [ userlist>> [ clear-gadget ] keep ]
    [ listener>> participants>> ] bi
    [ +operator+ dark-green filter-participants ]
    [ +voice+ blue filter-participants ]
    [ +normal+ black filter-participants ] tri drop ;

