<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV><B>The current situation</B></DIV><DIV>A major goal of all the scoping standardizationstuff we do in the syntaxes is to make it really easy so make a single theme that can be used for any language.</DIV><DIV>Unfortunately, the reality is that languages are really complex and it takes work to make a theme look good in more than a few languages. And then more work to keep that theme looking good as the languages syntaxes are updated and improved.</DIV><DIV><BR></DIV><DIV>So, what do we have?</DIV><DIV>We have a handful of deep themes and a whole hugh mess of really good looking shallow themes.</DIV><DIV>the deep themes are constantly updated and work in most every language. The shallow themes are usually never updated and only work in a few languages and break on most edge cases like deeply nested embedded source.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><B>The future</B></DIV><DIV>Themes are going to be even more important in the next major release of TextMate. Themes will be more than just style, they will really start making inroads into real functionality.</DIV><DIV>We'll be able to color things like the current selection, the current line, merge conflicts, tab triggers, placeholders, etc... probably even more.</DIV><DIV><I>[see <A href="http://pastie.textmate.org/39665]">http://pastie.textmate.org/39665]</A></I></DIV><DIV><BR></DIV><DIV>This means that themes are going to become much more important to the way you use the application than ever before.</DIV><DIV>Which means that it's going to become that much more difficult to make a theme that really works for more than a few people and keep it updated.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><B>Tweaked Theme Versions instead of new Themes!</B></DIV><DIV>I think we need to move away from a Theme-as-style type of mentality and more to a Theme-as-functionality type of thinking.</DIV><DIV>I've put a lot of work into my Brilliance Black theme, but frankly a lot of people think it's really ugly.</DIV><DIV>Why is it so ugly? Mostly just my color choices. People all have different tastes.</DIV><DIV>Also, it's totally unusable on a dark CRT or LCD.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I've made a few versions of my Brilliance Black theme. Brilliance Dull, Brilliance White, Brilliance BBS, etc…</DIV><DIV>The advantage of doing a version of an existing deep theme is that you get a new style without having to do all the coding of the random edge cases. It looks pretty without losing any theme-based functionality.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><B>ShapeShifter</B></DIV><DIV>Have you ever user ShapeShifter? There are all these OS themes that you can use to change the look of the chrome on all the windows and dock and whatever else on your system. There's also a new tool you can use to make a tweaked version of an existing theme. You can apply core image tweaks to all of the images in the theme and save out a tweaked version of a theme.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I think TextMate should do the same thing.</DIV><DIV>Start with a good deep base theme like Twilight and tweak the colors.</DIV><DIV>Then save the recipe of how you tweaked that theme.</DIV><DIV>The advantage is that when Twilight is updated, all of your tweaked themes based off of it are also updated since they're just recipes instead of actually different themes.</DIV><DIV>And you can make really creative new versions of themes without having to do all the work of figuring out all the crazy edge cases and junk.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">thomas Aylott<SPAN class="Apple-converted-space"> </SPAN>— </SPAN><SPAN class="Apple-style-span" style="border-collapse: separate; -khtml-border-horizontal-spacing: 0px; -khtml-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><B style="font-weight: bold; "><SPAN class="Apple-style-span" style="font-weight: bold; "><SPAN class="Apple-style-span" style="font-weight: bold; "><SPAN class="Apple-style-span" style="font-weight: bold; "><SPAN class="Apple-style-span" style="font-weight: bold; ">subtleGradient </SPAN></SPAN></SPAN></SPAN></B></SPAN><SPAN class="Apple-style-span" style="border-collapse: separate; -khtml-border-horizontal-spacing: 0px; -khtml-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">— </SPAN><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">CrazyEgg — sixteenColors</SPAN></SPAN></SPAN></SPAN></SPAN></DIV></BODY></HTML>