Design System — SenseCraft AI

Figma Version1.0.1
Last Synced from Figma2026-04-17
Last Updated2026-04-20 14:15 CST

1. Visual Theme & Atmosphere

This design system defines the light mode theme only. Dark mode is not currently in scope.

SenseCraft AI presents a clean, precise aesthetic on a light neutral foundation. The interface sits on white (--white) and near-white (--neutral-50) surfaces that keep content legible and professional without clinical coldness. The deep teal secondary palette (--secondary-500) provides typographic weight and structural accents, while the lime-green primary (--primary-500) acts as the activation signal — used selectively for CTAs, active states, and status indicators.

The primary font is Space Grotesk (--font-family-en), a geometric sans-serif with a technical edge and subtle character. Noto Sans SC (--font-family-cn) serves all Chinese-language content at identical scale and weight. Space Mono (--font-family-code) handles all code, terminal output, and model identifiers.

Surface hierarchy is built with neutral grays: --white for cards and containers, --neutral-50 for recessed chrome (nav bars, input backgrounds, modal headers/footers), with --border / --border-regular borders to separate them. Shadows are reserved exclusively for floating layers (dropdowns, modals).

Key Characteristics:


1.1 SenseCraft Logotype

The SenseCraft logotype is a custom wordmark — not a font. It is composed of vector paths spelling "SenseCraft" as a single horizontal mark. The word "Sense" and "Craft" are visually continuous with no separator.

Variants

VariantUseColors
DuelPrimary brand mark on white/light surfaces"Sense" in #77BA2A (primary green), "Craft" in #003B4B (secondary teal)
Mono-brightOn dark or photographic backgroundsAll paths #FFFFFF (white)
Mono-darkOn white/light surfaces (single-color contexts)All paths #003B4B (secondary teal)
Mono-primaryAccent contexts, marketing materialsAll paths #77BA2A (primary green)

Dimensions

Usage Rules

Asset Files

Both SVG and PNG exports are in assets/logo/. Use SVG for web/digital, PNG for legacy contexts (slide decks, image-only platforms):

VariantSVGPNG
Duelsensecraft-duel.svgsensecraft-duel.png
Mono-brightsensecraft-mono-bright.svgsensecraft-mono-bright.png
Mono-darksensecraft-mono-dark.svgsensecraft-mono-dark.png
Mono-primarysensecraft-mono-primary.svgsensecraft-mono-primary.png

Brand Mark: Logotype + Label Text Lockup

A horizontal lockup pairing the SenseCraft logotype SVG with an accompanying label (e.g. "Account", "Studio", product names, or other platform identifiers).

Container

Logotype image

Label text


2. Color Palette & Roles

Primary (Lime Green — Action & Status)

--primary-50 primary50
#F5FCE8 Tint backgrounds, success fill
--primary-100 primary100
#E8F8C8 Hover backgrounds on light surfaces
--primary-200 primary200
#D4F394 Active/pressed tints
--primary-300 primary300
#BDED60 Progress bars, subtle accents
--primary-400 primary400
#A8E03C Hover state for primary elements
--primary-450 primary450
#A3D830 Mid-hover
--primary-500 primary500
#8FC31F **Primary CTA, interactive accent**
--primary-600 primary600
#76A219 Active/pressed primary
--primary-700 primary700
#5D8113 Dark text on light primary bg
--primary-800 primary800
#44600D Deep emphasis
--primary-900 primary900
#2B3F08 Near-black green, high-contrast text

Secondary (Deep Teal — Accents & Dark Text)

--secondary-50 secondary50
#E6F1F3 Tinted chip/tag backgrounds
--secondary-100 secondary100
#CCE3E7 Hover tint on teal-accented elements
--secondary-200 secondary200
#99C7CF Inactive chip text, muted teal accents
--secondary-300 secondary300
#66ABB7 Decorative borders, secondary icons
--secondary-400 secondary400
#338F9F Secondary interactive elements, info state
--secondary-450 secondary450
#045E77 Mid-tier teal accent
--secondary-500 secondary500
#003A4A **Primary dark text, section headings**
--secondary-600 secondary600
#002E3B Pressed/active dark text
--secondary-700 secondary700
#00232C Deep accent text
--secondary-800 secondary800
#00171E Near-black teal, maximum contrast text
--secondary-900 secondary900
#000C0F Absolute darkest — use sparingly

