@tociva/tailng-theme 0.6.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,163 @@
1
+ # @tociva/tailng-theme
2
+
3
+ Tailwind CSS preset and design tokens for Tailng components.
4
+
5
+ ## Overview
6
+
7
+ `@tociva/tailng-theme` provides a shared Tailwind CSS configuration used by Tailng components and applications. It defines colors, typography, spacing, border radius, and other design tokens in a reusable preset that ensures consistency across your application.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install @tociva/tailng-theme
13
+ ```
14
+
15
+ ## Peer Dependencies
16
+
17
+ - `tailwindcss`: ^3.4.0
18
+
19
+ ## Features
20
+
21
+ - CSS variable-based theming
22
+ - Consistent design tokens (colors, spacing, radius)
23
+ - Tailwind preset for easy integration
24
+ - Type-safe design tokens (TypeScript)
25
+ - Light and dark mode support ready
26
+
27
+ ## Usage
28
+
29
+ ### Basic Setup
30
+
31
+ Add the preset to your `tailwind.config.js`:
32
+
33
+ ```javascript
34
+ /** @type {import('tailwindcss').Config} */
35
+ module.exports = {
36
+ presets: [
37
+ require('@tociva/tailng-theme/tailwind/preset'),
38
+ ],
39
+ content: [
40
+ './src/**/*.{html,ts}',
41
+ ],
42
+ theme: {
43
+ extend: {},
44
+ },
45
+ plugins: [],
46
+ };
47
+ ```
48
+
49
+ ### With Custom Theme
50
+
51
+ Extend the preset with your own theme:
52
+
53
+ ```javascript
54
+ /** @type {import('tailwindcss').Config} */
55
+ module.exports = {
56
+ presets: [
57
+ require('@tociva/tailng-theme/tailwind/preset'),
58
+ ],
59
+ theme: {
60
+ extend: {
61
+ colors: {
62
+ primary: 'var(--color-primary, #2563eb)',
63
+ },
64
+ borderRadius: {
65
+ tng: 'var(--radius, 0.25rem)',
66
+ },
67
+ },
68
+ },
69
+ };
70
+ ```
71
+
72
+ ### CSS Variables
73
+
74
+ Define your theme variables in your global CSS:
75
+
76
+ ```css
77
+ :root {
78
+ --color-primary: #2563eb;
79
+ --radius: 0.25rem;
80
+ --surface: #ffffff;
81
+ --surface-2: #f8fafc;
82
+ }
83
+
84
+ /* Dark mode */
85
+ @media (prefers-color-scheme: dark) {
86
+ :root {
87
+ --color-primary: #3b82f6;
88
+ --surface: #1e293b;
89
+ --surface-2: #0f172a;
90
+ }
91
+ }
92
+ ```
93
+
94
+ ### Design Tokens
95
+
96
+ Import and use design tokens in TypeScript:
97
+
98
+ ```typescript
99
+ import { tailngTokens } from '@tociva/tailng-theme';
100
+
101
+ // Use tokens programmatically
102
+ const radius = tailngTokens.radius.md; // '0.25rem'
103
+ ```
104
+
105
+ ## Available Tokens
106
+
107
+ ### Border Radius
108
+
109
+ - `sm`: `0.125rem`
110
+ - `md`: `0.25rem`
111
+ - `lg`: `0.5rem`
112
+
113
+ ### Colors
114
+
115
+ The preset uses CSS variables for colors, allowing easy theming:
116
+
117
+ - `primary`: `var(--color-primary, #2563eb)`
118
+ - Custom colors can be added via CSS variables
119
+
120
+ ## Preset Structure
121
+
122
+ The preset extends Tailwind's default theme with:
123
+
124
+ - **Colors**: CSS variable-based primary color
125
+ - **Border Radius**: Consistent radius values
126
+ - **Spacing**: Standard spacing scale (can be extended)
127
+
128
+ ## Customization
129
+
130
+ ### Override Default Values
131
+
132
+ ```javascript
133
+ module.exports = {
134
+ presets: [require('@tociva/tailng-theme/tailwind/preset')],
135
+ theme: {
136
+ extend: {
137
+ colors: {
138
+ primary: '#your-color', // Override default
139
+ },
140
+ },
141
+ },
142
+ };
143
+ ```
144
+
145
+ ### Add Custom Variables
146
+
147
+ ```css
148
+ :root {
149
+ --color-primary: #your-primary-color;
150
+ --color-secondary: #your-secondary-color;
151
+ --radius: 0.5rem;
152
+ }
153
+ ```
154
+
155
+ ## Related Packages
156
+
157
+ - [`@tociva/tailng-ui`](../ui/README.md) - UI components that use this theme
158
+ - [`@tociva/tailng-icons`](../icons/README.md) - Icon components
159
+ - [`@tociva/tailng-cdk`](../cdk/README.md) - Component development kit
160
+
161
+ ## License
162
+
163
+ MIT
@@ -0,0 +1,49 @@
1
+ const radii = {
2
+ sm: 'var(--radius-sm)',
3
+ md: 'var(--radius-md)',
4
+ lg: 'var(--radius-lg)',
5
+ };
6
+ const motion = {
7
+ fast: 'var(--duration-fast)',
8
+ normal: 'var(--duration-normal)',
9
+ slow: 'var(--duration-slow)',
10
+ };
11
+
12
+ const colors = {
13
+ bg: 'var(--background-color)',
14
+ fg: 'var(--text-color)',
15
+ border: 'var(--border-color)',
16
+ primary: 'var(--primary-color)',
17
+ danger: 'var(--danger-color)',
18
+ warning: 'var(--warning-color)',
19
+ success: 'var(--success-color)',
20
+ info: 'var(--info-color)',
21
+ };
22
+
23
+ /**
24
+ * Tailwind preset for @tailng/theme.
25
+ * Map Tailwind colors to CSS variables (no hardcoded colors here).
26
+ */
27
+ const tailngPreset = {
28
+ theme: {
29
+ extend: {
30
+ colors: {
31
+ bg: 'var(--background-color)',
32
+ fg: 'var(--text-color)',
33
+ border: 'var(--border-color)',
34
+ primary: 'var(--primary-color)',
35
+ danger: 'var(--danger-color)',
36
+ warning: 'var(--warning-color)',
37
+ success: 'var(--success-color)',
38
+ info: 'var(--info-color)',
39
+ },
40
+ },
41
+ },
42
+ };
43
+
44
+ /**
45
+ * Generated bundle index. Do not edit.
46
+ */
47
+
48
+ export { colors, motion, radii, tailngPreset };
49
+ //# sourceMappingURL=tociva-tailng-theme.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tociva-tailng-theme.mjs","sources":["../../../../libs/theme/src/scales/scales.ts","../../../../libs/theme/src/scales/colors.ts","../../../../libs/theme/src/tailwind/tailwind.preset.ts","../../../../libs/theme/src/tociva-tailng-theme.ts"],"sourcesContent":["export const radii = {\n sm: 'var(--radius-sm)',\n md: 'var(--radius-md)',\n lg: 'var(--radius-lg)',\n} as const;\n\nexport const motion = {\n fast: 'var(--duration-fast)',\n normal: 'var(--duration-normal)',\n slow: 'var(--duration-slow)',\n} as const;\n","export const colors = {\n bg: 'var(--background-color)',\n fg: 'var(--text-color)',\n border: 'var(--border-color)',\n\n primary: 'var(--primary-color)',\n danger: 'var(--danger-color)',\n warning: 'var(--warning-color)',\n success: 'var(--success-color)',\n info: 'var(--info-color)',\n} as const;\n","import type { Config } from 'tailwindcss';\n\n/**\n * Tailwind preset for @tailng/theme.\n * Map Tailwind colors to CSS variables (no hardcoded colors here).\n */\nexport const tailngPreset: Partial<Config> = {\n theme: {\n extend: {\n colors: {\n bg: 'var(--background-color)',\n fg: 'var(--text-color)',\n border: 'var(--border-color)',\n\n primary: 'var(--primary-color)',\n danger: 'var(--danger-color)',\n warning: 'var(--warning-color)',\n success: 'var(--success-color)',\n info: 'var(--info-color)',\n },\n },\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAO,MAAM,KAAK,GAAG;AACnB,IAAA,EAAE,EAAE,kBAAkB;AACtB,IAAA,EAAE,EAAE,kBAAkB;AACtB,IAAA,EAAE,EAAE,kBAAkB;;AAGjB,MAAM,MAAM,GAAG;AACpB,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,MAAM,EAAE,wBAAwB;AAChC,IAAA,IAAI,EAAE,sBAAsB;;;ACTvB,MAAM,MAAM,GAAG;AACpB,IAAA,EAAE,EAAE,yBAAyB;AAC7B,IAAA,EAAE,EAAE,mBAAmB;AACvB,IAAA,MAAM,EAAE,qBAAqB;AAE7B,IAAA,OAAO,EAAE,sBAAsB;AAC/B,IAAA,MAAM,EAAE,qBAAqB;AAC7B,IAAA,OAAO,EAAE,sBAAsB;AAC/B,IAAA,OAAO,EAAE,sBAAsB;AAC/B,IAAA,IAAI,EAAE,mBAAmB;;;ACP3B;;;AAGG;AACI,MAAM,YAAY,GAAoB;AAC3C,IAAA,KAAK,EAAE;AACL,QAAA,MAAM,EAAE;AACN,YAAA,MAAM,EAAE;AACN,gBAAA,EAAE,EAAE,yBAAyB;AAC7B,gBAAA,EAAE,EAAE,mBAAmB;AACvB,gBAAA,MAAM,EAAE,qBAAqB;AAE7B,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,MAAM,EAAE,qBAAqB;AAC7B,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,IAAI,EAAE,mBAAmB;AAC1B,aAAA;AACF,SAAA;AACF,KAAA;;;ACrBH;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tociva/tailng-theme",
3
- "version": "0.6.0",
4
- "description": "Tailwind CSS preset for Tailng",
3
+ "version": "0.10.0",
4
+ "description": "TailNG theme tokens (CSS) + Tailwind preset/plugin helpers",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -11,10 +11,32 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/tociva/tailng/issues"
13
13
  },
