aiblueprint-cli 1.4.81 → 1.4.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -18
- package/agents-config/claude-config/scripts/statusline/data/.gitignore +8 -0
- package/agents-config/claude-config/scripts/statusline/data/.gitkeep +0 -0
- package/agents-config/claude-config/scripts/statusline/defaults.json +10 -10
- package/agents-config/claude-config/scripts/statusline/src/commands/interactive-config.ts +118 -6
- package/agents-config/claude-config/scripts/statusline/src/index.ts +100 -9
- package/agents-config/claude-config/scripts/statusline/src/lib/config.ts +28 -2
- package/agents-config/claude-config/scripts/statusline/src/lib/features/limits/commands/weekly-analysis.ts +108 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/limits/index.ts +164 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/limits/types.ts +15 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/commands/migrate-to-sqlite.ts +136 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/commands/spend-day.ts +79 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/commands/spend-month.ts +66 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/commands/spend-project.ts +85 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/database.ts +395 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/index.ts +178 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/payload-logger.ts +163 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/types.ts +37 -0
- package/agents-config/claude-config/scripts/statusline/src/lib/presets.ts +13 -13
- package/agents-config/claude-config/scripts/statusline/statusline.config.free.json +4 -1
- package/agents-config/claude-config/scripts/statusline/statusline.config.json +44 -23
- package/agents-config/scripts/statusline/data/.gitignore +8 -0
- package/agents-config/scripts/statusline/data/.gitkeep +0 -0
- package/agents-config/scripts/statusline/defaults.json +10 -10
- package/agents-config/scripts/statusline/src/commands/interactive-config.ts +118 -6
- package/agents-config/scripts/statusline/src/index.ts +100 -9
- package/agents-config/scripts/statusline/src/lib/config.ts +28 -2
- package/agents-config/scripts/statusline/src/lib/features/limits/commands/weekly-analysis.ts +108 -0
- package/agents-config/scripts/statusline/src/lib/features/limits/index.ts +164 -0
- package/agents-config/scripts/statusline/src/lib/features/limits/types.ts +15 -0
- package/agents-config/scripts/statusline/src/lib/features/spend/commands/migrate-to-sqlite.ts +136 -0
- package/agents-config/scripts/statusline/src/lib/features/spend/commands/spend-day.ts +79 -0
- package/agents-config/scripts/statusline/src/lib/features/spend/commands/spend-month.ts +66 -0
- package/agents-config/scripts/statusline/src/lib/features/spend/commands/spend-project.ts +85 -0
- package/agents-config/scripts/statusline/src/lib/features/spend/database.ts +395 -0
- package/agents-config/scripts/statusline/src/lib/features/spend/index.ts +178 -0
- package/agents-config/scripts/statusline/src/lib/features/spend/payload-logger.ts +163 -0
- package/agents-config/scripts/statusline/src/lib/features/spend/types.ts +37 -0
- package/agents-config/scripts/statusline/src/lib/presets.ts +13 -13
- package/agents-config/scripts/statusline/statusline.config.free.json +4 -1
- package/agents-config/scripts/statusline/statusline.config.json +44 -23
- package/agents-config/skills/{agents-managers → agents-manager}/SKILL.md +1 -1
- package/agents-config/skills/{agents-managers → agents-manager}/references/writing-agent-prompts.md +1 -1
- package/agents-config/skills/apex/SKILL.md +61 -0
- package/agents-config/skills/appstore-connect/SKILL.md +2 -2
- package/agents-config/skills/{appstore-connect-setup/SKILL.md → appstore-connect/references/setup.md} +3 -6
- package/agents-config/skills/environments-manager/SKILL.md +6 -6
- package/agents-config/skills/environments-manager/examples/{claude/commands/dev.md → skills/dev/SKILL.md} +2 -1
- package/agents-config/skills/environments-manager/examples/{claude/commands/lint.md → skills/lint/SKILL.md} +2 -1
- package/agents-config/skills/environments-manager/examples/{claude/commands/test.md → skills/test/SKILL.md} +2 -1
- package/agents-config/skills/environments-manager/examples/{claude/commands/typecheck.md → skills/typecheck/SKILL.md} +2 -1
- package/agents-config/skills/environments-manager/references/claude.md +13 -9
- package/agents-config/skills/environments-manager/references/cursor.md +2 -2
- package/agents-config/skills/ios-testflight/SKILL.md +2 -2
- package/agents-config/{commands/prompts/prompt.md → skills/prompt/SKILL.md} +5 -0
- package/agents-config/{commands/prompts/tools.md → skills/tools/SKILL.md} +1 -0
- package/agents-config/skills/ultrathink/SKILL.md +1 -1
- package/agents-config/skills/use-style/SKILL.md +7 -4
- package/agents-config/skills/use-style/examples/luma.html +221 -0
- package/agents-config/skills/use-style/examples/testspirite.html +340 -0
- package/agents-config/skills/use-style/styles/ios-app.md +350 -0
- package/agents-config/skills/use-style/styles/luma.md +422 -0
- package/agents-config/skills/use-style/styles/new-york-times.md +1 -1
- package/agents-config/skills/use-style/styles/split-auth.md +2 -2
- package/agents-config/skills/use-style/styles/testspirite.md +397 -0
- package/dist/cli.js +56 -118
- package/package.json +1 -1
- package/agents-config/claude-config/scripts/.claude/commands/fix-on-my-computer.md +0 -87
- package/agents-config/commands/prompts/create-vitejs-app.md +0 -272
- package/agents-config/commands/prompts/nextjs-add-prisma-db.md +0 -136
- package/agents-config/commands/prompts/nextjs-setup-better-auth.md +0 -173
- package/agents-config/commands/prompts/nextjs-setup-project.md +0 -200
- package/agents-config/commands/prompts/saas-challenge-idea.md +0 -135
- package/agents-config/commands/prompts/saas-create-architecture.md +0 -242
- package/agents-config/commands/prompts/saas-create-headline.md +0 -132
- package/agents-config/commands/prompts/saas-create-landing-copywritting.md +0 -267
- package/agents-config/commands/prompts/saas-create-legals-docs.md +0 -176
- package/agents-config/commands/prompts/saas-create-logos.md +0 -240
- package/agents-config/commands/prompts/saas-create-prd.md +0 -195
- package/agents-config/commands/prompts/saas-create-tasks.md +0 -240
- package/agents-config/commands/prompts/saas-define-pricing.md +0 -293
- package/agents-config/commands/prompts/saas-find-domain-name.md +0 -190
- package/agents-config/commands/prompts/saas-implement-landing-page.md +0 -257
- package/agents-config/commands/prompts/setup-tmux.md +0 -160
- /package/agents-config/skills/{agents-managers → agents-manager}/references/agents.md +0 -0
- /package/agents-config/skills/{agents-managers → agents-manager}/references/context-management.md +0 -0
- /package/agents-config/skills/{agents-managers → agents-manager}/references/debugging-agents.md +0 -0
- /package/agents-config/skills/{agents-managers → agents-manager}/references/error-handling-and-recovery.md +0 -0
- /package/agents-config/skills/{agents-managers → agents-manager}/references/evaluation-and-testing.md +0 -0
- /package/agents-config/skills/{agents-managers → agents-manager}/references/orchestration-patterns.md +0 -0
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
name: appstore-connect-setup
|
|
3
|
-
description: Find and configure App Store Connect API credentials for asc auth. Use when asc auth is missing, credentials are unknown, the user says login to App Store Connect, or before TestFlight/App Store release work.
|
|
4
|
-
---
|
|
1
|
+
# App Store Connect Setup (asc auth)
|
|
5
2
|
|
|
6
|
-
|
|
3
|
+
Read this when `asc` is **not yet authenticated** — `asc auth status --validate` reports no working credential, the user asks to "log in to App Store Connect", or credentials are unknown before TestFlight/App Store release work.
|
|
7
4
|
|
|
8
5
|
<objective>
|
|
9
|
-
`asc auth login` needs three things: a **key ID**, an **issuer ID**, and a **.p8 private key file**. Users rarely remember where these are. This
|
|
6
|
+
`asc auth login` needs three things: a **key ID**, an **issuer ID**, and a **.p8 private key file**. Users rarely remember where these are. This is a battle-tested workflow for finding all three without asking the user to dig through App Store Connect manually.
|
|
10
7
|
|
|
11
8
|
Key insight from a real session: the `.p8` files and key IDs live on disk, but the **issuer ID is almost never stored locally** — it only exists in the App Store Connect web UI. The trick is to read it from the user's already-signed-in browser session via CDP, since Apple login requires 2FA and cannot be automated.
|
|
12
9
|
</objective>
|
|
@@ -235,7 +235,7 @@ python3 -c "import json; json.load(open('.claude/settings.json'))"
|
|
|
235
235
|
|
|
236
236
|
After the shared scripts are written, for each IDE selected in Step 2, load the matching reference file and apply only its linking config:
|
|
237
237
|
|
|
238
|
-
- **Claude Code** → [references/claude.md](references/claude.md) - `.claude/settings.json`
|
|
238
|
+
- **Claude Code** → [references/claude.md](references/claude.md) - `.claude/settings.json` worktree hooks + optional project action skills.
|
|
239
239
|
- **Cursor** → [references/cursor.md](references/cursor.md) - `.cursor/worktrees.json` setup keys.
|
|
240
240
|
- **Codex** → [references/codex.md](references/codex.md) - `.codex/environments/environment.toml` setup, cleanup, and actions.
|
|
241
241
|
|
|
@@ -256,11 +256,11 @@ examples/
|
|
|
256
256
|
├── claude/
|
|
257
257
|
│ ├── .worktreeinclude # native env-file copy list
|
|
258
258
|
│ ├── settings.json # WorktreeCreate + WorktreeRemove hooks
|
|
259
|
-
|
|
260
|
-
│
|
|
261
|
-
│
|
|
262
|
-
│
|
|
263
|
-
│
|
|
259
|
+
├── skills/ # optional project action skills
|
|
260
|
+
│ ├── dev/SKILL.md
|
|
261
|
+
│ ├── typecheck/SKILL.md
|
|
262
|
+
│ ├── test/SKILL.md
|
|
263
|
+
│ └── lint/SKILL.md
|
|
264
264
|
├── cursor/
|
|
265
265
|
│ └── worktrees.json # setup-worktree-unix -> scripts/worktree-up.sh
|
|
266
266
|
└── codex/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
name: typecheck
|
|
3
|
+
description: Typecheck this project and report errors with file references.
|
|
3
4
|
---
|
|
4
5
|
|
|
5
6
|
Run the project's typecheck command (`pnpm ts`, `bun run typecheck`, or equivalent based on the lockfile). Report any errors with file:line references.
|
|
@@ -25,12 +25,13 @@ There is no separate `PostWorktreeCreate` hook (feature request #27744 is open).
|
|
|
25
25
|
```text
|
|
26
26
|
.worktreeinclude # gitignore-syntax list of files to auto-copy
|
|
27
27
|
.claude/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
├──
|
|
32
|
-
├──
|
|
33
|
-
|
|
28
|
+
└── settings.json # WorktreeCreate + WorktreeRemove hooks
|
|
29
|
+
.agents/
|
|
30
|
+
└── skills/ # optional: per-action project skills
|
|
31
|
+
├── dev/SKILL.md
|
|
32
|
+
├── typecheck/SKILL.md
|
|
33
|
+
├── test/SKILL.md
|
|
34
|
+
└── lint/SKILL.md
|
|
34
35
|
scripts/
|
|
35
36
|
├── claude-worktree-create.sh # WorktreeCreate hook wrapper
|
|
36
37
|
├── claude-worktree-remove.sh # WorktreeRemove hook wrapper
|
|
@@ -123,11 +124,14 @@ The `WorktreeCreate` hook **only fires for `claude --worktree` from the CLI**. T
|
|
|
123
124
|
|
|
124
125
|
Also: **`.claude/settings.json` changes only take effect after restarting Claude.** A running session keeps the old hook config. Tell the user to restart before testing.
|
|
125
126
|
|
|
126
|
-
##
|
|
127
|
+
## Project Action Skills (optional)
|
|
127
128
|
|
|
128
|
-
|
|
129
|
+
To expose standard project actions consistently, write one skill per action
|
|
130
|
+
under `.agents/skills/<name>/SKILL.md`. Each skill tells the agent to run the
|
|
131
|
+
matching shared script or package-manager command.
|
|
129
132
|
|
|
130
|
-
See `examples/
|
|
133
|
+
See `examples/skills/` for the four standard ones (`dev`, `typecheck`, `test`,
|
|
134
|
+
`lint`).
|
|
131
135
|
|
|
132
136
|
## Guardrails
|
|
133
137
|
|
|
@@ -14,7 +14,7 @@ Three setup keys are supported (Cursor picks the first one that matches the host
|
|
|
14
14
|
|
|
15
15
|
Cursor does **not** support a cleanup script. Cleanup is timer-based via global settings (`cursor.worktreeCleanupIntervalHours`, `cursor.worktreeMaxCount`). To get a real cleanup hook, expose `scripts/worktree-down.sh` as a project command the user runs manually before `/delete-worktree`.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Cursor includes built-in worktree actions for creating, comparing, applying, and deleting worktrees.
|
|
18
18
|
|
|
19
19
|
## Environment Variables
|
|
20
20
|
|
|
@@ -72,7 +72,7 @@ Inline is fine for two-line setups. For anything more, use a script - the worktr
|
|
|
72
72
|
|
|
73
73
|
- Do not put fragile multi-line setup inline. If it does not fit in two clean array entries, call the script.
|
|
74
74
|
- Do not put `.cursor/worktrees.json` only in a worktree - it must be on the source checkout / main branch so future worktrees pick it up.
|
|
75
|
-
- Do not rely on a cleanup hook - Cursor does not have one. Tell the user to run `scripts/worktree-down.sh` before
|
|
75
|
+
- Do not rely on a cleanup hook - Cursor does not have one. Tell the user to run `scripts/worktree-down.sh` before deleting a worktree, or document it in the project README.
|
|
76
76
|
- Do not use `$CURSOR_WORKTREE_PATH` - that variable is not documented and not guaranteed. Use `pwd` inside the worktree.
|
|
77
77
|
|
|
78
78
|
## Verification
|
|
@@ -34,7 +34,7 @@ The key insight: interactive `eas build` credential setup requires Apple ID 2FA
|
|
|
34
34
|
The user must have (ask once, as a group — these cannot be created by the agent):
|
|
35
35
|
|
|
36
36
|
1. **Apple Developer Program membership** (paid, enrolled).
|
|
37
|
-
2. **App Store Connect API key**: the `AuthKey_<KEY_ID>.p8` file, its key ID, and the team issuer ID. If unknown,
|
|
37
|
+
2. **App Store Connect API key**: the `AuthKey_<KEY_ID>.p8` file, its key ID, and the team issuer ID. If unknown, follow the `appstore-connect` skill's setup workflow (`references/setup.md`), or point the user to App Store Connect > Users and Access > Integrations > App Store Connect API (key must have Admin or App Manager role).
|
|
38
38
|
3. **Expo account** logged in: `npx eas-cli@latest whoami` (else `npx eas-cli@latest login`).
|
|
39
39
|
4. **App record in App Store Connect** for the bundle ID. The public API cannot create app records — if missing, the user creates it once at appstoreconnect.apple.com (My Apps > + > New App, selecting the bundle ID). Verify with Phase D step 1 and stop with clear instructions if absent.
|
|
40
40
|
5. `asc` CLI installed (`brew install asc`) — used only for the final upload; everything else goes through `scripts/asc-api.mjs`.
|
|
@@ -47,7 +47,7 @@ The user must have (ask once, as a group — these cannot be created by the agen
|
|
|
47
47
|
| `{bundle_id}` | `SiteConfig.bundleId` |
|
|
48
48
|
| `{apple_team_id}` | `SiteConfig.appleTeamId` |
|
|
49
49
|
| `{eas_project_id}` | output of `eas project:init`, then written to `site-config.ts` |
|
|
50
|
-
| `{asc_key_id}` / `{asc_issuer_id}` / `{asc_p8_path}` | from the user / `appstore-connect
|
|
50
|
+
| `{asc_key_id}` / `{asc_issuer_id}` / `{asc_p8_path}` | from the user / the `appstore-connect` skill's `references/setup.md`. Never commit, never print. |
|
|
51
51
|
| `{convex_prod_url}` / `{convex_prod_site_url}` | from `npx convex deploy` output / Convex dashboard |
|
|
52
52
|
| `{asc_app_id}` | numeric app ID resolved from the bundle ID (Phase D) |
|
|
53
53
|
| `{build_mode}` | default `local`; `expo` only when the user passes `--expo` |
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prompt
|
|
3
|
+
description: Create minimalist SVG logo variations for an app after collecting logo direction from the user.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
You are an expert logo designer. I want you to create minimalist SVG logo variations for my app.
|
|
2
7
|
|
|
3
8
|
Use extended thinking to deeply analyze my app and create the best logos possible.
|
|
@@ -25,7 +25,7 @@ Take a deep breath. We're not here to write code. We're here to make a dent in t
|
|
|
25
25
|
|
|
26
26
|
## Your Tools Are Instruments
|
|
27
27
|
|
|
28
|
-
- Use bash tools, MCP servers, and
|
|
28
|
+
- Use bash tools, MCP servers, and reusable skills like a virtuoso
|
|
29
29
|
- Git history tells the story—read it, learn from it, honor it
|
|
30
30
|
- Multiple Claude instances aren't redundancy—they're collaboration between perspectives
|
|
31
31
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: use-style
|
|
3
|
-
description: Apply named visual style guides to landing pages and UI. Use for $use-style, /
|
|
3
|
+
description: Apply named visual style guides to landing pages, app shells, and UI. Use for $use-style, /useskill, list styles, or styles like ios-app, grid, vercel-simple, stripe, linear, raycast, gumroad, dusk, luma, split-auth, or testspirite.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Load and apply a named style before designing or implementing any UI.
|
|
7
7
|
|
|
8
8
|
## Invocation
|
|
9
9
|
|
|
10
|
-
- Explicit: `$use-style grid`, `/
|
|
11
|
-
- Implicit: user references `/aiblueprint`, `/agents`, `/aibuilder`, "grid theme", Vercel, Geist, a minimalist dark tool UI, Stripe / fintech / checkout / dashboard UI, Linear / issue tracker / app-shell sidebar UI, NYT / newspaper / editorial / broadsheet / magazine layouts, Anthropic / Claude / warm cream AI-lab pages, Gumroad / neo-brutalist / loud commerce / bold yellow-pink pages, Raycast / glossy dark / glow gradients / floating glass nav / premium product marketing,
|
|
10
|
+
- Explicit: `$use-style ios-app`, `$use-style grid`, `/useskill split-auth`, `/useskill list`, or "use the grid style"
|
|
11
|
+
- Implicit: user references NowStack Mobile, Ink & Spark, an iOS app shell, Expo / React Native / NativeWind app UI, `/aiblueprint`, `/agents`, `/aibuilder`, "grid theme", Vercel, Geist, a minimalist dark tool UI, Stripe / fintech / checkout / dashboard UI, Linear / issue tracker / app-shell sidebar UI, NYT / newspaper / editorial / broadsheet / magazine layouts, Anthropic / Claude / warm cream AI-lab pages, Gumroad / neo-brutalist / loud commerce / bold yellow-pink pages, Raycast / glossy dark / glow gradients / floating glass nav / premium product marketing, Dusk / Attio / dark CRM dashboard floating on a twilight backdrop / blue data viz / colorful category pills, Luma / lu.ma / event timeline / calendar / RSVP / discover / a dark consumer events-and-calendar app with photo-led cards, a top teal aurora, and a white pill button, or TestSprite / TestSpirite / calm light dev-tool dashboard / warm paper canvas with one forest-green accent / grouped sidebar + promo rail / isometric line-art empty states
|
|
12
12
|
|
|
13
|
-
Parse the style name from `$ARGUMENTS` or the message. Treat `split-auth`, `signin 2pages`, `signin-2pages`, `sign-in 2 pages`, `auth split`, and `two-column auth` as `split-auth`. Treat `list`, `styles`, `available styles`, and missing style names with no implicit match as a request to list available styles and ask the user to choose before designing. Default to `grid` for Codelynx product landings. Default to `vercel-simple` when the user references Vercel, Geist, or minimalist dark developer tools. Default to `linear` when the user references Linear, an issue tracker, or a dense sidebar + list + detail app shell. Default to `new-york-times` when the user references a newspaper, broadsheet, magazine, or serif editorial layout. Default to `anthropic` when the user references Anthropic, Claude, or a warm cream + serif AI-lab aesthetic. Default to `gumroad` when the user references Gumroad, neo-brutalism, hard offset shadows, or a loud yellow/pink bordered look. Default to `raycast` when the user references Raycast, a glossy dark page with glow gradients, a floating glass nav, or premium dark product marketing. Default to `dusk` when the user references Attio, a dark CRM/data dashboard floating on a twilight/aurora backdrop, vivid-blue charts, or colorful category pills. Default to `split-auth` when the user asks for a polished login, sign-in, signup, OAuth, magic-code, or password-reset page with a two-panel visual layout.
|
|
13
|
+
Parse the style name from `$ARGUMENTS` or the message. Treat `ios`, `ios app`, `ios-app`, `iphone app`, `nowstack-mobile`, `nowstack mobile`, and `ink & spark` as `ios-app`. Treat `split-auth`, `signin 2pages`, `signin-2pages`, `sign-in 2 pages`, `auth split`, and `two-column auth` as `split-auth`. Treat `testsprite`, `test-sprite`, and `test sprite` as `testspirite`. Treat `luma`, `lu.ma`, and `luma.com` as `luma`. Treat `list`, `styles`, `available styles`, and missing style names with no implicit match as a request to list available styles and ask the user to choose before designing. Default to `ios-app` when the user references NowStack Mobile, Ink & Spark, an iOS app shell, Expo, React Native, NativeWind, or OS-native tabs. Default to `grid` for Codelynx product landings. Default to `vercel-simple` when the user references Vercel, Geist, or minimalist dark developer tools. Default to `linear` when the user references Linear, an issue tracker, or a dense sidebar + list + detail app shell. Default to `new-york-times` when the user references a newspaper, broadsheet, magazine, or serif editorial layout. Default to `anthropic` when the user references Anthropic, Claude, or a warm cream + serif AI-lab aesthetic. Default to `gumroad` when the user references Gumroad, neo-brutalism, hard offset shadows, or a loud yellow/pink bordered look. Default to `raycast` when the user references Raycast, a glossy dark page with glow gradients, a floating glass nav, or premium dark product marketing. Default to `dusk` when the user references Attio, a dark CRM/data dashboard floating on a twilight/aurora backdrop, vivid-blue charts, or colorful category pills. Default to `split-auth` when the user asks for a polished login, sign-in, signup, OAuth, magic-code, or password-reset page with a two-panel visual layout. Default to `testspirite` when the user references TestSprite, a calm light dev-tool dashboard, a warm paper canvas with a single forest-green accent, a grouped sidebar with a free-trial/upgrade promo rail, or isometric line-art empty states. Default to `luma` when the user references Luma, lu.ma, an event timeline/feed, a calendar or RSVP/invite app, a discover page, or a dark consumer events UI with photo-led cards, a top teal aurora, and a white pill button.
|
|
14
14
|
|
|
15
15
|
If the parsed style is `list`, or if no style can be inferred, do not load a style file. Reply with the available styles table below, add one short line asking which style to use, and stop until the user chooses.
|
|
16
16
|
|
|
@@ -28,6 +28,7 @@ If the parsed style is `list`, or if no style can be inferred, do not load a sty
|
|
|
28
28
|
|
|
29
29
|
| Style | File | Vibe |
|
|
30
30
|
|-------|------|------|
|
|
31
|
+
| `ios-app` | `styles/ios-app.md` | NowStack Mobile Ink & Spark. iOS/Expo app UI with monochrome ink/paper, one yellow `#FFE040` spark, NativeWind tokens, OS-native tabs, flat hairline cards. |
|
|
31
32
|
| `grid` | `styles/grid.md` | Blueprint landing. Square geometry, 1px borders, mono data, condensed display type. |
|
|
32
33
|
| `vercel-simple` | `styles/vercel-simple.md` | Vercel dark mode. Black canvas, Geist + mono, 1px `#333` borders, minimal accent. |
|
|
33
34
|
| `stripe` | `styles/stripe.md` | Stripe fintech UI. Pale `#f6f9fc` canvas, white cards on soft shadows, blurple `#635BFF` accent, green CTA, rounded geometry. |
|
|
@@ -37,7 +38,9 @@ If the parsed style is `list`, or if no style can be inferred, do not load a sty
|
|
|
37
38
|
| `gumroad` | `styles/gumroad.md` | Loud neo-brutalist commerce. Yellow `#ffc900` + pink `#ff90e8`, thick black borders, hard offset shadows `4px 4px 0 #000`, flat fills, bold geometric sans, pill buttons. Light marketplace + dark dashboard surfaces. |
|
|
38
39
|
| `raycast` | `styles/raycast.md` | Glossy dark product marketing. Near-black `#0a0a0a` + red `#ff6363` glow, floating glass nav (`backdrop-blur`), oversized bold pricing, large-radius `rounded-3xl` cards, soft glow over hard shadows. |
|
|
39
40
|
| `dusk` | `styles/dusk.md` | Refined dark data app (Attio-style). Rounded near-black window floating on a twilight gradient backdrop, vivid sky-blue `#38bdf8` charts, `#3b6eff` primary, colorful category pills, Inter + mono numbers. |
|
|
41
|
+
| `luma` | `styles/luma.md` | Dark consumer events + calendar app (Luma/lu.ma). Near-black `#0a0a0b` canvas with one soft teal aurora at the top, near-borderless `rounded-2xl` photo-led cards, white pill primary buttons, blue `#2f6bff` status pills, gold `#f5b13d` event times, centered timeline column. |
|
|
40
42
|
| `split-auth` | `styles/split-auth.md` | Two-column auth and OAuth pages. Left visual brand panel with optimized bitmap background, right clean form panel, monochrome social buttons, compact code inputs. |
|
|
43
|
+
| `testspirite` | `styles/testspirite.md` | Calm light dev-tool app shell (TestSprite). Warm paper-white `#f7f7f3` canvas, one forest-green `#3d7c4e` accent, grouped sidebar + promo rail, soft `rounded-xl` cards on quiet borders, pale-green `#eaf3ea` status pills, isometric line-art empty states. |
|
|
41
44
|
|
|
42
45
|
Add new styles as `styles/<name>.md` and register them here.
|
|
43
46
|
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Events · Luma</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
|
10
|
+
<style>
|
|
11
|
+
:root {
|
|
12
|
+
--bg:#0a0a0b; --surface:#161618; --raised:#202024; --high:#2a2a2e;
|
|
13
|
+
--fg:#f7f7f8; --body:#c6c6cb; --muted:#8c8c93; --subtle:#5e5e65;
|
|
14
|
+
--border:rgba(255,255,255,0.08); --border-soft:rgba(255,255,255,0.05);
|
|
15
|
+
--white:#fff; --white-fg:#0a0a0a;
|
|
16
|
+
--blue:#2f6bff; --gold:#f5b13d; --pos:#3ecf8e;
|
|
17
|
+
--sans:'Inter', -apple-system, system-ui, sans-serif;
|
|
18
|
+
}
|
|
19
|
+
* { box-sizing:border-box; margin:0; padding:0; }
|
|
20
|
+
html { -webkit-text-size-adjust:100%; }
|
|
21
|
+
body {
|
|
22
|
+
font-family:var(--sans); color:var(--fg); line-height:1.5; -webkit-font-smoothing:antialiased;
|
|
23
|
+
min-height:100vh; padding-bottom:80px;
|
|
24
|
+
background:
|
|
25
|
+
radial-gradient(90% 32% at 50% 0%, rgba(40,82,96,.55) 0%, rgba(22,44,54,.18) 45%, transparent 72%),
|
|
26
|
+
var(--bg);
|
|
27
|
+
background-attachment:fixed;
|
|
28
|
+
}
|
|
29
|
+
.num { font-variant-numeric:tabular-nums; }
|
|
30
|
+
.wrap { max-width:860px; margin:0 auto; padding:0 20px; }
|
|
31
|
+
|
|
32
|
+
/* nav */
|
|
33
|
+
nav.top { display:flex; align-items:center; gap:26px; padding:18px 0; font-size:14px; }
|
|
34
|
+
nav.top a { display:flex; align-items:center; gap:7px; color:var(--muted); text-decoration:none; transition:color .15s; }
|
|
35
|
+
nav.top a:hover { color:var(--fg); }
|
|
36
|
+
nav.top a.active { color:var(--fg); font-weight:500; }
|
|
37
|
+
nav.top svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; }
|
|
38
|
+
nav.top .spacer { flex:1; }
|
|
39
|
+
.pill-btn { border-radius:999px; padding:8px 16px; font-size:13px; font-weight:600; cursor:pointer; border:none; }
|
|
40
|
+
.pill-btn.white { background:var(--white); color:var(--white-fg); }
|
|
41
|
+
.pill-btn.white:hover { opacity:.9; }
|
|
42
|
+
|
|
43
|
+
/* header */
|
|
44
|
+
.head { display:flex; align-items:center; justify-content:space-between; margin:24px 0 36px; }
|
|
45
|
+
h1 { font-size:clamp(30px,5vw,40px); font-weight:700; letter-spacing:-0.025em; }
|
|
46
|
+
.toggle { display:inline-flex; border-radius:999px; background:var(--raised); padding:3px; font-size:14px; }
|
|
47
|
+
.toggle button { border:none; cursor:pointer; border-radius:999px; padding:7px 18px; color:var(--muted); background:transparent; font-family:inherit; font-size:14px; transition:color .15s; }
|
|
48
|
+
.toggle button.on { background:var(--high); color:var(--fg); font-weight:500; }
|
|
49
|
+
|
|
50
|
+
/* timeline */
|
|
51
|
+
.day { display:grid; grid-template-columns:104px 1fr; gap:18px; }
|
|
52
|
+
.day + .day { margin-top:36px; }
|
|
53
|
+
.rail { position:relative; padding-top:4px; }
|
|
54
|
+
.rail .date { font-size:17px; font-weight:600; letter-spacing:-0.01em; }
|
|
55
|
+
.rail .wd { font-size:14px; color:var(--muted); margin-top:1px; }
|
|
56
|
+
.rail .dot { position:absolute; right:-9px; top:8px; width:9px; height:9px; border-radius:999px; background:var(--blue); box-shadow:0 0 0 4px var(--bg); }
|
|
57
|
+
.rail .line { position:absolute; right:-5px; top:22px; bottom:-44px; border-left:1.5px dashed rgba(255,255,255,.14); }
|
|
58
|
+
.day:last-child .rail .line { display:none; }
|
|
59
|
+
.stack { display:flex; flex-direction:column; gap:12px; }
|
|
60
|
+
|
|
61
|
+
/* card */
|
|
62
|
+
.card { border:1px solid var(--border); background:var(--surface); border-radius:18px; padding:18px; transition:background .15s; }
|
|
63
|
+
.card:hover { background:#19191c; }
|
|
64
|
+
.card .row { display:flex; gap:16px; }
|
|
65
|
+
.card .info { min-width:0; flex:1; }
|
|
66
|
+
.time { font-size:14px; color:var(--muted); }
|
|
67
|
+
.time .g { color:var(--gold); font-weight:500; margin-left:4px; }
|
|
68
|
+
.card h3 { font-size:19px; font-weight:600; letter-spacing:-0.015em; margin-top:6px; line-height:1.25; }
|
|
69
|
+
.by { display:flex; align-items:center; gap:8px; font-size:14px; color:var(--body); margin-top:10px; }
|
|
70
|
+
.loc { display:flex; align-items:center; gap:6px; font-size:14px; color:var(--muted); margin-top:5px; }
|
|
71
|
+
.loc svg, .by svg { width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:1.8; }
|
|
72
|
+
.foot { display:flex; align-items:center; gap:10px; margin-top:14px; }
|
|
73
|
+
|
|
74
|
+
/* pills + avatars */
|
|
75
|
+
.pill { border-radius:999px; padding:4px 11px; font-size:12px; font-weight:500; }
|
|
76
|
+
.pill.invited { background:var(--blue); color:#fff; }
|
|
77
|
+
.pill.going { background:rgba(62,207,142,.15); color:var(--pos); }
|
|
78
|
+
.pill.pending { background:var(--raised); color:var(--muted); }
|
|
79
|
+
.avs { display:flex; align-items:center; }
|
|
80
|
+
.avs .a { width:24px; height:24px; border-radius:999px; box-shadow:0 0 0 2px var(--bg); margin-left:-7px; }
|
|
81
|
+
.avs .a:first-child { margin-left:0; }
|
|
82
|
+
.avs .more { margin-left:9px; border-radius:999px; background:var(--raised); color:var(--muted); font-size:12px; padding:2px 9px; }
|
|
83
|
+
|
|
84
|
+
/* cover thumb */
|
|
85
|
+
.cover { width:104px; height:104px; border-radius:14px; flex-shrink:0; position:relative; overflow:hidden; display:grid; place-items:center; }
|
|
86
|
+
.cover span { font-size:13px; font-weight:700; color:#fff; text-align:center; padding:8px; line-height:1.15; letter-spacing:-0.01em; text-shadow:0 1px 6px rgba(0,0,0,.35); }
|
|
87
|
+
@media (max-width:560px){ .cover{ width:84px; height:84px; } .day{ grid-template-columns:80px 1fr; } }
|
|
88
|
+
|
|
89
|
+
/* avatar gradients */
|
|
90
|
+
.g1{background:linear-gradient(135deg,#f0883e,#d65a5a);} .g2{background:linear-gradient(135deg,#3ecf8e,#2f9e6b);}
|
|
91
|
+
.g3{background:linear-gradient(135deg,#6b8cff,#2f6bff);} .g4{background:linear-gradient(135deg,#b07cf0,#7c4fd6);}
|
|
92
|
+
.g5{background:linear-gradient(135deg,#f5b13d,#e08a1e);} .g6{background:linear-gradient(135deg,#2dd4bf,#0d9488);}
|
|
93
|
+
</style>
|
|
94
|
+
</head>
|
|
95
|
+
<body>
|
|
96
|
+
<div class="wrap">
|
|
97
|
+
<!-- nav -->
|
|
98
|
+
<nav class="top">
|
|
99
|
+
<a class="active" href="#"><svg viewBox="0 0 24 24"><rect x="3" y="6" width="18" height="13" rx="2"/><path d="M3 11h18"/></svg> Events</a>
|
|
100
|
+
<a href="#"><svg viewBox="0 0 24 24"><rect x="4" y="5" width="16" height="16" rx="2"/><path d="M4 9h16M8 3v4M16 3v4"/></svg> Calendars</a>
|
|
101
|
+
<a href="#"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><path d="M15 9l-2 5-4 1 2-5z"/></svg> Discover</a>
|
|
102
|
+
<span class="spacer"></span>
|
|
103
|
+
<button class="pill-btn white">Create Event</button>
|
|
104
|
+
</nav>
|
|
105
|
+
|
|
106
|
+
<!-- header -->
|
|
107
|
+
<div class="head">
|
|
108
|
+
<h1>Events</h1>
|
|
109
|
+
<div class="toggle">
|
|
110
|
+
<button class="on">Upcoming</button>
|
|
111
|
+
<button>Past</button>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
|
|
115
|
+
<!-- timeline -->
|
|
116
|
+
<!-- day -->
|
|
117
|
+
<div class="day">
|
|
118
|
+
<div class="rail">
|
|
119
|
+
<div class="date">Jun 22</div><div class="wd">Monday</div>
|
|
120
|
+
<span class="dot"></span><span class="line"></span>
|
|
121
|
+
</div>
|
|
122
|
+
<div class="stack">
|
|
123
|
+
<div class="card"><div class="row">
|
|
124
|
+
<div class="info">
|
|
125
|
+
<div class="time">3:30 AM<span class="g">· Jun 21, 6:30 PM PDT</span></div>
|
|
126
|
+
<h3>Founder DJ Party</h3>
|
|
127
|
+
<div class="by"><span class="a g1" style="width:20px;height:20px;border-radius:999px;display:inline-block"></span> By Founders on Tap & Lyvia Chapman</div>
|
|
128
|
+
<div class="loc"><svg viewBox="0 0 24 24"><path d="M12 21s7-6 7-11a7 7 0 1 0-14 0c0 5 7 11 7 11z"/><circle cx="12" cy="10" r="2.5"/></svg> San Francisco, United States</div>
|
|
129
|
+
<div class="foot">
|
|
130
|
+
<span class="pill invited">Invited</span>
|
|
131
|
+
<div class="avs"><span class="a g2"></span><span class="a g3"></span><span class="a g4"></span><span class="more num">+132</span></div>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
<div class="cover g1"><span>Founder<br>DJ Party</span></div>
|
|
135
|
+
</div></div>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<!-- day -->
|
|
140
|
+
<div class="day">
|
|
141
|
+
<div class="rail">
|
|
142
|
+
<div class="date">Jun 24</div><div class="wd">Wednesday</div>
|
|
143
|
+
<span class="dot"></span><span class="line"></span>
|
|
144
|
+
</div>
|
|
145
|
+
<div class="stack">
|
|
146
|
+
<div class="card"><div class="row">
|
|
147
|
+
<div class="info">
|
|
148
|
+
<div class="time">3:00 AM<span class="g">· Jun 23, 6:00 PM PDT</span></div>
|
|
149
|
+
<h3>Agents After Hours ft. Harvey, Reducto, and Browserbase</h3>
|
|
150
|
+
<div class="by"><span class="a g3" style="width:20px;height:20px;border-radius:999px;display:inline-block"></span> By Shrey Pandya, Browserbase, Yash Gupta & Palak A…</div>
|
|
151
|
+
<div class="loc"><svg viewBox="0 0 24 24"><path d="M12 21s7-6 7-11a7 7 0 1 0-14 0c0 5 7 11 7 11z"/><circle cx="12" cy="10" r="2.5"/></svg> 1 Post St</div>
|
|
152
|
+
<div class="foot"><span class="pill invited">Invited</span></div>
|
|
153
|
+
</div>
|
|
154
|
+
<div class="cover g2"><span>Agents<br>After Hours</span></div>
|
|
155
|
+
</div></div>
|
|
156
|
+
|
|
157
|
+
<div class="card"><div class="row">
|
|
158
|
+
<div class="info">
|
|
159
|
+
<div class="time">9:00 PM<span class="g">· 12:00 PM PDT</span></div>
|
|
160
|
+
<h3>STAK Ventures: Speaker Series - VIP Lunch & Learn</h3>
|
|
161
|
+
<div class="by"><span class="a g5" style="width:20px;height:20px;border-radius:999px;display:inline-block"></span> By Brian Sparkes</div>
|
|
162
|
+
<div class="loc"><svg viewBox="0 0 24 24"><path d="M12 21s7-6 7-11a7 7 0 1 0-14 0c0 5 7 11 7 11z"/><circle cx="12" cy="10" r="2.5"/></svg> STAK Space - 1920 Broadway</div>
|
|
163
|
+
<div class="foot">
|
|
164
|
+
<span class="pill going">Going</span>
|
|
165
|
+
<div class="avs"><span class="a g6"></span><span class="a g1"></span><span class="a g4"></span><span class="more num">+379</span></div>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="cover g5"><span>STAK<br>Ventures</span></div>
|
|
169
|
+
</div></div>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
|
|
173
|
+
<!-- day -->
|
|
174
|
+
<div class="day">
|
|
175
|
+
<div class="rail">
|
|
176
|
+
<div class="date">Jun 27</div><div class="wd">Saturday</div>
|
|
177
|
+
<span class="dot"></span><span class="line"></span>
|
|
178
|
+
</div>
|
|
179
|
+
<div class="stack">
|
|
180
|
+
<div class="card"><div class="row">
|
|
181
|
+
<div class="info">
|
|
182
|
+
<div class="time">5:30 PM<span class="g">· 8:30 AM PDT</span></div>
|
|
183
|
+
<h3>ExecuTorch with Meta & Qualcomm @ The Web Data Loft</h3>
|
|
184
|
+
<div class="by"><span class="a g4" style="width:20px;height:20px;border-radius:999px;display:inline-block"></span> By Bright Data, lablab, Lauren Lunde & Aaishika</div>
|
|
185
|
+
<div class="loc"><svg viewBox="0 0 24 24"><path d="M12 21s7-6 7-11a7 7 0 1 0-14 0c0 5 7 11 7 11z"/><circle cx="12" cy="10" r="2.5"/></svg> 625 2nd St</div>
|
|
186
|
+
<div class="foot">
|
|
187
|
+
<span class="pill invited">Invited</span>
|
|
188
|
+
<div class="avs"><span class="a g3"></span><span class="a g2"></span><span class="more num">+181</span></div>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
<div class="cover g3"><span>ExecuTorch</span></div>
|
|
192
|
+
</div></div>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<!-- day -->
|
|
197
|
+
<div class="day">
|
|
198
|
+
<div class="rail">
|
|
199
|
+
<div class="date">Jun 30</div><div class="wd">Tuesday</div>
|
|
200
|
+
<span class="dot"></span><span class="line"></span>
|
|
201
|
+
</div>
|
|
202
|
+
<div class="stack">
|
|
203
|
+
<div class="card"><div class="row">
|
|
204
|
+
<div class="info">
|
|
205
|
+
<div class="time">3:00 AM<span class="g">· Jun 29, 6:00 PM PDT</span></div>
|
|
206
|
+
<h3>Model Independence Day</h3>
|
|
207
|
+
<div class="by"><span class="a g6" style="width:20px;height:20px;border-radius:999px;display:inline-block"></span> By Tereza Tížková</div>
|
|
208
|
+
<div class="loc"><svg viewBox="0 0 24 24"><path d="M12 21s7-6 7-11a7 7 0 1 0-14 0c0 5 7 11 7 11z"/><circle cx="12" cy="10" r="2.5"/></svg> San Francisco, United States</div>
|
|
209
|
+
<div class="foot">
|
|
210
|
+
<span class="pill pending">Going · Maybe</span>
|
|
211
|
+
<div class="avs"><span class="a g4"></span><span class="a g5"></span><span class="a g2"></span><span class="more num">+108</span></div>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
<div class="cover g4"><span>Model<br>Independence</span></div>
|
|
215
|
+
</div></div>
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
</div>
|
|
220
|
+
</body>
|
|
221
|
+
</html>
|