テーマはどれも誰か別の人の好みです。Codeshotには30種類が入っていて、それぞれにライトとダークがあり、たいていはどれかが十分近いところまで来ます。とはいえ自分の名前が付いた画像で「十分近い」で妥協するのは、よく考えると妙な話です。

Macならもう妥協しなくてかまいません。設定 → テーマで自分のテーマが持てます。13色、選ぶそばから描き直されるプレビュー、そして誰かに渡せるファイル。

場所

Codeshotの設定を開き、テーマタブを選びます。左側にあるのが自分のテーマの一覧です。**+**で追加、で選択中のものを削除します。

右側には選択中のテーマで表示されたサンプルコード、その下に名前の入力欄、さらに下に色の一覧があります。このパネルはすべてライブです。色を変えれば、上のサンプルがすぐに描き直されます。

大事な操作が2つあります。名前の欄はテーマの名前を変えます。Use This Themeは、そのテーマを実際にアプリが描画に使うテーマにします。テーマを編集しても切り替わるわけではないので、ここを忘れる人が多いところです。

13の色

シンタックステーマは、同じ重さの13の決定ではありません。2つが雰囲気を決め、11が仕事をします。

対象
Background コードの背後にある紙
Plain Text ハイライトが受け持たないすべて。記号、括弧、演算子
Keywords letvarstructfuncreturn
Strings 引用符で囲まれたテキスト
Numbers 数値リテラル
Comments コメントとドキュメント
Declared Types そのスニペット自身で定義された型
Library Types フレームワーク由来の型。StringViewCGFloat
Functions 関数名とメソッド名
Members 何かに対してアクセスするプロパティやメンバー
Variables 変数名
Annotations プロパティラッパーとアノテーション。@Stateなど
Attributes 属性名。主にマークアップ言語で

13すべてを違う色で埋める必要はありません。読みやすいテーマはたいてい4色か5色を使い回します。型と関数で1色、キーワードとアノテーションでもう1色、といった具合です。13色すべてが別々ならそれはテーマではなく、果物の盛り合わせです。

うまくいく手順

まずBackgroundPlain Textから始め、この2つを決めてから他に手を付けます。ほかのすべての判断はこの2色を基準に下されるので、最後に決めると全部を決め直すことになります。

次にCommentsを、抑えた色で。コメントは唯一、後ろに引くべきトークンです。コードではなく文脈だからです。コメントがキーワードと同じ大きさで鳴っているテーマは、残りのパレットがどれだけ良くてもノイズに見えます。

続いてキーワード、文字列、数値。実際のスニペットで色の大半が乗るのはここです。型、関数、メンバーはその後で、最後のいくつかはすでに選んだ色を繰り返して構いません。

最後にまとめてではなく、一段階ごとにプレビューを見てください。このパネルは実際のコードでパレットを判断するためにあります。カラーピッカーは嘘をつきますが、コードはつきません。

色を選ぶ前に知っておきたいこと

コントラストは省略できません。 コードの画像はタイムラインで縮小され、昼間のスマホで見られ、投稿先のプラットフォームで再圧縮されます。原寸では上品に見える低コントラストの控えめなパレットも、相手に届く頃には読めなくなっています。プレビューで読みにくい色は、フィードでは消えています。

真っ黒な背景は避けましょう。 透過で書き出す場合や暗い背景に載せる場合は別です。明るい壁紙の上では#000000は穴のように見えます。出来のいいダークテーマが#1F1F24から#282C34あたりに収まっているのは、まさにこのためです。

コメントと通常テキストは差をつけましょう。 明度が近いと、文章とコードが1つの灰色の塊になり、スニペットの形が消えてしまいます。

エディタに合わせるのはいいけれど、外に出して確かめること。 Xcodeのテーマは机の上の大きなウィンドウ向けに調整されています。同じ色が誰かのスマホで幅1000ピクセルの画像になると話は別で、たいていは元よりも少し強いコントラストを求めます。

テーマを共有する

テーマ一覧の下にあるメニューが、テーマファイルの読み込みと書き出しです。

書き出すとテーマがファイルになり、読み込むと戻ります。自分のMacからもう1台のMacへ、バックアップへ、チームの誰かへ。テーマがそうやって移動できるからこそ、共通のパレットが1人以上で使えるものになります。

内蔵の30種類のほうがいい場面

自分でテーマを作る価値があるのは、画像を継続的に作っていて、それらをひと揃いに見せたいときです。連載の投稿、製品のドキュメント、発表用のスライドなど。

単発のスニペットならその必要はありません。アプリに入っている30種類はどれもきちんと設計されていて、どれもライトとダークがあり、2クリックで選べます。並べて見比べて、そのスニペットに合うものを取ってください。

テーマエディタは、それをすでにやったうえで答えがまだ「惜しい」だった場合のためにあります。