Kaggle DESIGN.md

Brands

The official design system for building Kaggle's product UI. Kaggle is the world's AI proving ground — a platform for 31M+ data scientists, ML engineers, and researchers. The design reflects a functional, data-first…

Raw DESIGN.md

At a glance

Group
Brands
Main color
#20beffBlue design systems
Font
Roboto Mono

Colors in this file

  • #ffffff

    White

  • #e0e0e0

    Border Default

  • #1ca3ec

    Kaggle Cyan

  • #20beff

    Kaggle Blue

  • #f5f5f5

    Background Surface

  • #616161

    Text Muted

  • #9e9e9e

    Text Secondary

  • #008abf

    Deep Blue

  • #e3f2fd

    Info

  • #bdbdbd

    Text Disabled

The official design system for building Kaggle's product UI. Kaggle is the world's AI proving ground — a platform for 31M+ data scientists, ML engineers, and researchers. The design reflects a functional, data-first environment built on Google's Material Design foundations.

Design Philosophy: Data-first clarity with competitive energy. Kaggle's interface is clean and accessible, optimized for code-heavy workflows, long reading sessions, and competitive engagement. Every component balances technical density with approachable, learner-friendly visual language.

1. Color Palette

Primary Brand Colors

Color NameHex CodeRGBCSS VariableUsage
Kaggle Blue#20BEFFrgb(32, 190, 255)--kaggle-color-brandPrimary actions, hero highlights
Kaggle Cyan#1CA3ECrgb(28, 163, 236)--kaggle-color-accentLinks, interactive elements
Deep Blue#008ABFrgb(0, 138, 191)--kaggle-color-primaryButtons, CTAs
Navy#003A70rgb(0, 58, 112)--kaggle-color-navyHeadings, branding marks
White#FFFFFFrgb(255, 255, 255)--kaggle-color-whiteBackgrounds, icon fills

Light Mode Colors

ElementHex CodeRGBCSS Variable
Background Default#FFFFFFrgb(255, 255, 255)--kaggle-bg-default
Background Muted#F8F8F8rgb(248, 248, 248)--kaggle-bg-muted
Background Surface#F5F5F5rgb(245, 245, 245)--kaggle-bg-surface
Background Code#F7F7F7rgb(247, 247, 247)--kaggle-bg-code
Background Sidebar#FAFAFArgb(250, 250, 250)--kaggle-bg-sidebar
Text Default#212121rgb(33, 33, 33)--kaggle-text-default
Text Muted#616161rgb(97, 97, 97)--kaggle-text-muted
Text Secondary#9E9E9Ergb(158, 158, 158)--kaggle-text-secondary
Text Disabled#BDBDBDrgb(189, 189, 189)--kaggle-text-disabled
Border Default#E0E0E0rgb(224, 224, 224)--kaggle-border-default
Border Subtle#EEEEEErgb(238, 238, 238)--kaggle-border-subtle
Link Color#1CA3ECrgb(28, 163, 236)--kaggle-link-color

Dark Mode Colors

ElementHex CodeRGBCSS Variable
Background Default#1A1A2Ergb(26, 26, 46)--kaggle-bg-default
Background Surface#16213Ergb(22, 33, 62)--kaggle-bg-surface
Background Muted#0F3460rgb(15, 52, 96)--kaggle-bg-muted
Background Code#1E1E2Ergb(30, 30, 46)--kaggle-bg-code
Text Default#F5F5F5rgb(245, 245, 245)--kaggle-text-default
Text Muted#BDBDBDrgb(189, 189, 189)--kaggle-text-muted
Border Default#37474Frgb(55, 71, 79)--kaggle-border-default
Accent Link#20BEFFrgb(32, 190, 255)--kaggle-link-color
Accent Button#1CA3ECrgb(28, 163, 236)--kaggle-accent-btn

Competition & Rank Medal Colors

MedalColorHexUsage
GoldGold#F5A6231st place, Gold medal tier
SilverSilver#C0C0C02nd place, Silver medal tier
BronzeBronze#CD7F323rd place, Bronze medal tier
GrandmasterRed#FF0000Grandmaster rank badge
MasterPurple#8B00FFMaster rank badge
ExpertBlue#008ABFExpert rank badge
ContributorDark#616161Contributor rank badge
NoviceGray#9E9E9ENovice rank badge

Status & Semantic Colors

