Some checks failed
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Build Docker Image (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
CI/CD Pipeline / Cleanup (push) Has been cancelled
107 lines
3.0 KiB
TypeScript
107 lines
3.0 KiB
TypeScript
import { defineConfig, presetUno, presetIcons, presetWebFonts } from 'unocss'
|
|
|
|
export default defineConfig({
|
|
// Basic UnoCSS configuration for jpl-website
|
|
presets: [
|
|
presetUno(),
|
|
presetIcons({
|
|
collections: {
|
|
heroicons: () => import('@iconify-json/heroicons/icons.json').then(i => i.default),
|
|
lucide: () => import('@iconify-json/lucide/icons.json').then(i => i.default),
|
|
}
|
|
}),
|
|
presetWebFonts({
|
|
fonts: {
|
|
sans: 'Inter:400,500,600,700',
|
|
mono: 'JetBrains Mono:400,500',
|
|
}
|
|
})
|
|
],
|
|
|
|
// Theme configuration
|
|
theme: {
|
|
colors: {
|
|
primary: {
|
|
50: '#fef7ee',
|
|
100: '#fdedd3',
|
|
200: '#fbd6a5',
|
|
300: '#f8b86d',
|
|
400: '#f59332',
|
|
500: '#f2751a',
|
|
600: '#e35a0f',
|
|
700: '#bc4210',
|
|
800: '#953515',
|
|
900: '#792d14',
|
|
},
|
|
gray: {
|
|
50: '#f9fafb',
|
|
100: '#f3f4f6',
|
|
200: '#e5e7eb',
|
|
300: '#d1d5db',
|
|
400: '#9ca3af',
|
|
500: '#6b7280',
|
|
600: '#4b5563',
|
|
700: '#374151',
|
|
800: '#1f2937',
|
|
900: '#111827',
|
|
}
|
|
},
|
|
fontFamily: {
|
|
sans: ['Inter', 'system-ui', 'sans-serif'],
|
|
mono: ['JetBrains Mono', 'monospace'],
|
|
}
|
|
},
|
|
|
|
// Content paths for purging
|
|
content: {
|
|
filesystem: [
|
|
'src/**/*.rs',
|
|
'templates/**/*.html',
|
|
'content/**/*.md'
|
|
]
|
|
},
|
|
|
|
// Custom shortcuts for common patterns
|
|
shortcuts: {
|
|
'btn': 'px-4 py-2 rounded-lg font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2',
|
|
'btn-primary': 'btn bg-primary-600 text-white hover:bg-primary-700',
|
|
'btn-secondary': 'btn bg-gray-200 text-gray-900 hover:bg-gray-300',
|
|
'btn-ghost': 'btn bg-transparent text-gray-700 hover:bg-gray-100',
|
|
'card': 'bg-white rounded-lg shadow-sm border border-gray-200 p-6',
|
|
'input': 'w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500',
|
|
'nav-link': 'text-gray-700 hover:text-primary-600 px-3 py-2 rounded-md text-sm font-medium transition-colors',
|
|
'nav-link-active': 'text-primary-600 bg-primary-50 px-3 py-2 rounded-md text-sm font-medium',
|
|
},
|
|
|
|
// Custom rules for Rustelo-specific patterns
|
|
rules: [
|
|
// Custom spacing for Rustelo layouts
|
|
[/^rustelo-container$/, () => ({ 'max-width': '1200px', 'margin': '0 auto', 'padding': '0 1rem' })],
|
|
[/^rustelo-section$/, () => ({ 'padding': '4rem 0' })],
|
|
[/^rustelo-hero$/, () => ({ 'padding': '8rem 0 6rem' })],
|
|
],
|
|
|
|
// Safelist important classes that might be used dynamically
|
|
safelist: [
|
|
'bg-primary-600',
|
|
'text-primary-600',
|
|
'border-primary-600',
|
|
'ring-primary-500',
|
|
'btn-primary',
|
|
'btn-secondary',
|
|
'btn-ghost',
|
|
'card',
|
|
'nav-link',
|
|
'nav-link-active',
|
|
],
|
|
|
|
// Development configuration
|
|
cli: {
|
|
entry: [
|
|
{
|
|
patterns: ['src/**/*.rs'],
|
|
outFile: 'public/styles/unocss.css'
|
|
}
|
|
]
|
|
}
|
|
}) |