INTERVOLITION

Own the interval. invented — no tagline exists in the source; replace or bless

Brand Guidelines · app v1.0.4 · doc v0.1 PROPOSED · 2026-08-04 · Owers LLC

7

Section 01 · proposed

Brand Overview

An interval timer that treats time as the hero: one ring, one numeral, a sound for every transition.

Intervolition is a native iOS interval timer by Owers LLC (Brett Owers, Feb 2025). It ships four ways of slicing time — the Intervalition sketch session, Tabata, Pomodoro, Spartan — plus a Day Mode that scores an entire day with scheduled sound cues. It lives on the lock screen and in the Dynamic Island as much as in the app. context

Mission invented
Make deliberate time visible — one interval at a time, announced out loud.
Vision invented
The metronome for anyone who structures their day into intervals — training, drawing, deep work, and the whole day itself.
Audiences derived from the four factory presets
Athletes (Tabata, Spartan) · artists on timed sketch pages (Intervalition) · focus workers (Pomodoro) · day-structurers (Day Mode).

Personality invented — bless or rewrite

Precise
Numerals are monospaced, rings are geometric, seconds are never approximate.
Audible
The brand speaks in 46 named sounds before it speaks in words.
Unhurried
It counts fast intervals calmly — ease curves, soft haptics, no alarm panic.
Dual-natured
A black precision instrument by default; a warm Potatuhs skin by choice.

Construction principles — live

  1. Time is the hero

    The numeral is the largest thing on any surface, always monospaced, always bold. Everything else — labels, buttons, even the ring — is supporting cast. context: 50pt mono bold numerals

  2. One ring tells the truth

    Progress is a single stroked circle: round caps, starts at twelve, sweeps clockwise, stroke = diameter ÷ 15. No bars-on-rings, no double dials. context: ArcProgressView

  3. Sound is interface

    Every transition has a named cue; users compose their own audio identity per timer. The default sentence: EDM to begin, Arp on work, Pinball on rest. context: AudioSounds + factory presets

    EDM → Arp → Pinball → Ring

  4. Two skins, one skeleton

    Every value routes through the theme; the app re-renders whole between Dark and Potatuhs without a single component change. This document does the same. context: AppTheme.ThemeMode

Section 02 · proposed

Logo System

The mark is the instrument itself: a progress ring around a countdown numeral on a black field.

Intervolition mark on black
on black — primary [derived reconstruction]
Intervolition mark on cream
on Potatuhs cream — keep the black field
Intervolition mark on the interval gradient
on the gradient — avatar / social crop

Clear space & minimums

2× ring stroke

Proposed clear space: twice the ring's stroke width on all sides — the unit is derived from the mark itself. invented rule Minimum sizes: invented 24px screen / 12mm print — the numeral must stay legible.

PLACEHOLDER — original app-icon raster. The shipped icon lives at Assets.xcassets/AppIcon.appiconset/icon.png (black field · blue ring at ~85% · white "7" · navy wordmark pill · Active/Inactive/Break row). This run could not copy binaries (shell access denied); assets/mark.svg is a derived reconstruction of the ring + numeral core. Drop the real PNG into assets/ at review.
PLACEHOLDER — no vector mark or standalone wordmark exists. The only artwork in the entire repo is the app icon. A wordmark lockup, monogram, and mono/reversed variants are undrawn.
OPEN QUESTION — the name is spelled two ways. Project, repo, display name: Intervolition. Splash screen, default preset, bundle id (com.owersllc.intervalition), icon wordmark: Intervalition. One of these is the brand; the book cannot decide which. context — both extracted

Do

  • Keep the ring open — the gap is the mark's breath; a closed circle is a different logo.
  • Set the numeral in the time face, bold.
  • Use ring colors from the token set only (accent blue; Potatuhs orange in the warm skin).
  • Keep the black field when placing on light or busy backgrounds.

Don't

  • Don't rotate the start point away from twelve o'clock.
  • Don't square the stroke caps — they are always round.
  • Don't fill the ring's center with color or imagery.
  • Don't stretch, add shadows, or outline — the brand owns zero shadows (see 09).
  • Don't typeset the name in both spellings in one surface.

Section 03 · proposed

Color

Two complete skins extracted from AppTheme.swift — plus a semantic layer that tells time what it means.

The Dark skin — default context

Signal Blue

