TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/sys-witch/llms.txt
Use this file to discover all available pages before exploring further.
skills.js data file drives the entire Skills section of the portfolio. It exports a named array (s) of skill objects, each consumed by the RuneTile component to render an individual skill card complete with a rune icon, mastery indicator, category label, and a one-line flavoured description. Mastery level directly controls the glow colour applied to the card — a visual language that lets visitors quickly scan the depth of each technology at a glance.
Location: data/skills.js
Data Shape
Each element in the array conforms to the following interface:Field Reference
A short, unique identifier for the skill used as a React list key. Convention is a lowercase abbreviation, e.g.
"ts" for TypeScript, "react" for React. Must be unique across the entire array.The human-readable display name shown in the
RuneTile heading, e.g. "TypeScript" or "Framer Motion". Casing is preserved exactly as written.The category group this skill belongs to. The Skills page uses this field to group and filter tiles. Must be one of the six defined values:
| Value | Description |
|---|---|
Languages | Programming and scripting languages |
Front-End | UI frameworks, styling, and animation libraries |
Back-End/Data | Server runtimes and database query languages |
Debugging | Profiling tools and testing frameworks |
Git/GitHub | Version control and collaboration tooling |
Design | Design and prototyping tools |
The mastery level rendered as a visual indicator on the
RuneTile component. Accepts exactly two values:"Master"— renders with a neon-purple glow, indicating deep, daily-use proficiency."Adept"— renders with a neon-cyan glow, indicating working proficiency and active growth.
A single flavoured sentence describing the skill through the cyber-occult lens of the theme. Kept short — one sentence — to fit neatly within the tile layout without overflow.
References one of the seven rune keys defined in
data/sigils.js. Valid values are "rune-1" through "rune-7". The RuneTile component looks up this key to render the corresponding SVG path as the tile’s decorative icon. Multiple skills may share the same sigilId.Current Skills
All 12 skills currently defined indata/skills.js:
Mastery Levels
Themastery field accepts exactly two string literals. Anything else will silently fall through to the default style.
| Value | Glow Colour | Intended Meaning |
|---|---|---|
"Master" | Neon-purple | Deep, near-daily proficiency — a core tool in the stack |
"Adept" | Neon-cyan | Working proficiency — used regularly with occasional reference |
Categories
The six validcategory values group tiles on the Skills page. Use the exact strings below — the filter logic is case-sensitive:
Languages
Programming and scripting languages: TypeScript, JavaScript, Python.
Front-End
UI frameworks, styling libraries, and animation tooling: React, Tailwind CSS, Framer Motion.
Back-End/Data
Server runtimes and data query languages: Node.js, SQL.
Debugging
Browser DevTools and automated testing frameworks: Chrome DevTools, Jest / Vitest.
Git/GitHub
Version control and remote collaboration tooling: Git.
Design
Interface design and prototyping tools: Figma.
Adding a Skill
Append a new object to the end of the exported array. All six fields are required. Choose asigilId from the table below:
sigilId | SVG Shape Description |
|---|---|
rune-1 | Pointed diamond / bowtie form |
rune-2 | Concentric diamond squares |
rune-3 | Crossed diagonals with vertical spine |
rune-4 | Circle bisected by crosshair |
rune-5 | Double grid of horizontal and vertical lines |
rune-6 | Diamond enclosing a smaller diamond |
rune-7 | Upward-pointing triangle with inner triangle |
Multiple skills may share the same
sigilId. The rune acts as a decorative glyph — it does not need to be unique per skill entry. Choose whichever shape best suits the aesthetic of the skill being added.