import type {Config} from 'tailwindcss' export default { content: [ './app/**/*.{js,ts,jsx,tsx,mdx}', './components/**/*.{js,jsx,tsx}' ], darkMode: 'class', plugins: [ require('@tailwindcss/typography') ], theme: { extend: { colors: { green: { 950: '#1fdf64' }, black: { 950: '#0a0a0a' } } }, fontSize: { xs: ['0.8125rem', {lineHeight: '1.5rem'}], sm: ['0.875rem', {lineHeight: '1.5rem'}], base: ['1rem', {lineHeight: '1.75rem'}], lg: ['1.125rem', {lineHeight: '1.75rem'}], xl: ['1.25rem', {lineHeight: '2rem'}], '2xl': ['1.5rem', {lineHeight: '2rem'}], '3xl': ['1.875rem', {lineHeight: '2.25rem'}], '4xl': ['2rem', {lineHeight: '2.5rem'}], '5xl': ['3rem', {lineHeight: '3.5rem'}], '6xl': ['3.75rem', {lineHeight: '1'}], '7xl': ['4.5rem', {lineHeight: '1'}], '8xl': ['6rem', {lineHeight: '1'}], '9xl': ['8rem', {lineHeight: '1'}], }, typography: (theme: any) => ({ invert: { css: { '--tw-prose-body': 'var(--tw-prose-invert-body)', '--tw-prose-headings': 'var(--tw-prose-invert-headings)', '--tw-prose-links': 'var(--tw-prose-invert-links)', '--tw-prose-links-hover': 'var(--tw-prose-invert-links-hover)', '--tw-prose-underline': 'var(--tw-prose-invert-underline)', '--tw-prose-underline-hover': 'var(--tw-prose-invert-underline-hover)', '--tw-prose-bold': 'var(--tw-prose-invert-bold)', '--tw-prose-counters': 'var(--tw-prose-invert-counters)', '--tw-prose-bullets': 'var(--tw-prose-invert-bullets)', '--tw-prose-hr': 'var(--tw-prose-invert-hr)', '--tw-prose-quote-borders': 'var(--tw-prose-invert-quote-borders)', '--tw-prose-captions': 'var(--tw-prose-invert-captions)', '--tw-prose-code': 'var(--tw-prose-invert-code)', '--tw-prose-code-bg': 'var(--tw-prose-invert-code-bg)', '--tw-prose-pre-code': 'var(--tw-prose-invert-pre-code)', '--tw-prose-pre-bg': 'var(--tw-prose-invert-pre-bg)', '--tw-prose-pre-border': 'var(--tw-prose-invert-pre-border)', '--tw-prose-th-borders': 'var(--tw-prose-invert-th-borders)', '--tw-prose-td-borders': 'var(--tw-prose-invert-td-borders)', }, }, DEFAULT: { css: { '--tw-prose-body': theme('colors.zinc.600'), '--tw-prose-headings': theme('colors.zinc.900'), '--tw-prose-links': theme('colors.indigo.500'), '--tw-prose-links-hover': theme('colors.indigo.600'), '--tw-prose-underline': theme('colors.teal.500 / 0.2'), '--tw-prose-underline-hover': theme('colors.indigo.500'), '--tw-prose-bold': theme('colors.zinc.900'), '--tw-prose-counters': theme('colors.zinc.900'), '--tw-prose-bullets': theme('colors.zinc.900'), '--tw-prose-hr': theme('colors.zinc.100'), '--tw-prose-quote-borders': theme('colors.zinc.200'), '--tw-prose-captions': theme('colors.zinc.400'), '--tw-prose-code': theme('colors.zinc.700'), '--tw-prose-code-bg': theme('colors.zinc.300 / 0.2'), '--tw-prose-pre-code': theme('colors.zinc.100'), '--tw-prose-pre-bg': theme('colors.zinc.900'), '--tw-prose-pre-border': 'transparent', '--tw-prose-th-borders': theme('colors.zinc.200'), '--tw-prose-td-borders': theme('colors.zinc.100'), '--tw-prose-invert-body': theme('colors.zinc.400'), '--tw-prose-invert-headings': theme('colors.zinc.200'), '--tw-prose-invert-links': theme('colors.indigo.400'), '--tw-prose-invert-links-hover': theme('colors.indigo.400'), '--tw-prose-invert-underline': theme('colors.indigo.400 / 0.3'), '--tw-prose-invert-underline-hover': theme('colors.indigo.400'), '--tw-prose-invert-bold': theme('colors.zinc.200'), '--tw-prose-invert-counters': theme('colors.zinc.200'), '--tw-prose-invert-bullets': theme('colors.zinc.200'), '--tw-prose-invert-hr': theme('colors.zinc.700 / 0.4'), '--tw-prose-invert-quote-borders': theme('colors.zinc.500'), '--tw-prose-invert-captions': theme('colors.zinc.500'), '--tw-prose-invert-code': theme('colors.zinc.300'), '--tw-prose-invert-code-bg': theme('colors.zinc.200 / 0.05'), '--tw-prose-invert-pre-code': theme('colors.zinc.100'), '--tw-prose-invert-pre-bg': 'rgb(0 0 0 / 0.4)', '--tw-prose-invert-pre-border': theme('colors.zinc.200 / 0.1'), '--tw-prose-invert-th-borders': theme('colors.zinc.700'), '--tw-prose-invert-td-borders': theme('colors.zinc.800'), // Base color: 'var(--tw-prose-body)', lineHeight: theme('lineHeight.7'), '> *': { marginTop: theme('spacing.10'), marginBottom: theme('spacing.10'), }, p: { marginTop: theme('spacing.7'), marginBottom: theme('spacing.7'), }, // Headings 'h2, h3': { color: 'var(--tw-prose-headings)', fontWeight: theme('fontWeight.semibold'), }, h2: { fontSize: theme('fontSize.xl')[0], lineHeight: theme('lineHeight.7'), marginTop: theme('spacing.20'), marginBottom: theme('spacing.4'), }, h3: { fontSize: theme('fontSize.base')[0], lineHeight: theme('lineHeight.7'), marginTop: theme('spacing.16'), marginBottom: theme('spacing.4'), }, ':is(h2, h3) + *': { marginTop: 0, }, // Images img: { borderRadius: theme('borderRadius.3xl'), }, // Inline elements a: { color: 'var(--tw-prose-links)', fontWeight: theme('fontWeight.semibold'), textDecoration: 'underline', textDecorationColor: 'var(--tw-prose-underline)', transitionProperty: 'color, text-decoration-color', transitionDuration: theme('transitionDuration.150'), transitionTimingFunction: theme('transitionTimingFunction.in-out'), }, 'a:hover': { color: 'var(--tw-prose-links-hover)', textDecorationColor: 'var(--tw-prose-underline-hover)', }, strong: { color: 'var(--tw-prose-bold)', fontWeight: theme('fontWeight.semibold'), }, code: { display: 'inline-block', color: 'var(--tw-prose-code)', fontSize: theme('fontSize.sm')[0], fontWeight: theme('fontWeight.semibold'), backgroundColor: 'var(--tw-prose-code-bg)', borderRadius: theme('borderRadius.lg'), paddingLeft: theme('spacing.1'), paddingRight: theme('spacing.1'), }, 'a code': { color: 'inherit', }, ':is(h2, h3) code': { fontWeight: theme('fontWeight.bold'), }, // Quotes blockquote: { paddingLeft: theme('spacing.6'), borderLeftWidth: theme('borderWidth.2'), borderLeftColor: 'var(--tw-prose-quote-borders)', fontStyle: 'italic', }, // Figures figcaption: { color: 'var(--tw-prose-captions)', fontSize: theme('fontSize.sm')[0], lineHeight: theme('lineHeight.6'), marginTop: theme('spacing.3'), }, 'figcaption > p': { margin: 0, }, // Lists ul: { listStyleType: 'disc', }, ol: { listStyleType: 'decimal', }, 'ul, ol': { paddingLeft: theme('spacing.6'), }, li: { marginTop: theme('spacing.6'), marginBottom: theme('spacing.6'), paddingLeft: theme('spacing[3.5]'), }, 'li::marker': { fontSize: theme('fontSize.sm')[0], fontWeight: theme('fontWeight.semibold'), }, 'ol > li::marker': { color: 'var(--tw-prose-counters)', }, 'ul > li::marker': { color: 'var(--tw-prose-bullets)', }, 'li :is(ol, ul)': { marginTop: theme('spacing.4'), marginBottom: theme('spacing.4'), }, 'li :is(li, p)': { marginTop: theme('spacing.3'), marginBottom: theme('spacing.3'), }, // Code blocks pre: { color: 'var(--tw-prose-pre-code)', fontSize: theme('fontSize.sm')[0], fontWeight: theme('fontWeight.medium'), backgroundColor: 'var(--tw-prose-pre-bg)', borderRadius: theme('borderRadius.3xl'), padding: theme('spacing.8'), overflowX: 'auto', border: '1px solid', borderColor: 'var(--tw-prose-pre-border)', }, 'pre code': { display: 'inline', color: 'inherit', fontSize: 'inherit', fontWeight: 'inherit', backgroundColor: 'transparent', borderRadius: 0, padding: 0, }, // Horizontal rules hr: { marginTop: theme('spacing.20'), marginBottom: theme('spacing.20'), borderTopWidth: '1px', borderColor: 'var(--tw-prose-hr)', '@screen lg': { marginLeft: `calc(${theme('spacing.12')} * -1)`, marginRight: `calc(${theme('spacing.12')} * -1)`, }, }, // Tables table: { width: '100%', tableLayout: 'auto', textAlign: 'left', fontSize: theme('fontSize.sm')[0], }, thead: { borderBottomWidth: '1px', borderBottomColor: 'var(--tw-prose-th-borders)', }, 'thead th': { color: 'var(--tw-prose-headings)', fontWeight: theme('fontWeight.semibold'), verticalAlign: 'bottom', paddingBottom: theme('spacing.2'), }, 'thead th:not(:first-child)': { paddingLeft: theme('spacing.2'), }, 'thead th:not(:last-child)': { paddingRight: theme('spacing.2'), }, 'tbody tr': { borderBottomWidth: '1px', borderBottomColor: 'var(--tw-prose-td-borders)', }, 'tbody tr:last-child': { borderBottomWidth: 0, }, 'tbody td': { verticalAlign: 'baseline', }, tfoot: { borderTopWidth: '1px', borderTopColor: 'var(--tw-prose-th-borders)', }, 'tfoot td': { verticalAlign: 'top', }, ':is(tbody, tfoot) td': { paddingTop: theme('spacing.2'), paddingBottom: theme('spacing.2'), }, ':is(tbody, tfoot) td:not(:first-child)': { paddingLeft: theme('spacing.2'), }, ':is(tbody, tfoot) td:not(:last-child)': { paddingRight: theme('spacing.2'), }, }, }, }), }, } satisfies Config