#0A84FF · accent, ring fill [derived: SwiftUI .blue, dark]

Field Black

#000000 · the icon field & dark background [context]

Ring Track

gray @ 30% [context: Color.gray.opacity(0.3)]

The Potatuhs skin context — exact hex from source

Potatuhs Orange

#E16416 · accent

Amber

#E19816 · accentSecondary

Gold

#E1C916 · accentTertiary

Cream

#FDF5EB · background

Ink

#1C1917 · textPrimary

Quiet Gray

#666666 · textSecondary

The interval gradient context

Orange → amber → gold, vertical, top to bottom. It exists only in the Potatuhs skin and only as an accent surface — never behind body text.

Interval semantics context: names derived: hex

Activegreen · flame.fill
Inactiveorange · pause.fill
Breakblue · cup.and.saucer.fill
Countdownpurple · timer

Pairing & contrast — measured, honestly derived: WCAG ratios computed this run

PairingRatioAA body (4.5)AA large (3.0)Rule
Text on black18.0passpassDefault dark pairing.
Blue on black5.4passpassAccent text allowed on dark.
Ink on cream16.1passpassPotatuhs body pairing.
Gray on cream5.3passpassSecondary text.
Orange on cream3.2FAILpassLarge text and strokes only — never body copy.
Ink on orange5.0passpassThe app's own active-label pairing [context] — it chose ink, not white. Keep that.

Tint ramps beyond orange→amber→gold: none exist — placeholder. Hover/pressed states currently derive from the 20% fill rule (see 08), not from ramps.

Section 04 · proposed

Typography

Three voices of one system family: Rounded for identity, Mono for time, System for interface. context

Rounded

The identity voice — the splash wordmark: 40pt bold rounded. Web stack: ui-rounded → Nunito derived.

12:00

The time voice — every numeral, monospaced bold, tabular. Nothing else may be mono'd casually.

System

The interface voice — SF defaults for labels, forms, settings copy. It stays invisible on purpose.

Hierarchy — set live from tokens

time-lg · mono 700
[context: 50pt seconds]

42

time-md · mono 700
[context: 32pt m:ss]

1:07

hero · rounded 800
[proposed doc scale]

Own the interval

h3 · rounded/system 700
[context: 18pt config name]

Pomodoro · Round 4 of 8

body · system 400
[context: settings copy]

When enabled, other audio will be briefly dimmed while interval sounds play.

caption · mono 400
[context: 12–14pt day rows]

07:00 · Bird · every day

The open call: which face owns time?

The app sets numerals in mono; the wordmark is rounded. A rounded time face would unify the voices but soften the instrument. Flip it live — every numeral in this document re-renders:

0:19

Don't

  • Don't set time in a proportional face — colons must not wobble.
  • Don't fake the rounded face with border tricks or faux-bold.
  • Don't exceed two voices on one surface (time + one other).
  • Don't letter-space the mono numerals.

Section 05 · proposed

Iconography

SF Symbols, exclusively — filled variants, tinted by role, sized at half their container. context

start · play.fill

pause · pause.fill

stop · stop

reset · restart

add · plus

edit · pencil

sound · speaker.wave.2.fill

yield · exclamationmark.octagon.fill

silence · speaker.slash.fill

skip · arrowshape.right.fill

previous · arrowshape.left.fill

down · chevron.down

Source
Apple SF Symbols only — no custom set, no third-party library. The glyphs above are web stand-ins; on Apple platforms use the named symbols verbatim. context
Geometry
Icon renders at 50% of its circular container's diameter; containers come in 30 / 44 / 58pt. context: CustomButton
Color
Icons always take their role's semantic color at full strength, on the same color at 20% fill. Never on gradients.

Don't

  • Don't mix outline and filled variants on one surface — prefer filled.
  • Don't draw custom glyphs when an SF Symbol exists.
  • Don't tint an icon a color its role doesn't own.
  • Don't scale icons past 50% of their container.

Section 06 · proposed

Photography & Illustration

The source contains zero photography and zero illustration. The interface is the imagery.

PLACEHOLDER — no imagery world exists. Nothing to extract: no photos, no illustrations, no marketing art anywhere in the repo. Everything below is an invented proposal for Brett to shred.
Proposed stance invented
Interface-first: screenshots, the ring, and live numerals are the brand's imagery. If human photography ever enters, it shows people mid-interval — chalk on hands, pencil on page 17 of 32 — never posed "after" shots.
Proposed qualities invented
In-progress · single-subject · hard directional light (a timer casts a shadow) · time visible somewhere in frame.

