You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

239 lines
8.3 KiB

11 months ago
  1. /** @type {import('tailwindcss').Config} */
  2. export default {
  3. darkMode: "class",
  4. content: {
  5. relative: true,
  6. files: [
  7. "./src/components/**/*.{js,jsx}",
  8. "./src/hooks/**/*.js",
  9. "./src/models/**/*.js",
  10. "./src/pages/**/*.{js,jsx}",
  11. "./src/utils/**/*.js",
  12. "./src/*.jsx",
  13. "./index.html",
  14. "./node_modules/@tremor/**/*.{js,ts,jsx,tsx}"
  15. ]
  16. },
  17. theme: {
  18. extend: {
  19. rotate: {
  20. "270": "270deg",
  21. "360": "360deg"
  22. },
  23. colors: {
  24. "black-900": "#141414",
  25. accent: "#3D4147",
  26. "sidebar-button": "#31353A",
  27. sidebar: "#25272C",
  28. "historical-msg-system": "rgba(255, 255, 255, 0.05);",
  29. "historical-msg-user": "#2C2F35",
  30. outline: "#4E5153",
  31. "primary-button": "var(--theme-button-primary)",
  32. "cta-button": "var(--theme-button-cta)",
  33. secondary: "#2C2F36",
  34. "dark-input": "#18181B",
  35. "mobile-onboarding": "#2C2F35",
  36. "dark-highlight": "#1C1E21",
  37. "dark-text": "#222628",
  38. description: "#D2D5DB",
  39. "x-button": "#9CA3AF",
  40. royalblue: "#065986",
  41. purple: "#4A1FB8",
  42. magenta: "#9E165F",
  43. danger: "#F04438",
  44. error: "#B42318",
  45. warn: "#854708",
  46. success: "#05603A",
  47. darker: "#F4F4F4",
  48. // Generic theme colors
  49. theme: {
  50. bg: {
  51. primary: 'var(--theme-bg-primary)',
  52. secondary: 'var(--theme-bg-secondary)',
  53. sidebar: 'var(--theme-bg-sidebar)',
  54. container: 'var(--theme-bg-container)',
  55. chat: 'var(--theme-bg-chat)',
  56. "chat-input": 'var(--theme-bg-chat-input)',
  57. },
  58. text: {
  59. primary: 'var(--theme-text-primary)',
  60. secondary: 'var(--theme-text-secondary)',
  61. },
  62. sidebar: {
  63. item: {
  64. default: 'var(--theme-sidebar-item-default)',
  65. selected: 'var(--theme-sidebar-item-selected)',
  66. hover: 'var(--theme-sidebar-item-hover)',
  67. },
  68. subitem: {
  69. default: 'var(--theme-sidebar-subitem-default)',
  70. selected: 'var(--theme-sidebar-subitem-selected)',
  71. hover: 'var(--theme-sidebar-subitem-hover)',
  72. },
  73. footer: {
  74. icon: 'var(--theme-sidebar-footer-icon)',
  75. 'icon-hover': 'var(--theme-sidebar-footer-icon-hover)',
  76. },
  77. border: 'var(--theme-sidebar-border)',
  78. },
  79. "chat-input": {
  80. border: 'var(--theme-chat-input-border)',
  81. },
  82. "action-menu": {
  83. bg: 'var(--theme-action-menu-bg)',
  84. "item-hover": 'var(--theme-action-menu-item-hover)',
  85. },
  86. settings: {
  87. input: {
  88. bg: 'var(--theme-settings-input-bg)',
  89. active: 'var(--theme-settings-input-active)',
  90. placeholder: 'var(--theme-settings-input-placeholder)',
  91. text: 'var(--theme-settings-input-text)',
  92. }
  93. },
  94. modal: {
  95. border: 'var(--theme-modal-border)',
  96. },
  97. "file-picker": {
  98. hover: 'var(--theme-file-picker-hover)',
  99. }
  100. },
  101. },
  102. backgroundImage: {
  103. "preference-gradient":
  104. "linear-gradient(180deg, #5A5C63 0%, rgba(90, 92, 99, 0.28) 100%);",
  105. "chat-msg-user-gradient":
  106. "linear-gradient(180deg, #3D4147 0%, #2C2F35 100%);",
  107. "selected-preference-gradient":
  108. "linear-gradient(180deg, #313236 0%, rgba(63.40, 64.90, 70.13, 0) 100%);",
  109. "main-gradient": "linear-gradient(180deg, #3D4147 0%, #2C2F35 100%)",
  110. "modal-gradient": "linear-gradient(180deg, #3D4147 0%, #2C2F35 100%)",
  111. "sidebar-gradient": "linear-gradient(90deg, #5B616A 0%, #3F434B 100%)",
  112. "login-gradient": "linear-gradient(180deg, #3D4147 0%, #2C2F35 100%)",
  113. "menu-item-gradient":
  114. "linear-gradient(90deg, #3D4147 0%, #2C2F35 100%)",
  115. "menu-item-selected-gradient":
  116. "linear-gradient(90deg, #5B616A 0%, #3F434B 100%)",
  117. "workspace-item-gradient":
  118. "linear-gradient(90deg, #3D4147 0%, #2C2F35 100%)",
  119. "workspace-item-selected-gradient":
  120. "linear-gradient(90deg, #5B616A 0%, #3F434B 100%)",
  121. "switch-selected": "linear-gradient(146deg, #5B616A 0%, #3F434B 100%)"
  122. },
  123. fontFamily: {
  124. sans: [
  125. "plus-jakarta-sans",
  126. "ui-sans-serif",
  127. "system-ui",
  128. "-apple-system",
  129. "BlinkMacSystemFont",
  130. '"Segoe UI"',
  131. "Roboto",
  132. '"Helvetica Neue"',
  133. "Arial",
  134. '"Noto Sans"',
  135. "sans-serif",
  136. '"Apple Color Emoji"',
  137. '"Segoe UI Emoji"',
  138. '"Segoe UI Symbol"',
  139. '"Noto Color Emoji"'
  140. ]
  141. },
  142. animation: {
  143. sweep: "sweep 0.5s ease-in-out",
  144. "pulse-glow": "pulse-glow 1.5s infinite",
  145. 'fade-in': 'fade-in 0.3s ease-out',
  146. 'slide-up': 'slide-up 0.4s ease-out forwards',
  147. 'bounce-subtle': 'bounce-subtle 2s ease-in-out infinite'
  148. },
  149. keyframes: {
  150. sweep: {
  151. "0%": { transform: "scaleX(0)", transformOrigin: "bottom left" },
  152. "100%": { transform: "scaleX(1)", transformOrigin: "bottom left" }
  153. },
  154. fadeIn: {
  155. "0%": { opacity: 0 },
  156. "100%": { opacity: 1 }
  157. },
  158. fadeOut: {
  159. "0%": { opacity: 1 },
  160. "100%": { opacity: 0 }
  161. },
  162. "pulse-glow": {
  163. "0%": {
  164. opacity: 1,
  165. transform: "scale(1)",
  166. boxShadow: "0 0 0 rgba(255, 255, 255, 0.0)",
  167. backgroundColor: "rgba(255, 255, 255, 0.0)"
  168. },
  169. "50%": {
  170. opacity: 1,
  171. transform: "scale(1.1)",
  172. boxShadow: "0 0 15px rgba(255, 255, 255, 0.2)",
  173. backgroundColor: "rgba(255, 255, 255, 0.1)"
  174. },
  175. "100%": {
  176. opacity: 1,
  177. transform: "scale(1)",
  178. boxShadow: "0 0 0 rgba(255, 255, 255, 0.0)",
  179. backgroundColor: "rgba(255, 255, 255, 0.0)"
  180. }
  181. },
  182. 'fade-in': {
  183. '0%': { opacity: '0' },
  184. '100%': { opacity: '1' }
  185. },
  186. 'slide-up': {
  187. '0%': { transform: 'translateY(10px)', opacity: '0' },
  188. '100%': { transform: 'translateY(0)', opacity: '1' }
  189. },
  190. 'bounce-subtle': {
  191. '0%, 100%': { transform: 'translateY(0)' },
  192. '50%': { transform: 'translateY(-2px)' }
  193. }
  194. }
  195. }
  196. },
  197. variants: {
  198. extend: {
  199. backgroundColor: ['light'],
  200. textColor: ['light'],
  201. }
  202. },
  203. // Required for rechart styles to show since they can be rendered dynamically and will be tree-shaken if not safe-listed.
  204. safelist: [
  205. {
  206. pattern:
  207. /^(bg-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
  208. variants: ["hover", "ui-selected"]
  209. },
  210. {
  211. pattern:
  212. /^(text-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
  213. variants: ["hover", "ui-selected"]
  214. },
  215. {
  216. pattern:
  217. /^(border-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
  218. variants: ["hover", "ui-selected"]
  219. },
  220. {
  221. pattern:
  222. /^(ring-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/
  223. },
  224. {
  225. pattern:
  226. /^(stroke-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/
  227. },
  228. {
  229. pattern:
  230. /^(fill-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/
  231. }
  232. ],
  233. plugins: [
  234. function ({ addVariant }) {
  235. addVariant('light', '.light &') // Add the `light:` variant
  236. },
  237. ]
  238. }