Files
authentik/pnpm-workspace.yaml
Teffen Ellis 189a2804c2 packages/theme: add the @goauthentik/theme design-system package (#23341)
* packages/fonts: add @goauthentik/fonts package

Extract the bundled web fonts out of web/ into a dedicated
@goauthentik/fonts workspace package: the RedHat variable faces, the
PatternFly pficon icon face, and the FontAwesome Free solid face, each
with its upstream license recorded under licenses/.

web/ now pulls the faces and icons from the package's
@goauthentik/fonts/faces.css and @goauthentik/fonts/icons.css entry
points instead of the old #fonts/* import and the inlined pficon.scss
vendor sheet.

Anchor esbuild's [dir] at the monorepo root via outbase so assets pulled
from the out-of-web package no longer resolve to a "_.._" segment, which
Go's //go:embed silently drops from the embedded outpost build.

Co-Authored-By: Ken Sternberg <ken@goauthentik.io>

* packages/theme: add @goauthentik/theme design-system package

Add @goauthentik/theme, which defines authentik's design tokens (color,
typography, fonts, spacing, shape, shadow, motion, z-index) in TypeScript
and builds them into CSS via styleframe.

Token names carry a distinct separator per category so the token type is
recoverable from the name alone. That is worth the verbosity: it keeps
the DX legible and leaves room for automatic theme management and future
tooling built on top of the token set.

Co-Authored-By: Ken Sternberg <ken@goauthentik.io>

* web/theme: add a demo page for the theme tokens

Add a self-contained demo page, built by build-demo.mjs, that renders
every theme token — colors, typography, spacing, shape, shadow, motion —
so the design system can be eyeballed in isolation while it evolves.

Co-Authored-By: Ken Sternberg <ken@goauthentik.io>

* Heal lockfile.

* Fix spelling.

* Fix grouping.

---------

Co-authored-by: Ken Sternberg <ken@goauthentik.io>
2026-08-15 00:16:34 +01:00

59 lines
1.9 KiB
YAML

packages:
- "packages/docusaurus-config"
- "packages/esbuild-plugin-live-reload"
- "packages/eslint-config"
- "packages/fonts"
- "packages/geo"
- "packages/logger-js"
- "packages/prettier-config"
- "packages/theme"
- "packages/tsconfig"
- "lifecycle/aws"
# Shared version references for the `catalog:` protocol. Workspace members reference
# these via `catalog:`, and overrides pin transitive deps to the same versions.
# `scripts/node/lint-catalogs.ts` keeps them in sync with the other workspace roots.
catalog:
"@eslint/js": "^9.39.5"
"@playwright/test": "^1.62.1"
"@typescript-eslint/eslint-plugin": "^8.65.0"
"@typescript-eslint/parser": "^8.65.0"
"@typescript-eslint/utils": "^8.65.0"
"@types/node": "^26.1.2"
"@vitest/browser": "^4.1.10"
"@vitest/browser-playwright": "^4.1.10"
esbuild: "^0.28.1"
eslint: "^9.39.5"
playwright: "^1.62.1"
prettier: "3.8.3"
prettier-plugin-packagejson: "^3.0.2"
typescript: "^6.0.3"
typescript-eslint: "^8.65.0"
vite: "^8.2.0"
vitest: "^4.1.10"
overrides:
"@typescript-eslint/eslint-plugin>typescript": "catalog:"
"@typescript-eslint/parser>typescript": "catalog:"
"format-imports>eslint": "catalog:"
"typescript-eslint>typescript": "catalog:"
# Allow-list of dependencies whose install/postinstall scripts may run.
# Everything else is blocked, replacing the prior `ignore-scripts=true` +
# `npm rebuild --foreground-scripts <pkg>` pattern from #20400. Each entry is
# audited at review time — adding a package here grants it arbitrary code
# execution at install.
onlyBuiltDependencies:
- esbuild
# Explicit approval map for pnpm 11+. `true` = allowed (mirror onlyBuiltDependencies);
# `false` = explicitly declined (silences the "pending approval" prompt
# without running the script).
allowBuilds:
core-js: false
esbuild: true
minimumReleaseAgeExclude:
- playwright-core@1.62.1
- playwright@1.62.1