Building With Lobe UI
lobehub/lobe-ui
Build UI with the LobeHub design ecosystem — @lobehub/ui (plus its base-ui, chat, mobile, awesome, brand, mdx, i18n namespaces), @lobehub/icons, @lobehub/charts, @lobehub/fluent-emoji and…
Generate or complete a Mintlify MDX documentation page for a BEEQ component.
$ npx skills add Endava/BEEQ --skill doc-component -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Endava/BEEQ doc-component --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Endava/BEEQ.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/doc-component .claude/skills/doc-component && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "doc-component" agent skill from https://github.com/Endava/BEEQ/tree/main/.agents/skills/doc-component into .claude/skills/doc-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-component", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Endava/BEEQ/tree/main/.agents/skills/doc-componentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Endava/BEEQ --skill doc-component -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Endava/BEEQ doc-component --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Endava/BEEQ.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/doc-component .agents/skills/doc-component && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "doc-component" agent skill from https://github.com/Endava/BEEQ/tree/main/.agents/skills/doc-component into .agents/skills/doc-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-component", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Endava/BEEQ --skill doc-component -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Endava/BEEQ doc-component --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Endava/BEEQ.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/doc-component .cursor/skills/doc-component && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "doc-component" agent skill from https://github.com/Endava/BEEQ/tree/main/.agents/skills/doc-component into .cursor/skills/doc-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-component", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Endava/BEEQ.git --path .agents/skills/doc-component--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Endava/BEEQ --skill doc-component -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Endava/BEEQ doc-component --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Endava/BEEQ.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/doc-component .gemini/skills/doc-component && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "doc-component" agent skill from https://github.com/Endava/BEEQ/tree/main/.agents/skills/doc-component into .gemini/skills/doc-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-component", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Endava/BEEQ doc-componentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Endava/BEEQ --skill doc-component -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Endava/BEEQ.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/doc-component .github/skills/doc-component && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "doc-component" agent skill from https://github.com/Endava/BEEQ/tree/main/.agents/skills/doc-component into .github/skills/doc-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-component", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Endava/BEEQ --skill doc-component -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Endava/BEEQ doc-component --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Endava/BEEQ.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/doc-component .opencode/skills/doc-component && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "doc-component" agent skill from https://github.com/Endava/BEEQ/tree/main/.agents/skills/doc-component into .opencode/skills/doc-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-component", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
doc-componentGenerate or complete a Mintlify MDX documentation page for a BEEQ component.
Doc Component is an agent skill from Endava/BEEQ. Generate or complete a Mintlify MDX documentation page for a BEEQ component. Reads the component source to extract props, events, slots, shadow parts, and CSS variables, and follows the mandatory page structure from the documentation guidelines.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Markdown, Design tokens and Design systems. The repository describes itself as: BEEQ Design System, a web component library ruled by Endavan developers :). The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 5f4728d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
tsxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
storybook.beeq.designFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Doc Component loads about 3.3k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 1,403 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Endava/BEEQ at commit 5f4728d, republished under its Apache-2.0 licence (© Endava). 1,403 words, ~3,334 tokens.
.claude/skills/doc-component/SKILL.md (or your agent's skills folder).bq-* component.packages/beeq/src/components/<name>/bq-<name>.tsx — @Prop, @Event, @Method, class-level JSDoc (@slot, @part, @cssprop, @attr)packages/beeq/src/components/<name>/bq-<name>.types.ts — prop type unions and constantspackages/beeq/src/components/<name>/scss/bq-<name>.variables.scss — all --bq-<name>-* CSS custom properties with their defaultsWrite the page in this section order — do not skip or reorder:
title, description)block dark:hidden / hidden dark:block)CardGroup with Do / Don't cards using bullet lists)Frame, followed by a parts table)CardTile, Steps, Note as appropriate)CodeLivePreview + CodeGroup)CodeLivePreview + CodeGroup)CardGroup, 4 Do/Don't pairs minimum)CardGroup with Storybook + GitHub source links)All images follow: /components/images/<name>/<name>-[variant]-[light|dark].svg
Every image appears twice — once with className="block dark:hidden" and once with className="hidden dark:block".
<CardGroup cols={2}>
<Card>
<span className="flex items-center mr-2 text-lg font-medium" role="heading">
<Icon className="mr-2" icon="thumbs-up" iconType="solid" size={20} color="var(--bq-stroke--success)" />
Use [component] when
</span>
- bullet 1
- bullet 2
</Card>
<Card>
<span className="flex items-center mr-2 text-lg font-medium" role="heading">
<Icon className="mr-2" icon="thumbs-down" iconType="solid" size={20} color="var(--bq-stroke--danger)" />
Do not use [component] when
</span>
- bullet 1
- bullet 2
</Card>
</CardGroup>Prefer mode="iframe" for new CodeLivePreview examples. Iframe mode gives the example a full document sandbox, so Mintlify layout, CSS, and page scripts cannot influence the preview, and preview scripts cannot disrupt the docs page.
Always pass the mode explicitly:
<CodeLivePreview mode="iframe" height="12rem" code={`...`} />Use iframe mode whenever an example includes layout behavior, scripts, overlays, popovers, fixed or absolute positioning, responsive containers, page-like composition, or anything that could conflict with the Mintlify documentation shell. Always include an explicit height; use removePadding when preview padding would hide the real layout behavior.
Shadow mode is still allowed for small, component-local examples that will not disrupt the Mintlify page and do not need full document isolation. In shadow mode, CodeLivePreview injects code into a shadow root. beeq.css is loaded automatically, and CSS custom properties (--bq-*) still inherit through the boundary.
In shadow mode, override the host (.preview) layout with :host inside a <style> block. Override properties require !important to beat the CodeLivePreview stylesheet:
<style>
:host { flex-direction: column !important; gap: var(--bq-spacing-m) !important; }
.my-wrapper { display: flex; gap: 1rem; }
</style>Do not use @scope — it was the old light-DOM approach and is no longer needed.
Do not use <style scoped> — not a real browser feature.
Every <script> block must use previewRoot to query elements inside the preview. In iframe mode, previewRoot is the iframe document. In shadow mode, previewRoot is the shadow root. document.currentScript is always null for dynamically created scripts. Wrap in an IIFE to prevent variable leakage:
<script>
(() => {
const btn = previewRoot.querySelector('bq-button');
btn?.addEventListener('bqClick', () => { /* ... */ });
})();
</script>Do not wrap examples in unnecessary <div>s for alignment purposes. In shadow mode, use :host overrides for preview layout. In iframe mode, use normal document CSS inside the preview.
Every CodeLivePreview must be followed by a CodeGroup. The code shown in the tabs must align with what the preview renders.
Use this tab order:
CSS — only when the styles are essential for understanding or reusing the exampleJavaScript — only when the script is long enough to deserve its own tabHTML (kebab-case attributes)React (camelCase props, onBqEventName for events)Angular (ts code block; standalone @Component; import { BqX } from "@beeq/angular/standalone"; (bqEventName) for events; empty class body {} when no logic)Vue (camelCase props, @bqEventName for events)Every fenced code block used as a Mintlify tab must include the correct icon. Add expandable only when the code block has more than 7 lines of code; short snippets should stay fully visible because Mintlify collapses expandable blocks too aggressively. Keep all apps/beeq-docs/index.mdx code tabs open, regardless of length.
| Tab | Opening fence |
|---|---|
| CSS | css styles.css icon="css" |
| JavaScript | javascript script.js icon="js" |
| HTML | html HTML icon="html5" |
| React | jsx React icon="react" |
| React with TypeScript | tsx React icon="react" |
| Angular | ts Angular icon="angular" |
| Vue | vue Vue icon="vuejs" |
Keep one empty line between each fenced code block inside a CodeGroup.
CSS tabs are required only when the styles are essential for understanding or reusing the example. Do not add a CSS tab for incidental preview layout. React examples must import the CSS filename shown in the CSS tab when one exists, for example import "./styles.css";.
HTML tabs should include JavaScript inline when the behavior belongs to the HTML example. Add a separate JavaScript tab only when the script is too long to keep the HTML readable.
Angular examples must use the standalone implementation approach, not Angular modules. Angular and Vue examples should use inline styles unless external CSS is critical to the example and appears in a CSS tab.
<Card>
<span className="flex items-center mr-2 text-lg font-medium" role="heading">
<Icon className="mr-2" icon="check" iconType="solid" size={20} color="var(--bq-stroke--success)" />
Do
</span>
Positive guidance as a complete sentence.
</Card>
<Card>
<span className="flex items-center mr-2 text-lg font-medium" role="heading">
<Icon className="mr-2" icon="xmark" iconType="solid" size={20} color="var(--bq-stroke--danger)" />
Don't
</span>
What to avoid and briefly why.
</Card>| Part | Element | Description |
|---|---|---|
| 1 | Name | What this part does |
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
propName | prop-name | Description from JSDoc | 'option1' | 'option2' | 'option1' |
If the component has more than 5 variables, wrap in <Expandable title="CSS variables" defaultOpen={true}> (use defaultOpen={false} when the list is very long, e.g. 20+). If 5 or fewer variables, display the table directly — no <Expandable> wrapper needed. Columns: Variable, Description, Default.
Extract all variables from bq-<name>.variables.scss. Default values must use var(--bq-*) CSS custom properties — never Tailwind theme() function calls. Map each theme(...) value to its underlying var(--bq-*) equivalent. Hardcoded values (e.g. transparent, none, solid, unset, plain numbers like 0 or 10, pixel values like 24px) are kept as-is.
<CardGroup cols={2}>
<Card horizontal title="Interactive playground" icon="code" href="https://storybook.beeq.design/?path=/story/components-<name>--default">
Explore <name> variants and states in Storybook
</Card>
<Card horizontal title="Source code" icon="github" href="https://github.com/Endava/BEEQ/tree/main/packages/beeq/src/components/<name>">
View the component source on GitHub
</Card>
</CardGroup>1. Defining terms the reader already knows — use the correct term and trust the reader. Do not add "also known as" aliases.
❌ CSS custom properties, also known as CSS variables, let you…
✅ CSS custom properties follow the --bq-* naming convention…
2. "Once X is Y, you can Z" — go straight to the action. Avoid dependent clauses that restate what was just explained.
❌ Once the part is exposed, you can style it with ::part().
✅ Style it using ::part() from your own stylesheet:
3. Hedged observations — lead with outcomes, not "works well together when you want to…" constructions.
❌ These two approaches work well together when you need more control.
✅ Combine CSS variables and ::part() when token overrides alone aren't enough.
4. Callouts that disclaim — <Note>, <Tip>, and <Warning> should give the reader a useful constraint or shortcut, not justify a documentation choice.
❌ The examples use inline CSS for clarity.
✅ The examples use inline <style> tags so you can run them directly.
apps/beeq-docs/components/<name>.mdx.Keywords sections, rewrite stale language for Mintlify, and verify values against current source before documenting them.After writing, run review-doc on the new page to verify compliance.
© Endava, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/doc-component of Endava/BEEQ.
Open the folder on GitHubat commit 5f4728d
Doc Component next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Doc Component this skillEndava/BEEQ | 163 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Building With Lobe UIlobehub/lobe-ui | 2.2k | — | ~2k | Automated safety check: Pass | MIT | |
| Figma Design System Builderwarpdotdev/warp | 65k | 2 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Design SystemOhh-889/skyroc | 795 | 11 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Design Dnazanwei/design-dna | 1.9k | 1 repos | ~2.1k | Automated safety check: Pass | MIT |
lobehub/lobe-ui
Build UI with the LobeHub design ecosystem — @lobehub/ui (plus its base-ui, chat, mobile, awesome, brand, mdx, i18n namespaces), @lobehub/icons, @lobehub/charts, @lobehub/fluent-emoji and…
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
Ohh-889/skyroc
Token architecture, component specifications, and slide generation.
zanwei/design-dna
Extract, define, and apply design DNA across three dimensions: design system (tokens), design style (qualitative feel), and visual effects (Canvas, WebGL, 3D, particles, shaders, scroll effects…
scalar/scalar
Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.
Endava/BEEQ
Builds, styles, and reviews UI with BEEQ, Endava's web-component design system.
Endava/BEEQ
Create a new BEEQ StencilJS web component. An agent skill from Endava/BEEQ.
Endava/BEEQ
Audit and fix WCAG 2.1 Level AA accessibility issues in BEEQ StencilJS components.
Endava/BEEQ
Review a BEEQ StencilJS component against design system guidelines and project standards.
Endava/BEEQ
Write E2E tests for BEEQ StencilJS components using @stencil/vitest in browser mode (Playwright/Chromium).
Endava/BEEQ
Write Storybook stories and MDX docs for BEEQ web components.
Categories
Generate or complete a Mintlify MDX documentation page for a BEEQ component. Doc Component is an agent skill from Endava/BEEQ. Generate or complete a Mintlify MDX documentation page for a BEEQ component.
Doc Component fits situations like: tasks that involve Markdown; tasks that involve Design tokens; tasks that involve Design systems.
Run `npx skills add Endava/BEEQ --skill doc-component -a claude-code`. Or copy the skill folder (.agents/skills/doc-component in Endava/BEEQ) into .claude/skills/doc-component in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Endava/BEEQ --skill doc-component -a codex`. Or copy the skill folder (.agents/skills/doc-component in Endava/BEEQ) into .agents/skills/doc-component in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Endava/BEEQ --skill doc-component -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doc-component, .gemini/skills/doc-component, .github/skills/doc-component and .opencode/skills/doc-component in your project.
Going by SKILL.md and its folder, Doc Component needs the command-line tools its instructions call (tsx).
SKILL.md names 1 domain. In commands or code: storybook.beeq.design; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Doc Component is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Doc Component: Building With Lobe UI (lobehub/lobe-ui, 2.2k stars), Figma Design System Builder (warpdotdev/warp, 65k stars), Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars) and Design System (Ohh-889/skyroc, 795 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Endava (a GitHub organization) maintains it in Endava/BEEQ, which has 163 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 6, 2026.
Source: Endava/BEEQ on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.