Neutral (Pure Gray — Surfaces & Text)

--neutral-50 neutral50
#FAFAFA Recessed chrome: nav bars, input bg, modal header/footer
--neutral-100 neutral100
#F5F5F5 Subtle hover tint on white surfaces
--neutral-200 neutral200
#E5E5E5 Default border, card dividers
--neutral-300 neutral300
#D4D4D4 Medium borders, disabled button bg
--neutral-400 neutral400
#A3A3A3 Placeholder text, disabled text
--neutral-500 neutral500
#737373 Secondary / meta text
--neutral-600 neutral600
#525252 Caption text, labels
--neutral-700 neutral700
#404040 Body text
--neutral-800 neutral800
#262626 Strong body text
--neutral-900 neutral900
#171717 Primary heading text
--white white
#FFFFFF Page background, card surfaces
--black black
#000000 Pure black — avoid in UI, use --neutral-900 instead

Semantic Colors

--success success
#8FC31F Matches primary-500 — model loaded, inference OK
--success-light successLight
#A8E03C Success hover
--success-dark successDark
#76A219 Success active/pressed
--warning warning
#FF9500 Throttling, resource alerts
--warning-light warningLight
#FFB340 Warning hover
--warning-dark warningDark
#CC7700 Warning active
--error error
#DC2626 Error state, failed inference
--error-light errorLight
#EF4444 Error hover
--error-dark errorDark
#B91C1C Error active
--info info
#003A4A Matches secondary-500
--info-light infoLight
#338F9F Info hover
--info-dark infoDark
#002E3B Info active

Border Colors

--border-light borderLight
#F5F5F5 Subtle internal dividers
--border border
#E5E5E5 Default card/container border
--border-regular borderRegular
#D9D9D9 Modal/pop-up chrome borders, input borders
--border-medium borderMedium
#D4D4D4 Moderate emphasis borders
--border-dark borderDark
#A3A3A3 Strong interactive borders
--border-primary borderPrimary
#8FC31F Active/selected/focus state
--border-secondary borderSecondary
#003A4A Teal-accented borders
--border-success borderSuccess
#8FC31F Success outlined elements
--border-warning borderWarning
#FF9500 Warning outlined elements
--border-error borderError
#DC2626 Error outlined elements

Semantic Surface Colors

--semantic-error-bg-light semanticErrorBgLight
#FFF1F1 Error/validation inline alert background (light surface only)

3. Typography Rules

Font Families

TokenMobileValueUse
--font-family-enfontFamilyEn'Space Grotesk', ui-sans-serif, system-uiAll EN UI, headings, body
--font-family-cnfontFamilyCn'Noto Sans SC', sans-serifAll CN UI and content
--font-family-codefontFamilyCode'Space Mono', ui-monospace, monospaceCode, model IDs, terminal output, slugs

Font Weights

Font weights are used as raw numeric values (not tokenized). Supported values:

ValueUse
300Subtle labels, decorative text
400Body, captions, UI labels
500Card titles, nav links
600Section headings, strong emphasis
700Display headings, hero text
800Maximum-impact hero, stat numbers

Type Scale

The quick brown fox jumps

--text-xs textXs 0.625rem letter-spacing: normal

The quick brown fox jumps

--text-xs textXs 0.75rem letter-spacing: normal

The quick brown fox jumps

--text-sm textSm 0.875rem letter-spacing: normal

The quick brown fox jumps

--text-base textBase 1rem letter-spacing: normal

The quick brown fox jumps

--text-lg textLg 1.125rem letter-spacing: normal

The quick brown fox jumps

--text-xl textXl 1.375rem letter-spacing: -0.01rem

The quick brown fox jumps

