Kronika záznamu na kartě klienta. Chronologii nese svislá osa, která prochází za barevnými glyfy typu; vodorovná linka je jediná — horní hrana hlavičky sekce. Události uvnitř sekce tak drží pohromadě jako jeden blok: linka neznamená „další řádek", ale předěl v čase. Chování řeší B-1 až B-4, rozměry TL-1 až TL-16.
Vzhled řeší TL-1 až TL-16 níž. Tahle sekce říká co se do osy dostane, jak se to seskupí a co se stane po kliknutí — tedy pravidla, která nejsou vidět z renderu. Implementuje se podle nich.
.il-t): to, o co jde — předmět e-mailu, název dokumentu,
výsledek hovoru. Nikdy typ události slovem („Přijat e-mail:“) — typ nese glyf..il-c, --fg-muted): náhled zprávy, kanál,
počet pokusů, délka hovoru, kontext obchodu, souhrn změněných polí. Vždy vlevo od autora, nikdy vpravo..il-by + .il-meta): kdo událost vytvořil a kdy.
.il-by nese jen autora — když autor není člověk, je to Systém.
Pravý okraj se tím čte jako jedna vertikála autor · datum, ne jako směs metaúdajů..il-row.is-taskev) a karty .tcard jdou pod její hlavičkou.
Zobrazit vše (N), kde N je celkový počet..is-now. Sekce je jako blok podbarvená
--surface-75 včetně hlavičky — blok začíná u svého názvu, ne pod ním a poslední řádek má zvětšený spodní padding,
aby se blok proti historii uzavřel. Celoosový empty state neexistuje — v každém záznamu je
nejmíně událost o jeho založení.název · objem, oddělený hairline, objemy tabular-nums u pravého okraje.
Jeden produkt → normální řádek bez rozbalování (není co skrývat).
Stejný vzor platí pro změnu parametrů: souhrn jmenuje změněná pole, detail nese
štítek · stará → nová — vlevo stará hodnota utlumeně, vpravo nová v plné barvě.
Jedna změněná položka se nerozbaluje — vejde se do řádku jako přechod stará → nová.ItemList beze změny. Jedna velikost 500 13/20 na všechno včetně data, hierarchii nese barva. Žádné ztučnění, žádné mono..il-nudge — podbarvený celý řádek, bez rámečku a zaoblení) se jmenovaným kontaktem a s oběma akcemi přímo v ní — jeden klik, ne dropdown. Šedé podbarvení nese pozornost, --accent nese sdělení; amber ani červená sem nepatří, protože se nic nepokazilo.--surface-75) — když řádky nemají oddělovače, blok se musí uzavřít podkladem, jinak se rozteče do okolí. Karty úkolů zůstávají bílé, takže se z podkladu zvednou. Co se do sekce vypisuje, říká B-3 výše..btn.default portované 1:1 z karty Components · Buttons: výška 28 px, padding 0 9, font 700 12 --font-display, bílá + --line-300 + --shadow-xs. Kanon má jednu výšku — žádná sm varianta neexistuje, takže 26px „sm“ bylo vymyšlené. Stojí v hlavičce detailu vedle nadpisu Aktivita — vztahuje se k celému logu, ne k jedné sekci. Klik otevře kanonický popover se dvěma sekcemi: plánování (Schůzka, Úkol) a pod hairline oddělovačem zápis (Zaznamenat kontakt) — plánování vytváří budoucí závazek, zápis ukládá minulost, proto linka. Žádná položka není primární, proto menu a ne split button. .tl-grp má plný pruh 50 px a linku nahoře — jediná vodorovná linka v ose, takže znamená předěl v čase, ne další řádek. Všech pět sekcí se sbaluje stejnou mechanikou; počet v hlavičce říká, kolik se skrývá. Vzduch mezi sekcemi patří vždy sekci pod sebou (horní padding těla), aby se sbalením zmizel i on.--critical-ink: v ose .tl-rdue.over, na kartě úkolu .due.over. Žádný odznak — pilulku „Po termínu" z karty odstranil F210 (22. 8. 2026); „po termínu" má v systému jednu podobu..tl-rcheck.on (accent kolečko s fajfkou) a přeškrtnutý název v --fg-muted, jako v kanonickém .tl-row.done.md (50 px) přes celou osu. Náhled obsahu jde inline do slotu content, ne na druhou linku — v md je to sourozenec názvu. Hustota je vlastnost kontejneru, takže míchat md a lg v jednom výpisu ani nejde..il-lead dnes vnucuje color: var(--fg-muted); kanon ji uvolňuje, aby lead unesl tón typu z activity-types.ts. Pořád plochý glyf 20 px — žádná dlaždice ani kolečko..tl-rcheck, název, priorita a stav jako .acrm-pill sm (port 1:1 z rt-real/ds.css), realizátor jako mini entity reference .tl-person (avatar + tečkovaně podškrtnuté jméno) a termín. Karta je --surface-100, --radius-md, hairline --border, --shadow-xs..il-row.is-now: titulek 600 a čas dnes 15:00 v --ink-900. Žádný odznak „DNES“, žádné podbarvení, žádný levý pruh — zvýraznění nese jen typografie. Odpočet („za 2 h 10 min“) je doplňující text vlevo, ne meta..acrm-pill sm s glyfem: kontakt ti-phone v green. Typ je fakt, ne signál — proto tichý tonus, ne critical..acrm-pill sm critical dot pro vysokou; po termínu nese červený termín, vše ostatní nese řádek beze značky.Zobrazit vše (N). Důvod: osa je kronika záznamu, ne seznam úkolů — deset řádků „Úkol vytvořen“ ji utopí..il-c v --fg-muted, stejně jako náhled poznámky. Dřív se v .il-by míchal autor s doplňujícím textem, takže pravý sloupec nebyl čitelný jako jedna vertikála.název · objem oddělený hairline. Jeden produkt = normální řádek bez rozbalování..il-c jako přechod stará → nová: stará hodnota utlumená (--fg-muted), nová v --ink-900 — kontrast sám říká, která platí. Tady je stará hodnota vidět (na rozdíl od rozbaleného detailu), protože přesun mezi fázemi je ta informace.štítek · stará → nová. Vlevo stará hodnota v --fg-muted, vpravo nová v --ink-900 — kontrast sám říká, která platí, žádné přeškrtnutí. Enum a entita jdou jako .acrm-pill sm na obou stranách, čísla a data jako normální text.transcript je v mapě šedý už dnes a čtyři chromatické tóny (modrá, fialová, zelená, jantar) jsou strop, aby barva zůstala signálem.
Hodnoty jsou odečtené z renderu (getComputedStyle), ne popsané. Implementuje se
podle nich. Kdo staví osu jinde v appce, bere tyhle definice — neopakuje se a nevymýšlí se znovu.
ItemList v hustotě md. Min-height 50 px,
padding 0 16 px, mezera slotů 12 px, bez oddělovače — řádky sekce tvoří
souvislý blok, hierarchii drží typografie a barva leadu. Vzduch navíc (50 místo 44 px) je
za odebranou linku: bez ní řádek potřebuje vlastní prázdno, aby se výpis nesléval.
Typografie JEDNA na všechny sloty včetně data: 500 13px/20px. Sloty:
.il-t --ink-900 (max-width 58 %) · .il-c --fg-muted ·
.il-by --fg-secondary · .il-meta --fg-muted, mezera 8 px.
Pravidlo obsazení slotů: .il-c je vždy doplňující text (náhled, kanál, počet pokusů,
délka hovoru, kontext obchodu), .il-by je vždy jen autor — nikdy obojí pomotané.
Když autor není člověk, je to Systém. Vpravo tedy čteš vždy autor · datum.
Bez .il-c smí titulek zabrat celou linku.place-items: center, --ico-sm (16 px).
Plochý glyf — žádná dlaždice, kolečko ani pozadí. Barva = tón typu z activity-types.ts:
--ic-blue · --ic-purple · --ic-green · --ic-amber ·
šedá --fg-muted. Barva svítí na necelé polovině řádků záměrně.
Glyf sedí NA ose: nese podklad barvy řádku (--rail-bg) o výšce 26 px,
takže se osa za ním přeruší s 5 px vzduchu nad i pod ikonou. Podklad se dědí ze stavu řádku —
klid --surface-100 · hover --hover-surface · sekce Dnes
a rozbalený detail --surface-75. Bez toho by linka prošla přes glyf..tl-grp--font-display, počet 600 11px
--font-mono. Linka je horní hrana (1 px --border) — předěl patří sekci,
kterou otevírá, ne té nad ní; první hlavička v panelu ji nemá, protože navazuje na hlavičku detailu.
Všech pět sekcí je sbalitelných (details.tl-sec, hlavička je summary,
chevron za popiskem a počtem, [open] → rotate(90deg)) — když je linka jen
v hlavičce, je hlavička jediný ovládací prvek sekce.--ink-500 na 30 % krytí, vedená středem leadu
(left: 16 px + 10 px). Kreslí se po řádcích — každý řádek nese dva úseky kolem
svého glyfu (--lead-mid), takže osa drží i u řádků jiné výšky (agregát úkolů, rozbalený
detail). Úsek nad prvním a pod posledním glyfem sekce se ruší: osa začíná i končí ve středu
glyfu, nikdy nevisí do prázdna a nikdy nepřechází mezi sekcemi. Musí být znatelně tmavší než
odebraný --border, jinak se čte jako artefakt..il-row.is-taskev: align-items: flex-start, padding 12 / 17 px svisle,
--lead-mid: 33px (poloha glyfu pro osu — TL-16).
Lead glyf circle-check, tón blue = vytvořen, green = splněn.
.il-body sloupec, mezera 6 px; .il-hd baseline, mezera 8 px —
titulek říká CO se stalo, byline zdroj. Pod hlavičkou karta úkolu (TL-5)..tcardalign-items: center, mezera 8 px, padding 12 px, rámeček 1 px
--border, radius --radius-md (11 px), --surface-100,
--shadow-xs. Pořadí zleva: checkbox → název → priorita → stav → realizátor → termín.
Název je .tc-nm (500 13/20, --ink-900), termín .due
(500 13/20, --ink-900; po termínu .due.over = --critical-ink). Hotový úkol: .tcard.done .tc-nm = --fg-muted
+ přeškrtnutí. Název NENÍ .nm — to jméno drží .tl-person .nm
(port kanonu) a při stejné specificitě by o vzhledu rozhodovalo pořadí souborů.
Při kolizi jmen ustupuje novější prvek, ne ten portovaný..tl-rcheckrt-real/task-list.css. 18 × 18 px, --radius-pill,
rámeček 1,5 px --border-strong. Klid: fajfka opacity 0 ·
hover: rámeček --accent, fajfka .45 · .on: výplň i rámeček
--accent, fajfka 1. Ikona check 12 px. Kulatý, ne hranatý —
hranatý .ck patří tabulce..tl-personrt-real/task-list.css. Mezera 6 px,
avatar 20 × 20 px kruh, 600 9px --font-display, rámeček 1,5 px
hsl(var(--av-hue) 62% 60%). Jméno 500 12px --fg-secondary,
underline dashed 1 px, offset 3 px. Tečkované podškrtnutí je afordance — neubírej ho..acrm-pill.smrt-real/ds.css. Výška 20 px, padding 0 7 px, font 600 11px,
--radius-pill. .dot::before = kolečko 6 × 6 px, margin-right 4 px.
Varianty warning · critical · grey.
Pilulky patří JEN do karty úkolu a do detailu změn. V ose samotné nesmí být ani jedna.<details class="il-row"> + .chgbody +
.tcard). Vnitřek je .prods: řádek na produkt, glyf ti-tag
--ic-blue · název --ink-900 · objem --fg-muted tabular-nums,
oddělovač 1 px --border. Titulek nese počet a součet objemů
(„Nabídnuty 3 produkty · 1 250 000 Kč“) — stejně jako objednávka. Jeden produkt → normální .il-row s název · objem..il-nudge — celý řádek podbarvený --surface-75, bez rámečku
a bez zaoblení (řádek osy, ne karta); glyf v .ng je PROMĚNNÁ pobídky,
ne pevná část anatomie (F141, 20. 8. 2026): default ti-target 28 px bílý v plném
--accent kolečku — terč, ne výstražný trojúhelník ani žárovka: není to chyba
ani tip, ale další krok, a soustředné kruhy sedí do kruhového badge; použití s jiným
sdělením si nese vlastní glyf — pobídka nového obchodu (karta záznamu, „nemá otevřený
obchod“) má ti-rocket: START, ne další krok ·
titulek 600 13/20 --accent se jménem kontaktu · podtitulek
--fg-secondary · vpravo .btn.default (Naplánovat schůzku) + .btn.primary (Přidat úkol).
Celoosový empty state neexistuje — v ose je
vždy aspoň záznam o založení. Toto je jediné místo v ose s primární akcí..btn.default — port 1:1 z karty Components · Buttons (výška 28 px,
padding 0 9, font 700 12 --font-display, --line-300, --shadow-xs).
Sedí v hlavičce detailu vedle nadpisu Aktivita, u pravého okraje — vztahuje se
k celému logu, ne k jedné sekci, takže do hlavičky sekce nepatří. Menu je .acrm-popover lokálně pozicovaný pod kotvou,
položky .acrm-popover-item s glyfem (ti-calendar / ti-circle-check).
V ose samotné není žádná další akce — zbytek je čtení..il-row.is-now — .il-t weight 600,
.il-meta.next --ink-900. Nese ji jen jeden řádek osy; odpočet patří
do .il-c. Budoucí termíny obecně (bez zvýraznění) stačí .il-meta.next..il-row.is-taskev na všechny naplánované úkoly. .il-hd:
.il-t „Úkoly“ · .il-meta datum posledního přírůstku. Bez autora —
agregát není událost jednoho člověka, každý úkol pod ním nese vlastní osobu na kartě;
jméno v hlavičce by tvrdilo autorství, které neexistuje. Jednotlivé události (Úkol splněn) autora mají.
.tstack = karty pod sebou, gap 4 px, řazení podle termínu vzestupně (nejdřívější nahoře); max 3 karty,
pak .tmore — textový odkaz Zobrazit vše (N), 12 px --fg-muted,
tečkované podškrtnutí jako mini entity reference..ph[data-stage] — tečka 6 px před názvem fáze, jeden hue na fázi:
canvas --fg-muted · lead --ic-blue · nabídka --ic-purple ·
sale --ic-amber · vyhráno --ic-green · prohráno --ic-rose.
Platí v .tr i v rozbaleném .chg — stejná stupnice jako na pipeline boardu..il-row, ne <details>. .il-t pojmenuje pole
(„Fáze změněna“), .il-c nese .tr = .from --fg-muted ·
ti-arrow-right · .to --ink-900, gap 8 px. Žádné pilulky,
typografie beze změny (500 13px/20px). Při dvou a více změněných polích se použije TL-9.<details class="il-row">. Summary = normální řádek osy (min-height 44 px,
padding 0 16 px, list-style: none); .il-c nese souhrn změněných polí.
[open] pozadí --surface-75. Chevron .cv 18 × 18 px,
margin-left 12 px, [open] → rotate(180deg), 120 ms.
.chgbody padding vlevo 48 px (zarovnáno pod text, ne pod lead)..chgminmax(0,168px) minmax(0,1fr) 14px minmax(0,1fr), mezery 6 / 8 px:
štítek · stará → nová. dt 500 13/20 --fg-muted ·
.old 500 13/20 --fg-muted · šipka arrow-right
--ico-2xs · dd 500 13/20 --ink-900.
Stará hodnota vlevo utlumeně, nová vpravo v plné barvě — kontrast nese platnost,
žádné přeškrtnutí. Enum a entita jako .acrm-pill.sm na obou stranách,
čísla a data jako text..tl-rdue.over, --critical-ink) — ne odznak.
V kartě úkolu totéž: .due.over (--critical-ink). Pilulka
.acrm-pill.sm.critical „Po termínu" na kartě není (F210, 22. 8. 2026).
Port existujícího kanonu (jen použij, needituj): TL-6, TL-7, TL-8, TL-11.
Prvky založené touto kartou: TL-1 (řádek bez oddělovače, 50 px), TL-2 (barva leadu +
podklad na ose), TL-3 (hlavička sekce, linka nahoře), TL-16 (svislá osa), TL-4, TL-5, TL-9, TL-10, TL-15.
Past: .il-row je role="button" a uvnitř má vlastní tlačítka —
použij prop controls na ItemList.Row, <button> uvnitř
<button> je nevalidní.