Komms Haus sekoPrototype

Prototype index and acceptance checklist

Every screen in brief §6 with its states, mapped to a prototype URL, in Sorani (RTL) and English (LTR), with a German Tier 3 sample. Themes: system · light · dark (and sepia in reading mode) via the control in every strap. Breakpoints to check: 360 · 768 · 1320. In production / redirects to /ckb/; this index page exists for the prototype only.

main37 screens184 routes

Screens and routes

Reader screens26 screens · 164 routes

01 · Front pageckbende4 routes
02 · Section indexckben14 routes
03 · Article — essayckbende14 routes
03 · Article — profileckb3 routes
04 · Article — columnckb3 routes
05 · Article — analysisckb5 routes
06 · Article — bookckb3 routes
08 · Article — essayckben5 routes
10 · Dossier pageckben2 routes
11 · Dossiers indexckben2 routes
13 · Topics indexckben2 routes
14 · Archive monthckben4 routes
14 · Archive yearckben2 routes
15 · Searchckben6 routes
16 · Editions indexckb1 routes
17 · Static: aboutckben2 routes
18 · Static: accessibilityckben2 routes
18 · Static: contactckben2 routes
18 · Static: ethicsckben2 routes
18 · Static: glossaryckben2 routes
18 · Static: privacyckben2 routes
18 · Static: write for Sekockben2 routes
20 · 404ckben2 routes
21 · Reading mode (no-script view)ckben32 routes
22 · Author pageckben44 routes
23 · Authors indexckben2 routes

Promotion and infrastructure5 screens · 8 routes

28 · Social cards galleryckben2 routes
34 · Newsletter email templateckben2 routes
35 · Feed presentation (XSL)ckben2 routes
37 · Icon and favicon setckb1 routes
— · Email signature and letterheaden1 routes

Editorial screens6 screens · 12 routes

39 · Editorial: queueckben2 routes
40 · Editorial: review — translation variantckben2 routes
40 · Editorial: review screenckben2 routes
41 · Editorial: distributionckben2 routes
— · Editorial: decisions logckben2 routes
— · Editorial: discovery batch screenckben2 routes

Portrait mode

ADR 0021

The build shows the contributors' published headshots, cleaned by tools/clean-portraits.py: the Seko mark, the card frame and the name captions removed, each square re-cut around the face at one framing, with light denoising and no retouching. The sources are still low resolution; re-shooting to the standard (1:1, face centred, neutral ground) remains the aim. The substitutes stay one switch away: SEKO_PORTRAITS=photo|initials|silhouette npm run build (ADR 0017).

silhouette

initials

photo · in this build

README

Seko · sekokurd.org redevelopment

Design system and static HTML prototype for Seko, the Sorani-first intellectual review. Prepared by Komms Haus against the publication structure (8 Sep 2026) and the wireframes and prototype brief (9 Sep 2026), both under docs/briefs/.

What is here

PathContents
src/tokens/Design tokens: seko.tokens.json in the W3C DTCG format is the source; seko-tokens.css is generated from it (npm run tokens)
src/css/seko.css reader component library · editorial.css editorial screens · cards.css social card templates
src/data/Microcopy per edition (i18n.mjs); loaders over the real corpus (live/*.json from the discovery pass); English and German machine versions under translations/; editorial records
import/2026-09/ · discovery/The live-site export taken once with checksums, and the discovery pass outputs (records, persons, report) — structure §15
src/templates/Page shell and furniture, reader pages, editorial screens, cards/email/feed/icons, documentation site
src/assets/Self-hosted OFL font subsets, contributor portraits cut from the live site, the outlined wordmarks (mark-paths.json)
src/js/seko.jsThe one reader script: theme, text size, progress, reading mode, copy, newsletter states, search
build.mjsWrites the whole prototype to dist/ with relative links
tools/Font fetch/merge/subset, image fetch and crops, mark outlining, icon rasterising, the acceptance checker, a static server
canvas/The v2 design-canvas files as received, with their import paths updated to src/
docs/Briefs, design notes, decision records (decisions/, MADR), the dated work log (log/); the built documentation site lives at dist/docs/

Build and view

npm run build     # → dist/ (identical on every platform)
npm run icons     # macOS only: regenerate the committed raster icons after the mark changes (ADR 0018)
npm run cards     # render the missing or stale share cards (og:image, 1200 × 630 JPEG) with a local Chrome and commit them (ADR 0032); check fails until they are current
npm run deploy:preview  # build, check, upload to seko.pages.dev with noindex (ADR 0019); CI runs the same script after every merge to main (ADR 0025)
npm run serve     # http://localhost:4321/ — the prototype index is the root page
npm run check     # budget, links, landmarks, alt text, logical properties, HTML validation (html-validate)

Start at dist/index.html: it maps every screen and state in the brief to a URL, in Sorani (RTL), English (LTR) and the German Tier 3 sample, and links the documentation (tokens, components, RTL rule sheet, binding sheet, microcopy, card spec, design notes).

Regenerating assets (network needed): npm run import takes the export again, runs the discovery pass and re-selects the prototype set with portraits; npm run fonts fetches the Google-served subsets and python3 tools/merge-fonts.py, python3 tools/subset-variable.py <dir with variable TTFs> [output.woff2 …] and python3 tools/tighten-arabic.py produce the shipped files, and python3 tools/plex-arabic.py the IBM Plex Sans Arabic files for the prototype index (fontTools, brotli and uharfbuzz via pip); python3 tools/clean-portraits.py re-cuts the portrait set from the originals (numpy, opencv-python and Pillow via pip); python3 tools/make-mark.py outlines the wordmarks.

Working rules

CLAUDE.md states the standards the repo follows and how work is recorded: every non-trivial decision is an ADR in docs/decisions/, every session appends to docs/log/, CHANGELOG.md follows Keep a Changelog, commits follow Conventional Commits, and npm run check must pass before a commit. CONTRIBUTING.md has the checklist; LICENSE.md the terms per part of the repo.

Conventions

  • Sorani is the origin: every component is drawn in RTL first and the LTR edition is the same template with dir and the type stack changed. Layout CSS uses logical properties only (the checker fails on physical ones).
  • No page depends on script to show its text. seko.js is the only script and it only adds behaviour; controls it powers are hidden in the markup so no dead control is shown.
  • Section colour on labels, rules, progress bar and row hover only; brand blue on links and focus; gold on dossier labels.
  • The language model is visible where it acts: translation notices in three variants, the Tier 3 line, corrections that say what they corrected, and proposal chips on the editorial screens. Never "AI" in reader-facing text.
  • URLs follow structure §6: /{edition}/{section}/{slug}/, native-script slugs for Arabic-script editions, localised system segments from one routing table.

Status

The prototype runs on Seko's real content: 32 articles selected from the 1007 in the export, the real contributors with their portraits and bios, the real About and Contact pages. English and German versions are machine translations published with the notice until an editor post-edits them. See docs/design-notes.md and the decision records; D1–D13 remain with the editors.

Prototype build 2026-09-30 · 690 files · 9add70f on main · Icons: Octicons (MIT) · Arabic script on this page: IBM Plex Sans Arabic (OFL)