taste-skill / Style guides / Trigger.dev style
How to build a UI in the Trigger.dev style
Trigger.dev (trigger.dev) reads as Industrial Dark Slate & Electric Acid-Lime Telemetry — Deep gunmetal #121317 canvas with #15171A / #212327 workflow nodes, #1C1E21 structural borders, 60px Satoshi-Variable headings, Geist Mono logs, and #A8FF53 electric lime status accents. This guide turns its extracted computed styles into an implementation kit: a live preview, the exact palette and type scale, real button and card recipes, the rules to avoid, and drop-in CSS variables, Tailwind config and a Cursor / Claude Code SKILL.md snippet.
Source: computed styles extracted from
https://trigger.dev on 2026-10-26 by the taste-skill extractor. Brand fonts may be proprietary; previews fall back to Inter / system fonts. Trigger.dev is a trademark of its owner; this page documents publicly visible styling for reference and is not affiliated with Trigger.dev.Live preview with Trigger.dev tokens
Trigger.dev style · dark
Ship the product, not the pixels.
Preview text rendered with the extracted Trigger.dev canvas, text, muted and accent tokens.
Card on extracted card recipe
Accent link: #A8FF53 · border
#1C1E21Color palette (dark mode)
| Role | Value | Tailwind | Usage |
|---|---|---|---|
| canvasBg | #121317 | bg-[#121317] | Primary Trigger.dev page canvas |
| surfaceElevated | #15171A | bg-[#15171A] | Primary elevated card & bento surface |
| surfaceSecondary | #15171A | bg-[#15171A] | Secondary interactive container / hover fill |
| borderPrimary | #1C1E21 | border-[#1C1E21] | Primary structural divider (1px solid #1C1E21) |
| borderSecondary | #3B3E45 | border-[#3B3E45] | Secondary nested module or pill border |
| textPrimary | #D7D9DD | text-[#D7D9DD] | Hero H1, section H2 & high-contrast foreground |
| textMuted | #878C99 | text-[#878C99] | Lead paragraphs, descriptions & muted labels |
| accentPrimary | #A8FF53 | bg-[#A8FF53] | Primary interactive CTA & brand highlight (4px) |
| accentSecondary | #A8FF53 | text-[#A8FF53] | Secondary badge, syntax or telemetry highlight |
Typography
Heading Satoshi-Variable · body Inter / Satoshi · mono Geist Mono
| Level | Computed spec |
|---|---|
| Hero H1 | 60px | line-height 60px (leading-[1]) | letter-spacing 0px (tracking-[0em]) | weight 600 (font-[600]) | color #E8E9EC (text-[#E8E9EC]) | font Satoshi-Variable |
| Section H2 (Primary) | 30px | line-height 36px (leading-[1.2]) | letter-spacing 0px (tracking-[0em]) | weight 600 (font-[600]) | color #D7D9DD (text-[#D7D9DD]) | font Satoshi-Variable |
| Card / Feature H3 | 36px | line-height 40px (leading-[1.11]) | letter-spacing 0px (tracking-[0em]) | weight 600 (font-[600]) | color #878C99 (text-[#878C99]) | font Satoshi-Variable |
| Body Copy (Paragraph) | 18px | line-height 28px (leading-[1.56]) | letter-spacing 0px (tracking-[0em]) | weight 400 (font-[400]) | color #B5B8C0 (text-[#B5B8C0]) | font Geist |
| Monospace / Code Block | 14px | line-height 20px (leading-[1.43]) | letter-spacing 0px (tracking-[0em]) | weight 400 (font-[400]) | color #9C9AF2 (text-[#9C9AF2]) | font Geist Mono |
Spacing, radius, depth and motion
| Token family | Most frequent values (count on page) |
|---|---|
| Border radius | 4px ×54 · 6px ×1 |
| Box shadow | rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px ×1 |
| Grid / flex gap | 12px ×46 · 8px ×34 · normal 4px ×13 · 4px ×6 · normal 12px ×5 · 6px ×3 |
| Container max-width | 1224px ×19 · 1440px ×13 · 768px ×3 · 1222px ×2 |
| Section vertical padding | 320px / 96px ×1 |
| Easing | cubic-bezier(0.4, 0, 0.2, 1) ×184 |
| Duration | 0.15s ×60 · 0.3s ×52 · 0.2s ×39 · 0.5s ×29 |
Component recipes
Buttons (2 distinct)
| Rendered | Height | Padding | Radius | Background / Text | Border | Font |
|---|---|---|---|---|---|---|
| AI agents | 40px | 0px 12px | 4px | #212327#D7D9DD | 1px solid #1C1E21 | 16px / 400 |
| Media processing | 40px | 0px 12px | 4px | #121317#B5B8C0 | 1px solid #1C1E21 | 16px / 400 |
Cards (1 distinct)
| # | Background | Border | Radius | Padding | Shadow |
|---|---|---|---|---|---|
| 1 | #15171A | 1px solid #1C1E21 | 4px | 0px 0px | none |
Rules: what never to do in the Trigger.dev style
- NEVER substitute generic uncalibrated gray backgrounds for Trigger.dev’s exact
#121317canvas and#15171Asurface pairing. - NEVER replace
Satoshi-Variabledisplay typography or ignore its signature scale (60px / 1.0 (w600)). - NEVER use thick opaque borders that clash with
#1C1E21(1px solid #1C1E21). - NEVER deviate from the signature button geometry (
4px) or introduce off-brand saturated gradients. - NEVER use default browser monospace when rendering code or telemetry—always pair with
Geist Mono.
Copy-paste kit
CSS variables
:root {
/* Trigger.dev style — extracted from trigger.dev by taste-skill */
--canvas: #121317;
--surface: #15171A;
--text: #D7D9DD;
--text-muted: #878C99;
--accent: #A8FF53;
--border: #1C1E21;
--font-heading: Satoshi-Variable, Inter, system-ui, -apple-system, sans-serif;
--font-body: 'Inter / Satoshi', Inter, system-ui, -apple-system, sans-serif;
--font-mono: 'Geist Mono', 'JetBrains Mono', ui-monospace, monospace;
--h1-size: 60px;
--h1-tracking: 0em;
--h1-weight: 600;
--radius-button: 4px;
--radius-common: 4px;
--shadow-common: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;
--ease: cubic-bezier(0.4, 0, 0.2, 1);
--duration: 0.15s;
}tailwind.config.js
// tailwind.config.js — Trigger.dev style tokens (taste-skill)
module.exports = {
theme: {
extend: {
colors: {
canvas: "#121317",
surface: "#15171A",
ink: "#D7D9DD",
muted: "#878C99",
accent: "#A8FF53",
line: "#1C1E21",
},
fontFamily: {
heading: ["Satoshi-Variable", 'Inter', 'system-ui', 'sans-serif'],
sans: ["Inter / Satoshi", 'Inter', 'system-ui', 'sans-serif'],
mono: ["Geist Mono", 'ui-monospace', 'monospace'],
},
fontSize: { display: ["60px", { letterSpacing: "0em", fontWeight: "600" }] },
borderRadius: { button: "4px", card: "4px" },
boxShadow: { brand: "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px" },
transitionTimingFunction: { brand: "cubic-bezier(0.4, 0, 0.2, 1)" },
},
},
};.cursor/skills/trigger-style/SKILL.md
--- name: trigger-style description: Build UI in the Trigger.dev visual style (Industrial Dark Slate & Electric Acid-Lime Telemetry). Use when the user asks for a Trigger.dev-like look. --- # Trigger.dev Style — Quick Rules (source: trigger.dev, extracted by taste-skill) ## Tokens - canvasBg: #121317 — Primary Trigger.dev page canvas - surfaceElevated: #15171A — Primary elevated card & bento surface - surfaceSecondary: #15171A — Secondary interactive container / hover fill - borderPrimary: #1C1E21 — Primary structural divider (1px solid #1C1E21) - borderSecondary: #3B3E45 — Secondary nested module or pill border - textPrimary: #D7D9DD — Hero H1, section H2 & high-contrast foreground - textMuted: #878C99 — Lead paragraphs, descriptions & muted labels - accentPrimary: #A8FF53 — Primary interactive CTA & brand highlight (4px) - accentSecondary: #A8FF53 — Secondary badge, syntax or telemetry highlight ## Typography - Heading font: Satoshi-Variable; body: Inter / Satoshi; mono: Geist Mono - Hero H1: 60px | line-height 60px (leading-[1]) | letter-spacing 0px (tracking-[0em]) | weight 600 (font-[600]) | color #E8E9EC (text-[#E8E9EC]) | font Satoshi-Variable - Section H2 (Primary): 30px | line-height 36px (leading-[1.2]) | letter-spacing 0px (tracking-[0em]) | weight 600 (font-[600]) | color #D7D9DD (text-[#D7D9DD]) | font Satoshi-Variable - Card / Feature H3: 36px | line-height 40px (leading-[1.11]) | letter-spacing 0px (tracking-[0em]) | weight 600 (font-[600]) | color #878C99 (text-[#878C99]) | font Satoshi-Variable - Body Copy (Paragraph): 18px | line-height 28px (leading-[1.56]) | letter-spacing 0px (tracking-[0em]) | weight 400 (font-[400]) | color #B5B8C0 (text-[#B5B8C0]) | font Geist ## Components - Primary button: height 40px, padding 0px 12px, radius 4px, bg #212327, text #D7D9DD, 16px / 400 - Card: bg #15171A, border 1px solid #1C1E21, radius 4px, padding 0px 0px ## Never - NEVER substitute generic uncalibrated gray backgrounds for Trigger.dev’s exact #121317 canvas and #15171A surface pairing. - NEVER replace Satoshi-Variable display typography or ignore its signature scale (60px / 1.0 (w600)). - NEVER use thick opaque borders that clash with #1C1E21 (1px solid #1C1E21). - NEVER deviate from the signature button geometry (4px) or introduce off-brand saturated gradients. - NEVER use default browser monospace when rendering code or telemetry—always pair with Geist Mono. Full 120-line spec: https://taste-skill.pages.dev/taste/trigger/
Or install the full spec
npx taste-skill add trigger
Related
Trigger.dev full token specTrigger.dev ButtonsTrigger.dev Pricing TableTrigger.dev vs InngestTrigger.dev vs Neon
Similar styles
Get all 30 full SKILL.md specs (Cursor / Claude Code / Codex ready) plus the Pro growth skills.
See taste-skill Pro →