@sammcj/apply-mantel-styles
Agentic Coding Rules, Templates etc...
| name | apply-mantel-styles |
| description | Provides guidelines for applying Mantel's brand styles to diagrams and frontend components. Use when asked to create visuals that need to align with Mantel's branding. |
Rules For Applying Mantel Brand Styles
When creating visual diagrams or frontend components, you can apply the following style guidelines to ensure consistency with the Mantel brand identity.
Colour Scheme
- You should aim to use the following primary colours from the Mantel brand palette.
- You may also use tints and shades of these colours as needed, but avoid introducing non-brand colours.
Palette
| Name | Hex | RGB |
|---|---|---|
| Ocean | #1E5E82 |
rgb(30, 94, 130) |
| Flamingo | #D86E89 |
rgb(216, 110, 137) |
| Deep Ocean | #002A41 |
rgb(0, 42, 65) |
| Sky Blue | #81CCEA |
rgb(129, 204, 234) |
| Cloud | #EEF9FD |
rgb(238, 249, 253) |
Extended Palette — Brand Ramps (50 lightest → 900 darkest)
Use these tokens for tints, shades, hover states, borders, and surfaces without introducing non-brand colours. Prefer the core step (bold) for each brand colour; reach for neighbouring steps when you need contrast adjustment.
Ocean — core 500
50 #E8F2F8 500 #1E5E82 ← core
100 #C5DCEA 600 #174E6E
200 #9DC3D8 700 #103D57
300 #6AA5C3 800 #0A2D40
400 #3D89AF 900 #042031
Flamingo — core 500
50 #FAEEF2 500 #D86E89 ← core
100 #F4D1DA 600 #C25079
200 #EDB0BE 700 #9E3456
300 #E690A2 800 #7A1E3D
400 #DE7F92 900 #550E28
Sky — core 400 (Sky's brand anchor sits at 400, not 500)
50 #F0FAFD 400 #81CCEA ← core
100 #D9F1F9 500 #59BAE2
200 #B8E5F5 600 #329DD3
300 #95D6EF 700 #1B7EAD
800 #0E5F85
900 #064260
Neutral — greys for text, borders, dividers on light surfaces
50 #F5F7F9 500 #8A99AB
100 #DDE3EA 600 #5C6A7A
200 #C5CED9 700 #3E4F5E
300 #A8B5C4 800 #293C49
400 #B2BECC 900 #161C21
Anchor Tokens (fixed, not on a ramp)
| Token | Hex | Use |
|---|---|---|
| Deep Ocean | #002A41 |
Primary dark background |
| Cloud | #EEF9FD |
Primary light / neutral background |
| Skywalker 950 | #001421 |
Near-black dark surface |
| Skywalker 900 | #001E2F |
Deepest dark section |
| Skywalker 800 | #042D44 |
Dark surface 2 |
| Skywalker 700 | #073B58 |
Dark surface 3 |
| Skywalker 600 | #0C4F74 |
Dark surface 4 (lightest dark) |
Semantic Status Colours
Use these for success / warning / error / attention states. Do not substitute brand colours — overloading Flamingo for errors breaks the semantic contract users rely on.
| Token | Hex | Use |
|---|---|---|
| Yoda 600 | #07883D |
Success / positive |
| BB8 600 | #E87400 |
Warning |
| Kylo 600 | #D91544 |
Error / danger |
| Pyre 300 | #FFD60A |
Highlight / attention |
General Design Principles
Colour Hierarchy
- Primary Actions/Elements: Ocean (#1E5E82)
- Secondary/Supporting: Sky Blue (#81CCEA)
- Emphasis/Accent: Flamingo (#D86E89)
- Foundation/Authority: Deep Ocean (#002A41)
- Background/Neutral: Cloud (#EEF9FD)
- Light backgrounds use Cloud (
#EEF9FD) or white (#FFFFFF). - Dark backgrounds use Deep Ocean (
#002A41). Never use pure black (#000000). - Primary text on light backgrounds is Deep Ocean. On dark backgrounds, use white.
- Accent elements (borders, icons, highlights) use Ocean, Flamingo, or Sky Blue.
Semantic Usage
- Use Ocean for primary actions, main navigation, and brand-level emphasis
- Use Sky Blue for interactive elements, information, and secondary actions
- Use Flamingo sparingly for CTAs and brand highlights (not for errors — use Kylo)
- Use Deep Ocean for text, borders, authoritative elements
- Use Cloud for backgrounds, subtle dividers, inactive states
- Use the semantic status colours (Yoda / BB8 / Kylo / Pyre) for success / warning / error / attention — never substitute brand colours for these
- Default to light / day mode colour schemes
Consistency Rules
- Avoid mixing colour schemes from other brands
- Maintain consistent colour meanings across all diagrams in a project
- When transparency is needed, use rgba values of the brand colours
- For hover/pressed states, step one rung on the brand ramp (e.g.
ocean-500→ocean-600on hover,flamingo-500→flamingo-600on press). Only fall back to percentage darken/lighten if no ramp token fits
Frontend Component Styles
Component Guidelines
Buttons
Primary:
- Background: Ocean (#1E5E82)
- Text: Cloud (#EEF9FD)
- Hover: Deep Ocean (#002A41)
- Border: none or Ocean
Secondary:
- Background: Sky Blue (#81CCEA)
- Text: Deep Ocean (#002A41)
- Hover: Ocean (#1E5E82) with Cloud text
- Border: Ocean (#1E5E82)
Accent/CTA:
- Background: Flamingo 500 (#D86E89)
- Text: White (#FFFFFF)
- Hover: Flamingo 600 (#C25079)
- Border: none
Ghost/Outline:
- Background: transparent
- Text: Ocean (#1E5E82)
- Hover: Cloud (#EEF9FD) background
- Border: Ocean (#1E5E82)
Navigation
Header:
- Background: Deep Ocean (#002A41)
- Text: Cloud (#EEF9FD)
- Active: Sky Blue (#81CCEA)
- Hover: Ocean (#1E5E82) background
Sidebar:
- Background: Cloud (#EEF9FD)
- Text: Deep Ocean (#002A41)
- Active: Ocean (#1E5E82) with Cloud text
- Hover: Sky Blue (#81CCEA) background
Forms
Input Fields:
- Background: White (#FFFFFF)
- Border: Sky Blue (#81CCEA)
- Focus Border: Ocean (#1E5E82)
- Text: Deep Ocean (#002A41)
- Placeholder: Sky Blue (#81CCEA)
- Error Border: Kylo 600 (#D91544)
Labels:
- Colour: Ocean (#1E5E82)
- Required Indicator: Flamingo (#D86E89)
Cards and Surfaces
Standard Card:
- Background: White (#FFFFFF)
- Border: Cloud (#EEF9FD)
- Shadow: rgba(0, 42, 65, 0.1)
Highlighted Card:
- Background: Cloud (#EEF9FD)
- Border: Sky Blue (#81CCEA)
- Shadow: rgba(30, 94, 130, 0.15)
Alerts and Messages
Use the semantic status colours — do not overload Flamingo for errors/warnings or Ocean for success.
Error:
- Background: Kylo 600 (#D91544) at 10% opacity
- Border: Kylo 600 (#D91544)
- Text: Deep Ocean (#002A41)
- Icon: Kylo 600 (#D91544)
Warning:
- Background: BB8 600 (#E87400) at 10% opacity
- Border: BB8 600 (#E87400)
- Text: Deep Ocean (#002A41)
- Icon: BB8 600 (#E87400)
Success:
- Background: Yoda 600 (#07883D) at 10% opacity
- Border: Yoda 600 (#07883D)
- Text: Deep Ocean (#002A41)
- Icon: Yoda 600 (#07883D)
Info:
- Background: Sky Blue (#81CCEA) at 10% opacity
- Border: Sky Blue (#81CCEA)
- Text: Deep Ocean (#002A41)
- Icon: Sky Blue (#81CCEA)
Data Visualisation (Charts)
- Primary Series: Ocean (#1E5E82)
- Secondary Series: Sky Blue (#81CCEA)
- Tertiary Series: Deep Ocean (#002A41)
- Highlight/Accent: Flamingo (#D86E89)
- Background: Cloud (#EEF9FD)
- Grid Lines: Sky Blue (#81CCEA) at 20% opacity
- Text: Deep Ocean (#002A41)
CSS Variables
:root {
/* Core brand (anchor steps) */
--brand-ocean: #1E5E82; /* ocean-500 */
--brand-flamingo: #D86E89; /* flamingo-500 */
--brand-sky-blue: #81CCEA; /* sky-400 */
--brand-deep-ocean: #002A41;
--brand-cloud: #EEF9FD;
/* Ocean ramp */
--ocean-50: #E8F2F8; --ocean-100: #C5DCEA; --ocean-200: #9DC3D8;
--ocean-300: #6AA5C3; --ocean-400: #3D89AF; --ocean-500: #1E5E82;
--ocean-600: #174E6E; --ocean-700: #103D57; --ocean-800: #0A2D40;
--ocean-900: #042031;
/* Flamingo ramp */
--flamingo-50: #FAEEF2; --flamingo-100: #F4D1DA; --flamingo-200: #EDB0BE;
--flamingo-300: #E690A2; --flamingo-400: #DE7F92; --flamingo-500: #D86E89;
--flamingo-600: #C25079; --flamingo-700: #9E3456; --flamingo-800: #7A1E3D;
--flamingo-900: #550E28;
/* Sky ramp */
--sky-50: #F0FAFD; --sky-100: #D9F1F9; --sky-200: #B8E5F5;
--sky-300: #95D6EF; --sky-400: #81CCEA; --sky-500: #59BAE2;
--sky-600: #329DD3; --sky-700: #1B7EAD; --sky-800: #0E5F85;
--sky-900: #064260;
/* Neutral greys */
--neutral-50: #F5F7F9; --neutral-100: #DDE3EA; --neutral-200: #C5CED9;
--neutral-300: #A8B5C4; --neutral-400: #B2BECC; --neutral-500: #8A99AB;
--neutral-600: #5C6A7A; --neutral-700: #3E4F5E; --neutral-800: #293C49;
--neutral-900: #161C21;
/* Dark surfaces */
--skywalker-950: #001421; --skywalker-900: #001E2F; --skywalker-800: #042D44;
--skywalker-700: #073B58; --skywalker-600: #0C4F74;
/* Semantic status */
--yoda-600: #07883D; /* success */
--bb8-600: #E87400; /* warning */
--kylo-600: #D91544; /* error */
--pyre-300: #FFD60A; /* highlight */
/* Semantic mappings */
--colour-primary: var(--brand-ocean);
--colour-primary-dark: var(--brand-deep-ocean);
--colour-secondary: var(--brand-sky-blue);
--colour-accent: var(--brand-flamingo);
--colour-background: var(--brand-cloud);
--colour-surface: #FFFFFF;
/* Text */
--text-primary: var(--brand-deep-ocean);
--text-secondary: var(--brand-ocean);
--text-on-primary: var(--brand-cloud);
--text-on-accent: #FFFFFF;
/* State (semantic status — do not substitute brand colours) */
--colour-error: var(--kylo-600);
--colour-warning: var(--bb8-600);
--colour-success: var(--yoda-600);
--colour-info: var(--brand-sky-blue);
--colour-highlight: var(--pyre-300);
/* Shadows and overlays */
--shadow-colour: rgba(0, 42, 65, 0.1);
--overlay-light: rgba(238, 249, 253, 0.9);
--overlay-dark: rgba(0, 42, 65, 0.8);
}
Tailwind Configuration
Tailwind's config key is colors (American spelling) — this is required by the framework regardless of project-wide spelling conventions.
module.exports = {
theme: {
extend: {
colors: {
brand: {
ocean: '#1E5E82',
flamingo: '#D86E89',
'sky-blue': '#81CCEA',
'deep-ocean': '#002A41',
cloud: '#EEF9FD',
},
ocean: {
50: '#E8F2F8', 100: '#C5DCEA', 200: '#9DC3D8',
300: '#6AA5C3', 400: '#3D89AF', 500: '#1E5E82',
600: '#174E6E', 700: '#103D57', 800: '#0A2D40',
900: '#042031',
},
flamingo: {
50: '#FAEEF2', 100: '#F4D1DA', 200: '#EDB0BE',
300: '#E690A2', 400: '#DE7F92', 500: '#D86E89',
600: '#C25079', 700: '#9E3456', 800: '#7A1E3D',
900: '#550E28',
},
sky: {
50: '#F0FAFD', 100: '#D9F1F9', 200: '#B8E5F5',
300: '#95D6EF', 400: '#81CCEA', 500: '#59BAE2',
600: '#329DD3', 700: '#1B7EAD', 800: '#0E5F85',
900: '#064260',
},
neutral: {
50: '#F5F7F9', 100: '#DDE3EA', 200: '#C5CED9',
300: '#A8B5C4', 400: '#B2BECC', 500: '#8A99AB',
600: '#5C6A7A', 700: '#3E4F5E', 800: '#293C49',
900: '#161C21',
},
skywalker: {
600: '#0C4F74', 700: '#073B58', 800: '#042D44',
900: '#001E2F', 950: '#001421',
},
// Semantic status (single-step anchors)
yoda: '#07883D', // success
bb8: '#E87400', // warning
kylo: '#D91544', // error
pyre: '#FFD60A', // highlight
}
}
}
}
Fonts & Typography
- Where applicable, the 'Inter' typeface is used for headlines, subheadings, and body copy.
- Favour bundling the font for offline use over relying on CDNs.
| Role | Font | Weight | CSS |
|---|---|---|---|
| Headlines | Inter | SemiBold | font-weight: 600 |
| Subheadings | Inter | Medium | font-weight: 500 |
| Body copy | Inter | Regular | font-weight: 400 |
Inter CDN Fallback
If bundling is not possible, use this CDN:
<!-- HTML in your document's head -->
<link rel="preconnect" href="https://rsms.me/">
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
:root {
font-family: Inter, sans-serif;
font-feature-settings: 'liga' 1, 'calt' 1; /* fix for Chrome */
}
@supports (font-variation-settings: normal) {
:root { font-family: InterVariable, sans-serif; }
}
Logo System
Logo Variants
The skill bundles all logo files in assets/. Selection guide:
| File | Use when… |
|---|---|
Mantel_Logo__Positive.svg |
Full-colour logo on light backgrounds |
Mantel_Logo__Negative.svg |
Full-colour logo on dark backgrounds |
Mantel_Logo__Navy.svg |
Mono (Deep Ocean) logo on light backgrounds |
Mantel_Logo__White.svg |
Mono (white) logo on dark backgrounds |
Mantel_Icon__Positive.svg |
Full-colour icon only, on light backgrounds |
Mantel_Icon__Negative.svg |
Full-colour icon only, on dark backgrounds |
Mantel_Icon__Navy.svg |
Mono (Deep Ocean) icon, on light backgrounds |
Mantel_Icon__White.svg |
Mono (white) icon, on dark backgrounds |
Logo Rules (critical — violations are immediately visible)
- Never stretch or distort. Logo aspect ratio is approximately 4.67:1. Icon is approximately 1.5:1. Always preserve proportions.
- Never change logo colours. Use only the provided variants — never recolour the icon or wordmark.
- Never crop the logo. All elements must be fully visible.
- Minimum clear space around the logo equals the height and width of the icon portion.
- Minimum sizes: Logo 80px / 21mm wide. Icon 44px / 12mm wide.
- Light logo on light background = wrong. Dark logo on dark background = wrong. Always use the variant that contrasts with the background.
- Preferred for client-facing materials: Use the full-colour Negative logo on Deep Ocean backgrounds. This is the most common and branded combination.
- Never add a coloured border around the logo — the brand guide explicitly prohibits this.
Resources
If you are creating diagrams you MUST also read in ./resources/diagrams.md
This information should help you maintain visual consistency with the Mantel brand across diagrams and frontend components.
Loading...
Select a file to preview
Analyzing security...
Checking scan reports and verification data.
Bill of Materials
Everything this skill can do — files, network, commands, and more.