5.9 KiB
TASK-000E: Typography & Spacing Tokens - CHANGELOG
Overview
Added comprehensive typography and spacing token systems to enable consistent sizing, spacing, and visual rhythm across the application.
Status: ✅ COMPLETE
Date: December 30, 2025
Effort: ~30 minutes
Risk: Low
Changes Made
1. Enhanced Typography System
File: packages/noodl-core-ui/src/styles/custom-properties/fonts.css
Added:
- ✅ Font size scale (xs → 3xl) from 10px to 24px
- ✅ Line height tokens (none → loose)
- ✅ Letter spacing tokens (tighter → widest)
- ✅ Semantic text style presets (body, small, label, code)
- ✅ Updated font families with fallbacks
- ✅ Added medium (500) font weight
New Tokens:
/* Font sizes */
--font-size-xs, --font-size-sm, --font-size-base, --font-size-md,
--font-size-lg, --font-size-xl, --font-size-2xl, --font-size-3xl
/* Line heights */
--line-height-none, --line-height-tight, --line-height-snug,
--line-height-normal, --line-height-relaxed, --line-height-loose
/* Letter spacing */
--letter-spacing-tighter → --letter-spacing-widest
/* Semantic styles */
--text-body-*, --text-small-*, --text-label-*, --text-code-*
2. New Spacing System
File Created: packages/noodl-core-ui/src/styles/custom-properties/spacing.css
Added:
- ✅ 4px-based spacing scale (0 → 96px)
- ✅ Semantic spacing aliases (panel, card, button, input, icon)
- ✅ Border radius scale (none → full)
- ✅ Shadow system (sm → popup)
- ✅ Transition timing & easing functions
- ✅ Z-index scale for layering
Token Categories:
/* Spacing scale: 31 tokens from 0 to 96px */
--spacing-0, --spacing-px, --spacing-0-5, --spacing-1 ... --spacing-24
/* Semantic spacing */
--spacing-panel-*, --spacing-card-*, --spacing-section-*,
--spacing-input-*, --spacing-button-*, --spacing-icon-*
/* Border radius: 9 tokens */
--radius-none, --radius-sm, --radius-default ... --radius-full
/* Shadows: 8 tokens */
--shadow-sm, --shadow-default ... --shadow-popup
/* Transitions: 7 tokens */
--transition-fast, --transition-default, --transition-slow,
--transition-ease, --transition-ease-in/out/in-out
/* Z-index: 8 tokens */
--z-base, --z-dropdown, --z-sticky ... --z-tooltip
3. Editor Spacing Copy
File Created: packages/noodl-editor/src/editor/src/styles/custom-properties/spacing.css
- Identical copy for editor package consistency
4. Import Wiring
Updated Files:
✅ packages/noodl-core-ui/.storybook/preview.ts
import '../src/styles/custom-properties/spacing.css';
✅ packages/noodl-editor/src/editor/index.ts
import '../editor/src/styles/custom-properties/spacing.css';
✅ packages/noodl-editor/src/frames/viewer-frame/index.js
import '../../editor/src/styles/custom-properties/spacing.css';
Verification
✅ Type Safety
- No TypeScript compilation errors
- All CSS imports resolve correctly
✅ Token Availability
- All tokens accessible via
var(--token-name) - No missing variable warnings
✅ Build System
- CSS files properly imported in all entry points
- Storybook preview includes spacing tokens
- Editor and viewer frame have access to tokens
Usage Examples
Typography
.title {
font-family: var(--font-family);
font-size: var(--font-size-xl);
font-weight: var(--font-weight-semibold);
line-height: var(--line-height-tight);
}
.code {
font-family: var(--font-family-code);
font-size: var(--font-size-sm);
}
Spacing & Layout
.panel {
padding: var(--spacing-panel-padding);
gap: var(--spacing-panel-gap);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-md);
}
.button {
padding: var(--spacing-button-padding-y) var(--spacing-button-padding-x);
gap: var(--spacing-button-gap);
transition: all var(--transition-default) var(--transition-ease);
}
Next Steps
These tokens are now ready for use in:
✅ TASK-000F: Component Buttons & Inputs
- Apply spacing tokens to button padding
- Use font tokens for button text
- Implement consistent radius/shadows
✅ TASK-000G: Component Dialogs & Panels
- Use semantic spacing for layouts
- Apply shadow tokens for elevation
- Implement consistent z-index layering
Token Summary
Total Tokens Added: ~85 tokens
| Category | Count | Base |
|---|---|---|
| Font Sizes | 8 | 10px → 24px |
| Font Weights | 5 | 300 → 700 |
| Line Heights | 6 | 1 → 2 |
| Letter Spacing | 6 | -0.05em → 0.1em |
| Semantic Text | 12 | Preset combinations |
| Spacing Scale | 31 | 0px → 96px (4px base) |
| Semantic Space | 16 | Component aliases |
| Border Radius | 9 | 0 → 9999px |
| Shadows | 8 | sm → popup |
| Transitions | 7 | Timing & easing |
| Z-Index | 8 | 0 → 700 |
Files Modified
Created (3)
packages/noodl-core-ui/src/styles/custom-properties/spacing.csspackages/noodl-editor/src/editor/src/styles/custom-properties/spacing.cssdev-docs/tasks/phase-3-editor-ux-overhaul/TASK-000-styles-overhaul/TASK-000E-typography-spacing/CHANGELOG.md
Modified (4)
packages/noodl-core-ui/src/styles/custom-properties/fonts.csspackages/noodl-core-ui/.storybook/preview.tspackages/noodl-editor/src/editor/index.tspackages/noodl-editor/src/frames/viewer-frame/index.js
Foundation Health
✅ All tokens follow naming conventions
✅ Semantic aliases point to base tokens
✅ No hardcoded values in semantic tokens
✅ Consistent 4px spacing rhythm
✅ Comprehensive documentation in CSS comments
✅ TypeScript build passes
✅ Ready for component implementation
Task Status: ✅ COMPLETE - Typography & Spacing Foundation Established