This repository contains resources for the CODECAVE brand such as logos, logos, color palettes, fonts and other media.
| Version | Preview |
|---|---|
| Inverse | ![]() |
| Default | ![]() |
| B/W White | ![]() |
| B/W Black | ![]() |
| Version | Preview |
|---|---|
| Inverse | ![]() |
| Default | ![]() |
| B/W White | ![]() |
| B/W Black | ![]() |
| Version | Preview |
|---|---|
| 256px (png) | |
| 128px (png) | |
| 64px (png) | |
| 32px (png) | |
| 16px (png) |
| Web Colors | Color | HEX value |
|---|---|---|
| Primary Purple | #5F20FE | |
| Accent Purple | #9D26FF | |
| Deep Dark Gray | #212121 | |
| Medium Gray | #ABB4BD | |
| Light Gray | #CFD4DA | |
| Accent Gray | #F3F6F9 |
| Use Case | Link | Weights |
|---|---|---|
| Website | Satoshi | 400 (normal), 700 (bold) |
| Logo | Satoshi | 700 (bold) |
Only one real cut ships. The site self-hosts a single
Satoshi-Regular.ttf, declared with nofont-weightdescriptor — so the 300 and 700 weights it renders are synthesized by the browser, not real cuts. Shipping the genuine Light and Bold files (and declaringfont-weighton each@font-face) would fix that without changing the design.The logo artwork predates Satoshi. The wordmarks in src/ are outlined paths drawn in Montserrat Bold, so the PNGs in logos/ are still Montserrat-shaped. Re-setting the wordmark in Satoshi Bold and re-running build.sh would bring them in line.
Everything below is observed from the production implementation at https://codecave.gay (Astro v6.4.8 + Tailwind), read from computed styles rather than from source. It documents what the site does today — where it disagrees with the brand definitions above, the sections above are the intent and the site is the thing that needs to change.
The implementation exposes a single brand ramp as CSS custom properties on :root. Numbering runs
light to dark, with the accents parked mid-ramp.
| Token | HEX | Role observed |
|---|---|---|
--color-brand-0 | #e8e6f0 | Heading / primary text |
--color-brand-25 | #dfdde4 | — |
--color-brand-50 | #c6c4cc | Secondary body text |
--color-brand-100 | #645f70 | Muted / caption text |
--color-brand-105 | #585461 | — |
--color-brand-110 | #2e2c33 | — |
--color-brand-130 | #2a2637 | — |
--color-brand-200 | #b19afe | Gradient stop |
--color-brand-210 | #9980ff | Primary button fill |
--color-brand-300 | #8252fc | Gradient stop |
--color-brand-400 | #20effe | Cyan accent |
--color-brand-450 | #077689 | Deep cyan |
--color-brand-500 | #5f20fe | Primary purple — actions, borders, links |
--color-brand-580 | #5206e3 | — |
--color-brand-600 | #4004af | — |
--color-brand-650 | #33196e | — |
--color-brand-660 | #281470 | — |
--color-brand-670 | #1b0d4e | Text on light-purple fills |
--color-brand-700 | #1a0452 | — |
--color-brand-800 | #1e113b | — |
--color-brand-900 | #070312 | — |
--color-brand-910 | #0d0d0f | Card / panel surface |
--color-brand-920 | #141319 | Raised surface |
--color-brand-950 | #050505 | Page background |
| Error token | HEX |
|---|---|
--color-error-100 | #fe9a9a |
--color-error-200 | #fe2020 |
--color-error-300 | #b42318 |
--color-error-400 | #ca1400 |
Tailwind utilities map onto the ramp, so components reference intent rather than raw hex:
| Utility | Resolves to |
|---|---|
text-heading | --color-brand-0#e8e6f0 |
text-action, border-action | --color-brand-500#5f20fe |
text-error | --color-error-300#b42318 |
linear-gradient(to right,#5f20fe 0%,#8252fc 60%,#b19afe 75%,#e8e6f0 100%);Purple-to-white sweep used for emphasis rules and accents. A separate radial white-to-transparent
glow (#ffffff → rgba(223,212,249,.765) → rgba(153,128,255,0)) backs the orb motifs.
Dark-theme defaults; sizes in px with observed line-height.
| Size / LH | Weight | Usage |
|---|---|---|
| 56 / 72.8 | 700 | Hero headline |
| 44 / 50.6 | 700 | Section heading (h2) |
| 36 / 40 | 700 | Stat figures |
| 32 / 35.2 | 700 · 300 | Lead paragraph — 700 in #5f20fe as an eyebrow, 300 in #e8e6f0 as prose |
| 24 / 32 | 700 | Subsection heading (h3) |
| 20 / 28 | 700 · 400 | Emphasis / intro copy |
| 18 / 28 | 400 · 700 | Names, labels |
| 16 / 24 | 400 · 700 | Base body, button text |
| 14 / 20 | 400 | Captions, attributions (#645f70) |
Both variants are fully rounded pills at padding: 4px 24px, font-size: 16px.
| Variant | Fill | Text | Border |
|---|---|---|---|
| Primary | #9980ff (brand-210) | #000000 | none |
| Secondary | transparent | #e8e6f0, weight 700 | 1px solid #5f20fe |
Disabled state is the secondary treatment at opacity: .2 with cursor: not-allowed.
Cards sit on #0d0d0f (brand-910) against the #050505 page. Corner radii are unusually large
and vary by component family:
| Radius | Applied to |
|---|---|
24px | Default card — the dominant radius sitewide |
36px | Article / insight cards (padding: 24px) |
44px | Feature cards (padding: 24px 44px) |
12px, 8px, 3px | Inline chips, inputs, small elements |
| full | Buttons, pills, avatars |
Card padding is typically 32px 32px 48px — heavier at the bottom to seat a footer action.
| Property | Value |
|---|---|
| Container max-width | 1280px |
| Content column | 1265px |
| Section horizontal padding | 120px (desktop) |
| Section vertical rhythm | 200px top / 120px bottom |
Coming soon...
Put 3 types of the logo: squate, horizontal and vertical into the source folder. Edit the list of desired sizes for logos and icons in the build script file.







