⌂ Kelas Sekejap Knowledge BaseBrandDesign SystemDocsLogo
Docs · Brand personality, colour roles, do/don’t rules

Overview

Kelas Sekejap — Design System

Say it with confidence · v7 — the brand & UI system for an AI-native spoken-English app for Malaysian students.

Bold, editorial, zine-like — student posters and sticker cut-outs, not generic edtech. Confident enough for SPM exams, expressive enough for teenagers. We lead with type, keep learning calm, and save the loudest treatments for marketing and reward moments.


Using this with Claude Design

This repo is structured for the "Create using Claude Code" flow (best fidelity). Point Claude Code at this folder and it will read:

Everything visual derives from the tokens — there are no hardcoded hex values inside components.

Run the living gallery

npm install
npm run dev

src/App.tsx renders a preview of every component (cover, colour, buttons, tags, progress, inputs, feedback ladder, record button, phone frame).


Foundations

The full designer-facing guidance — type scale, spacing & breakpoints, shape & elevation, component-states matrix, accessibility / WCAG contrast, motion, iconography, and voice & tone — is documented in FOUNDATIONS.md. The essentials:

Colour

Named colour blocks are a confident set — each colour has a role, never a random accent.

Primary — recognition & behaviour

Token Hex Text Role
Haze #EFEBE1 Ink Warm neutral base / default background — keeps learning calm
Electric blue #2557FF White Loud brand anchor / hero / SPM recognition
Flame #E64C09 Ink The action colour — one primary CTA per view. Ink text (A1); white icons ok

Secondary — content, rewards, states

Token Hex Text Role
Sunflower #F0C84B Ink Highlights & reward moments
Pulse #F49EAF Ink Social, warmth, campaign emphasis
Moss #2FA36B Ink Progress, growth, support. Ink text; white icons ok
Spark #F68868 Ink Celebrations, friendly alerts
Paper #FFFFFF Ink Cards, modals, content surfaces
Ink #101014 White Text, outlines, icons, contrast

Typography — three families, three jobs

Spacing — 4px base scale

space-1…10 = 4 · 8 · 12 · 16 · 20 · 24 · 32 · 40 · 48 · 64 px. Use tokens, not arbitrary values.

Radii, borders & elevation

Generous radii + a firm 2px Ink outline + a hard offset shadow (never blur) = the sticker cut-out feel.

States (apply to buttons, inputs, interactive cards)

Iconography

Lucide React only — never emoji, never mascots. Stroke-based, stroke-width 2 to match the Ink outline, rounded linecaps. Sizes 16 / 20 / 24. Ink by default; white on dark fills.


Components

Grouped under src/components/<group>/ to mirror the Claude Design project.

import { Card, StickerTag, Button } from 'ks-design-system';

<Card tone="blue" hero>
  <StickerTag tone="flame">Say it with confidence · v7</StickerTag>
  <Button variant="flame" block>Start speaking</Button>
</Card>

The emoji-rule exception

The no-emoji / no-mascot rule still holds. The one sanctioned exception is the branded Expression set (components/expression/) — eight simple faces for supportive moments only (feedback, empty states, rewards, completion). Use them sparingly: at most one per view, always secondary to the action, never a functional icon and never a mascot. No third-party emoji anywhere.


Usage rules

Do

Don't


Kelas Sekejap · Say it with confidence v7 · design system guide