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.
@@ -10,7 +10,7 @@ Clean fintech product UI. Light, airy, trust-driven. Soft elevation over hard li
10
10
 
11
11
  - **Trust-first fintech.** Polished, premium, calm. Feels like money software, not a marketing funnel.
12
12
  - **Light canvas.** Off-white / pale blue background, white cards, dark navy ink.
13
- - **Soft elevation.** Subtle layered shadows define cards, NOT 1px borders. This is the key contrast with `grid` / `vercel-simple`.
13
+ - **Soft elevation.** Subtle layered shadows define cards, NOT 1px borders. This is the key contrast with `grid` / `black-grid`.
14
14
  - **Rounded geometry.** `8px` cards, `6px` inputs/buttons, `radius-full` pills and avatars.
15
15
  - **Blurple accent.** `#635BFF` for primary actions, active states, links. Green (`#24B47E`) for success/confirm CTAs.
16
16
  - **Sans everywhere.** Clean grotesk (Inter / system / sohne). Mono only for card numbers, IDs, code.
@@ -331,7 +331,7 @@ Chart.defaults.color = "#697386";
331
331
 
332
332
  ## Motion & effects
333
333
 
334
- - Soft shadow IS the depth language - keep it; do not strip it like in `grid`/`vercel-simple`.
334
+ - Soft shadow IS the depth language - keep it; do not strip it like in `grid`/`black-grid`.
335
335
  - Hover: slight bg shift (`#f7fafc`), darker fill on primary buttons, never scale-jump.
336
336
  - Focus: 3px blurple ring (`rgba(99,91,255,0.25)`) on inputs and focusable controls. Always visible.
337
337
  - `transition-colors duration-150` on interactive elements; `transition-shadow` on inputs.
@@ -369,7 +369,7 @@ Chart.defaults.color = "#8a8d84";
369
369
  | Dev-tool dashboard, test runner, monitoring, settings, plan/billing | Strong fit |
370
370
  | App shell with grouped sidebar + content + promo rail | Strong fit |
371
371
  | Onboarding / empty states with illustrated CTAs | Strong fit |
372
- | Marketing hero / landing page | Poor fit - use `grid`, `vercel-simple`, or `raycast` |
372
+ | Marketing hero / landing page | Poor fit - use `grid`, `vercel`, or `raycast` |
373
373
  | Dense issue-tracker triage (3-pane) | Use `linear` |
374
374
 
375
375
  TestSpirite is for **calm light-mode product app shells**. If the request is a marketing page, redirect to another style.