--text-2xl text2xl 1.875rem letter-spacing: -0.01rem

The quick brown fox jumps

--text-3xl text3xl 2.25rem letter-spacing: -0.02rem

The quick brown fox jumps

--text-4xl text4xl 3rem letter-spacing: -0.03rem

Type Hierarchy

Hero Display
3rem ExtraBold (800) Space Grotesk
Page Heading
2.25rem Bold (700) Space Grotesk
Section Heading
1.875rem SemiBold (600) Space Grotesk
Card Title
1.375rem Medium (500) Space Grotesk
Body Large
1.125rem Regular (400) Space Grotesk
Body
1rem Regular (400) Space Grotesk
Caption / Meta
0.75rem Regular (400) Space Grotesk
Code / Model ID
0.875rem Regular (400) Space Mono
Badge / Micro
0.625rem Medium (500) Space Grotesk

Principles


4. Component Stylings

Components are sourced from the CSG Design System (Figma). All sizes are exact from the Figma spec.


4.1 Text Button (文字按钮)

Sizes

SizeHeightLabel sizeUse
Small28px--text-sm (14px)Compact toolbars, inline actions
Default36px--text-sm (14px)Standard UI actions
Large42px--text-sm (14px)Primary page CTAs

Types & States

All button types share the same size system and support: Default, Hover, Pressed, Disabled states, and optional Icon Left / Icon Right layouts.

TypeUse CaseLight Surface Style
PrimaryMain CTA — Deploy, Run, Save--primary-500 bg, --white text; hover --primary-400; pressed --primary-600
DefaultGeneral action — Edit, View, Filter--neutral-50 bg, 1px solid --border-regular border, --neutral-700 text; hover border --border-dark
HighlightContextual emphasis — Upgrade, Featured--primary-50 bg, 1px solid --border-primary border, --secondary-500 text; hover bg --primary-100
SensitiveConfirmation step — Apply, ConfirmNeutral fill; requires user acknowledgement flow
DestructiveDelete, Remove, Wipe--error bg, --white text; hover --error-dark; pressed #991B1B
GhostTertiary / minimal chromeTransparent, 1px solid --border-regular border; hover border --border-dark
LinkInline text actionsNo bg/border; underline on hover; text --primary-500

Specs

Disabled State (all types)


4.2 Icon Button (图标按钮)

Sizes

SizeButtonIcon insideUse
Small28×28px14×14pxDense toolbars, row actions
Default36×36px18×18pxStandard icon actions
Large42×42px20×20pxPrimary icon CTAs

Types & States

All types support Default, Hover, Pressed, Disabled states.

TypeDefaultHoverPressedDisabled
Default--neutral-50 bg, 1px solid --border-regular, icon --neutral-700--neutral-100 bg, 1px solid --border-regular--neutral-200 bg, 1px solid --border-regular--neutral-100 bg, 1px solid --border, icon --neutral-300
Primary--primary-500 bg, no border, icon --white--primary-450 bg--primary-600 bg--neutral-300 bg, 1px solid --border-regular, icon --neutral-400
Highlight--neutral-50 bg, 1px solid --border-regular, icon --neutral-700--primary-50 bg, 1px solid --border-primary, icon --primary-600--primary-100 bg, 1px solid --border-primary, icon --primary-600--neutral-100 bg, 1px solid --border-regular, icon --neutral-300
Secondary--secondary-500 bg, no border, icon --white--secondary-450 bg--secondary-600 bg--neutral-100 bg, 1px solid --border, icon --neutral-300
Destructive--error bg, no border, icon --white--error-light bg--error-dark bg--neutral-300 bg, 1px solid --border, icon --neutral-400
GhostTransparent, no border, icon --neutral-700--neutral-100 bg--neutral-200 bgTransparent, icon --neutral-300
Sensitive--neutral-50 bg, 1px solid --border-regular, icon --neutral-700--semantic-error-bg-light bg, 1px solid --error, icon --error#FFE0E0 bg, 1px solid --error, icon --error--neutral-100 bg, 1px solid --border, icon --neutral-300

