|
42 | 42 | } |
43 | 43 |
|
44 | 44 | :root { |
| 45 | + --chakra-colors-brand-500: #3b82f6; /* Your brand blue */ |
| 46 | + --chakra-colors-brand-400: #60a5fa; |
45 | 47 | --radius: 0.625rem; |
46 | 48 | --background: oklch(1 0 0); |
47 | 49 | --foreground: oklch(0.145 0 0); |
|
116 | 118 | } |
117 | 119 | body { |
118 | 120 | @apply bg-background text-foreground; |
| 121 | + font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", |
| 122 | + Roboto, "Helvetica Neue", Arial; |
| 123 | + -webkit-font-smoothing: antialiased; |
| 124 | + -moz-osx-font-smoothing: grayscale; |
| 125 | + transition: background-color 220ms ease, color 220ms ease; |
| 126 | + background-image: radial-gradient(1000px 400px at 10% 10%, rgba(59,130,246,0.06), transparent), |
| 127 | + radial-gradient(800px 300px at 90% 90%, rgba(99,102,241,0.04), transparent); |
| 128 | + background-attachment: fixed; |
119 | 129 | } |
120 | 130 | button, |
121 | 131 | [role="button"] { |
122 | 132 | cursor: pointer; |
123 | 133 | } |
124 | 134 | } |
| 135 | + |
| 136 | +/* Lightweight component helpers for consistent small UI polish */ |
| 137 | +@layer components { |
| 138 | + .card { |
| 139 | + background: var(--color-card, white); |
| 140 | + color: var(--color-card-foreground, inherit); |
| 141 | + padding: 1rem; |
| 142 | + border-radius: var(--radius-md); |
| 143 | + border: 1px solid var(--color-border, rgba(0,0,0,0.06)); |
| 144 | + box-shadow: 0 6px 18px rgba(15,23,42,0.06); |
| 145 | + } |
| 146 | + |
| 147 | + .btn { |
| 148 | + display: inline-flex; |
| 149 | + align-items: center; |
| 150 | + gap: 0.5rem; |
| 151 | + padding: 0.5rem 0.9rem; |
| 152 | + border-radius: calc(var(--radius) - 4px); |
| 153 | + background-color: var(--chakra-colors-brand-500); |
| 154 | + color: white; |
| 155 | + border: none; |
| 156 | + box-shadow: 0 6px 18px rgba(59,130,246,0.12); |
| 157 | + transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease; |
| 158 | + } |
| 159 | + |
| 160 | + .btn:hover { |
| 161 | + transform: translateY(-2px); |
| 162 | + box-shadow: 0 10px 28px rgba(59,130,246,0.14); |
| 163 | + } |
| 164 | + |
| 165 | + input, |
| 166 | + textarea, |
| 167 | + select { |
| 168 | + border-radius: var(--radius-sm); |
| 169 | + padding: 0.5rem 0.75rem; |
| 170 | + border: 1px solid var(--color-border, rgba(0,0,0,0.06)); |
| 171 | + background: var(--color-input, transparent); |
| 172 | + transition: box-shadow 160ms ease, border-color 160ms ease; |
| 173 | + } |
| 174 | + |
| 175 | + input:focus, |
| 176 | + textarea:focus, |
| 177 | + select:focus { |
| 178 | + outline: none; |
| 179 | + box-shadow: 0 6px 18px rgba(59,130,246,0.08); |
| 180 | + border-color: var(--chakra-colors-brand-400); |
| 181 | + } |
| 182 | + |
| 183 | + a { |
| 184 | + color: var(--chakra-colors-brand-500); |
| 185 | + text-decoration: none; |
| 186 | + transition: color 120ms ease, text-decoration 120ms ease; |
| 187 | + } |
| 188 | + |
| 189 | + a:hover { |
| 190 | + text-decoration: underline; |
| 191 | + } |
| 192 | +} |
| 193 | + |
| 194 | +/* Banner + FAB styles */ |
| 195 | +@layer components { |
| 196 | + .ui-update-banner { |
| 197 | + border-left: 4px solid var(--chakra-colors-brand-500); |
| 198 | + background: linear-gradient(180deg, rgba(59,130,246,0.04), transparent); |
| 199 | + padding: 0.75rem 1rem; |
| 200 | + } |
| 201 | + |
| 202 | + .fab { |
| 203 | + position: fixed; |
| 204 | + right: 20px; |
| 205 | + bottom: 20px; |
| 206 | + z-index: 60; |
| 207 | + padding: 0.65rem 0.9rem; |
| 208 | + border-radius: 999px; |
| 209 | + box-shadow: 0 12px 30px rgba(2,6,23,0.18); |
| 210 | + display: inline-flex; |
| 211 | + align-items: center; |
| 212 | + gap: 0.5rem; |
| 213 | + } |
| 214 | +} |
0 commit comments