Doop
Doop: 오픈소스 멀티플레이어 디자인 캔버스 및 AI 에이전트용 MCP
Konstrukt – Hooman Loop 디자인 시스템, 다섯 팔레트와 두 모드, 하나의 토큰으로 CSS·SwiftUI·매니페스트 생성
Konstrukt — The Hooman Loop design system. Five palettes, two modes, one token source, generated into CSS, SwiftUI, and a machine-readable manifest.
디자인Python · JavaScriptGitHub @the-hooman-loop온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기The Hooman Loop design system. JSON-first tokens, generated into CSS, SwiftUI and a JSON manifest. Includes an open proposal for a text/ASCII output layer.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The Hooman Loop design system. JSON-first design tokens, generated into CSS, Swift/SwiftUI, a JSON manifest, and a text/ASCII output layer, with a self-contained documentation site.
Konstrukt is the single source of truth: edit tokens in tokens/, run the
build, and every surface — web apps, marketing sites, internal tools, native
iOS, and character-cell channels — follows.
One palette · light + dark · 43 color roles · 8 type roles · 4 output targets · WCAG AA gated · 0px radius · 0 shadows. Bauhaus / Swiss International: flat surfaces, square corners, authority through typography rather than chrome.
Konstrukt ships a single palette, atelier: warm off-white, near-black ink,
one teal accent. data-mode="light" | "dark" on <html> switches between two
flat token sets resolved at build time. No runtime theme math in the browser.
Tokens are layered: raw color ramps in tokens/primitives.json are referenced
as {color.teal.700} and resolved at build time, never emitted. Semantic roles
(accent, danger, status-review, category-3) are what consumers use, and
dark mode overrides only the roles that differ.
npm install
npm run build # tokens/ -> dist/ (CSS, Swift, tokens.json, text) + docs/assets
npm run check # parity vs the committed snapshot + WCAG AA contrast
npm run snapshot # accept an intended token change
npm run check:text # text-layer linter + golden board
npm run docs # serve the docs site on http://localhost:4340
| Output | Path | For |
|---|---|---|
| Themed CSS | dist/css/konstrukt.css | all web surfaces (light + dark) |
| Components | dist/css/base.css | portable Konstrukt components |
| Theme runtime | dist/css/theme.js | HLTheme — sets the mode on <html> |
| Text embed | dist/css/text.css | pre.kt styling for character-cell blocks |
| Swift package | dist/swift/Konstrukt/ | iOS / SwiftUI |
| Manifest | dist/tokens.json | tooling, design apps, AI agents (includes text) |
| Text spec | dist/text.json | glyph ladders, column budgets, reserved marks |
| Text renderer | dist/text.py | vendored into cron collectors, briefings, CLI tools |
| Docs site | docs/ | reference + integration guides |
Every token is authored once, in W3C DTCG JSON, and its path becomes its CSS
custom property: status.draft-bg → --status-draft-bg. The reference page
reads the generated manifest, so what you see is what ships.
Typography is tokenized too. Each role (display, heading, subheading,
label, badge, body, meta, mono) is emitted as a font shorthand
plus tracking and case, and the Swift package gets the same roles as
KonstruktTextStyle:
h1 {
font: var(--type-display);
letter-spacing: var(--type-display-tracking);
}
Border widths are tokens as well: --stroke-hairline (1px), --stroke-rule
(the 2px ink rule) and --stroke-rail (the 4px accent rail).
Every foreground/background pair the components render is checked against
WCAG 2.2 AA in both modes: 4.5:1 for text, 3:1 for control outlines, focus
rings and structural rules. npm run check fails the build when a pair drops
below. 80 pairs pass today.
The portable component vocabulary: modules with 2px ink borders, status pills, category tags, primary and quiet buttons, form fields, alerts, data tables, question lists. Square by default, no shadows, teal reserved for the one primary action on a surface.
Charts, annotations and CLI motion for channels that render characters instead of pixels. Nine primitives, two encodings, and a linter that fails a build when a chart lies about a number.
The text layer is part of the versioned contract. Glyph ladders, column budgets
and reserved marks live in tokens/text.json. npm run build
emits dist/text.json and a self-contained dist/text.py for vendoring. Read
the spec: docs/text.md. Run the renderer:
python3 dist/text.py.
Twelve compositions that use the shipped primitives. Numbers on the slides are example data; the phones are mockups, not device captures.
| # | Slide | File |
|---|---|---|
| 1 | One language, every channel | page-01.png |
| 2 | Meetup RSVPs | page-02.png |
| 3 | Morning brief | page-03.png |
| 4 | Plant watering | page-04.png |
| 5 | Weekly review | page-05.png |
| 6 | Same chart, two encodings | page-06.png |
| 7 | Design sprint | page-07.png |
| 8 | Client pipeline | page-08.png |
| 9 | Morning brief, on a phone | page-09.png |
| 10 | Site traffic, on a phone | page-10.png |
npm run docs, or the
published copy at thehoomanloop.com/konstrukt.docs/text.html. Spec:
docs/text.md. Review sheet:
docs/text-review.html.DESIGN.md.docs/ios.html.scripts/README-deploy.md.llms.txt (curated index),
llms-full.txt (generated full docs),
AGENTS.md (working in this repo). The live public docs page is
thehoomanloop.com/konstrukt.Author tokens in tokens/ as W3C DTCG JSON. A token's path becomes its CSS
custom property (status.draft-bg → --status-draft-bg). Never edit anything
in dist/ — it is generated. After editing, run
npm run build && npm run check && npm run check:text. If the parity gate
fails because you meant to change a value, run npm run snapshot and commit
the snapshot diff alongside the token change.
proposals/ holds work that is under review and promises nothing. It has no
version, no gate, and no compatibility guarantee. When a proposal is stable it
is promoted into tokens/ and src/ through the checklist in
CONTRIBUTING.md, and only then does it ship.
Read CONTRIBUTING.md first. The short version: a new
output needs a gate, a new primitive needs a real consumer in the same pull
request, and a vendored copy carries a version stamp.
MIT for the code and tokens. The Konstrukt name and marks are not covered by
the license. See LICENSE.
Konstrukt is a project of The Hooman Loop.
| 11 |
| RSVP check-in |
| page-11.png |
| 12 | Konstrukt is open source | page-12.png |