@rakeyshgidwani/skyline-primitives
v0.1.29
Published
L2 primitive component library for the Skyline design system
Downloads
2,520
Readme
@rakeyshgidwani/skyline-primitives
L2 primitive component library for the Skyline design system. React components built on shadcn/ui + Tailwind v4, themed via L1 CSS vars from @rakeyshgidwani/skyline-tokens.
Install
npm install @rakeyshgidwani/skyline-primitivesUsage
// main.tsx — import a theme once at app root
import '@rakeyshgidwani/skyline-primitives/themes/jeremy'
import { Button, Input, Dialog } from '@rakeyshgidwani/skyline-primitives'
function App() {
return (
<Dialog>
<Input placeholder="Enter value" />
<Button variant="primary">Submit</Button>
</Dialog>
)
}Switching themes
Change the imported theme file — one line:
import '@rakeyshgidwani/skyline-primitives/themes/donna'
// or
import '@rakeyshgidwani/skyline-primitives/themes/harvey'Development
Install dependencies
npm installSync shadcn components
Populates vendor/ui/ with shadcn components at the pinned version. Run once on setup, re-run deliberately when upgrading.
npm run sync:shadcnDevelopment server
npm run devType check
npx tsc --noEmitBuild
Full build — ESM bundle + theme CSS:
npm run buildTheme CSS only:
npm run build:cssTest
npm run testRelease
Bumps version, pushes tags, triggers prepublishOnly build.
| Command | What it does |
|---|---|
| npm run release:patch | 0.1.0 → 0.1.1 |
| npm run release:minor | 0.1.0 → 0.2.0 |
| npm run release:major | 0.1.0 → 1.0.0 |
Publish to npm:
npm publishArchitecture
skyline-primitives/
vendor/ui/ ← shadcn components, NEVER modified (pinned, synced via CLI)
src/
components/ ← custom components
styles/themes/ ← per-theme CSS (imports L1)
lib/utils.ts ← cn() helper
index.ts ← package root export
tailwind.css ← @theme block wiring L1 vars to Tailwind
scripts/
sync-shadcn.mjs ← populates vendor/ui/
build-css.mjs ← bundles theme CSS
docs/initial-spec/ ← full spec and component inventoryDesign system layers
- L1 — tokens:
@rakeyshgidwani/skyline-tokens— raw CSS custom properties (colors, typography, spacing, etc.) - L2 — primitives: this package — React components styled via Tailwind utility classes that resolve to L1 vars at consumer build time
The vendor/ui/ rule
vendor/ui/ contains shadcn/ui components copied in by the CLI. These files are never manually modified. To extend a component, wrap it in src/components/.
Available components
126 components across 11 categories. See docs/initial-spec/components.md for the full inventory and build phase order.
- Inputs · Forms · Navigation · Overlays · Feedback
- Layout · Data Display · Typography · Charts
- Media & Upload · Specialty
License
Private (not currently licensed for external use).
