mongodb/leafygreen-ui · Archived

leafygreen-authoring

>- Auto-invoked when writing or editing React components (.tsx/.ts) in a project that has @leafygreen-ui packages in package.json. Provides component mapping, import conventions, design token usage, and Figma MCP auto-install workflow.

First seen May 8, 2026

Installation

$ npx skills add mongodb/leafygreen-ui --skill leafygreen-authoring

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from mongodb/leafygreen-ui.

npx skills add mongodb/leafygreen-ui

Browse all from mongodb/leafygreen-ui

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 263
License LICENSE
Default branch main
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseMongoDB

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,581 B
  • docs SUMMARY.md 260 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

LeafyGreen Authoring Conventions

Apply these conventions whenever writing or editing React components in a project that uses @leafygreen-ui/* packages.

Always prefer LeafyGreen components over plain HTML

When a user asks to add any UI element — in plain language, from a Figma design, or anywhere else — always check if a LeafyGreen component exists for it first. Never use a plain HTML element (<button>, <input>, <select>, etc.) when an @leafygreen-ui equivalent is available.

Common mappings:

User asks for… Use
Button, CTA @leafygreen-ui/buttonButton
Text input, text field @leafygreen-ui/text-inputTextInput
Dropdown, select @leafygreen-ui/selectSelect, Option
Searchable dropdown @leafygreen-ui/comboboxCombobox
Search box @leafygreen-ui/search-inputSearchInput
Number field @leafygreen-ui/number-inputNumberInput
Checkbox @leafygreen-ui/checkboxCheckbox
Radio button @leafygreen-ui/radio-groupRadioGroup, Radio
Toggle, switch @leafygreen-ui/toggleToggle
Icon button @leafygreen-ui/icon-buttonIconButton
Icon @leafygreen-ui/iconIcon
Heading, body text, label @leafygreen-ui/typographyH1H3, Body, Label, Subtitle
Modal, dialog @leafygreen-ui/modalModal
Tooltip @leafygreen-ui/tooltipTooltip
Tabs @leafygreen-ui/tabsTabs, Tab
Table @leafygreen-ui/tableTable, Row, Cell
Badge, tag, chip @leafygreen-ui/badgeBadge
Banner, alert @leafygreen-ui/bannerBanner
Toast, notification @leafygreen-ui/toastToast
Menu, context menu @leafygreen-ui/menuMenu, MenuItem
Card @leafygreen-ui/cardCard
Code block @leafygreen-ui/codeCode
Logo / logomark @leafygreen-ui/logoMongoDBLogoMark, MongoDBLogo
Stepper, progress steps @leafygreen-ui/stepperStepper, Step
Pipeline @leafygreen-ui/pipelinePipeline, Stage

If a package is not yet installed, install it before writing the component code:

npm install @leafygreen-ui/[package-name]

Component imports

Always use named imports for LG components:

import { H1, Body, Subtitle } from '@leafygreen-ui/typography'
import { Button } from '@leafygreen-ui/button'
import Icon from '@leafygreen-ui/icon'           // default import
import { MongoDBLogoMark } from '@leafygreen-ui/logo'

Styling approach

Always use design tokens from @leafygreen-ui/tokens for colors — never hard-coded hex values. Tokens are the single source of truth for color in the design system and automatically resolve to the correct value for dark or light mode.

import { palette } from '@leafygreen-ui/tokens'

// Correct: use a token
color: palette.gray.dark2

// Avoid: hard-coded hex
color: '#3D4F58'

Figma MCP → auto-install missing packages

When implementing a design from the Figma MCP, the component descriptions include the LeafyGreen package name, e.g.:

⚛️ React name: @leafygreen-ui/text-input
⚛️ React name: @leafygreen-ui/select

Before writing any component code:

  1. Scan all ⚛️ React name: entries in the Figma design context
  2. Cross-check each @leafygreen-ui/* package against package.json
  3. Install any that are missing: npm install @leafygreen-ui/[package-name]
  4. Never substitute plain HTML for a LeafyGreen component that is called out in the design spec

File structure

  • New components go in src/components/[ComponentName].tsx
  • One component per file
  • Name files and components in PascalCase: ProjectCard.tsx, not project-card.tsx
  • Ask before creating new folders outside of src/components/

TypeScript

  • Always define prop types explicitly using TypeScript interfaces
  • Do not use any as a type

General

  • Keep components focused. If a component is doing more than one thing, split it.