Specs


4.3 Text Input (文字输入框)

Dimensions

Variants

VariantDescription
DefaultPlain text input
With IconLeft icon for context (search, lock, etc.)
ExtendableGrows vertically; used for description fields

States

StateBorderText
Default1px solid --border-regular--neutral-700
Placeholder1px solid --border-regular--neutral-400
Focus1px solid --primary-450, box-shadow: 0 0 5px -2px --primary-500--neutral-700
Error1px solid --border-error--neutral-700
Disabled1px solid --border--neutral-400, opacity 0.5

Specs


4.4 Dropdown (下拉菜单)

Trigger Box

States

Same as Text Input: Default / Placeholder / Focus / Error / Disabled

Item TypeVariants
DefaultIcon=No / Left / Right × Default, Hover, Pressed, Disabled
PrimarySame — used for selected/active item
DestructiveSame — used for delete/remove options
SeparatorHeight spacing-2 (8px), full-width horizontal rule
TitleHeight 28px, section label in muted text

4.5 Radio Button (单选框)

StateAppearance
Selected, EnabledFilled circle --primary-500
Unselected, EnabledEmpty circle, border --border-medium
Selected, DisabledFilled circle, opacity 0.4
Unselected, DisabledEmpty circle, opacity 0.4

4.6 Toggle Switch (开关)

StateAppearance
ON, EnabledTrack --primary-500, thumb --white
OFF, EnabledTrack --secondary-500, thumb --neutral-500
ON, DisabledTrack --primary-600, opacity 0.4
OFF, DisabledTrack --secondary-600, opacity 0.4

4.7 Checkbox (复选框)

StateAppearance
Checked, EnabledFilled box --primary-500, --white checkmark
Unchecked, EnabledEmpty box, border --border-medium
Checked, DisabledFilled box, opacity 0.4
Unchecked, DisabledEmpty box, opacity 0.4

4.8 Cards & Containers

Standard Card

Model Card (Domain-Specific)

Featured Card


4.9 Badges & Status Indicators

StatusTextBorderBackground
Running / Active--primary-5001px solid --border-primaryrgba(143,195,31,0.1)
Warning--warning1px solid --border-warningrgba(255,149,0,0.1)
Error--error1px solid --border-errorrgba(220,38,38,0.1)
Inactive--neutral-4001px solid --neutral-700rgba(163,163,163,0.1)
Info--secondary-4001px solid --border-secondaryrgba(51,143,159,0.1)
Running Warning Error Inactive Info

4.10 Navigation Bar


4.12 Nav Button (导航按钮)

Navigation-specific text buttons used in sidebars, top nav, and breadcrumbs. Shares the same size system as Text Button but with an additional Center icon layout and intended for navigation-context interactions.

Sizes

SizeHeightUse
Small28pxCompact sidebar items, sub-nav
Default36pxStandard nav items
Large42pxTop-level nav, primary nav CTA

Width in styles matrix: 197px (standard nav item width)

Types, Icon Positions & States

All types support icon positions Left, Right, and Center, and all four states: Default, Hover, Pressed, Disabled.

TypeUse in NavigationStyle Guidance
DefaultStandard nav item (inactive)Transparent bg; text --neutral-500; hover text --neutral-900 + --neutral-100 bg tint
HighlightContextual call-to-action in nav (e.g. "Upgrade", "New")--primary-50 bg, 1px solid --border-primary border, --secondary-500 text; hover bg --primary-100
PrimaryActive / selected nav item--primary-500 text; rgba(143,195,31,0.1) bg tint
SensitiveConfirmation-required nav actionNeutral fill; requires confirmation before navigating away
DestructiveDangerous nav action (e.g. "Delete Workspace")--error text; hover rgba(220,38,38,0.06) bg
GhostMinimal nav item, no fill or border at restTransparent; 1px solid --border-regular border on hover; text --neutral-500--neutral-700

Icon Layout

PositionDescription
LeftIcon precedes label — used for nav items with a category icon
RightIcon follows label — used for items with a chevron, badge, or external link indicator
CenterIcon only, no visible label — used for collapsed sidebar or icon-only nav rail