StateBackgroundTextCSS VariableUsage
Success#E8F5E9#2E7D32--kaggle-color-successSubmission accepted, task done
Error#FFEBEE#C62828--kaggle-color-errorSubmission failed, error state
Warning#FFF8E1#F57F17--kaggle-color-warningDeadline nearing, caution
Info#E3F2FD#1565C0--kaggle-color-infoInformational messages
Running#E0F7FA#00838F--kaggle-color-runningNotebook/kernel executing
Queued#F3E5F5#6A1B9A--kaggle-color-queuedJob queued for execution

Data Visualization Colors

Color NameEmphasisMutedUsage
Blue#1CA3EC#BBDEFBPrimary chart series
Green#4CAF50#C8E6C9Positive trends, correct
Red#F44336#FFCDD2Negative trends, errors
Orange#FF9800#FFE0B2Warnings, attention
Purple#9C27B0#E1BEE7Tertiary data
Teal#009688#B2DFDBAlternative primary
Yellow#FFEB3B#FFF9C4Highlight, accent data
Gray#9E9E9E#F5F5F5Neutral, inactive

2. Typography

Font Stacks

css/* Primary — Google Sans / Material (Kaggle uses Google's font stack) */
--kaggle-font-primary: "Google Sans", "Roboto", -apple-system,
                        BlinkMacSystemFont, "Segoe UI",
                        Helvetica, Arial, sans-serif;

/* Body / UI Text */
--kaggle-font-body: "Roboto", -apple-system, BlinkMacSystemFont,
                    "Segoe UI", Helvetica, Arial, sans-serif;

/* Code / Technical */
--kaggle-font-mono: "Roboto Mono", "Source Code Pro",
                    Monaco, Menlo, Consolas, "Courier New", monospace;

Type Scale

StyleSizeWeightLine HeightUsage
Display Hero48px400 (Normal)1.15Landing hero heading
Heading Large34px400 (Normal)1.2Page-level titles, competition headers
Heading Medium24px500 (Medium)1.3Section headings
Heading Small20px500 (Medium)1.4Card titles, sub-sections
Body Large16px400 (Normal)1.75Lead descriptions, notebook prose
Body Default14px400 (Normal)1.6Standard UI text, descriptions
Body Small13px400 (Normal)1.5Secondary info, metadata
Caption12px400 (Normal)1.33Timestamps, small labels
Code13px400 (Normal)1.5Inline code, notebook cells
Button14px500 (Medium)1.43Button labels, tab labels

Font Weights

WeightValueUsage
Normal400Body text, descriptions, standard UI
Medium500Buttons, tab labels, card titles
Bold700Strong emphasis, competition headings

Typography Guidelines

  • Line length: Max 800px for notebook prose; 65ch for long-form text
  • Alignment: Left-aligned by default; center for hero and empty states
  • Code blocks: Always use --kaggle-font-mono for all code content
  • Numbers: Tabular figures (font-variant-numeric: tabular-nums) for scores and leaderboards
  • Hierarchy: Size and weight define hierarchy; color used only for links and status
  • RTL: Supported for international community members

3. Spacing & Layout

Base Spacing Scale

TokenValuePixelsCSS Variable
20.125rem2px--kaggle-space-2
40.25rem4px--kaggle-space-4
80.5rem8px--kaggle-space-8
120.75rem12px--kaggle-space-12
161rem16px--kaggle-space-16
201.25rem20px--kaggle-space-20
241.5rem24px--kaggle-space-24
322rem32px--kaggle-space-32
402.5rem40px--kaggle-space-40
483rem48px--kaggle-space-48
644rem64px--kaggle-space-64

Content Width Containers

ContainerMax WidthUsage
Narrow640pxForms, settings, sign-in pages
Content800pxDocumentation, blog posts, notebooks
Default1024pxGeneral content pages
Wide1280pxCompetition pages, leaderboards
Full100%Dashboard, notebook editor

Breakpoints

NameValueUsage
Mobile375pxMinimum phone width
Small600pxLarge phones / small tablets
Medium960pxTablets, collapsed sidebar
Large1280pxDesktop standard
X-Large1600pxWide desktop monitors

Layout Grid

  • 8px baseline grid: All spacing aligns to 8px increments
  • Material Design grid: 12-column fluid grid with 24px gutters
  • Sidebar: 280px fixed left sidebar (collapses to icons at medium)
  • Main content: Flexible fill, max-width depends on page type
  • Navbar height: 64px fixed top

4. Borders & Shadows

Border Width

StyleValueCSS VariableUsage
Thin (Default)1px--kaggle-border-thinCards, inputs, dividers
Active2px--kaggle-border-activeSelected tab, focused input
Focus Ring3px--kaggle-border-focusKeyboard focus states

