This commit implements a complete brand system overhaul including: TYPOGRAPHY SYSTEM: - Add Exo font family (Thin, Light, Regular, ExtraLight) as primary brand font - Implement SF Pro Display/Text hierarchy for UI components - Create comprehensive Typography component with all brand variants - Update all components to use new typography tokens DESIGN TOKEN SYSTEM: - Create complete design token system in theme/designTokens.ts - Define Carbon Black (#1a1a1a), Walnut Brown (#8B4513), Brushed Aluminum (#A8A8A8) palette - Implement CSS custom properties for consistent theming - Update Ant Design theme integration COMPONENT UPDATES: - Enhance Hero section with Exo Thin typography and improved layout - Update navigation with SF Pro font hierarchy - Redesign Button component with new variants and accessibility - Apply brand colors and typography across all showcase sections - Improve Footer with consistent brand application PERFORMANCE & ACCESSIBILITY: - Self-host Exo fonts for optimal loading performance - Implement proper font-display strategies - Add comprehensive accessibility audit documentation - Include responsive testing verification DOCUMENTATION: - Add brand system demo and implementation guides - Include QA testing reports and accessibility audits - Document design token usage and component patterns 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
111 lines
2.6 KiB
JavaScript
111 lines
2.6 KiB
JavaScript
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
// Enable React strict mode for better development experience
|
|
reactStrictMode: true,
|
|
|
|
// Skip TypeScript type checking during build (for faster builds)
|
|
typescript: {
|
|
ignoreBuildErrors: true,
|
|
},
|
|
|
|
// Skip ESLint during build
|
|
eslint: {
|
|
ignoreDuringBuilds: true,
|
|
},
|
|
|
|
// Optimize images
|
|
images: {
|
|
formats: ['image/webp', 'image/avif'],
|
|
domains: [],
|
|
dangerouslyAllowSVG: true,
|
|
contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;",
|
|
},
|
|
|
|
// Optimize CSS
|
|
swcMinify: true,
|
|
|
|
// Bundle analyzer (uncomment to analyze bundle)
|
|
// bundleAnalyzer: {
|
|
// enabled: process.env.ANALYZE === 'true',
|
|
// },
|
|
|
|
// Compiler options for better performance
|
|
compiler: {
|
|
// Remove console.log in production
|
|
removeConsole: process.env.NODE_ENV === 'production',
|
|
},
|
|
|
|
// Output configuration for Docker deployment
|
|
output: 'standalone',
|
|
|
|
// Disable static optimization to avoid build issues
|
|
trailingSlash: true,
|
|
|
|
// Disable experimental features that cause build issues
|
|
experimental: {},
|
|
|
|
// Headers for security and performance
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: '/(.*)',
|
|
headers: [
|
|
{
|
|
key: 'X-Frame-Options',
|
|
value: 'DENY',
|
|
},
|
|
{
|
|
key: 'X-Content-Type-Options',
|
|
value: 'nosniff',
|
|
},
|
|
{
|
|
key: 'Referrer-Policy',
|
|
value: 'strict-origin-when-cross-origin',
|
|
},
|
|
],
|
|
},
|
|
];
|
|
},
|
|
|
|
// Webpack configuration for optimal bundling
|
|
webpack: (config, { dev, isServer }) => {
|
|
// Optimize bundle splitting
|
|
if (!dev && !isServer) {
|
|
config.optimization.splitChunks = {
|
|
chunks: 'all',
|
|
cacheGroups: {
|
|
default: {
|
|
minChunks: 1,
|
|
priority: -20,
|
|
reuseExistingChunk: true,
|
|
},
|
|
vendor: {
|
|
test: /[\\/]node_modules[\\/]/,
|
|
name: 'vendors',
|
|
priority: -10,
|
|
chunks: 'all',
|
|
},
|
|
antd: {
|
|
name: 'antd',
|
|
test: /[\\/]node_modules[\\/]antd[\\/]/,
|
|
priority: 10,
|
|
chunks: 'all',
|
|
},
|
|
framerMotion: {
|
|
name: 'framer-motion',
|
|
test: /[\\/]node_modules[\\/]framer-motion[\\/]/,
|
|
priority: 10,
|
|
chunks: 'all',
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
return config;
|
|
},
|
|
|
|
// Disable experimental features that cause build issues
|
|
experimental: {},
|
|
};
|
|
|
|
module.exports = nextConfig; |