colors.ts — ui Source File
Architecture documentation for colors.ts, a typescript file in the ui codebase. 2 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 56f11136_44de_59ff_9172_8077200c483f["colors.ts"] 6802ce19_522d_e5fb_e458_8826d9f6952e["zod"] 56f11136_44de_59ff_9172_8077200c483f --> 6802ce19_522d_e5fb_e458_8826d9f6952e d9217f1b_963e_7091_c1ae_876000fcbfe9["_legacy-colors"] 56f11136_44de_59ff_9172_8077200c483f --> d9217f1b_963e_7091_c1ae_876000fcbfe9 style 56f11136_44de_59ff_9172_8077200c483f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { z } from "zod"
import { colors } from "@/registry/_legacy-colors"
const colorSchema = z.object({
name: z.string(),
id: z.string(),
scale: z.number(),
className: z.string(),
hex: z.string(),
rgb: z.string(),
hsl: z.string(),
foreground: z.string(),
oklch: z.string(),
var: z.string(),
})
const colorPaletteSchema = z.object({
name: z.string(),
colors: z.array(colorSchema),
})
export type ColorPalette = z.infer<typeof colorPaletteSchema>
export function getColorFormat(color: Color) {
return {
className: `bg-${color.name}-100`,
hex: color.hex,
rgb: color.rgb,
hsl: color.hsl,
oklch: color.oklch,
var: `--color-${color.name}-${color.scale}`,
}
}
export type ColorFormat = keyof ReturnType<typeof getColorFormat>
export function getColors() {
const tailwindColors = colorPaletteSchema.array().parse(
Object.entries(colors)
.map(([name, color]) => {
if (!Array.isArray(color)) {
return null
}
return {
name,
colors: color.map((color) => {
const rgb = color.rgb.replace(
/^rgb\((\d+),(\d+),(\d+)\)$/,
"$1 $2 $3"
)
return {
...color,
name,
id: `${name}-${color.scale}`,
className: `${name}-${color.scale}`,
var: `--color-${name}-${color.scale}`,
rgb,
hsl: color.hsl.replace(
/^hsl\(([\d.]+),([\d.]+%),([\d.]+%)\)$/,
"$1 $2 $3"
),
oklch: `oklch(${color.oklch.replace(
/^oklch\(([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\)$/,
"$1 $2 $3"
)})`,
foreground: getForegroundFromBackground(rgb),
}
}),
}
})
.filter(Boolean)
)
return tailwindColors
}
export type Color = ReturnType<typeof getColors>[number]["colors"][number]
function getForegroundFromBackground(rgb: string) {
const [r, g, b] = rgb.split(" ").map(Number)
function toLinear(number: number): number {
const base = number / 255
return base <= 0.04045
? base / 12.92
: Math.pow((base + 0.055) / 1.055, 2.4)
}
const luminance =
0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b)
return luminance > 0.179 ? "#000" : "#fff"
}
Domain
Subdomains
Dependencies
- _legacy-colors
- zod
Source
Frequently Asked Questions
What does colors.ts do?
colors.ts is a source file in the ui codebase, written in typescript. It belongs to the DocumentationAtlas domain, SearchAPI subdomain.
What functions are defined in colors.ts?
colors.ts defines 3 function(s): getColorFormat, getColors, getForegroundFromBackground.
What does colors.ts depend on?
colors.ts imports 2 module(s): _legacy-colors, zod.
Where is colors.ts in the architecture?
colors.ts is located at apps/v4/lib/colors.ts (domain: DocumentationAtlas, subdomain: SearchAPI, directory: apps/v4/lib).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free