note

This rune is part of @refrakt-md/plan. Install with npm install @refrakt-md/plan and add "@refrakt-md/plan" to the packages array in your refrakt.config.json.

Spec

Wraps a specification document, giving it status tracking, versioning, and entity registry integration. Specs are the source of truth for what the software should do. The body is intentionally freeform — specs vary widely in shape.

Accepted specification

A spec in accepted status with a version number and scope summary.

{% spec id="SPEC-008" status="accepted" version="1.2" tags="tint,theming" %}
# Tint Rune

> Section-level colour context override via CSS custom properties.

## Problem

A page has a single colour context. Some sections need a different palette — a dark hero, a branded callout, a seasonal promotion. Currently there is no way to override colour tokens within a section scope.

## Solution

`tint` is a core rune that overrides colour tokens within its parent rune's scope. The identity transform reads tint definitions and injects CSS custom properties as inline styles on the container element.
{% /spec %}
<article data-rune="spec">
  <meta content="SPEC-008" data-field="id">
  <meta content="accepted" data-field="status">
  <meta content="1.2" data-field="version">
  <meta content="" data-field="supersedes">
  <meta content="tint,theming" data-field="tags">
  <meta content="2026-04-10" data-field="created">
  <meta content="2026-04-10" data-field="modified">
  <header data-name="title">
    <h1 id="tint-rune">Tint Rune</h1>
  </header>
  <div data-name="body">
    <blockquote>
      <p>Section-level colour context override via CSS custom properties.</p>
    </blockquote>
    <h2 id="problem">Problem</h2>
    <p>A page has a single colour context. Some sections need a different palette — a dark hero, a branded callout, a seasonal promotion. Currently there is no way to override colour tokens within a section scope.</p>
    <h2 id="solution">Solution</h2>
    <p>
      <code>tint</code>
      is a core rune that overrides colour tokens within its parent rune's scope. The identity transform reads tint definitions and injects CSS custom properties as inline styles on the container element.
    </p>
  </div>
</article>
ID:SPEC-008Status:acceptedv1.2

Tint Rune

Section-level colour context override via CSS custom properties.

Problem

A page has a single colour context. Some sections need a different palette — a dark hero, a branded callout, a seasonal promotion. Currently there is no way to override colour tokens within a section scope.

Solution

tint is a core rune that overrides colour tokens within its parent rune's scope. The identity transform reads tint definitions and injects CSS custom properties as inline styles on the container element.

<article class="rf-spec rf-spec--SPEC-008 rf-spec--accepted rf-spec--1.2" data-id="SPEC-008" data-status="accepted" data-version="1.2" data-tags="tint,theming" data-created="2026-04-10" data-modified="2026-04-10" data-rune="spec" data-density="full">
  <div data-name="header" class="rf-spec__header" data-section="header">
    <span data-name="id-badge" data-meta-type="id" data-meta-rank="primary" class="rf-spec__id-badge">
      <span data-meta-label="" data-meta-label-hidden="">ID:</span>
      <span data-meta-value="">SPEC-008</span>
    </span>
    <span data-name="status-badge" data-meta-type="status" data-meta-rank="primary" data-meta-sentiment="positive" class="rf-spec__status-badge">
      <span data-meta-label="" data-meta-label-hidden="">Status:</span>
      <span data-meta-value="">accepted</span>
    </span>
    <span data-name="version-badge" data-meta-type="tag" data-meta-rank="secondary" class="rf-spec__version-badge">v1.2</span>
    <time data-name="created-badge" data-meta-type="temporal" data-meta-rank="secondary" class="rf-spec__created-badge">
      <span data-meta-label="">Created:</span>
      <span data-meta-value="">2026-04-10</span>
    </time>
    <time data-name="modified-badge" data-meta-type="temporal" data-meta-rank="secondary" class="rf-spec__modified-badge">
      <span data-meta-label="">Modified:</span>
      <span data-meta-value="">2026-04-10</span>
    </time>
  </div>
  <div data-name="body" class="rf-spec__body" data-section="body">
    <meta content="SPEC-008" data-field="id" />
    <meta content="accepted" data-field="status" />
    <meta content="1.2" data-field="version" />
    <meta content="" data-field="supersedes" />
    <meta content="tint,theming" data-field="tags" />
    <meta content="2026-04-10" data-field="created" />
    <meta content="2026-04-10" data-field="modified" />
    <header data-name="title" class="rf-spec__title">
      <h1 id="tint-rune">Tint Rune</h1>
    </header>
    <div data-name="body" class="rf-spec__body" data-section="body">
      <blockquote>
        <p>Section-level colour context override via CSS custom properties.</p>
      </blockquote>
      <h2 id="problem">Problem</h2>
      <p>A page has a single colour context. Some sections need a different palette — a dark hero, a branded callout, a seasonal promotion. Currently there is no way to override colour tokens within a section scope.</p>
      <h2 id="solution">Solution</h2>
      <p>
        <code>tint</code>
         is a core rune that overrides colour tokens within its parent rune's scope. The identity transform reads tint definitions and injects CSS custom properties as inline styles on the container element.
      </p>
    </div>
  </div>
