|
13 | 13 | } |
14 | 14 |
|
15 | 15 | @media (min-width: 640px) { |
16 | | - :root { --floor-h: 2.85rem; --label-col: 3.2rem; --hall-col: 6.25rem; } |
| 16 | + :root { |
| 17 | + --floor-h: 2.85rem; |
| 18 | + --label-col: 3.2rem; |
| 19 | + --hall-col: 6.25rem; |
| 20 | + } |
17 | 21 | } |
18 | 22 | @media (prefers-reduced-motion: reduce) { |
19 | | - :root { --cabin-travel: 0ms; } |
| 23 | + :root { |
| 24 | + --cabin-travel: 0ms; |
| 25 | + } |
20 | 26 | } |
21 | 27 |
|
22 | 28 | @layer base { |
23 | | - html { color-scheme: light; } |
| 29 | + html { |
| 30 | + color-scheme: light; |
| 31 | + } |
24 | 32 | body { |
25 | 33 | @apply min-h-screen text-ink-900 font-sans antialiased; |
26 | 34 | background-color: theme('colors.paper.100'); |
27 | 35 | background-image: |
28 | | - radial-gradient(46rem 28rem at 92% -8%, rgba(0, 173, 216, 0.10), transparent 60%), |
| 36 | + radial-gradient(46rem 28rem at 92% -8%, rgba(0, 173, 216, 0.1), transparent 60%), |
29 | 37 | radial-gradient(42rem 28rem at -8% 108%, rgba(201, 121, 33, 0.07), transparent 60%), |
30 | 38 | url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.1 0 0 0 0 0.17 0 0 0 0.07 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); |
31 | 39 | } |
| 40 | + ::selection { |
| 41 | + background: theme('colors.gopher.500'); |
| 42 | + color: theme('colors.paper.50'); |
| 43 | + } |
32 | 44 | ::selection { background: theme('colors.gopher.500'); color: theme('colors.paper.50'); } |
33 | 45 | } |
34 | 46 |
|
35 | 47 | @layer components { |
36 | | - .frame { @apply mx-auto max-w-6xl px-4 sm:px-6; } |
| 48 | + .frame { |
| 49 | + @apply mx-auto max-w-6xl px-4 sm:px-6; |
| 50 | + } |
37 | 51 |
|
38 | 52 | .card { |
39 | 53 | @apply rounded-xl bg-paper-50/80 backdrop-blur-sm; |
40 | 54 | border: 1px solid var(--rule); |
41 | | - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset, 0 16px 32px -22px rgba(14, 27, 44, 0.22); |
| 55 | + box-shadow: |
| 56 | + 0 1px 0 rgba(255, 255, 255, 0.6) inset, |
| 57 | + 0 16px 32px -22px rgba(14, 27, 44, 0.22); |
42 | 58 | } |
43 | 59 |
|
44 | 60 | .btn { |
|
48 | 64 | background: theme('colors.paper.50'); |
49 | 65 | color: theme('colors.ink.900'); |
50 | 66 | } |
| 67 | + .btn:hover:not(:disabled) { |
| 68 | + border-color: theme('colors.ink.900'); |
| 69 | + } |
51 | 70 | .btn:hover:not(:disabled) { border-color: theme('colors.ink.900'); } |
52 | 71 |
|
53 | 72 | .btn-primary { |
54 | | - background: theme('colors.ink.900'); color: theme('colors.paper.50'); |
| 73 | + background: theme('colors.ink.900'); |
| 74 | + color: theme('colors.paper.50'); |
55 | 75 | border-color: theme('colors.ink.900'); |
56 | 76 | } |
| 77 | + .btn-primary:hover:not(:disabled) { |
| 78 | + background: theme('colors.gopher.500'); |
| 79 | + border-color: theme('colors.gopher.500'); |
| 80 | + color: theme('colors.ink.900'); |
| 81 | + } |
57 | 82 | .btn-primary:hover:not(:disabled) { background: theme('colors.gopher.500'); border-color: theme('colors.gopher.500'); color: theme('colors.ink.900'); } |
58 | 83 |
|
59 | 84 | .btn-danger { |
60 | | - background: theme('colors.amber.500'); color: theme('colors.paper.50'); |
| 85 | + background: theme('colors.amber.500'); |
| 86 | + color: theme('colors.paper.50'); |
61 | 87 | border-color: theme('colors.amber.500'); |
62 | 88 | } |
| 89 | + .btn-danger:hover:not(:disabled) { |
| 90 | + background: theme('colors.amber.600'); |
| 91 | + border-color: theme('colors.amber.600'); |
| 92 | + } |
63 | 93 | .btn-danger:hover:not(:disabled) { background: theme('colors.amber.600'); border-color: theme('colors.amber.600'); } |
64 | 94 |
|
65 | 95 | .btn-segment { |
|
68 | 98 | border-right: 1px solid var(--rule); |
69 | 99 | color: theme('colors.ink.500'); |
70 | 100 | } |
| 101 | + .btn-segment:last-child { |
| 102 | + border-right: 0; |
| 103 | + } |
| 104 | + .btn-segment:hover { |
| 105 | + color: theme('colors.ink.900'); |
| 106 | + background: rgba(229, 221, 196, 0.6); |
| 107 | + } |
| 108 | + .btn-segment-active { |
| 109 | + color: theme('colors.paper.50'); |
| 110 | + background: theme('colors.ink.900'); |
| 111 | + } |
| 112 | + .btn-segment-active:hover { |
| 113 | + background: theme('colors.ink.900'); |
| 114 | + color: theme('colors.paper.50'); |
| 115 | + } |
71 | 116 | .btn-segment:last-child { border-right: 0; } |
72 | 117 | .btn-segment:hover { color: theme('colors.ink.900'); background: rgba(229, 221, 196, 0.6); } |
73 | 118 | .btn-segment-active { color: theme('colors.paper.50'); background: theme('colors.ink.900'); } |
|
79 | 124 | background: theme('colors.paper.50'); |
80 | 125 | color: theme('colors.ink.900'); |
81 | 126 | } |
| 127 | + .input:focus { |
| 128 | + outline: none; |
| 129 | + border-color: theme('colors.ink.900'); |
| 130 | + box-shadow: 0 0 0 3px rgba(0, 173, 216, 0.18); |
| 131 | + } |
82 | 132 | .input:focus { outline: none; border-color: theme('colors.ink.900'); box-shadow: 0 0 0 3px rgba(0, 173, 216, 0.18); } |
83 | 133 |
|
84 | 134 | .mono { @apply font-mono tabular-nums; } |
|
99 | 149 | theme('colors.paper.50'); |
100 | 150 | border: 1px solid var(--rule); |
101 | 151 | } |
| 152 | + .eyebrow { |
| 153 | + @apply mono text-[0.66rem] uppercase tracking-[0.18em] text-ink-500; |
| 154 | + } |
| 155 | + |
| 156 | + .pill { |
| 157 | + @apply inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-[0.7rem] font-medium; |
| 158 | + border: 1px solid var(--rule); |
| 159 | + background: theme('colors.paper.50'); |
| 160 | + } |
| 161 | + .pill .dot { |
| 162 | + @apply inline-block h-1.5 w-1.5 rounded-full bg-current; |
| 163 | + } |
| 164 | + |
| 165 | + /* — Building schematic — */ |
| 166 | + .schematic { |
| 167 | + @apply relative isolate overflow-hidden rounded-lg; |
| 168 | + background: |
| 169 | + repeating-linear-gradient( |
| 170 | + 90deg, |
| 171 | + transparent 0 calc(50% - 0.5px), |
| 172 | + rgba(14, 27, 44, 0.04) calc(50% - 0.5px) calc(50% + 0.5px), |
| 173 | + transparent calc(50% + 0.5px) 100% |
| 174 | + ), |
| 175 | + theme('colors.paper.50'); |
| 176 | + border: 1px solid var(--rule); |
| 177 | + } |
102 | 178 |
|
103 | 179 | .building-grid { |
104 | 180 | display: grid; |
105 | 181 | grid-template-columns: var(--label-col) minmax(0, 1fr) var(--hall-col); |
106 | 182 | grid-auto-rows: var(--floor-h); |
107 | 183 | } |
108 | | - .building-row { @apply contents; } |
| 184 | + .building-row { |
| 185 | + @apply contents; |
| 186 | + } |
109 | 187 |
|
110 | 188 | .floor-label { |
111 | 189 | @apply mono grid place-items-center text-[0.7rem] text-ink-500; |
112 | 190 | border-right: 1px dashed var(--rule); |
113 | 191 | } |
114 | | - .floor-cell { border-top: 1px solid var(--rule-soft); } |
115 | | - .floor-cell:first-of-type { border-top: 0; } |
| 192 | + .floor-cell { |
| 193 | + border-top: 1px solid var(--rule-soft); |
| 194 | + } |
| 195 | + .floor-cell:first-of-type { |
| 196 | + border-top: 0; |
| 197 | + } |
116 | 198 | .hall-cell { |
117 | 199 | @apply flex items-center justify-end gap-1 pr-2.5; |
118 | 200 | border-left: 1px dashed var(--rule); |
|
125 | 207 | background: theme('colors.paper.50'); |
126 | 208 | color: theme('colors.ink.500'); |
127 | 209 | } |
128 | | - .hall-btn:hover { border-color: theme('colors.ink.900'); color: theme('colors.ink.900'); } |
| 210 | + .hall-btn:hover { |
| 211 | + border-color: theme('colors.ink.900'); |
| 212 | + color: theme('colors.ink.900'); |
| 213 | + } |
129 | 214 | .hall-btn-pending { |
130 | 215 | background: theme('colors.gopher.500'); |
131 | 216 | color: theme('colors.paper.50'); |
|
138 | 223 | border: 1.5px solid theme('colors.ink.900'); |
139 | 224 | background: theme('colors.paper.50'); |
140 | 225 | color: theme('colors.ink.900'); |
141 | | - transition: bottom var(--cabin-travel) var(--cabin-easing), background var(--cabin-travel) ease, color var(--cabin-travel) ease; |
| 226 | + transition: |
| 227 | + bottom var(--cabin-travel) var(--cabin-easing), |
| 228 | + background var(--cabin-travel) ease, |
| 229 | + color var(--cabin-travel) ease; |
142 | 230 | } |
143 | 231 | .cabin::before { |
144 | | - content: ""; position: absolute; inset: 3px; |
145 | | - border: 1px dashed currentColor; opacity: 0.25; border-radius: 1px; pointer-events: none; |
| 232 | + content: ''; |
| 233 | + position: absolute; |
| 234 | + inset: 3px; |
| 235 | + border: 1px dashed currentColor; |
| 236 | + opacity: 0.25; |
| 237 | + border-radius: 1px; |
| 238 | + pointer-events: none; |
146 | 239 | } |
147 | 240 | .cabin-open { |
148 | 241 | background: theme('colors.gopher.500'); |
|
162 | 255 | background: theme('colors.paper.50'); |
163 | 256 | color: theme('colors.ink.500'); |
164 | 257 | } |
165 | | - .cabin-key:hover:not(:disabled) { border-color: theme('colors.ink.900'); color: theme('colors.ink.900'); } |
| 258 | + .cabin-key:hover:not(:disabled) { |
| 259 | + border-color: theme('colors.ink.900'); |
| 260 | + color: theme('colors.ink.900'); |
| 261 | + } |
166 | 262 | .cabin-key-queued { |
167 | 263 | background: theme('colors.gopher.100'); |
168 | 264 | border-color: theme('colors.gopher.500'); |
|
180 | 276 | border-radius: 4px; |
181 | 277 | background: theme('colors.paper.50'); |
182 | 278 | } |
| 279 | + .stat dt { |
| 280 | + @apply eyebrow; |
| 281 | + } |
| 282 | + .stat dd { |
| 283 | + @apply mono text-sm font-semibold text-ink-900; |
| 284 | + } |
183 | 285 | .stat dt { @apply eyebrow; } |
184 | 286 | .stat dd { @apply mono text-sm font-semibold text-ink-900; } |
185 | 287 | } |
|
0 commit comments