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.
npx shadcn@latest add https://strictthemes.com/r/primer.json- DESIGN.md The spec
- tailwind.css Tailwind CSS v4
- shadcn.css shadcn variables
- nuxt-ui.css Nuxt UI
- app.config.ts Nuxt UI config
- tokens.json W3C design tokens
01 / Preview
Stock shadcn components, this theme.
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.
96%88%100%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.