Section 07 · proposed

Mascots & Characters

Intervolition has none — a deliberate position, not an omission.

The app is a precision instrument; no character appears anywhere in it. context Proposed stance: it stays that way. The instrument's neutrality is what lets athletes, artists, and focus workers all project their own practice onto it. invented

The one exception invented rule
If the Potatuhs skin ever deepens into a full Potatuhs edition, parent-brand characters may appear in marketing for that edition only — never inside the timer surface, never near the ring.
If a character is ever proposed
It must survive this test: does it make an interval easier to start? A mascot that decorates but does not start timers is denied.

Section 08 · proposed

UI Components

Extracted live: press, hover, and flip everything on this page. Depth is a 20% tint, never a shadow.

Interval-type labels context: IntervalTypeLabel

Padding 12×6 · radius 10 · active = accent fill + bold; the swap animates at 300ms ease-in-out. Press one.

Circular controls context: CustomButton

go · 58

halt · 44

accent · 44

shift · 44

silence · 30

Anatomy
ShapePerfect circle; 30 / 44 / 58pt; icon at 50%.
RestSemantic color at 20% fill; glyph at 100%.
Hover invented — iOS has noneFill deepens to 30%.
PressedScale 0.92, 200ms ease-out.
Focus2px accent outline, 2px offset — visible always.

In situ — same tokens, no images

Section 09 · proposed

Shadows & Borders

The elevation language is: there isn't one.

Zero shadow calls exist in the entire app. context: repo-wide grep Depth is communicated by fill opacity (the 20% rule) and by color, never by elevation. This is a brand fact: the instrument is flat because time is flat.

Shadow scale
--sh-none: none — the complete scale.
Borders
The app draws none; this document uses a single 1px hairline for structure. invented, doc-only

Radius scale — live corners context: 4 / 8 / 10 xl invented

4 · bars
8 · cards
10 · labels
16 · panels
pill · controls

Section 10 · proposed

Motion & Sound

Three durations, two curves, one choreography — and a 46-cue vocabulary that is the brand's actual voice.

Timing tokens context
TokenValueUsed for
--dur-fast200msarc opacity swap
--dur-normal300mslabel & type swaps
--dur-slow500msarc progress step · view crossfades
--dur-fill3000msthe splash ring fill
--ease-in-outeaseInOutstate swaps
--ease-outeaseOutprogress, presses
fast · ease-out
normal · ease-in-out
slow · ease-out

The splash choreography context: SplashScreenView

0–3.0s ring fill
1.0–2.0s name in
3.5s dismiss

Intervalition

