Skip to content
Back to skills

Orglet Ui

ASecurity

Use when building, changing or reviewing UI in the Orglet desktop app (apps/desktop/src/renderer), so you reuse its components and follow its design rules.

  • 5 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsgoshellaws

Works with

  • cli

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add codepawl/orglet --skill orglet-ui --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orglet Ui?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Orglet Ui
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/codepawl-orglet-ui/badge)](https://www.skillsdirectory.com/skills/codepawl-orglet-ui)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: orglet-ui
description: Use when building, changing or reviewing UI in the Orglet desktop app (apps/desktop/src/renderer), so you reuse its components and follow its design rules.
---

# Orglet UI (the desktop app)

Orglet's renderer uses the generic kit in `packages/orglet-ui` (`@codepawlhq/orglet-ui`) plus app components in
`apps/desktop/src/renderer/components/`. Paths below are relative to the repo root.

## Rules for every UI change

1. **Component before raw HTML.** Use a kit or app component before a raw `<button>`, `<select>`,
   `<input type="checkbox">`, dialog, menu, toast or tooltip. `tests/integration/ui-kit-usage.test.ts` (part of
   `pnpm test`) counts raw `<button>`, `<select>`, checkbox inputs, `title=` attributes and hard-coded hex colours per
   renderer file against a baseline that may only go down. It fails when you add one.
2. **Import from the app wrapper when one exists** (`./ui`, `./Select`, `./Checkbox`, `./Switch`, `./toast`,
   `./confirm` ...), because the wrapper adds translated labels, icons and notice recording. Otherwise import from
   `@codepawlhq/orglet-ui`. Never import the kit's `dist`.
3. **Tokens, not hex.** Colours, radii and spacing come from the tokens in `apps/desktop/src/renderer/styles.css`
   (`--text`, `--muted`, `--accent`, `--row-hover` ...) and the kit's `--org-*` tokens.
4. **Text goes through `t('Vietnamese source')`.** Add the English line to `apps/desktop/src/shared/locales/en.ts`
   in the same change and keep `pnpm i18n:keys` clean. Core messages use `tMessage(...)`; label maps use
   `translated({...})`.
5. **A hover label is the kit's `Tooltip`, not a `title=` attribute.**
6. **No spinner.** A wait draws `Skeleton` in the shape of what is coming; fetch on hover (`renderer/prefetch.ts`)
   so a click shows kept content at once.
7. **No horizontal divider lines, no eyebrow labels, no coloured left-border callouts.** Separate with spacing,
   grouping or a quiet background.
8. **A state leads with a mark.** Success, failure, warning and waiting each get an icon whose shape differs, in the
   state's colour (`StatusMark`, `--success`, `--error`). Colour alone is never the only signal.
9. **The shape says what a control does.** Two states: `Switch`. Pick from a list or confirm once: `Checkbox`. One
   of a few: `Select`. Icons sit left of text; icon-only buttons need `aria-label`.
10. **Quiet shell.** Calm ChatGPT-like layout, tight spacing, details on demand. A close (X) button belongs only to
    a centred dialog; a panel or page is left by navigating or by the toggle that opened it.
11. **UI is checked on the rendered screen, not only in code.** After any UI change run `pnpm build`, then
    `pnpm test:alignment`, and fix every finding. A new screen is added to `scripts/alignment-check.mjs` in the same
    change.
12. **Docs and tests in the same change** (README plus the matching `docs/` page; `tests/integration/*.test.ts`).

## Where to read next

| When you ... | Read |
|---|---|
| Pick a kit component (Button, Select, Dialog, Skeleton, Tooltip ...) | `packages/orglet-ui/skills/orglet-ui/SKILL.md` and `packages/orglet-ui/docs/components/<Name>.md` |
| Need to know which app component covers a need (sidebar, chat, viewers, runs, settings, kit wrappers) | `.agents/skills/orglet-ui/app-components.md` |
| Lay out panels, rows, forms, states, motion, or run the alignment check | `.agents/skills/orglet-ui/house-rules.md` |
| Add a component to the app or move one into the kit | `.agents/skills/orglet-ui/adding-a-component.md` |
| Change how the app is built, checked or released | `AGENTS.md`, `CONTRIBUTING.md` |
| Write user-facing docs | `docs/writing.md` |

If nothing fits, add the component first (see `adding-a-component.md`), then use it.

Files in this skill

  • SKILL.md3.7 KB
  • adding-a-component.md3 KB
  • app-components.md27.3 KB
  • house-rules.md7.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…