af126c7feat: tailwind theme and the first components25d | 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 | |
| 22 | |
| 23 | |
| 24 | |
| 25 | |
979134bfeat: code reads as code, in classes rather than colours17h | 26 | |
| 27 | |
| 28 | |
af126c7feat: tailwind theme and the first components25d | 29 | |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
| 34 | |
| 35 | |
| 36 | @import "tailwindcss"; |
| 37 | |
| 38 | |
| 39 | |
| 40 | @source "./src*.rs"; |
| 41 | |
| 42 | |
| 43 | |
| 44 | @custom-variant dark (&:is(.dark *)); |
| 45 | |
| 46 | |
| 47 | |
| 48 | |
| 49 | @theme inline { |
| 50 | --font-sans: "Geist", ui-sans-serif, system-ui, sans-serif; |
| 51 | |
| 52 | --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace; |
| 53 | --color-background: var(--background); |
| 54 | --color-surface: var(--surface); |
| 55 | --color-foreground: var(--foreground); |
| 56 | --color-muted-foreground: var(--muted-foreground); |
| 57 | --color-primary: var(--primary); |
| 58 | --color-primary-foreground: var(--primary-foreground); |
| 59 | --color-success: var(--success); |
| 60 | --color-success-foreground: var(--success-foreground); |
| 61 | --color-warning: var(--warning); |
| 62 | --color-warning-foreground: var(--warning-foreground); |
| 63 | --color-destructive: var(--destructive); |
| 64 | --color-destructive-foreground: var(--destructive-foreground); |
| 65 | --color-border: var(--border); |
| 66 | --color-ring: var(--ring); |
| 67 | --shadow-xs: var(--shadow-xs); |
| 68 | --shadow-sm: var(--shadow-sm); |
| 69 | } |
| 70 | |
| 71 | |
| 72 | :root { |
| 73 | --background: oklch(0.99 0.003 260); |
| 74 | --surface: oklch(1 0 0); |
| 75 | --foreground: oklch(0.24 0.012 260); |
| 76 | --muted-foreground: oklch(0.51 0.014 260); |
| 77 | --primary: oklch(0.5 0.18 250); |
| 78 | --primary-foreground: oklch(0.99 0.003 260); |
| 79 | --success: oklch(0.52 0.15 145); |
| 80 | --success-foreground: oklch(0.99 0.01 145); |
| 81 | --warning: oklch(0.62 0.14 85); |
| 82 | --warning-foreground: oklch(0.99 0.01 85); |
| 83 | --destructive: oklch(0.55 0.2 27); |
| 84 | --destructive-foreground: oklch(0.99 0.012 27); |
| 85 | --border: oklch(0.9 0.008 260); |
| 86 | --ring: oklch(0.5 0.18 250); |
| 87 | --shadow-xs: 0 1px 2px oklch(0.24 0.02 260 / 12%); |
| 88 | --shadow-sm: |
| 89 | 0 1px 2px oklch(0.24 0.02 260 / 10%), |
| 90 | 0 2px 8px -2px oklch(0.24 0.02 260 / 9%); |
979134bfeat: code reads as code, in classes rather than colours17h | 91 | |
| 92 | --syntax-comment: oklch(0.55 0.015 260); |
| 93 | --syntax-punctuation: oklch(0.46 0.015 260); |
| 94 | --syntax-variable: oklch(0.3 0.014 260); |
| 95 | --syntax-type: oklch(0.45 0.09 195); |
| 96 | --syntax-function: oklch(0.48 0.15 250); |
| 97 | --syntax-constant: oklch(0.5 0.12 62); |
| 98 | --syntax-string: oklch(0.45 0.12 150); |
| 99 | --syntax-keyword: oklch(0.45 0.17 300); |
| 100 | --syntax-heading: oklch(0.42 0.16 250); |
af126c7feat: tailwind theme and the first components25d | 101 | } |
| 102 | |
| 103 | |
| 104 | .dark { |
| 105 | --background: oklch(0.16 0.02 260); |
| 106 | --surface: oklch(0.2 0.02 260); |
| 107 | --foreground: oklch(0.9 0.01 260); |
| 108 | --muted-foreground: oklch(0.66 0.014 260); |
| 109 | --primary: oklch(0.65 0.15 250); |
| 110 | --primary-foreground: oklch(0.16 0.02 260); |
| 111 | --success: oklch(0.7 0.17 145); |
| 112 | --success-foreground: oklch(0.16 0.02 145); |
| 113 | --warning: oklch(0.8 0.15 85); |
| 114 | --warning-foreground: oklch(0.16 0.02 85); |
| 115 | --destructive: oklch(0.65 0.2 25); |
| 116 | --destructive-foreground: oklch(0.14 0.02 25); |
| 117 | --border: oklch(0.3 0.012 260); |
| 118 | --ring: oklch(0.65 0.15 250); |
| 119 | |
| 120 | --shadow-xs: 0 1px 2px oklch(0 0 0 / 35%); |
| 121 | --shadow-sm: 0 1px 2px oklch(0 0 0 / 35%), 0 2px 8px -2px oklch(0 0 0 / 30%); |
979134bfeat: code reads as code, in classes rather than colours17h | 122 | |
| 123 | --syntax-comment: oklch(0.6 0.014 260); |
| 124 | --syntax-punctuation: oklch(0.72 0.014 260); |
| 125 | --syntax-variable: oklch(0.86 0.02 260); |
| 126 | --syntax-type: oklch(0.82 0.08 195); |
| 127 | --syntax-function: oklch(0.78 0.11 240); |
| 128 | --syntax-constant: oklch(0.82 0.11 70); |
| 129 | --syntax-string: oklch(0.78 0.12 150); |
| 130 | --syntax-keyword: oklch(0.75 0.12 300); |
| 131 | --syntax-heading: oklch(0.75 0.13 250); |
af126c7feat: tailwind theme and the first components25d | 132 | } |
| 133 | |
| 134 | @layer base { |
| 135 | body { |
| 136 | @apply bg-background font-sans text-foreground; |
| 137 | } |
| 138 | } |
979134bfeat: code reads as code, in classes rather than colours17h | 139 | |
| 140 | |
| 141 | |
| 142 | |
| 143 | |
| 144 | |
| 145 | |
| 146 | |
| 147 | |
| 148 | |
| 149 | |
| 150 | |
| 151 | |
| 152 | |
| 153 | |
| 154 | |
| 155 | |
| 156 | |
| 157 | |
| 158 | .hl-punctuation, |
| 159 | .hl-keyword.hl-operator { |
| 160 | color: var(--syntax-punctuation); |
| 161 | } |
| 162 | |
| 163 | .hl-variable, |
| 164 | .hl-entity.hl-other.hl-attribute-name { |
| 165 | color: var(--syntax-variable); |
| 166 | } |
| 167 | |
| 168 | .hl-entity.hl-name, |
| 169 | .hl-support.hl-function { |
| 170 | color: var(--syntax-function); |
| 171 | } |
| 172 | |
| 173 | .hl-entity.hl-name.hl-type, |
| 174 | .hl-entity.hl-name.hl-class, |
| 175 | .hl-entity.hl-name.hl-struct, |
| 176 | .hl-entity.hl-name.hl-enum, |
| 177 | .hl-entity.hl-name.hl-trait, |
| 178 | .hl-entity.hl-name.hl-namespace, |
| 179 | .hl-support.hl-type, |
| 180 | .hl-support.hl-class { |
| 181 | color: var(--syntax-type); |
| 182 | } |
| 183 | |
| 184 | .hl-constant, |
| 185 | .hl-support.hl-constant { |
| 186 | color: var(--syntax-constant); |
| 187 | } |
| 188 | |
| 189 | .hl-storage, |
| 190 | .hl-keyword, |
| 191 | .hl-entity.hl-name.hl-tag { |
| 192 | color: var(--syntax-keyword); |
| 193 | } |
| 194 | |
| 195 | .hl-string { |
| 196 | color: var(--syntax-string); |
| 197 | } |
| 198 | |
| 199 | |
| 200 | |
| 201 | .hl-markup.hl-heading { |
| 202 | color: var(--syntax-heading); |
| 203 | font-weight: 600; |
| 204 | } |
| 205 | |
| 206 | .hl-markup.hl-raw { |
| 207 | color: var(--syntax-string); |
| 208 | } |
| 209 | |
| 210 | .hl-markup.hl-underline.hl-link { |
| 211 | color: var(--syntax-function); |
| 212 | } |
| 213 | |
| 214 | .hl-markup.hl-bold { |
| 215 | font-weight: 600; |
| 216 | } |
| 217 | |
| 218 | .hl-markup.hl-italic { |
| 219 | font-style: italic; |
| 220 | } |
| 221 | |
| 222 | |
| 223 | .hl-comment { |
| 224 | color: var(--syntax-comment); |
| 225 | } |
| 226 | |
| 227 | .hl-invalid { |
| 228 | color: var(--destructive); |
| 229 | } |
2268309feat: a commit is a page, and two revisions can be compared17h | 230 | |
| 231 | |
| 232 | |
| 233 | |
| 234 | |
| 235 | |
| 236 | |
| 237 | |
| 238 | |
| 239 | |
| 240 | |
| 241 | |
| 242 | .diff-line-add { |
| 243 | background-color: color-mix(in oklab, var(--success) 12%, transparent); |
| 244 | } |
| 245 | |
| 246 | .diff-line-del { |
| 247 | background-color: color-mix(in oklab, var(--destructive) 12%, transparent); |
| 248 | } |
| 249 | |
| 250 | .diff-gutter-add { |
| 251 | background-color: color-mix(in oklab, var(--success) 20%, transparent); |
| 252 | } |
| 253 | |
| 254 | .diff-gutter-del { |
| 255 | background-color: color-mix(in oklab, var(--destructive) 20%, transparent); |
| 256 | } |
| 257 | |
| 258 | |
| 259 | |
| 260 | .diff-line-hunk td { |
| 261 | border-top: 1px solid var(--border); |
| 262 | padding-top: 0.25rem; |
| 263 | padding-bottom: 0.25rem; |
| 264 | } |
| 265 | |
| 266 | .diff-line-hunk:first-child td { |
| 267 | border-top: 0; |
| 268 | } |