From lugui-ai
Lugui's real design system (Plus Jakarta Sans + cream/deep-green palette + lime accent, extracted from a production Lugui page). MUST be loaded BEFORE generating or editing ANY HTML destined for pages.lugui.ai (e.g. for /lugui-ai:pages:publish). Provides the canonical tokens, the base template, and rules so output is unmistakably Lugui and never generic AI slop.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lugui-ai:brandingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill is the **design system for any page you generate** for
This skill is the design system for any page you generate for
/lugui-ai:pages:publish. It was extracted from a real production Lugui page
("Implantação · Lugui"), so following it makes output look like Lugui — warm,
structured, fintech-for-real-estate — and avoids generic "AI slop".
tokens.css, NEVER invent names/valuesGenerating a page means: start from template.html and use only these
token names, with these exact values (full list in tokens.css — read it if
unsure, never guess):
--lugui-dark: #2B4A42 --lugui-text: #1A1A1A --lugui-premise: #F4EFD8
--lugui-lime: #D4F34A --lugui-muted: #5F6B68 --lugui-soft: #F7F4EA
--lugui-cream: #EDE8DC --lugui-border: #D9D4C7 --lugui-danger: #B8412A
--lugui-navy: #1A2332 --lugui-border-strong: #B5AE9A --lugui-warn: #C7861B
--lugui-sage: #5A7A70 --lugui-white: #FFFFFF --lugui-success: #3F7A4A
Font: Plus Jakarta Sans via Google Fonts (var(--lugui-font-sans)); mono
var(--lugui-font-mono). Radius --radius-sm/md/lg/xl, shadows
--shadow-sm/md/lg, transitions --t-fast/--t-base, focus --lugui-focus-ring.
These do NOT exist — using them is the bug this skill prevents:
--lugui-primary, --lugui-accent, --lugui-bg, --lugui-secondary, or any
generic grey such as #1a1a2e / #f5f6fa. There is no var(--lugui-font-sans)
without also loading Plus Jakarta Sans from Google Fonts. If you find yourself
inventing a token name, STOP and read tokens.css.
Hard rule: start EVERY page from template.html (it already wires the
tokens, the font, the cream background, and the lugui. wordmark). Don't write
markup from scratch.
Two companion files live next to this one:
tokens.css — the full :root (colors, radius, shadow, transitions,
fonts). The source of truth. Copy/@import it.template.html — a clean, on-brand starting page (header + hero + card +
footer) wired to the tokens. Start every new page from this.Cream paper, deep forest green for structure, and a single electric lime accent used like a highlighter. Confident, calm, human. Never neon-everywhere, never flat white, never purple-gradient SaaS.
| Token | Hex | Use it for |
|---|---|---|
--lugui-dark | #2B4A42 | Structure: headers, primary buttons, dark cards, headings, text on cream. The workhorse. |
--lugui-lime | #D4F34A | Signature accent — sparingly. Primary CTA text, the lugui. dot, active nav, one hero highlight, progress fill, focus glow. If everything is lime, nothing is. |
--lugui-cream | #EDE8DC | The default page background. Pages sit on cream paper, not white. |
--lugui-white | #FFFFFF | Elevated surfaces only — cards, tables, inputs — floating on the cream. |
--lugui-navy | #1A2332 | Deepest tone: primary-button hover, max contrast, shadow tint. |
--lugui-sage | #5A7A70 | Muted green for soft secondary accents / hover hints. |
--lugui-text | #1A1A1A | Body copy. |
--lugui-muted | #5F6B68 | Secondary text, labels, hints, eyebrows. |
--lugui-border | #D9D4C7 | Default borders & dividers (warm, never cold grey). |
--lugui-border-strong | #B5AE9A | Stronger/dashed borders (secondary buttons, file inputs, empty states). |
--lugui-premise | #F4EFD8 | Read-only / locked fields, callout background. |
--lugui-soft | #F7F4EA | Soft neutral fill: hovers, table headers, chips, badges. |
--lugui-danger | #B8412A | Errors, required *, destructive. |
--lugui-warn | #C7861B | Warnings, in-progress. |
--lugui-success | #3F7A4A | Success, sent/confirmed. |
Borders and shadows are warm/navy-tinted, never neutral grey. Shadows are
soft and low: --shadow-sm/md/lg use rgba(26,35,50,…).
ui-monospace, "SF Mono", Monaco, monospace (tokens, URLs).15px, line-height 1.55, color --lugui-text on cream.700, letter-spacing: -.01em, color --lugui-dark.clamp(28px, 4vw, 38–40px), line-height 1.1..block__title, modal h3): 22px.18px.15px; secondary/small: 13px; hints: 12px.32px weight 800, letter-spacing: -.02em.11px, letter-spacing: .14em,
text-transform: uppercase, weight 600, color --lugui-muted. Use it
above titles for context ("CUSTOMER SUCCESS · LUGUI").The logo is text, not an image: the lowercase wordmark lugui followed by a
lime period — the dot is the brand signature.
<a class="brand" href="/">lugui<span class="brand__dot">.</span></a>
.brand { font-weight: 800; font-size: 20px; letter-spacing: -.02em; color: var(--lugui-dark); text-decoration: none; }
.brand__dot { color: var(--lugui-lime); }
On dark backgrounds the wordmark turns cream and the dot stays lime. Don't recolor, distort, or add effects to it.
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 18px; font:600 14px/1 var(--lugui-font-sans); border-radius:8px; border:1px solid transparent; cursor:pointer; transition: transform .08s ease, background var(--t-fast), border-color var(--t-fast); }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--lugui-dark); color: var(--lugui-lime); } /* lime ON green = the CTA */
.btn-primary:hover { background: var(--lugui-navy); }
.btn-secondary { background: var(--lugui-white); color: var(--lugui-dark); border-color: var(--lugui-border-strong); }
.btn-secondary:hover { border-color: var(--lugui-dark); }
.btn-sm { padding:6px 12px; font-size:13px; border-radius:6px; } .btn-lg { padding:14px 24px; font-size:15px; }
The hero CTA is lime text on deep green — that pairing is the most "Lugui" thing on the page. Use one primary button per view.
.card { background: var(--lugui-white); border: 1px solid var(--lugui-border); border-radius: var(--radius-lg); padding: 24px; }
.card--dark { background: var(--lugui-dark); color: var(--lugui-cream); border-color: transparent; } /* closing/CTA cards */
.card--hover:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); } /* clickable cards */
.badge { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; font:700 11px/1 var(--lugui-font-sans); letter-spacing:.06em; text-transform:uppercase; border-radius:999px; background: var(--lugui-soft); color: var(--lugui-dark); }
.badge--success { background:#E0EDDD; color: var(--lugui-success); }
.badge--warn { background:#FBE9C5; color: var(--lugui-warn); }
.badge--danger { background:#F5D6CE; color: var(--lugui-danger); }
.badge--accent { background: var(--lugui-lime); color: var(--lugui-dark); } /* e.g. "revisado" */
.callout { padding:16px 20px; background: var(--lugui-premise); border-left: 3px solid var(--lugui-lime); border-radius:6px; font-size:14px; line-height:1.55; }
.callout strong { color: var(--lugui-dark); }
A premise/important inline highlight is a lime pill (.premise-badge:
lime bg, dark text, uppercase 10px) — reuse the lime sparingly here too.
.table-wrap { background: var(--lugui-white); border:1px solid var(--lugui-border); border-radius: var(--radius-lg); overflow:hidden; }
table.tbl { width:100%; border-collapse:collapse; }
table.tbl th { padding:14px 18px; text-align:left; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--lugui-muted); font-weight:600; background: var(--lugui-soft); border-bottom:1px solid var(--lugui-border); }
table.tbl td { padding:14px 18px; font-size:14px; border-bottom:1px solid var(--lugui-border); }
table.tbl tbody tr:hover { background: var(--lugui-soft); }
input, select, textarea { width:100%; padding:10px 12px; font:14px var(--lugui-font-sans); color: var(--lugui-text); background: var(--lugui-white); border:1px solid var(--lugui-border); border-radius: var(--radius-sm); transition: border-color var(--t-fast), box-shadow var(--t-fast); }
input:focus, select:focus, textarea:focus { outline:none; border-color: var(--lugui-dark); box-shadow: var(--lugui-focus-ring); } /* lime glow */
1280px; reading/forms 880px. Center with
margin: 0 auto.padding: 32–48px 24px 96px; cards
24–36px. Use .stack > * + * { margin-top: 12–20px } for vertical flow and
CSS grid (grid-2/3/4, gap 16px) for columns — collapse to 1 column under
~880px.<h1> with one <em> whose font-style is reset and that
gets a lime background highlight (background: var(--lugui-lime); padding: 0 8px; border-radius: 4px). One per page.sm 6px (inputs/pills-of-text), md 10px (small cards/inputs),
lg 16px (cards/tables/modals), xl 24px (large feature blocks). Pills use
999px.--shadow-sm/md/lg). Cards are usually flat
(border only); reserve shadow for hover, modals, toasts, floating bars.--t-fast .15s for hovers, --t-base .25s for expand/collapse.Inferred from the product copy (a client onboarding form): professional, clear, and genuinely warm — plain Brazilian Portuguese, zero jargon.
— em dashes and a light human touch
("— Equipe Lugui"). Sign off as a partner, not a vendor.Do
template.html; pull values from tokens.css. Keep token names.<style>, no external CSS/JS deps beyond
the Google Fonts link). Keep it accessible (semantic tags, alt, focus ring)..14em eyebrow tracking,
the navy-tinted shadows. Those small things are what read as "Lugui".Don't
lugui + lime dot.When generating an HTML page for /lugui-ai:pages:publish:
template.html and bring in tokens.css (inline the :root).security-checklist and code-best-practices skills
before publishing.npx claudepluginhub lugui-co/lugui-ai-plugin --plugin lugui-aiCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.