A free, open, self-hosted app platform (GNU AGPLv3): one-click app deploys, Traefik reverse proxy with automatic SSL, rootless Docker support, gluetun VPN routing, and a web dashboard to manage it all. Free & open forever to self-host; optional paid hosted services fund it. See PROMISE.md. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Signed-off-by: librelad <librelad@digitalangels.vip>
99 lines
2.9 KiB
TypeScript
99 lines
2.9 KiB
TypeScript
import type { Config } from "tailwindcss";
|
|
import animate from "tailwindcss-animate";
|
|
|
|
const config = {
|
|
darkMode: ["class"],
|
|
content: ["./src/**/*.{ts,tsx,js,jsx,mdx}"],
|
|
theme: {
|
|
container: { center: true, padding: "2rem", screens: { "2xl": "1400px" } },
|
|
extend: {
|
|
colors: {
|
|
border: "var(--border)",
|
|
input: "var(--input)",
|
|
ring: "var(--ring)",
|
|
background: "var(--background)",
|
|
foreground: "var(--foreground)",
|
|
primary: {
|
|
DEFAULT: "var(--primary)",
|
|
foreground: "var(--primary-foreground)",
|
|
},
|
|
secondary: {
|
|
DEFAULT: "var(--secondary)",
|
|
foreground: "var(--secondary-foreground)",
|
|
},
|
|
destructive: {
|
|
DEFAULT: "var(--destructive)",
|
|
foreground: "var(--destructive-foreground)",
|
|
},
|
|
success: {
|
|
DEFAULT: "var(--success)",
|
|
foreground: "var(--success-foreground)",
|
|
},
|
|
warning: {
|
|
DEFAULT: "var(--warning)",
|
|
foreground: "var(--warning-foreground)",
|
|
},
|
|
muted: {
|
|
DEFAULT: "var(--muted)",
|
|
foreground: "var(--muted-foreground)",
|
|
},
|
|
accent: {
|
|
DEFAULT: "var(--accent)",
|
|
foreground: "var(--accent-foreground)",
|
|
},
|
|
popover: {
|
|
DEFAULT: "var(--popover)",
|
|
foreground: "var(--popover-foreground)",
|
|
},
|
|
card: {
|
|
DEFAULT: "var(--card)",
|
|
foreground: "var(--card-foreground)",
|
|
},
|
|
sidebar: {
|
|
DEFAULT: "var(--sidebar)",
|
|
foreground: "var(--sidebar-foreground)",
|
|
primary: "var(--sidebar-primary)",
|
|
"primary-foreground": "var(--sidebar-primary-foreground)",
|
|
accent: "var(--sidebar-accent)",
|
|
"accent-foreground": "var(--sidebar-accent-foreground)",
|
|
border: "var(--sidebar-border)",
|
|
ring: "var(--sidebar-ring)",
|
|
},
|
|
chart: {
|
|
"1": "var(--chart-1)",
|
|
"2": "var(--chart-2)",
|
|
"3": "var(--chart-3)",
|
|
"4": "var(--chart-4)",
|
|
"5": "var(--chart-5)",
|
|
},
|
|
},
|
|
borderRadius: {
|
|
lg: "var(--radius)",
|
|
md: "calc(var(--radius) - 2px)",
|
|
sm: "calc(var(--radius) - 4px)",
|
|
},
|
|
fontFamily: {
|
|
sans: ["var(--font-geist-sans)", "ui-sans-serif", "system-ui", "sans-serif"],
|
|
mono: ["var(--font-geist-mono)", "ui-monospace", "monospace"],
|
|
},
|
|
keyframes: {
|
|
"accordion-down": {
|
|
from: { height: "0" },
|
|
to: { height: "var(--radix-accordion-content-height)" },
|
|
},
|
|
"accordion-up": {
|
|
from: { height: "var(--radix-accordion-content-height)" },
|
|
to: { height: "0" },
|
|
},
|
|
},
|
|
animation: {
|
|
"accordion-down": "accordion-down 0.2s ease-out",
|
|
"accordion-up": "accordion-up 0.2s ease-out",
|
|
},
|
|
},
|
|
},
|
|
plugins: [animate],
|
|
} satisfies Config;
|
|
|
|
export default config;
|