Border Radius

SizeValueCSS VariableUsage
None0px--kaggle-radius-noneTables, full-width elements
Small2px--kaggle-radius-smallTags, chips on dense layouts
Medium4px--kaggle-radius-mediumInputs, small cards
Large8px--kaggle-radius-largeMain cards, dialogs
X-Large16px--kaggle-radius-xlargeHero cards, feature panels
Full9999px--kaggle-radius-fullAvatars, badge pills, chips

Shadows (Material Elevation)

LevelValueUsage
Elevation 0noneFlat elements, table rows
Elevation 10 1px 2px rgba(0,0,0,0.08), 0 1px 4px rgba(0,0,0,0.06)Cards (resting)
Elevation 20 2px 4px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.06)Dropdown menus
Elevation 40 4px 8px rgba(0,0,0,0.12), 0 8px 16px rgba(0,0,0,0.08)Cards (hover)
Elevation 80 8px 16px rgba(0,0,0,0.15), 0 16px 32px rgba(0,0,0,0.1)Dialogs, modals

Focus States

css--kaggle-focus-color:  #1CA3EC;
--kaggle-focus-width:  3px;
--kaggle-focus-style:  solid;
--kaggle-focus-offset: 2px;

5. Iconography

Icon System

Kaggle uses Material Icons (Google) as its primary icon set, consistent with its Material Design foundation.

html<!-- Material Icons via Google CDN -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<span class="material-icons">code</span>

Icon Sizes

SizeDimensionsUsage
16px16 × 16Inline text icons, tight UI
18px18 × 18Chip icons, small buttons
20px20 × 20List item icons
24px24 × 24Standard UI icons (default)
36px36 × 36Feature highlights
48px48 × 48Empty states, onboarding

Icon Categories

CategoryExamplesUsage
Navigationhome, search, notifications, menuTop nav, sidebar
Competitionsemoji_events, leaderboard, timerCompetition pages
Datadataset, table_chart, bar_chartDataset views
Codecode, terminal, play_arrow, stopNotebook interface
Modelsmodel_training, psychology, hubModel hub
Communitypeople, forum, thumb_up, shareDiscussions, forums
Userperson, account_circle, starProfile, medals
Actionsdownload, upload, edit, deleteCRUD operations
Statuscheck_circle, error, warning, infoState indicators
Mediaimage, videocam, attach_fileMedia content

Key UI Icons

notebook        — code (or laptop_chromebook)
dataset         — dataset / storage
competition     — emoji_events
discussion      — forum
profile         — account_circle
medal           — military_tech
upvote          — thumb_up / arrow_upward
leaderboard     — leaderboard
run/execute     — play_arrow
stop            — stop
save            — save
fork            — fork_right / call_split
share           — share
download        — download
search          — search
settings        — settings
filter          — filter_list
sort            — sort

6. Component Patterns

Buttons

Button Variants

VariantBackgroundBorderTextUsage
Primary (Contained)#20BEFFnone#FFFFFFMain CTAs (Submit, Run)
Primary Hover#1CA3ECnone#FFFFFFHover state
Primary Active#008ABFnone#FFFFFFPressed state
Secondary (Outlined)transparent#20BEFF#20BEFFSecondary actions
Secondary Hover#E3F2FD#1CA3EC#1CA3ECHover state
Ghost / Texttransparentnone#1CA3ECInline actions, nav links
Destructive#F44336none#FFFFFFDelete, remove actions
Disabled#E0E0E0none#9E9E9EInactive state

Button Sizes

SizeHeightPaddingFont SizeBorder Radius
Small32px6px 16px13px4px
Default40px8px 24px14px4px
Large48px12px 32px16px4px
Icon Button40px8px—50%

Navigation (Top Bar)

css/* Fixed top navbar */
position: fixed;
top: 0; left: 0; right: 0;
height: 64px;
background: #FFFFFF;
border-bottom: 1px solid #E0E0E0;
box-shadow: 0 1px 2px rgba(0,0,0,0.06);
z-index: 1000;

/* Logo area */
width: 160px;
padding: 0 16px;

/* Nav links */
font-size: 14px;
font-weight: 500;
color: #616161;
padding: 0 12px;
height: 64px;
border-bottom: 3px solid transparent;

/* Active nav link */
color: #20BEFF;
border-bottom-color: #20BEFF;

Sidebar Navigation

