Pencil Spaces · Brand Guide v1.5

The system behind
10M+ tutoring sessions.

A complete reference for the Pencil Spaces brand: how we sound, how we look, how we ship. Source of truth for product, marketing, partnerships, and partners.

Owner · ayush@pncl.tech Last updated · May 2026 Status · Living document Supersedes · PS Brand Guidelines.pdf (March 2026)
01 · Brand foundation

What Pencil Spaces is.

Pencil Spaces is a virtual classroom built for tutoring, not retrofitted from video conferencing. It powers more than 10 million live tutoring sessions and is the connective tissue across every Pencil Learning Technologies vertical.

Story

The world spent twenty years getting good at meetings. Pencil Spaces spent five years getting good at tutoring — the fundamental act of one person helping another person learn something hard.

Where a meeting tool optimizes for “everyone hears the speaker,” tutoring optimizes for the moment a student picks up a pen. Whiteboards, manipulables, persistent rooms, sub–100ms ink, side-by-side documents, recordings that index by what was written — these aren’t features. They’re the table stakes of the work.

That single decision — build for tutoring instead of meeting — is the whole brand. Designed in the spirit of Dieter Rams and Don Norman: less, but better; useful before clever; honest before impressive; and built around how people actually feel when they use it.

Mission

The classroom for the next billion learners. Make every one–to–one and small–group lesson on earth feel as good as the best one you’ve ever taken.

Positioning, in one paragraph

Pencil Spaces is the virtual classroom built for tutoring. Tutors get a single room they can decorate, fill with materials, and reuse with every student. Programs get session recordings, attendance, and curriculum delivery in one place. Schools and districts get a procurement-ready platform that holds up under SOC 2 and student data privacy review. Marketplaces get an embeddable layer that lets them keep their brand on top of the lesson.

Audiences we serve

Audience 01

The solo tutor

Owns their schedule, their students, their materials. Wants pricing that respects part-time work, a fast room they can hand a student a link to in five seconds, and a whiteboard their student doesn’t complain about.

Audience 02

The tutoring program

Five to five hundred tutors. Reports up to a director who reports up to a foundation, district, or grant. Needs attendance, recordings, dosage, parity across tutors, and a brand of their own on the experience.

Audience 03

School & district

Procures across hundreds of buildings. Cares about SSO, FERPA, COPPA, SOC 2, and a single throat to choke on Tuesday at 2pm when seventh period broke. Buys for predictability, renews on outcomes.

Audience 04

The marketplace & ed-tech platform

Has tutors and students of their own. Doesn’t want to stand up WebRTC, a whiteboard team, and a recording pipeline. Wants Pencil Spaces under the hood, their brand on top — via Carbon.dev or embed.

Numbers we earn the right to say

  • 10M+Tutoring sessions delivered. Live count, not lifetime gross.
  • 100msWhiteboard ink latency target. The threshold below which writing feels like writing, not lag.
  • SOC 2Type II. FERPA & COPPA aligned. Procurement-ready by default.
  • 0Other vendors required to run a tutoring business on Pencil Spaces.
02 · Principles

Three rules. Two thinkers.

Pencil Spaces is built on a working philosophy assembled from two of the great design minds of the last seventy years: Dieter Rams on what makes a thing well-designed, and Don Norman on why people end up loving (or quietly hating) it. Rams tells us how. Norman tells us why people care. Three working rules sit on top, used to settle every disagreement — in design review, copy edits, feature scoping, and recruiting.

The three working rules

Distilled from Rams. Carried in our heads. Used to break ties in fewer than thirty seconds.

Principle 01 · Rams #10

As little as possible.

The teacher and the student are the interface. Everything else is plumbing — and plumbing should be invisible. If a panel doesn’t earn its pixels by the second lesson, cut it. Every removed control is a clearer thought.

Principle 02 · Rams #6

Honest.

Show what’s real. Real session counts. Real customer logos. Real feature states. No “coming soon” in a top-of-funnel ad. No screenshots taken in Figma. We earn trust by not faking it — and education buyers can spot the difference at fifty paces.

Principle 03 · Rams #7

Long-lasting.

A tutor will use the same room twice a week for four years. Build, write, and design like that’s the unit. Trends are noise. Restraint is the asset that compounds. The room a tutor opens in 2030 should still feel like home.

The full Rams — ten commandments, translated

Dieter Rams formalized his ten principles of good design at Braun in the 1970s. They are the most quoted — and most misunderstood — design principles in the world. Here they are, each translated to one concrete instruction for Pencil Spaces. Our three working rules above are the bolded ones; the rest are the supporting cast.

#RamsWhat it means for Pencil Spaces
01Good design is innovativeInnovation in tutoring software isn’t about more features — it’s about removing the friction between a tutor’s thought and a student’s page. Sub-100ms ink is innovation. A bigger video tile is not.
02Good design makes a product usefulIf we shipped only the whiteboard, the room link, and the recording, would tutors still use Pencil Spaces? Yes. Build outward from the parts that pass that test.
03Good design is aestheticPeople spend hours teaching here. The room must be a place worth spending time in. Aesthetic isn’t decoration — it’s respect for the user’s eyes and minutes.
04Good design makes a product understandableA new tutor should be able to start their first session in under five minutes without watching a tutorial. Self-explanatory beats self-documenting.
05Good design is unobtrusivePencil Spaces is the stage, not the show. The tutor is the show. Our chrome — nav, panels, controls — should fade into peripheral vision the moment a lesson starts.
06Good design is honestworking rule 02The mark looks like a pencil because the product is for people teaching with pencils. The metric on the website is the metric in the database. No hype, no embellishment.
07Good design is long-lastingworking rule 03Avoid trends. The room a tutor opens in 2030 should still feel like the same room. Restraint is the asset that compounds.
08Good design is thorough down to the last detailEmpty states. Error messages. The hover transition on a checkbox. The pluralization of “1 student” vs “2 students.” If a tutor sees it twice, it earns the same care as a hero.
09Good design is environmentally friendlyLight DOM. Lazy-loaded video. Idle disconnects. A tutor in a Brazilian state school on a 4G hotspot is part of our user base. Bandwidth and battery are environmental constraints.
10Good design is as little design as possibleworking rule 01“Less, but better.” The greatest compliment we can get is silence: the tutor opened the room and started teaching, and didn’t notice the software at all.

Norman’s three levels — designing for how people actually feel

Don Norman’s Emotional Design reframed the question from “is this usable?” to “does the person who uses this end up liking themselves more?” He named three levels at which design works on us. Every Pencil Spaces decision should clear at least two of them — ideally all three.

Level 01 · Visceral

The first half-second.

