
Cursor Pro
popularBuild software with AI.
A vending machine for pro software. Pick a slot, pay once, get a key.
vendo sells pro plans the way a vending machine sells snacks. Every product sits in a numbered slot with one clear price, and there's exactly one of each. The store looks and behaves like the software its buyers already love: quiet surfaces, fast search, keyboard shortcuts, and real product icons.
Products are always one scroll away. The hero sells the store, then gets out of the way.
Slot codes and "1 left" are true. They're the signature detail, and we never fake scarcity.
Paper and ink everywhere, so vendo blue and the product icons can carry the color.
Lowercase headlines, short sentences, real numbers. No hype and no countdown timers.
The mark is a tiny blue vending machine with feet. Its eyes are two coin slots and its mouth is the slot your coin drops into. It's one solid shape with three white cut-outs, so it reads at 16 pixels and still has a personality. The wordmark is just the name, set bold, with a blue full stop.
#2563ff (#3d77ff in dark mode), the same blue as the buttons and the dot in the wordmark. The eyes and mouth are white.Always vendo blue with a white face, on light and dark.
White vee on an ink tile. Favicon, social avatars, emails. The corner radius is 18 on 64.
Receipts, stamps and embossing. Eyes and mouth become cut-outs.
The wordmark is Unbounded SemiBold at −4% tracking, used for the name and nothing else, always lowercase, and always ends with a blue full stop. Keep half of vee's width clear on every side. vee works down to 16px; the lockup needs at least 80px of width.
A calm neutral base with a hint of warmth. vendo blue is reserved for the one action that moves money. The same blue is the brand accent: vee, the full stop after the name and the hero headline, and the lights in the footer machine. The product icons bring the rest of the color. Dark mode has its own selected values, so it isn't a simple inversion.
Unbounded is reserved for the name. Inter does everything else you read: medium weight with tight tracking for headlines, regular for subheads and body, all lowercase like a Mac menu bar. Geist Mono is only for codes, receipts and the terminal.
| wordmark | 18 → 132px | vendo. |
| --t-3xl | 44 → 92px | hero headline |
| --t-2xl | 28 → 40px | section title |
| sub | 16 → 19px | the line under a headline |
| --t-lg | 18px | lead paragraph |
| --t-md | 15px | body · product names at 16px semibold |
| --t-sm | 13.5px | descriptions, filters, buttons |
| --t-xs | 12px | meta, captions, labels |
These are the live components from the store, rendered from the same CSS. Controls feel like a classic Mac: glossy Aqua pills with dark text and a crisp edge, and cards that are little windows with traffic lights and a filename.
Blue moves money. Dark adds in bulk. Ghost navigates. Green means done.





Each brand's own icon, taken from its website and shown on a white plate like an app icon. Icons identify the product; they never suggest vendo is the brand's official store, so the "not affiliated" line stays in the footer.
Cursor Pro added
Build software with AI.
| part | rule |
|---|---|
| slot window | well color with the product icon centered at 60px |
| slot code | top left, mono. The row letter is the category and the number is the position in that row |
| discount pill | top right in sale red, rounded down so it's never overstated |
| title + badge | 16px semibold with at most one badge: new, limited or popular |
| meta + description | plan length and seats, then the description clamped to two lines |
| price row | price in ink, list value struck through, add button on the right |
| stock line | dashed divider, green dot, "1 left" or "reserved in your cart" |
Everything sits on a 4px base. All values live in assets/tokens.css, and components only reference tokens.
| max width | 1280px, gutter 16 → 32px |
| ≥ 1180 | floating product icons and the receipt in the hero |
| ≥ 1020 | 236px filter sidebar + auto-fill grid of 260px cards |
| < 1020 | category chip row + filters in a bottom sheet |
| < 560 | one card per row, toolbar wraps |
Motion confirms what happened. Icons drift gently in the hero, cards lift on hover, the cart slides in from the right, and a toast pops up when something is added. Everything stops for prefers-reduced-motion.
| token | value | used for |
|---|---|---|
| --d-fast | 120ms | hover color, button press |
| --d-mid | 220ms | card lift, dialog pop, toast |
| --d-slow | 360ms | cart drawer slide |
| --ease | cubic-bezier(.2,.7,.2,1) | default for everything |
| --spring | cubic-bezier(.34,1.4,.64,1) | icon hover and the toast only |
| bob | 6–8s alternate | hero icons, staggered |
Lowercase for headlines, labels and buttons. Sentence case for anything longer than a phrase. Real numbers over adjectives, and no fake countdowns: scarcity is real here, one key per slot.
vee shows up when there's nothing else to look at. Never as decoration next to products.
icons · 24px grid, 1.8 to 2px stroke, round caps