<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Interface on projectious.work Brand</title><link>https://projectious-work.github.io/brand/v1.0.0/docs/interface/</link><description>Recent content in Interface on projectious.work Brand</description><generator>Hugo</generator><language>en</language><atom:link href="https://projectious-work.github.io/brand/v1.0.0/docs/interface/index.xml" rel="self" type="application/rss+xml"/><item><title>Components</title><link>https://projectious-work.github.io/brand/v1.0.0/docs/interface/components/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/brand/v1.0.0/docs/interface/components/</guid><description>&lt;p&gt;Every specimen on this page is live markup styled by the brand tokens, ported
from &lt;code&gt;brand/html/projectious-kitchen-sink.html&lt;/code&gt;. They follow your colour mode —
switch the theme and they change with the documentation.&lt;/p&gt;
&lt;p&gt;Measurements listed here are normative: a 40px input is 40px.&lt;/p&gt;
&lt;h2 id="buttons"&gt;Buttons&lt;/h2&gt;
&lt;p&gt;Five variants, three sizes. Plus Jakarta Sans 600, 6px radius, 200ms transitions.&lt;/p&gt;
&lt;div class="pj-demo"&gt;&lt;div class="pj-demo__label"&gt;Variants — medium (40px)&lt;/div&gt;
 &lt;div class="pj-demo__body"&gt;
 
&lt;button class="pj-btn pj-btn--primary pj-btn--md"&gt;Get started&lt;/button&gt;
&lt;button class="pj-btn pj-btn--accent pj-btn--md"&gt;Deploy&lt;/button&gt;
&lt;button class="pj-btn pj-btn--outline pj-btn--md"&gt;Learn more&lt;/button&gt;
&lt;button class="pj-btn pj-btn--ghost pj-btn--md"&gt;Cancel&lt;/button&gt;
&lt;button class="pj-btn pj-btn--danger pj-btn--md"&gt;Delete&lt;/button&gt;
&lt;button class="pj-btn pj-btn--primary pj-btn--md" disabled&gt;Disabled&lt;/button&gt;

 &lt;/div&gt;
&lt;/div&gt;

&lt;div class="pj-demo"&gt;&lt;div class="pj-demo__label"&gt;Sizes — sm 32px · md 40px · lg 48px&lt;/div&gt;
 &lt;div class="pj-demo__body"&gt;
 
&lt;button class="pj-btn pj-btn--accent pj-btn--sm"&gt;Small&lt;/button&gt;
&lt;button class="pj-btn pj-btn--accent pj-btn--md"&gt;Medium&lt;/button&gt;
&lt;button class="pj-btn pj-btn--accent pj-btn--lg"&gt;Large&lt;/button&gt;

 &lt;/div&gt;
&lt;/div&gt;

&lt;div class="pj-demo"&gt;&lt;div class="pj-demo__label"&gt;On a midnight surface&lt;/div&gt;
 &lt;div class="pj-demo__body pj-demo__body--dark"&gt;
 
&lt;button class="pj-btn pj-btn--accent pj-btn--md"&gt;Deploy&lt;/button&gt;
&lt;button class="pj-btn pj-btn--outline pj-btn--md"&gt;View logs&lt;/button&gt;
&lt;button class="pj-btn pj-btn--ghost pj-btn--md"&gt;Dismiss&lt;/button&gt;

 &lt;/div&gt;
&lt;/div&gt;

&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Variant&lt;/th&gt;
					&lt;th&gt;Fill&lt;/th&gt;
					&lt;th&gt;Border&lt;/th&gt;
					&lt;th&gt;Text&lt;/th&gt;
					&lt;th&gt;Contrast&lt;/th&gt;
					&lt;th&gt;Use&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Primary&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;midnight-9&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;none&lt;/td&gt;
					&lt;td&gt;white&lt;/td&gt;
					&lt;td&gt;12.75:1&lt;/td&gt;
					&lt;td&gt;Default action&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Accent&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;accent-solid&lt;/code&gt; &lt;code&gt;#cc4528&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;none&lt;/td&gt;
					&lt;td&gt;white&lt;/td&gt;
					&lt;td&gt;4.72:1&lt;/td&gt;
					&lt;td&gt;The single most important action&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Outline&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;transparent&lt;/td&gt;
					&lt;td&gt;1.5px &lt;code&gt;orange-9&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;orange-11&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;5.13:1&lt;/td&gt;
					&lt;td&gt;Secondary action&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Ghost&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;transparent&lt;/td&gt;
					&lt;td&gt;1px border&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;slate-9&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
					&lt;td&gt;Tertiary, toolbars&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Danger&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;#a8261c&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;none&lt;/td&gt;
					&lt;td&gt;white&lt;/td&gt;
					&lt;td&gt;7.10:1&lt;/td&gt;
					&lt;td&gt;Destructive action&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Accent buttons fill with accent-solid, not step 9&lt;/div&gt;
