From 56ca4dcc612e6e4ad599d101199fc96dc790db28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Fri, 19 Dec 2025 22:23:03 -0600 Subject: [PATCH] feat: more accents --- packages/website-ue/astro.config.ts | 3 +- .../website-ue/src/components/HomeHero.astro | 6 +++ .../src/components/TextField/index.css | 8 ++++ .../src/components/TextField/index.tsx | 6 +++ .../website-ue/src/layouts/BaseLayout.astro | 46 ++++++++++++++++++- packages/website-ue/src/pages/api/index.astro | 3 +- packages/website-ue/src/pages/index.astro | 11 +++-- .../src/pages/styles/colors/[accent].css.ts | 35 ++++++++++++++ .../src/pages/tanks/[slug]/index.astro | 3 +- .../website-ue/src/pages/tanks/index.astro | 3 +- packages/website/astro.config.ts | 2 +- 11 files changed, 114 insertions(+), 12 deletions(-) create mode 100644 packages/website-ue/src/components/TextField/index.css create mode 100644 packages/website-ue/src/components/TextField/index.tsx create mode 100644 packages/website-ue/src/pages/styles/colors/[accent].css.ts diff --git a/packages/website-ue/astro.config.ts b/packages/website-ue/astro.config.ts index 00da3e908..9f5d73bf2 100644 --- a/packages/website-ue/astro.config.ts +++ b/packages/website-ue/astro.config.ts @@ -22,6 +22,7 @@ export default defineConfig({ vite: { server: { allowedHosts: [] }, + esbuild: { minifyIdentifiers: true, minifySyntax: false, @@ -67,7 +68,7 @@ export default defineConfig({ (strings) => strings.website.tools[stringId].name ), url: `/${tool.id}`, - icon: `public/assets/images/tools/${tool.id}.webp`, + icon: `public/assets/tools/${tool.id}.webp`, }; }), diff --git a/packages/website-ue/src/components/HomeHero.astro b/packages/website-ue/src/components/HomeHero.astro index a7bce3abd..f82f6929f 100644 --- a/packages/website-ue/src/components/HomeHero.astro +++ b/packages/website-ue/src/components/HomeHero.astro @@ -1,5 +1,6 @@ --- import "@fontsource-variable/roboto-flex/wdth.css"; +import { TextField } from "./TextField"; --- diff --git a/packages/website-ue/src/pages/api/index.astro b/packages/website-ue/src/pages/api/index.astro index 028ea78f7..e3ed04e42 100644 --- a/packages/website-ue/src/pages/api/index.astro +++ b/packages/website-ue/src/pages/api/index.astro @@ -1,4 +1,5 @@ --- +import "@radix-ui/colors/amber-dark.css"; import { createProgram, displayPartsToString, @@ -43,7 +44,7 @@ for (const fullPath in globbed) { paths.sort((a, b) => a.path.localeCompare(b.path)); --- - +

api

{ diff --git a/packages/website-ue/src/pages/index.astro b/packages/website-ue/src/pages/index.astro index 7870ff3a4..9292c7558 100644 --- a/packages/website-ue/src/pages/index.astro +++ b/packages/website-ue/src/pages/index.astro @@ -1,14 +1,15 @@ --- -import HomeHero from "../components/HomeHero.astro"; +import "@radix-ui/colors/amber-dark.css"; +import packageJson from "../../../../package.json"; import BaseLayout from "../layouts/BaseLayout.astro"; --- - - + + - +

/api

diff --git a/packages/website-ue/src/pages/styles/colors/[accent].css.ts b/packages/website-ue/src/pages/styles/colors/[accent].css.ts new file mode 100644 index 000000000..d95e23120 --- /dev/null +++ b/packages/website-ue/src/pages/styles/colors/[accent].css.ts @@ -0,0 +1,35 @@ +import * as colors from "@radix-ui/colors"; +import type { APIContext, GetStaticPaths } from "astro"; + +const ignoreEndings = ["A", "P3", "Dark", "DarkA", "DarkP3"] as const; + +const filtered = Object.keys(colors).filter( + (name) => + !ignoreEndings.some((ending) => name.endsWith(ending)) && + name !== "__esModule" +); + +export const getStaticPaths = (() => { + return filtered.map((accent) => ({ + params: { accent }, + })); +}) satisfies GetStaticPaths; + +export type Color = Exclude< + keyof typeof colors, + `${string}${(typeof ignoreEndings)[number]}` | "__esModule" +>; + +export async function GET({ params }: APIContext<{}, { accent: Color }>) { + const palette = colors[`${params.accent}Dark`]; + let content = ":root{"; + + for (const key in palette) { + const dashedKey = key.replace(/([a-zA-Z])(\d+)/, "$1-$2"); + content += `--${dashedKey}:${palette[key as keyof typeof palette]};`; + } + + content += "}"; + + return new Response(content); +} diff --git a/packages/website-ue/src/pages/tanks/[slug]/index.astro b/packages/website-ue/src/pages/tanks/[slug]/index.astro index a9734d7fb..3b6cea110 100644 --- a/packages/website-ue/src/pages/tanks/[slug]/index.astro +++ b/packages/website-ue/src/pages/tanks/[slug]/index.astro @@ -1,4 +1,5 @@ --- +import "@radix-ui/colors/violet-dark.css"; import type { GetStaticPaths } from "astro"; import { api } from "../../../core/api/dynamic"; import BaseLayout from "../../../layouts/BaseLayout.astro"; @@ -16,6 +17,6 @@ export const getStaticPaths = (async () => { const { id } = Astro.props; --- - + diff --git a/packages/website-ue/src/pages/tanks/index.astro b/packages/website-ue/src/pages/tanks/index.astro index 6419af597..f7706b2af 100644 --- a/packages/website-ue/src/pages/tanks/index.astro +++ b/packages/website-ue/src/pages/tanks/index.astro @@ -1,11 +1,12 @@ --- +import "@radix-ui/colors/violet-dark.css"; import { api } from "../../core/api/dynamic"; import BaseLayout from "../../layouts/BaseLayout.astro"; const tanksList = await api.tanks(); --- - +

tanks

{ diff --git a/packages/website/astro.config.ts b/packages/website/astro.config.ts index 07c0b288d..aaf08b1d2 100644 --- a/packages/website/astro.config.ts +++ b/packages/website/astro.config.ts @@ -12,7 +12,7 @@ import { tools } from "./src/constants/tools"; const POSSIBLE_TARGETS = ["app", "web"]; -const target = process.env.PUBLIC_TARGET ; +const target = process.env.PUBLIC_TARGET; if (!target || !POSSIBLE_TARGETS.includes(target)) { throw new Error("Invalid target");