@rakeyshgidwani/skyline-tokens
v0.1.5
Published
L1 design tokens for the Skyline design system
Downloads
635
Readme
Skyline Tokens
L1 design token system for the Skyline design system. Provides raw primitives — color, typography, layout, motion, and breakpoints — across multiple themes and platforms.
Install
npm install @rakeyshgidwani/skyline-tokensUsage
Web (CSS)
@import '@rakeyshgidwani/skyline-tokens/themes/jeremy.css';
@import '@rakeyshgidwani/skyline-tokens/themes/donna.css';Tokens are available as CSS custom properties:
.button {
background: var(--sky-color-interactive-default);
border-radius: var(--sky-layout-border-radius-md);
font-family: var(--sky-font-family-sans);
font-size: var(--sky-font-size-sm);
transition-duration: var(--sky-motion-duration-fast);
transition-timing-function: var(--sky-motion-easing-standard);
}Dark mode is applied via data-mode="dark" on any ancestor element:
<html data-mode="dark">iOS (Swift)
Reference the generated Swift enum directly:
import UIKit
label.font = UIFont.systemFont(ofSize: Jeremy.fontSizeMd, weight: .init(rawValue: Jeremy.fontWeightMedium))
view.backgroundColor = Jeremy.Light.colorSurfaceDefault
view.layer.cornerRadius = Jeremy.layoutBorderRadiusMdAndroid (Kotlin)
import com.hudson.skyline.tokens.Jeremy
textView.textSize = Jeremy.fontSizeMd
view.setBackgroundColor(Jeremy.Light.colorSurfaceDefault.toInt())Themes
| Theme | Color | Typography | Layout | Motion |
|---|---|---|---|---|
| jeremy | electric-lemon | inter | comfortable | standard |
| donna | dark-green-forest | dm | spacious | standard |
Token Groups
| Group | Variants |
|---|---|
| color | electric-lemon, dark-green-forest, red-wine |
| typography | inter, jakarta, geist, dm |
| layout | compact, comfortable, spacious |
| motion | expressive, standard, reduced |
| breakpoints | standard |
Development
Setup
npm installValidate tokens
npm run validateChecks all token files against the base schema — types, required fields, variant completeness.
Build
npm run buildRuns validation then generates dist/web/*.css, dist/ios/*.swift, dist/android/*.kt for all themes.
Build specific platform
npm run build:web
npm run build:ios
npm run build:androidBuild specific theme
npm run build:theme -- --theme jeremyRun tests
npm run testClean build output
npm run cleanPublishing
Make sure you are logged in to npm:
npm loginRelease a new version
npm run release:patch # 0.1.0 → 0.1.1 bug fixes, token value tweaks
npm run release:minor # 0.1.0 → 0.2.0 new tokens, new variants, new themes
npm run release:major # 0.1.0 → 1.0.0 breaking changes, renamed tokensEach command bumps the version in package.json, creates a git tag, and pushes to GitHub. Then publish to npm:
npm publishprepublishOnly runs the build automatically before publishing.
