forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtailwind.config.ts
More file actions
140 lines (134 loc) · 4.38 KB
/
Copy pathtailwind.config.ts
File metadata and controls
140 lines (134 loc) · 4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import type { Config } from 'tailwindcss';
const config: Config = {
darkMode: ['class'],
content: [
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
screens: {
xs: '375px',
sm: '640px',
md: '768px',
lg: '1024px',
xl: '1280px',
},
extend: {
colors: {
// Backgrounds
'bg-primary': '#0F0F0F',
'bg-secondary': '#1A1A1A',
'bg-tertiary': '#252525',
// Matches desktop OmiColors.backgroundQuaternary / backgroundRaised.
'bg-quaternary': '#35343B',
'bg-raised': '#1F1F25',
'bg-color': '#181818',
// Desktop `mainContentContainer` fill — the inset content pane sits a
// shade darker than the window behind it so the inset reads as depth.
'bg-pane': '#0D0D0F',
// Desktop OmiColors.border — visible against bg-secondary, unlike
// borrowing bg-tertiary as a border colour.
stroke: '#3A3940',
// Text
'text-primary': '#FFFFFF',
'text-secondary': '#E5E5E5',
'text-tertiary': '#B0B0B0',
'text-quaternary': '#888888',
// Status
success: '#10B981',
warning: '#F59E0B',
error: '#EF4444',
info: '#3B82F6',
},
fontFamily: {
display: ['Plus Jakarta Sans', 'sans-serif'],
body: ['DM Sans', 'sans-serif'],
},
spacing: {
'sidebar-width': '280px',
'sidebar-collapsed': '64px',
'header-height': 'clamp(3.5rem, 8vh, 5rem)',
'banner-height': 'clamp(4rem, 10vh, 6rem)',
'nav-height': 'clamp(2.5rem, 6vh, 3.5rem)',
},
backgroundImage: {
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
'gradient-conic':
'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
},
borderRadius: {
lg: '12px',
md: '8px',
sm: '6px',
// Desktop OmiChrome radius registers, so web surfaces read at the same
// softness as the macOS app.
window: '26px',
card: '24px',
section: '20px',
control: '16px',
chip: '14px',
element: '8px',
badge: '6px',
},
boxShadow: {
soft: '0 4px 12px rgba(0, 0, 0, 0.1)',
medium: '0 8px 20px rgba(0, 0, 0, 0.15)',
strong: '0 12px 30px rgba(0, 0, 0, 0.25)',
glow: '0 0 20px rgba(255, 255, 255, 0.18)',
},
keyframes: {
shimmer: {
'0%': { backgroundPosition: '-200% 0' },
'100%': { backgroundPosition: '200% 0' },
},
fadeIn: {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
slideUp: {
'0%': { opacity: '0', transform: 'translateY(10px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
pulse: {
'0%, 100%': { opacity: '1' },
'50%': { opacity: '0.5' },
},
'accordion-down': {
from: { height: '0' },
to: { height: 'var(--radix-accordion-content-height)' },
},
'accordion-up': {
from: { height: 'var(--radix-accordion-content-height)' },
to: { height: '0' },
},
slideInBottom: {
'0%': { transform: 'translateY(1rem)', opacity: '0' },
'100%': { transform: 'translateY(0)', opacity: '1' },
},
slideOutBottom: {
'0%': { transform: 'translateY(0)', opacity: '1' },
'100%': { transform: 'translateY(1rem)', opacity: '0' },
},
'gradient-x': {
'0%': { backgroundPosition: '0% 50%' },
'50%': { backgroundPosition: '100% 50%' },
'100%': { backgroundPosition: '0% 50%' },
},
},
animation: {
shimmer: 'shimmer 2s infinite linear',
fadeIn: 'fadeIn 300ms ease-out',
slideUp: 'slideUp 300ms ease-out',
pulse: 'pulse 2s ease-in-out infinite',
'accordion-down': 'accordion-down 0.2s ease-out',
'accordion-up': 'accordion-up 0.2s ease-out',
slideInBottom: 'slideInBottom 0.3s ease-in-out',
slideOutBottom: 'slideOutBottom 0.3s ease-in-out forwards',
'gradient-x': 'gradient-x 15s ease infinite',
},
},
},
plugins: [require('@tailwindcss/typography'), require('tailwindcss-animate')],
};
export default config;