Files
team/apps/mobile/tailwind.config.js

78 lines
2.4 KiB
JavaScript

const { hairlineWidth, platformSelect } = require('nativewind/theme');
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./app/**/*.{js,jsx,ts,tsx}', './components/**/*.{js,jsx,ts,tsx}'],
presets: [require('nativewind/preset')],
theme: {
extend: {
colors: {
border: withOpacity('border'),
input: withOpacity('input'),
ring: withOpacity('ring'),
background: withOpacity('background'),
foreground: withOpacity('foreground'),
linkColor: withOpacity('linkColor'),
grayText: withOpacity('grayText'),
green: withOpacity('green'),
primary: {
DEFAULT: withOpacity('primary'),
foreground: withOpacity('primary-foreground'),
},
secondary: {
DEFAULT: withOpacity('secondary'),
foreground: withOpacity('secondary-foreground'),
},
destructive: {
DEFAULT: withOpacity('destructive'),
foreground: withOpacity('destructive-foreground'),
},
error: {
DEFAULT: withOpacity('error'),
background: withOpacity('error-background'),
heading: withOpacity('error-heading'),
border: withOpacity('error-border'),
},
muted: {
DEFAULT: withOpacity('muted'),
foreground: withOpacity('muted-foreground'),
},
accent: {
DEFAULT: withOpacity('accent'),
foreground: withOpacity('accent-foreground'),
},
popover: {
DEFAULT: withOpacity('popover'),
foreground: withOpacity('popover-foreground'),
},
card: {
DEFAULT: withOpacity('card'),
foreground: withOpacity('card-foreground'),
background: withOpacity('card-background'),
},
},
borderWidth: {
hairline: hairlineWidth(),
},
fontFamily: {
"cal-sans": ["CalSans-SemiBold", "sans-serif"],
}
},
},
plugins: [],
};
function withOpacity(variableName) {
return ({ opacityValue }) => {
if (opacityValue !== undefined) {
return platformSelect({
ios: `rgb(var(--${variableName}) / ${opacityValue})`,
android: `rgb(var(--android-${variableName}) / ${opacityValue})`,
});
}
return platformSelect({
ios: `rgb(var(--${variableName}))`,
android: `rgb(var(--android-${variableName}))`,
});
};
}