Before thought. The shape of the logo, the weight of the typography, the sound of the join chime, the feel of the cursor on the canvas. Visceral is what says “this looks real” before the user can articulate why. PS Blue, Fraunces italic, sub-100ms ink — these all live here.

Norman: “Attractive things work better.”

Level 02 · Behavioral

The lesson itself.

The forty-five minutes a tutor spends in the room. Does the whiteboard respond when expected? Does the recording start without a panic? Did the join link work the first time? Behavioral is competence under load — the level Rams’ ten principles target most directly. Get this wrong and visceral charm becomes resentment.

Norman: feedback, affordance, conceptual model.

Level 03 · Reflective

The story they tell after.

What the tutor says to a colleague. What a program director writes in a renewal memo. What a parent posts on Reddit. Reflective is the meaning we leave behind — the identity we let users borrow. Pencil Spaces is for people who care about teaching. Their tools should let them feel like that.

Norman: meaning, memory, self-image.

The two frameworks together. Rams’ ten tell us what to build and what to leave out. Norman’s three tell us where the user’s feelings come from. A feature that satisfies Rams but flops on Norman is technically correct and emotionally cold. A feature that wins viscerally but fails Rams #5 (unobtrusive) becomes a gimmick. Aim for both.

How to use all of this in practice

  • In reviewWhen two people disagree on a design, copy line, or feature decision, the three working rules break the tie. Cite the number. If the disagreement is about feel, ask which Norman level is in play.
  • In hiringCandidates who can’t name something they removed from a product they’re proud of don’t fit principle 01. Candidates who can’t articulate the visceral / behavioral / reflective split haven’t thought hard enough about emotion.
  • In writingBefore publishing copy, ask: is this honest (Rams #6)? Will it land viscerally (Norman L1) or only intellectually (L3)? If only L3, it’s a press release, not a marketing site.
  • In feature scopingEvery new feature gets a one-line scorecard: Rams # it satisfies / Norman level it plays at / what gets removed to make room for it.
03 · Voice & tone

Sounds like a tutor who's also a great writer.

Stripe’s precision meets a Sunday newsletter’s warmth. We are educators talking to educators — not a SaaS company performing “tone of voice.” The aim is to land at all three of Norman’s emotional levels: visceral (the rhythm, the verbs, the surprise), behavioral (the reader knows exactly what to do next), and reflective (they want to send the link to a colleague).

Voice pillars

PillarWe areWe are not
PreciseSpecific numbers. Specific verbs. “Reduces whiteboard latency by 60ms” beats “blazing fast.”Vague. “Best-in-class.” “Seamless.” “Reimagine.”
WarmHuman. We respect the reader’s time and intelligence. We’re allowed to be charming.Corporate. Stiff. Apologetic. Over-formal in trying to seem credible.
ConfidentPlainspoken about what we do well, including the parts that took years.Boastful. Adjective-stacking. Treating customer wins like they’re ours.
CuriousWe notice the small thing — the way a kid holds a stylus, the noise on a coach’s call — and write about it.Lecturing. Performing thought leadership. Industry-jargon-as-insight.

House style

  • SentencesShort and varied. Long sentence, then short. Rhythm matters more than uniformity.
  • NumbersRound only when the rounded number is true. “10M+ sessions” is fine. “Millions of educators” when we mean tens of thousands is not.
  • NamesPencil Spaces (two words, both capitalized). Pencil Learning Technologies / PLT. Sierra TMS. Carbon.dev (lowercase d). Spacebar.ai.
  • PunctuationOxford commas. Em dashes for asides. No exclamation marks except in genuinely celebratory product moments.
  • CapitalizationSentence case for headlines and buttons. Title Case is reserved for proper nouns and product names.
  • Pronouns“You” for the reader. “We” for the team behind the product. Never “our customers love us” — let them say it.

How we write hero lines

Do

“Your users are meeting on Zoom’s product. Give them yours.”

Specific contrast. Names the alternative. Asks for the action.

Don’t

“Empower next-generation learning experiences with cutting-edge collaboration technology.”

Adjective stack. No verb does any work. Could be any company.

Do

“Built for tutoring. Not retrofitted from video conferencing.”

Two short sentences, one idea, one antagonist.

Don’t

“The all-in-one collaborative learning platform that revolutionizes how educators and students engage in real-time virtual environments.”

One long sentence, no idea, every buzzword.

Forbidden words and phrases

These show up in 90% of ed-tech copy. They’ve lost their meaning. Edit them out.

seamless cutting-edge best-in-class revolutionize empower unleash leverage utilize synergy solutions holistic disrupt paradigm shift game-changer next-generation world-class delight (verb) supercharge turnkey end-to-end

Tone shifts by surface

SurfaceLeanExample phrasing
Marketing site heroConfident, sharp“The classroom your tutoring runs on.”
Product UIPlain, helpful“Start a session” · “Invite your student”
Empty statesWarm, instructive (visceral L1)“No sessions yet. Your first one starts a room you can keep forever.”
Error messagesHonest, specific, fixable — never blame the user“Couldn’t reach the room. Check your connection and we’ll retry.”
Sales decksQuietly confident, evidence-led“10M sessions. One vendor. Here’s the SOC 2 report.”
Support repliesDirect, accountable“That was on us. Here’s what happened and what we did.”
05 · Color

One blue does most of the work.

PS Blue carries identity. Pencil yellow and coral are accents, not surfaces. Neutrals are Apple-grade and do the heavy lifting in product. Greens, ambers, and reds are reserved for semantic state — never decoration. This palette is engineered for Rams #5 (unobtrusive) and #10 (as little design as possible): one blue does almost all the work, and a small set of neutrals does the rest. PS Blue is the visceral hit (Norman L1); the neutrals do the behavioral lifting (L2) without competing. The palette below is the marketing-side essentials; the full production design system (62 primitives + 15 semantic aliases) is documented at the end of this section.

PS Blue — Zest.

The single brand color. Confidence, focus, energy. Used for primary action, brand signal, and roughly nothing else.

HEX#2F80ED
RGB47 · 128 · 237
HSL213 · 84% · 56%
Token--ps-primary

Pencil accents

Yellow · the instrument
#FEE133 · var(--ps-yellow)
Pencil body & ferrule. Never used as a surface for type. Reserved for the mark and for celebration moments.
Coral · the eraser
#E5616D · var(--ps-coral)
Pencil eraser. The warm human accent. Reserve for the mark, “don’t” pairs in this guide, and human-generated moments.

Mid-blue accent

Specified in the official March 2026 brand guide as the “Accent Color.” Sits between primary and secondary on the blue scale. Useful for hover states on tinted surfaces, secondary chart series, and decorative dividers.

Mid-blue · accent
#609ED8 · var(--ps-accent)
CMYK 56 27 0 15 · RGB 96 158 216

In the official PLT brand guide this is the only named accent. Use it sparingly — primary remains #2F80ED. Treat #609ED8 as the third blue stop, not as a substitute for the primary.

Semantic colors

Success
#13A876
Confirmations, positive deltas, paid badges
Warning
#B45309
Action required, near limits
Destructive
#DC2626
Delete, irreversible, breaking errors

PS Blue tonal scale (50–950)

Use 500 for primary action; 600 for hover/pressed. 50 and 100 are tints (we ship as --ps-tint-2 and --ps-tint). 200 is the soft fill (--ps-secondary). 700+ for dense data viz only.

50
#F5F9FF
100
#EBF3FF
200
#BBD8FF
300
#8DBEFF
400
#5DA3FF
500
#2F80ED
600
#1F6FDC
700
#1659BA
800
#0F4391
900
#0A2E68
950
#06184A

Neutral scale — Apple-grade

Eleven steps from white to black, calibrated against macOS / iOS gray ramp. Avoid pure black on pure white — we use #1D1D1F as max ink and #FFFFFF only as canvas.

Pure white
#FFFFFF
Page bg, primary surface
Off-white
#FBFBFD
Subtle section break
Mist
#F5F5F7
Secondary surfaces
Hairline tint
#F2F2F4
Disabled bg
Soft line
#E5E5EA
Dividers
Line
#D2D2D7
Borders, inputs
Mute
#9D9DA3
Disabled text
Ink-4
#6E6E73
Secondary text
Ink-3
#515154
Body text muted
Ink-2
#333333
Body text
Ink
#1D1D1F
Headlines

Approved on-brand pairings (WCAG AA verified)

ForegroundBackgroundContrastPass
#1D1D1F ink#FFFFFF white19.7:1AAA
#515154 ink-3#FFFFFF white7.6:1AAA
#6E6E73 ink-4#FFFFFF white4.9:1AA
#FFFFFF white#2F80ED PS Blue4.6:1AA
#2F80ED PS Blue#FFFFFF white4.6:1AA
#1F6FDC primary-h#EBF3FF tint5.4:1AA
#1D1D1F ink#FEE133 yellow14.2:1AAA
#FFFFFF white#E5616D coral3.4:1Large only
Rule. Never set body type on yellow or coral. Use yellow as fill behind ink-on-white callouts; use coral on dark or large display only.

Full production palette — the Figma design system

Everything below is the actual canvas truth from the active Design System Figma file (file key YVgDpPUHBXwJ3YwFSQCcXV). Two collections: Color/Global Tokens (62 primitives) and Color/Semantic Tokens (15 aliases). This is the production palette — the marketing tokens above are a curated subset.

Naming convention. The Figma file uses two parallel naming systems for the same colors: numbered scales (e.g. Gray/100–600, light to dark) and ordinal paint styles (Gray/1–6, dark to light, reversed). New work should use the numbered scales. Treat ordinal styles as legacy.

Canvas vs. variables — sync drift detected. A direct read of the canvas swatches in the source .fig file (May 2026) reveals two places where the displayed color and the underlying variable do not match:
  • Dark Green 1 shows #154F3E on canvas; variable Green/400 still resolves to #226D58. Canvas is canonical — the “updated for visibility on dark bg” note from Palette ’23 was applied to swatches but never synced to variables.
  • Dark Green 2 shows #1A644F on canvas; variable Green/300 still resolves to #2B8C71. Same drift.

Mid Blue 2 — resolved. The earlier “no fill” reading was a false alarm; the swatch is named Rectangle 1 rather than Color Swatch, which is why it surfaced differently from its peers. Canvas confirms Mid Blue 2 = #609ED8, matching the variable. Recommendation: rename to Color Swatch for consistency.

Plus nine colors exist on the canvas but were never promoted to variables: the four-step Burgundy expansion (Dark Burgundy 1/2, Mid Burgundy 2, Light Burgundy), Dark Orange 1/2, Selected Orange, Selected Green 2, and Board BG Light. Promote when next touched.

Brand · 4 steps

The PS blue scale. Brand/300 is the canonical primary; 200 is the official PDF accent; 100 is secondary; 50 is the “Selected Blue” tint.

Brand/50
#F0F4FF
Brand/100
#BBD8FF
Brand/200
#609ED8
Brand/300
#2F80ED

Gray (neutral) · 6 steps

Six-step neutral ramp used for type, dividers, and surfaces. Paint styles 1–6 in the Figma file are the same colors numbered in reverse (Gray/1 = darkest = Gray/600).

Gray/100
#F2F2F2
Gray/200
#E0E0E0
Gray/300
#BDBDBD
Gray/400
#828282
Gray/500
#4F4F4F
Gray/600
#333333

Slate Gray (cool) · 10 steps

The “Introduced Grays” from Palette ’23. Cool-tinted ten-step scale for refined UI accents and Apple-grade surfaces. Use this scale for product chrome; Gray (neutral) for whiteboard / canvas.

Slate Gray/25
#FCFCFD
Slate Gray/50
#F9FAFB
Slate Gray/100
#F2F4F7
Slate Gray/150
#EFF1F5
Slate Gray/200
#EAECF0
Slate Gray/250
#DCDFEA
Slate Gray/300
#D0D5DD
Slate Gray/400
#98A2B3
Slate Gray/500
#667085
Slate Gray/600
#475467

Black (Figma-matched) · 5 steps

Five-step black scale matched to Figma’s own UI dark mode for board canvas dark theme. Aliases: Figma 1–5 paint styles, Dark Black / Light Black / Deep Dark.

Black/100
#C7C7C7
Black/200
#7C7C7C
Black/300
#444444
Black/400
#2B2B2B
Black/500
#1A1A1A

Red & Light Red · 10 steps

Two parallel red scales: Red (saturated, used for action) and Light Red (background tints for inline error blocks and Board BG/Red). Red/300 = #E5616D is the canonical pencil eraser coral.

Light Red/25
#FFFBFA
Light Red/50
#FEF3F2
Light Red/100
#FCEAEA
Light Red/200
#FEE4E2
Light Red/300
#FECDCA
Light Red/400
#FDA29B
Red/100
#F4ACAC
Red/300
#E5616D
Red/400
#F97066
Red/500
#F04438

Burgundy · 5 steps

Five-step burgundy scale on the canvas. Only Mid Burgundy 1 (#8A373F) currently exists as a Figma variable; the four others are paint-only and should be promoted. Distinct from Masters of Tutoring brand burgundy (#99191F) — do not interchange.

Light Burgundy
#DFACB1
Mid Burgundy 2
#B17075
Mid Burgundy 1
#8A373F
Dark Burgundy 1
#61252A
Dark Burgundy 2
#561F24

Green · 9 steps

Nine-step green scale. Dark Green 1 (#154F3E) and Dark Green 2 (#1A644F) were updated on the canvas for better dark-bg contrast — the variable values (#226D58, #2B8C71) are now stale and should be re-synced. Primary Green (#33A787) is used for success states and positive deltas.

Green/50
#ECF7F0
Selected Green
#D1FADF
Light Green
#B1E0C5
Mid Green
#5FBFA5
Primary Green
#33A787
Dark Green 2 (canvas)
#1A644F
Dark Green 1 (canvas)
#154F3E
Opal Green
#7EA6A5
Bright Green
#40CA45

Yellow · 6 steps

Six-step yellow scale. Yellow/300 = #FEE133 is the canonical pencil body color, sourced from the master logo SVG.

Yellow/50
#FFFAEB
Yellow/100
#FFFAE9
Yellow/150
#FEF0C7
Yellow/200
#FFE9A7
Yellow/250
#FEDF89
Yellow/300
#FEE133

Orange · 8 steps

Three primary orange steps (used for Warning 300–500), three legacy paint-style oranges (Orange / MidOrange / LightOrange), and two new dark oranges (#8A4100, #793B03) recently added to the canvas but not yet in variables.

Orange/100
#FEC84B
Orange/200
#FDB022
Orange/300
#F79009
Orange
#F2994A
MidOrange
#F1B077
LightOrange
#F2C69F
Dark Orange 1
#8A4100
Dark Orange 2
#793B03

Purple · 7 steps

Seven-step purple scale. Used for purple-themed boards and selection states. Purple/50 (#FEFBFF) is the “Selected Purple” near-white tint.

Purple/50
#FEFBFF
Purple/100
#F7EEFB
Purple/150
#E0BBEE
Purple/200
#CD9BDA
Purple/300
#A36BB2
Purple/400
#430054
Purple/500
#470D56

Dark Blue (paint-only) · 3 steps

Three deep blues that exist as Figma paint styles only (not yet promoted to variables). Used in legacy hero panels and StoneBlue UI accents. Promote to variables when next touched.

Dark Blue/1
#043160
Dark Blue/2
#1B3E64
Dark Blue/Stone
#7E7F9A

Selection states (near-whites) · 5 steps

Near-white tints used to indicate selected items in lists and pickers. Each is a 1–2% wash of its parent color. Sit just above pure white in the value scale, so they read as “active” without competing with content.

Selected Green 2
#FAFFFC
Selected Orange
#FFFAF6
Selected Blue
#F0F4FF
Selected Purple
#FEFBFF
Board BG Light
#FFFBFB

Board BG (canvas) · 6 steps

Whiteboard canvas tints. When a tutor sets the room background to a color, these are the values. Five tints + dark gray. Board BG/Blue resolves to Brand/50; Board BG/Yellow to Yellow/100; Board BG/Green to Green/50; Board BG/Purple to Purple/100; Board BG/Red to Light Red/100.

Board BG/Red
#FCEAEA
Board BG/Blue
#F0F4FF
Board BG/Yellow
#FFFAE9
Board BG/Green
#ECF7F0
Board BG/Purple
#F7EEFB
Board BG/Dark Gray
#1E1E1E

Warning (semantic) · 6 steps

Six-step warning scale spanning yellow into orange. Aliases of Yellow/50–250 + Orange/100–300.

Warning/50
#FFFAEB
Warning/100
#FEF0C7
Warning/200
#FEDF89
Warning/300
#FEC84B
Warning/400
#FDB022
Warning/500
#F79009

Error (semantic) · 5 steps

Five-step error scale used for inline error backgrounds. Aliases of Light Red 25–400 (with a numbering shift — Error/100 = Light Red/200).

Error/25
#FFFBFA
Error/50
#FEF3F2
Error/100
#FEE4E2
Error/200
#FECDCA
Error/300
#FDA29B

Semantic tokens — resolved aliases

Fifteen semantic tokens for button background states. Each is an alias to a primitive. Map below shows the resolved color.

Semantic tokenResolves toHex
Background/Brand/DefaultBrand/300#2F80ED
Background/Brand/HoverWhite#FFFFFF
Background/Brand/ClickWhite#FFFFFF
Background/Brand/SelectedBrand/50#F0F4FF
Background/Brand/DisabledGray/100#F2F2F2
Background/Secondary-Gray/DefaultGray/100#F2F2F2
Background/Secondary-Gray/HoverWhite#FFFFFF
Background/Secondary-Gray/ClickGray/100#F2F2F2
Background/Secondary-Gray/SelectedBrand/50#F0F4FF
Background/Secondary-Gray/DisabledGray/100#F2F2F2
Background/Secondary-White/DefaultWhite#FFFFFF
Background/Secondary-White/HoverWhite#FFFFFF
Background/Secondary-White/ClickGray/100#F2F2F2
Background/Secondary-White/SelectedBrand/50#F0F4FF
Background/Secondary-White/DisabledGray/100#F2F2F2
Hover semantics flagged. Several “Hover” tokens currently alias to White, which suggests the design system models hover as “state changes via shadow / outline rather than fill.” Worth confirming with whoever owns the Figma file (Lyka? Imran?) before relying on this in new product work — or update the tokens to a tinted hover (e.g., Brand/200 for Brand/Hover).
06 · Typography

Inter does the work. Fraunces does the soul.

A two-and-a-half typeface system: a workhorse sans, a serif italic for emphasis, and a developer mono for spec. The italic is the signature — used sparingly, it does more than any color ever could. This is Norman’s visceral level (L1) at work: Fraunces italic is the unexpected gesture in an otherwise sober line of Inter, and that contrast is what makes a headline feel handmade rather than templated. Inter does the behavioral work (L2). The italic is the soul.

Reconciliation note — Source Sans Pro vs. Inter. The official PLT brand guide (Lyka Pinlac, March 2026) specifies Source Sans Pro Regular & Semibold for the entire PS system. The deployed pricing page on pencilspaces.com ships Inter. This guide treats Inter as canonical because (a) Source Sans Pro is end-of-life as a Google Fonts variable family, (b) Inter ships with proper variable axes and matches the Apple-grade neutrals already in production, and (c) the PS deployed product line has been on Inter for the last release cycle. If a partner asks, give them Inter. If a regulator or a print vendor asks for the brand guideline of record, the official PDF is in the assets bundle — but ship Inter for everything new. Resolve with Ayush before formally retiring the old guide.

The three families

Body · UI

Inter

Variable weight 100–900. Used for everything by default — headlines, body, buttons, navigation, product UI. Hosted via Google Fonts or self-served. Fallback: -apple-system, system-ui.

Weights in use: 400 / 500 / 600 / 700

Display · accent

Fraunces

Variable weight + optical size. Used italic only, weight 300–400, on the emphasized phrase in display headlines. Never on body type. Never upright. Never on UI controls.

In use: italic 300 / 400

Mono · spec

JetBrains Mono

Used for: code, hex values, eyebrows, labels, metadata, anything system-rendered or technical. Tabular numerals on by default. Fallback: SF Mono, Menlo.

Weights in use: 400 / 500

The Fraunces italic rule

One italicized phrase per headline. Maximum. The whole reason it works is restraint. Italicize the noun the sentence is about — not the verb, not the adjective. “The classroom your tutoring runs on.” Not “The classroom your tutoring runs on.”

Type scale

Use the named tokens, not raw pixel values. The scale is geometric — each step a comfortable jump.

display-2xl72px · Hero
Pencil Spaces
display-xl56px · Page hero
Pencil Spaces
display-lg40px · Section H2
Pencil Spaces
display-md32px · Major H3
Pencil Spaces
heading-xl24px · H3
Pencil Spaces
heading-lg20px · H4
Pencil Spaces
heading-md18px · H5
Pencil Spaces
body-lg18px · Lead
Pencil Spaces
body-md16px · Body
Pencil Spaces
body-sm14px · Secondary
Pencil Spaces
caption12px · Labels
Pencil Spaces

Numerics

  • UITabular figures (font-feature-settings: "tnum") for any column of numbers.
  • BodyProportional figures — the default — in flowing prose.
  • DisplayFor statistics like “10M+ sessions,” lining figures, slightly tighter tracking (-.02em).

Loading the fonts

/* Inter + Fraunces (italic only) + JetBrains Mono */
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fraunces:ital,opsz,wght@1,9..144,300..400&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
07 · Spacing & layout

Eight pixels, compounded.

Every margin, padding, and gap is a multiple of 4px, with 8px as the default unit. Nothing in our product or marketing should be 13px, 17px, or 22px. The grid is the discipline that makes everything else look right. Rams #5 (unobtrusive) lives here: well-considered spacing is invisible. The user never thinks “the padding feels nice.” They just stop noticing the chrome.

Spacing scale

--s-14px
--s-28px
--s-312px
--s-416px
--s-524px
--s-632px
--s-748px
--s-864px
--s-996px
--s-10128px

Container widths

ContainerMax widthUse
narrow640 pxLong-form reading, blog posts, legal copy
prose720 pxDocumentation, support articles
default1100 pxMarketing sections, app dashboards
wide1280 pxPricing tables, comparison grids
fullnone (24px gutters)Hero canvases, full-bleed imagery

Breakpoints

TokenMin widthDescription
sm480 pxLarge phones
md768 pxTablet portrait
lg1024 pxLaptop / sidebar layouts engage
xl1280 pxDesktop — full marketing layouts
2xl1536 pxWide desktops, dual-column workspaces

Radius scale

4
--r-1
8
--r-2
14
--r-3
20
--r-4
28
--r-5
pill
--r-pill

Inputs & small buttons: --r-2. Cards: --r-3. Hero modules: --r-4. Floating panels & large CTAs: --r-pill (capsule). We never use sharp 0px corners and never use uneven radii.

Elevation

Flat
0 1 2 / 4%
Lifted
0 4 12 / 6%
Floating
0 12 32 / 8%
Modal
0 24 64 / 12%

Shadows are blue-tinted (warm-cool difference of <0.05) for an Apple-like feel. Never gray. Never harder than 12% alpha on the deepest blur.

08 · Components

Small kit. Built carefully.

Five button variants, three sizes. Five badges. One input pattern. One card. One nav. Resist the urge to add a sixth of anything until the existing five aren’t enough. This is where Rams #8 (thorough down to the last detail) and Norman’s behavioral level (L2) overlap: every component carries a clear affordance (it looks pressable, droppable, editable), provides immediate feedback (hover, focus, click states), and respects natural constraints (one primary CTA per view forces a single answer to “what does this page want from me?”).

Buttons

VariantSmallMedium (default)Large
Primary
Single per view
Secondary
Default action
Ghost
Tertiary, links
Success
Positive confirm
Destructive
Irreversible
One primary per view. If you have two CTAs that feel equal, one is wrong — either consolidate or demote one to secondary. The user’s eye should know in 200ms what the page wants from them.

Badges

Beta Live Action needed Failed Draft

Cards

Feature · Whiteboard

Sub–100ms ink that reads like paper

Powered by tldraw with a custom rendering pipeline. Default canvas in every Pencil Space.

Quote · Customer

“Pencil Spaces is the only platform we’ve never had a parent ask us to switch off.”

Director of Tutoring · National HIT provider

Form input

We’ll send your room link here.
That code isn’t recognized. Check with your admin.

Sticky nav (the marketing pattern)

Product For tutors For programs Pricing

Translucent white surface (rgba(255,255,255,.85)) with backdrop blur. Sits on top of any background. No borders top or bottom — uses elevation 1 only on scroll.

09 · Iconography

Lucide. Line only. 1.75 px.

We use the Lucide icon set, modified to a 1.75px stroke (Lucide ships at 2px). The result reads as a half-step finer than typical SaaS icons — closer to system iOS, further from the Heroicons-everywhere look. Icons are Norman’s signifiers: they tell the user, before any text label, what an element will do. We pair them with labels almost always — pure pictographs are guesswork, and guesswork is friction.

Sizing

TokenSizeUse
--icon-xs14 pxInline with caption type
--icon-sm16 pxDefault in body / buttons
--icon-md20 pxNavigation, prominent UI
--icon-lg24 pxFeature blocks, marketing
--icon-xl32 pxEmpty states, illustration spots

Rules

  • StrokeAlways 1.75px on a 24 viewBox. Never solid-fill icon styles. Never two-tone.
  • ColorInherits currentColor. Match the surrounding type weight. Never PS Blue unless the icon is itself the affordance (e.g., a primary button glyph).
  • PairingAlways with a label, except in established affordances (close X, search, menu). No icon-only navigation in marketing.
  • CustomIf Lucide doesn’t have it, the icon is drawn on the same 24 grid with 1.75px strokes, 2px round caps and joins.
10 · Motion

Quick. Honest. Never decorative.

Motion answers a question: did my action register? Where did this thing come from? Where did it go? If a transition doesn’t answer one of those, remove it. This is Norman’s feedback principle in its purest form: the system has to respond to every action within ~100ms, or the user starts to doubt themselves. Motion is the visible answer to “did that work?” — and a quiet vote of confidence in the user’s next move.

Durations

Instant
Hover states, focus rings, color shifts
140ms
Quick
Buttons pressed, dropdowns open, toasts appear
220ms
Standard
Modal in/out, page transitions, slide-overs
360ms
Considered
Hero reveals, onboarding moments
560ms

Easings

TokenCurveUse
--ease-standardcubic-bezier(.4, 0, .2, 1)Default for nearly everything
--ease-deceleratecubic-bezier(0, 0, .2, 1)Things entering screen
--ease-acceleratecubic-bezier(.4, 0, 1, 1)Things leaving screen

Principles

  • 01Movement is functional. If you can’t name what it’s telling the user, it’s wrong.
  • 02Distance × mass ≈ duration. Bigger objects take longer. A modal is slower than a tooltip.
  • 03Honor prefers-reduced-motion. Cross-fade everything when it’s on.
  • 04One animated thing at a time on a hero. Multiple competing motions is amateur work.
11 · Imagery

Real rooms. Real students.

Photography of actual sessions and product screenshots that haven’t been Photoshopped. Illustration is restrained — line work, geometric shapes, brand colors. This is the reflective level (Norman L3): tutors looking at our marketing should see people who look like them, in rooms that look like theirs, doing work that looks worth doing. Stock smiles in stock kitchens fail the test instantly — and reading as fake at L3 is unrecoverable.

Photography — the bar

  • RealReal students. Real tutors. Real rooms. With consent. Always.
  • QuietAvailable light. Soft contrast. Not the over-saturated stock-photo look.
  • ComposedEye level. Subject not centered. Negative space on one side reserved for type.
  • HonestIf we have a learner on screen, they’re actually using the product. No props pretending to be ours.

Illustration styles — three approved

Style 01

Line + accent shape

Single 1.75px stroke. One yellow or coral shape as warm anchor. Marketing site, blog headers.

Style 02

Soft layered surfaces

Translucent rectangles, brand-colored field. App / product mockups, OG cards.

live · 14:32
Maya joined the room.
Working on linear equations.
Style 03

Real product crops

Tightly cropped UI from the actual product. With shadow. Honest.

What we never use

  • ×Stock photography of generic students looking happily at laptops.
  • ×3D abstract shapes, blob gradients, glassmorphism for its own sake.
  • ×AI-generated imagery without explicit creative direction and disclosure.
  • ×Mascot characters, cartoon illustrations of teachers, anything that infantilizes the audience.
  • ×Mockups in unbranded laptops/phones. If we show product, we show our product.
12 · Application

The brand in the wild.

Concrete specs for surfaces that touch users every day — favicons, OG cards, signatures, social tiles. Anything not listed here defaults to the rules above.

Favicon & app icon

SurfaceMarkBackgroundNotes
favicon.ico (16 / 32 / 48)Pencil mark onlyTransparentUse simplified mark; eraser top, body bottom
apple-touch-icon (180×180)Pencil markWhite, 12px corner radius applied by iOS30% padding around mark
maskable-icon (512×512)Pencil mark, full bleedPS BlueMark in white
App store iconPencil markWhiteMark at 60% canvas

Open Graph card — default

1200×630 PNG. Generated dynamically per page; this is the reference layout.

Pencil Spaces

The classroom your tutoring runs on.

pencilspaces.com · 10M+ sessions

Email signature — reference

HTML signature uses inline styles only (most clients strip <style> blocks). Keep total height under 180px. No animated GIFs, no “sent from my iPhone,” no quotes.

Social — required dimensions

13 · Accessibility

WCAG 2.1 AA floor. AAA where we can.

Education has the broadest user base of any industry. We design and build to a baseline of WCAG 2.1 AA across product and marketing, and to AAA on critical paths (signup, billing, lesson join). This is also where one of Norman’s deepest principles applies: when something goes wrong, blame the system, not the user. Error messages should never imply the user was foolish; the design should make the failure mode obvious and recoverable. A tutor who can’t use the product because they can’t see the contrast, or can’t tab through the form, isn’t a “bad fit” — we shipped a worse product.

Practical checklist

  • All body text passes 4.5:1 contrast against its background. All large text passes 3:1.
  • Color is never the sole indicator of state — pair with icon, label, or pattern.
  • Every interactive element has a visible focus state. Default ring: 3px var(--ps-tint) at 4px offset.
  • Hit targets are at least 44×44 px on touch surfaces.
  • Forms have visible labels, never placeholder-as-label. Error messages are specific and actionable.
  • Headings are nested correctly (h1 → h2 → h3). One h1 per page.
  • All images, including decorative ones, have alt. Decorative imagery uses alt="".
  • Video content has captions; live sessions support real-time captions.
  • Motion respects prefers-reduced-motion: reduce.
  • Keyboard navigation works for every flow without a mouse.
  • Screen reader landmarks (main, nav, aside) are present and labeled.
  • Skip-link to main content on every marketing page.
  • Color-blind safe combinations — never red/green as the only differentiator.
  • Language is set on <html lang="en">; localized pages set their own.

Tools we run

  • AxeBrowser extension run on every PR review. Zero violations to ship.
  • LighthouseAccessibility score 95+ on all marketing pages.
  • VoiceOverSpot-check critical flows on macOS / iOS quarterly.
  • NVDASpot-check on Windows quarterly.
  • ManualTab-only nav of signup, lesson join, billing once a month.
14 · Tokens & code

Drop into any project.

Brand tokens shipped as CSS custom properties and a Tailwind config snippet. Pull what you need. Don’t fork the values — reference them.

CSS custom properties (full set)

:root {
  /* Brand */
  --ps-primary:        #2F80ED;
  --ps-primary-h:      #1F6FDC;
  --ps-secondary:      #BBD8FF;
  --ps-accent:         #609ED8;
  --ps-tint:           #EBF3FF;
  --ps-tint-2:         #F5F9FF;
  --ps-yellow:         #FEE133;
  --ps-coral:          #E5616D;

  /* Semantic */
  --ps-green:          #13A876;
  --ps-green-h:        #0E8E5C;
  --ps-green-deep:     #0E6F47;
  --ps-warn:           #B45309;
  --ps-error:          #DC2626;

  /* Ink */
  --ink:               #1D1D1F;
  --ink-2:             #333333;
  --ink-3:             #515154;
  --ink-4:             #6E6E73;

  /* Surfaces & lines */
  --bg:                #FFFFFF;
  --bg-2:              #FBFBFD;
  --bg-3:              #F5F5F7;
  --line:              #D2D2D7;
  --line-2:            #E5E5EA;
  --line-3:            #F2F2F4;

  /* Radius */
  --r-1: 4px;  --r-2: 8px;  --r-3: 14px;
  --r-4: 20px; --r-5: 28px; --r-pill: 980px;

  /* Spacing (8pt grid) */
  --s-1: 4px;   --s-2: 8px;   --s-3: 12px;
  --s-4: 16px;  --s-5: 24px;  --s-6: 32px;
  --s-7: 48px;  --s-8: 64px;
  --s-9: 96px;  --s-10: 128px;

  /* Shadows */
  --shadow-1: 0 1px 2px rgba(15,23,42,.04), 0 1px 1px rgba(15,23,42,.03);
  --shadow-2: 0 4px 12px rgba(15,23,42,.06), 0 2px 4px rgba(15,23,42,.04);
  --shadow-3: 0 12px 32px rgba(15,23,42,.08), 0 4px 8px rgba(15,23,42,.04);
  --shadow-4: 0 24px 64px rgba(15,23,42,.12), 0 8px 16px rgba(15,23,42,.06);

  /* Motion */
  --dur-instant:   140ms;
  --dur-quick:     220ms;
  --dur-standard:  360ms;
  --dur-considered:560ms;
  --ease-standard:   cubic-bezier(.4, 0, .2, 1);
  --ease-decelerate: cubic-bezier(0, 0, .2, 1);
  --ease-accelerate: cubic-bezier(.4, 0, 1, 1);

  /* Type */
  --font-body:    "Inter", -apple-system, system-ui, sans-serif;
  --font-display: "Fraunces", Georgia, serif;
  --font-mono:    "JetBrains Mono", "SF Mono", Menlo, monospace;
}

Production palette CSS variables (full Figma design system)

Mirrors the live Figma file. Use these in product UI; the marketing tokens above are a curated subset.

:root {
  /* Brand */
  --brand-50:  #F0F4FF; --brand-100: #BBD8FF;
  --brand-200: #609ED8; --brand-300: #2F80ED;

  /* Gray (neutral) */
  --gray-100: #F2F2F2; --gray-200: #E0E0E0;
  --gray-300: #BDBDBD; --gray-400: #828282;
  --gray-500: #4F4F4F; --gray-600: #333333;

  /* Slate Gray (cool — “Introduced Grays”) */
  --slate-25:  #FCFCFD; --slate-50:  #F9FAFB;
  --slate-100: #F2F4F7; --slate-150: #EFF1F5;
  --slate-200: #EAECF0; --slate-250: #DCDFEA;
  --slate-300: #D0D5DD; --slate-400: #98A2B3;
  --slate-500: #667085; --slate-600: #475467;

  /* Black (Figma-matched, dark mode boards) */
  --black-100: #C7C7C7; --black-200: #7C7C7C;
  --black-300: #444444; --black-400: #2B2B2B;
  --black-500: #1A1A1A;

  /* Reds */
  --light-red-25:  #FFFBFA; --light-red-50:  #FEF3F2;
  --light-red-100: #FCEAEA; --light-red-200: #FEE4E2;
  --light-red-300: #FECDCA; --light-red-400: #FDA29B;
  --red-100: #F4ACAC; --red-300: #E5616D;
  --red-400: #F97066; --red-500: #F04438;

  /* Greens — Dark Green 1/2 are CANVAS values; variables stale */
  --green-50:  #ECF7F0; --green-100: #D1FADF;
  --green-150: #B1E0C5; --green-200: #5FBFA5;
  --green-250: #33A787;
  --dark-green-2: #1A644F; /* canvas; var Green/300 stale at #2B8C71 */
  --dark-green-1: #154F3E; /* canvas; var Green/400 stale at #226D58 */
  --green-600: #7EA6A5;
  --bright-green: #40CA45;

  /* Burgundy — full 5-step canvas scale */
  --burgundy-light:  #DFACB1;
  --burgundy-mid-2:  #B17075;
  --burgundy-mid-1:  #8A373F;
  --burgundy-dark-1: #61252A;
  --burgundy-dark-2: #561F24;

  /* Yellows */
  --yellow-50:  #FFFAEB; --yellow-100: #FFFAE9;
  --yellow-150: #FEF0C7; --yellow-200: #FFE9A7;
  --yellow-250: #FEDF89; --yellow-300: #FEE133;

  /* Oranges */
  --orange-100: #FEC84B; --orange-200: #FDB022;
  --orange-300: #F79009;
  --orange-warm: #F2994A; --orange-mid: #F1B077;
  --orange-light: #F2C69F;
  --dark-orange-1: #8A4100;
  --dark-orange-2: #793B03;

  /* Selection states (near-whites) */
  --selected-blue:    #F0F4FF;
  --selected-purple:  #FEFBFF;
  --selected-orange:  #FFFAF6;
  --selected-green-2: #FAFFFC;
  --board-bg-light:   #FFFBFB;

  /* Purples */
  --purple-50:  #FEFBFF; --purple-100: #F7EEFB;
  --purple-150: #E0BBEE; --purple-200: #CD9BDA;
  --purple-300: #A36BB2; --purple-400: #430054;
  --purple-500: #470D56;

  /* Dark blues (paint-only — promote when next touched) */
  --dark-blue-1:    #043160;
  --dark-blue-2:    #1B3E64;
  --stone-blue:     #7E7F9A;

  /* Board canvas backgrounds */
  --board-bg-red:    #FCEAEA; --board-bg-blue:   #F0F4FF;
  --board-bg-yellow: #FFFAE9; --board-bg-green:  #ECF7F0;
  --board-bg-purple: #F7EEFB; --board-bg-dark:   #1E1E1E;

  /* Semantic — Warning & Error */
  --warning-50:  #FFFAEB; --warning-100: #FEF0C7;
  --warning-200: #FEDF89; --warning-300: #FEC84B;
  --warning-400: #FDB022; --warning-500: #F79009;
  --error-25:  #FFFBFA; --error-50:  #FEF3F2;
  --error-100: #FEE4E2; --error-200: #FECDCA;
  --error-300: #FDA29B;

  /* Semantic background tokens (resolved aliases) */
  --bg-brand-default:        var(--brand-300);
  --bg-brand-hover:          #FFFFFF;
  --bg-brand-click:          #FFFFFF;
  --bg-brand-selected:       var(--brand-50);
  --bg-brand-disabled:       var(--gray-100);
  --bg-secondary-gray-default:var(--gray-100);
  --bg-secondary-gray-selected:var(--brand-50);
  --bg-secondary-white-default:#FFFFFF;
}
// tailwind.config.js — extend with PS brand
module.exports = {
  theme: {
    extend: {
      colors: {
        ps: {
          DEFAULT: '#2F80ED',
          50:  '#F5F9FF', 100: '#EBF3FF', 200: '#BBD8FF',
          300: '#8DBEFF', 400: '#5DA3FF', 500: '#2F80ED',
          600: '#1F6FDC', 700: '#1659BA', 800: '#0F4391',
          900: '#0A2E68', 950: '#06184A',
          accent: '#609ED8',
        },
        yellow: { ps: '#FEE133' },
        coral:  { ps: '#E5616D' },
        ink:    { DEFAULT: '#1D1D1F', 2: '#333', 3: '#515154', 4: '#6E6E73' },
        line:   { DEFAULT: '#D2D2D7', 2: '#E5E5EA', 3: '#F2F2F4' },
      },
      fontFamily: {
        sans:    ['Inter', 'system-ui'],
        display: ['Fraunces', 'serif'],
        mono:    ['JetBrains Mono', 'monospace'],
      },
      borderRadius: {
        DEFAULT: '14px', sm: '4px', md: '8px',
        lg: '14px', xl: '20px', '2xl': '28px',
        pill: '980px',
      },
    },
  },
};

Quick-start: the “PS button” recipe

/* Drop-in primary button */
.btn-primary {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: var(--r-pill);
  background: var(--ps-primary);
  color: white;
  font: 500 14px/1 var(--font-body);
  border: none;
  cursor: pointer;
  transition: background var(--dur-instant) var(--ease-standard);
}
.btn-primary:hover { background: var(--ps-primary-h); }
.btn-primary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--ps-tint);
}
15 · Assets & governance

Where to find things. Who to ask.

Source files, font licensing, sister-brand boundaries, and how to request changes to this guide.

Design tokens (extracted from Figma)

Live values pulled from the active Design System Figma file (YVgDpPUHBXwJ3YwFSQCcXV). Single source of truth for product tokens. Re-extract whenever the file changes — do not maintain by hand.

design_tokens.json~4 KBDownload

Official brand guideline PDFs (archive)

The original PLT brand guidelines from Lyka Pinlac (March 2026). Bundled here for archival reference. Where they conflict with this guide, this guide wins — but partners and printers may still ask for the PDFs of record.

PS Brand Guidelines.pdf~411 KBDownload
Sierra TMS Brand Guidelines.pdf~413 KBDownload
Masters of Tutoring Brand Guidelines.pdf~390 KBDownload

Logo files

Copy of PS primary logo blue.svg~13 KBDownload
Copy of PS primary logo blue.png~13 KBDownload
Copy of PS primary logo white.svg~13 KBDownload
Copy of PS primary logo white.png~12 KBDownload
PS secondary logo.svg~720 BDownload
PS secondary logo.png~9 KBDownload

SVGs are the source of truth. PNGs are exports for systems that don’t accept SVG (Slack workspace icon, some email clients).

Fonts

FamilyLicenseSourceSelf-host?
InterSIL Open Font License 1.1Google Fonts / rsms.me/interYes — preferred
FrauncesSIL Open Font License 1.1Google Fonts / fraunces.undercase.xyzYes — preferred
JetBrains MonoSIL Open Font License 1.1jetbrains.com/lp/monoYes — preferred

Self-hosting is preferred for marketing site performance. Use font-display: swap. Subset to Latin + Latin Extended unless localizing.

Sister-brand boundaries — do not cross-contaminate

Pencil Spaces is one of several brands under Pencil Learning Technologies. Each has its own design system. Do not import tokens, type, or color across brands — sister brands are intentionally distinct.

BrandVoice / roleDisplay typeBody typeSignature colors
Pencil Spaces Virtual classroom · productInter + Fraunces italicInter #2F80ED #BBD8FF #609ED8
Sierra TMS HIT operating systemFraunces italic (current)Figtree (current) · Source Sans Pro (official PDF) #1B2A3B navy · #8B3C22 terracotta · #F7F3EC cream (current)
#225933 forest · #B35D4F clay (March 2026 PDF)
Carbon.dev Real-time collab APIInstrument SerifDM Sans + JetBrains Mono #7effd4 teal on dark
Masters of Tutoring Tutoring program brandZilla Slab SemiboldZilla Slab Medium #99191F burgundy · #F8EDDC cream · #EFD18A gold
Spacebar.ai Parent platform brandTBDTBD TBD
Rule. If you’re working on Pencil Spaces, you don’t use Sierra navy, Sierra forest green, Carbon teal, or Masters of Tutoring burgundy. The italic accent in Pencil Spaces is Fraunces italic only on the emphasized phrase in the body font line. In Sierra, Fraunces is the entire display family. Don’t confuse them.
Sierra has rebranded since the official PDF. Lyka’s March 2026 guide shows Sierra as forest-green + clay. Ayush’s 2026 Q2 rebuild moved Sierra to navy + terracotta + cream with Fraunces/Figtree. When a partner asks for “the Sierra brand,” give them the current direction; the old PDF is in the bundle for archival reference only.

Governance

  • OwnerAyush Agarwal · ayush@pncl.tech
  • EditsBrand changes — tokens, voice rules, typeface decisions — require owner approval. Component additions go through design review.
  • VersioningSemantic. v1.0 first complete reference. v1.1 reconciles the official March 2026 PLT brand PDFs. v1.2 integrates the live Figma design system (62 primitives + 15 semantic tokens). v1.3 reconciles canvas truth vs. variables — identifies stale Dark Greens and 9 unpromoted colors. v1.4 resolves Mid Blue 2 from a direct .fig source-file read — canvas-validated end to end. v1.5 weaves Dieter Rams’ ten principles and Don Norman’s emotional design framework throughout. v2 reserved for typeface or palette changes.
  • CadenceReviewed quarterly. Last review: May 2026. Next review: August 2026.
  • SourceThis guide is the canonical reference. The March 2026 official PDFs are archived in this bundle for partners and printers but are superseded by this guide where they conflict.
  • Open questionSource Sans Pro (official) vs. Inter (current direction). Resolve before next quarterly review and re-version the official PDF.

Three things to remember when nothing else is clear

The three working rules above — Rams-distilled. Underneath them: ten Rams principles for what to build, three Norman levels for why it matters. When all that fades, fall back here.

01 · Rams #10

As little as possible.

When in doubt, take something out. Less, but better.

02 · Rams #6

Honest.

Real numbers. Real screenshots. Real customers. Never fake the demo.

03 · Rams #7

Long-lasting.

Build for the room a tutor opens in 2030. Restraint compounds.

Further reading

  • RamsLess and More: The Design Ethos of Dieter Rams (Klemp & Ueki-Polet, 2010). The catalog from the Frankfurt retrospective; the closest thing to a primary source for the ten principles.
  • RamsRams (Hustwit, 2018, documentary). Ninety minutes inside the man’s house and head. Watch it once a year.
  • NormanEmotional Design: Why We Love (or Hate) Everyday Things (Norman, 2004). The visceral / behavioral / reflective framework, in his own words.
  • NormanThe Design of Everyday Things (Norman, 1988, revised 2013). The foundational text. Affordances, signifiers, feedback, conceptual models — all here.