Renk: #FFFFFF
Web'de renkler genellikle hexadecimal (16'lık taban) formatında gösterilir. #RRGGBB formatında, her iki karakter bir renk bileşenini (R=Kırmızı, G=Yeşil, B=Mavi) temsil eder.
Hex renk kodları 0-9 ve A-F karakterlerini kullanır:
const hex = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F'];
// Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// Her karakter 0-15 arası bir değeri temsil eder
// 0-9: sayılar
// A-F: 10-15 arası değerler
Math.random() fonksiyonu 0 ile 1 arasında rastgele bir sayı üretir:
function getRandomNumber() {
// Math.random() → 0 ile 1 arası (örn: 0.54321)
// hex.length → 16
// Math.random() * 16 → 0 ile 16 arası (örn: 8.69136)
// Math.floor() → en yakın tam sayıya yuvarla (örn: 8)
return Math.floor(Math.random() * hex.length);
}
// Örnekler:
Math.random() // 0.234567
Math.random() * 16 // 3.753072
Math.floor(Math.random() * 16) // 3 (0-15 arası)
6 karakterli hex kodu oluşturmak için döngü kullanılır:
function generateHexColor() {
let hexColor = "#"; // Başlangıç
// 6 karakter için döngü
for (let i = 0; i < 6; i++) {
const randomIndex = getRandomNumber();
const hexChar = hex[randomIndex];
hexColor += hexChar; // String'e ekle
}
return hexColor;
}
Adım Adım Örnek:
// İterasyon 1: hexColor = "#" + "F" = "#F"
// İterasyon 2: hexColor = "#F" + "A" = "#FA"
// İterasyon 3: hexColor = "#FA" + "3" = "#FA3"
// İterasyon 4: hexColor = "#FA3" + "B" = "#FA3B"
// İterasyon 5: hexColor = "#FA3B" + "0" = "#FA3B0"
// İterasyon 6: hexColor = "#FA3B0" + "C" = "#FA3B0C"
// Sonuç: #FA3B0C
+= operatörü string'in sonuna karakter ekler:
let str = "Hello";
str += " World"; // str = "Hello World"
// Alternatif:
str = str + " World"; // Aynı sonuç
Oluşturulan renk kodunu hem metin hem de arka plan rengi olarak uygula:
const hexColor = "#FA3B0C";
// Metin rengini değiştir
colorElement.style.color = hexColor;
// Metin içeriğini güncelle
colorElement.textContent = hexColor;
// Arka plan rengini değiştir
colorPaletteElement.style.backgroundColor = hexColor;
Farklı yuvarlama yöntemleri:
Math.floor(3.7) // 3 (aşağı yuvarla)
Math.ceil(3.2) // 4 (yukarı yuvarla)
Math.round(3.5) // 4 (en yakın tam sayıya yuvarla)
// Rastgele sayılar için Math.floor() kullanılır
// çünkü 0-15 arası index istiyoruz
RGB Formatı ile:
function generateRGBColor() {
const r = Math.floor(Math.random() * 256); // 0-255
const g = Math.floor(Math.random() * 256);
const b = Math.floor(Math.random() * 256);
return `rgb(${r}, ${g}, ${b})`;
}
Belirli Bir Ton Aralığı:
// Sadece koyu renkler (0-7 arası)
function generateDarkColor() {
const darkHex = [0, 1, 2, 3, 4, 5, 6, 7];
let hexColor = "#";
for (let i = 0; i < 6; i++) {
const randomIndex = Math.floor(Math.random() * darkHex.length);
hexColor += darkHex[randomIndex].toString(16).toUpperCase();
}
return hexColor;
}