Skip to content

feat(templates): whatsapp-chat + notes-app cards, markup rollout - #90

Merged
ajianaz merged 2 commits into
developfrom
feat/sosmed-templates
Sep 17, 2026
Merged

ajianaz merged 2 commits into
developfrom
feat/sosmed-templates

Conversation

@ajianaz

@ajianaz ajianaz commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

What

Two new social templates + inline markup rollout to three more quote templates.

New: whatsapp-chat (1080×1350) — chat conversation card, the viral
Indonesian social pattern that was missing from the catalog:

  • Contact header (avatar initial, name, status) inside a phone-frame card
  • 6 message slots (m1_text…m6_text), each with a mN_side toggle
    (left/right, sensible chat-alternating defaults)
  • Bubble height follows wrapped line count; full inline markup support
    (*bold*, _italic_, *color:#hex*) per message via options: ["markup"]
  • text_color per-page override; bg_image + bg_overlay_opacity supported

New: notes-app (1080×1350) — iOS-notes-style text card:

  • Pastel note paper (note_bg, default #fef9c3) with window bar, grip dots,
    timestamp line (note_timestamp)
  • title (bold, title_color) + body (required, body_color) with full
    inline markup support

Markup rollout — options: ["markup"] + segments rendering added to
twitter-quote, tiktok-quote, and quote-stack (q1/q2/q3_text). Their
default renders are byte-identical to before (md5-verified), so this only
activates when input text contains markers.

Docs: pages for both new templates, masonry gallery cards, sidebar entries.

Why

Chat/WhatsApp and notes-app screenshots are the two highest-performing text
content patterns in Indonesian social feeds that cosy had no template for.

Testing

  • cosy validate + render on both new templates pass
  • whatsapp-chat vision QA: alternating sides, dynamic bubble heights,
    bold/italic/color rendering, zero marker leakage — 5/5
  • notes-app vision QA: paper/window/title/body chrome, bold + italic runs,
    no literal markers — 5/5
  • quote-stack markup render verified visually; twitter/tiktok/quote-stack
    default renders md5-identical to pre-change baseline (3/3)
  • Gallery/sidebar: 150 template dirs, 153 card entries (150 + README note)

…witter/tiktok/quote-stack

New templates (both 1080x1350, inline-markup enabled):
- whatsapp-chat: contact header + 6 message slots with side toggle,
  dynamic bubble heights, text_color per page
- notes-app: iOS notes paper card (note_bg/title_color/body_color),
  timestamp bar, markup-enabled body

Markup rollout: options=["markup"] + segments rendering added to
twitter-quote, tiktok-quote, and quote-stack q1/q2/q3. Default renders
are md5-identical to the pre-change baseline (backward compatible).

Docs: template pages, gallery cards, sidebar entries.
{% set segs = msg[3] %}
{% set lines = msg[2] %}
{% set n_lines = segs | default(lines) | length %}
{% set bh = 52 + n_lines * 38 %}
@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

🔍 Cora AI Code Review

✅ No issues found. Code looks good!


Review powered by cora-code · BYOK · MIT

CodeCora finding on the PR was valid: fixed 170px slots with variable
bubble heights (schema allowed 4 wrapped lines = 204px) could overlap
the next bubble and push past the phone frame.

- Bubbles now stack via a minijinja namespace accumulator (y cursor),
  so heights can never collide
- mN_text max clamped 120 -> 60 chars (2 wrapped lines max), keeping
  the mathematically guaranteed fit: 6 x (52 + 2*38 + 24) = 1188px,
  inside the 1190px frame even when every message is at max length

Verified with a max-length stress render: 6 two-line bubbles, no
overlap, last bubble inside the frame, consistent gaps (vision QA).
@ajianaz
ajianaz merged commit 7c2ea7c into develop Sep 17, 2026
11 checks passed
@ajianaz
ajianaz deleted the feat/sosmed-templates branch September 17, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants