bambu-labs
Dry-run, upload, and cautiously initiate local Bambu Lab print jobs from validated plain `.gcode`, using Bambu LAN FTPS/MQTT handoffs.
Local copy of the **smui** ("spacemolt") design system (<https://smui.statico.io/skill.md>), adapted for the CAD Viewer. smui is a Nord-inspired terminal aesthetic for shadcn/ui with light and dark modes: sharp edges, monospace everything. Read this whole document before
$ npx -y skills add earthtojake/text-to-cad --skill smui --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/smuiContext preview
The summary Claude sees to decide when to auto-load this skill.
Local copy of the **smui** ("spacemolt") design system (<https://smui.statico.io/skill.md>), adapted for the CAD Viewer. smui is a Nord-inspired terminal aesthetic for shadcn/ui with light and dark modes: sharp edges, monospace everything. Read this whole document before
Local copy of the **smui** ("spacemolt") design system (<https://smui.statico.io/skill.md>), adapted for the CAD Viewer. smui is a Nord-inspired terminal aesthetic for shadcn/ui with light and dark modes: sharp edges, monospace everything. Read this whole document before restyling viewer UI.
The design rules below are kept agnostic so they transfer to any shadcn/ui app. The **"In this app"** section is the only viewer-specific part — most notably, this app keeps **translucent frosted-glass surfaces** instead of smui's flat opaque panels, because viewer panels float over a live 3D scene.
---
This app is **Vite + Tailwind v4**, not Next.js, so ignore the upstream `next/font` and `next-themes` instructions — the equivalents here are:
The shadcn CSS variables are set directly in `:root` (light "Snow Storm") and `.dark` (dark "Polar Night"); the Tailwind v4 `@theme inline` block maps them to utilities and sets `--radius` to `0`. Do **not** run `npx shadcn add` — edit `globals.css` by hand.
the viewer's previous typeface — `--font-sans: "IBM Plex Sans", "Aptos", "Segoe UI", sans-serif`. So skip smui's "monospace everything" rule and the JetBrains Mono setup; everything else (palette, sharp edges) still applies.
toggles the `.dark` class on `<html>` — no `next-themes`.
smui ships **flat, opaque** surfaces. This app intentionally keeps its **frosted-glass** look so the 3D model shows through panels. Honor that:
/ `--ui-glass-control`, which are **translucent** (`color-mix(... <pct>%, transparent)`) and tinted by the smui `--sidebar` / `--popover` / `--background` tokens. They are applied through the `cad-glass-surface`, `cad-glass-popover`, and `cad-glass-control` classes, which also add `backdrop-filter: blur(...)`.
hex) on the sidebar shell, popovers, or floating toolbars — use the `cad-glass-*` classes / `--ui-glass-*` tokens so translucency + blur are kept.
backdrop) can use the solid smui tokens normally.
monochrome white/black translucency that washed out the Nord palette. The glass tint now comes straight from the smui tokens regardless of scene tone.
Everything below this section is the agnostic smui guide.
---
1. **Light + dark mode.** `:root` = light (Snow Storm), `.dark` = dark (Polar Night). All CSS variables have light/dark variants — just toggle the `.dark` class. 2. **Zero border radius.** `--radius: 0rem`. All components have sharp corners. The only `rounded-full` elements are status dots, toggle knobs, and avatars. 3. **Monospace everything.** JetBrains Mono is the only font. No serif, no sans-serif. *(This app diverges — it keeps its previous sans-serif font; see "In this app".)* 4. **No emoji.** Use [lucide-react](https://lucide.dev/) icons instead. 5. **Labels are uppercase.** Labels, card titles, and status text use `uppercase` with wide letter-spacing. 6. **(This app) Surfaces over the 3D scene are translucent frosted glass.** See "In this app" above.
> Exact values applied here are the source of truth in `globals.css`; the tables > below are the smui reference (a couple of hexes differ by a shade).
Dark mode (`.dark`):
| Variable | Hex | Usage | |---|---|---| | `--background` | `#1a1e24` | Page background | | `--foreground` | `#d8dee9` | Primary text | | `--card` | `#21262e` | Card/panel backgrounds | | `--primary` | `#88c0d0` | Primary accent (frost blue) | | `--muted-foreground` | `#8e99a8` | Secondary/muted text | | `--border` | `#3b4252` | Borders | | `--destructive` | `#d4737c` | Error/danger |
Light mode (`:root`):
| Variable | Hex | Usage | |---|---|---| | `--background` | `#eceff4` | Page background (Snow Storm 3) | | `--foreground` | `#2e3440` | Primary text (Polar Night 1) | | `--card` | `#e5e9f0` | Card/panel backgrounds (Snow Storm 2) | | `--primary` | `#4c6d94` | Primary accent (darkened for contrast) | | `--muted-foreground` | `#48505c` | Secondary/muted text | | `--border` | `#c9cfda` | Borders | | `--destructive` | `#a3303d` | Error/danger |
Raw HSL triplets. Use with `hsl()` and optional alpha: `text-[hsl(var(--smui-green))]`, `border-[hsl(var(--smui-yellow)/0.3)]`, `bg-[hsl(var(--smui-frost-2)/0.04)]`.
| Variable | Hex | Usage | |---|---|---| | `--smui-frost-1` | `#8fbcbb` | Teal accent | | `--smui-frost-2` | `#88c0d0` | Primary frost blue (= `--primary`) | | `--smui-frost-3` | `#81a1c1` | Steel blue | | `--smui-frost-4` | `#4c6d94` | Deep blue | | `--smui-green` | `#a3be8c` | Success, online, nominal | | `--smui-yellow` | `#ebcb8b` | Warning, standby, caution | | `--smui-orange` | `#d08770` | Alert, degraded | | `--smui-red` | `#d4737c` | Critical, error, danger | | `--smui-purple` | `#b48ead` | Info, special, rare |
> Not registered in this app's `globals.css` yet. To enable `bg-smui-*` / > `text-smui-*` utilities, add the `--smui-*` HSL vars to `:root`/`.dark` and the > `@theme inline` block from "Extended Palette in Tailwind" below.
Four background levels for depth (values differ light/dark):
Dark (Polar Night): `--smui-surface-0` `#1a1e24` (page) · `-1` `#21262e` (cards) · `-2` `#282e37` (elevated) · `-3` `#2f3640` (highlights/active).
Light (Snow Storm): `--smui-surface-0` `#eceff4`
text-to-cad is a library of agent skills for generating, inspecting, sourcing, slicing, and handing off CAD and robot-description artifacts from local project files. CAD URDF SRDF / MoveIt2
Dry-run, upload, and cautiously initiate local Bambu Lab print jobs from validated plain `.gcode`, using Bambu LAN FTPS/MQTT handoffs.
Start CAD Viewer and return review links for CAD and robot-description files. Use when visually reviewing `.step`, `.stp`, `.glb`, `.stl`, `.3mf`, `.dxf`,…
Create, modify, inspect, and validate parametric CAD parts and assemblies authored as cadgen model scripts. Use for natural-language CAD specs, reference…
Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report printability findings per process (FDM, SLS, SLA/DLP, metal PBF, MJF). Use…
Generate, regenerate, and validate 2D DXF drawings from Python build123d sources. Use for DXF files, `.py` drawing scripts, @dxf models, 2D profiles, outlines,…