monarch-initiative/mechmaker/site-design

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Change how the DaTMech documentation site and record browser look: colors, light or dark mode, title, footer, the columns of the browser's front page, the sections shown on record pages, and deeper changes to the page templates, and maps of the places records hold. Use when asked to restyle, rebrand, recolor or reorganize the site, or when the site is hard to read.

Install

npx vskill@latest install monarch-initiative/mechmaker/site-design

SKILL.md

Site design

Most changes are one line in conf/site.yaml. Start there. Edit the page templates only for what the settings cannot do.

Settings: conf/site.yaml

SettingWhat it doesValues
titleTitle of the record browser's front pagetext
paletteMain color: docs header, browser header band, linksred, pink, purple, deep-purple, indigo, blue, light-blue, cyan, teal, green, light-green, lime, yellow, amber, orange, deep-orange, brown, grey, blue-grey
accentHover and focus colorthe palette names except brown, grey, blue-grey
themeLight or dark pages, for both sitesauto (follows the visitor's system), light, dark
index_columnsColumns of the browser's front-page table, in order; the first links to the recordrecord field names, e.g. name, id, status
hidden_sectionsRecord sections left off browser record pages; the data keeps themrecord field names
mapA map on each record page that holds a place: a point, bounding box, line or areatrue (default), false
footerFooter on every browser pagetext

The names are Material for MkDocs' own, so one name colors both sites.

After any change:

bash
just site-check # validates the file and reports contrast
just docs-serve # look at both sites at http://127.0.0.1:8000

Choosing colors

  • Pick for the domain, not for decoration. A palette the maintainers

already use (a lab or project color) is a good choice.

  • Readability is handled for links: the browser darkens or lightens the

palette color until it reaches 4.5:1 against the page, and picks black or white header text, whichever reads better. just site-check shows the final colors. The docs site uses Material's own pairings, which for a few light palettes (cyan, light-green, and similar) put white text under 3:1 on the header; prefer a darker palette if the docs header must be readable.

  • Ask the person before changing an established color. It is part of how

people recognize the site.

Maps

A record page draws a map when the record holds a place, at any depth. The schema says what is a place, not the keys (src/datmech/shapes.py):

ShapeA class is one when it hasDrawn as
pointnumeric latitude and longitude (or slots with slot_uri schema:latitude, schema:longitude)a dot
bounding boxnumeric west, south, east and northa rectangle
line or areaa slot with slot_uri: geo:asWKT, holding Well-Known Text, longitude firstthe line or polygon

All are in decimal degrees (WGS84). Each is named after what holds it (its name or preferred term, else the section) and colored by its section; a list beside the map turns each off. A line or area too small to see at the starting zoom gets a dot at its center. just validate rejects a shape with a part missing or out of range, south north of north, or WKT that does not parse; a box whose west is east of its east crosses the antimeridian.

If the person wants a map and the records have no places yet, the schema needs them: mechmaker's add-record-map skill says which shape to use, the classes to add, where coordinates can come from, and how to quote them. Maps are on by default; map: false in conf/site.yaml turns them off.

The map is drawn in record.html. Its colors are a fixed set chosen to be told apart by color-blind readers, and the layer list keeps dark text, since Leaflet draws it on white in both themes. OpenStreetMap's tile policy asks for the attribution the map shows and for light use; a site with heavy traffic should use its own tile server.

Beyond the settings

A record page is laid out from the shape of the data and the schema, by src/datmech/render.py. Its docstring lists the rules: an overview table for simple values, tables for lists of small uniform objects, cards for curated mentions and richer objects, quote cards for evidence.

Field labels come from the schema. To rename one on the page, give the slot a title in the schema; do not special-case it in a template. Its description is the help text under the section heading, so a thin page is fixed by improving the schema.

The page frames are Jinja templates in src/datmech/templates/:

FilePage
index.htmlthe front page table: sortable, filterable
record.htmlone record: header, overview, section menu, sections
style.cssthe stylesheet; colors arrive as variables from conf/site.yaml

To change how a kind of value is drawn (say, show a list as cards rather than a table), change the rule in render.py and keep its docstring true.

Rules:

  • Keep colors in conf/site.yaml. In style.css, use the var(--...)

names, never a new literal color.

  • Keep every link relative. The site is hosted under a path, and the

record browser sits inside the docs site at /records/.

  • After editing a template or render.py, look at the result with

just docs-serve at desktop and phone widths. pages/ is not committed; the docs build renders the browser fresh.

The docs site's layout is mkdocs.yml; its pages are docs/. Never edit .mkdocs.site.yml, site/, or docs/records/: they are generated.

If a request needs a setting that does not exist yet (a logo, a second table layout), add it to conf/site.yaml, read it in site.py and the templates, document it in this skill, and say so in the pull request.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/monarch-initiative/mechmaker/site-design/badge)](https://verified-skill.com/skills/monarch-initiative/mechmaker/site-design)

Something wrong with this skill or its page? Tell us.