aiblueprint-cli 1.4.92 → 1.4.94
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 +1 -0
- package/agents-config/skills/use-artifacts/SKILL.md +160 -0
- package/agents-config/skills/use-artifacts/agents/openai.yaml +7 -0
- package/agents-config/skills/use-artifacts/assets/codex-icon.svg +18 -0
- package/agents-config/skills/use-artifacts/scripts/create_artifact.py +317 -0
- package/agents-config/skills/use-style/SKILL.md +6 -5
- package/agents-config/skills/use-style/agents/openai.yaml +7 -0
- package/agents-config/skills/use-style/assets/codex-icon.svg +19 -0
- package/agents-config/skills/use-style/styles/{vercel-simple.md → black-grid.md} +3 -3
- package/agents-config/skills/use-style/styles/linear.md +2 -2
- package/agents-config/skills/use-style/styles/luma.md +1 -1
- package/agents-config/skills/use-style/styles/raycast.md +1 -1
- package/agents-config/skills/use-style/styles/stripe.md +2 -2
- package/agents-config/skills/use-style/styles/testspirite.md +1 -1
- package/agents-config/skills/use-style/styles/vercel.md +162 -0
- package/package.json +1 -1
- package/agents-config/skills/use-style/examples/split-auth.html +0 -366
- package/agents-config/skills/use-style/styles/split-auth.md +0 -281
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
# Split Auth Style
|
|
2
|
-
|
|
3
|
-
Two-column authentication style for sign-in, signup, OAuth, magic-code, password reset, and account recovery screens. It is not a marketing homepage. It is a focused auth surface with a strong brand panel and a clean form panel.
|
|
4
|
-
|
|
5
|
-
**Reference vibe:** premium SaaS auth page with a dark visual brand panel on the left and a quiet, high-clarity form on the right.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Core vibe
|
|
10
|
-
|
|
11
|
-
- **Split auth layout.** Desktop is two panels: visual brand story on one side, form task on the other. Mobile hides the visual panel and keeps the form first.
|
|
12
|
-
- **One strong bitmap.** Use a real optimized image or generated bitmap as the visual panel background. Avoid SVG-only decoration.
|
|
13
|
-
- **Quiet form column.** The form panel is white or token-card colored, with no nested card shell unless the app design system requires it.
|
|
14
|
-
- **Brand line, not feature list.** The visual panel gets one concise positioning line and one support sentence.
|
|
15
|
-
- **Monochrome OAuth.** Social buttons are black with white text and white icons. Do not use colored Google marks here.
|
|
16
|
-
- **Compact verification.** OTP/code inputs are centered, stable size, and never stretch across the form width.
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Invocation aliases
|
|
21
|
-
|
|
22
|
-
Use this style when the user says:
|
|
23
|
-
|
|
24
|
-
- `/useskill split-auth`
|
|
25
|
-
- `$use-style split-auth`
|
|
26
|
-
- `use split-auth`
|
|
27
|
-
- `/useskill signin 2pages`
|
|
28
|
-
- `two-column auth`
|
|
29
|
-
- `auth split`
|
|
30
|
-
- `make the sign in page like the example`
|
|
31
|
-
|
|
32
|
-
Normalize those to `split-auth`.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Layout
|
|
37
|
-
|
|
38
|
-
### Desktop shell
|
|
39
|
-
|
|
40
|
-
Use a full viewport grid. Left panel is visual, right panel is task.
|
|
41
|
-
|
|
42
|
-
```tsx
|
|
43
|
-
<main className="grid min-h-screen bg-background text-foreground lg:grid-cols-[minmax(0,1.08fr)_minmax(420px,0.92fr)]">
|
|
44
|
-
<section className="relative hidden overflow-hidden bg-black lg:block">
|
|
45
|
-
<div className="absolute inset-0 bg-cover bg-center" />
|
|
46
|
-
<div className="absolute inset-0 bg-[linear-gradient(180deg,rgba(7,9,15,0.18),rgba(7,9,15,0.78))]" />
|
|
47
|
-
<div className="relative flex h-full min-h-screen flex-col justify-between p-12 text-white xl:p-16">
|
|
48
|
-
{brand}
|
|
49
|
-
{positioning}
|
|
50
|
-
{footer}
|
|
51
|
-
</div>
|
|
52
|
-
</section>
|
|
53
|
-
<section className="flex min-h-screen flex-col bg-card">
|
|
54
|
-
<header className="flex items-center justify-between px-5 py-4 sm:px-8 lg:px-10 lg:py-8" />
|
|
55
|
-
<div className="flex flex-1 items-center justify-center px-5 pb-10 pt-4 sm:px-8 lg:px-10 lg:py-12">
|
|
56
|
-
<div className="w-full max-w-[420px]">{form}</div>
|
|
57
|
-
</div>
|
|
58
|
-
</section>
|
|
59
|
-
</main>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Mobile shell
|
|
63
|
-
|
|
64
|
-
- Hide the visual panel with `hidden lg:block`.
|
|
65
|
-
- Keep brand logo in the top form header.
|
|
66
|
-
- Use `px-5`, a max width of the full viewport, and enough top spacing to avoid feeling cramped.
|
|
67
|
-
- Do not show the bitmap as a mobile background unless it improves readability.
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Visual panel
|
|
72
|
-
|
|
73
|
-
### Background image
|
|
74
|
-
|
|
75
|
-
Use one optimized bitmap:
|
|
76
|
-
|
|
77
|
-
- Preferred formats: WebP or AVIF.
|
|
78
|
-
- Target size: 1200-2200px wide for desktop visual panels.
|
|
79
|
-
- Target weight: under 150 KB when possible.
|
|
80
|
-
- If source is HEIC, PNG, or large JPG, convert before serving.
|
|
81
|
-
- Use `background-size: cover` and `background-position: center`.
|
|
82
|
-
|
|
83
|
-
### Overlay
|
|
84
|
-
|
|
85
|
-
Add a dark overlay so white text stays readable:
|
|
86
|
-
|
|
87
|
-
```tsx
|
|
88
|
-
<div className="absolute inset-0 bg-[radial-gradient(circle_at_20%_20%,rgba(255,255,255,0.18),transparent_28%),linear-gradient(180deg,rgba(7,9,15,0.18),rgba(7,9,15,0.78))]" />
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Brand lockup
|
|
92
|
-
|
|
93
|
-
Small brand mark at the top, not a giant logo.
|
|
94
|
-
|
|
95
|
-
```tsx
|
|
96
|
-
<a className="flex w-fit items-center gap-3">
|
|
97
|
-
<span className="flex size-11 items-center justify-center rounded-xl border border-white/20 bg-white/10 shadow-lg shadow-black/20 backdrop-blur-md">
|
|
98
|
-
<Logo className="text-white" />
|
|
99
|
-
</span>
|
|
100
|
-
<span className="text-xl font-semibold">{Product}</span>
|
|
101
|
-
</a>
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Positioning copy
|
|
105
|
-
|
|
106
|
-
Use one direct brand line. Keep it literal and adapted to the product.
|
|
107
|
-
|
|
108
|
-
Pattern examples:
|
|
109
|
-
|
|
110
|
-
- `{Product} - the workspace your team finally enjoys.`
|
|
111
|
-
- `{Product} - the calmer way to manage your work.`
|
|
112
|
-
- `{Product} - everything important, without the noise.`
|
|
113
|
-
|
|
114
|
-
Support copy examples:
|
|
115
|
-
|
|
116
|
-
- `Access your workspace, pick up where you left off, and keep moving.`
|
|
117
|
-
- `Secure sign-in for teams that need speed without clutter.`
|
|
118
|
-
- `One account, one focused place for the work that matters.`
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Form panel
|
|
123
|
-
|
|
124
|
-
### Heading block
|
|
125
|
-
|
|
126
|
-
```tsx
|
|
127
|
-
<div className="space-y-3">
|
|
128
|
-
<p className="text-sm font-medium text-primary">Welcome back</p>
|
|
129
|
-
<div className="space-y-2">
|
|
130
|
-
<h1 className="text-3xl font-semibold leading-tight text-foreground">
|
|
131
|
-
Sign in to {Product}
|
|
132
|
-
</h1>
|
|
133
|
-
<p className="text-sm leading-6 text-muted-foreground">
|
|
134
|
-
Use your email code or continue with a connected provider.
|
|
135
|
-
</p>
|
|
136
|
-
</div>
|
|
137
|
-
</div>
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### Inputs
|
|
141
|
-
|
|
142
|
-
- Height: 44px.
|
|
143
|
-
- Radius: 8px or existing design-system `rounded-lg`.
|
|
144
|
-
- Background: panel background or app token `bg-background`.
|
|
145
|
-
- Label: small, medium, high contrast.
|
|
146
|
-
- Placeholder: practical, not playful.
|
|
147
|
-
|
|
148
|
-
```tsx
|
|
149
|
-
<Input
|
|
150
|
-
placeholder="you@example.com"
|
|
151
|
-
autoComplete="email"
|
|
152
|
-
size="lg"
|
|
153
|
-
className="h-11 rounded-lg bg-background"
|
|
154
|
-
/>
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
### Primary action
|
|
158
|
-
|
|
159
|
-
Use the app primary color. Keep it full width and stable height.
|
|
160
|
-
|
|
161
|
-
```tsx
|
|
162
|
-
<LoadingButton className="h-11 w-full rounded-lg">Send code</LoadingButton>
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Social buttons
|
|
166
|
-
|
|
167
|
-
All OAuth buttons use the same monochrome treatment:
|
|
168
|
-
|
|
169
|
-
```tsx
|
|
170
|
-
<button className="h-11 w-full rounded-lg border-black bg-black text-white hover:bg-black/90 hover:text-white">
|
|
171
|
-
<GithubIcon className="text-white" />
|
|
172
|
-
<span className="text-white">Sign in with GitHub</span>
|
|
173
|
-
</button>
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Rules:
|
|
177
|
-
|
|
178
|
-
- Icon must be white.
|
|
179
|
-
- Text must be white.
|
|
180
|
-
- Do not use colored Google icon segments.
|
|
181
|
-
- Button fill stays black in light mode and dark mode.
|
|
182
|
-
- Use `currentColor` SVGs when possible.
|
|
183
|
-
|
|
184
|
-
### Divider
|
|
185
|
-
|
|
186
|
-
Use thin lines and a centered lowercase `or`.
|
|
187
|
-
|
|
188
|
-
```tsx
|
|
189
|
-
<div className="flex items-center gap-6 text-sm">
|
|
190
|
-
<div className="h-px flex-1 bg-border" />
|
|
191
|
-
<span>or</span>
|
|
192
|
-
<div className="h-px flex-1 bg-border" />
|
|
193
|
-
</div>
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### OTP/code state
|
|
197
|
-
|
|
198
|
-
Persist code-entry state in the URL when the user can leave and return from an email app.
|
|
199
|
-
|
|
200
|
-
```tsx
|
|
201
|
-
await navigate({
|
|
202
|
-
to: '/auth/signin',
|
|
203
|
-
search: { email, step: 'otp' },
|
|
204
|
-
replace: true,
|
|
205
|
-
});
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
Compact code inputs:
|
|
209
|
-
|
|
210
|
-
```tsx
|
|
211
|
-
<InputOTP maxLength={6} containerClassName="justify-center">
|
|
212
|
-
<InputOTPGroup>
|
|
213
|
-
<InputOTPSlot index={0} className="size-10 bg-background" />
|
|
214
|
-
<InputOTPSlot index={1} className="size-10 bg-background" />
|
|
215
|
-
<InputOTPSlot index={2} className="size-10 bg-background" />
|
|
216
|
-
<InputOTPSlot index={3} className="size-10 bg-background" />
|
|
217
|
-
<InputOTPSlot index={4} className="size-10 bg-background" />
|
|
218
|
-
<InputOTPSlot index={5} className="size-10 bg-background" />
|
|
219
|
-
</InputOTPGroup>
|
|
220
|
-
</InputOTP>
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
Do not stretch OTP slots with `w-full justify-between`; that causes clipping on mobile.
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## Auth page variants
|
|
228
|
-
|
|
229
|
-
### Sign in
|
|
230
|
-
|
|
231
|
-
- Eyebrow: `Welcome back`
|
|
232
|
-
- Title: `Sign in to {Product}`
|
|
233
|
-
- Description: `Use your email code or continue with a connected provider.`
|
|
234
|
-
- Primary action: `Send code`
|
|
235
|
-
- Secondary: OAuth buttons
|
|
236
|
-
- Footer link: `No account yet? Create one`
|
|
237
|
-
|
|
238
|
-
### Signup
|
|
239
|
-
|
|
240
|
-
- Eyebrow: `Create your account`
|
|
241
|
-
- Title: `Sign up to {Product}`
|
|
242
|
-
- Description: `We just need a few details to get you started.`
|
|
243
|
-
- Footer link: `You already have an account? Sign in`
|
|
244
|
-
|
|
245
|
-
### Password reset
|
|
246
|
-
|
|
247
|
-
- Icon in small muted square.
|
|
248
|
-
- Title: `Reset your password`
|
|
249
|
-
- Description: `Enter your email and we will send you a reset link.`
|
|
250
|
-
- Primary action: `Send reset link`
|
|
251
|
-
|
|
252
|
-
### Verify email
|
|
253
|
-
|
|
254
|
-
- Centered icon, title, and one sentence.
|
|
255
|
-
- No card wrapper.
|
|
256
|
-
- Keep it inside the shared form panel.
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
## Anti-patterns
|
|
261
|
-
|
|
262
|
-
- Do not add cards inside cards.
|
|
263
|
-
- Do not use a marketing navbar on auth pages.
|
|
264
|
-
- Do not use colored social icons in monochrome OAuth buttons.
|
|
265
|
-
- Do not use stock-photo people unless the product specifically needs human trust imagery.
|
|
266
|
-
- Do not put instructional text explaining how the UI works.
|
|
267
|
-
- Do not use visible keyboard shortcut copy on auth pages.
|
|
268
|
-
- Do not let OTP slots resize or shift on input.
|
|
269
|
-
- Do not make the form column wider than 460px.
|
|
270
|
-
|
|
271
|
-
---
|
|
272
|
-
|
|
273
|
-
## Review checklist
|
|
274
|
-
|
|
275
|
-
- The layout has two panels on desktop and one clean form panel on mobile.
|
|
276
|
-
- The image is optimized and loads from a browser-friendly format.
|
|
277
|
-
- Social buttons have white icons and white text.
|
|
278
|
-
- Form controls have stable heights and no layout shift.
|
|
279
|
-
- OTP state survives reload, tab switching, and return from email app when relevant.
|
|
280
|
-
- Text does not overlap the visual background or preceding content.
|
|
281
|
-
- Mobile screenshot has no clipped inputs, buttons, or OTP slots.
|