@@ -0,0 +1,162 @@
1
+ # Vercel Style
2
+
3
+ Current Vercel product language across the dashboard, marketing homepage, and changelog: exact black canvas, quiet gray hierarchy, Geist typography, hairline structure, and large editorial whitespace.
4
+
5
+ ## Core vibe
6
+
7
+ - **Premium infrastructure, not a terminal theme.** Precise and technical, but polished enough for product marketing.
8
+ - **Black is the canvas.** Use `#000`; lift app rows and cards only to `#0a0a0a` or `#111`.
9
+ - **Hairlines create the interface.** Dividers and outlines are subtle `#262626`, never a visible grid motif.
10
+ - **Typography carries the page.** Large, light-weight Geist headlines; compact medium labels; mono only for hashes, branches, metrics, and agent copy.
11
+ - **Two density modes.** Dashboard surfaces are dense and aligned; marketing surfaces are extremely spacious and editorial.
12
+ - **Mostly monochrome.** Color appears only in semantic status, deployment environment, avatars, and rare product imagery.
13
+
14
+ ## Palette
15
+
16
+ | Role | Value | Usage |
17
+ |---|---:|---|
18
+ | Canvas | `#000000` | Global page and sidebar |
19
+ | Surface | `#0a0a0a` | Rows, cards, inset dashboard regions |
20
+ | Hover | `#171717` | Active nav, selected filter, row hover |
21
+ | Primary text | `#ededed` | Headlines, names, primary values |
22
+ | Secondary text | `#a1a1a1` | Metadata and descriptions |
23
+ | Quiet text | `#666666` | Placeholders and low-priority labels |
24
+ | Hairline | `#262626` | Borders and separators |
25
+ | Strong hairline | `#333333` | Focus and hover outline |
26
+ | White action | `#ededed` | Primary button fill |
27
+ | Vercel blue | `#0070f3` | Production/environment state only |
28
+ | Ready | `#45dec4` | Healthy deployment dot |
29
+ | Error | `#f33a4a` | Error or blocked state |
30
+
31
+ Keep at least 90% of the page black, gray, and white. Never introduce a decorative brand gradient.
32
+
33
+ ## Typography
34
+
35
+ - Use `Geist, Arial, sans-serif`; use `Geist Mono, SFMono-Regular, monospace` only for technical metadata.
36
+ - Marketing display: `clamp(3rem, 6vw, 5.5rem)`, `font-weight: 400`, `line-height: .92`, `letter-spacing: -.055em`.
37
+ - Page heading: `text-4xl md:text-6xl`, regular weight, tight tracking.
38
+ - Dashboard title and row labels: `14-16px`, medium weight.
39
+ - Metadata: `13-14px`, muted; technical metadata may be mono.
40
+ - Avoid uppercase everywhere. Reserve spaced uppercase mono for short agent/infrastructure statements.
41
+
42
+ ## Geometry
43
+
44
+ | Element | Radius | Treatment |
45
+ |---|---:|---|
46
+ | Dashboard rows and large tables | `0-8px` outer only | Hairline separators; no individual floating cards |
47
+ | Search and select controls | `8px` | Black fill, `1px` hairline |
48
+ | Secondary buttons | `8px` | Black fill, subtle outline |
49
+ | Primary buttons | `8px` | White fill, black text |
50
+ | Status/environment chips | `999px` | Compact semantic pills |
51
+ | Marketing article cards | `0` | Large near-black slabs, usually no visible radius |
52
+
53
+ Do not make every element a pill. Pills are for status, compact filters, and identity chips only.
54
+
55
+ ## Dashboard composition
56
+
57
+ - Use a fixed left sidebar around `240px`, a thin right border, and compact icon + label rows.
58
+ - Put workspace switcher at the top and profile/utility controls at the bottom.
59
+ - Use a slim top bar with context on the left, centered page title, and agent/product action on the right.
60
+ - Place filters in one aligned horizontal row above a dense list or table.
61
+ - Rows should be `56-72px` high with stable columns: title, status, environment, project, commit, branch, time, avatar.
62
+ - Prefer one continuous bordered list over a collection of floating cards.
63
+ - Selected navigation uses `#1f1f1f`; inactive items are gray with no container.
64
+
65
+ ```tsx
66
+ <div className="min-h-screen bg-black text-[#ededed]">
67
+ <aside className="fixed inset-y-0 w-60 border-r border-[#262626]">...</aside>
68
+ <main className="ml-60 min-w-0">
69
+ <header className="h-16 border-b border-[#262626]">...</header>
70
+ <section className="p-6">...</section>
71
+ </main>
72
+ </div>
73
+ ```
74
+
75
+ ## Marketing composition
76
+
77
+ - Use a centered max-width around `1720px` with generous `48-96px` side padding.
78
+ - Keep the header sparse: triangle mark, four quiet links, two outlined actions, avatar.
79
+ - Hero sections should occupy most of the viewport and use three-part composition: oversized statement, restrained central visual, compact technical support copy.
80
+ - Allow dramatic emptiness. Do not fill blank space with generic feature cards.
81
+ - Customer marks may form a quiet monochrome baseline near the fold.
82
+ - For changelogs/editorial indexes, use a large heading and category navigation, then a strict three-column grid of oversized story cards.
83
+ - Featured story cards are tall, flat `#0a0a0a` slabs with title near the top and description/byline anchored near the bottom.
84
+
85
+ ## Signature imagery
86
+
87
+ - The Vercel triangle may be used as a single focal object.
88
+ - Render it monochrome, geometric, and centered; a soft white backlight is allowed behind the mark.
89
+ - Glow belongs to the hero object only. Never add ambient purple/blue auroras, glass cards, or glossy gradients.
90
+ - Product screenshots should retain true dashboard density instead of being simplified into decorative mockups.
91
+
92
+ ## Components
93
+
94
+ ### Buttons
95
+
96
+ ```tsx
97
+ const primary = "rounded-lg bg-[#ededed] px-5 py-2.5 text-sm font-medium text-black hover:bg-white";
98
+ const secondary = "rounded-lg border border-[#333] bg-black px-5 py-2.5 text-sm font-medium text-[#ededed] hover:bg-[#111]";
99
+ ```
100
+
101
+ ### Dashboard filter
102
+
103
+ ```tsx
104
+ <button className="flex h-11 items-center gap-3 rounded-lg border border-[#262626] bg-black px-4 text-sm text-[#a1a1a1] hover:border-[#333]">
105
+ <Icon className="size-4" />
106
+ <span>All Environments</span>
107
+ </button>
108
+ ```
109
+
110
+ ### Deployment row
111
+
112
+ ```tsx
113
+ <div className="grid min-h-14 grid-cols-[minmax(280px,1fr)_160px_140px_160px_100px_120px_90px_28px] items-center gap-4 border-b border-[#262626] px-4 text-sm last:border-b-0 hover:bg-[#0a0a0a]">
114
+ <span className="truncate text-[#ededed]">fix: harden workflow compatibility</span>
115
+ <span className="flex items-center gap-2"><i className="size-2 rounded-full bg-[#45dec4]" />Ready</span>
116
+ <span className="w-fit rounded-full border border-[#262626] px-2.5 py-1">Production</span>
117
+ <span className="truncate">project-name</span>
118
+ <code className="text-[#a1a1a1]">f269f37</code>
119
+ <code className="truncate text-[#a1a1a1]">main</code>
120
+ <time className="text-right text-[#a1a1a1]">11h ago</time>
121
+ <Avatar />
122
+ </div>
123
+ ```
124
+
125
+ ### Editorial card
126
+
127
+ ```tsx
128
+ <article className="flex min-h-[510px] flex-col bg-[#0a0a0a] p-8">
129
+ <p className="text-sm text-[#a1a1a1]">30 June&nbsp;&nbsp; General</p>
130
+ <h2 className="mt-7 max-w-[18ch] text-4xl font-normal leading-tight tracking-[-0.04em]">Run any Dockerfile on Vercel</h2>
131
+ <div className="mt-auto space-y-7 text-[#a1a1a1]">...</div>
132
+ </article>
133
+ ```
134
+
135
+ ## Motion
136
+
137
+ - Use `120-180ms` color and border transitions.
138
+ - No card lift, spring bounce, parallax, or ornamental motion.
139
+ - Loading uses quiet skeleton slabs on `#111`.
140
+ - A hero glow may breathe almost imperceptibly; respect reduced motion.
141
+
142
+ ## Responsive behavior
143
+
144
+ - Collapse the sidebar to a drawer or icon rail below desktop.
145
+ - Turn dashboard filter rows into horizontal overflow rather than wrapping unevenly.
146
+ - Hide lower-priority table columns progressively; keep title, status, project, and time.
147
+ - Marketing heroes stack text, visual, and support copy; preserve generous vertical space.
148
+ - Changelog grids move from three columns to one without shrinking headline type excessively.
149
+
150
+ ## Anti-patterns
151
+
152
+ - Do not add visible graph-paper grids, plus marks, coordinate labels, or blueprint decoration. That is `black-grid`.
153
+ - Do not turn the style into a generic rounded-card SaaS dashboard.
154
+ - Do not use neon gradients, glassmorphism, heavy shadows, or multiple glows.
155
+ - Do not overuse mono or uppercase; current Vercel relies primarily on Geist Sans.
156
+ - Do not outline every marketing section. Empty black space is part of the system.
157
+ - Do not use blue as a general brand wash. Keep it semantic and sparse.
158
+ - Do not replace dense dashboard lists with oversized cards.
159
+
160
+ ## Project overrides
161
+
162
+ If the repo defines `.agents/styles/vercel.md` or `.agents/styles/vercel-theme.md`, prefer those tokens and components over this portable spec.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiblueprint-cli",
3
- "version": "1.4.92",
3
+ "version": "1.4.94",
4
4
  "description": "AIBlueprint CLI for setting up AI coding configurations",
