Skip to content

Commit 38f8d0b

Browse files
ralyodioclaude
andcommitted
fix: replace slate-* with gray-* throughout — slate not in Tailwind v4 theme
Tailwind v4 only generates CSS variables for colors used in source. slate-* was producing no output; all text/bg/border classes were no-ops. Mapped slate-950 → gray-900, all other slate-N → gray-N. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 29b24e9 commit 38f8d0b

9 files changed

Lines changed: 103 additions & 103 deletions

File tree

apps/web/app/docs/page.tsx

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ export const metadata: Metadata = {
88

99
function Code({ children }: { children: React.ReactNode }) {
1010
return (
11-
<pre className="bg-slate-950 text-slate-100 rounded-lg px-4 py-3.5 text-sm font-mono leading-relaxed overflow-x-auto">
11+
<pre className="bg-gray-900 text-gray-100 rounded-lg px-4 py-3.5 text-sm font-mono leading-relaxed overflow-x-auto">
1212
<code>{children}</code>
1313
</pre>
1414
);
1515
}
1616

1717
function IC({ children }: { children: React.ReactNode }) {
1818
return (
19-
<code className="bg-slate-100 text-orange-600 text-[13px] font-mono px-1.5 py-0.5 rounded">
19+
<code className="bg-gray-100 text-orange-600 text-[13px] font-mono px-1.5 py-0.5 rounded">
2020
{children}
2121
</code>
2222
);
@@ -28,7 +28,7 @@ function Method({ verb }: { verb: string }) {
2828
POST: 'bg-green-50 text-green-700 border-green-200',
2929
};
3030
return (
31-
<span className={`inline-block border text-xs font-bold px-2 py-0.5 rounded font-mono ${colors[verb] ?? 'bg-slate-100 text-slate-700 border-slate-200'}`}>
31+
<span className={`inline-block border text-xs font-bold px-2 py-0.5 rounded font-mono ${colors[verb] ?? 'bg-gray-100 text-gray-700 border-gray-200'}`}>
3232
{verb}
3333
</span>
3434
);
@@ -42,17 +42,17 @@ function Endpoint({ method, path, desc, example, response }: {
4242
response?: string;
4343
}) {
4444
return (
45-
<div className="border border-slate-200 rounded-xl overflow-hidden">
46-
<div className="bg-slate-50 px-4 py-3 flex items-center gap-3 border-b border-slate-200">
45+
<div className="border border-gray-200 rounded-xl overflow-hidden">
46+
<div className="bg-gray-50 px-4 py-3 flex items-center gap-3 border-b border-gray-200">
4747
<Method verb={method} />
4848
<IC>{path}</IC>
4949
</div>
5050
<div className="p-4 flex flex-col gap-3">
51-
<p className="text-sm text-slate-600">{desc}</p>
51+
<p className="text-sm text-gray-600">{desc}</p>
5252
<Code>{example}</Code>
5353
{response && (
5454
<>
55-
<p className="text-xs font-semibold text-slate-400 uppercase tracking-wider">Response</p>
55+
<p className="text-xs font-semibold text-gray-400 uppercase tracking-wider">Response</p>
5656
<Code>{response}</Code>
5757
</>
5858
)}
@@ -118,22 +118,22 @@ export default function DocsPage() {
118118
{/* Sidebar */}
119119
<aside className="lg:w-48 shrink-0">
120120
<div className="lg:sticky lg:top-20">
121-
<p className="text-[11px] font-bold text-slate-400 uppercase tracking-widest mb-3 px-2">Contents</p>
121+
<p className="text-[11px] font-bold text-gray-400 uppercase tracking-widest mb-3 px-2">Contents</p>
122122
<nav className="flex flex-col gap-0.5">
123123
{nav.map((item) => (
124124
<a
125125
key={item.href}
126126
href={item.href}
127-
className={`text-sm px-2 py-1.5 rounded-lg transition-colors hover:bg-orange-50 hover:text-orange-600 text-slate-600 ${
128-
item.sub ? 'pl-5 text-[13px] text-slate-500' : 'font-medium'
127+
className={`text-sm px-2 py-1.5 rounded-lg transition-colors hover:bg-orange-50 hover:text-orange-600 text-gray-600 ${
128+
item.sub ? 'pl-5 text-[13px] text-gray-500' : 'font-medium'
129129
}`}
130130
>
131131
{item.label}
132132
</a>
133133
))}
134134
</nav>
135-
<div className="mt-6 pt-4 border-t border-slate-100">
136-
<Link href="/" className="text-xs text-slate-400 hover:text-orange-500 transition-colors px-2">
135+
<div className="mt-6 pt-4 border-t border-gray-100">
136+
<Link href="/" className="text-xs text-gray-400 hover:text-orange-500 transition-colors px-2">
137137
← Back home
138138
</Link>
139139
</div>
@@ -145,16 +145,16 @@ export default function DocsPage() {
145145

146146
{/* Header */}
147147
<div>
148-
<h1 className="text-3xl font-black text-slate-900">Documentation</h1>
149-
<p className="text-slate-500 mt-2 text-base">
148+
<h1 className="text-3xl font-black text-gray-900">Documentation</h1>
149+
<p className="text-gray-500 mt-2 text-base">
150150
Use c0upons from the web, terminal, or your own apps.
151151
</p>
152152
</div>
153153

154154
{/* Overview */}
155155
<section id="overview" className="scroll-mt-20 flex flex-col gap-5">
156-
<h2 className="text-xl font-bold text-slate-900 pb-2 border-b border-slate-100">Overview</h2>
157-
<p className="text-slate-600 leading-relaxed">
156+
<h2 className="text-xl font-bold text-gray-900 pb-2 border-b border-gray-100">Overview</h2>
157+
<p className="text-gray-600 leading-relaxed">
158158
<strong>c0upons</strong> is an open-source, community-powered coupon platform.
159159
Browse and submit deals for free on the web, or use the CLI and API to integrate
160160
savings into your own tools.
@@ -165,57 +165,57 @@ export default function DocsPage() {
165165
{ icon: '⌨️', title: 'CLI', desc: 'Search deals from your terminal' },
166166
{ icon: '🔌', title: 'API', desc: 'Integrate into your own apps' },
167167
].map((f) => (
168-
<div key={f.title} className="bg-slate-50 border border-slate-200 rounded-xl p-4">
168+
<div key={f.title} className="bg-gray-50 border border-gray-200 rounded-xl p-4">
169169
<div className="text-2xl mb-2">{f.icon}</div>
170-
<div className="font-semibold text-slate-900 text-sm">{f.title}</div>
171-
<div className="text-xs text-slate-500 mt-0.5">{f.desc}</div>
170+
<div className="font-semibold text-gray-900 text-sm">{f.title}</div>
171+
<div className="text-xs text-gray-500 mt-0.5">{f.desc}</div>
172172
</div>
173173
))}
174174
</div>
175175
</section>
176176

177177
{/* CLI */}
178178
<section id="cli" className="scroll-mt-20 flex flex-col gap-5">
179-
<h2 className="text-xl font-bold text-slate-900 pb-2 border-b border-slate-100">CLI</h2>
180-
<p className="text-slate-600 leading-relaxed">
179+
<h2 className="text-xl font-bold text-gray-900 pb-2 border-b border-gray-100">CLI</h2>
180+
<p className="text-gray-600 leading-relaxed">
181181
The <IC>c0upons</IC> CLI is a bash script that works on macOS and Linux.
182182
Requires <IC>curl</IC> and <IC>jq</IC>.
183183
</p>
184184
</section>
185185

186186
<section id="cli-install" className="scroll-mt-20 flex flex-col gap-4">
187-
<h3 className="text-base font-bold text-slate-800">Installation</h3>
187+
<h3 className="text-base font-bold text-gray-800">Installation</h3>
188188
<Code>{`curl -fsSL https://c0upons.com/install.sh | sh`}</Code>
189-
<p className="text-sm text-slate-500">
189+
<p className="text-sm text-gray-500">
190190
Installs to <IC>/usr/local/bin/c0upons</IC> (or <IC>~/.local/bin</IC> without sudo).
191191
</p>
192192

193-
<h3 className="text-base font-bold text-slate-800 mt-2">Upgrade</h3>
193+
<h3 className="text-base font-bold text-gray-800 mt-2">Upgrade</h3>
194194
<Code>{`c0upons upgrade`}</Code>
195195

196-
<h3 className="text-base font-bold text-slate-800 mt-2">Uninstall</h3>
196+
<h3 className="text-base font-bold text-gray-800 mt-2">Uninstall</h3>
197197
<Code>{`c0upons remove`}</Code>
198198

199-
<h3 className="text-base font-bold text-slate-800 mt-2">Dependencies</h3>
200-
<div className="border border-slate-200 rounded-lg overflow-hidden text-sm">
199+
<h3 className="text-base font-bold text-gray-800 mt-2">Dependencies</h3>
200+
<div className="border border-gray-200 rounded-lg overflow-hidden text-sm">
201201
<table className="w-full border-collapse">
202-
<thead className="bg-slate-50">
202+
<thead className="bg-gray-50">
203203
<tr>
204-
<th className="text-left px-4 py-2.5 text-slate-500 font-medium border-b border-slate-200">Tool</th>
205-
<th className="text-left px-4 py-2.5 text-slate-500 font-medium border-b border-slate-200">Required</th>
206-
<th className="text-left px-4 py-2.5 text-slate-500 font-medium border-b border-slate-200">Install</th>
204+
<th className="text-left px-4 py-2.5 text-gray-500 font-medium border-b border-gray-200">Tool</th>
205+
<th className="text-left px-4 py-2.5 text-gray-500 font-medium border-b border-gray-200">Required</th>
206+
<th className="text-left px-4 py-2.5 text-gray-500 font-medium border-b border-gray-200">Install</th>
207207
</tr>
208208
</thead>
209-
<tbody className="divide-y divide-slate-100">
209+
<tbody className="divide-y divide-gray-100">
210210
{[
211211
{ tool: 'curl', req: 'Yes', install: 'Pre-installed on most systems' },
212212
{ tool: 'jq', req: 'Yes', install: 'brew install jq · apt install jq' },
213213
{ tool: 'python3', req: 'Optional', install: 'Used for URL encoding fallback' },
214214
].map((row) => (
215215
<tr key={row.tool}>
216216
<td className="px-4 py-2.5"><IC>{row.tool}</IC></td>
217-
<td className="px-4 py-2.5 text-slate-600">{row.req}</td>
218-
<td className="px-4 py-2.5 text-slate-500">{row.install}</td>
217+
<td className="px-4 py-2.5 text-gray-600">{row.req}</td>
218+
<td className="px-4 py-2.5 text-gray-500">{row.install}</td>
219219
</tr>
220220
))}
221221
</tbody>
@@ -224,31 +224,31 @@ export default function DocsPage() {
224224
</section>
225225

226226
<section id="cli-commands" className="scroll-mt-20 flex flex-col gap-6">
227-
<h3 className="text-base font-bold text-slate-800">Commands</h3>
227+
<h3 className="text-base font-bold text-gray-800">Commands</h3>
228228
{CLI_COMMANDS.map((item) => (
229229
<div key={item.cmd} className="flex flex-col gap-2">
230230
<IC>{item.cmd}</IC>
231-
<p className="text-sm text-slate-600">{item.desc}</p>
231+
<p className="text-sm text-gray-600">{item.desc}</p>
232232
<Code>{item.example}</Code>
233233
</div>
234234
))}
235235

236236
<div className="mt-2">
237-
<h3 className="text-base font-bold text-slate-800 mb-3">Environment</h3>
238-
<div className="border border-slate-200 rounded-lg overflow-hidden text-sm">
237+
<h3 className="text-base font-bold text-gray-800 mb-3">Environment</h3>
238+
<div className="border border-gray-200 rounded-lg overflow-hidden text-sm">
239239
<table className="w-full border-collapse">
240-
<thead className="bg-slate-50">
240+
<thead className="bg-gray-50">
241241
<tr>
242-
<th className="text-left px-4 py-2.5 text-slate-500 font-medium border-b border-slate-200">Variable</th>
243-
<th className="text-left px-4 py-2.5 text-slate-500 font-medium border-b border-slate-200">Default</th>
244-
<th className="text-left px-4 py-2.5 text-slate-500 font-medium border-b border-slate-200">Description</th>
242+
<th className="text-left px-4 py-2.5 text-gray-500 font-medium border-b border-gray-200">Variable</th>
243+
<th className="text-left px-4 py-2.5 text-gray-500 font-medium border-b border-gray-200">Default</th>
244+
<th className="text-left px-4 py-2.5 text-gray-500 font-medium border-b border-gray-200">Description</th>
245245
</tr>
246246
</thead>
247247
<tbody>
248248
<tr>
249249
<td className="px-4 py-2.5"><IC>C0UPONS_API</IC></td>
250-
<td className="px-4 py-2.5 text-slate-500 font-mono text-xs">https://c0upons.com/api</td>
251-
<td className="px-4 py-2.5 text-slate-500">Override the API base URL</td>
250+
<td className="px-4 py-2.5 text-gray-500 font-mono text-xs">https://c0upons.com/api</td>
251+
<td className="px-4 py-2.5 text-gray-500">Override the API base URL</td>
252252
</tr>
253253
</tbody>
254254
</table>
@@ -258,15 +258,15 @@ export default function DocsPage() {
258258

259259
{/* API */}
260260
<section id="api" className="scroll-mt-20 flex flex-col gap-5">
261-
<h2 className="text-xl font-bold text-slate-900 pb-2 border-b border-slate-100">REST API</h2>
262-
<p className="text-slate-600 leading-relaxed">
261+
<h2 className="text-xl font-bold text-gray-900 pb-2 border-b border-gray-100">REST API</h2>
262+
<p className="text-gray-600 leading-relaxed">
263263
No authentication required for read operations. Base URL:{' '}
264264
<IC>https://c0upons.com/api</IC>
265265
</p>
266266
</section>
267267

268268
<section id="api-coupons" className="scroll-mt-20 flex flex-col gap-4">
269-
<h3 className="text-base font-bold text-slate-800">Coupons</h3>
269+
<h3 className="text-base font-bold text-gray-800">Coupons</h3>
270270
<Endpoint
271271
method="GET"
272272
path="/api/coupons"
@@ -304,7 +304,7 @@ export default function DocsPage() {
304304
</section>
305305

306306
<section id="api-stores" className="scroll-mt-20 flex flex-col gap-4">
307-
<h3 className="text-base font-bold text-slate-800">Stores</h3>
307+
<h3 className="text-base font-bold text-gray-800">Stores</h3>
308308
<Endpoint
309309
method="GET"
310310
path="/api/stores"
@@ -320,7 +320,7 @@ export default function DocsPage() {
320320
</section>
321321

322322
<section id="api-search" className="scroll-mt-20 flex flex-col gap-4">
323-
<h3 className="text-base font-bold text-slate-800">Search</h3>
323+
<h3 className="text-base font-bold text-gray-800">Search</h3>
324324
<Endpoint
325325
method="GET"
326326
path="/api/search?q=query"
@@ -331,8 +331,8 @@ export default function DocsPage() {
331331

332332
{/* Contributing */}
333333
<section id="contributing" className="scroll-mt-20 flex flex-col gap-5">
334-
<h2 className="text-xl font-bold text-slate-900 pb-2 border-b border-slate-100">Contributing</h2>
335-
<p className="text-slate-600 leading-relaxed">
334+
<h2 className="text-xl font-bold text-gray-900 pb-2 border-b border-gray-100">Contributing</h2>
335+
<p className="text-gray-600 leading-relaxed">
336336
c0upons is open source. Contributions are welcome — submit coupons via the web, report
337337
bugs, or open a pull request.
338338
</p>
@@ -347,12 +347,12 @@ export default function DocsPage() {
347347
href="https://github.com/profullstack/c0upons"
348348
target="_blank"
349349
rel="noopener noreferrer"
350-
className="flex-1 border border-slate-200 hover:border-slate-300 text-slate-700 text-sm font-semibold px-4 py-3 rounded-lg text-center transition-colors"
350+
className="flex-1 border border-gray-200 hover:border-gray-300 text-gray-700 text-sm font-semibold px-4 py-3 rounded-lg text-center transition-colors"
351351
>
352352
View on GitHub ↗
353353
</a>
354354
</div>
355-
<h3 className="text-base font-bold text-slate-800 mt-2">Submit via API</h3>
355+
<h3 className="text-base font-bold text-gray-800 mt-2">Submit via API</h3>
356356
<Code>{`curl -X POST https://c0upons.com/api/coupons \\
357357
-H "Content-Type: application/json" \\
358358
-d '{"store_id": 1, "title": "15% off everything", "code": "GET15"}'`}</Code>

apps/web/app/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export default function RootLayout({
3232
}>) {
3333
return (
3434
<html lang="en">
35-
<body className={`${geist.className} bg-white text-slate-900 antialiased overflow-x-hidden`}>
35+
<body className={`${geist.className} bg-white text-gray-900 antialiased overflow-x-hidden`}>
3636
<Header />
3737
<main className="max-w-7xl mx-auto px-4 py-10">{children}</main>
3838
<Footer />

0 commit comments

Comments
 (0)