Writing Style
The conventions every explanation on this site follows. Extracted from edits made to drafted text, so each rule is a correction that was actually needed rather than a preference stated in advance.
Punctuation
Do not use em-dashes for asides. Use parentheses for a gloss or an example, a comma for a trailing clause, or a full stop to start a new sentence.
Not: Colors are generated in OKLCH — lightness, chroma, hue — rather than RGB.
But: Colors are generated in OKLCH (lightness, chroma, hue) rather than RGB.
Not: …not absolute saturations — which is why increasing Most never pushes a color out of gamut.
But: …not absolute saturations, which is why increasing Most never pushes a color out of gamut.
Not: …at a particular lightness — yellows near the top, blues much lower — and the generator finds that lightness.
But: …at a particular lightness: yellows near the top, blues much lower. The generator finds that lightness.
A colon introduces an example or a list. When an aside would make a sentence run long, end the sentence and start another.
A bold label ends with a colon, not a period: **Depth:**, not **Depth.**. In Japanese the colon is full width: 「深度:」.
Use the serial comma: “depth ordering, sampling, and color selection”.
Sentences
Keep the relative pronoun. Write “colors that sRGB cannot display”, not “colors sRGB cannot display”.
Lead with the action rather than the condition around it.
Not: In HSL, holding saturation and lightness fixed while sweeping hue produces colors of wildly different brightness.
But: In HSL, sweeping the hue while keeping saturation and lightness fixed can produce colors with very different brightness.
Hedge a claim that only holds sometimes. “Can produce” where the outcome depends on which hues are involved; “produces” only where it always does.
A labeled item in a list carries one fact. A second sentence adding a secondary fact gets cut, not appended.
Cut: Sampling is spaced by arc length rather than by curve parameter, so density stays uniform where control points bunch up.
Kept: Sample count (number of vertices) is derived from measured arc length, not from how many control points the path was authored with.
Words
American spelling throughout: color, toward, behavior.
Plain verbs over dramatic ones. Cut intensifiers that add heat but no information.
Not: wildly different · yellow leaps out · that is where yellow can be vivid at all
But: very different · yellow pops · that’s the only place yellow can be vivid
Name the noun instead of using an adjective as one: “at that hue’s most saturated point”, not “at that hue’s most saturated”.
Contractions are fine. “That’s the only place” reads better than “that is where”.
Name the standard term instead of deriving it. If a phenomenon has an accepted name, use it and stop; do not reconstruct the mechanism from first principles.
Not: Two surfaces at the same depth have no defined winner, and the depth test picks one per fragment. The step and the rise remove that question before it can be asked.
But: Z slightly elevates along the stroke to avoid z-fighting.
Drop the article on a noun that names the topic: “Strokes are 2D”, “Sample count is derived”, not “The strokes are 2D”, “The sample count is derived”.
Gloss a term with a parenthetical on first use, in English as in Japanese: “sample count (number of vertices)”.
Call a set of colors chosen to relate a “scheme”, not a “theme”. “Scheme” is the standard term (monochromatic, analogous); “theme” reads as a visual style.
Scope
Describe features of the library. Do not describe the arbitrary decisions of a demo: the shape of its test path, its taper constants, how its colors happen to be picked, or plumbing the reader does not act on. A demo decision is worth a sentence only when the demo would mislead without it.
Cut: Each path runs straight for its first third, then wiggles. The amplitude is held at zero and eased in with a smoothstep…
Cut: …the background from the light end, the strokes from the dark end, grouped by hue so two strokes never come back as near-identical shades.
Kept: The sample count is derived from measured arc length, not from how many control points the path was authored with.
The kept example survives because it states what the library does with any path. The cut examples describe one demo’s inputs, which the reader can neither reuse nor act on.
Endings
Stop when the fact is stated. Do not append a clause explaining why the fact matters, or restating it in other words.
Not: OKLCH is built so a fixed lightness reads as a fixed lightness across every hue, which is what lets a column of the grid hold together as a column.
But: OKLCH is designed so that a fixed lightness reads as a consistent lightness across hues.
That example also shows the rhetorical repetition to avoid — “a fixed lightness reads as a fixed lightness”, “hold together as a column”. Repeating a word for effect reads as a flourish. Vary the second use, or cut the clause.
A brief reason for a foundational choice is content, not padding: “OKLCH is one of the most perceptually accurate and computationally performant color models.” The rule above targets restating why an already-stated fact matters, not justifying a design decision.
Openings
Open a page with a plain description of what the thing is. Not an aphorism, not a hook, not a first-person musing.
Not: Before deciding what a mark looks like, decide what colors exist.
But: A reusable palette class that distributes colors using the OKLCH model
Monologues
The monologue at the top of a page is the working-log voice, not the documentation voice. It may use the first person and a reflective tone (the exception to the “no first-person musing” rule, which governs the prose body). Each monologue carries a Japanese counterpart in a nested <div class="jp">, following the Geom project’s style.
The opening monologue says what we do on the page, in the first person: it opens with “On this page, we …” and a verb that names the action (build, explore, study, wire, replay). Not a bare description of the thing, and not its inputs or mechanics, which belong in the prose below.
Not: A stroke class that turns a path and a width into drawable geometry
But: On this page, we build the stroke class that turns a path and a width into drawable geometry, and the renderers that shade it.
The Japanese follows the Geom monologue register: written from the meaning, reflective, and free to break into short sentences (けれど, そこで) rather than tracking the English clause for clause.
Intros
An intro may motivate the approach by contrast, naming the naive option and what the library does instead (“Rather than relying on randomly chosen colors, we develop several strategies…”). Name the sibling project (Geom) when the logic carries over from it.
Headings
A short noun phrase naming the topic. Not a question, not a clause, not an evocative phrase.
Name the concept the reader recognizes, not the internal mechanism: “Representative colors”, not “Representative lightness”.
Not: How the palette is built · Where the lightness steps land
But: Color Selection · Distribution of the steps
Japanese
Every English paragraph is followed by its Japanese counterpart in a <div class="jp">. The Japanese mirrors the English structure, parentheses included.
Use full-width parentheses () for asides, with the plain form inside: 見かけの明るさが大きく変わってしまいます(黄色は飛び出し、青は沈む)。
Write the Japanese from the meaning, not as a gloss of the English sentence. When the English rests on a copula or a noun phrase, pick the verb that says what happens.
Not: すべての色が基準の色相です。最初の色はその色相が最も鮮やかになる点に置かれ、残りはその固定された最初の色が許すかぎり均等に明度の範囲を分割します。彩度はそれぞれの明度で使える最大値です。
But: すべての色は基準の色相に揃えられます。最初の色は、その色相が最も鮮やかになる点に配置され、残りの色は、その最初の色が許す範囲で明度の幅を均等に分割して配置します。彩度は、各明度で取りうる最大値です。
That example carries several rules. Put a 読点 after a topic phrase (「最初の色は、」) when the sentence continues at length. Drop modifiers the English needed but the Japanese context already carries (「その固定された最初の色」 becomes 「その最初の色」). Choose the verb that names the operation rather than the generic verb the English word suggests (置く becomes 配置する, 使える becomes 取りうる), and complete the action the English leaves implied (分割します becomes 分割して配置します). Prefer 各明度 over それぞれの明度.
Prefer the active or potential form over the passive when the reader acts. The passive is fine, and often natural, when describing how the generated result is arranged.
Not: スウォッチをクリックすると16進数の値がコピーされます。
But: スウォッチをクリックすると16進数(hex)をコピーできます。
Gloss a technical term on first use: 16進数(hex).
For a color scheme, the Japanese is 配色, not テーマ.
Keep proper names and UI labels in English inside the Japanese text, not katakana: **Monochrome:**, **Vivid & dark:**, not **モノクローム:**, **ビビッド&ダーク:**. (This applies to the names; a general concept like 配色 stays Japanese.)
No spaces around inline markup in Japanese text: Chromaの<strong>Most</strong>と<strong>Least</strong>は — not Chromaの <strong>Most</strong> と.