cli/tailwind.config.ts
Rama main · réplica de lectura del repositorio original.
// Typography plugin customizations require JavaScript config in Tailwind v4
// Basic theme variables can be done in app.css, but prose styling needs this approach
/** @type {import('tailwindcss').Config} */
module.exports = {
theme: {
extend: {
typography: {
DEFAULT: {
css: {
'max-width': 'none',
'-webkit-font-smoothing': 'antialiased',
color: 'var(--color-foreground)',
'p, ul, ol': {
'margin-block-end': '1.2em',
'margin-block-start': '0em'
},
img: {
margin: '0 auto',
height: 'auto',
'max-width': '100%',
'border-radius': '0.5rem'
},
a: {
'text-decoration': 'underline',
transition: 'all 0.2s',
'&:hover': {
'text-decoration-thickness': '2px'
}
},
ol: {
'list-style-type': 'decimal',
'padding-left': '1.5rem',
'margin-bottom': '0',
'&::marker': {
color: 'var(--color-muted-foreground)'
},
li: {
margin: '0',
paddingInlineStart: '0',
'& + li': {
marginTop: '0.25rem'
},
'&::marker': {
color: 'var(--color-muted-foreground)'
}
}
},
ul: {
'list-style-type': 'disc',
'padding-left': '1.5rem',
li: {
margin: '0',
paddingInlineStart: '0',
'& + li': {
marginTop: '0.25rem'
},
'&::marker': {
color: 'var(--color-muted-foreground)'
}
},
ul: {
'list-style-type': 'circle',
'margin-top': '0.25rem',
'margin-bottom': '0',
ul: {
'list-style-type': 'square'
}
},
ol: {
'list-style-type': 'lower-alpha',
'margin-top': '0.25rem',
'margin-bottom': '0',
ol: {
'list-style-type': 'lower-roman'
}
}
},
li: {
margin: '0',
paddingInlineStart: '0',
'& + li': {
marginTop: '0.25rem'
}
},
':is(ul, ol) li + li': {
marginTop: 'calc(var(--spacing) * 1)'
},
'h1, h2, h3, h4, h5, h6': {
scrollMarginTop: '3.5rem',
breakInside: 'avoid',
fontFamily: "var(--theme-font-heading, var(--theme-font-body, 'Geist', sans-serif))",
color: 'var(--color-foreground)'
},
h1: {
marginTop: '1.25rem',
marginBottom: '0.75rem',
fontSize: "calc(var(--theme-font-scale, 1) * 1.5rem)",
lineHeight: "calc(var(--theme-font-scale, 1) * 2rem)",
fontWeight: '700',
letterSpacing: '0.025em'
},
h2: {
'margin-top': '0.75rem',
'margin-bottom': '0.25rem',
'font-size': "calc(var(--theme-font-scale, 1) * 1.25rem)",
'line-height': "calc(var(--theme-font-scale, 1) * 1.75rem)",
'font-weight': '600'
},
h3: {
'margin-top': '0.5rem',
'margin-bottom': '0.25rem',
'font-size': "calc(var(--theme-font-scale, 1) * 1rem)",
'line-height': "calc(var(--theme-font-scale, 1) * 1.5rem)",
'font-weight': '600'
},
h4: {
'margin-top': '0.25rem',
'font-size': "calc(var(--theme-font-scale, 1) * 0.875rem)",
'line-height': "calc(var(--theme-font-scale, 1) * 1.25rem)",
'font-weight': '600'
},
h5: {
'margin-top': '0.25rem',
'font-size': "calc(var(--theme-font-scale, 1) * 0.75rem)",
'line-height': "calc(var(--theme-font-scale, 1) * 1rem)",
'font-weight': '600'
},
h6: {
'margin-top': '0.25rem',
'font-size': "calc(var(--theme-font-scale, 1) * 0.75rem)",
'line-height': "calc(var(--theme-font-scale, 1) * 1rem)"
},
hr: {
height: '1px',
'margin-top': '2rem',
'margin-bottom': '2rem',
'max-width': '36rem',
'margin-left': 'auto',
'margin-right': 'auto',
'background-color': 'var(--color-border)',
border: '0'
},
code: {
'font-size': '0.875em',
'font-weight': 'normal',
'background-color': 'var(--color-muted)',
border: '1px solid var(--color-border)',
'border-radius': '0.25rem',
padding: '0.125rem 0.25rem',
'user-select': 'all'
},
blockquote: {
'background-color': 'var(--color-muted)',
'border-left': '4px solid var(--color-border)',
'padding-left': '0.75rem',
'margin-top': '2rem',
'margin-bottom': '2rem',
'padding-top': '0.5rem',
'padding-bottom': '0.5rem',
'*': {
color: 'var(--color-muted-foreground)'
},
p: {
'&:first-of-type::before': { content: 'none' },
'&:last-of-type::after': { content: 'none' },
'&:first-child': {
'margin-block-start': '0'
},
'&:last-child': {
'margin-block-end': '0'
}
},
blockquote: {
'margin-top': '0',
'margin-bottom': '0'
}
}
}
}
}
}
}
};