├── copyright.txt ├── preferencesOverride.plist ├── README.markdown ├── scripts.js ├── userInterface.plist └── design.css /copyright.txt: -------------------------------------------------------------------------------- 1 | This style is a modified and stripped down version of 2 | the "Simplified" theme developed by "Cowboy" Ben Alman 3 | (http://benalman.com/). It is copyright to him. 4 | 5 | The color scheme has been adapted to use the scheme 6 | "Solarized" by Ethan Schoonover. 7 | (http://ethanschoonover.com/solarized) 8 | -------------------------------------------------------------------------------- /preferencesOverride.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Nickname Format 6 | 7 | Nickname Format Fixed Width 8 | 0 9 | Timestamp Format 10 | 11 | Indent Wrapped Messages 12 | 13 | Override Setting 14 | 15 | New Value 16 | 17 | 18 | Override Channel Font 19 | 20 | Font Name 21 | 22 | Font Size 23 | 0 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /README.markdown: -------------------------------------------------------------------------------- 1 | Textual-Solarized is a Textual IRC style for OSX. You can find Textual at http://www.codeux.com/textual/ or on the App Store. 2 | 3 | I have derived this from the Simplified Dark theme bundled with Textual and have applied some of the Solarized color scheme (http://ethanschoonover.com/solarized) to it. 4 | 5 | ![Screenshot](http://f.cl.ly/items/0X0m1E1Y37353p1w2h2R/Screen%20shot%202011-04-08%20at%209.15.28%20PM.png) 6 | 7 | Installation 8 | ============ 9 | Checkout this git repo into ~/Library/Application Support/Textual/Styles in a sub-folder and it will be an available option in the Textual preferences pane. 10 | 11 | cd ~/Library/Containers/com.codeux.irc.textual/Data/Library/Application\ Support/Textual\ IRC/Styles/ 12 | git clone https://github.com/excid3/textual-solarized.git 13 | -------------------------------------------------------------------------------- /scripts.js: -------------------------------------------------------------------------------- 1 | // Mechanism to pull in additional CSS or JavaScript files 2 | 3 | // Textual.include_js("jquery.min.js"); 4 | // Textual.include_css("more_theme.css"); 5 | 6 | 7 | // Function called when new message from IRC has been posted to display 8 | 9 | // Textual.newMessagePostedToDisplay = function(lineNumber) 10 | // { 11 | // var newLine = document.getElementById("line" + lineNumber); 12 | // } 13 | 14 | 15 | // Functions called for contextual menus used within WebView 16 | // DO NOT change without knowledge of what to do. 17 | // Safe to remove from source code if not needed. 18 | 19 | // Textual.on_url = function() { app.setUrl(event.target.innerHTML); } 20 | // Textual.on_addr = function() { app.setAddr(event.target.innerHTML); } 21 | // Textual.on_chname = function() { app.setChan(event.target.innerHTML); } 22 | // Textual.on_ct_nick: function() { app.setNick(event.target.innerHTML); } 23 | // Textual.on_nick = function() { app.setNick(event.target.parentNode.parentNode.getAttribute('nick')); } -------------------------------------------------------------------------------- /userInterface.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Underlying Window Color 6 | #000 7 | Server List 8 | 9 | Text Font Style 10 | Lucida Grande 11 | Text Font Size 12 | 11 13 | Background Color 14 | #1c1c1c 15 | Highlight Color 16 | #007f00 17 | New Private Message Color 18 | #699fcf 19 | Unread Color 20 | #699fcf 21 | Active Color 22 | #808080 23 | Inactive Color 24 | #ccc 25 | Active Color (Selected) 26 | #cfbc99 27 | Inactive Color (Selected) 28 | #eee 29 | Gradient 30 | 31 | Top Color 32 | #3f3e4c 33 | Bottom Color 34 | #201f27 35 | Top Line Color 36 | #3f3e4c 37 | Bottom Line Color 38 | #3f3e4c 39 | 40 | 41 | Member List 42 | 43 | Text Font Style 44 | Lucida Grande 45 | Text Font Size 46 | 11 47 | Background Color 48 | #1c1c1c 49 | Text Color 50 | #808080 51 | Op Text Color 52 | #dedede 53 | Text Color (Selected) 54 | #cfbc99 55 | Gradient 56 | 57 | Top Color 58 | #3f3e4c 59 | Bottom Color 60 | #201f27 61 | Top Line Color 62 | #3f3e4c 63 | Bottom Line Color 64 | #3f3e4c 65 | 66 | 67 | Input Box 68 | 69 | Text Font Style 70 | 71 | Text Font Size 72 | 0 73 | Background Color 74 | #1c1c1c 75 | Text Color 76 | #e4e4e4 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /design.css: -------------------------------------------------------------------------------- 1 | /* Basic Body Structure */ 2 | 3 | * { 4 | margin: 0; 5 | padding: 0; 6 | font-size: 100%; 7 | word-wrap: break-word; 8 | } 9 | 10 | body { 11 | color: #666; 12 | height: 100%; 13 | z-index: 100; 14 | font-size: 12px; 15 | overflow: hidden; 16 | overflow-y: visible; 17 | background-color: #1c1c1c; 18 | font-family: "Lucida Grande"; 19 | } 20 | 21 | body div#body_home { 22 | left: 0; 23 | right: 0; 24 | bottom: 0; 25 | z-index: 100; 26 | max-height: 97.5%; 27 | position: absolute; 28 | } 29 | 30 | body div#body_home div { 31 | margin-top: -1px; 32 | } 33 | 34 | body div#body_home p { 35 | clear: both; 36 | position: relative; 37 | } 38 | 39 | /* Time */ 40 | 41 | body .time { 42 | color: #666; 43 | text-indent: 0; 44 | word-wrap: normal; 45 | white-space: nowrap 46 | display: inline-block; 47 | } 48 | 49 | /* Links */ 50 | 51 | a { 52 | color: #0087ff; 53 | border-color: #0087ff; 54 | text-decoration: none; 55 | border-bottom: dotted 1px; 56 | } 57 | 58 | a:hover { 59 | color: #00afaf; 60 | border-color: #00afaf; 61 | } 62 | 63 | /* Topic Bar */ 64 | 65 | #topic_bar { 66 | top: 0; 67 | left: 0; 68 | right: 0; 69 | color: #93a1a1; 70 | z-index: 400; 71 | opacity: 0.95; 72 | font-size: 9px; 73 | position: fixed; 74 | background: #262626; 75 | padding: 2px 0.5em 3px; 76 | border-bottom: 1px solid #1c1c1c; 77 | -webkit-box-shadow: 0 1px 5px #1c1c1c; 78 | } 79 | 80 | #topic_bar a { 81 | color: #0087ff; 82 | border-color: #0087ff; 83 | } 84 | 85 | #topic_bar a:hover { 86 | color: #00afaf; 87 | border-color: #00afaf; 88 | } 89 | 90 | /* Images */ 91 | 92 | body a img { 93 | border: 0; 94 | } 95 | 96 | body img { 97 | display: block; 98 | max-width: 95%; 99 | padding-top: 5px; 100 | padding-left: 8px; 101 | padding-bottom: 5px; 102 | } 103 | 104 | /* Remember Line */ 105 | 106 | div[id=mark] { 107 | position: relative; 108 | z-index: 295; 109 | margin-top: -1px; 110 | border-bottom: 1px dashed; 111 | border-color: #444; 112 | -webkit-transition: 0.2s linear; 113 | } 114 | 115 | /* NOTICE/CTCP/WALLOPS */ 116 | 117 | body div[type=notice], 118 | body div[type=ctcp], 119 | body div[type=wallops] { 120 | color: #f00; 121 | z-index: 191; 122 | background: #400; 123 | position: relative; 124 | padding: 2px 5px 2px 5px; 125 | border-top: 1px solid #811; 126 | border-bottom: 1px solid #811; 127 | } 128 | 129 | body div[type=notice] .sender { 130 | color: #f00; 131 | font-weight: 700; 132 | } 133 | 134 | /* PRIVMSG */ 135 | 136 | body div[type=privmsg][highlight=false] { 137 | padding: 3px 5px 3px 5px; 138 | } 139 | 140 | body div[type=privmsg][highlight=true], 141 | body div[type=action][highlight=true] { 142 | font-weight: normal; 143 | padding: 2px 5px 2px 5px; 144 | border-top: 1px solid #988C00; 145 | border-bottom: 1px solid #988C00; 146 | background-color: #362C00 !important; 147 | } 148 | 149 | body div[type=privmsg] .message { 150 | color: #aaa; 151 | } 152 | 153 | body div[type=privmsg] p[type=myself] .message { 154 | color: #e4e4e4; 155 | } 156 | 157 | body div[type=privmsg] .sender { 158 | font-weight: 700; 159 | } 160 | 161 | /* ACTION */ 162 | 163 | body div[type=action] { 164 | padding: 3px 5px 3px 5px; 165 | } 166 | 167 | body div[type=action] .message { 168 | color: #aaa; 169 | } 170 | 171 | body div[type=action] .sender { 172 | font-weight: 700; 173 | } 174 | 175 | body div[type=action] p[type=myself] .sender, 176 | body div[type=action] p[type=myself] .message { 177 | color: #B52CF6; 178 | } 179 | 180 | body div[type=action] .sender:before { 181 | content: "\2022"; 182 | margin-right: 0.4em; 183 | } 184 | 185 | body div[type=action] .sender:after { 186 | content: ""; 187 | } 188 | 189 | /* REPLY/SYSTEM/ERROR/DEBUG/INVITE */ 190 | 191 | body div[type=invite], 192 | body div[type=reply], 193 | body div[type=system], 194 | body div[type=error], 195 | body div[type=error_reply], 196 | body div[type=debug_send], 197 | body div[type=debug_receive] { 198 | color: #777; 199 | z-index: 190; 200 | background: #222; 201 | position: relative; 202 | padding: 2px 5px 2px 5px; 203 | border-top: 1px solid #444; 204 | border-bottom: 1px solid #444; 205 | } 206 | 207 | /* GENERAL EVENT */ 208 | 209 | body div[type=join], 210 | body div[type=part], 211 | body div[type=kick], 212 | body div[type=quit], 213 | body div[type=kill], 214 | body div[type=nick], 215 | body div[type=mode], 216 | body div[type=website], 217 | body div[type=topic] { 218 | padding: 3px 5px 3px 5px; 219 | color: #666; 220 | } 221 | 222 | body div[type=join] .message:before { 223 | content: "→"; 224 | color: #0c0; 225 | margin-right: 3px; 226 | } 227 | 228 | body div[type=kick] .message:before, 229 | body div[type=part] .message:before, 230 | body div[type=quit] .message:before { 231 | content: "←"; 232 | color: #e00; 233 | margin-right: 3px; 234 | } 235 | 236 | body div[type=nick] .message:before { 237 | content:"•"; 238 | color: #0c0; 239 | margin-right: 3px; 240 | } 241 | 242 | /* Nickname Colors */ 243 | 244 | body .inline_nickname { 245 | font-weight: 700; 246 | } 247 | 248 | body div[type=privmsg] .sender[type=myself], 249 | body div[type=action] .sender[type=myself] { 250 | color: #B8DFFF; 251 | } 252 | 253 | body .sender[type=normal][colornumber='0'], 254 | body .inline_nickname[colornumber='0'] { 255 | color: red; 256 | } 257 | 258 | body .sender[type=normal][colornumber='1'], 259 | body .inline_nickname[colornumber='1'] { 260 | color: #636aff; 261 | } 262 | 263 | body .sender[type=normal][colornumber='2'], 264 | body .inline_nickname[colornumber='2'] { 265 | color: #00BA00; 266 | } 267 | 268 | body .sender[type=normal][colornumber='3'], 269 | body .inline_nickname[colornumber='3'] { 270 | color: #C083F2; 271 | } 272 | 273 | body .sender[type=normal][colornumber='4'], 274 | body .inline_nickname[colornumber='4'] { 275 | color: #4DEDF0; 276 | } 277 | 278 | body .sender[type=normal][colornumber='5'], 279 | body .inline_nickname[colornumber='5'] { 280 | color: #E422B2; 281 | } 282 | 283 | body .sender[type=normal][colornumber='6'], 284 | body .inline_nickname[colornumber='6'] { 285 | color: #EAE87E; 286 | } 287 | 288 | body .sender[type=normal][colornumber='7'], 289 | body .inline_nickname[colornumber='7'] { 290 | color: #B8DFFF; 291 | } 292 | 293 | body .sender[type=normal][colornumber='8'], 294 | body .inline_nickname[colornumber='8'] { 295 | color: #75A1FB; 296 | } 297 | 298 | body .sender[type=normal][colornumber='9'], 299 | body .inline_nickname[colornumber='9'] { 300 | color: #97C74B; 301 | } 302 | 303 | body .sender[type=normal][colornumber='10'], 304 | body .inline_nickname[colornumber='10'] { 305 | color: #A5EAC4; 306 | } 307 | 308 | body .sender[type=normal][colornumber='11'], 309 | body .inline_nickname[colornumber='11'] { 310 | color: #FFA6A0; 311 | } 312 | 313 | body .sender[type=normal][colornumber='12'], 314 | body .inline_nickname[colornumber='12'] { 315 | color: #8E67E7; 316 | } 317 | 318 | body .sender[type=normal][colornumber='13'], 319 | body .inline_nickname[colornumber='13'] { 320 | color: #FFBB58; 321 | } 322 | 323 | body .sender[type=normal][colornumber='14'], 324 | body .inline_nickname[colornumber='14'] { 325 | color: #EDD7AD; 326 | } 327 | 328 | body .sender[type=normal][colornumber='15'], 329 | body .inline_nickname[colornumber='15'] { 330 | color: #FF1676; 331 | } 332 | 333 | body .sender[type=normal][colornumber='16'], 334 | body .inline_nickname[colornumber='16'] { 335 | color: red; 336 | } 337 | 338 | body .sender[type=normal][colornumber='17'], 339 | body .inline_nickname[colornumber='17'] { 340 | color: #636aff; 341 | } 342 | 343 | body .sender[type=normal][colornumber='18'], 344 | body .inline_nickname[colornumber='18'] { 345 | color: #00BA00; 346 | } 347 | 348 | body .sender[type=normal][colornumber='19'], 349 | body .inline_nickname[colornumber='19'] { 350 | color: #C083F2; 351 | } 352 | 353 | body .sender[type=normal][colornumber='20'], 354 | body .inline_nickname[colornumber='20'] { 355 | color: #4DEDF0; 356 | } 357 | 358 | body .sender[type=normal][colornumber='21'], 359 | body .inline_nickname[colornumber='21'] { 360 | color: #E422B2; 361 | } 362 | 363 | body .sender[type=normal][colornumber='22'], 364 | body .inline_nickname[colornumber='22'] { 365 | color: #EAE87E; 366 | } 367 | 368 | body .sender[type=normal][colornumber='23'], 369 | body .inline_nickname[colornumber='23'] { 370 | color: #B8DFFF; 371 | } 372 | 373 | body .sender[type=normal][colornumber='24'], 374 | body .inline_nickname[colornumber='24'] { 375 | color: #75A1FB; 376 | } 377 | 378 | body .sender[type=normal][colornumber='25'], 379 | body .inline_nickname[colornumber='25'] { 380 | color: #97C74B; 381 | } 382 | 383 | body .sender[type=normal][colornumber='26'], 384 | body .inline_nickname[colornumber='26'] { 385 | color: #A5EAC4; 386 | } 387 | 388 | body .sender[type=normal][colornumber='27'], 389 | body .inline_nickname[colornumber='27'] { 390 | color: #FFA6A0; 391 | } 392 | 393 | body .sender[type=normal][colornumber='28'], 394 | body .inline_nickname[colornumber='28'] { 395 | color: #8E67E7; 396 | } 397 | 398 | body .sender[type=normal][colornumber='29'], 399 | body .inline_nickname[colornumber='29'] { 400 | color: #FFBB58; 401 | } 402 | 403 | body .sender[type=normal][colornumber='30'], 404 | body .inline_nickname[colornumber='30'] { 405 | color: #EDD7AD; 406 | } 407 | 408 | /* mIRC Color Codes */ 409 | 410 | /* DEVELOPERS DO NOT MODIFY ANY OF THE BELOW MENTIONED CSS ELEMENTS 411 | THESE ELEMENTS MUST BE PRESERVED TO MATCH STATIC DEFENITIONS IN THE 412 | TEXTUAL SOURCE CODE. — DO NOT MODIFY OR DELETE! */ 413 | 414 | .effect[color-number='0'] { color: #ffffff; } 415 | .effect[color-number='1'] { color: #000000; } 416 | .effect[color-number='2'] { color: #000088; } 417 | .effect[color-number='3'] { color: #008800; } 418 | .effect[color-number='4'] { color: #ff0000; } 419 | .effect[color-number='5'] { color: #880000; } 420 | .effect[color-number='6'] { color: #880088; } 421 | .effect[color-number='7'] { color: #ff8800; } 422 | .effect[color-number='8'] { color: #ffff00; } 423 | .effect[color-number='9'] { color: #00ff00; } 424 | .effect[color-number='10'] { color: #008888; } 425 | .effect[color-number='11'] { color: #00ffff; } 426 | .effect[color-number='12'] { color: #0000ff; } 427 | .effect[color-number='13'] { color: #ff00ff; } 428 | .effect[color-number='14'] { color: #888888; } 429 | .effect[color-number='15'] { color: #cccccc; } 430 | 431 | .effect[bgcolor-number='0'] { background-color: #ffffff; } 432 | .effect[bgcolor-number='1'] { background-color: #000000; } 433 | .effect[bgcolor-number='2'] { background-color: #000088; } 434 | .effect[bgcolor-number='3'] { background-color: #008800; } 435 | .effect[bgcolor-number='4'] { background-color: #ff0000; } 436 | .effect[bgcolor-number='5'] { background-color: #880000; } 437 | .effect[bgcolor-number='6'] { background-color: #880088; } 438 | .effect[bgcolor-number='7'] { background-color: #ff8800; } 439 | .effect[bgcolor-number='8'] { background-color: #ffff00; } 440 | .effect[bgcolor-number='9'] { background-color: #00ff00; } 441 | .effect[bgcolor-number='10'] { background-color: #008888; } 442 | .effect[bgcolor-number='11'] { background-color: #00ffff; } 443 | .effect[bgcolor-number='12'] { background-color: #0000ff; } 444 | .effect[bgcolor-number='13'] { background-color: #ff00ff; } 445 | .effect[bgcolor-number='14'] { background-color: #888888; } 446 | .effect[bgcolor-number='15'] { background-color: #cccccc; } 447 | --------------------------------------------------------------------------------