Every component, token, and pattern — numbered for review. Tell me which numbers to delete.
Color tokens, typography, spacing tokens, border-radius, and animation curves.
--blue, --green, --gold, --orange, --red, --purple, --cyan, --navy
--txt1, --txt2, --txt3, --txt4
var(--font-display), var(--font)
var(--s0) … var(--s16)
4px — base unit8px — comfortable16px — standard24px — spacious48px — section break80px — page break6px — inputs, small pills8px — badges, tags12px — cards, containers14px — glass panels16px — modals, shells100px — full pill/roundCDN SVGs
Three ambient gradient backgrounds — portal, website light, website navy.
.bg-dark
.bg-light
.bg-navy
Three glass container types — card (frosted), bubble (speech), flat (minimal).
.glass-card
.glass-bubble
.glass-flat
.glass-form
.glass-form @media(max-width:480px)
Glass intensity spectrum g1-g6, ghost, pill shapes, five sizes, disabled, glow accents.
.btn .btn-g1 … .btn-g6
.glow-blue, .glow-green, .glow-gold, .glow-orange, .glow-red
.btn-pill
.btn-xs (28px) · .btn-sm (36px) · .btn (44px) · .btn-lg (52px) · .btn-xl (60px)
.btn-ghost
disabled
.btn-g6.glow-blue.btn-pill, .btn-ghost.btn-pill
Text inputs, selects, textareas, labels, and form grid layout.
.input
.input.select
.input.textarea
CSS grid + .input
Every card type across portal and website — stat, folder, meeting, pipeline, pricing, review, step, feature, stats block, comparison.
.stat-card
.folder-card .folder-icon .fi-*
.meeting-card .mtg-status
.ps-card-island
.pipeline-card
.glass-card
.glass-card
.glass-card
.glass-card
grid layout
.glass-card + table
Header nav, portal left-nav, bottom island, footer.
.cb-header-bar .cb-logo .cb-header .cb-nav-link .cb-nav-cta
.left-nav .ln-btn .ln-label .ln-badge .ln-sep
.bottom-island .bottom-island-inner .bi-btn .bi-avatar
.glass-card
Status indicators, role badges, type/tier/grade, health timers, pills.
.badge-status .badge-queue .badge-active .badge-review .badge-approved
.badge-role .badge-owner .badge-admin .badge-editor .badge-client .badge-trial
.ps-ci-type .ps-ci-tier .ps-ci-grade
.health-timer
.pill
5-stage kanban board: Queue, Active, Review, Revisions, Approved.
.pipeline-col .col-hdr .col-body .pipeline-card[draggable]
Chat, review toolbox, drawing bar, recording, upload, progress tracker, wizard, marquee.
.chat-msg .chat-avatar .chat-bubble .chat-input-row
.dock-bubble .dk-island-wrap
.draw-bar .draw-tool .draw-colors .draw-sizes
.rec-indicator .rec-dot .rec-timer
.rv-ctx
.drop-zone
.tracker .tracker-node .tracker-ring .tracker-wire
.glass-card
animation: marquee-scroll
Sample icons from the full library (380+ assets). See icon-library.html for the complete set.
filter: invert(1)
filter: invert(1)
WEBP, no filter
Portal page shell, website 3-color section rotation, grid systems.
.portal-shell .ps-nav-shell .ps-island-shell .ps-main
.bg-light .bg-navy .bg-dark
CSS grid
Logo URLs, icon SVG paths, CSS keyframe names.
CDN links
<!-- Bug icon (white on transparent) --> https://assets.cdn.filesafe.space/mCNHhjy593eUueqfuqyU/media/685c436c7dbd377728cdbf85.svg <!-- Full wordmark (blue/color original) --> https://assets.cdn.filesafe.space/mCNHhjy593eUueqfuqyU/media/69b0caadbfc81fcf1a62c4f9.svg <!-- WHITE version: filter:brightness(0) invert(1) --> <!-- BLACK version: filter:brightness(0) -->
@keyframes
@keyframes fadeUp — opacity 0→1, translateY 20px→0 @keyframes fadeIn — opacity 0→1 @keyframes pulse — scale 1→1.05→1 @keyframes marquee-scroll — translateX 0→-50% @keyframes rec-blink — opacity 1→0→1 (recording dot) @keyframes wave — scaleY 0.4→1→0.4 (audio bars)
Section map for fast reference.
Visual cheat sheet for spacing tokens, container widths, button measurements, and common violations.
var(--s0) … var(--s16)
--s0 · 4px
--s1 · 8px
--s2 · 16px
--s3 · 24px
--s4 · 32px
--s5 · 40px
--s6 · 48px
--s8 · 64px
--s12 · 96px
--s16 · 128px
max-width constraints
| Name | Width | Use |
|---|---|---|
| Wizard SM | 400px | Quick questions, single-select |
| Wizard MD | 560px | Card grids, multi-select, inputs |
| Wizard LG | 720px | Full forms, file upload, preview |
| Content | 960px | Main content area in portal |
| Website | 1200px | Marketing page max-width |
.btn-xs .btn-sm .btn .btn-lg .btn-xl
| Class | Height | Padding X | Font | Use |
|---|---|---|---|---|
.btn-xs | 28px | 12px | 11px | Inline actions, table rows |
.btn-sm | 36px | 16px | 12px | Compact UIs, nav CTAs |
.btn | 44px | 20px | 13px | Default — forms, modals |
.btn-lg | 52px | 28px | 14px | Hero sections, primary actions |
.btn-xl | 60px | 36px | 16px | Landing page hero CTA |
var(--s*)
| Token | Value | When to use |
|---|---|---|
--s0 | 4px | Tight label gaps, icon-to-text |
--s1 | 8px | Inline element gaps, grid gaps in tight layouts |
--s2 | 16px | Standard component padding, form grid gaps |
--s3 | 24px | Card padding, comfortable vertical spacing |
--s4 | 32px | Section sub-spacing, footer padding |
--s5 | 40px | Content area padding, generous spacing |
--s6 | 48px | Between components in style guide, marquee gap |
--s8 | 64px | Section bottom padding |
--s12 | 96px | Section top padding, page-level breaks |
--s16 | 128px | Hero-level vertical breathing room |
wrong → correct
| Wrong | Correct | Why |
|---|---|---|
| margin-bottom:20px | margin-bottom:var(--s3) | 20 is not on the 4px grid — use 24px (--s3) |
| gap:10px | gap:var(--s1) or var(--s2) | 10 is off-grid — pick 8px or 16px |
| padding:12px | padding:var(--s2) | 12 is between stops — round up to 16px |
| margin-top:6px | margin-top:var(--s1) | 6 is off-grid — use 8px (--s1) |
| padding:80px 32px | padding:var(--s12) var(--s4) | Always use tokens, never raw pixel values |
| gap:48px (in gap:48px) | gap:var(--s6) | Correct value but must use token reference |
| font-size:var(--s2) | font-size:16px | Font sizes are NOT spacing — use raw px |
| border-radius:var(--s2) | border-radius:16px | Border-radius is NOT spacing — use raw px |