Website config Update

This commit is contained in:
2025-11-28 06:17:25 +00:00
parent 88b068a2b5
commit 8cdb39afbe
11 changed files with 949 additions and 813 deletions
+238
View File
@@ -0,0 +1,238 @@
// ============================================================================
// TERMINAL DISPLAY SETTINGS
// ============================================================================
export type SpeedPreset = 'instant' | 'fast' | 'normal' | 'slow' | 'typewriter';
export const terminalSettings = {
// Base typing speed in ms per character (will be adjusted by content length)
baseTypeSpeed: 20,
// Minimum typing speed (fastest)
minTypeSpeed: 5,
// Maximum typing speed (slowest)
maxTypeSpeed: 50,
// Delay before starting to type (ms)
startDelay: 300,
// Delay between lines (ms)
lineDelay: 100,
// Show cursor
showCursor: true,
// Prompt style
promptStyle: 'full' as 'full' | 'short' | 'minimal',
// Terminal icon (emoji or text)
icon: '🐧',
// Scroll margin when navigating buttons (px)
scrollMargin: 80,
};
// ============================================================================
// TUI (Terminal UI) STYLING
// ============================================================================
export const tuiStyle = {
// Border & container
borderRadius: 8, // px
borderWidth: 2, // px
width: '95%',
borderGlowOpacity: 0.5,
borderGlowBlur: 4, // px
// Header
headerPadding: '0.5rem 0.75rem',
headerFontSize: '0.8rem',
// Body
bodyPadding: '1rem 1.25rem 2rem 1.25rem',
bodyFontSize: '0.9rem',
lineHeight: 1.7,
lineMinHeight: '1.7em',
blankLineHeight: '0.5em',
// Divider
dividerMargin: '0.75rem 0',
// Images
imageBorderRadius: 6, // px
defaultImageWidth: 300, // px
// Cursor
cursorWidth: 8, // px
// Scrollbar
scrollbarWidth: 6, // px
// Footer/Statusbar
statusbarPadding: '0.4rem 0.75rem',
statusbarFontSize: '0.75rem',
hintFontSize: '0.7rem',
hintBorderRadius: 3, // px
// Buttons
buttonPadding: '0.5rem 0.75rem',
buttonMargin: '0.2rem 0',
buttonBorderRadius: 4, // px
buttonFontSize: '0.9rem',
buttonIndicatorFontSize: '0.8rem',
buttonIndicatorWidth: '1rem',
};
// ============================================================================
// TUI TEXT & INDICATORS
// ============================================================================
export const tuiText = {
// Status text
loading: 'Loading...',
ready: 'Ready',
skipButton: 'Skip (Y)',
tuiLabel: 'TUI',
// Keyboard hints
hints: {
navigate: '↑↓ navigate',
select: '⏎ select',
toggle: 'T theme',
},
// Line prefixes
prefixes: {
error: '✗ ',
success: '✓ ',
info: ' ',
warning: '⚠ ',
command: '$ ',
},
// Button indicators
buttonIndicator: {
selected: '▶',
unselected: ' ',
},
};
// ============================================================================
// Per-page speed settings (override global settings)
// Use preset names or custom multiplier (0.1 = 10x faster, 2 = 2x slower)
// ============================================================================
export const pageSpeedSettings: Record<string, SpeedPreset | number> = {
// Examples:
// 'home': 'fast', // Fast typing on home page
// 'portfolio': 'normal', // Normal speed
// 'models': 'instant', // No typing animation
// 'hackathons': 0.5, // Custom: 2x faster than normal
'home': 'fast',
'portfolio': 'fast',
'models': 'fast',
'projects': 'fast'
};
// Per-page autoscroll settings (whether to auto-scroll as content types)
// Set to false to disable autoscroll on specific pages
export const pageAutoscrollSettings: Record<string, boolean> = {
// Examples:
// 'home': true, // Enable autoscroll
// 'portfolio': false, // Disable autoscroll
'home': true,
'portfolio': false,
'models': false,
'projects': false,
'components': false
};
// Speed preset multipliers (lower = faster)
export const speedPresets: Record<SpeedPreset, number> = {
'instant': 0, // No delay, instant display
'fast': 0.1, // 3x faster
'normal': 0.5, // Default speed
'slow': 1.5, // 2x slower
'typewriter': 2 // 3x slower, classic typewriter feel
};
// ============================================================================
// MODEL VIEWER (3D)
// ============================================================================
export const modelViewer = {
// Container
borderRadius: 8, // px
minHeight: 300, // px
headerPadding: '0.5rem 0.75rem',
nameFontSize: '0.85rem',
// Controls
controlButtonSize: 28, // px
controlButtonBorderRadius: 4, // px
fullscreenZIndex: 100,
fullscreenTopOffset: 60, // px (navbar height)
// Camera
cameraFov: 45,
cameraNear: 0.1,
cameraFar: 1000,
cameraZ: 2.5, // initial camera distance
// Controls behavior
controlsMinDistance: 1,
controlsMaxDistance: 10,
dampingFactor: 0.05,
autoRotateSpeed: 2,
// Model
modelScale: 1.5,
// Ground plane
groundColor: 0x222222,
groundOpacity: 0.3,
// Lighting
ambientIntensity: 0.6,
directionalIntensity: 0.8,
lightColor: 0xffffff,
rimLightColor: 0x88ccff,
// Text
loadingText: 'Loading model...',
errorText: 'Failed to load model',
hints: {
rotate: 'Drag to rotate',
zoom: 'Scroll to zoom',
},
// Timing
resizeTimeout: 100, // ms
};
// ============================================================================
// PARTICLES (3D Background)
// ============================================================================
export const particles = {
count: 600,
spreadArea: 20,
size: 0.05,
velocityRange: 0.01,
// Opacity
darkOpacity: 0.6,
lightOpacity: 0.4,
// Motion
waveAmplitude: 0.001,
waveFrequency: 0.1,
boundary: 10, // wrap boundary
rotationSpeedY: 0.05,
rotationSpeedX: 0.02,
};
// ============================================================================
// KEYBOARD SHORTCUTS
// ============================================================================
export const keyboardShortcuts = {
skip: ['y', 'Y'], // Skip typing animation
toggleTheme: ['t', 'T'], // Toggle dark/light mode
navigateUp: ['ArrowUp', 'k'],
navigateDown: ['ArrowDown', 'j'],
select: ['Enter'],
};