Symbol Typeface - ikonki pod kontrolą
Nie ważne czy wierzysz w badania nad przyzwyczajeniami i skojarzeniami, chcesz by Twoja strona była przyjemna dla oka odwiedzających, czy też po prostu chcesz by użytkownicy mogli szybko dowiedzieć się do czego służy dany element - w tej czy innej postaci na Twojej stronie pewnie znajdują się jakieś ikonki.
Moje logo musi być większe!
Każdy kto tworzył kiedykolwiek stronę internetową wie ile wiąże się z tym problemów - często koncepcja zmienia się parokrotnie, raz zmieniamy kształt, raz kolor, innym razem dodajemy cień. Dla polepszenia wydajności strony montujemy nasze ikonki w sprite by przeglądarka nie musiała pobierać dziesiątek obrazków. W takim wypadku zmiana ciągnie za sobą konieczność zmiany sprite, a nie daj Bóg klient wymyśli sobie, by ikonka była większa - nasz idealnie wykalkulowany sprite wziął w łeb i dopychamy kolejny symbol. No i nie wspominajmy już o problemie skalowania - często obrazki wykorzystane w tle po prostu nie chcą skalować się tak, jak byśmy tego oczekiwali.
Z pomocą przychodzi nam stosowanie czcionek, w których zamiast liter (pozwolę sobie na takie uproszczenie) autorzy osadzili różne często wykorzystywane ikony czy logotypy. Jedną z takich czcionek jest WebSymbols.
Jeżeli zajrzymy na stronę projektu - a nasza przeglądarka obsługuje @font-face - ujrzymy zestawienie symboli i logotypów. Nie są to jednak obrazki, ale glify (znowu upraszczam) ze wspomnianej czcionki - każdy zastępuje jedną literę, znak czy cyfrę.
Ok, ale po co mi kolejny "sprite"?
Dzięki takiemu rozwiązaniu możemy utworzyć coś na kształt spritu obrazków, jednak zawierać będzie on tylko symbole. Co ciekawsze, możemy zmieniać ich rozmiar (font-size), kolor (color) oraz tło (background). Możemy także pójść na całość - dodać cień, albo proste animacje (na powyższej stronie animacja "ładowania" to po prostu element, którego zawartość zamieniana jest na kolejne cyfry z zestawu 1 - 7). Oto przykład ze strony powyżej:
Każdy z tych elementów wyświetlony został bez użycia obrazków - dodatkowy efekt wygładzenia zależny jest od konfiguracji przeglądarki i systemu operacyjnego.
Dodatkowo, czcionka w najpopularniejszym (pod wzg. obsługi przez przeglądarki) formacie - TTF - to jedyne 12kb - dużo mniej niż umieszczenie wszystkich tych symboli jako grafika.
Jedno ale ...
Niestety, jeżeli czcionka nie zawiera interesującego nas elementu mamy 3 wyjścia:
- znaleźć inną, która będzie go zawierać (np. Fico, rozwiązanie płatne)
- zastosować element graficzny
- przygotować własny zestaw glifów i stworzyć własną czcionkę
Przyznam, że osobiście nie miałem jeszcze okazji wykorzystać tego rozwiązania w większym projekcie, ale podczas testów wewnątrz firmy nie napotkałem żadnych problemów ze stosowaniem tej techniki.
Komentarze
Komentarz użytkownika zx
08 12 2011Kurcze, fajne! Prosty sposób na wektory na stronach. Choć w sumie można by użyć SVG.
Komentarz użytkownika BTM
08 12 2011W paczce z czcionką znajdziesz także plik websymbols-regular-webfont.svg, dla przeglądarek, które obsługują/preferują ten format :)
Komentarz użytkownika skoruppa
08 12 2011Dwa super użyteczne wpisy pod rząd :D dzięki! Zasłużyłeś na subskrypcje :) Czekam z niecierpliwością na kolejne wpisy!
Komentarz użytkownika Januszek
09 12 2011Ej, ale to chyba nie jest takie różowe i w ogóle - te ikonki twitterra, linkedina i bloggera (?) będą wyglądały tak ładnie tylko na takim tle - na czarnym te wszystkie białe miejsca będą czarne, rajt?
Komentarz użytkownika jam łasica
09 12 2011sf.net stosuje chyba coś podobnego, przykład: http://sourceforge.net/projects/vlc/files/ (ikona RSS lub folderu)
Tylko po wyłączeniu opcji gfx.downloadable_fonts.enabled w Fx, wszystko wygląda dziwnie ;)
Komentarz użytkownika BTM
09 12 2011@Januszek: tak, nie jest to rozwiązanie doskonałe - przy definiowaniu fontów nie możesz określić, że któryś element musi być zawsze biały etc.
@jam łasica: SF używa płatnej czcionki Pictos. Przy wyłączeniu opcji pobierania / wyświetlania czcionek ... cóż - nie wygląda to różowo. Gdyby IE obsługiwało :before/:after i content można by się postarać o fajny fallback - a tak zostaje nam mieć nadzieję, że nikt sobie tego nie wyłączy ;)
Komentarz użytkownika Piotrek Koszuliński
09 12 2011Jak chciałem z tych ikon skorzystać jakieś pół roku temu, to niestety eksplodował mi Google Chrome za każdym razem kiedy wchodziłem na stronę je wykorzystującą :).
Sam pomysł jest ciekawy, ale to trochę z cyklu "interesujące hacki". Nie wiem czy zdecydowałbym się szerzej wykorzystać tę metodę, bo potencjalna ilość problemów jest dosyć duża.
Komentarz użytkownika trójkąt
09 12 2011Zawsze można wykorzystać też znaczki UTF - http://tools.arantius.com/utf?f=9472&t=9841
Komentarz użytkownika BTM
09 12 2011Jasne, jeżeli chcesz mieć ramki jak w DOS ;) A tak poważniej - oczywiście, że można, jednak domyślnie nie ma wśród nich praktycznie nic co nadawało by się na strony (poza strzałkami etc.)
Komentarz użytkownika jwest
29 12 2011Ja również nie wiem czy skorzystałbym z tego typu rozwiązania, ale napewno mogę polecić proste i genialne narzędzie tworzące sprity z automatu: http://draeton.github.com/stitches/. Wrzucamy pliki i dostajemy obrazek oraz klasy css. Dzięki takiemu automatycznemu podejściu zawsze możemy wygenerować plik na nowo oraz nadpisać css aby dorzucić kilka grafik ;)