テーマはどれも誰か別の人の好みです。Codeshotには30種類が入っていて、それぞれにライトとダークがあり、たいていはどれかが十分近いところまで来ます。とはいえ自分の名前が付いた画像で「十分近い」で妥協するのは、よく考えると妙な話です。
Macならもう妥協しなくてかまいません。設定 → テーマで自分のテーマが持てます。13色、選ぶそばから描き直されるプレビュー、そして誰かに渡せるファイル。
場所
Codeshotの設定を開き、テーマタブを選びます。左側にあるのが自分のテーマの一覧です。**+**で追加、−で選択中のものを削除します。
右側には選択中のテーマで表示されたサンプルコード、その下に名前の入力欄、さらに下に色の一覧があります。このパネルはすべてライブです。色を変えれば、上のサンプルがすぐに描き直されます。
大事な操作が2つあります。名前の欄はテーマの名前を変えます。Use This Themeは、そのテーマを実際にアプリが描画に使うテーマにします。テーマを編集しても切り替わるわけではないので、ここを忘れる人が多いところです。
13の色
シンタックステーマは、同じ重さの13の決定ではありません。2つが雰囲気を決め、11が仕事をします。
| 色 | 対象 |
|---|---|
| Background | コードの背後にある紙 |
| Plain Text | ハイライトが受け持たないすべて。記号、括弧、演算子 |
| Keywords | let、var、struct、func、return |
| Strings | 引用符で囲まれたテキスト |
| Numbers | 数値リテラル |
| Comments | コメントとドキュメント |
| Declared Types | そのスニペット自身で定義された型 |
| Library Types | フレームワーク由来の型。String、View、CGFloat |
| Functions | 関数名とメソッド名 |
| Members | 何かに対してアクセスするプロパティやメンバー |
| Variables | 変数名 |
| Annotations | プロパティラッパーとアノテーション。@Stateなど |
| Attributes | 属性名。主にマークアップ言語で |
13すべてを違う色で埋める必要はありません。読みやすいテーマはたいてい4色か5色を使い回します。型と関数で1色、キーワードとアノテーションでもう1色、といった具合です。13色すべてが別々ならそれはテーマではなく、果物の盛り合わせです。
うまくいく手順
まずBackgroundとPlain Textから始め、この2つを決めてから他に手を付けます。ほかのすべての判断はこの2色を基準に下されるので、最後に決めると全部を決め直すことになります。
次にCommentsを、抑えた色で。コメントは唯一、後ろに引くべきトークンです。コードではなく文脈だからです。コメントがキーワードと同じ大きさで鳴っているテーマは、残りのパレットがどれだけ良くてもノイズに見えます。
続いてキーワード、文字列、数値。実際のスニペットで色の大半が乗るのはここです。型、関数、メンバーはその後で、最後のいくつかはすでに選んだ色を繰り返して構いません。
最後にまとめてではなく、一段階ごとにプレビューを見てください。このパネルは実際のコードでパレットを判断するためにあります。カラーピッカーは嘘をつきますが、コードはつきません。
色を選ぶ前に知っておきたいこと
コントラストは省略できません。 コードの画像はタイムラインで縮小され、昼間のスマホで見られ、投稿先のプラットフォームで再圧縮されます。原寸では上品に見える低コントラストの控えめなパレットも、相手に届く頃には読めなくなっています。プレビューで読みにくい色は、フィードでは消えています。
真っ黒な背景は避けましょう。 透過で書き出す場合や暗い背景に載せる場合は別です。明るい壁紙の上では#000000は穴のように見えます。出来のいいダークテーマが#1F1F24から#282C34あたりに収まっているのは、まさにこのためです。
コメントと通常テキストは差をつけましょう。 明度が近いと、文章とコードが1つの灰色の塊になり、スニペットの形が消えてしまいます。
エディタに合わせるのはいいけれど、外に出して確かめること。 Xcodeのテーマは机の上の大きなウィンドウ向けに調整されています。同じ色が誰かのスマホで幅1000ピクセルの画像になると話は別で、たいていは元よりも少し強いコントラストを求めます。
テーマを共有する
テーマ一覧の下にある⋯メニューが、テーマファイルの読み込みと書き出しです。
書き出すとテーマがファイルになり、読み込むと戻ります。自分のMacからもう1台のMacへ、バックアップへ、チームの誰かへ。テーマがそうやって移動できるからこそ、共通のパレットが1人以上で使えるものになります。
内蔵の30種類のほうがいい場面
自分でテーマを作る価値があるのは、画像を継続的に作っていて、それらをひと揃いに見せたいときです。連載の投稿、製品のドキュメント、発表用のスライドなど。
単発のスニペットならその必要はありません。アプリに入っている30種類はどれもきちんと設計されていて、どれもライトとダークがあり、2クリックで選べます。並べて見比べて、そのスニペットに合うものを取ってください。
テーマエディタは、それをすでにやったうえで答えがまだ「惜しい」だった場合のためにあります。