14
+ "sideEffects": [
15
+ "*.css"
16
+ ],
14
17
  "peerDependencies": {
15
18
  "tailwindcss": "^3.4.0"
16
19
  },
17
- "types": "./src/index.d.ts",
18
- "main": "./src/index.js",
19
- "type": "commonjs"
20
+ "dependencies": {
21
+ "tslib": "^2.6.0"
22
+ },
23
+ "exports": {
24
+ "./tokens/index.css": "./tokens/index.css",
25
+ "./tokens/base.css": "./tokens/base.css",
26
+ "./tokens/light.css": "./tokens/light.css",
27
+ "./tokens/dark.css": "./tokens/dark.css",
28
+ "./tailwind/plugin.cjs": "./tailwind/plugin.cjs",
29
+ "./tailwind/preset.cjs": "./tailwind/preset.cjs",
30
+ "./tailwind/tailng.plugin.cjs": "./tailwind/tailng.plugin.cjs",
31
+ "./tailwind/tailng.preset.cjs": "./tailwind/tailng.preset.cjs",
32
+ "./package.json": {
33
+ "default": "./package.json"
34
+ },
35
+ ".": {
36
+ "types": "./types/tociva-tailng-theme.d.ts",
37
+ "default": "./fesm2022/tociva-tailng-theme.mjs"
38
+ }
39
+ },
40
+ "module": "fesm2022/tociva-tailng-theme.mjs",
41
+ "typings": "types/tociva-tailng-theme.d.ts"
20
42
  }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @tailng/theme - Tailwind plugin (CommonJS)