The audible layer — 46 named cues context: AudioSounds + Resources/*.wav

Every cue is one TitleCase word, one .wav. The factory sentence is highlighted. Haptics ride along: soft for ticks, medium for transitions context: HapticManager. Audio files were not copied this run (shell denied) — cues render as inventory, not players.

  • Accept
  • Alarm
  • Arp — active starts
  • Bark
  • Beep
  • Bell
  • Bing
  • Bird
  • Boom
  • Chord
  • Church
  • Clap
  • Click
  • Crackles
  • Crowd
  • Drop
  • Eagle
  • EDM — countdown
  • Fireworks
  • Gong
  • Honk
  • Keys
  • Kids
  • Lady
  • Lighter
  • Lock
  • Log
  • Pinball — rest starts
  • Ping
  • Pump
  • Punch
  • Rev
  • Ring — ending warning
  • Rip
  • Riser
  • Robot
  • Spent
  • Synth
  • Tennis
  • Throw
  • Typing
  • Upbeat
  • Whale
  • Whistle
  • Woodpecker
  • Zip

Reduced motion: respected — reveals render immediately, loops stop, transforms collapse; opacity changes remain. invented policy; the app predates one

Section 11 · proposed

Layout

The ring is the layout: one centered column, breathing space above and below, the numeral in the middle.

The app composes every screen as a single vertical stack with spacers pushing content to the optical center — no grids, no sidebars, no density. context: Spacer-driven stacks The document you're reading adds a conventional web frame around that idea. doc scale invented

Containers

narrow · 46rem · prose
default · 72rem · sections
wide · 88rem · showcases

Spacing — 4pt base proposed; app anchors: 6, 12, 16pt

1
2
3
4
5
6
7
8
Section rhythm
clamp(4rem, 8vw, 7rem) vertical padding; hairline dividers; backgrounds alternate surface / tint / showcase.
The center rule
Anything that tells time sits on the horizontal center line. Controls flank it; labels crown it.

Section 12 · proposed

Voice & Tone

One-word imperatives on the surface; calm full sentences underneath.

The extracted voice has two registers. Controls speak in single words — and the words are unusual: Yield, not "warn"; Silence, as a verb. Explanations speak in complete, unhurried sentences that state the trade-off. context: ButtonType titles, settings copy

Controls — verbatim from source

Start · Stop · Pause · Reset · Yield · Silence · Skip · Previous

Settings — verbatim from source

"When enabled, other audio (music, podcasts) will be briefly dimmed while interval sounds play. Disable this to keep your music at full volume."

Marketing sample invented

Thirty-two sketch pages. Sixty seconds each. Begin.
Tone by context invented
In-timerSilent. The sound cue is the message; text never interrupts an interval.
SettingsPlain, complete sentences; name the trade-off, let the user decide.
MarketingShort declaratives, numbers first, end on an imperative.
ErrorsState what stopped and the single action that resumes. No apology theater.

Words we use

  • interval · round · cue
  • begin, yield, silence
  • numbers, written as numerals

Never

  • "crush / grind / beast mode"
  • "just 5 more!" — no pleading
  • exclamation points in-app

Section 13 · proposed

AI Policy

No stance exists anywhere in the source. This page is a drafted position awaiting the owner's word.

AI-assisted. Human-shipped. invented — a proposal, not a policy

Proposed reading: AI participates in building Intervolition (code, copy drafts, this document); a human decides what ships, and the timer itself contains no generative features — it is deterministic by design.

PLACEHOLDER — disclosure rule, contractor rule, data boundaries. All three are unset. Decide at review: is AI-assisted work labeled, may vendors use AI on brand work, and what user/telemetry data (there is none today) may touch third-party models.
Proposed surface rules invented
SurfaceAI allowed?
Engineering & refactorsyes — reviewed
Copy drafts, docsyes — human-edited
Sound cuesno — recorded/curated by a human ear
The timer's behaviorno — deterministic, always

Section 14 · proposed

Sub-brands & Ecosystem

The source encodes its own family tree: a theme literally named "Potatuhs."

Owers LLCpublisher · com.owersllc [context]
Intervolitionthe product · v1.0.4 [context]
Widget + Live Activity + Dynamic Islandsurface family [context]
Potatuhsskin-level affiliation via ThemeMode.potatuhs [context]

The Potatuhs relationship today is exactly one enum case deep: the tri-orange skin is opt-in, and the default experience carries no parent branding.

OPEN QUESTION — what is Intervolition to Potatuhs? (a) A standalone Owers LLC product that happens to wear a Potatuhs skin; (b) a Potatuhs-endorsed app ("by the makers of…"); (c) a full Potatuhs family member with the orange as default. The answer decides the default skin, the App Store page, and section 02's lockup rules. Nothing downstream locks until this does.
Shared core (proposed)
If (b) or (c): the tri-orange tokens and cream/ink pairings are imported from potatuhs-design, never redefined here.
Allowed deviation (proposed)
The dark instrument skin remains Intervolition's own in every scenario — the parent has no black-field precedent.

Section 15 · proposed

Asset Naming & Governance

The system that keeps this document true after today.

Naming

Sound cues context
One TitleCase word, .wav, name = the enum case: Woodpecker.wav. New cues follow or are renamed.
Brand assets proposed, per the Potatuhs convention
intervolition-{category}-{label}-{variant}.{ext} — e.g. intervolition-icon-ring-dark.svg.
Exports
SVG for marks, PNG at 1024 for the App Store icon, WAV 16-bit for cues. proposed

The SSOT chain

DESIGN.mdThe spec. Outranks this site; the site renders it.
tokens.css / tokens.jsonThe machine contract, generated together, never apart.
AppTheme.swiftThe iOS consumer. On change: edit spec → regenerate tokens → mirror into the enum. Today it is upstream (this doc was extracted from it); after lock the direction reverses.

Every section on this page is PROPOSED — nothing is locked. Asset exports (like assets/mark.svg) necessarily bake token values; regenerate them when tokens change.