Disabled State


4.13 Nav Icon Button (导航图标按钮)

Icon-only buttons used within navigation chrome — toolbars, collapsed sidebars, action rails, and mobile headers.

Sizes

SizeButtonIcon insideUse
Small28×28px14×14pxDense toolbar actions
Default36×36px18×18pxStandard nav toolbar
Large42×42px20×20pxPrimary nav action, mobile hamburger

Types & States

All types support: Default, Hover, Pressed, Disabled.

TypeStyle Guidance
DefaultTransparent bg; icon --neutral-500; hover --neutral-100 bg + icon --neutral-700
Highlight--primary-50 bg, 1px solid --border-primary border; icon --secondary-500; hover bg --primary-100
Primary--primary-500 bg; icon --white; hover --primary-400 bg
Secondary--neutral-100 bg; icon --neutral-500; hover icon --neutral-700 — used for secondary nav chrome
DestructiveIcon --error; hover rgba(220,38,38,0.06) bg
GhostNo bg or border at rest; 1px solid --border-regular border on hover only
Nav Icon Button vs Icon Button (4.2): Nav Icon Button is designed for navigation chrome contexts. It gains a Secondary type (for toolbar chrome) and drops the Sensitive type. Use Nav Icon Button for anything inside nav bars, sidebars, or toolbars; use Icon Button for actions within content areas.

4.14 Icons

Icon pack: MingCute — exclusively.

All icons across the entire SenseCraft AI interface must come from the MingCute icon library. Do not use Heroicons, Lucide, Phosphor, or any other icon set.

Usage rules

ContextIcon size
Nav Icon Button Small14×14px
Nav Icon Button Default18×18px
Nav Icon Button Large / Pop-up close20×20px
Icon Button Small14×14px
Icon Button Default18×18px
Icon Button Large20×20px
Inline (body text, labels)16×16px
Alert / status indicator20×20px
Empty state / illustration40×40px or 48×48px

4.15 Pop-up (弹窗)

Pop-ups are modal dialogs that appear centered over the page. They are used for confirmations, destructive actions, and multi-step flows requiring focused user input.

Container


Top Bar (顶栏)

Two styles, both h-[36px], full width, p-[spacing-1].

StyleLayoutUse
Style 1Title left, close icon button rightStandard pop-up with user-dismissible close
Style 2Title centered onlyConfirmation dialogs where close is not available
Publish Model

Ready to publish this model to the registry?

Specs:


Content Area (弹窗内容)

Inline validation alert:


Bottom Bar (底栏)

Three styles, all full width, p-[spacing-2], button height 32px, button radius 10px.

StyleHeightLayoutButton widthsUse
Style 148pxjustify-end72px eachStandard confirm/cancel — right-aligned
Style 2-172pxjustify-center128px eachDestructive confirm — centered, equal weight
Style 2-272pxjustify-center128px singleSingle primary action — centered

Button specs inside Bottom Bar:


Use Cases

Use Case 1 — Confirmation with form content (e.g. Publish)

Top Bar Style 1 (title + close)
  Content:
    Body text (Regular + Medium mixed)
    Checkbox with agreement terms
    Inline validation alert (if errors present)
Bottom Bar Style 1 (Cancel 72px | Confirm/Publish 72px, right-aligned)
  → Confirm disabled (--neutral-300) until checkbox checked

Use Case 2 — Destructive confirmation (e.g. Delete)

No Top Bar
  Content (centered):
    warning-fill icon 28×28px
    Title: Space Grotesk Medium 13px, black
    Subtitle: --font-family-en 400 13px, --error
Bottom Bar Style 2-1 (Cancel 128px | Delete 128px, centered)

Use Case 3 — Single action confirmation (e.g. Continue)

Top Bar Style 2 (centered title only)
  Content area (custom)
Bottom Bar Style 2-2 (single Confirm/Continue 128px, centered)

4.11 Code Blocks / Terminal Output