css/* Left sidebar */
width: 280px;
position: fixed;
top: 64px;
left: 0;
bottom: 0;
background: #FFFFFF;
border-right: 1px solid #E0E0E0;
overflow-y: auto;
padding: 8px 0;

/* Sidebar item */
display: flex;
align-items: center;
gap: 16px;
padding: 12px 24px;
font-size: 14px;
font-weight: 500;
color: #616161;
border-radius: 0 24px 24px 0;
margin-right: 8px;

/* Active sidebar item */
background: #E3F2FD;
color: #1CA3EC;

Competition Cards

css/* Competition card */
background: #FFFFFF;
border: 1px solid #E0E0E0;
border-radius: 8px;
padding: 24px;
transition: box-shadow 0.2s ease;

/* Card hover */
box-shadow: 0 4px 8px rgba(0,0,0,0.12);
border-color: #BDBDBD;

/* Prize badge */
background: #FFF8E1;
color: #F57F17;
border-radius: 4px;
padding: 4px 8px;
font-size: 12px;
font-weight: 500;

/* Deadline chip */
background: #FFEBEE;
color: #C62828;
border-radius: 4px;
padding: 4px 8px;
font-size: 12px;

Notebook / Code Cells

css/* Code cell container */
background: #F7F7F7;
border: 1px solid #E0E0E0;
border-radius: 4px;
font-family: "Roboto Mono", monospace;
font-size: 13px;
line-height: 1.5;
padding: 12px 16px;
overflow-x: auto;

/* Input cell (active) */
border-left: 3px solid #20BEFF;

/* Output cell */
background: #FFFFFF;
border-left: 3px solid #E0E0E0;
padding: 12px 16px;

/* Cell running state */
border-left-color: #FF9800;

/* Cell execution count */
color: #9E9E9E;
font-size: 12px;
min-width: 40px;
text-align: right;
padding-right: 8px;

Leaderboard Table

css/* Table container */
background: #FFFFFF;
border: 1px solid #E0E0E0;
border-radius: 8px;
overflow: hidden;

/* Table header */
background: #F5F5F5;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.5px;
color: #616161;
padding: 12px 16px;

/* Table row */
padding: 12px 16px;
border-bottom: 1px solid #EEEEEE;
font-size: 14px;
font-variant-numeric: tabular-nums;

/* Row hover */
background: #F8F8F8;

