AMP • TR
2025'te UI/UX tasarım en iyi uygulamaları, kullanıcı deneyimi prensipleri ve modern arayüz tasarımı rehberi. Dönüşüm odaklı tasarım stratejileri.
Modern dijital ürünlerin başarısı, üstün kullanıcı deneyimi (UX) ve çekici kullanıcı arayüzü (UI) tasarımına bağlı. Bu kapsamlı rehberde, 2025'in en iyi UI/UX uygulamalarını ele alıyoruz.
User Interface (UI):
User Experience (UX):
// AI tabanlı kişiselleştirme örneği
const personalizedExperience = {
user: getUserData(),
behavior: analyzeBehavior(),
preferences: getPreferences(),
customize() {
// Dinamik içerik
this.content = AI.generateContent(this.user);
// Öneriler
this.recommendations = AI.getRecommendations(this.behavior);
// Arayüz adaptasyonu
this.interface = AI.adaptUI(this.preferences);
}
};
Küçük ama etkili animasyonlar:
/* Button hover micro-interaction */
.button {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.button:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.button:active {
transform: translateY(0);
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
:root {
--bg: #ffffff;
--text: #000000;
--primary: #0066cc;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #1a1a1a;
--text: #ffffff;
--primary: #4d9fff;
}
}
/* Smooth transition */
* {
transition: background-color 0.3s ease, color 0.3s ease;
}
Büyüklük = Önem
H1 (48px) → En önemli
H2 (36px) → Önemli
H3 (24px) → Orta
Body (16px) → Normal
Caption (14px) → Az önemli
Renkler ve Anlamları:
60-30-10 Kuralı:
.design {
--primary: 60%; /* Ana renk */
--secondary: 30%; /* İkincil renk */
--accent: 10%; /* Vurgu rengi */
}
Optimal Okunabilirlik:
body {
/* Font boyutu */
font-size: clamp(16px, 1.2vw, 18px);
/* Satır yüksekliği */
line-height: 1.6;
/* Karakter genişliği */
max-width: 65ch;
/* Harf aralığı */
letter-spacing: 0.01em;
}
h1, h2, h3 {
line-height: 1.2;
letter-spacing: -0.02em;
}
Font Pairing:
/* Klasik kombinasyon */
body {
font-family: 'Georgia', serif;
}
h1, h2, h3 {
font-family: 'Helvetica Neue', sans-serif;
}
/* 8pt Grid System */
.component {
padding: 24px; /* 3 × 8 */
margin-bottom: 32px; /* 4 × 8 */
gap: 16px; /* 2 × 8 */
}
/* Breathing room */
.text {
margin-bottom: 1.5em; /* Paragraflar arası */
}
User Personas:
Persona: Tech-Savvy Manager
Age: 35-45
Goals:
- Quick decision making
- Data-driven insights
- Mobile access
Pain Points:
- Information overload
- Complex interfaces
- Slow loading times
Behaviors:
- Uses mobile 70% of time
- Multitasking
- Values efficiency
User Interviews:
Homepage
├── Products
│ ├── Category A
│ ├── Category B
│ └── Category C
├── Services
│ ├── Service 1
│ └── Service 2
├── About
└── Contact
├── Support
└── Sales
Low-Fidelity:
High-Fidelity:
// Interactive prototype example
const prototype = {
screens: ['home', 'product', 'checkout'],
navigate(from, to, action) {
// Transition animation
this.animate(from, to);
// Track user flow
this.analytics.track(action);
// Show feedback
this.showFeedback();
},
test() {
return {
taskCompletion: '85%',
timeOnTask: '2.3 min',
errorRate: '5%',
satisfaction: '4.2/5'
};
}
};
A/B Testing:
// A/B test implementation
const variants = {
A: { buttonColor: 'blue', cta: 'Buy Now' },
B: { buttonColor: 'green', cta: 'Get Started' }
};
const winner = ABTest({
variants,
metric: 'conversionRate',
duration: '14 days',
sampleSize: 10000
});
// Result: Variant B +23% conversion
1. Contrast Ratios:
/* Minimum contrast requirements */
.normal-text {
/* 4.5:1 for body text */
color: #595959; /* on white */
}
.large-text {
/* 3:1 for 18pt+ or bold 14pt+ */
color: #767676; /* on white */
}
2. Keyboard Navigation:
/* Visible focus indicator */
:focus {
outline: 3px solid #0066cc;
outline-offset: 2px;
}
/* Skip to main content */
.skip-link {
position: absolute;
top: -40px;
left: 0;
background: #000;
color: #fff;
padding: 8px;
}
.skip-link:focus {
top: 0;
}
3. Semantic HTML:
<!-- ❌ WRONG -->
<div class="button" onclick="submit()">Submit</div>
<!-- ✅ CORRECT -->
<button type="submit">Submit</button>
<!-- Proper heading hierarchy -->
<h1>Main Title</h1>
<h2>Section Title</h2>
<h3>Subsection Title</h3>
4. ARIA Labels:
<!-- Icon buttons -->
<button aria-label="Close dialog">
<svg><!-- close icon --></svg>
</button>
<!-- Form labels -->
<label for="email">Email Address</label>
<input id="email" type="email" required>
<!-- Live regions -->
<div role="status" aria-live="polite">
Item added to cart
</div>
/* Minimum touch target size */
.button, .link {
min-width: 44px;
min-height: 44px;
padding: 12px 24px;
}
/* Spacing between targets */
.button + .button {
margin-left: 8px;
}
// Touch gesture support
const touchHandler = {
swipeLeft() {
// Next item
},
swipeRight() {
// Previous item
},
pinchZoom() {
// Image zoom
},
longPress() {
// Context menu
}
};
/* Skeleton loading animation */
@keyframes loading {
0% {
background-position: -200px 0;
}
100% {
background-position: calc(200px + 100%) 0;
}
}
.skeleton {
background: linear-gradient(
90deg,
#f0f0f0 0px,
#e0e0e0 40px,
#f0f0f0 80px
);
background-size: 200px 100%;
animation: loading 1.5s infinite;
}
<!-- Determinate progress -->
<progress value="70" max="100">70%</progress>
<!-- Indeterminate progress -->
<div class="spinner" role="status">
<span class="sr-only">Loading...</span>
</div>
// ❌ BAD
alert("Error 500: Internal Server Error");
// ✅ GOOD
showError({
title: "Oops! Something went wrong",
message: "We couldn't save your changes. Please try again.",
action: "Retry",
recovery: () => retryOperation()
});
<!-- Inline validation -->
<div class="form-group">
<label for="email">Email</label>
<input
id="email"
type="email"
aria-describedby="email-error"
aria-invalid="true"
>
<span id="email-error" class="error">
Please enter a valid email address
</span>
</div>
// Optimistic UI updates
function addToCart(item) {
// 1. Immediate UI update
updateUI(item);
// 2. Show success feedback
showToast('Added to cart');
// 3. Backend request (async)
api.addToCart(item)
.catch(() => {
// Rollback on error
rollbackUI(item);
showError('Failed to add item');
});
}
<!-- Critical CSS inline -->
<style>
/* Above-the-fold styles */
</style>
<!-- Defer non-critical CSS -->
<link rel="preload" href="styles.css" as="style" onload="this.rel='stylesheet'">
<!-- Lazy load images -->
<img src="hero.jpg" loading="eager">
<img src="below-fold.jpg" loading="lazy">
// Button component variants
const Button = {
variants: {
primary: {
bg: 'blue',
color: 'white'
},
secondary: {
bg: 'gray',
color: 'black'
},
ghost: {
bg: 'transparent',
border: '1px solid'
}
},
sizes: {
sm: { padding: '8px 16px', fontSize: '14px' },
md: { padding: '12px 24px', fontSize: '16px' },
lg: { padding: '16px 32px', fontSize: '18px' }
}
};
{
"colors": {
"primary": "#0066cc",
"secondary": "#6c757d",
"success": "#28a745",
"error": "#dc3545"
},
"spacing": {
"xs": "4px",
"sm": "8px",
"md": "16px",
"lg": "24px",
"xl": "32px"
},
"typography": {
"fontFamily": {
"sans": "Inter, sans-serif",
"mono": "Fira Code, monospace"
},
"fontSize": {
"sm": "14px",
"base": "16px",
"lg": "18px"
}
}
}
/* High-converting CTA button */
.cta-button {
/* Visibility */
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
font-weight: 600;
/* Size */
padding: 16px 32px;
font-size: 18px;
/* Shape */
border-radius: 8px;
border: none;
/* Interaction */
cursor: pointer;
transition: transform 0.2s;
}
.cta-button:hover {
transform: scale(1.05);
box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
F-Pattern (Content-heavy pages):
┌─────────────────────┐
│████████████ │ ← Header
│████████ │ ← First paragraph
│██ │
│████████ │ ← Second paragraph
│██ │
│████ │ ← Third paragraph
└─────────────────────┘
Z-Pattern (Landing pages):
┌─────────────────────┐
│█████████████████████│ ← Top bar
│ ↘ │
│ ████████ │ ← CTA
│ ↙ │
│████████ │ ← Footer CTA
└─────────────────────┘
const uxMetrics = {
// Task success rate
taskSuccess: '87%',
// Time on task
avgTimeOnTask: '2.3 minutes',
// Error rate
errorRate: '3%',
// System Usability Scale (SUS)
susScore: 78, // > 68 is above average
// Net Promoter Score (NPS)
nps: 42, // Promoters - Detractors
// Customer Satisfaction (CSAT)
csat: '4.5/5'
};
2025'te başarılı UI/UX tasarım:
Hatırlanacaklar:
Profesyonel UI/UX tasarım hizmeti için bizimle iletişime geçin! 🎨
📧 iletisim@cesayazilim.com
📞 +90 850 225 53 34