5. Layout Principles

Spacing System

TokenMobileValueUse
spacing-1spacing10.25rem / 4pxTitle padding-left, label-to-right-content gap
spacing-2spacing20.5rem / 8pxLabel-to-input gap, badge gaps, button padding unit
spacing-3spacing30.75rem / 12pxInput-to-input gap, card inner padding
spacing-4spacing41rem / 16pxStandard gap, form fields, code block padding
spacing-5spacing51.25rem / 20pxButton horizontal padding
spacing-6spacing61.5rem / 24pxButton-to-input-group gap, section inner padding, card padding

Grid & Container

Border Radius Scale

TokenMobileValueUse
--radius-noneradiusNone0Sharp technical UI, table rows
--radius-smradiusSm4pxBadges, tiny chips, code tokens
--radius-mdradiusMd8pxDropdown menus, code blocks, standard cards
--radius-lgradiusLg12pxButtons, inputs, model cards, panels
--radius-xlradiusXl16pxFeatured cards, hero containers
--radius-2xlradius2xl24pxFull-bleed modal sheets
--radius-fullradiusFull9999pxTags, category pills, toggles

6. Depth & Elevation

LevelTreatmentUse
Flat (0)No shadow, --white bgPage base surface, cards
Recessed (1)--neutral-50 bg + 1px solid --borderInput fields, nav chrome, modal header/footer
Raised (2)--white bg + 1px solid --borderStandard cards, panels
Elevated (3)--white bg + 1px solid --border + --shadow-smDropdown menus, tooltips
Modal (4)--shadow-2xlPop-ups, dialogs
Focus0 0 5px -2px --primary-500Keyboard focus glow on inputs/buttons

Confirmed shadow value from Figma: --shadow-2xl: 0px 10px 24px -6px rgba(0,0,0,0.15) — used for pop-up / modal containers.

Shadow Philosophy: On light surfaces, elevation is expressed first through background tone (--white vs --neutral-50) and border presence, then through shadow for floating layers. Reserve shadow for dropdowns and modals only — cards and panels use borders alone.


7. Do's and Don'ts

Do

Don't


8. Responsive Behavior

Breakpoints

NameWidthKey Changes
Mobile< 640pxSingle column, full-width cards, stacked nav
Tablet640px1024px2-column model grid, condensed sidebar
Desktop1024px1280px3-column grid, full sidebar
Large Desktop> 1280px4-column grid, max-width container

Collapsing Strategy


9. Agent Prompt Guide

Quick Color Reference

PurposeTokenMobileValue
Page / card background--whitewhite#FFFFFF
Recessed chrome (inputs, nav, modal bars)--neutral-50neutral50#FAFAFA
Default border--borderborder#E5E5E5
Input / modal border--border-regularborderRegular#D9D9D9
Active / focus border--border-primaryborderPrimary#8FC31F
Primary CTA bg--primary-500primary500#8FC31F
Heading text--neutral-900neutral900#171717
Body text--neutral-700neutral700#404040
Secondary / meta text--neutral-600neutral600#525252
Placeholder / disabled--neutral-400neutral400#A3A3A3
Dark accent / teal heading--secondary-500secondary500#003A4A
Code / mono--font-family-codefontFamilyCodeSpace Mono

Example Component Prompts

Iteration Guide

  1. Page and card base is --white; use --neutral-50 for recessed chrome (inputs, sidebar, modal bars)
  2. Borders do the work: --border for cards, --border-regular for inputs and modal chrome
  3. --primary-500 activates the page — one CTA, one active state, one status indicator at a time
  4. --secondary-500 is your dark accent for headings and teal-branded text elements
  5. Every model identifier, metric, or version string uses --font-family-code
  6. Letter-spacing tightens with size: -0.03rem at --text-4xl, -0.02rem at --text-3xl, -0.01rem at --text-xl--text-2xl, normal below
  7. Status colors are semantic tokens — never hard-code hex for error; use --error
  8. For bilingual pages: --font-family-en and --font-family-cn at matching sizes — no size reduction for CN