/* Top 3 rows */
background: linear-gradient(to right, #FFF8E1, #FFFFFF);

/* Medal column */
font-size: 20px;
width: 48px;

Form Controls

Text Input

StateBorderBackgroundShadow
Rest#E0E0E0#FFFFFFnone
Hover#BDBDBD#FFFFFFnone
Focus#20BEFF#FFFFFF0 0 0 3px rgba(32,190,255,0.2)
Error#F44336#FFFFFF0 0 0 3px rgba(244,67,54,0.2)
Disabled#E0E0E0#F5F5F5none

Select / Dropdown

cssbackground: #FFFFFF;
border: 1px solid #E0E0E0;
border-radius: 4px;
padding: 8px 12px;
font-size: 14px;
color: #212121;

/* Dropdown panel */
background: #FFFFFF;
border: 1px solid #E0E0E0;
border-radius: 4px;
box-shadow: 0 4px 8px rgba(0,0,0,0.12);
max-height: 300px;
overflow-y: auto;

/* Dropdown item hover */
background: #F5F5F5;

Avatars & User Medals

SizeDimensionsBorder RadiusUsage
Mini20px50%Inline mentions, compact lists
Small32px50%Table rows, comments
Medium40px50%Navigation bar
Large64px50%Profile page, competition cards
X-Large96px50%Full profile view

Rank Badges

css/* Base badge */
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 8px;
border-radius: 9999px;
font-size: 12px;
font-weight: 500;

/* Grandmaster */
background: #FFEBEE; color: #FF0000;

/* Master */
background: #F3E5F5; color: #8B00FF;

/* Expert */
background: #E3F2FD; color: #008ABF;

/* Contributor */
background: #F5F5F5; color: #616161;

/* Novice */
background: #FAFAFA; color: #9E9E9E;

Tags / Chips

css/* Default tag */
background: #F5F5F5;
color: #616161;
border-radius: 9999px;
padding: 4px 12px;
font-size: 12px;
font-weight: 400;

/* Interactive tag (hover) */
background: #E0E0E0;
cursor: pointer;

/* Selected tag */
background: #E3F2FD;
color: #1CA3EC;

/* Topic tag (Python, ML, etc.) */
background: #E8F5E9;
color: #2E7D32;

7. Motion & Animation

Duration Tokens

SpeedDurationUsage
Instant100msRipple start, immediate feedback
Fast150msHover states, tooltip appearance
Normal200msDropdown open, tab change
Slow300msPage-level transitions, dialog open
X-Slow400msProgress bars, score animations

Easing Functions (Material Motion)

css--kaggle-ease-standard:    cubic-bezier(0.4, 0.0, 0.2, 1);  /* Most transitions */
--kaggle-ease-decelerate:  cubic-bezier(0.0, 0.0, 0.2, 1);  /* Enter screen */
--kaggle-ease-accelerate:  cubic-bezier(0.4, 0.0, 1.0, 1);  /* Exit screen */
--kaggle-ease-sharp:       cubic-bezier(0.4, 0.0, 0.6, 1);  /* Temporary surfaces */

Animation Patterns

PatternDurationEasingUsage
Material Ripple400msease-outButton, card clicks
Sidebar expand250msease-in-outMobile sidebar open
Score counter1000msease-outLeaderboard score reveal
Progress bar fill600msease-in-outSubmission progress
Card hover lift200msstandardCard elevation change
Tab indicator slide200msstandardActive tab transition
Notification slide in300msdecelerateToast/snackbar appear
Dialog open300msdecelerateModal/dialog entrance

Reduced Motion

css@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

8. Accessibility Standards

Color Contrast Requirements

ElementMinimum RatioStandard
Body text (14px default)4.5:1WCAG AA
Large text (18px+ or 14px bold)3:1WCAG AA
UI components (borders, icons)3:1WCAG AA
Score text (tabular numbers)4.5:1WCAG AA
Placeholder text3:1WCAG AA
Disabled textNo requirementDecorative

Focus States

  • All interactive elements must show visible focus rings
  • Focus outline: 3px solid #20BEFF with 2px offset
  • Never suppress :focus-visible without alternative
  • Material ripple must not replace keyboard focus indicators

Keyboard Navigation

KeyAction
TabMove to next focusable element
Shift + TabMove to previous focusable element
Enter / SpaceActivate buttons, run cells
Arrow KeysNavigate leaderboard, dropdowns
EscapeClose dialog, dismiss overlay
Ctrl + EnterRun notebook cell
Shift + EnterRun cell and move to next

ARIA Patterns

html<!-- Leaderboard table -->
<table role="grid" aria-label="Competition leaderboard">
  <thead>
    <tr>
      <th scope="col" aria-sort="ascending">Rank</th>
      <th scope="col">Team Name</th>
      <th scope="col">Score</th>
    </tr>
  </thead>
</table>

<!-- Rank badge -->
<span role="img" aria-label="Grandmaster rank">
  <svg aria-hidden="true">...</svg>
  Grandmaster
</span>

<!-- Notebook cell running state -->
<div role="status" aria-live="polite" aria-label="Cell executing">
  Running...
</div>

<!-- Upvote button -->
<button aria-pressed="false" aria-label="Upvote notebook (142 votes)">
  <span class="material-icons" aria-hidden="true">thumb_up</span>
  <span>142</span>
</button>

Screen Reader Considerations

  • Use semantic HTML (<nav>, <main>, <table>, <article>)
  • Announce leaderboard score changes with aria-live="polite"
  • Notebook cell output regions: role="region" with descriptive label
  • Medal icons: always include text alternative
  • Score numbers: include unit in accessible label ("Score: 0.9821 RMSE")

9. Platform-Specific Guidelines

Web Application Layout Structure

┌─────────────────────────────────────────────────────────────────┐
│ Navbar (fixed, 64px, white + bottom border + subtle shadow)     │
│  [≡ Kaggle Logo] | Competitions | Datasets | Code | Models |   │
│                              [Search Bar]    [Notifications] [👤]│
├───────────────────┬─────────────────────────────────────────────┤
│                   │                                             │
│  Left Sidebar     │   Main Content Area                        │
│  (280px fixed)    │   max-width: varies by page type            │
│                   │                                             │
│  - Your Work      │  ┌─────────────────────────────────────┐   │
│  - Competitions   │  │ Page Header / Hero                  │   │
│  - Datasets       │  ├─────────────────────────────────────┤   │
│  - Notebooks      │  │ Content (cards, table, notebook)    │   │
│  - Models         │  └─────────────────────────────────────┘   │
│  - Discussions    │                                             │
│  - Learn          │                                             │
└───────────────────┴─────────────────────────────────────────────┘

Competition Page Pattern

Page Header (cover image + title + host + prize + deadline)
  ├── Competition tabs: Overview | Data | Notebooks | Discussion | Leaderboard | Rules | Team
  └── Join Competition button (primary CTA)

Overview Tab
  ├── Description (rich text, max-width 800px)
  ├── Evaluation metric explanation
  └── Timeline section

Leaderboard Tab
  ├── Public / Private toggle
  ├── Score + Rank + Team columns
  ├── Top 3 highlighted rows
  └── My submission row (sticky highlight)

Notebook Editor Layout

Top bar (Run | Stop | Save | Share | settings)
  ├── Notebook title (editable inline)
  └── Accelerator badge (GPU/TPU/CPU)

Cell Area (full height, scrollable)
  ├── Code cells (input + output pairs)
  ├── Markdown cells (rendered)
  └── Cell toolbar (run, add, delete, move)

Right Panel (collapsible, 320px)
  ├── Session info (runtime, memory)
  ├── Variables explorer
  └── Data tab (attached datasets)

Dataset Page Pattern

Header (title + owner avatar + usability score + license)
  └── Download button (primary) + New Notebook (secondary)

Tabs: Data | Code | Discussion | Activity

Data Tab
  ├── File tree (left panel)
  └── Data preview / column stats (main panel)
       ├── Column name + type
       ├── Unique values, nulls %
       └── Mini histogram or bar chart

Dialog / Modal Sizes

TypeMax WidthUsage
Tooltip200pxQuick hints
Snackbar568pxAction toasts, notifications
Small Dialog380pxConfirmations
Medium Dialog560pxForms, settings
Large Dialog800pxDataset preview, code viewer
Full Screen100%Mobile dialogs

Quick Reference

Essential CSS Variables

css/* Brand */
--kaggle-color-brand:    #20BEFF;
--kaggle-color-accent:   #1CA3EC;
--kaggle-color-primary:  #008ABF;
--kaggle-color-navy:     #003A70;
--kaggle-link-color:     #1CA3EC;

/* Light surfaces */
--kaggle-bg-default:     #FFFFFF;
--kaggle-bg-muted:       #F8F8F8;
--kaggle-bg-surface:     #F5F5F5;
--kaggle-bg-code:        #F7F7F7;

/* Dark surfaces */
--kaggle-bg-dark:        #1A1A2E;
--kaggle-bg-dark-surface:#16213E;

/* Text */
--kaggle-text-default:   #212121;
--kaggle-text-muted:     #616161;
--kaggle-text-secondary: #9E9E9E;

/* Borders */
--kaggle-border-default: #E0E0E0;
--kaggle-border-subtle:  #EEEEEE;

/* Competition ranks */
--kaggle-gold:           #F5A623;
--kaggle-silver:         #C0C0C0;
--kaggle-bronze:         #CD7F32;
--kaggle-grandmaster:    #FF0000;
--kaggle-master:         #8B00FF;
--kaggle-expert:         #008ABF;

/* Status */
--kaggle-color-success:  #2E7D32;
--kaggle-color-error:    #C62828;
--kaggle-color-warning:  #F57F17;
--kaggle-color-info:     #1565C0;
--kaggle-color-running:  #00838F;

/* Typography */
--kaggle-font-primary: "Google Sans", "Roboto", sans-serif;
--kaggle-font-body:    "Roboto", sans-serif;
--kaggle-font-mono:    "Roboto Mono", "Source Code Pro", monospace;

/* Spacing */
--kaggle-space-8:  0.5rem;
--kaggle-space-16: 1rem;
--kaggle-space-24: 1.5rem;
--kaggle-space-32: 2rem;

/* Radius */
--kaggle-radius-medium: 4px;
--kaggle-radius-large:  8px;
--kaggle-radius-full:   9999px;

/* Focus */
--kaggle-focus-color:   #20BEFF;
--kaggle-focus-width:   3px;
--kaggle-focus-offset:  2px;

Resources

Based on Kaggle's publicly observable web design patterns, Material Design foundations (Google), and official Kaggle brand references. For the most current specifications, refer to kaggle.com and the official brand guidelines.

Use it with your agent

Save the file as DESIGN.md in your project root, then ask your agent to follow it for UI work. Or let the agent fetch it over MCP.

Download

curl -o DESIGN.md https://www.uiskillbook.com/design-md/kaggle.md

MCP server

https://www.uiskillbook.com/mcp

MCP tool call

get_design_md({ "slug": "kaggle" })