3
+ * Adds a few small utilities that leverage theme variables.
4
+ *
5
+ * Usage:
6
+ * // tailwind.config.cjs
7
+ * module.exports = {
8
+ * plugins: [require('@tailng/theme/tailwind/plugin.cjs')],
9
+ * };
10
+ */
11
+ const plugin = require('tailwindcss/plugin');
12
+
13
+ module.exports = plugin(function ({ addUtilities, addBase }) {
14
+ // Base defaults (optional but handy)
15
+ addBase({
16
+ ':root': {
17
+ color: 'var(--text-color)',
18
+ backgroundColor: 'var(--background-color)',
19
+ },
20
+ });
21
+
22
+ // Utilities
23
+ addUtilities(
24
+ {
25
+ '.tng-ring': {
26
+ outline: 'none',
27
+ boxShadow: '0 0 0 var(--focus-ring-width) color-mix(in srgb, var(--primary-color) 35%, transparent)',
28
+ },
29
+ '.tng-ring-danger': {
30
+ outline: 'none',
31
+ boxShadow: '0 0 0 var(--focus-ring-width) color-mix(in srgb, var(--danger-color) 35%, transparent)',
32
+ },
33
+ '.tng-border': {
34
+ borderWidth: 'var(--border-width)',
35
+ borderColor: 'var(--border-color)',
36
+ },
37
+ '.tng-border-hover:hover': {
38
+ borderColor: 'var(--border-color-hover)',
39
+ },
40
+ '.tng-disabled': {
41
+ color: 'var(--disable-color)',
42
+ cursor: 'not-allowed',
43
+ opacity: '0.7',
44
+ },
45
+ },
46
+ { variants: ['responsive', 'hover', 'focus'] }
47
+ );
48
+ });
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @tailng/theme - Tailwind preset (CommonJS)
3
+ * Maps Tailwind tokens to CSS variables provided by @tailng/theme tokens.
4
+ *
5
+ * Usage:
6
+ * // tailwind.config.cjs
7
+ * module.exports = {
8
+ * presets: [require('@tailng/theme/tailwind/preset.cjs')],
9
+ * };
10
+ */
11
+ module.exports = {
12
+ theme: {
13
+ extend: {
14
+ colors: {
15
+ // Surfaces
16
+ bg: 'var(--background-color)',
17
+ fg: 'var(--text-color)',
18
+ border: 'var(--border-color)',
19
+ 'border-hover': 'var(--border-color-hover)',
20
+
21
+ // Semantic
22
+ primary: 'var(--primary-color)',
23
+ danger: 'var(--danger-color)',
24
+ warning: 'var(--warning-color)',
25
+ success: 'var(--success-color)',
26
+ info: 'var(--info-color)',
27
+
28
+ // "on-*" helpers (useful for text color on colored bg)
29
+ 'on-primary': 'var(--on-primary-color)',
30
+ 'on-danger': 'var(--on-danger-color)',
31
+ 'on-warning': 'var(--on-warning-color)',
32
+ 'on-success': 'var(--on-success-color)',
33
+ 'on-info': 'var(--on-info-color)',
34
+ },
35
+ borderRadius: {
36
+ sm: 'var(--radius-sm)',
37
+ md: 'var(--radius-md)',
38
+ lg: 'var(--radius-lg)',
39
+ },
40
+ boxShadow: {
41
+ sm: 'var(--shadow-sm)',
42
+ md: 'var(--shadow-md)',
43
+ lg: 'var(--shadow-lg)',
44
+ },
45
+ fontFamily: {
46
+ sans: ['var(--font-sans)'],
47
+ },
48
+ transitionTimingFunction: {
49
+ standard: 'var(--ease-standard)',
50
+ emphasized: 'var(--ease-emphasized)',
51
+ },
52
+ transitionDuration: {
53
+ fast: 'var(--duration-fast)',
54
+ normal: 'var(--duration-normal)',
55
+ slow: 'var(--duration-slow)',
56
+ },
57
+ },
58
+ },
59
+ };
@@ -0,0 +1,2 @@
1
+ // Alias for plugin.cjs
2
+ module.exports = require('./plugin.cjs');
@@ -0,0 +1,2 @@
1
+ // Alias for preset.cjs
2
+ module.exports = require('./preset.cjs');
@@ -0,0 +1,12 @@
1
+ /* @tailng/theme - tokens/components/code.css
2
+ Code highlighting tokens (semantic). */
3
+
4
+ :root {
5
+ --code-keyword-color: var(--primary-color);
6
+ --code-string-color: var(--success-color);
7
+ --code-comment-color: var(--disable-color);
8
+ --code-number-color: var(--info-color);
9
+ --code-tag-color: var(--danger-color);
10
+ --code-attr-color: var(--warning-color);
11
+ --code-decorator-color: var(--primary-color-hover);
12
+ }
@@ -0,0 +1,13 @@
1
+ /* @tailng/theme - tokens/foundation/base.css
2
+ Shared (non-theme) tokens. */
3
+ :root {
4
+ --font-sans: Roboto, system-ui, -apple-system, Segoe UI, Arial, sans-serif;
5
+
6
+ /* Radius scale */
7
+ --radius-sm: 4px;
8
+ --radius-md: 6px;
9
+ --radius-lg: 10px;
10
+
11
+ /* Border widths */
12
+ --border-width: 1px;
13
+ }
@@ -0,0 +1,6 @@
1
+ /* @tailng/theme - tokens/foundation/elevation.css */
2
+ :root {
3
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
4
+ --shadow-md: 0 4px 12px rgba(0,0,0,0.10);
5
+ --shadow-lg: 0 12px 28px rgba(0,0,0,0.14);
6
+ }
@@ -0,0 +1,9 @@
1
+ /* @tailng/theme - tokens/foundation/motion.css */
2
+ :root {
3
+ --ease-standard: cubic-bezier(0.2, 0, 0, 1);
4
+ --ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
5
+
6
+ --duration-fast: 150ms;
7
+ --duration-normal: 250ms;
8
+ --duration-slow: 350ms;
9
+ }
@@ -0,0 +1,4 @@
1
+ /* @tailng/theme - tokens/foundation/shapes.css */
2
+ :root {
3
+ --focus-ring-width: 2px;
4
+ }
@@ -0,0 +1,12 @@
1
+ /* @tailng/theme - tokens/foundation/typography.css */
2
+ :root {
3
+ --font-size-xs: 0.75rem;
4
+ --font-size-sm: 0.875rem;
5
+ --font-size-md: 1rem;
6
+ --font-size-lg: 1.125rem;
7
+ --font-size-xl: 1.25rem;
8
+
9
+ --line-height-tight: 1.2;
10
+ --line-height-normal: 1.5;
11
+ --line-height-loose: 1.7;
12
+ }
@@ -0,0 +1,27 @@
1
+ /* @tailng/theme - tokens/index.css
2
+ Import this once in your app. */
3
+
4
+ @import "./foundation/base.css";
5
+ @import "./foundation/motion.css";
6
+ @import "./foundation/typography.css";
7
+ @import "./foundation/elevation.css";
8
+ @import "./foundation/shapes.css";
9
+
10
+ /* Optional palettes (not required) */
11
+ @import "./palettes/default.css";
12
+ @import "./palettes/slate.css";
13
+
14
+ /* Theme (brand identity) */
15
+ @import "./semantic/theme-default.css";
16
+ @import "./semantic/theme-slate.css";
17
+ @import "./semantic/theme-indigo.css";
18
+ @import "./semantic/theme-emerald.css";
19
+ @import "./semantic/theme-rose.css";
20
+
21
+ /* Modes (light/dark/night) */
22
+ @import "./modes/mode-light.css";
23
+ @import "./modes/mode-dark.css";
24
+ @import "./modes/mode-night.css";
25
+
26
+ /* Component-level tokens (optional) */
27
+ @import "./components/code.css";
@@ -0,0 +1,14 @@
1
+ /* @tailng/theme - tokens/modes/mode-dark.css
2
+ Mode tokens (dark).
3
+ Apply by setting: <html class="mode-dark"> */
4
+
5
+ :where(html.mode-dark, .mode-dark) {
6
+ --background-color: #020617;
7
+ --alternate-background-color: #0b1220;
8
+ --text-color: #e5e7eb;
9
+
10
+ --border-color: #1e293b;
11
+ --border-color-hover: #334155;
12
+
13
+ --disable-color: #94a3b8;
14
+ }
@@ -0,0 +1,14 @@
1
+ /* @tailng/theme - tokens/modes/mode-light.css
2
+ Mode tokens (light).
3
+ Apply by setting: <html class="mode-light"> */
4
+
5
+ :where(html.mode-light, .mode-light) {
6
+ --background-color: #ffffff;
7
+ --alternate-background-color: #f8fafc;
8
+ --text-color: #0f172a;
9
+
10
+ --border-color: #e2e8f0;
11
+ --border-color-hover: #cbd5e1;
12
+
13
+ --disable-color: #64748b;
14
+ }
@@ -0,0 +1,14 @@
1
+ /* @tailng/theme - tokens/modes/mode-night.css
2
+ Mode tokens (night / true-black).
3
+ Apply by setting: <html class="mode-night"> */
4
+
5
+ :where(html.mode-night, .mode-night) {
6
+ --background-color: #000000;
7
+ --alternate-background-color: #070a10;
8
+ --text-color: #e5e7eb;
9
+
10
+ --border-color: #111827;
11
+ --border-color-hover: #1f2937;
12
+
13
+ --disable-color: #9ca3af;
14
+ }
@@ -0,0 +1,3 @@
1
+ /* @tailng/theme - tokens/palettes/default.css
2
+ Optional raw palette definitions (if you want to maintain palette ramps).
3
+ Keep empty for now or define ramps like --blue-50 ... --blue-900. */
@@ -0,0 +1,2 @@
1
+ /* @tailng/theme - tokens/palettes/slate.css
2
+ Optional slate palette ramp definitions. */
@@ -0,0 +1,30 @@
1
+ /* @tailng/theme - tokens/semantic/theme-default.css
2
+ Brand identity tokens (stable across modes).
3
+ Apply by setting: <html class="theme-default"> */
4
+
5
+ :where(html.theme-default, .theme-default) {
6
+ /* Primary (blue) */
7
+ --primary-color: #2563eb; /* blue-600 */
8
+ --primary-color-hover: #1d4ed8; /* blue-700 */
9
+ --on-primary-color: #ffffff;
10
+
11
+ /* Danger (red) */
12
+ --danger-color: #dc2626; /* red-600 */
13
+ --danger-color-hover: #b91c1c; /* red-700 */
14
+ --on-danger-color: #ffffff;
15
+
16
+ /* Warning (amber) */
17
+ --warning-color: #f59e0b; /* amber-500 */
18
+ --warning-color-hover: #d97706; /* amber-600 */
19
+ --on-warning-color: #020617; /* near-slate-950 */
20
+
21
+ /* Success (green) */
22
+ --success-color: #16a34a; /* green-600 */
23
+ --success-color-hover: #15803d; /* green-700 */
24
+ --on-success-color: #ffffff;
25
+
26
+ /* Info (cyan) */
27
+ --info-color: #0891b2; /* cyan-600 */
28
+ --info-color-hover: #0e7490; /* cyan-700 */
29
+ --on-info-color: #ffffff;
30
+ }
@@ -0,0 +1,24 @@
1
+ /* @tailng/theme - semantic/theme-emerald.css
2
+ Calm, positive theme */
3
+
4
+ :where(html.theme-emerald, .theme-emerald) {
5
+ --primary-color: #059669; /* emerald-600 */
6
+ --primary-color-hover: #047857; /* emerald-700 */
7
+ --on-primary-color: #ffffff;
8
+
9
+ --danger-color: #dc2626;
10
+ --danger-color-hover: #b91c1c;
11
+ --on-danger-color: #ffffff;
12
+
13
+ --warning-color: #f59e0b;
14
+ --warning-color-hover: #d97706;
15
+ --on-warning-color: #020617;
16
+
17
+ --success-color: #16a34a;
18
+ --success-color-hover: #15803d;
19
+ --on-success-color: #ffffff;
20
+
21
+ --info-color: #0ea5e9;
22
+ --info-color-hover: #0284c7;
23
+ --on-info-color: #ffffff;
24
+ }
@@ -0,0 +1,24 @@
1
+ /* @tailng/theme - semantic/theme-indigo.css
2
+ Modern SaaS theme */
3
+
4
+ :where(html.theme-indigo, .theme-indigo) {
5
+ --primary-color: #4f46e5; /* indigo-600 */
6
+ --primary-color-hover: #4338ca; /* indigo-700 */
7
+ --on-primary-color: #ffffff;
8
+
9
+ --danger-color: #ef4444;
10
+ --danger-color-hover: #dc2626;
11
+ --on-danger-color: #ffffff;
12
+
13
+ --warning-color: #f59e0b;
14
+ --warning-color-hover: #d97706;
15
+ --on-warning-color: #020617;
16
+
17
+ --success-color: #22c55e;
18
+ --success-color-hover: #16a34a;
19
+ --on-success-color: #ffffff;
20
+
21
+ --info-color: #06b6d4;
22
+ --info-color-hover: #0891b2;
23
+ --on-info-color: #ffffff;
24
+ }
@@ -0,0 +1,24 @@
1
+ /* @tailng/theme - semantic/theme-rose.css
2
+ Soft but professional theme */
3
+
4
+ :where(html.theme-rose, .theme-rose) {
5
+ --primary-color: #e11d48; /* rose-600 */
6
+ --primary-color-hover: #be123c; /* rose-700 */
7
+ --on-primary-color: #ffffff;
8
+
9
+ --danger-color: #dc2626;
10
+ --danger-color-hover: #b91c1c;
11
+ --on-danger-color: #ffffff;
12
+
13
+ --warning-color: #f59e0b;
14
+ --warning-color-hover: #d97706;
15
+ --on-warning-color: #020617;
16
+
17
+ --success-color: #22c55e;
18
+ --success-color-hover: #16a34a;
19
+ --on-success-color: #ffffff;
20
+
21
+ --info-color: #0ea5e9;
22
+ --info-color-hover: #0284c7;
23
+ --on-info-color: #ffffff;
24
+ }
@@ -0,0 +1,24 @@
1
+ /* @tailng/theme - semantic/theme-slate.css
2
+ Enterprise neutral theme */
3
+
4
+ :where(html.theme-slate, .theme-slate) {
5
+ --primary-color: #334155; /* slate-700 */
6
+ --primary-color-hover: #1e293b; /* slate-800 */
7
+ --on-primary-color: #ffffff;
8
+
9
+ --danger-color: #dc2626;
10
+ --danger-color-hover: #b91c1c;
11
+ --on-danger-color: #ffffff;
12
+
13
+ --warning-color: #f59e0b;
14
+ --warning-color-hover: #d97706;
15
+ --on-warning-color: #020617;
16
+
17
+ --success-color: #16a34a;
18
+ --success-color-hover: #15803d;
19
+ --on-success-color: #ffffff;
20
+
21
+ --info-color: #0ea5e9;
22
+ --info-color-hover: #0284c7;
23
+ --on-info-color: #ffffff;
24
+ }
@@ -0,0 +1,31 @@
1
+ import { Config } from 'tailwindcss';
2
+
3
+ declare const radii: {
4
+ readonly sm: "var(--radius-sm)";
5
+ readonly md: "var(--radius-md)";
6
+ readonly lg: "var(--radius-lg)";
7
+ };
8
+ declare const motion: {
9
+ readonly fast: "var(--duration-fast)";
10
+ readonly normal: "var(--duration-normal)";
11
+ readonly slow: "var(--duration-slow)";
12
+ };
13
+
14
+ declare const colors: {
15
+ readonly bg: "var(--background-color)";
16
+ readonly fg: "var(--text-color)";
17
+ readonly border: "var(--border-color)";
18
+ readonly primary: "var(--primary-color)";
19
+ readonly danger: "var(--danger-color)";
20
+ readonly warning: "var(--warning-color)";
21
+ readonly success: "var(--success-color)";
22
+ readonly info: "var(--info-color)";
23
+ };
24
+
25
+ /**
26
+ * Tailwind preset for @tailng/theme.
27
+ * Map Tailwind colors to CSS variables (no hardcoded colors here).
28
+ */
29
+ declare const tailngPreset: Partial<Config>;
30
+
31
+ export { colors, motion, radii, tailngPreset };