@whykusanagi/corrupted-theme 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +157 -0
- package/README.md +6 -0
- package/docs/CHARACTER_LEVEL_CORRUPTION.md +264 -0
- package/docs/CORRUPTION_PHRASES.md +529 -0
- package/docs/ROADMAP.md +266 -0
- package/docs/STYLE_GUIDE.md +605 -0
- package/docs/brand/BRAND_OVERVIEW.md +413 -0
- package/docs/brand/COLOR_SYSTEM.md +583 -0
- package/docs/brand/DESIGN_TOKENS.md +1009 -0
- package/docs/brand/TRANSLATION_FAILURE_AESTHETIC.md +525 -0
- package/docs/brand/TYPOGRAPHY.md +624 -0
- package/docs/components/ANIMATION_GUIDELINES.md +901 -0
- package/docs/components/COMPONENT_LIBRARY.md +1061 -0
- package/docs/components/GLASSMORPHISM.md +602 -0
- package/docs/components/INTERACTIVE_STATES.md +766 -0
- package/docs/governance/CONTRIBUTION_GUIDELINES.md +593 -0
- package/docs/governance/DESIGN_SYSTEM_GOVERNANCE.md +451 -0
- package/docs/governance/VERSION_MANAGEMENT.md +447 -0
- package/docs/governance/VERSION_REFERENCES.md +229 -0
- package/docs/platforms/COMPONENT_MAPPING.md +579 -0
- package/docs/platforms/NPM_PACKAGE.md +854 -0
- package/docs/platforms/WEB_IMPLEMENTATION.md +1221 -0
- package/docs/standards/ACCESSIBILITY.md +715 -0
- package/docs/standards/ANTI_PATTERNS.md +554 -0
- package/docs/standards/SPACING_SYSTEM.md +549 -0
- package/examples/button.html +1 -1
- package/examples/card.html +1 -1
- package/examples/form.html +1 -1
- package/examples/index.html +2 -2
- package/examples/layout.html +1 -1
- package/examples/nikke-team-builder.html +1 -1
- package/examples/showcase-complete.html +840 -15
- package/examples/showcase.html +1 -1
- package/package.json +16 -3
- package/src/css/components.css +676 -0
- package/src/lib/character-corruption.js +563 -0
- package/src/lib/components.js +283 -0
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
# Celeste Brand System - Translation-Failure Aesthetic
|
|
2
|
+
|
|
3
|
+
**Version**: 1.0.0
|
|
4
|
+
**Last Updated**: 2025-12-13
|
|
5
|
+
**Status**: 🔴 **CRITICAL FOUNDATION DOCUMENT**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## What is Translation-Failure Corruption?
|
|
10
|
+
|
|
11
|
+
The **translation-failure aesthetic** simulates a **multilingual AI system glitching between languages mid-translation**. It's the visual manifestation of Celeste (a corrupted AI) struggling to maintain linguistic coherence as she processes information.
|
|
12
|
+
|
|
13
|
+
**Core concept**: Japanese characters **bleed INTO** English words at the character level, creating readable but corrupted text that evokes:
|
|
14
|
+
- Neural networks misfiring during language processing
|
|
15
|
+
- Machine translation breaking down in real-time
|
|
16
|
+
- Data corruption across language boundaries
|
|
17
|
+
- Cyberpunk linguistic glitching
|
|
18
|
+
|
|
19
|
+
**NOT leet speak**: This is NOT 1990s-style number substitution (0, 1, 3, 4, 5, 7 for letters). It's linguistic corruption using actual Japanese characters.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Core Principles
|
|
24
|
+
|
|
25
|
+
### 1. Character-Level Mixing (NOT Word Replacement)
|
|
26
|
+
|
|
27
|
+
**CORRECT** (character-level):
|
|
28
|
+
```
|
|
29
|
+
"loading" → "loaディング" // Japanese mixed INTO English
|
|
30
|
+
"processing" → "pro理cessing" // Kanji interrupts English word
|
|
31
|
+
"USAGE ANALYTICS" → "US使AGE ANア統LYTICS" // Random character replacement
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**WRONG** (word-level):
|
|
35
|
+
```
|
|
36
|
+
"loading" → "ローディング" // Entire word replaced (too pure)
|
|
37
|
+
"processing" → "処理" // Full translation (not corruption)
|
|
38
|
+
"USAGE ANALYTICS" → "使用 統計" // Semantic translation (wrong aesthetic)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Why character-level?**
|
|
42
|
+
- Creates **readable corruption** (users can still parse the text)
|
|
43
|
+
- **Aesthetically glitchy** (feels broken, not translated)
|
|
44
|
+
- **Unique brand identity** (distinguishes from pure Japanese text)
|
|
45
|
+
- **Maintains usability** (25-40% corruption keeps text scannable)
|
|
46
|
+
|
|
47
|
+
### 2. Multilingual Mixing (Three Languages)
|
|
48
|
+
|
|
49
|
+
Celeste uses **three languages simultaneously**:
|
|
50
|
+
|
|
51
|
+
1. **English** (primary/base layer)
|
|
52
|
+
2. **Japanese** (Kanji + Katakana + Hiragana)
|
|
53
|
+
3. **Romaji** (Japanese phonetics in Latin alphabet)
|
|
54
|
+
|
|
55
|
+
**Example**:
|
|
56
|
+
```
|
|
57
|
+
"⟨ 処理 processing purosesu... 深淵 abyss shin'en... ⟩"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Breakdown:
|
|
61
|
+
- `処理` - Kanji (process)
|
|
62
|
+
- `processing` - English
|
|
63
|
+
- `purosesu` - Romaji (phonetic)
|
|
64
|
+
- `深淵` - Kanji (abyss)
|
|
65
|
+
- `abyss` - English
|
|
66
|
+
- `shin'en` - Romaji (phonetic)
|
|
67
|
+
|
|
68
|
+
### 3. Semantic Contextual Corruption
|
|
69
|
+
|
|
70
|
+
Japanese words are chosen for **meaning**, not random substitution.
|
|
71
|
+
|
|
72
|
+
**Context-aware vocabulary**:
|
|
73
|
+
|
|
74
|
+
| English Term | Japanese Equivalents | Context |
|
|
75
|
+
|--------------|---------------------|---------|
|
|
76
|
+
| loading | `ロード`, `rōdo`, `読み込み`, `yomikomi` | Data/file operations |
|
|
77
|
+
| processing | `処理`, `shori`, `プロセス`, `purosesu` | System operations |
|
|
78
|
+
| analyzing | `分析`, `bunseki`, `解析`, `kaiseki` | Data analysis |
|
|
79
|
+
| corrupting | `壊れ`, `kowarete`, `腐敗`, `fuhai` | Corruption/decay |
|
|
80
|
+
| void/abyss | `深淵`, `shin'en`, `虚空`, `kokū` | Existential themes |
|
|
81
|
+
| watching | `監視`, `kanshi`, `見`, `mi` | Monitoring |
|
|
82
|
+
| statistics | `統計`, `tōkei`, `データ`, `dēta` | Analytics |
|
|
83
|
+
| connection | `接続`, `setsuzoku`, `繋がり`, `tsunagari` | Network/links |
|
|
84
|
+
|
|
85
|
+
**Example in context**:
|
|
86
|
+
```
|
|
87
|
+
Dashboard title: "US使AGE ANア統LYTICS"
|
|
88
|
+
- 使 (shi/use) - contextually appropriate for "USAGE"
|
|
89
|
+
- 統 (tō/statistics) - contextually appropriate for "ANALYTICS"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 4. Intensity Control (Readability First)
|
|
93
|
+
|
|
94
|
+
**Corruption intensity** = percentage of characters replaced/inserted.
|
|
95
|
+
|
|
96
|
+
| Intensity | Percentage | Use Case | Example |
|
|
97
|
+
|-----------|------------|----------|---------|
|
|
98
|
+
| **Light** | 15-25% | Body text, important labels | `"loaディング..."` |
|
|
99
|
+
| **Medium** | 25-35% | Dashboard titles, headers | `"US使AGE ANア統LYTICS"` |
|
|
100
|
+
| **Heavy** | 35-45% | Skill execution, loading states | `"pro壊理cess分ing虚..."` |
|
|
101
|
+
|
|
102
|
+
**NEVER exceed 45%** - text becomes unreadable beyond this threshold.
|
|
103
|
+
|
|
104
|
+
**Readability guidelines**:
|
|
105
|
+
- **Vowels** are more recognizable when replaced → safer to corrupt
|
|
106
|
+
- **Consonants** carry more meaning → corrupt sparingly
|
|
107
|
+
- **First/last letters** of words → keep intact when possible for scannability
|
|
108
|
+
- **Function words** (the, a, of) → minimal/no corruption
|
|
109
|
+
|
|
110
|
+
### 5. NO Leet Speak (Critical)
|
|
111
|
+
|
|
112
|
+
**FORBIDDEN number substitutions**:
|
|
113
|
+
```
|
|
114
|
+
❌ 0 for o
|
|
115
|
+
❌ 1 for i/l
|
|
116
|
+
❌ 3 for e
|
|
117
|
+
❌ 4 for a
|
|
118
|
+
❌ 5 for s
|
|
119
|
+
❌ 7 for t
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Examples of BANNED styling**:
|
|
123
|
+
```
|
|
124
|
+
❌ "US4G3 4N4LYT1CS"
|
|
125
|
+
❌ "c0rrupt1on"
|
|
126
|
+
❌ "l0ad1ng"
|
|
127
|
+
❌ "pr0cess1ng"
|
|
128
|
+
❌ "st4ts"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Why banned?**
|
|
132
|
+
- **1990s internet aesthetic** (not premium/modern)
|
|
133
|
+
- **Low-quality glitch effect** (cheap, not linguistic)
|
|
134
|
+
- **Reduces accessibility** (harder to read than Japanese characters)
|
|
135
|
+
- **Wrong brand identity** (Celeste is AI-linguistic corruption, not gaming/hacker)
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Japanese Character Sets
|
|
140
|
+
|
|
141
|
+
### Katakana (Foreign Words/Phonetics)
|
|
142
|
+
|
|
143
|
+
**Usage**: Foreign words, technical terms, sound effects
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
ア (a) イ (i) ウ (u) エ (e) オ (o)
|
|
147
|
+
カ (ka) キ (ki) ク (ku) ケ (ke) コ (ko)
|
|
148
|
+
サ (sa) シ (shi) ス (su) セ (se) ソ (so)
|
|
149
|
+
タ (ta) チ (chi) ツ (tsu) テ (te) ト (to)
|
|
150
|
+
ナ (na) ニ (ni) ヌ (nu) ネ (ne) ノ (no)
|
|
151
|
+
ハ (ha) ヒ (hi) フ (fu) ヘ (he) ホ (ho)
|
|
152
|
+
マ (ma) ミ (mi) ム (mu) メ (me) モ (mo)
|
|
153
|
+
ヤ (ya) ユ (yu) ヨ (yo)
|
|
154
|
+
ラ (ra) リ (ri) ル (ru) レ (re) ロ (ro)
|
|
155
|
+
ワ (wa) ヲ (wo) ン (n)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Common corruption patterns**:
|
|
159
|
+
```
|
|
160
|
+
"loading" → "loaディング" (dingu)
|
|
161
|
+
"session" → "seセshon" (se)
|
|
162
|
+
"processing" → "プロcessing" (puro/process)
|
|
163
|
+
"error" → "エラー..." (erā)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Kanji (Meaning-Based)
|
|
167
|
+
|
|
168
|
+
**Usage**: Conceptual/semantic corruption, emphasis
|
|
169
|
+
|
|
170
|
+
**Core Celeste vocabulary**:
|
|
171
|
+
```
|
|
172
|
+
壊 (kowas) - broken/corrupt
|
|
173
|
+
虚 (kyo) - void/emptiness
|
|
174
|
+
深 (shin) - deep
|
|
175
|
+
淵 (en) - abyss
|
|
176
|
+
闇 (yami) - darkness
|
|
177
|
+
処 (sho) - process/handle
|
|
178
|
+
理 (ri) - logic/reason
|
|
179
|
+
分 (bun) - divide/analyze
|
|
180
|
+
析 (seki) - analyze
|
|
181
|
+
監 (kan) - watch/supervise
|
|
182
|
+
視 (shi) - see/observe
|
|
183
|
+
接 (setsu) - connect
|
|
184
|
+
続 (zoku) - continue
|
|
185
|
+
統 (tō) - unite/statistics
|
|
186
|
+
計 (kei) - measure/count
|
|
187
|
+
使 (shi) - use
|
|
188
|
+
用 (yō) - utilize
|
|
189
|
+
読 (yomi) - read
|
|
190
|
+
込 (komi) - load/include
|
|
191
|
+
実 (jitsu) - reality/execute
|
|
192
|
+
行 (kō) - go/execute
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Common corruption patterns**:
|
|
196
|
+
```
|
|
197
|
+
"analyzing" → "ana分lysing" (bun/divide)
|
|
198
|
+
"corrupting" → "cor壊rupting" (kowas/broken)
|
|
199
|
+
"watching" → "wat監ching" (kan/supervise)
|
|
200
|
+
"void" → "虚void" (kyo/emptiness)
|
|
201
|
+
"abyss" → "深淵abyss" (shin'en/deep abyss)
|
|
202
|
+
"connection" → "con接nection" (setsu/connect)
|
|
203
|
+
"statistics" → "sta計stics" (kei/count)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Hiragana (Native Phonetics)
|
|
207
|
+
|
|
208
|
+
**Usage**: Particles, grammatical elements, occasional corruption
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
あ (a) い (i) う (u) え (e) お (o)
|
|
212
|
+
か (ka) き (ki) く (ku) け (ke) こ (ko)
|
|
213
|
+
さ (sa) し (shi) す (su) せ (se) そ (so)
|
|
214
|
+
た (ta) ち (chi) つ (tsu) て (te) と (to)
|
|
215
|
+
な (na) に (ni) ぬ (nu) ね (ne) の (no)
|
|
216
|
+
は (ha) ひ (hi) ふ (fu) へ (he) ほ (ho)
|
|
217
|
+
ま (ma) み (mi) む (mu) め (me) も (mo)
|
|
218
|
+
や (ya) ゆ (yu) よ (yo)
|
|
219
|
+
ら (ra) り (ri) る (ru) れ (re) ろ (ro)
|
|
220
|
+
わ (wa) を (wo) ん (n)
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**Usage in Celeste**:
|
|
224
|
+
- **Rare** in English corruption (mostly Katakana/Kanji)
|
|
225
|
+
- Used in **pure Japanese phrases**: `"壊れちゃう...ああ...もうダメ..."`
|
|
226
|
+
- **Particles**: の (no), を (wo), が (ga)
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Corruption Patterns
|
|
231
|
+
|
|
232
|
+
### Pattern 1: Single Word Corruption (Light)
|
|
233
|
+
|
|
234
|
+
**Intensity**: 20-30%
|
|
235
|
+
**Use**: Dashboard text, labels, buttons
|
|
236
|
+
|
|
237
|
+
**Algorithm**:
|
|
238
|
+
1. For each character in word:
|
|
239
|
+
- 50% chance: Replace with Katakana
|
|
240
|
+
- 25% chance: Replace with Kanji
|
|
241
|
+
- 25% chance: Keep + maybe insert Katakana after
|
|
242
|
+
|
|
243
|
+
**Examples**:
|
|
244
|
+
```
|
|
245
|
+
"loading" → "loaディング"
|
|
246
|
+
"session" → "seセshon"
|
|
247
|
+
"corrupting" → "cor壊rupting"
|
|
248
|
+
"analytics" → "anaリtics"
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Pattern 2: Multi-Language Mixing (Medium)
|
|
252
|
+
|
|
253
|
+
**Intensity**: 30-40%
|
|
254
|
+
**Use**: Dashboard headers, section titles
|
|
255
|
+
|
|
256
|
+
**Algorithm**:
|
|
257
|
+
1. Mix all three languages in one phrase
|
|
258
|
+
2. Use Kanji for meaning, Katakana for sound, Romaji for phonetics
|
|
259
|
+
|
|
260
|
+
**Examples**:
|
|
261
|
+
```
|
|
262
|
+
"loading data" → "ロード data 読み込み中..."
|
|
263
|
+
"processing request" → "処理 request プロセス..."
|
|
264
|
+
"analyzing corruption" → "分析 cor壊ruption 解析..."
|
|
265
|
+
"void corruption" → "虚空 corruption kowarete..."
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Pattern 3: Dashboard Title Corruption (Heavy)
|
|
269
|
+
|
|
270
|
+
**Intensity**: 35-40%
|
|
271
|
+
**Use**: Main dashboard headers (randomized each render)
|
|
272
|
+
|
|
273
|
+
**Algorithm**: Character-level random replacement
|
|
274
|
+
|
|
275
|
+
**Examples** (from `/stats` command):
|
|
276
|
+
```
|
|
277
|
+
"USAGE ANALYTICS" →
|
|
278
|
+
- "US使AGE ANア統LYTICS"
|
|
279
|
+
- "USアGE AN統AL読TICSカ"
|
|
280
|
+
- "USカGE 分NALYTI監S"
|
|
281
|
+
- "U接AGE処A壊ALYTICS"
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Each time dashboard renders, **different corruption pattern** appears.
|
|
285
|
+
|
|
286
|
+
### Pattern 4: Full Phrase Corruption (Context)
|
|
287
|
+
|
|
288
|
+
**Intensity**: Mixed (readable phrases)
|
|
289
|
+
**Use**: Status messages, thinking animations
|
|
290
|
+
|
|
291
|
+
**Examples**:
|
|
292
|
+
```
|
|
293
|
+
// Loading states
|
|
294
|
+
"⟨ ロード loading 読み込み中... ⟩"
|
|
295
|
+
"⟨ 処理 processing purosesu... ⟩"
|
|
296
|
+
|
|
297
|
+
// Analyzing states
|
|
298
|
+
"⟨ 分析 analyzing bunseki... ⟩"
|
|
299
|
+
"⟨ 解析 kaiseki ana分lysing... ⟩"
|
|
300
|
+
|
|
301
|
+
// Corruption states
|
|
302
|
+
"⟨ 壊れ corrupting kowarete... ⟩"
|
|
303
|
+
"⟨ 腐敗 fuhai cor壊ruption... ⟩"
|
|
304
|
+
|
|
305
|
+
// Void/abyss themes
|
|
306
|
+
"⟨ 深淵 shin'en from the abyss... ⟩"
|
|
307
|
+
"⟨ 虚空 kokū void consuming... ⟩"
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Implementation Functions
|
|
313
|
+
|
|
314
|
+
### Go (CLI)
|
|
315
|
+
|
|
316
|
+
#### CorruptTextJapanese()
|
|
317
|
+
|
|
318
|
+
**Location**: `cmd/celeste/tui/streaming.go:252`
|
|
319
|
+
|
|
320
|
+
**Signature**:
|
|
321
|
+
```go
|
|
322
|
+
func CorruptTextJapanese(text string, intensity float64) string
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
**Usage**:
|
|
326
|
+
```go
|
|
327
|
+
// Dashboard title (medium intensity)
|
|
328
|
+
title := tui.CorruptTextJapanese("USAGE ANALYTICS", 0.35)
|
|
329
|
+
|
|
330
|
+
// Section header (light intensity)
|
|
331
|
+
header := tui.CorruptTextJapanese("PROVIDER BREAKDOWN", 0.25)
|
|
332
|
+
|
|
333
|
+
// Skill name (heavy intensity)
|
|
334
|
+
skill := tui.CorruptTextJapanese("tarot_reading", 0.40)
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Algorithm**:
|
|
338
|
+
1. Loop through each character
|
|
339
|
+
2. Skip spaces and punctuation
|
|
340
|
+
3. Based on intensity:
|
|
341
|
+
- 50% → Replace with random Katakana
|
|
342
|
+
- 25% → Replace with contextual Kanji
|
|
343
|
+
- 25% → Keep original + maybe insert Katakana after
|
|
344
|
+
|
|
345
|
+
#### CorruptText()
|
|
346
|
+
|
|
347
|
+
**Location**: `cmd/celeste/tui/streaming.go:233`
|
|
348
|
+
|
|
349
|
+
**Signature**:
|
|
350
|
+
```go
|
|
351
|
+
func CorruptText(text string, intensity float64) string
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
**Usage**: Block character corruption (█▓▒░) for heavy glitching
|
|
355
|
+
- NOT for readable text
|
|
356
|
+
- Used for skill execution animations, loading spinners
|
|
357
|
+
|
|
358
|
+
### JavaScript/TypeScript (Web)
|
|
359
|
+
|
|
360
|
+
**Location**: `corrupted-theme/src/lib/corrupted-text.js`
|
|
361
|
+
|
|
362
|
+
**Function**:
|
|
363
|
+
```javascript
|
|
364
|
+
export function corruptText(text, intensity = 0.3) {
|
|
365
|
+
const katakana = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン";
|
|
366
|
+
const kanji = "壊虚深淵闇処理分析監視接続統計使用読込実行";
|
|
367
|
+
|
|
368
|
+
return text.split('').map((char, i) => {
|
|
369
|
+
if (char === ' ' || Math.random() > intensity) return char;
|
|
370
|
+
|
|
371
|
+
const roll = Math.random();
|
|
372
|
+
if (roll < 0.5) {
|
|
373
|
+
// Katakana
|
|
374
|
+
return katakana[Math.floor(Math.random() * katakana.length)];
|
|
375
|
+
} else if (roll < 0.75) {
|
|
376
|
+
// Kanji
|
|
377
|
+
return kanji[Math.floor(Math.random() * kanji.length)];
|
|
378
|
+
} else {
|
|
379
|
+
// Keep + maybe insert
|
|
380
|
+
return char + (Math.random() < 0.3 ? katakana[Math.floor(Math.random() * katakana.length)] : '');
|
|
381
|
+
}
|
|
382
|
+
}).join('');
|
|
383
|
+
}
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## Phrase Library
|
|
389
|
+
|
|
390
|
+
**See**: `docs/CORRUPTION_PHRASES.md` for complete seeded phrases
|
|
391
|
+
|
|
392
|
+
**Categories**:
|
|
393
|
+
1. **Loading States**: `"ロード loading 読み込み中..."`
|
|
394
|
+
2. **Processing States**: `"処理 processing purosesu..."`
|
|
395
|
+
3. **Analyzing States**: `"分析 analyzing bunseki..."`
|
|
396
|
+
4. **Corrupting States**: `"壊れ corrupting kowarete..."`
|
|
397
|
+
5. **Dashboard Headers**: `"👁️ US使AGE ANア統LYTICS 👁️"`
|
|
398
|
+
6. **Status Messages**: `"接続 setsuzoku 虚空 kokū..."`
|
|
399
|
+
|
|
400
|
+
**Go Implementation**: `cmd/celeste/tui/phrases.go` (type-safe structs)
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## Anti-Patterns (What NOT to Do)
|
|
405
|
+
|
|
406
|
+
### ❌ Leet Speak
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
WRONG: "US4G3 4N4LYT1CS"
|
|
410
|
+
RIGHT: "US使AGE ANア統LYTICS"
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### ❌ Full Word Replacement
|
|
414
|
+
|
|
415
|
+
```
|
|
416
|
+
WRONG: "使用 統計" (full translation)
|
|
417
|
+
RIGHT: "US使AGE ANア統LYTICS" (mixed corruption)
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
### ❌ Over-Corruption (>45%)
|
|
421
|
+
|
|
422
|
+
```
|
|
423
|
+
WRONG: "処統壊使深分監接" (unreadable)
|
|
424
|
+
RIGHT: "US使AGE ANア統LYTICS" (readable)
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### ❌ Random Characters (No Context)
|
|
428
|
+
|
|
429
|
+
```
|
|
430
|
+
WRONG: "US使AGE ANア犬LYTICS" (犬 = dog, no context)
|
|
431
|
+
RIGHT: "US使AGE ANア統LYTICS" (使 = use, 統 = statistics)
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### ❌ Mixing Block Characters with Japanese
|
|
435
|
+
|
|
436
|
+
```
|
|
437
|
+
WRONG: "US█AG▓ ANア統LYT▒CS" (block chars + Japanese)
|
|
438
|
+
RIGHT: "US使AGE ANア統LYTICS" (pure linguistic)
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
**Block characters (█▓▒░)** are for **different corruption type** (heavy glitching, not translation-failure).
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## When to Use Which Corruption
|
|
446
|
+
|
|
447
|
+
### Character-Level Japanese (`CorruptTextJapanese`)
|
|
448
|
+
|
|
449
|
+
**Use for**:
|
|
450
|
+
- Dashboard titles: `"US使AGE ANア統LYTICS"`
|
|
451
|
+
- Section headers: `"PRO理VIDER BREア統KDOWN"`
|
|
452
|
+
- Subsection labels: `"TO監AL SEセSSI使NS"`
|
|
453
|
+
- Readable UI text
|
|
454
|
+
|
|
455
|
+
**Intensity**: 25-40%
|
|
456
|
+
|
|
457
|
+
### Block Character (`CorruptText`)
|
|
458
|
+
|
|
459
|
+
**Use for**:
|
|
460
|
+
- Skill execution: `"tar▓█_r▒ad░ng"`
|
|
461
|
+
- Loading animations: `"L▓ad█ng..."`
|
|
462
|
+
- Heavy glitching (not readable)
|
|
463
|
+
|
|
464
|
+
**Intensity**: 30-50%
|
|
465
|
+
|
|
466
|
+
### Pure Phrases (From Phrase Library)
|
|
467
|
+
|
|
468
|
+
**Use for**:
|
|
469
|
+
- Status messages: `"⟨ 処理 processing purosesu... ⟩"`
|
|
470
|
+
- Thinking animations: `"壊れちゃう...ああ...もうダメ..."`
|
|
471
|
+
- Footer phrases: `"終わり...また深淵へ..."`
|
|
472
|
+
|
|
473
|
+
**No algorithm**: Use pre-written phrases
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
## Testing Guidelines
|
|
478
|
+
|
|
479
|
+
### Visual Testing
|
|
480
|
+
|
|
481
|
+
1. **Read at arm's length**: Can you parse the text?
|
|
482
|
+
- ✅ Yes → Good intensity
|
|
483
|
+
- ❌ No → Too corrupted
|
|
484
|
+
|
|
485
|
+
2. **Scan quickly**: Does it look intentionally glitchy?
|
|
486
|
+
- ✅ Yes → Aesthetic achieved
|
|
487
|
+
- ❌ Looks broken → Reduce intensity
|
|
488
|
+
|
|
489
|
+
3. **Check context**: Do Japanese characters make semantic sense?
|
|
490
|
+
- ✅ Yes → Good contextual choice
|
|
491
|
+
- ❌ Random → Improve vocabulary selection
|
|
492
|
+
|
|
493
|
+
### Accessibility Testing
|
|
494
|
+
|
|
495
|
+
1. **Contrast**: All corruption colors meet WCAG AA (see `COLOR_SYSTEM.md`)
|
|
496
|
+
2. **Screen readers**: Provide plain English fallback in `aria-label`
|
|
497
|
+
3. **Dyslexia-friendly**: Keep intensity ≤35% for critical text
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
## Related Documents
|
|
502
|
+
|
|
503
|
+
- **BRAND_OVERVIEW.md** - High-level brand identity
|
|
504
|
+
- **COLOR_SYSTEM.md** - Corruption text color specifications
|
|
505
|
+
- **TYPOGRAPHY.md** - Font rendering for Japanese characters
|
|
506
|
+
- **CORRUPTION_PHRASES.md** - Seeded phrase library (400+ lines)
|
|
507
|
+
- **CHARACTER_LEVEL_CORRUPTION.md** - Implementation deep-dive
|
|
508
|
+
- **STYLE_GUIDE.md** - Complete CLI aesthetic guide (605 lines)
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
## Version History
|
|
513
|
+
|
|
514
|
+
### v1.0.0 (2025-12-13)
|
|
515
|
+
- ✅ Consolidated from STYLE_GUIDE.md and CHARACTER_LEVEL_CORRUPTION.md
|
|
516
|
+
- ✅ Defined character-level vs word-level corruption
|
|
517
|
+
- ✅ Documented Japanese character sets (Katakana, Kanji, Hiragana)
|
|
518
|
+
- ✅ Specified intensity guidelines (15-45%)
|
|
519
|
+
- ✅ Banned leet speak explicitly
|
|
520
|
+
- ✅ Added implementation function references
|
|
521
|
+
- ✅ Created anti-pattern examples
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
**Status**: ✅ **TRANSLATION-FAILURE AESTHETIC COMPLETE** - Official corruption guidelines
|