solvox / src /renderer /index.css
muthuk1's picture
🎨 Complete Coinbase design system rebuild: white canvas, single blue accent, pill CTAs, editorial spacing, hairline borders, dark hero bands, asset rows, mono numbers, 96px section rhythm
5f5514e verified
@tailwind base;
@tailwind components;
@tailwind utilities;
/* ─── Reset ──────────────────────────────────────────────────────────── */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Inter', -apple-system, system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
background: #ffffff;
color: #0a0b0d;
overflow: hidden;
height: 100vh;
-webkit-app-region: drag;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
button, input, select, textarea, a, label { -webkit-app-region: no-drag; }
/* ─── Scrollbar ──────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #dee1e6; border-radius: 100px; }
::-webkit-scrollbar-thumb:hover { background: #7c828a; }
/* ─── Display Type (Inter as CoinbaseDisplay substitute) ─────────────── */
.display-text {
font-family: 'Inter', sans-serif;
font-weight: 400;
letter-spacing: -0.02em;
}
/* ─── Mono Numbers ───────────────────────────────────────────────────── */
.number-mono {
font-family: 'JetBrains Mono', 'Geist Mono', monospace;
font-weight: 500;
font-variant-numeric: tabular-nums;
}
/* ═══ COINBASE BUTTON SYSTEM ═════════════════════════════════════════ */
.btn-primary {
@apply inline-flex items-center justify-center px-5 py-3 text-button font-semibold text-on-primary rounded-pill transition-colors;
background-color: #0052ff;
}
.btn-primary:hover { background-color: #003ecc; }
.btn-primary:active { background-color: #003ecc; }
.btn-primary:disabled { background-color: #a8b8cc; cursor: not-allowed; }
.btn-primary-lg {
@apply inline-flex items-center justify-center px-8 py-4 text-button font-semibold text-on-primary rounded-pill transition-colors;
background-color: #0052ff;
height: 56px;
}
.btn-primary-lg:hover { background-color: #003ecc; }
.btn-secondary {
@apply inline-flex items-center justify-center px-5 py-3 text-button font-semibold text-ink bg-surface-strong rounded-pill transition-colors;
}
.btn-secondary:hover { background-color: #dee1e6; }
.btn-secondary-dark {
@apply inline-flex items-center justify-center px-5 py-3 text-button font-semibold text-on-dark rounded-pill transition-colors;
background-color: #16181c;
}
.btn-secondary-dark:hover { background-color: #1e2025; }
.btn-outline-dark {
@apply inline-flex items-center justify-center px-5 py-3 text-button font-semibold text-on-dark rounded-pill transition-colors border border-white/30 bg-transparent;
}
.btn-outline-dark:hover { border-color: #ffffff; }
.btn-text {
@apply inline-flex items-center justify-center px-2 py-1 font-semibold rounded-pill transition-colors bg-transparent;
color: #0052ff;
font-size: 16px;
}
.btn-text:hover { background-color: rgba(0, 82, 255, 0.06); }
/* ═══ COINBASE CARDS ═════════════════════════════════════════════════ */
.card {
@apply bg-canvas rounded-xl p-xl;
border: 1px solid #dee1e6;
}
.card-flat {
@apply bg-canvas rounded-xl p-xl;
}
.card-dark {
@apply rounded-xl p-xl;
background: #16181c;
color: #ffffff;
}
/* ═══ COINBASE FORMS ═════════════════════════════════════════════════ */
.input-field {
@apply w-full px-4 py-3.5 text-body-md bg-canvas text-ink rounded-md transition-all;
border: 1px solid #dee1e6;
height: 48px;
}
.input-field:focus {
outline: none;
border-color: #0052ff;
border-width: 2px;
padding-left: 15px; /* compensate for 2px border */
}
.input-field::placeholder { color: #7c828a; }
.search-pill {
@apply w-full px-5 py-3 text-body-sm bg-surface-strong text-ink rounded-pill transition-all;
height: 44px;
border: none;
}
.search-pill:focus { outline: none; box-shadow: 0 0 0 2px #0052ff; }
/* ═══ BADGE PILLS ════════════════════════════════════════════════════ */
.badge-pill {
@apply inline-flex items-center px-2.5 py-0.5 rounded-pill text-caption-strong uppercase tracking-wider;
background: #eef0f3;
color: #0a0b0d;
}
.badge-pill-blue {
background: rgba(0, 82, 255, 0.08);
color: #0052ff;
}
.badge-pill-green {
background: rgba(5, 177, 105, 0.08);
color: #05b169;
}
.badge-pill-red {
background: rgba(207, 32, 47, 0.08);
color: #cf202f;
}
/* ═══ DARK HERO BAND ═════════════════════════════════════════════════ */
.hero-band-dark {
background: #0a0b0d;
color: #ffffff;
padding: 96px 0;
}
/* ═══ ASSET ROW ══════════════════════════════════════════════════════ */
.asset-row {
@apply flex items-center py-4 transition-colors;
border-bottom: 1px solid #eef0f3;
}
.asset-row:hover { background: #f7f7f7; }
.asset-row:last-child { border-bottom: none; }
.asset-icon {
@apply flex items-center justify-center rounded-full;
width: 32px; height: 32px;
background: #eef0f3;
}
/* ═══ HAIRLINE DIVIDER ═══════════════════════════════════════════════ */
.hairline { @apply w-full; height: 1px; background: #dee1e6; }
.hairline-soft { @apply w-full; height: 1px; background: #eef0f3; }
/* ═══ PAGE TRANSITIONS ═══════════════════════════════════════════════ */
.page-enter { animation: page-fade 0.25s ease-out; }
@keyframes page-fade {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
/* ═══ TOGGLE SWITCH ══════════════════════════════════════════════════ */
.toggle {
@apply relative inline-flex items-center cursor-pointer;
width: 44px; height: 24px;
}
.toggle-track {
@apply w-full h-full rounded-full transition-colors;
background: #dee1e6;
}
.toggle-track.active { background: #0052ff; }
.toggle-thumb {
@apply absolute w-5 h-5 rounded-full bg-white shadow-soft transition-all;
top: 2px; left: 2px;
}
.toggle-thumb.active { left: 22px; }
/* ═══ SECTION RHYTHM ═════════════════════════════════════════════════ */
.section-light { @apply bg-canvas; padding: 96px 0; }
.section-soft { @apply bg-surface-soft; padding: 96px 0; }
.section-dark { background: #0a0b0d; color: #ffffff; padding: 96px 0; }