@bsuite/theme 0.5.0 → 0.7.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.
@@ -1,150 +0,0 @@
1
- /**
2
- * @bsuite/theme — Tailwind v3 preset (oklch edition)
3
- *
4
- * Consume via:
5
- * // tailwind.config.js (CommonJS)
6
- * module.exports = {
7
- * presets: [require('@bsuite/theme/tailwind-preset')],
8
- * content: ['./src/**\/*.{js,ts,jsx,tsx}'],
9
- * }
10
- *
11
- * Extends Tailwind's theme with the D2C Neon Electric palette, light/dark
12
- * surface tokens, semantic status colours, gradients, glow shadows, and
13
- * the six canonical animations. Does not override Tailwind's default scale.
14
- *
15
- * Colour values are inline oklch so the preset is self-contained — no
16
- * dependency on any `--*-rgb` CSS custom property. Tailwind v3 injects
17
- * `<alpha-value>` into any valid CSS colour function, and `oklch(L C H / A)`
18
- * is valid CSS Color 4 syntax (supported in all evergreen browsers:
19
- * Chrome ≥111, Safari ≥15.4, Firefox ≥113). Keeps bg-neon-electric-blue/40
20
- * and friends working without the RGB-triplet variable indirection.
21
- *
22
- * Values are kept in sync with `preset-v4.css` — editing one without the
23
- * other will cause v3 and v4 consumers to diverge. See README.
24
- *
25
- * NOTE: Tailwind v4 apps should import `@bsuite/theme/preset-v4.css` instead.
26
- * v4 removed the preset system — presets exist only for v3.
27
- */
28
-
29
- /** @type {import('tailwindcss').Config} */
30
- module.exports = {
31
- darkMode: ['class'],
32
- theme: {
33
- extend: {
34
- colors: {
35
- neon: {
36
- 'electric-blue': 'oklch(0.546 0.215 262.9 / <alpha-value>)',
37
- 'electric-cyan': 'oklch(0.769 0.132 191.7 / <alpha-value>)',
38
- 'electric-indigo': 'oklch(0.511 0.23 277 / <alpha-value>)',
39
- 'electric-purple': 'oklch(0.568 0.202 283.1 / <alpha-value>)',
40
- 'electric-magenta': 'oklch(0.742 0.167 359.5 / <alpha-value>)',
41
- 'electric-pink': 'oklch(0.656 0.212 354.3 / <alpha-value>)',
42
- 'electric-coral': 'oklch(0.669 0.219 20.9 / <alpha-value>)',
43
- 'electric-orange': 'oklch(0.728 0.168 22.5 / <alpha-value>)',
44
- 'electric-yellow': 'oklch(0.868 0.125 81.4 / <alpha-value>)',
45
- 'electric-green': 'oklch(0.726 0.197 145.5 / <alpha-value>)',
46
- 'electric-lavender': 'oklch(0.749 0.115 288.4 / <alpha-value>)',
47
- },
48
- light: {
49
- bg: {
50
- primary: 'var(--light-bg-primary)',
51
- secondary: 'var(--light-bg-secondary)',
52
- tertiary: 'var(--light-bg-tertiary)',
53
- accent: 'var(--light-bg-accent)',
54
- },
55
- text: {
56
- primary: 'var(--light-text-primary)',
57
- secondary: 'var(--light-text-secondary)',
58
- tertiary: 'var(--light-text-tertiary)',
59
- quaternary: 'var(--light-text-quaternary)',
60
- },
61
- border: 'var(--light-border)',
62
- hover: 'var(--light-hover)',
63
- },
64
- dark: {
65
- bg: {
66
- primary: 'var(--dark-bg-primary)',
67
- secondary: 'var(--dark-bg-secondary)',
68
- tertiary: 'var(--dark-bg-tertiary)',
69
- quaternary: 'var(--dark-bg-quaternary)',
70
- accent: 'var(--dark-bg-accent)',
71
- },
72
- text: {
73
- primary: 'var(--dark-text-primary)',
74
- secondary: 'var(--dark-text-secondary)',
75
- tertiary: 'var(--dark-text-tertiary)',
76
- quaternary: 'var(--dark-text-quaternary)',
77
- },
78
- border: 'var(--dark-border)',
79
- hover: 'var(--dark-hover)',
80
- },
81
- status: {
82
- success: 'var(--status-success)',
83
- warning: 'var(--status-warning)',
84
- error: 'var(--status-error)',
85
- info: 'var(--status-info)',
86
- },
87
- },
88
-
89
- backgroundImage: {
90
- 'gradient-brand':
91
- 'linear-gradient(135deg, oklch(0.669 0.219 20.9) 0%, oklch(0.728 0.168 22.5) 25%, oklch(0.868 0.125 81.4) 50%, oklch(0.769 0.132 191.7) 75%, oklch(0.749 0.115 288.4) 100%)',
92
- 'gradient-electric':
93
- 'linear-gradient(135deg, oklch(0.546 0.215 262.9) 0%, oklch(0.769 0.132 191.7) 50%, oklch(0.656 0.212 354.3) 100%)',
94
- 'gradient-neon':
95
- 'linear-gradient(90deg, oklch(0.769 0.132 191.7) 0%, oklch(0.568 0.202 283.1) 50%, oklch(0.669 0.219 20.9) 100%)',
96
- 'gradient-chat-user':
97
- 'linear-gradient(135deg, oklch(0.636 0.153 271.3) 0%, oklch(0.466 0.168 296.3) 100%)',
98
- 'gradient-chat-agent':
99
- 'linear-gradient(135deg, oklch(0.546 0.215 262.9) 0%, oklch(0.656 0.212 354.3) 100%)',
100
- 'gradient-neural':
101
- 'radial-gradient(circle at center, oklch(0.769 0.132 191.7 / 0.1) 0%, transparent 50%)',
102
- },
103
-
104
- boxShadow: {
105
- 'glow-electric-blue': '0 0 20px oklch(0.546 0.215 262.9 / var(--glow-strength))',
106
- 'glow-electric-cyan': '0 0 20px oklch(0.769 0.132 191.7 / var(--glow-strength))',
107
- 'glow-electric-purple': '0 0 20px oklch(0.568 0.202 283.1 / var(--glow-strength))',
108
- 'glow-electric-pink': '0 0 20px oklch(0.656 0.212 354.3 / var(--glow-strength))',
109
- 'glow-electric-coral': '0 0 20px oklch(0.669 0.219 20.9 / var(--glow-strength))',
110
- 'glow-electric-magenta': '0 0 20px oklch(0.742 0.167 359.5 / var(--glow-strength))',
111
- },
112
-
113
- animation: {
114
- 'pulse-soft': 'pulse-soft 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
115
- glow: 'glow 2s ease-in-out infinite alternate',
116
- typing: 'typing 1.5s infinite',
117
- shimmer: 'shimmer 2s infinite',
118
- float: 'float 3s ease-in-out infinite',
119
- 'neon-pulse': 'neon-pulse 2s ease-in-out infinite',
120
- },
121
-
122
- keyframes: {
123
- 'pulse-soft': {
124
- '0%, 100%': { opacity: '1' },
125
- '50%': { opacity: '0.7' },
126
- },
127
- glow: {
128
- '0%': { boxShadow: '0 0 5px oklch(0.769 0.132 191.7 / 0.2)' },
129
- '100%': { boxShadow: '0 0 20px oklch(0.769 0.132 191.7 / 0.6)' },
130
- },
131
- typing: {
132
- '0%, 60%': { opacity: '1' },
133
- '30%': { opacity: '0.4' },
134
- },
135
- shimmer: {
136
- '0%': { backgroundPosition: '-1000px 0' },
137
- '100%': { backgroundPosition: '1000px 0' },
138
- },
139
- float: {
140
- '0%, 100%': { transform: 'translateY(0px)' },
141
- '50%': { transform: 'translateY(-10px)' },
142
- },
143
- 'neon-pulse': {
144
- '0%, 100%': { textShadow: '0 0 10px oklch(0.769 0.132 191.7 / 0.3)' },
145
- '50%': { textShadow: '0 0 20px oklch(0.769 0.132 191.7 / 0.8)' },
146
- },
147
- },
148
- },
149
- },
150
- }