</article>

Draft specification

A minimal spec in draft status.

{% spec id="SPEC-012" status="draft" %}
# Dependency Graph Visualisation

> Render entity relationships as an interactive graph.

This spec is not yet written. It will cover the visual representation of cross-references between specs, work items, and decisions.
{% /spec %}
<article data-rune="spec">
  <meta content="SPEC-012" data-field="id">
  <meta content="draft" data-field="status">
  <meta content="" data-field="version">
  <meta content="" data-field="supersedes">
  <meta content="" data-field="tags">
  <meta content="2026-04-10" data-field="created">
  <meta content="2026-04-10" data-field="modified">
  <header data-name="title">
    <h1 id="dependency-graph-visualisation">Dependency Graph Visualisation</h1>
  </header>
  <div data-name="body">
    <blockquote>
      <p>Render entity relationships as an interactive graph.</p>
    </blockquote>
    <p>This spec is not yet written. It will cover the visual representation of cross-references between specs, work items, and decisions.</p>
  </div>
</article>
ID:SPEC-012Status:draft

Dependency Graph Visualisation

Render entity relationships as an interactive graph.

This spec is not yet written. It will cover the visual representation of cross-references between specs, work items, and decisions.

<article class="rf-spec rf-spec--SPEC-012 rf-spec--draft" data-id="SPEC-012" data-status="draft" data-created="2026-04-10" data-modified="2026-04-10" data-rune="spec" data-density="full">
  <div data-name="header" class="rf-spec__header" data-section="header">
    <span data-name="id-badge" data-meta-type="id" data-meta-rank="primary" class="rf-spec__id-badge">
      <span data-meta-label="" data-meta-label-hidden="">ID:</span>
      <span data-meta-value="">SPEC-012</span>
    </span>
    <span data-name="status-badge" data-meta-type="status" data-meta-rank="primary" data-meta-sentiment="neutral" class="rf-spec__status-badge">
      <span data-meta-label="" data-meta-label-hidden="">Status:</span>
      <span data-meta-value="">draft</span>
    </span>
    <time data-name="created-badge" data-meta-type="temporal" data-meta-rank="secondary" class="rf-spec__created-badge">
      <span data-meta-label="">Created:</span>
      <span data-meta-value="">2026-04-10</span>
    </time>
    <time data-name="modified-badge" data-meta-type="temporal" data-meta-rank="secondary" class="rf-spec__modified-badge">
      <span data-meta-label="">Modified:</span>
      <span data-meta-value="">2026-04-10</span>
    </time>
  </div>
  <div data-name="body" class="rf-spec__body" data-section="body">
    <meta content="SPEC-012" data-field="id" />
    <meta content="draft" data-field="status" />
    <meta content="" data-field="version" />
    <meta content="" data-field="supersedes" />
    <meta content="" data-field="tags" />
    <meta content="2026-04-10" data-field="created" />
    <meta content="2026-04-10" data-field="modified" />
    <header data-name="title" class="rf-spec__title">
      <h1 id="dependency-graph-visualisation">Dependency Graph Visualisation</h1>
    </header>
    <div data-name="body" class="rf-spec__body" data-section="body">
      <blockquote>
        <p>Render entity relationships as an interactive graph.</p>
      </blockquote>
      <p>This spec is not yet written. It will cover the visual representation of cross-references between specs, work items, and decisions.</p>
    </div>
  </div>
</article>

Superseded specification

A spec that has been replaced by a newer version.

{% spec id="SPEC-003" status="superseded" version="1.0" supersedes="SPEC-001" %}
# Original Token System

> First-generation design token architecture.

