Trainyard Design System
Combined reference for Trainyard: the brand (illustration, palette, voice, celebration) followed by the full product app system. The marketing website is not documented separately. For the app-only export use design-system-app.html and design-system-app.json.
Brand
Playful but never silly: a yellow brand, flat line-art spot illustrations on bright fields, and a warm first-person voice. Inside the app the brand shows up in small doses (the yellow action, card caps, empty-state art, celebration moments) so lessons stay the star.
Essence
Friendly, plain-spoken team training. Yellow means 'do the thing'; everything else stays calm gray and white so lessons, not chrome, carry the personality.
Wordmark
Hand-lettered script wordmark with the last letters in brand yellow (#FBCF02). In the app, the customer's own logo replaces it in the top-left.
Scopes in this system
| App | Full product UI. See design-system-app.html / design-system-app.json. |
| Brand | Illustration palette and style, badge art, voice and celebration rules (this page). |
| Website | Not documented; the marketing site is out of scope. |
Illustration Style
Spot illustrations are the brand's loudest element: one friendly object in flat line-art on a solid yellow, light-blue, teal or red-orange field. They head learning cards, fill empty states and anchor celebration moments.
yellow
light-blue
teal
teal-bright
coral
red-orange
purple-slate
periwinkle
green
ink
slate-legacy
Recreations built from the tokens: one object, 2px ink line, halftone on one surface, an offset white fill, sparkles and open circles.
Rules
| style | Flat line-art spot illustrations: a single everyday object (headset, plant, medal, laptop, chat bubbles, trophy, bike) centered on a solid color field |
| stroke | 2px ink (#243036), rounded caps and joins, no gradients |
| fills | Objects mostly unfilled (field shows through) plus one flat accent fill offset a few px from the outline, like misregistered print |
| texture | Halftone dot fills on one or two surfaces |
| accents | Small four-point sparkles, open circles and plus marks scattered around the object |
| format | 16:9 tiles; objects occupy ~40-50% of the height, centered |
| fields | Yellow, light blue, bright teal, red-orange; periwinkle and green less often |
| inProduct | Learning-library card headers, empty states, onboarding, certification badges, marketing composites with a browser frame (red/yellow/light-blue traffic dots) |
| hands | Celebration art uses the same ink line with yellow sparkles (high-five hands, confetti) |
From the product












Voice & Tone
Friendly, plain and a little goofy in the right places. The product explains itself like a coworker would; release notes lean on puns and emoji bullets; the UI keeps jokes out of buttons and saves exclamation points for real wins.
| Warm, like a coworker | Write like a teammate texting you about something they built. Contractions, first names, exclamation points where they are earned. |
| Plain first, playful second | The label says exactly what happens (Assign, Share Assessment, Next Section). Play lives in titles, empty states and celebrations. |
| Celebrate outcomes, not clicks | No points or leaderboards for finishing content. Big moments (a certification, a submitted assessment) get confetti or a high five; everyday saves get a quick 'Good job!' |
| Make practice feel safe | Label ungraded attempts 'Let's Practice!', allow retakes, always offer a way out ('Skip recording for now'). |
| Puns and emoji, in moderation | Release notes use month puns and emoji bullets; product UI keeps emoji to reactions and celebration moments. |
| Plain words are kind | Short sentences, one idea per line, no jargon. Feedback criteria are called Tips, not rubrics. |
Microcopy
Do / Don't
Celebration ladder
| Moment | Treatment | Art |
|---|---|---|
| Save / small edit | Quiet toast 'Good job!' | None |
| Submit practice / assessment | High-five modal with next-step choices | Line-art hands, sparkles |
| Feedback received | Email + report card note, emoji reaction | Reaction picker |
| Certification complete | Digital confetti, badge, shareable certificate | Confetti + badge art |
At a Glance
What makes the product feel like itself, in six rules.
Colors
Named constants from the product's compiled bundle, ranked by how often they appear in the stylesheet, plus values sampled from product screenshots. The palette barely moved across the product's life; the midnight neutral scale was added later for type.
Brand yellow colors.brand
Action blue, links, chart colors.action
Text colors.text
Surfaces colors.surface
Borders colors.border
Dark chrome (rails, bands, table headers) colors.chrome
Status and feedback colors.status
Gradebook cells colors.gradebook
Midnight neutral scale colors.midnight
Customer theming
Accounts can set a Branding Color and a Custom Link Color. The branding color replaces yellow on the Assign button, card caps, the lesson progress rule and Next Section; the link color replaces link blue. Demo tenants showed teal #45A09F and red #EF5A4A. Build every yellow surface against a --brand variable so this works.
Typography
One humanist sans for the whole interface, a warm slab-ish serif reserved for reading, and a compact type scale defined as utility classes.
Stand-in here: Figtree. 158 declarations in the stylesheet.
Stand-in here: Merriweather. Lesson Serif / Mixed Serif modes, older page titles, topic cards.
Used only for code inside lessons.
Scale
Lesson font modes (per account)
Paragraphs
Captions
Paragraphs
Captions
Paragraphs
Captions
Base is Bootstrap-era: body{font-size:14px;line-height:1.428571429;color:#4A4A4A}, headings weight 400 at line-height 1.1. Weight bold is the most common declaration, then 600. Page titles are big and light (36px/400); emphasis inside components is bold, not bigger.
Spacing & Layout
An 8px grid (8/16/24/32) sitting on Bootstrap 3 leftovers (10/15/20/30). Card padding modifiers are 16, 24 and 32px.
Spacing scale
Layout dimensions
| Top nav height | 54px (current) / 72px (older builds) |
| Nav logo inset | 16-20px left; links start ~120px from left |
| Page background | #F7F7F7 full-bleed |
| Content container | ~960-1170px centered (Bootstrap 3 grid, 15px gutters) |
| Builder section rail | ~170-240px wide, full height of the canvas card |
| Section row min-height | 74px |
| Lesson reading measure | ~680px (~75 characters) |
| Modal | 480px (wide 590px), body padding 18px |
| Full-screen modal | header + main padding 32px, top offset 90px |
| Assign modal | min 708px, max 960px, min-height 504px |
| Learning card | height 332px, margin 12px |
| Gradebook sticky column | 200px; rows 40-45px; score columns ~180px |
| Card padding | 16 / 24 / 32px (medium / large / larger) |
| Breakpoints | 768 / 992 / 1200px (Bootstrap 3) |
Radius & Shadows
Small radii everywhere: 3px is the default, 4px for inputs and modals, 2px for the newer flat buttons. Shadows are the signature: a hairline ring plus a soft drop, layered, never heavy.
Radius
Tables, rail
NewButton / NewInput, dropdown items, pagination
Default: Button, Card, tooltip, rule chips
Inputs, modals, badges
Full-screen modal, Assign modal, chat container
Dashed blank slate
Pills, count bubbles
Avatars, status dots
Shadows
Motion & Focus
Quick and functional: 200ms ease is the house transition. Modals pop from 80% scale, progress bars grow from the left on a springy curve, and builder controls slide in on hover after a 100ms delay.
| Token | Value | Use |
|---|---|---|
| default | all 0.2s ease | Buttons, rail controls, dropdowns: the house transition |
| ease-out | all 0.2s ease-out | Sidebar inputs, toggles |
| fade | opacity 0.3s ease | Fades, reveal controls |
| modal-in | modal 200ms ease / from {opacity:.5; transform:scale(.8)} to {opacity:1; transform:scale(1)} | Every modal container pops in |
| overlay-in | background 200ms ease / from {opacity:.1} | Backdrop fades up |
| dropdown-in | slideIn 0.2s ease | Dropdown lists |
| progress | progress 1s cubic-bezier(0.23,1,0.32,1) / from {transform:scaleX(0)} | Path/lesson progress bars grow from the left |
| rail-controls | all 0.2s ease 0.1s / translate3d(100%,0,0) -> 0 | Section drag/duplicate/delete controls slide in on hover |
| add-sibling | all 0.1s ease-in 0.2s / max-width 0 -> 130px | Add Element label expands on the insertion line |
| row | background-color 300ms ease | Table row hover/selection |
| banner | all 300ms ease / transform-origin: top | Notification banners |
| radio | background-color 0.1s ease-out | Radio option hover |
| countdown | 1s per step, 3 -> 2 -> 1 -> recording | Practice recorder countdown before capture |
Focus
Inputs take a yellow border plus 0 0 8px rgba(249,207,54,.6) glow. Buttons show a 2px yellow outline on keyboard focus. Rail section titles drop the outline; their active state carries focus.
Live
Icons
An inline SVG icon component with named glyphs, joined later by Feather-style line icons. 2px strokes with round caps; gray #A3A2A1 by default, #292933 when strong. Sizes: 14px inline, 20px nav, 21px builder controls.
Buttons
Two families shipped side by side: Button (white, 3px radius, 16px text) and the flatter NewButton (2px radius, 36px line-height) that carries the yellow brand variant. Yellow is the one primary action per screen; blue is the secondary-primary inside admin flows.
Variants
Older small-caps style (2015-17)
| Variant | Spec |
|---|---|
| Yellow (brand) | bg #F9CF36, text #2D2D2D 600, h 36px, radius 2px, shadow button-yellow; hover #F5C207; pressed #F6BF35 |
| Blue | bg #4A90E2, border 1px #2887E5, text #fff; hover #609DE6; radius 3px; min-h 36px; 0 16px |
| Default | bg #fff, border 1px #DEDDDD, text #2D2D2D 16px, icon #A3A2A1 + 8px gap; hover #F7F7F7 |
| Gray / Flat | gray #EBEAEA + button shadow; flat transparent, hover #F2F4F7 |
| Disabled | opacity .4, pointer-events none |
Inputs & Selects
Form controls are Bootstrap-derived: a cool gray fill #EFF1F2, 1px #CCC border, 4px radius and a faint inset. Focus turns the border yellow with a soft yellow glow. Choice rows highlight #F2F4F7 on hover.
Pills, Badges & Chips
Pills are fully round and outlined in blue until selected. Badges are tiny uppercase slabs with 1px tracking. Counters are 18px circles: yellow in the nav, dark for selected counts, gray for totals. Feedback chips are square-cornered and fill yellow when chosen.
Pills
Badges, labels, counters
Assignment tags
Status dots and rule variables
Feedback chips (toggle)
Cards
White, 3px, hairline shadow. The signature is the top cap: an 8px brand-color strip across assignment and library cards (4px #F4CB49 on older library topics). Paths use a stacked shadow that reads as a pile of lessons. Learner cards are 332px tall with an illustration header.
Card variants
Tables
Index tables have a dark header band (#464656 with a #292933 border and #EBEAEA text) that also hosts white filter pills and a white search field. Rows are white with dotted #EBEAEA separators; a selected row turns yellow tint #FEF5D4. Reports use a lighter DataTable.
DataTable (light header, zebra)
| Section | Views | Avg. time | Correct |
|---|---|---|---|
| Introduction | 412 | 1m 20s | — |
| Asking better questions | 398 | 3m 05s | 86% |
| Responding to objections | 377 | 4m 12s | 74% |
Tabs, Pagination, Menus
Tabs are 16px gray with a bold dark label and 2px #292933 underline when selected, on a 1px #DEDDDD inset rule. Menus come light (white, 2px items that darken on hover) or dark (#393938) and slide in over 200ms. Tooltips are near-black at 90% with a 3px radius.
Insights tab variant
Pagination
- 1
- 2
- 3
- …
- 9
Dropdowns & tooltip
Notifications
Full-width banners under the nav: 60px min-height, white text on flat status fills, an icon, the message and a translucent dismiss button. Saving shows a short dark toast.
Modals
Modals pop in from 80% scale over 200ms on a rgba(67,67,67,.5) backdrop. Standard modals are 480px (590px wide variant) with 4px radius and a three-layer shadow. Full-screen flows use a 5px radius, a gray header band and a 32px title.
Standard + confirm
Full-screen (takeover)
Pick how learners will respond.
High-five celebration
Shown after submitting an assessment, a coaching plan or a practice attempt. Line-art hands with yellow sparkles, a bold exclamation title, one status line, a question and two stacked full-width actions. Replay the pop.
New Assessment Submitted!
The assessment has not been shared with Jordan yet.
What would you like to do next?
Assign modal
Two panes on #F7F7F7: pick people or groups on the left; the right rail tracks the steps. The active step has a 6px yellow strip; selections become blue chips.
Who should be assigned?
Empty States
Centered blank slates up to 540px wide, optionally inside a 4px dashed #DEDDDD frame, with a spot illustration, a friendly one-liner in gray and a single yellow action. Simple variants are one gray 18px line with an icon.
Oops, this lesson is empty!
Add a section to get the party started. Text, video, a quick question: whatever helps your team learn.
No results for “onboarding” yet.
App Shell & Navigation
A white 54px bar with a soft shadow: customer logo, gray text links (the active one dark and semibold), then a yellow count bubble for grading, a gear menu and the solid yellow Assign button. Pages open with a large light title on #F7F7F7.
Lessons, paths and practice scenarios your team has built.
Nav history: early builds had Home / Browse / Create a Lesson; mid-life Lessons · People · Gradebook · Learning Library; the mature product settled on Content · Events · People · Gradebook · Insights · Learn. Learners see a pared-down bar with only Learn and a gear.
Lesson Builder
The authoring surface: a charcoal section rail on the left, a paper-white canvas on the right. Hover between elements to reveal a blue insertion line with an Add Element tab; it opens a dark menu of content types (Text, Flipcard, Reveal, Image, Embed, Video, Document, Question, Practice).
• Run a great demo call
• Ask clarifying questions
• Respond to objections
| Rail | #535450, 15px; header band #737470 with New Section (#868684); rows min-h 74px, text #ACACAC; hover #5F605C; active #393938 white |
| Section controls | drag / duplicate / delete slide in from the right: all .2s ease .1s, gradient mask in the row color |
| Insertion line | 2px rgba(0,0,0,.06) → rgba(74,144,226,.6) on hover; blue #4990E2 tab, label expands 0 → 130px |
| Add Element menu | #3A3A3A, 13px #D0D0D0 items, hover #4A4A4A; Question and Practice open submenus |
| Element controls | 21px icons 39px right of the element, opacity .5 → 1 on hover |
Lesson Viewer
Reading is the product. A white header shows the lesson name, the section title and a Section 1 / 11 table-of-contents dropdown; a 3px brand-color rule fills as you advance. Content sits in a ~680px column at 18/32, and a sticky footer holds Next Section (Finish on the last page).
Welcome!
This lesson walks you through your first week: who to meet, what to read, and where to find help.
By the end you will:
- Know your team's goals
- Have your tools set up
- Finish your first practice
A customer says your price is too high. What do you do first?
Left: Sans mode. Right header in Serif mode. The progress rule and Next Section take the account branding color when set (a pale teal in one demo tenant).
Practice Recorder
Rehearsal made safe. A prompt card with numbered yellow criteria sits above a 16:9 capture frame. While capturing, a white RECORDING label with a red dot pins top-left and a red STOP button sits bottom-center. A 3-2-1 countdown in a black ring precedes every take.
Can't make a recording? Skip recording for now.
Response types: webcam video, screen recording (with a picker for what to share), audio with waveform playback, a simulated email reply, and a chat conversation with a scripted customer. Ungraded attempts are labelled Let's Practice! and can be repeated; graded ones are Evaluation.
Grading Station & Feedback
Graders work down a queue. A charcoal filter band sits over a yellow-tint table of question, answer, correct/incorrect and per-criterion 5-star ratings. Coaching feedback swaps rubrics for friendly chip pickers: What went really well? and What could be improved?
| Question | Given Answer | Correct Answer | Grader Feedback |
|---|---|---|---|
| 1. A customer asks for help logging in. How do you start the call? | Correct Incorrect | Audience Target Brevity Comments |
Gradebook
A status grid: learners down a sticky 200px bold column, lessons across with two-line clamped bold headers, and pastel status fills in every cell. A charcoal #72736E filter rail on the left picks groups and courses with white checkboxes.
Groups Deselect All
Courses Deselect All
| Coaching: The Path to Success | Employee Recognition | Navigating the CRM | Security Basics | |
|---|---|---|---|---|
| Average Score | 100% | 92% | ||
| Arlie P. | Incomplete | Incomplete | 100% | 100% |
| Bess R. | Incomplete | Incomplete | 100% | |
| Carl B. | Incomplete | Incomplete | Overdue | Incomplete |
| Casey D. | 100% | 100% | ||
| Edgar D. | Incomplete | Incomplete | Overdue | |
| Jamie B. | 100% | Incomplete | Overdue | 100% |
Insights
Reports are calm and sparse: filter selects, a tab strip, a stat tile with an icon and a big bold number, and a single #5C62A4 line over a lavender fill. Status bars reuse the semantic trio: red overdue, gray incomplete, green completed.
Lesson overview: assignment status
Certifications, Badges & Reactions
The only place the product hands out badges. Shield shapes with a thick ink outline and one line icon, filled from the illustration palette. Everyday appreciation is an emoji reaction.
Welcome!
Badge library
Send a reaction
Reactions answer feedback with one tap. Native emoji at 28px; the chosen one gets a ring.
Completing a certification path fires a digital confetti burst, awards the badge and unlocks a shareable certificate (856×620: badge, 36px learner name, 18px acknowledgement, customer logo). Badges are customizable: pick an icon and a badge color in an editor modal.
Smart Groups & Automation
Rule builders are plain: gray rule panels with field / operator / value, OR links inside a panel, AND separators between panels, and a blue Create action. Automations read as sentences with blue variable chips and a status dot.
Use the rule builder to create a group based on certain criteria. People who match are added automatically.
Events
Live training sits next to lessons. Event cards are compact white cards: a bold date line, a small timezone, key/value rows, a green attending pill with an underlined RSVP link, and a default Add To Calendar button.
Settings & Customization
Settings use a dark left block of uppercase tabs (active item darker with a white notch) beside a white form column. Customization lets each account set its branding color, link color, lesson font mode and logo.
Stylize
Paragraphs
Captions
Paragraphs
Captions
Paragraphs
Captions
Tailwind Mapping
The paired JSON export includes a tailwind section with theme extensions and component recipes. Use these mappings instead of default Tailwind tokens when recreating Trainyard.
// tailwind.config.js
import designSystem from './design-system.json';
export default {
theme: {
extend: designSystem.tailwind.app.theme.extend,
},
};
// Also reuse designSystem.tailwind.app.componentRecipes for common surfaces, e.g.
// <button className={recipes.buttonPrimary.className}>Assign</button>| Scope | Primary | Action | Body Font | Radius | Card shadow | Breakpoints |
|---|---|---|---|---|---|---|
| App | brand-yellow #F9CF36 | action-blue #4A90E2 | font-sans (proxima-nova) | rounded-sm 3px / rounded-md 4px / rounded-xs 2px | shadow-card | sm 768 / md 992 / lg 1200 |
| Scope | Recipe | Class Pattern | Notes |
|---|---|---|---|
| App | navBar | flex items-center h-nav px-5 bg-surface-card shadow-nav font-sans z-[12] | White 54px bar, logo left, links, right cluster |
| App | navLink | text-nav text-text-nav hover:text-text-body transition-all duration-200 data-[active=true]:text-text-strong data-[active=true]:font-semibold | Top-nav text link |
| App | pageTitle | font-sans text-page-title font-normal text-text-strong | 36px light page title |
| App | buttonPrimary | inline-flex items-center justify-center gap-2 h-9 px-6 rounded-xs bg-brand-yellow text-text-strong text-[15px] font-semibold shadow-button-yellow hover:bg-brand-yellow-hover active:bg-brand-yellow-pressed active:shadow-button-pressed disabled:opacity-40 transition-all duration-200 ease-in-out focus-visible:outline-none focus-visible:shadow-focus | Yellow brand action (Assign, Save, Share) |
| App | buttonAction | inline-flex items-center justify-center gap-2 min-h-9 px-4 rounded-sm border border-action-blue-border bg-action-blue text-text-inverse text-body hover:bg-action-blue-hover transition-all duration-200 | Blue secondary-primary (Create Group, Schedule Assignment) |
| App | buttonDefault | inline-flex items-center justify-center gap-2 min-h-9 px-4 rounded-sm border border-border-default bg-surface-card text-text-strong text-body hover:bg-surface-page transition-all duration-200 | White default button |
| App | buttonFlat | inline-flex items-center h-9 px-2.5 rounded-xs bg-transparent text-text-strong hover:bg-surface-hover transition-all duration-200 | Flat (Cancel) |
| App | buttonRecord | inline-flex items-center px-4 py-2 rounded-xs bg-status-recording text-text-inverse font-bold uppercase tracking-wide | STOP while recording |
| App | inputField | h-[34px] w-full px-3 py-1.5 rounded-md border border-border-input bg-surface-input text-ui text-text-body shadow-input-inset placeholder:text-midnight-50 focus:outline-none focus:border-brand-yellow focus:shadow-focus transition-all duration-200 | Form control with yellow focus glow |
| App | searchField | h-10 w-full pl-8 pr-8 rounded-md bg-surface-input shadow-[inset_0_0_0_1px_rgba(0,0,0,0.05)] focus:bg-surface-hover transition-all duration-200 ease-out | Search field |
| App | pill | inline-flex items-center rounded-pill px-3 py-1 border border-action-blue bg-surface-card text-action-blue | Pill (unselected) |
| App | pillSelected | inline-flex items-center rounded-pill px-3 py-1 border border-action-blue bg-action-blue text-text-inverse | Pill (selected) |
| App | badgeDark | inline-flex items-center rounded-md px-1 pt-0.5 pb-px text-badge font-bold uppercase tracking-[1px] bg-text-strong text-text-inverse | Dark uppercase badge |
| App | countBubble | inline-flex items-center justify-center size-[18px] rounded-full bg-brand-yellow text-[11px] font-bold text-text-strong | Yellow count circle |
| App | card | bg-surface-card rounded-sm shadow-card p-6 | Default card |
| App | cardTopCap | relative bg-surface-card rounded-sm shadow-card overflow-hidden before:absolute before:inset-x-0 before:top-0 before:h-2 before:bg-brand-yellow | Card with 8px yellow top cap |
| App | cardStacked | bg-surface-card rounded-sm shadow-stacked p-6 | Path card (stack of lessons) |
| App | tableHeader | flex bg-chrome-table-header border border-chrome-table-header-border text-chrome-table-header-text | Dark table header row |
| App | tableRow | flex bg-surface-card border-b border-dotted border-border-light transition-colors duration-300 aria-selected:bg-brand-yellow-tint | Table row |
| App | tableCell | flex-1 flex items-center justify-between px-[18px] py-3 | Table cell |
| App | modal | w-[480px] rounded-md bg-surface-card shadow-modal animate-modal-in | Standard modal |
| App | modalBackdrop | fixed inset-0 bg-surface-overlay animate-overlay-in | Backdrop |
| App | celebrationModal | w-[620px] rounded-md bg-surface-card shadow-modal px-16 pt-12 pb-14 text-center animate-modal-in | High-five celebration modal |
| App | notificationSuccess | flex items-center min-h-[60px] px-5 pt-2 pb-3 bg-status-success-banner text-text-inverse | Full-width success banner |
| App | railSection | relative flex flex-col justify-center min-h-[74px] pl-3 text-text-on-rail shadow-[0_1px_0_#4f504c] hover:bg-chrome-rail-hover hover:text-text-inverse aria-[current=true]:bg-chrome-rail-active aria-[current=true]:text-text-inverse transition-all duration-200 | Builder rail section row |
| App | addElementMenu | w-40 py-1 rounded-xs bg-chrome-menu-dark shadow-dropdown-dark text-[13px] text-[#d0d0d0] | Dark Add Element menu |
| App | recordingBadge | inline-flex items-center gap-2 text-[20px] font-bold uppercase text-text-inverse after:size-3 after:rounded-full after:bg-status-recording | RECORDING label |
| App | gradebookCellComplete | text-center text-ui px-2.5 h-10 bg-gradebook-complete border-r border-t border-border-grid | Gradebook cell (complete) |
| App | gradebookCellOverdue | text-center text-ui px-2.5 h-10 bg-gradebook-overdue border-r border-t border-border-grid | Gradebook cell (overdue) |
| App | feedbackChip | inline-flex items-center px-4 py-2 rounded-xs border border-midnight-30 text-[13px] font-bold text-text-strong aria-pressed:bg-brand-yellow aria-pressed:border-brand-yellow | Feedback chip |
| App | tooltip | rounded-sm bg-surface-tooltip px-2.5 py-1.5 text-small text-text-inverse shadow-tooltip | Tooltip |
CSS custom properties
:root {
--ty-brand-yellow: #F9CF36;
--ty-brand-yellow-hover: #F5C207;
--ty-brand-yellow-pressed: #F6BF35;
--ty-brand-yellow-border: #F8C91D;
--ty-brand-yellow-light: #F9E2A7;
--ty-brand-yellow-tint: #FEF5D4;
--ty-brand-yellow-cap: #F4CB49;
--ty-brand-yellow-wordmark: #FBCF02;
--ty-action-blue: #4A90E2;
--ty-action-blue-hover: #609DE6;
--ty-action-blue-border: #2887E5;
--ty-action-blue-tint: rgba(40,135,229,0.10);
--ty-action-link: #3E719B;
--ty-action-link-legacy: #4277A4;
--ty-action-link-hover: #33638C;
--ty-action-indigo: #5C62A4;
--ty-action-indigo-fill: #EFEFF7;
--ty-text-heading: #292933;
--ty-text-strong: #2D2D2D;
--ty-text-body: #4A4A4A;
--ty-text-secondary: #696970;
--ty-text-secondary-warm: #70706D;
--ty-text-nav: #949499;
--ty-text-muted: #A3A2A1;
--ty-text-disabled: #BEBEC1;
--ty-text-inverse: #FFFFFF;
--ty-text-on-rail: #ACACAC;
--ty-surface-page: #F7F7F7;
--ty-surface-card: #FFFFFF;
--ty-surface-input: #EFF1F2;
--ty-surface-hover: #F2F4F7;
--ty-surface-subtle: #F8F9FA;
--ty-surface-gray: #EBEAEA;
--ty-surface-button-default: #F9F9F9;
--ty-surface-overlay: rgba(67,67,67,0.5);
--ty-surface-tooltip: rgba(35,35,35,0.9);
--ty-border-default: #DEDDDD;
--ty-border-divider: #D9DCDE;
--ty-border-light: #EBEAEA;
--ty-border-hairline: #E9E9EA;
--ty-border-input: #CCCCCC;
--ty-border-table: #DDDDDD;
--ty-border-grid: #C4C6C8;
--ty-chrome-rail: #535450;
--ty-chrome-rail-header: #737470;
--ty-chrome-rail-button: #868684;
--ty-chrome-rail-active: #393938;
--ty-chrome-rail-hover: #5F605C;
--ty-chrome-rail-divider: #4F504C;
--ty-chrome-menu-dark: #3A3A3A;
--ty-chrome-band: #72736E;
--ty-chrome-table-header: #464656;
--ty-chrome-table-header-border: #292933;
--ty-chrome-table-header-text: #EBEAEA;
--ty-chrome-settings-nav: #5E5F5B;
--ty-status-complete: #8AD476;
--ty-status-success: #4AA81F;
--ty-status-success-dark: #3D6D27;
--ty-status-success-light: #EEF5EB;
--ty-status-success-banner: #72BC51;
--ty-status-error: #DA3418;
--ty-status-error-dark: #863C32;
--ty-status-danger: #E36659;
--ty-status-danger-dark: #CE463C;
--ty-status-caution: #E2A73D;
--ty-status-warning-banner: #F9D778;
--ty-status-notice-banner: #88BFE5;
--ty-status-recording: #F04E36;
}Screenshot Reference
Product screenshots collected for this extraction, grouped by area. The full set lives in ./screenshots/ by category (builder, learner, practice, coaching, celebration, analytics, paths, admin, integrations, illustration, knowledge, mobile).












































