Photo by Balázs Kétyi on Unsplash

REACT SAMPLES

React Icon Samples

Bu bölümde React projelerinde Icon ile nasıl çalıştığımı, bunlar üzerinde yaptığım örnek ve denemelerden bahsedeceğim.

4 min readApr 12, 2024

--

Icon’lar anlatmak istediğimiz hikayeleri daha sade, daha basit bir şekilde anlatmamızı sağlayan küçük resimlerdir.

Her düğmeyi, hep açıklamayı metin ile uzun uzun yapmak bazen karmaşaya ve ekranın yoğun gözükmesine neden olur. Bu anlatımları iconlar ile veriyor olmak hem işleri hemde kullanabilirliği arttırır.

Bu bölümde Icon’lar ile ilgili yaptığım denemelerden ve örneklerden bahsedeceğim.

Örneklere başlamadan önce bu konuda yazmış olduğum blog yazılarından bazılarını burada paylaşmak istiyorum.

1. Icon With Badge

Özellikle alarm/bildirim sayılarını göstermek için icon ve bunun üzerinde bir sayı gösteririz. Aşağıdaki örnekte bir icon ve bunun sol üst köşesinde badge sayısını eklediğim bir örnek gerçekleştirdim.

https://onurdayibasi.dev/icon-width-badge

Icon with Badge 2 kısımdan oluşuyor. Bir iconun kendisi , bir diğeride badge dediğimiz kırmızı çember içerisindeki yazı kısmı

Şimdi gelin bu bileşeni nasıl geliştirdiğimizi bir inceleyelim. Burada icon için AntdIcons kullanıyoruz. AntDIcons üzerinde Badge Container ekliyoruz.

import {useEffect, useState} from 'react';

import {AntdIcons} from '@od/knowledges/icon/components/AntdIcons/AntdIcons';

import './IconWithAlarmCount.scss';

const IconWithAlarmCount = (props) => {
const [alarmCount, setAlarmCount] = useState(props.alarmCount);

useEffect(() => {
if (props.alarmCount > -1 && props.alarmCount !== alarmCount) {
setAlarmCount(props.alarmCount);
}
}, [props.alarmCount, alarmCount]);

return (
<div className="icon-with-badge-container">
<AntdIcons.DeleteOutlined style={{fontSize: '20px'}} />
<div className="badge-container">{alarmCount > 0 && <div className="badge-text">{alarmCount}</div>}</div>
</div>
);
};

export default IconWithAlarmCount;

Şimdi gelin Styling nasıl Scss içerisinde gerçekleştirdiğimize bir bakalım.

.icon-with-badge-container {
position: relative;
padding: 5px;

.badge-container {
position: absolute;
top: 0px;
right: 0px;

height: 100%;
width: 16px;
max-width: 16px;
min-width: 16px;

.badge-text {
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;

font-size: 9px;
line-height: 12px;
border-radius: 7px;
height: 14px;
min-width: 14px;
max-width: 14px;
background-color: #ff3924;
color: white;
}
}
}

Not: Badge şeklinde hazır iconlar halinde UI Bileşen kütüphanelerinde de bulunmaktadır.

2. Different Icon Set

Bu örnekte farklı icon gruplarından faydalanarak bir icon set oluşturmak isteyelim. Icon ve benzeri bir kütüphane kullanırken, bu icon setlerinin tüm icon türlerini desteklemediği durumlar olabilir ve uygulamanız için diğer icon kümelerinden alternatif iconlar seçmeniz gerekir.

Bu durumda aşağıdaki gibi native bir yönden faydalanabilirsiniz.

Veya farklı iconları icomoon tarzı bir uygulamada bir icon set haline getirip bunu kendi projeniz için özelleştirebilirsiniz. Aşağıdaki örnek icomoon kullanarak gerçekleştirilmiştir.

https://onurdayibasi.dev/icon_test1

3. AWS Icons

AWS Iconlarını kullanarak farkı opsiyonlar ile AWS Iconlarını kullanabilecek altyapı geliştirdim.

https://onurdayibasi.dev/icon_with_aws

4. AWS Icon Grouping Resources

Bu örnek bir AWS Mimari Hizmet Kaynakları Icon Görüntüleme uygulamasıdır. Iconlar Topoloji ve Mimari Tasarımı için ve Listelerde kullanılır.

https://onurdayibasi.dev/icon_with_aws2

5. AWS Icon & Info

Bu örnek bir AWS Icon ve Bilgilendirme uygulamasıdır. Iconlar Topoloji ve Mimari Tasarım ve Listelerde kullanılır.

https://onurdayibasi.dev/icon_with_aws3

6. AWS Icon Categories

Bu örnek bir AWS Hizmetleri uygulamasıdır. Iconlar hizmet kategorilerine göre gruplandırılmıştır

https://onurdayibasi.dev/icon_with_aws4

7. Antd Icons

Aşağıda Antd Icons ile ilgili örneği görebilirsiniz. Öncelikle iconları istediğim rotation verebiliyorum. Hatta iconların sürekli dönmesini direk API üzerinden sağlayabiliyorum.

  • <Icon/>
  • <Icon rotate={50}/>
  • <Icon spin/>
https://onurdayibasi.dev/icon_antd

Veye iconları farklı fontSize ve color ve tonlarda çizilmesinide gerçekleştirebiliyoruz.

8. Phosphor Icons

Antd Icons ile birçok icon yeteneğine sahip olsakta, icon çeşitliliği açısından phosphor icons oldukça zengin bir icon grubuna sahip

https://onurdayibasi.dev/icon_phosphor

Phosphor Icons da benzer şekilde farklı font weight iconlar oluşturabiliyoruz.

  • Thin
  • Light
  • Regular
  • Bold
  • Fill
  • Duetone

Renklerini ve boyutlarını ayarlayabiliyoruz.

9. Fav Icons

Web sayfalarının Domain isimlerinden iconlarını bulmasını sağlayacak bir API

https://www.google.com/s2/favicons?domain=${domain}&sz=32
https://onurdayibasi.dev/icon_favicon

Bu API de söyle bir durum var sadece bu domain için FavIcon yoksa boş bir resim dönüyor

Ve bu yukarıdaki 404 hatalarını <img onerror> yakalama şansınız yok. Bu durumda bu iconun fav iconu olup olmadığını anlayıp kendi iconunuzu koyamazsınız.

Bunun bir alternatif yöntemi Fetch işlemi ile önceki iconu çekmeye çalışıp sonrasında validation işlemlerini gerçekleştirmek.

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--