This specification has been superseded. See the current token system specification for the active design.
{% /spec %}
<article data-rune="spec">
  <meta content="SPEC-003" data-field="id">
  <meta content="superseded" data-field="status">
  <meta content="1.0" data-field="version">
  <meta content="SPEC-001" data-field="supersedes">
  <meta content="" data-field="tags">
  <meta content="2026-04-10" data-field="created">
  <meta content="2026-04-10" data-field="modified">
  <header data-name="title">
    <h1 id="original-token-system">Original Token System</h1>
  </header>
  <div data-name="body">
    <blockquote>
      <p>First-generation design token architecture.</p>
    </blockquote>
    <p>This specification has been superseded. See the current token system specification for the active design.</p>
  </div>
</article>
ID:SPEC-003Status:supersededv1.0Supersedes:SPEC-001

Original Token System

First-generation design token architecture.

This specification has been superseded. See the current token system specification for the active design.

<article class="rf-spec rf-spec--SPEC-003 rf-spec--superseded rf-spec--1.0 rf-spec--SPEC-001" data-id="SPEC-003" data-status="superseded" data-version="1.0" data-supersedes="SPEC-001" data-created="2026-04-10" data-modified="2026-04-10" data-rune="spec" data-density="full">
  <div data-name="header" class="rf-spec__header" data-section="header">
    <span data-name="id-badge" data-meta-type="id" data-meta-rank="primary" class="rf-spec__id-badge">
      <span data-meta-label="" data-meta-label-hidden="">ID:</span>
      <span data-meta-value="">SPEC-003</span>
    </span>
    <span data-name="status-badge" data-meta-type="status" data-meta-rank="primary" data-meta-sentiment="caution" class="rf-spec__status-badge">
      <span data-meta-label="" data-meta-label-hidden="">Status:</span>
      <span data-meta-value="">superseded</span>
    </span>
    <span data-name="version-badge" data-meta-type="tag" data-meta-rank="secondary" class="rf-spec__version-badge">v1.0</span>
    <span data-name="supersedes-badge" data-meta-type="id" data-meta-rank="secondary" class="rf-spec__supersedes-badge">
      <span data-meta-label="">Supersedes:</span>
      <span data-meta-value="">SPEC-001</span>
    </span>
    <time data-name="created-badge" data-meta-type="temporal" data-meta-rank="secondary" class="rf-spec__created-badge">
      <span data-meta-label="">Created:</span>
      <span data-meta-value="">2026-04-10</span>
    </time>
    <time data-name="modified-badge" data-meta-type="temporal" data-meta-rank="secondary" class="rf-spec__modified-badge">
      <span data-meta-label="">Modified:</span>
      <span data-meta-value="">2026-04-10</span>
    </time>
  </div>
  <div data-name="body" class="rf-spec__body" data-section="body">
    <meta content="SPEC-003" data-field="id" />
    <meta content="superseded" data-field="status" />
    <meta content="1.0" data-field="version" />
    <meta content="SPEC-001" data-field="supersedes" />
    <meta content="" data-field="tags" />
    <meta content="2026-04-10" data-field="created" />
    <meta content="2026-04-10" data-field="modified" />
    <header data-name="title" class="rf-spec__title">
      <h1 id="original-token-system">Original Token System</h1>
    </header>
    <div data-name="body" class="rf-spec__body" data-section="body">
      <blockquote>
        <p>First-generation design token architecture.</p>
      </blockquote>
      <p>This specification has been superseded. See the current token system specification for the active design.</p>
    </div>
  </div>
</article>

Attributes

AttributeTypeDefaultDescription
idstringUnique identifier, e.g. SPEC-008 (required)
statusstringdraftCurrent status: draft, review, accepted, superseded, deprecated
versionstringSpec version, e.g. 1.0, 1.2
supersedesstringID of the spec this replaces
tagsstringComma-separated labels
createdstring$file.createdCreation date (ISO 8601). Auto-populated from git history
modifiedstring$file.modifiedLast modified date (ISO 8601). Auto-populated from git history

Common attributes

All block runes share these attributes for layout and theming.

AttributeTypeDefaultDescription
widthstringcontentPage grid width: content, wide, or full
spacingstringVertical spacing: flush, tight, default, loose, or breathe
insetstringHorizontal padding: flush, tight, default, loose, or breathe
tintstringNamed colour tint from theme configuration
tint-modestringautoColour scheme override: auto, dark, or light
bgstringNamed background preset from theme configuration