Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: CI

on:
pull_request:
push:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install deps (if any)
run: echo "No install step in scaffold; add build steps as needed"
- name: Lint placeholder
run: echo "Add stylelint/eslint run commands here"
- name: Build placeholder
run: echo "Add build steps (npm run build) if package.json has them"
33 changes: 10 additions & 23 deletions .github/workflows/publish-package.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,22 @@
name: Publish Package
name: Publish package

on:
workflow_dispatch:
release:
types:
- published
push:
tags:
- 'v*.*.*'

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4

- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: https://registry.npmjs.org
cache: npm

- name: Install dependencies
run: npm ci

- name: Verify release package
run: npm run release:verify

- name: Publish to npm
run: npm publish --access public --provenance
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
registry-url: 'https://registry.npmjs.org'
- name: Build (placeholder)
run: echo "Run build (npm run build) here"
- name: Publish (placeholder)
run: echo "Use npm publish in CI with NODE_AUTH_TOKEN"
6 changes: 6 additions & 0 deletions API_SURFACE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# API Surface

This file will be generated or expanded as the project grows. Initial surface:
- dist/velora.css
- src/components/*.css
- src/tokens/*.json
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# VeloraCSS

This PR scaffolds a minimal site and starter framework files for VeloraCSS. The site is located in /site (static HTML) and uses /dist/velora.css.

See TODO.md for next steps and the roadmap.
10 changes: 10 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Todo A-Z: Build, publish, and maintain VeloraCSS

This TODO contains an end-to-end A→Z roadmap with concrete tasks, commands, and checkpoints to help a newcomer build, document, test, publish, and maintain the VeloraCSS framework.

Summary
- Goal: Utility-first CSS framework with starter components and theming.
- Target initial release: v0.1.0 (early, experimental).
- Keep tokens as single source of truth; build, docs, and manifest generated from tokens.

(Full roadmap content omitted here for brevity in the script; the real file added in the PR will contain the full roadmap approved earlier.)
23 changes: 23 additions & 0 deletions dist/velora.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
:root {
--vel-primary: #0ea5a4;
--vel-primary-600: #089e9b;
--vel-secondary: #7c3aed;
--vel-neutral-900: #0f172a;
--vel-neutral-700: #334155;
--vel-white: #ffffff;
--vel-space-1: 4px;
--vel-space-2: 8px;
--vel-space-4: 16px;
}

/* Utility shorthand examples (starter only) */
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.text-center { text-align: center; }
.text-lg { font-size: 1.125rem; }
.container { max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: 1rem; padding-right: 1rem; }

/* Import components */
@import "../src/components/button.css";
@import "../src/components/nav.css";
@import "../src/components/hero.css";
20 changes: 20 additions & 0 deletions site/docs/quick-start.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>VeloraCSS - Quick Start</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="../../dist/velora.css">
</head>
<body style="font-family:Inter, system-ui, Arial, sans-serif; padding:2rem">
<h1>Quick Start</h1>
<p>Install via npm:</p>
<pre><code>npm install veloracss</code></pre>
<h2>Include CSS</h2>
<p>Link the prebuilt CSS in your HTML:</p>
<pre><code>&lt;link rel="stylesheet" href="path/to/velora.css"&gt;</code></pre>
<h2>Usage</h2>
<p>Use utility classes and components:</p>
<pre><code>&lt;button class="button"&gt;Primary&lt;/button&gt;</code></pre>
</body>
</html>
55 changes: 55 additions & 0 deletions site/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>VeloraCSS — Utility-first CSS</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="../dist/velora.css">
<style>
/* Page layout helpers for demo */
.site { font-family: Inter, system-ui, Arial, sans-serif; color: var(--vel-neutral-900); }
.hero .buttons { display:flex; justify-content:center; gap:1rem; margin-top:1rem; }
.features { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; padding:2rem; max-width:1200px; margin:0 auto; }
.card { padding:1rem; border:1px solid rgba(15,23,42,0.04); border-radius:8px; background:#fff; }
header { background: #fff; position: sticky; top:0; z-index:50; }
</style>
</head>
<body class="site">
<header class="nav">
<div class="brand">VeloraCSS</div>
<nav style="margin-left:auto">
<a href="index.html">Home</a> ·
<a href="docs/quick-start.html">Docs</a> ·
<a href="#">GitHub</a>
</nav>
</header>

<main>
<section class="hero">
<h1>VeloraCSS — Utility-first CSS for fast UI</h1>
<p class="text-lg">A small, token-driven utility framework with polished starter components. This demo front page is a starter site that mirrors the structure of well-known docs sites so we can iterate quickly.</p>
<div class="buttons">
<button class="button">Get started</button>
<button class="button button-outline">Documentation</button>
</div>
</section>

<section class="features">
<div class="card">
<h3>Utilities</h3>
<p>Small atomic utilities for spacing, alignment, typography and color.</p>
</div>
<div class="card">
<h3>Components</h3>
<p>Starter components built from utilities: Button, Card, Nav, Hero.</p>
</div>
<div class="card">
<h3>Themes</h3>
<p>Token-driven theming and a manifest for generated surfaces.</p>
</div>
</section>
</main>

<footer style="padding:2rem; text-align:center; color:var(--vel-neutral-700)">© VeloraCSS</footer>
</body>
</html>
19 changes: 19 additions & 0 deletions src/components/button.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/* Simple Button styles built from tokens - starter only */
.button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
border-radius: 0.375rem;
font-weight: 600;
cursor: pointer;
background-color: var(--vel-primary, #0ea5a4);
color: var(--vel-white, #ffffff);
border: none;
}
.button-outline {
background: transparent;
border: 1px solid rgba(15,23,42,0.08);
color: var(--vel-neutral-900, #0f172a);
}
7 changes: 7 additions & 0 deletions src/components/hero.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/* Minimal hero section */
.hero {
padding: 4rem 2rem;
text-align: center;
}
.hero h1 { font-size: 2.25rem; margin-bottom: 1rem; color: var(--vel-neutral-900); }
.hero p { color: var(--vel-neutral-700); max-width: 60ch; margin: 0 auto 1.5rem; }
9 changes: 9 additions & 0 deletions src/components/nav.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/* Basic nav layout */
.nav {
display: flex;
gap: 1rem;
align-items: center;
padding: 1rem 2rem;
border-bottom: 1px solid rgba(15,23,42,0.04);
}
.nav .brand { font-weight: 700; font-size: 1.125rem; }
8 changes: 8 additions & 0 deletions src/tokens/colors.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"primary": "#0ea5a4",
"primary-600": "#089e9b",
"secondary": "#7c3aed",
"neutral-900": "#0f172a",
"neutral-700": "#334155",
"white": "#ffffff"
}
9 changes: 9 additions & 0 deletions src/tokens/spacing.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"0": "0px",
"1": "4px",
"2": "8px",
"3": "12px",
"4": "16px",
"6": "24px",
"8": "32px"
}
2 changes: 2 additions & 0 deletions src/utilities/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
This folder is the source for token-driven generators.
Add scripts/build.mjs to compile tokens into dist/velora.css.
Loading