This design system is built to move the plumbing CRM away from the "utility app" aesthetic and toward a high-end, architectural experience. The Creative North Star is The Architectural Blueprint: a philosophy that emphasizes structural integrity, expansive negative space, and a refined industrial grit.
We reject the "boxed-in" look of traditional CRMs. Instead of rigid grids and heavy borders, we use Tonal Layering and Intentional Asymmetry. Imagine a master plumber’s workspace: clean, organized, high-quality materials, and built to last. The UI should feel as sturdy as a brass fitting but as sophisticated as a modern architectural firm’s portfolio.
The palette is rooted in deep, authoritative blues (primary) and charcoal tones, punctuated by a high-energy "Safety Orange" (tertiary_container) that demands action without feeling "cheap."
To achieve a premium, custom feel, 1px solid borders are strictly prohibited for sectioning. We define boundaries through background shifts.
- Use
surfaceas your base. - Use
surface_container_lowto define secondary work areas. - Use
surface_container_highestfor sidebars or navigation drawers. - Transition between these tones to create natural, borderless containment.
Treat the UI as a series of physical layers.
- Layer 1 (Bottom):
surfaceorsurface_container_lowest(the "workbench"). - Layer 2 (Middle):
surface_containerfor content groupings. - Layer 3 (Top):
surface_brightfor interactive cards or floating modals.
For high-level dashboard elements or mobile overlays, use Glassmorphism. Combine surface_container_lowest at 80% opacity with a backdrop-blur of 12px.
- Signature Textures: For primary CTAs (e.g., "Create Work Order"), apply a subtle linear gradient from
primary(#002046) toprimary_container(#1b365d) at a 135-degree angle. This adds a "machined metal" depth that flat color cannot replicate.
We pair Manrope (Display/Headlines) with Inter (Body/Labels) to balance industrial strength with digital clarity.
- Display (Manrope): Use
display-lg(3.5rem) sparingly for high-impact data points like "Monthly Revenue" or "Active Fleet." Its geometric nature feels engineered. - Headlines (Manrope):
headline-md(1.75rem) should be used for page titles. It provides an "editorial" feel that makes the CRM feel like a high-end dashboard. - Body (Inter):
body-lg(1rem) is the workhorse. We prioritize line height (1.6) to ensure legibility when technicians are reading service notes on-site. - Labels (Inter):
label-md(0.75rem) inon_surface_variantis used for metadata. It should always be uppercase with a 0.05rem letter-spacing to mimic technical drawings.
We eschew the standard "shadow-on-white" look for a more sophisticated Ambient Depth model.
- The Layering Principle: Depth is achieved by stacking. A
surface_container_lowestcard placed on asurface_container_lowbackground provides a soft, natural lift. - Ambient Shadows: If a floating action button (FAB) or modal requires a shadow, use a diffuse spread.
- Spec:
0px 12px 32px rgba(0, 27, 61, 0.08). Notice the shadow is tinted with theon_primary_fixedblue, not black, to simulate natural light. - The Ghost Border: If a boundary is required for accessibility (e.g., in a high-density data table), use
outline_variantat 15% opacity. It should be felt, not seen.
- Primary: Gradient
primarytoprimary_container.md(0.375rem) rounded corners. - Secondary:
secondary_containerbackground withon_secondary_containertext. No border. - Tertiary (Alert/Action):
tertiary_container(#5f2400) withon_tertiary_container(#ff7726) text. This is reserved for urgent dispatches or leaks.
- Avoid "box" inputs. Use a
surface_container_highbackground with asm(0.125rem) bottom-only accent inprimarywhen focused. This mimics the clean lines of a ledger.
- Cards: Forbid the use of divider lines within cards. Separate content using the Spacing Scale (e.g.,
8(1.75rem) vertical gap between header and body). - Service Lists: Use alternating tonal shifts (zebra-striping) using
surfaceandsurface_container_lowinstead of horizontal lines.
- The "Pipe-Flow" Status Tracker: Instead of a standard stepper, use a continuous bar with
primaryandtertiarysegments that flow into each other, representing the lifecycle of a plumbing job. - Inventory Chips: Use
secondary_fixed_dimfor "In-Stock" items, providing a muted, professional look that doesn't distract from active tasks.
- Use "Mega-Margins": Use
16(3.5rem) or20(4.5rem) spacing for outer page margins to create a high-end, spacious feel. - Embrace Asymmetry: Align primary stats to the left and secondary actions to the far right with significant whitespace between them.
- Use Micro-Interactions: Buttons should subtly scale down (0.98x) on click to feel like a physical "click" of a tool.
- Don't use pure black: Use
primaryorinverse_surfacefor high-contrast text. Pure black (#000) feels "default" and unrefined. - Don't use 1px dividers: They clutter the interface. Use vertical whitespace (
spacing.6) to separate sections. - Don't use "Round" corners: Stick to
smandmd(0.125rem - 0.375rem). Circular corners feel too consumer-soft; we want industrial-sturdy.