Files
wehub-resource-sync d25d482dc2
Publish CLI Package / publish-npm (push) Waiting to run
Publish Python SDK / publish-pypi (push) Waiting to run
Publish TypeScript SDK / publish-npm (push) Waiting to run
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:20:55 +08:00

275 lines
8.8 KiB
TypeScript

import type { Config } from 'tailwindcss'
export default {
// Nesting-aware dark variant: `dark:` utilities apply inside a `.dark` subtree
// UNLESS they sit inside a nested `.light` island. The landing page pins
// itself light (a `.light` wrapper) while the visitor's `<html>` may carry
// `.dark`; without this exclusion, `dark:` utilities on emcn components (e.g.
// the `primary` chip's `dark:bg-white`) would leak through and render
// white-on-white. `:where()` keeps specificity equal to base utilities so the
// normal (non-island) dark-mode cascade is unchanged.
darkMode: ['variant', '&:where(.dark, .dark *):not(:where(.light, .light *))'],
content: [
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
'./components/**/*.{js,ts,jsx,tsx,mdx}',
'./app/**/*.{js,ts,jsx,tsx,mdx}',
'../../packages/emcn/src/**/*.{js,ts,jsx,tsx}',
'../../packages/workflow-renderer/src/**/*.{js,ts,jsx,tsx}',
'!./app/node_modules/**',
'!**/node_modules/**',
],
theme: {
extend: {
fontFamily: {
season: ['var(--font-season)'],
body: [
'ui-sans-serif',
'-apple-system',
'system-ui',
'Segoe UI',
'Helvetica',
'Apple Color Emoji',
'Arial',
'sans-serif',
'Segoe UI Emoji',
'Segoe UI Symbol',
],
mono: [
'var(--font-martian-mono, ui-monospace)',
'SFMono-Regular',
'Menlo',
'Monaco',
'Consolas',
'"Liberation Mono"',
'"Courier New"',
'monospace',
],
},
fontSize: {
micro: '10px',
xs: '11px',
caption: '12px',
small: '13px',
base: '15px',
md: '16px',
},
spacing: {
'4.5': '18px',
},
colors: {
background: 'hsl(var(--background))',
foreground: 'hsl(var(--foreground))',
card: {
DEFAULT: 'hsl(var(--card))',
foreground: 'hsl(var(--card-foreground))',
},
popover: {
DEFAULT: 'hsl(var(--popover))',
foreground: 'hsl(var(--popover-foreground))',
},
primary: {
DEFAULT: 'hsl(var(--primary))',
foreground: 'hsl(var(--primary-foreground))',
},
secondary: {
DEFAULT: 'hsl(var(--secondary))',
foreground: 'hsl(var(--secondary-foreground))',
},
muted: {
DEFAULT: 'hsl(var(--muted))',
foreground: 'hsl(var(--muted-foreground))',
},
accent: {
DEFAULT: 'hsl(var(--accent))',
foreground: 'hsl(var(--accent-foreground))',
},
destructive: {
DEFAULT: 'hsl(var(--destructive))',
foreground: 'hsl(var(--destructive-foreground))',
},
border: 'hsl(var(--border))',
input: 'hsl(var(--input))',
ring: 'hsl(var(--ring))',
chart: {
'1': 'hsl(var(--chart-1))',
'2': 'hsl(var(--chart-2))',
'3': 'hsl(var(--chart-3))',
'4': 'hsl(var(--chart-4))',
'5': 'hsl(var(--chart-5))',
},
gray: {
50: '#fafafa',
100: '#f5f5f5',
200: '#e5e5e5',
300: '#d4d4d4',
400: '#a3a3a3',
500: '#737373',
600: '#525252',
700: '#404040',
800: '#262626',
900: '#171717',
950: '#0a0a0a',
},
},
fontWeight: {
base: 'var(--font-weight-base)',
medium: 'var(--font-weight-medium)',
semibold: 'var(--font-weight-semibold)',
},
borderRadius: {
xs: '2px',
sm: 'calc(var(--radius) - 4px)',
md: 'calc(var(--radius) - 2px)',
lg: 'var(--radius)',
},
boxShadow: {
subtle: 'var(--shadow-subtle)',
medium: 'var(--shadow-medium)',
overlay: 'var(--shadow-overlay)',
kbd: 'var(--shadow-kbd)',
'kbd-sm': 'var(--shadow-kbd-sm)',
card: 'var(--shadow-card)',
},
dropShadow: {},
transitionProperty: {
width: 'width',
left: 'left',
padding: 'padding',
},
keyframes: {
'caret-blink': {
'0%,70%,100%': {
opacity: '1',
},
'20%,50%': {
opacity: '0',
},
},
'slide-left': {
'0%': {
transform: 'translateX(0)',
},
'100%': {
transform: 'translateX(-50%)',
},
},
'slide-right': {
'0%': {
transform: 'translateX(-50%)',
},
'100%': {
transform: 'translateX(0)',
},
},
'dash-animation': {
from: {
strokeDashoffset: '0',
},
to: {
strokeDashoffset: '-24',
},
},
'placeholder-pulse': {
'0%, 100%': {
opacity: '0.5',
},
'50%': {
opacity: '0.8',
},
},
'ring-pulse': {
'0%, 100%': {
'box-shadow': '0 0 0 1.5px var(--border-success)',
},
'50%': {
'box-shadow': '0 0 0 4px var(--border-success)',
},
},
'stream-fade-in': {
from: { opacity: '0' },
to: { opacity: '1' },
},
'slide-in-right': {
from: { transform: 'translateX(40px)' },
to: { transform: 'translateX(0)' },
},
'slide-in-bottom': {
from: { opacity: '0', transform: 'translateY(20px)' },
to: { opacity: '1', transform: 'translateY(0)' },
},
'collapsible-down': {
from: { height: '0' },
to: { height: 'var(--radix-collapsible-content-height)' },
},
'collapsible-up': {
from: { height: 'var(--radix-collapsible-content-height)' },
to: { height: '0' },
},
'hero-stage-fade': {
from: { opacity: '0' },
to: { opacity: '1' },
},
'hero-cursor-press': {
'0%, 100%': { transform: 'scale(1)' },
'45%': { transform: 'scale(0.8)' },
},
'hero-modal-in': {
from: { opacity: '0', transform: 'translateY(10px) scale(0.97)' },
to: { opacity: '1', transform: 'translateY(0) scale(1)' },
},
'hero-kb-content-morph': {
from: { opacity: '0' },
to: { opacity: '1' },
},
'hero-file-drop': {
from: { opacity: '0', transform: 'translateY(-44px) scale(0.96)' },
'60%': { opacity: '1' },
to: { opacity: '1', transform: 'translateY(0) scale(1)' },
},
'hero-node-pop': {
from: { opacity: '0', transform: 'scale(0)' },
to: { opacity: '1', transform: 'scale(1)' },
},
'hero-graph-pulse': {
'0%, 100%': { transform: 'scale(1)' },
'50%': { transform: 'scale(1.22)' },
},
'hero-edge-draw': {
to: { strokeDashoffset: '0' },
},
},
animation: {
'caret-blink': 'caret-blink 1.25s ease-out infinite',
'slide-left': 'slide-left 80s linear infinite',
'slide-right': 'slide-right 80s linear infinite',
'dash-animation': 'dash-animation 1.5s linear infinite',
'placeholder-pulse': 'placeholder-pulse 1.5s ease-in-out infinite',
'ring-pulse': 'ring-pulse 1.5s ease-in-out infinite',
'stream-fade-in': 'stream-fade-in 300ms ease-out forwards',
'stream-fade-in-delayed': 'stream-fade-in 300ms ease-out 1.5s forwards',
'slide-in-right': 'slide-in-right 350ms ease-out forwards',
'slide-in-bottom': 'slide-in-bottom 400ms cubic-bezier(0.16, 1, 0.3, 1)',
'collapsible-down': 'collapsible-down 300ms cubic-bezier(0.4, 0, 0.2, 1)',
'collapsible-up': 'collapsible-up 300ms cubic-bezier(0.4, 0, 0.2, 1)',
'hero-stage-fade': 'hero-stage-fade 420ms cubic-bezier(0.23, 1, 0.32, 1) both',
'hero-cursor-press': 'hero-cursor-press 340ms cubic-bezier(0.23, 1, 0.32, 1)',
'hero-modal-in': 'hero-modal-in 320ms cubic-bezier(0.16, 1, 0.3, 1) both',
'hero-kb-content-morph':
'hero-kb-content-morph 420ms cubic-bezier(0.22, 1, 0.36, 1) 260ms forwards',
'hero-file-drop': 'hero-file-drop 480ms cubic-bezier(0.16, 1, 0.3, 1) forwards',
'hero-node-pop': 'hero-node-pop 440ms cubic-bezier(0.16, 1, 0.3, 1) forwards',
'hero-edge-draw': 'hero-edge-draw 520ms ease-out forwards',
},
},
},
plugins: [
require('tailwindcss-animate'),
require('@tailwindcss/typography'),
require('tailwindcss/plugin')(
({ addVariant }: { addVariant: (name: string, definition: string) => void }) => {
addVariant('hover-hover', '@media (hover: hover) and (pointer: fine) { &:hover }')
}
),
],
} satisfies Config