5
5
  "author": "AIBlueprint",
6
6
  "license": "MIT",
@@ -1,366 +0,0 @@
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>Split Auth Style Demo</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;800&display=swap" rel="stylesheet" />
10
- <style>
11
- :root {
12
- --bg:#ffffff;
13
- --fg:#111216;
14
- --muted:#747884;
15
- --border:#dedfe5;
16
- --soft:#f7f7f8;
17
- --primary:#126fe0;
18
- --primary-hover:#0f61c6;
19
- --black:#050506;
20
- --white:#ffffff;
21
- }
22
-
23
- * { box-sizing:border-box; margin:0; padding:0; }
24
- html { -webkit-text-size-adjust:100%; }
25
- body {
26
- min-height:100vh;
27
- font-family:Inter, ui-sans-serif, system-ui, sans-serif;
28
- color:var(--fg);
29
- background:var(--bg);
30
- line-height:1.5;
31
- -webkit-font-smoothing:antialiased;
32
- }
33
- button, input { font:inherit; }
34
- a { color:inherit; }
35
-
36
- .shell {
37
- min-height:100vh;
38
- display:grid;
39
- grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);
40
- }
41
-
42
- .visual {
43
- position:relative;
44
- min-height:100vh;
45
- overflow:hidden;
46
- background:#030306;
47
- color:var(--white);
48
- }
49
- .visual::before {
50
- content:"";
51
- position:absolute;
52
- inset:-12%;
53
- background:
54
- radial-gradient(circle at 65% 38%, rgba(255,255,255,.30), transparent 9%),
55
- radial-gradient(circle at 28% 70%, rgba(126,158,255,.32), transparent 10%),
56
- linear-gradient(125deg, transparent 0 34%, rgba(255,255,255,.18) 46%, transparent 58%),
57
- linear-gradient(150deg, transparent 0 42%, rgba(155,177,255,.20) 52%, transparent 66%),
58
- #030306;
59
- filter:blur(.2px) contrast(115%);
60
- }
61
- .visual::after {
62
- content:"";
63
- position:absolute;
64
- inset:0;
65
- background:
66
- radial-gradient(circle at 20% 18%, rgba(255,255,255,.14), transparent 28%),
67
- linear-gradient(180deg, rgba(4,6,12,.1), rgba(4,6,12,.86));
68
- }
69
- .visual-inner {
70
- position:relative;
71
- z-index:1;
72
- min-height:100vh;
73
- display:flex;
74
- flex-direction:column;
75
- justify-content:space-between;
76
- padding:64px;
77
- }
78
-
79
- .brand {
80
- display:flex;
81
- align-items:center;
82
- gap:12px;
83
- width:max-content;
84
- text-decoration:none;
85
- font-size:20px;
86
- font-weight:700;
87
- }
88
- .mark {
89
- width:44px;
90
- height:44px;
91
- border:1px solid rgba(255,255,255,.22);
92
- border-radius:14px;
93
- display:grid;
94
- place-items:center;
95
- background:rgba(255,255,255,.10);
96
- backdrop-filter:blur(18px);
97
- box-shadow:0 16px 48px rgba(0,0,0,.26);
98
- }
99
- .mark svg { width:22px; height:22px; }
100
-
101
- .story {
102
- max-width:610px;
103
- }
104
- .story h1 {
105
- max-width:10ch;
106
- font-size:clamp(52px,5.5vw,82px);
107
- line-height:1.01;
108
- letter-spacing:-.05em;
109
- font-weight:800;
110
- }
111
- .story p {
112
- margin-top:26px;
113
- max-width:510px;
114
- color:rgba(255,255,255,.72);
115
- font-size:19px;
116
- line-height:1.7;
117
- }
118
- .visual-foot {
119
- color:rgba(255,255,255,.45);
120
- font-size:14px;
121
- }
122
-
123
- .auth {
124
- min-height:100vh;
125
- display:flex;
126
- flex-direction:column;
127
- background:var(--bg);
128
- }
129
- .topbar {
130
- display:flex;
131
- justify-content:space-between;
132
- align-items:center;
133
- padding:32px 40px;
134
- }
135
- .mobile-brand {
136
- display:none;
137
- align-items:center;
138
- gap:10px;
139
- font-size:20px;
140
- font-weight:700;
141
- }
142
- .mobile-brand .mark {
143
- width:32px;
144
- height:32px;
145
- color:var(--fg);
146
- border-color:var(--border);
147
- background:var(--soft);
148
- box-shadow:none;
149
- }
150
- .icon-button {
151
- width:32px;
152
- height:32px;
153
- border:0;
154
- border-radius:999px;
155
- background:transparent;
156
- color:var(--fg);
157
- cursor:pointer;
158
- }
159
- .center {
160
- flex:1;
161
- display:flex;
162
- align-items:center;
163
- justify-content:center;
164
- padding:20px 40px 72px;
165
- }
166
- .card {
167
- width:100%;
168
- max-width:420px;
169
- }
170
- .eyebrow {
171
- color:var(--primary);
172
- font-size:14px;
173
- font-weight:700;
174
- margin-bottom:12px;
175
- }
176
- .card h2 {
177
- font-size:32px;
178
- line-height:1.15;
179
- letter-spacing:-.03em;
180
- font-weight:750;
181
- }
182
- .sub {
183
- margin-top:12px;
184
- color:var(--muted);
185
- font-size:15px;
186
- line-height:1.65;
187
- }
188
- .form {
189
- display:grid;
190
- gap:16px;
191
- margin-top:32px;
192
- }
193
- label {
194
- display:grid;
195
- gap:8px;
196
- font-size:14px;
197
- font-weight:650;
198
- }
199
- input {
200
- height:44px;
201
- width:100%;
202
- border:1px solid var(--border);
203
- border-radius:10px;
204
- background:var(--bg);
205
- color:var(--fg);
206
- padding:0 14px;
207
- outline:none;
208
- transition:border-color .18s ease, box-shadow .18s ease;
209
- }
210
- input:focus {
211
- border-color:rgba(18,111,224,.7);
212
- box-shadow:0 0 0 3px rgba(18,111,224,.14);
213
- }
214
- .primary {
215
- height:44px;
216
- border:0;
217
- border-radius:10px;
218
- background:var(--primary);
219
- color:var(--white);
220
- font-weight:750;
221
- cursor:pointer;
222
- }
223
- .primary:hover { background:var(--primary-hover); }
224
-
225
- .divider {
226
- display:flex;
227
- align-items:center;
228
- gap:24px;
229
- margin:24px 0;
230
- color:var(--fg);
231
- font-size:15px;
232
- }
233
- .divider::before,
234
- .divider::after {
235
- content:"";
236
- height:1px;
237
- flex:1;
238
- background:var(--border);
239
- }
240
-
241
- .socials {
242
- display:grid;
243
- gap:12px;
244
- }
245
- .social {
246
- height:44px;
247
- display:flex;
248
- align-items:center;
249
- justify-content:center;
250
- gap:10px;
251
- border:1px solid var(--black);
252
- border-radius:10px;
253
- background:var(--black);
254
- color:var(--white);
255
- font-weight:750;
256
- cursor:pointer;
257
- }
258
- .social svg {
259
- width:17px;
260
- height:17px;
261
- color:var(--white);
262
- }
263
- .switch {
264
- margin-top:34px;
265
- color:var(--muted);
266
- font-size:14px;
267
- text-align:center;
268
- }
269
- .switch a {
270
- color:var(--fg);
271
- font-weight:750;
272
- }
273
-
274
- @media (max-width:980px) {
275
- .shell { grid-template-columns:1fr; }
276
- .visual { display:none; }
277
- .topbar { padding:20px; }
278
- .mobile-brand { display:flex; }
279
- .center {
280
- align-items:flex-start;
281
- padding:82px 20px 44px;
282
- }
283
- .card { max-width:100%; }
284
- }
285
- @media (max-width:430px) {
286
- .center { padding-top:68px; }
287
- .card h2 { font-size:30px; }
288
- }
289
- </style>
290
- </head>
291
- <body>
292
- <main class="shell">
293
- <section class="visual" aria-label="Brand panel">
294
- <div class="visual-inner">
295
- <a class="brand" href="#">
296
- <span class="mark" aria-hidden="true">
297
- <svg viewBox="0 0 24 24" fill="none">
298
- <path d="M5 6h14M5 12h14M5 18h8" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" />
299
- </svg>
300
- </span>
301
- Product
302
- </a>
303
-
304
- <div class="story">
305
- <h1>The calmer way to get back to work.</h1>
306
- <p>Secure access for teams that want speed, clarity, and fewer distractions.</p>
307
- </div>
308
-
309
- <p class="visual-foot">Product</p>
310
- </div>
311
- </section>
312
-
313
- <section class="auth">
314
- <header class="topbar">
315
- <div class="mobile-brand">
316
- <span class="mark" aria-hidden="true">
317
- <svg viewBox="0 0 24 24" fill="none">
318
- <path d="M5 6h14M5 12h14M5 18h8" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" />
319
- </svg>
320
- </span>
321
- Product
322
- </div>
323
- <button class="icon-button" type="button" aria-label="Toggle theme">☼</button>
324
- </header>
325
-
326
- <div class="center">
327
- <div class="card">
328
- <p class="eyebrow">Welcome back</p>
329
- <h2>Sign in to Product</h2>
330
- <p class="sub">Use your email code or continue with a connected provider.</p>
331
-
332
- <form class="form">
333
- <label>
334
- Email
335
- <input type="email" value="you@example.com" autocomplete="email" />
336
- </label>
337
- <button class="primary" type="button">Send code</button>
338
- </form>
339
-
340
- <div class="divider">or</div>
341
-
342
- <div class="socials">
343
- <button class="social" type="button">
344
- <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
345
- <path d="M12 .5A12 12 0 0 0 8.2 23.9c.6.1.8-.3.8-.6v-2.1c-3.3.7-4-1.4-4-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.9 1.3 1.9 1.3 1 .1.7 2.9 2.7 3.6-.3.1-.8.4-1 .8-.9-2.6-3.7-1.3-3.7-6 0-1.3.5-2.4 1.3-3.3-.1-.3-.6-1.7.1-3.4 0 0 1-.3 3.4 1.2a11.8 11.8 0 0 1 6.2 0C18 5.2 19 5.5 19 5.5c.7 1.7.2 3.1.1 3.4.8.9 1.3 2 1.3 3.3 0 4.8-2.9 5.8-5.6 6.1.5.4.9 1.2.9 2.4v3.6c0 .3.2.7.9.6A12 12 0 0 0 12 .5Z"/>
346
- </svg>
347
- Sign in with GitHub
348
- </button>
349
- <button class="social" type="button">
350
- <svg viewBox="0 0 256 262" fill="currentColor" aria-hidden="true">
351
- <path d="M255.9 133.5c0-10.7-.9-18.6-2.8-26.7H130.6v48.4h71.9c-1.5 12-9.3 30.2-26.7 42.4l-.2 1.6 38.8 30 2.7.3c24.6-22.8 38.8-56.3 38.8-96Z"/>
352
- <path d="M130.6 261.1c35.2 0 64.8-11.6 86.4-31.6l-41.2-31.9c-11 7.7-25.8 13.1-45.2 13.1-34.5 0-63.8-22.8-74.3-54.3l-1.5.1-40.3 31.2-.5 1.5c21.5 42.6 65.6 71.9 116.6 71.9Z"/>
353
- <path d="M56.3 156.4a80.4 80.4 0 0 1-.1-51.7l-.1-1.7-40.8-31.7-1.3.6A130 130 0 0 0 0 130.6c0 21 5.1 40.9 14 58.6l42.3-32.8Z"/>
354
- <path d="M130.6 50.5c24.5 0 41 10.6 50.4 19.4l36.9-36C195.2 12.9 165.8 0 130.6 0 79.5 0 35.4 29.3 14 71.9l42.1 32.8c10.6-31.5 39.9-54.2 74.5-54.2Z"/>
355
- </svg>
356
- Sign in with Google
357
- </button>
358
- </div>
359
-
360
- <p class="switch">No account yet? <a href="#">Create one</a></p>
361
- </div>
362
- </div>
363
- </section>
364
- </main>
365
- </body>
366
- </html>