OverviewGetting startedInstallationComponentsFoundationsToken architectureColorTypographySpacingBorders and radiiElevationMotionThemesResponsive behaviorCore and stateTheming and layoutAgent toolingAI toolingChange impactRecipesArchitectureRoadmapHelp and releasesOverviewToken architectureColorTypographySpacingBorders and radiiElevationMotionThemesResponsive behavior

Families

font.family.display aliases font.family.sans by default; a theme that wants a separate display face overrides it. Oddkin does not ship or load font files.

Font families
TokenValue
font.family.displaysystem-ui, -apple-system, "Segoe UI", Roboto, sans-serif
font.family.monoui-monospace, SFMono-Regular, Menlo, Consolas, monospace
font.family.sanssystem-ui, -apple-system, "Segoe UI", Roboto, sans-serif

Type scale

Type and spacing are in rem with unitless line heights. Nothing forces a root size, so every size follows the reader’s font size (verified at 200%).

Font sizes
TokenValueSample
font.size.xs0.75rem
font.size.sm0.875rem
font.size.md1rem
font.size.lg1.125rem
font.size.xl1.25rem
font.size.2xl1.5rem
font.size.3xl1.875rem
font.size.4xl2.25rem

Text styles

Use a style as a set: font: var(--odd-type-ui-weight) var(--odd-type-ui-size) / var(--odd-type-ui-line-height) var(--odd-type-ui-family). The typography recipe, @oddkin/components/css/typography.css, has a class for each style, as in the samples.

Text styles
StyleSize / weightLine heightLetter spacingSample
type.display2.25rem / 6001.25-0.025emdisplay
type.section1.5rem / 6001.250section
type.title1.25rem / 6001.3750title
type.body1rem / 4001.50body
type.ui0.875rem / 5001.3750ui
type.small0.75rem / 4001.50small
type.eyebrow0.75rem / 6001.50.05emeyebrow
type.code0.875rem / 4001.50code

layout.measure is 40rem, the content measure of odd-container.