commit 6fbf2538e87306fff52d4dbe0e38cbebda5b3810 Author: Serdar Torun Date: Sun Mar 1 23:24:27 2026 +0300 Initial architecture with i18n diff --git a/assets/css/style.css b/assets/css/style.css new file mode 100644 index 0000000..44c04ec --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,66 @@ +/* Custom Styles for serdartorun.dev */ + +:root { + --navy: #0a192f; + --light-navy: #112240; + --lightest-navy: #233554; + --cyber-green: #64ffda; + --slate: #8892b0; + --white: #e6f1ff; +} + +body { + background-color: var(--navy); + scroll-behavior: smooth; + transition: all 0.3s ease; +} + +/* Custom Scrollbar */ +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + background: var(--navy); +} + +::-webkit-scrollbar-thumb { + background: var(--lightest-navy); + border-radius: 10px; +} + +::-webkit-scrollbar-thumb:hover { + background: var(--cyber-green); +} + +/* Glassmorphism Cards */ +.glass-card { + background: rgba(17, 34, 64, 0.7); + backdrop-filter: blur(10px); + border: 1px solid rgba(100, 255, 218, 0.1); + transition: transform 0.3s ease, border 0.3s ease; +} + +.glass-card:hover { + transform: translateY(-5px); + border-color: var(--cyber-green); +} + +/* Typewriter Effect for Hero */ +.mono { + font-family: 'Space Mono', 'Roboto Mono', monospace; +} + +/* Lang Switcher Active State */ +button.active-lang { + color: var(--cyber-green); + border-color: var(--cyber-green); + background: rgba(100, 255, 218, 0.1); +} + +/* Background Grid Effect (Defense System Vibe) */ +.bg-grid { + background-image: radial-gradient(var(--lightest-navy) 1px, transparent 1px); + background-size: 40px 40px; + opacity: 0.3; +} \ No newline at end of file diff --git a/assets/js/i18n.js b/assets/js/i18n.js new file mode 100644 index 0000000..e297f0d --- /dev/null +++ b/assets/js/i18n.js @@ -0,0 +1,17 @@ +async function updateContent(lang) { + const response = await fetch('./assets/js/lang.json'); + const translations = await response.json(); + + document.querySelectorAll('[data-i18n]').forEach(element => { + const key = element.getAttribute('data-i18n'); + element.textContent = translations[lang][key]; + }); + + localStorage.setItem('preferredLang', lang); +} + +// Sayfa yüklendiğinde varsayılan dili kontrol et +document.addEventListener('DOMContentLoaded', () => { + const savedLang = localStorage.getItem('preferredLang') || 'tr'; + updateContent(savedLang); +}); \ No newline at end of file diff --git a/assets/js/lang.json b/assets/js/lang.json new file mode 100644 index 0000000..59c1046 --- /dev/null +++ b/assets/js/lang.json @@ -0,0 +1,20 @@ +{ + "tr": { + "nav_pillars": "Uzmanlık Alanları", + "nav_projects": "Projeler", + "hero_title": "Organizasyonel Kalite Mimarı", + "hero_subtitle": "Savunma & Trading için AI Destekli V&V", + "hero_desc": "Formal test süreçlerini AI orkestrasyonu ile birleştirerek, kritik sistemlerde doğrulanabilir kalite standartları inşa ediyorum.", + "cta_projects": "Projeleri İncele", + "evidence_btn": "Kanıt Paketini İndir" + }, + "en": { + "nav_pillars": "Expertise Pillars", + "nav_projects": "Projects", + "hero_title": "Organizational Quality Architect", + "hero_subtitle": "AI-Driven V&V for Defense & Trading", + "hero_desc": "Bridging formal testing processes with AI orchestration to build verifiable quality standards in mission-critical systems.", + "cta_projects": "Explore Projects", + "evidence_btn": "Download Evidence Pack" + } +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..a209547 --- /dev/null +++ b/index.html @@ -0,0 +1,34 @@ + + + + + + Serdar Torun | Quality Architect + + + + + + + +
+

+

+

+
+ + +
+
+ + + + + \ No newline at end of file