Files
airship/apps/web/src/lib/cn.ts
Nayan 6611c6b21c feat(web): the tanstack start app shell
apps/web is both airship's home page and the app `make run` points the CLI at —
which makes the site the thing that gets edited during development, and therefore
the first place a regression in the editor shows up.

routeTree.gen.ts is generated and committed on purpose so a clean checkout
typechecks without a build first; preflight regenerates and diffs it, because
committed generated files drift.
2026-08-08 13:54:00 +05:30

13 lines
579 B
TypeScript

/**
* Join class names, dropping anything falsy.
*
* Deliberately not `clsx` and deliberately not `tailwind-merge`: this page is a
* CSS-first port whose class names are semantic (`.step-card`, `.toc-link`), not
* utility soup, so there are no conflicting Tailwind utilities to resolve and
* nothing to gain from a merge pass. Objects and nested arrays are unsupported
* for the same reason — if a call site wants one, it can spread it itself.
*/
export function cn(...parts: (string | false | null | undefined)[]): string {
return parts.filter(Boolean).join(" ");
}