Skip to content
StrictThemes

Themes / 23

Primer

A bright, clear theme for courses, schools and learning tools. Cream paper, deep-teal ink, a blue action, and four chart colors.

Install into a shadcn project
npx shadcn@latest add https://strictthemes.com/r/primer.json

01 / Preview

Stock shadcn components, this theme.

Primer

Ship the page, keep the system.

Every color, corner and typeface in this box comes from the theme's tokens. The components are stock shadcn.

NewDraftv1.2.0Failed
Invite a reviewer
They get read access to this project.
Colors on token96%
x
Spacing on scale88%
x
Type on scale100%
x

02 / Page prompts

Paste one into your agent. Get that page.

Each prompt is a full brief for one page in this theme: its sections, layout, behavior, and a checklist the agent goes through before it says it is done. The rules in every prompt are generated from the theme's strict block. Each preview is the page built from the prompt, shown as it came out.

  • Catalogue

    The course catalogue of an online school, with a search field and a level filter that together change a grid of nine course cards, a count of results given in words, and an empty state.

    38.7k characters

    Strict Check 100%

  • Course

    One course of an online school, with an opening that has the title, the facts and one action to start, a drawn chart, what you will learn, the syllabus as modules that open and close with their lessons inside, the teacher, and a panel with the price and the action.

    39.6k characters

    Strict Check 100%

  • Lesson

    One lesson of an online course, with where the learner is in the course and a progress bar, the lesson's text with one code sample, a question with four answers and a Check my answer button that answers in words, a link to the next lesson, and the module's lessons with their state.

    41.8k characters

    Strict Check 100%

  • Progress

    A learner's progress at an online school, with a row of figures, a bar chart of minutes per day that switches between this week and last week, a chart of time by topic with a legend, progress bars for three courses and a list of recent activity.

    40.8k characters

    Strict Check 100%

  • Plans

    The plans and prices of an online school, with a switch between paying monthly and yearly that changes the prices, three plans with one marked, a table that compares what each includes, and questions and answers.

    40.0k characters

    Strict Check 100%

03 / Colors

Every color the theme allows.

  • primary

    #095C78 / #FFD166

  • on-primary

    #FFFFFF / #073B4C

  • secondary

    #FFD166 / #0E7699

  • on-secondary

    #073B4C / #FFFFFF

  • tertiary

    #06D6A0

  • on-tertiary

    #073B4C

  • neutral

    #3E6270 / #9DC3CF

  • background

    #FFFBF0 / #04222C

  • surface

    #FFFFFF / #073B4C

  • foreground

    #073B4C / #F3FAFB

  • border

    #E4DCC6 / #0F5469

  • error

    #B3123F / #FF8FA8

  • azure

    #118AB2

  • sun

    #FFD166

  • berry

    #EF476F

Left: light mode. Right: dark mode.

04 / Typography

Five sizes. Nothing in between.

  • display

    Lexend · 56px · weight 700 · line 1.05

    The quick brown fox

  • h1

    Lexend · 36px · weight 700 · line 1.15

    The quick brown fox

  • h2

    Lexend · 22px · weight 600 · line 1.3

    The quick brown fox

  • body

    Plus Jakarta Sans · 16px · weight 400 · line 1.6

    The quick brown fox

  • label

    Fira Code · 13px · weight 500 · line 1.3

    The quick brown fox

05 / Shape and space

Corners and spacing.

  • sm

    6px

  • md

    10px

  • lg

    16px

  • xs

    4px

  • sm

    8px

  • md

    12px

  • lg

    20px

  • xl

    32px

  • 2xl

    80px

06 / Rules

What the strict block enforces.

Contrast
WCAG AA
Colors
Tokens only, within 0.02 of a token
Spacing
Scale only, plus 0, 1px, 2px
Corners
Scale only, full rounds up to 56px
Type
Scale only, declared fonts only
purple gradient
Not allowed
emoji icons
Not allowed
nested cards
Flagged
glow shadows
Not allowed

07 / Guidance

What your agent reads.

Overview

Primer is for learning: an online course, a school, a coding class, a language app's website, a workbook. It should feel like a good exercise book: cream paper, deep-teal ink, one deep blue to press, and a small set of bright colors that show progress and draw charts. The bright colors mark and measure. They never carry text.

Colors

  • Primary (#095C78) is deep blue, with white text on it, for the one main action: "Start the course", "Check my answer". In dark mode the main action is yellow with ink text. Links in running text use the text color, underlined.
  • Secondary (#FFD166) is yellow, with ink on it, for every other button. In dark mode the other buttons are a lighter blue.
  • Tertiary (#06D6A0) is green, with ink on it, for one badge and for progress: "Completed", "New", the filled part of a progress bar.
  • Azure (#118AB2), sun (#FFD166) and berry (#EF476F) are chart colors, the same in both modes: a bar, a line, a dot, a rule. With green they make a set of four, used in this order: azure, green, sun, berry. No text is ever set on azure, sun or berry, and no chart color is a text color.
  • Neutral (#3E6270) sets durations, counts and captions.
  • Background (#FFFBF0) is cream paper. Surface (#FFFFFF) is the white of a card.
  • Error (#B3123F) is used only with a message. A wrong answer is told in words, with the right one beside it.

Typography

Lexend sets headings at weight 700: a wide, even sans made to be easy to read. Plus Jakarta Sans sets body text at 16px. Fira Code sets labels in sentence case at weight 500: lengths of lessons, counts, scores, levels, and any code. Figures in a table or a chart are tabular.

Layout

A 12-column grid, 1200px at its widest, with 32px gutters. Spacing comes from the scale (4, 8, 12, 20, 32, 80): 20px inside a card and between cards, 80px between sections. A lesson is read in one column of eight; a catalogue is a grid of three cards; a progress page puts figures above charts above a list.

Elevation & Depth

Flat. A card is white on cream with a 1px border and no shadow. Menus and dialogs float on one short, neutral shadow.

Shapes

Friendly: 6px for badges and checkboxes, 10px for buttons and inputs, 16px for cards. Avatars, progress bars, the dots of a chart's legend and switches are fully round.

Components

  • Buttons: deep blue for the one main action (yellow in dark mode), yellow for the rest (a lighter blue in dark mode). Sentence-case labels in the body font, weight 600.
  • Cards: white, 16px corners, 20px padding, a 1px border.
  • Badges: green with ink text, one or two words.
  • Progress bars: 8px tall and fully round, green on a track of the border color, with the figure beside it in a label.
  • Charts: flat bars or one line, drawn with plain elements, in the four chart colors, each with its figure written beside it in ink.
  • Lesson lists: a number, a title, a length in a label, and a state: done, next or locked.
  • Icons: 2px stroke line icons with round caps. Never emoji.

Do's and Don'ts

  • Do write the figure beside every bar and every progress bar: color alone says nothing.
  • Do keep one main action in view: the next lesson, the next question.
  • Do tell a learner where they are: lesson 4 of 12, 35 minutes left.
  • Don't set text on azure, sun or berry, and don't use any chart color for text.
  • Don't use more than the four chart colors, and don't use gradients or glows.
  • Don't put a card inside a card.
  • Don't introduce a color, size or radius that is not a token above.