Files
agent-skills/minimax-xlsx/styling.md
Hermes Agent ccc63d1e70 first commit
2026-05-10 13:52:46 +08:00

9.0 KiB

name, description
name description
styling Visual styling reference for the minimax-xlsx skill. Contains theme palettes (grayscale/financial/verdant/dusk), conditional formatting recipes, and cover page layout specifications. Read this before writing openpyxl styling code.

<neutral_palette>

Grayscale Theme (Standard Default)

Color Discipline (Strictly Enforced)

Foundation tones (only these three):

  • White (#FEFEFE) — backgrounds, data regions
  • Black (#1A1A1A) — body text, primary headers
  • Grey (multiple shades) — structural elements, borders, secondary labels

Sole accent: Blue

  • For any emphasis, differentiation, or callout, use blue at varying intensity
  • No green, red, orange, purple, or other hues (exception: region-specific financial indicators)

Absolute Restrictions

  • Avoid extra hue families (green/red/orange/purple/yellow/pink) unless a market-specific finance convention explicitly requires them
  • No rainbow or multi-hue schemes
  • No saturated/vibrant tones except blue accents
  • No gradients crossing multiple color families

Implementation Palette

from openpyxl.styles import PatternFill, Font, Border, Side, Alignment

# Foundation tones
tone_bg = "FEFEFE"
tone_subtle = "F2F3F4"
tone_stripe = "F6F7F8"

tone_primary = "1A1A1A"
tone_header = "2C2C2C"
tone_text = "1A1A1A"
tone_rule = "CBCBCB"

# Blue accent spectrum
accent_deep = "1565C0"
accent_mid = "5B8DB8"
accent_wash = "E3EDF7"

ws.sheet_view.showGridLines = False

hdr_fill = PatternFill(start_color=tone_header, end_color=tone_header, fill_type="solid")
hdr_font = Font(color="FEFEFE", bold=True)
for cell in ws['B2:F2'][0]:
    cell.fill = hdr_fill
    cell.font = hdr_font

</neutral_palette>

<fiscal_palette>

Financial Theme (Monetary/Fiscal Tasks Only)

Activate this palette when the task involves: equities, GDP, compensation, revenue, margins, budgeting, ROI, government finance, or similar fiscal domains.

Regional Price-Movement Colors (non-negotiable)

In mainland China markets, rising prices are conventionally shown in red and falling prices in green. For all other markets this convention is reversed: green for gains, red for losses.

Implementation Palette

from openpyxl.styles import PatternFill, Font, Border, Side, Alignment

fin_bg = "E8EEF2"
fin_text = "1A1A1A"
fin_accent = "FFF8E1"
fin_header = "1B3A5C"
fin_loss = "E53935"

ws.sheet_view.showGridLines = False

fh_fill = PatternFill(start_color=fin_header, end_color=fin_header, fill_type="solid")
fh_font = Font(color="FEFEFE", bold=True)
fh_mark = PatternFill(start_color=fin_accent, end_color=fin_accent, fill_type="solid")
for cell in ws['B2:F2'][0]:
    cell.fill = fh_fill
    cell.font = fh_font

</fiscal_palette>

<verdant_palette>

Verdant Theme (Ecology / Education / Humanities)

Activate this palette when the task involves: environmental analysis, education metrics, agriculture, healthcare, sustainability reporting, life sciences, or general research that benefits from a warm organic tone.

Color Discipline

Foundation tones:

  • Mist white (#F0F5F1) — backgrounds, data regions
  • Forest dark (#1A2E22) — body text, primary headers
  • Sage grey (multiple shades) — structural elements, borders, secondary labels

Sole accent: Gold

  • For emphasis, differentiation, or callouts, use warm gold at varying intensity
  • No blue, red, purple, or other hues

Implementation Palette

from openpyxl.styles import PatternFill, Font, Border, Side, Alignment

# Foundation tones
vrd_bg = "F0F5F1"
vrd_subtle = "E8F0EA"
vrd_stripe = "EDF2EE"

vrd_primary = "1A2E22"
vrd_header = "1B4332"
vrd_text = "1A2E22"
vrd_rule = "B5C7B9"

# Gold accent spectrum
vrd_accent_deep = "9E7C20"
vrd_accent_mid = "C9A84C"
vrd_accent_wash = "F5F0DC"

ws.sheet_view.showGridLines = False

vh_fill = PatternFill(start_color=vrd_header, end_color=vrd_header, fill_type="solid")
vh_font = Font(color="F0F5F1", bold=True)
vh_mark = PatternFill(start_color=vrd_accent_wash, end_color=vrd_accent_wash, fill_type="solid")
for cell in ws['B2:F2'][0]:
    cell.fill = vh_fill
    cell.font = vh_font

</verdant_palette>

<dusk_palette>

Dusk Theme (Technology / Creative / Scientific)

Activate this palette when the task involves: technology metrics, product analytics, engineering reports, creative industry analysis, scientific data, or presentation-grade deliverables that need a modern aesthetic.

Color Discipline

Foundation tones:

  • Soft lavender (#F7F3FA) — backgrounds, data regions
  • Dark grape (#221429) — body text, primary headers
  • Iris grey (multiple shades) — structural elements, borders, secondary labels

Sole accent: Copper

  • For emphasis, differentiation, or callouts, use warm copper at varying intensity
  • No blue, green, or other hues

Implementation Palette

from openpyxl.styles import PatternFill, Font, Border, Side, Alignment

# Foundation tones
dsk_bg = "F7F3FA"
dsk_subtle = "F0ECF5"
dsk_stripe = "F3F0F7"

dsk_primary = "221429"
dsk_header = "3C1742"
dsk_text = "221429"
dsk_rule = "C4B8CE"

# Copper accent spectrum
dsk_accent_deep = "A0522D"
dsk_accent_mid = "C4724A"
dsk_accent_wash = "FAF0EB"

ws.sheet_view.showGridLines = False

dh_fill = PatternFill(start_color=dsk_header, end_color=dsk_header, fill_type="solid")
dh_font = Font(color="F7F3FA", bold=True)
dh_mark = PatternFill(start_color=dsk_accent_wash, end_color=dsk_accent_wash, fill_type="solid")
for cell in ws['B2:F2'][0]:
    cell.fill = dh_fill
    cell.font = dh_font

</dusk_palette>

<conditional_rules>

Conditional Formatting — Apply Proactively

Apply conditional formatting deliberately to improve scanability and analytical readability.

Content Type Technique Sample Code
Raw numbers Data Bars DataBarRule(start_type='min', end_type='max', color='5B8DB8', showValue=True)
Spread/range Color Scales ColorScaleRule(start_type='min', start_color='FEFEFE', end_type='max', end_color='5B8DB8')
Status indicators Icon Sets IconSetRule(icon_style='3Arrows', type='percent', values=[0,25,75])
Boundary triggers Cell Highlights CellIsRule(operator='greaterThan', formula=['50000'], fill=accent_fill)
Top performers Rank-based FormulaRule(formula=['RANK(A2,$A$2:$A$100)<=10'], fill=gold_fill)

Available icon styles: 3Arrows (directional), 3TrafficLights1 (circle indicators), 3Symbols (check/dash/cross), 5Rating (star)

Theme-specific palettes:

  • Grayscale: Data bars 5B8DB8, Scale F2F3F4->ABABAB->2C2C2C
  • Financial: Positive 81C784, Negative E57373, Neutral FFD54F
  • Verdant: Data bars C9A84C, Scale F0F5F1->8BAF7E->1B4332
  • Dusk: Data bars C4724A, Scale F7F3FA->9E7CAD->3C1742
from openpyxl.formatting.rule import DataBarRule, ColorScaleRule, IconSetRule, CellIsRule

# Horizontal bars
ws.conditional_formatting.add('D3:D200', DataBarRule(start_type='min', end_type='max', color='5B8DB8', showValue=True))

# Tri-color gradient
ws.conditional_formatting.add('E3:E200', ColorScaleRule(start_type='min', start_color='E57373', mid_type='percentile', mid_value=50, mid_color='FFD54F', end_type='max', end_color='81C784'))

# Directional arrows
ws.conditional_formatting.add('F3:F200', IconSetRule(icon_style='3Arrows', type='percent', values=[0, 25, 75], showValue=True))

Usage tips: Apply to 2-4 key columns per sheet; maintain consistent color semantics; layer Data Bars + Icons for maximum impact.

</conditional_rules>

<cover_layout>

A cover sheet is mandatory as the very first worksheet in every deliverable.

Layout Specification

Rows Purpose Formatting
3-4 Document title 18-20pt, bold, center-aligned
6 Tagline or scope description 12pt, grey text
8-16 Headline metrics Tabular layout with key figures highlighted
18-21 Worksheet directory Sheet names mapped to brief descriptions
23+ Disclaimers, usage notes Small font, grey

Required Elements

1. Document title — clear, descriptive name for the workbook

2. Headline metrics — 3-6 most significant numbers or findings

3. Worksheet directory — navigation aid:

| Sheet Name | Description |
|------------|-------------|
| Raw Data | Original dataset (100 rows) |
| Analysis | Sales breakdown by region |
| Pivot Summary | Interactive pivot analysis |

4. PivotTable notice (required when the workbook includes PivotTables):

After opening, update the PivotTable cache:
  * On Windows: select any cell inside the PivotTable, press Alt+F5
  * On macOS: go to the PivotTable Analyze ribbon, click Refresh All
  * Shortcut for both platforms: Ctrl+Alt+F5

Cover Page Visual Standards

  • Background: White or light grey (#F2F3F4)
  • Title row height: 30-40pt for prominence
  • No gridlines: Suppress gridlines on cover for a clean presentation
  • Column span: Merge cells A-G for the title block
  • Color scheme: Match the workbook's chosen theme (grayscale or financial)

Gridline Note

Always keep the cover sheet gridlines hidden

</cover_layout>