&lt;p&gt;&lt;code&gt;orange-9&lt;/code&gt; (&lt;code&gt;#E05232&lt;/code&gt;) is the identity accent and is unchanged as a mark,
border, active state, or syntax colour. But white on it measures &lt;strong&gt;3.87:1&lt;/strong&gt; —
below the 4.5:1 floor for 13–14px labels. Solid accent controls therefore fill
with &lt;strong&gt;&lt;code&gt;--color-accent-solid&lt;/code&gt; (&lt;code&gt;#cc4528&lt;/code&gt;)&lt;/strong&gt;, white at &lt;strong&gt;4.72:1&lt;/strong&gt;; hover
continues to &lt;code&gt;accent-dark&lt;/code&gt; (&lt;code&gt;#b84228&lt;/code&gt;, 5.46:1).&lt;/p&gt;</description></item><item><title>Dark mode</title><link>https://projectious-work.github.io/brand/v1.0.0/docs/interface/dark-mode/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/brand/v1.0.0/docs/interface/dark-mode/</guid><description>&lt;p&gt;Dark mode is not a variant of the brand — it is half of it. Both modes are
designed, tested, and shipped together.&lt;/p&gt;
&lt;h2 id="implementation-rules"&gt;Implementation rules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default follows &lt;code&gt;prefers-color-scheme&lt;/code&gt;&lt;/strong&gt;, with a manual override toggle
persisted to &lt;code&gt;localStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CSS custom properties swap per theme.&lt;/strong&gt; Components read tokens; they do not
branch on the mode themselves.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 9 (solid accent) stays constant across modes.&lt;/strong&gt; &lt;code&gt;#E05232&lt;/code&gt; is &lt;code&gt;#E05232&lt;/code&gt;
everywhere.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No pure &lt;code&gt;#000&lt;/code&gt; or &lt;code&gt;#fff&lt;/code&gt; as text.&lt;/strong&gt; Use step 12 — &lt;code&gt;#c5daf0&lt;/code&gt; on dark,
&lt;code&gt;#142438&lt;/code&gt; on light.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Images get a subtle overlay&lt;/strong&gt; (black at low alpha) in dark mode, so a bright
photograph does not punch a hole in a dark page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code blocks are always dark&lt;/strong&gt;, regardless of mode. See
&lt;a href="https://projectious-work.github.io/brand/v1.0.0/docs/interface/code/"&gt;Code&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="pj-demo"&gt;&lt;div class="pj-demo__label"&gt;The same card in both modes&lt;/div&gt;
 &lt;div class="pj-demo__body pj-demo__body--grid"&gt;
 
&lt;div style="background:#ffffff;border:1px solid #dadce0;border-radius:9px;padding:1rem"&gt;
 &lt;div style="font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.9375rem;color:#1d3352"&gt;Light mode&lt;/div&gt;
 &lt;div style="font-size:.8125rem;color:#5c6f82;margin-top:.25rem"&gt;Body text is midnight-12; supporting copy is slate-11.&lt;/div&gt;
 &lt;div style="margin-top:.625rem"&gt;&lt;span style="background:#cc4528;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:.75rem;font-weight:600;padding:.3125rem .75rem;border-radius:6px"&gt;Deploy&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="background:#131e2b;border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:1rem"&gt;
 &lt;div style="font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.9375rem;color:#c5daf0"&gt;Dark mode&lt;/div&gt;
 &lt;div style="font-size:.8125rem;color:#97a8b8;margin-top:.25rem"&gt;Never pure white — midnight-12 from the dark scale.&lt;/div&gt;
 &lt;div style="margin-top:.625rem"&gt;&lt;span style="background:#cc4528;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:.75rem;font-weight:600;padding:.3125rem .75rem;border-radius:6px"&gt;Deploy&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="surfaces"&gt;Surfaces&lt;/h2&gt;
&lt;p&gt;Elevation in dark mode is expressed by &lt;strong&gt;lightening the surface&lt;/strong&gt;, not by
deepening the shadow — a shadow against a near-black background is invisible.&lt;/p&gt;</description></item><item><title>Code</title><link>https://projectious-work.github.io/brand/v1.0.0/docs/interface/code/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/brand/v1.0.0/docs/interface/code/</guid><description>&lt;h2 id="code-blocks-are-always-dark"&gt;Code blocks are always dark&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Code blocks stay dark regardless of colour mode.&lt;/strong&gt; A code surface that flips
with the theme forces the syntax palette to be designed twice and makes
screenshots inconsistent between users. The surface is &lt;code&gt;midnight-2&lt;/code&gt; from the
&lt;strong&gt;dark&lt;/strong&gt; scale (&lt;code&gt;#131e2b&lt;/code&gt;) in both light and dark mode.&lt;/p&gt;
&lt;p&gt;The block you are reading is rendered by that rule:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Agent pipeline definition
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pipeline&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;createPipeline&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;validate-deploy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;policy&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;strict&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;auditor&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;deployer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="syntax-theme"&gt;Syntax theme&lt;/h2&gt;
&lt;p&gt;Because the surface is always dark, every syntax value is read from the &lt;strong&gt;dark&lt;/strong&gt;
scale. Contrast is measured against &lt;code&gt;#131e2b&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Icons</title><link>https://projectious-work.github.io/brand/v1.0.0/docs/interface/icons/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/brand/v1.0.0/docs/interface/icons/</guid><description>&lt;h2 id="library"&gt;Library&lt;/h2&gt;
&lt;p&gt;The system uses &lt;strong&gt;&lt;a href="https://lucide.dev"&gt;Lucide&lt;/a&gt;&lt;/strong&gt; — an actively maintained fork
of Feather with over 1,400 icons.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Property&lt;/th&gt;
					&lt;th&gt;Value&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Licence&lt;/td&gt;
					&lt;td&gt;ISC (functionally equivalent to MIT)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Commercial use&lt;/td&gt;
					&lt;td&gt;Permitted&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Attribution&lt;/td&gt;
					&lt;td&gt;Not required in product UI; retain the notice in source&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Modification&lt;/td&gt;
					&lt;td&gt;Permitted&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;ISC is one of the most permissive open-source licences available, which is why
it was chosen over icon sets with attribution or share-alike terms. See the
&lt;a href="https://projectious-work.github.io/brand/v1.0.0/docs/governance/legal-assessment/"&gt;legal assessment&lt;/a&gt; for the
clearance detail.&lt;/p&gt;</description></item><item><title>Forms</title><link>https://projectious-work.github.io/brand/v1.0.0/docs/interface/forms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/brand/v1.0.0/docs/interface/forms/</guid><description>&lt;h2 id="sizing"&gt;Sizing&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Size&lt;/th&gt;
					&lt;th&gt;Height&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;sm&lt;/td&gt;
					&lt;td&gt;32px&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;md&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;40px&lt;/strong&gt; — the default&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;lg&lt;/td&gt;
					&lt;td&gt;48px&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;All inputs are set in &lt;strong&gt;Source Sans 3 at 13px&lt;/strong&gt;.&lt;/p&gt;
&lt;div class="pj-demo"&gt;&lt;div class="pj-demo__label"&gt;Sizes — sm 32 · md 40 · lg 48&lt;/div&gt;
 &lt;div class="pj-demo__body pj-demo__body--grid"&gt;
 
&lt;div class="pj-field"&gt;&lt;span class="pj-field__label"&gt;Small&lt;/span&gt;&lt;input class="pj-input pj-input--sm" value="32px" readonly&gt;&lt;/div&gt;
&lt;div class="pj-field"&gt;&lt;span class="pj-field__label"&gt;Medium&lt;/span&gt;&lt;input class="pj-input" value="40px — default" readonly&gt;&lt;/div&gt;
&lt;div class="pj-field"&gt;&lt;span class="pj-field__label"&gt;Large&lt;/span&gt;&lt;input class="pj-input pj-input--lg" value="48px" readonly&gt;&lt;/div&gt;

 &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="states"&gt;States&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;State&lt;/th&gt;
					&lt;th&gt;Treatment&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Default&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;slate-7&lt;/code&gt; border&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Focus&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;midnight-9&lt;/code&gt; border + &lt;strong&gt;2px focus ring, midnight at 15% alpha&lt;/strong&gt;, 2px offset&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Error&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;orange-9&lt;/code&gt; border + &lt;code&gt;orange-1&lt;/code&gt; background&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Disabled&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;slate-4&lt;/code&gt; background, &lt;code&gt;slate-8&lt;/code&gt; text, &lt;code&gt;cursor: not-allowed&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="pj-demo"&gt;&lt;div class="pj-demo__label"&gt;Every state&lt;/div&gt;
 &lt;div class="pj-demo__body pj-demo__body--grid"&gt;
 
&lt;div class="pj-field"&gt;&lt;span class="pj-field__label"&gt;Default&lt;/span&gt;&lt;input class="pj-input" placeholder="slate-7 border"&gt;&lt;/div&gt;
&lt;div class="pj-field"&gt;&lt;span class="pj-field__label"&gt;Focus&lt;/span&gt;&lt;input class="pj-input" value="midnight ring" readonly style="border-color:#1d3352;box-shadow:0 0 0 2px rgba(29,51,82,.15)"&gt;&lt;/div&gt;
&lt;div class="pj-field"&gt;&lt;span class="pj-field__label"&gt;Error&lt;/span&gt;&lt;input class="pj-input pj-input--error" value="invalid" readonly&gt;&lt;span class="pj-field__error"&gt;Describe the problem in words.&lt;/span&gt;&lt;/div&gt;
&lt;div class="pj-field"&gt;&lt;span class="pj-field__label"&gt;Disabled&lt;/span&gt;&lt;input class="pj-input" value="locked" disabled&gt;&lt;/div&gt;

 &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="labels"&gt;Labels&lt;/h2&gt;
&lt;p&gt;Labels use the &lt;strong&gt;overline style&lt;/strong&gt; and sit &lt;strong&gt;above&lt;/strong&gt; the field. Floating labels
are not used anywhere in the system — they hide the label at exactly the moment
the user is filling the field, and they break at long label lengths.&lt;/p&gt;</description></item></channel></rss>