Hi Sobat… ketika kita  browsing dan membuka berbagai website, sering kita temui  berbagai social media button dengan berbagai efek menarik,.
Efek tersebut biasanya muncul ketika kita arahkan mouse diatasnya (:hover), nah bagi yang penasaran bagaimana cara membuatnya, pada kesempatan ini kita akan membahasnya lebih dalam.
Kita akan buat beberapa button, tepatnya 15 button  dengan efek  seperti  ini:
Jika sobat ingin langsung memakainya bisa langsung diklik tombol download, tinggal diedit file css-nya sesuai keperluan. Jika ingin melihat demo secara keseluruhan, silakan klik tombol demo.Pembahasan dibagi menjadi dua bagian, untuk bagian II dapat diikuti  pada link: Membuat 15 Efek Social Media Button Dengan CSS Part II.
I. Â Persiapan
Sebelum kita membuat efek social media button, terlebih dahulu kita lakukan beberapa persiapan
Dukungan Browser
Efek yang  dibahas pada  tutorial ini dapat berjalan dengan baik di browser modern, karena browser tersebut telah mendukung css property transition.
Property ini merupakan komponen utama untuk membuat  perpindahan element menjadi halus.
Khusus untuk Internet Explorer property ini hanya dapat berjalan dengan baik di versi 10 keatas, karena untuk versi 9 kebawah tidak mendukung property transition dan property sejenis yang berkaitan dengan animasi.
Icon Font
Sebelum masuk ke pembahasan, perlu untuk dibahas jenis icon yang digunakan.
Pada tutorial ini kita menggunakan  icon font, saya mengambilnya dari iconmoon, salah satu penyedia layanan icon font  yang bagus dan populer.
Icon tersebut bisa langsung digunakan dengan menambahkan class dengan awalan icon-, misal icon-facebook, namun agar lebih fleksibel, kita akan mendefinisikannya sendiri.
Untuk definisi awal, kita buat terlebih dahulu file css yaitu  effect_main_single.css, file tersebut  akan selalu kita gunakan di setiap pembahasan, selanjutnya isikan css rule pada file tersebut:
@font-face {
font-family: 'icomoon';
src:url('fonts/icomoon/icomoon.eot?w6aef1');
src:url('fonts/icomoon/icomoon.eot?w6aef1#iefix') format('embedded-opentype'),
url('fonts/icomoon/icomoon.ttf?w6aef1') format('truetype'),
url('fonts/icomoon/icomoon.woff?w6aef1') format('woff'),
url('fonts/icomoon/icomoon.svg?w6aef1#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
a {
font-family: icomoon;
font-size: 40px;
line-height: 65px;
speak: none;
color: #5D5D5D;
text-decoration: none;
text-align: center;
display: inline-block;
position: relative;
width: 64px;
height: 64px;
overflow: hidden;
transition: all .3s;
}
a:before,
a:after {
transition: all .3s;
}
Pada definisi awal ini, element <a> yang merupakan element utama kita buat dimensinya sebesar 64 x 64px, dengan font family icomoon, akan membuat element <a> dan childrennya hanya dapat diisi  icon.
Maksudnya bisa diisikan teks lain tapi jenis font-nya tetap icomoon sehingga tidak pas, karena memang pada tutorial ini kita hanya akan memakai icon.
Struktur Folder
Untuk struktur foldernya, kita buat folder misal  Sample CSS Effect untuk menyimpan file html, kemudian didalamnya kita buat folder css untuk menyimpan file  effect_main_single.css dan folder icon_fonts/icomoon untuk menyimpan file fonts.
Struktur foldernya seperti tampak pada gambar berikut:
untuk setiap pembahasan, Â sobat bisa langsung klik Demo Single untuk melihat langsung source code yang digunakan.
II. Membuat Social Media Button Dengan Efek Menarik
1. Efek 1: Membuat efek slide up pada icon dengan cssTop
Untuk membuat efek ini, element yang kita perlukan adalah:
- Element
<a>sebagai element  utama dengan background warna abu-abu terang. - Pseudo element Â
:beforedengan  icon berwarna abu-abu, tanpa background dan - Pseudo element
:afterdengan  icon berwarna putih, tanpa background.
Transisi element seperti tampak pada contoh dibawah (arahkan cursor diatas icon, atau jika menggunakan layar sentuh, touch  dan tahan):
contoh untuk beberapa set icon:
Pada contoh  diatas, kotak berwarna biru adalah element :before sedangkan yang berwarna hijau  adalah element :after
Kode HTML yang kita gunakan  adalah:
<a class="fb" href="#"></a>
Sedangkan untuk css nya:
.fb{
background-color: #EAEAEA;
}
.fb:before,
.fb:after {
content: "f09a";
position: absolute;
width: 100%;
height: 100%;
left: 0;
}
.fb:before {
top: 0;
}
.fb:after {
top: 100%;
color: #FFFFFF;
}
.fb:hover {
background-color: #3b5998;
}
.fb:hover:after {
top: 0;
}
.fb:hover:before {
top: -100%;
}
Demo Single
Penjelasan:
- Baris 15 Â akan memposisikan element
:afterdi sebelah bawah element<a>, - Ketika terjadi event
:hover, baris 24  akan menggeser element:beforekeatas dan baris 27  akan  menggeser element:afterkeatas.
2. Efek 2: Membuat efek slide up-down pada icon dengan css  Top
Efek ini sama seperti efek nomor 1, baik penggunaan element maupun posisi element, bedanya element :before  akan bergeser ke bawah, tidak keatas. Transisi element  seperti tampak pada icon  berikut:
contoh untuk beberapa set icon:
Keterangan:  kotak dengan border berwarna  biru adalah element :before sedangkan yang berwarna hijau  adalah element :after
Kode HTML yang kita perlukan:
<a class="dribbble" href="#"></a>
Sedangkan kode css nya sama seperti efek nomor 1 hanya pada line 27 diubah dari top: -100% menjadi top: Â 100%. Demo Single
3. Efek 3: Membuat efek slide to right pada icon  dengan cssTop
Efek ini juga sama seperti efek sebelumnya, bedanya jika pada efek sebelumnya  transisi terjadi pada  warna background element <a>, pada efek ini element yang digeser memiliki background sendiri.
Element yang kita gunakan juga sama  yaitu:
- Element
<a>yang berperan sebagai container, dengan background abu-abu terang. - Pseudo element Â
:beforedengan  icon berwarna abu-abu, tanpa background, dan - Pseudo element
:afterdengan  icon berwarna putih dengan background berwarna hijau.
Transisi element tampak sebagai berikut:
contoh untuk beberapa set icon:
pada icon diatas, element dengan border berwarna biru merupakan element :before, sedangkan yang berwarna hijau merupakan element :after
Kode HTML yang kita perlukan:
<a class="su" href="#"></a>
Sedangkan untuk css nya:
.su {
background-color: #EAEAEA;
}
.su:before,
.su:after {
position: absolute;
content: "f1a4";
width: 100%;
height: 100%;
}
.su:before {
top: 0;
left: 0;
}
.su:after {
top: 0;
left: -100%;
background-color:#5FBB4C;
color: #FFFFFF;
}
.su:hover:before{
left:100%;
}
.su:hover:after{
left:0;
}
Demo Single
Penjelasan:
- Baris 17 akan membuat element
:afterberada di sebelah kiri. - Saat terjadi event
:hover, baris 22 dan 25 masing-masing akan menggeser element:beforedan:afterke kanan.
4. Efek 4: Membuat efek kubus (cube) pada icon  dengan cssTop
Efek ini akan membuat element berputar seperti kubus, untuk transisi elemennya  terdapat dua macam bentuk, yaitu:
a. Transisi  menyerupai kubus
Pada efek ini, transisi seolah olah menyerupai kubus, namun bukan benar-benar kubus karena sedikit terjadi overlap antar element.
Dengan nilai transisi yang kecil, overlap tersebut tidak kelihatan, yang tampak adalah pergeseran yang halus, ditambah dengan efek fade in-out akan memperindah  efek yang dihasilkan.
Untuk membuat efek ini, element yang kita perlukan adalah:
- Element
<a>yang berperan sebagai container dan perspective 3D untuk element childrennya (:beforedan:after), namun secara visual tidak terlihat. - Pseudo element Â
:beforedengan  icon dan dengan  background warna tertentu, dan - Pseudo element
:afterdengan  icon dan  background warna tertentu.
Transisi element seperti tampak pada contoh berikut:
contoh untuk beberapa set icon:
Pada contoh diatas, element dengan border berwarna merah adalah  element <a>, yang berwarna biru adalah element :after, dan yang berwarna hijau adalah element :after.
Kode HTML yang diperlukan:
<a class="gplus" href="#"></a>
sedangkan css rule nya:
.gplus {
background:none
overflow: visible;
perspective: 300px;
}
.gplus:before,
.gplus:after {
position: absolute;
top: 0;
left: 0;
content: "f0d5";
width: 100%;
height: 100%;
}
.gplus:before {
z-index: 1;
background-color: #EAEAEA;
}
.gplus:after {
background-color: #d34836;
color: #FFFFFF;
opacity: 0;
transform: translateY(33px) rotateX(-90deg);
}
.gplus:hover:before{
opacity: 0;
transform: translateY(-33px) rotateX(90deg);
}
.gplus:hover:after{
opacity: 1;
transform: rotateX(0);
}
Demo Single
Penjelasan:
- Perspective pada baris nomor 3 digunakan untuk sudut pandang efek 3D Â untuk element
:beforedan:after, - Baris 23 akan memposisikan element
:afterdibawah dengan rotasi sebesar 90 ° berlawanan arah jarum jam. - Ketika terjadi event
:hover, baris 27 membuat element:beforebergerak  ke atas dan berputar 90 ° searah jarum jam dan baris 31 akan membuat element:afterberputar kedepan.
b. Transisi seperti kubus (true cube)
Berbeda dengan versi sebelumnya, pada versi ini, element akan bergerak berurutan, sehingga akan benar-benar seperti kubus yang berputar.
Terdapat beberapa teknik untuk membuat efek ini, yang perlu diperhatikan adalah apakah terjadi “zoom” pada element? baik sebelum maupun sesudah diputar.
Jika ya, maka sebaiknya cari alternatif cara lain, karena hal tersebut akan membuat teks menjadi pecah, untuk mengatasinya  salah satu solusinya adalah kita buat sisi-sisi kubus berdiri sendiri dan masing-masing memiliki transisi sendiri-sendiri.
Element yang diperlukan dan pergerakan antar element sama dengan efek  sebelumnya. Transisi element  seperti tampak pada contoh berikut:
contoh untuk beberapa set icon:
pada contoh diatas, element dengan border berwarna biru adalah element :before, sedangkan yang berwarna hijau  (ketika :hover) adalah element :after.
Kode HTML yang kita perlukan:
<a class="gplus-cube" href="#"></a>
sedangkan css yang kita perlukan:
.gplus-cube {
perspective: 700px;
-webkit-transform-style: preserve-3d;
overflow: visible !important;
width: 64px;
height: 64px;
}
.gplus-cube:before,
.gplus-cube:after {
content: "f0d5";
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
transform-origin: 50% 50% -32px;
transition: all 0.3s ease-out;
}
.gplus-cube:before {
z-index: 1;
background-color: #d9d9d9;
}
.gplus-cube:after {
background-color: #d34836;
color: #FFFFFF;
transform: rotateX(-90deg);
}
/* EFFECT */
.gplus-cube:hover:after {
z-index: 2;
transform: rotateX(0);
}
.gplus-cube:hover:before {
transform: rotateX(90deg);
}
Demo Single
Penjelasan:
- Perspective pada baris 2 akan menjadi sudut pandang dari efek 3D, semakin kecil nilainyya maka akan semakin tampak efek 3D nya.
- Baris 26 akan membuat posisi awal element
:afterberputar 90 ° dan baris 16 akan membuatnya berada di posisi bawah. - Baris 20 akan membuat element before berada di depan element after
- Ketika terjadi event
:hover, baris 31 akan memutar element:beforekeatas, baris 34 membuat element:afterberputar kedepan, dan baris 30 akan membuat element:afterberada di depan element:before.
5. Efek 5: Membuat efek flip pada icon dengan cssTop
Efek ini akan membuat element bergerak dengan sumbu tertentu (flip) ke belakang. Untuk membuat efek ini diperlukan element:
- Element
<a>yang berperan sebagai container (secara visual tidak kelihatan) dan  sebagai perspective 3d untuk element:beforedan:after. - Pseudo element
:beforedengan  icon berwarna abu-abu dan  background berwarna abu-abu terang - Pseudo element
:afterdengan  icon berwarna putih dan  background berwarna coklat.
Transisi element tampak seperti contoh  berikut:
contoh untuk beberapa set icon:
Pada contoh diatas, element dengan border berwarna merah adalah element <a>, yang berwarna biru adalah element :before, dan yang berwarna hijau (ketika :hover) adalah element :after.
Kode HTML yang diperlukan:
<a class="instagram" href="#"></a>
sedangkan kode css yang diperlukan:
.effect-raw .instagram {
background: none;
overflow: visible;
perspective: 300px;
}
.effect-raw .instagram:before,
.effect-raw .instagram:after {
content: "f16d";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.effect-raw .instagram:before {
background-color: #EAEAEA;
-webkit-transform-origin-y: 100%;
}
.effect-raw .instagram:after {
background-color:#DCAD65;
color: #FFFFFF;
opacity: 0;
z-index:1;
transform: rotateX(-90deg);
-webkit-transform-origin-y: 100%;
}
.effect-raw .instagram:hover:before{
transform: rotateX(90deg);
}
.effect-raw .instagram:hover:after{
transform: rotateX(0);
opacity: 1;
}
Demo Single
Penjelasan:
- Properti perspective pada baris 3 digunakan sebagai sudut pemutaran element
:beforedan:after - Baris 17 digunakan sebagai sudut pemutaran element
:before - Baris 24 Â digunakan sebagai sudut pemutaran element
:afterdan baris 25 merupakan posisi awal element:after(berputar 90 ° berlawanan arah jarum jam) - Ketika terjadi event
:hover, baris 28 digunakan untuk memutar element:before90 ° searah jarum jam dan baris 32 untuk memutar element:after90 ° searah jarum jam
6. Efek 6: Membuat efek icon berputar dengan cssTop
Efek ini akan membuat icon berputar 360 ° sebanyak satu kali. Element yang kita gunakan adalah anchor <a> dan pseduo element :before, element <a> kita gunakan sebagai background sedangkan element :before berisi icon.
Transisi element seperti tampak pada contoh berikut:
Contoh untuk beberapa set icon:
Pada contoh diatas, element dengan border warna biru adalah element :before dan yang berwarna merah adalah element <a>.
Kode HTML yang kita gunakan:
<a class="twitter" href="#"></a>
sedangkan css yang kita gunakan:
.twitter {
background-color: #5FA9FF;
}
.twitter:before {
color: #FFFFFF;
content: "f099";
}
.twitter:hover {
background-color: #2289FF;
}
.twitter:hover:before{
transform: rotate(360deg);
}
Demo Single
Penjelasan: Ketika terjadi event :hover, maka baris 14 akan merubah warna background pada element <a> dan baris 17 akan membuat  element :before berputar 360 °.
7. Efek 7: Membuat efek zoom pada icon dengan cssTop
Efek ini hanya merubah warna background dan ukuran font, cukup menggunakan transition, semua perubahan tersebut terlihat  halus.
Element yang kita gunakan cukup <a> dan :before. Element <a> berfungsi sebagai background  dan element :before berisi  icon. Transisi element seperti contoh berikut:
contoh untuk beberapa set icon:
Pada contoh diatas, element dengan border warna biru adalah element :before dan yang berwarna merah adalah element <a>
Kode HTML yang diperlukan:
<a class="rss" href="#"></a>
Kode css yang diperlukan:
.rss {
color: #FFFFFF;
background-color: #FF9F5B;
}
.rss:before {
color: #FFFFFF;
content: "f09e";
}
.rss:hover {
background-color: #FF7F24;
}
.rss:hover:before {
font-size: 120%;
}
Demo Single
Ketika terjadi event :hover, baris 10 akan mengubah warna background pada element <a> dan baris 13 Â akan memperbesar ukuran icon.
Efek ini akan tidak maksimal jika menggunakan background gambar, dimana jika gambar di perbesar biasanya akan pecah.
8. Efek 8: Membuat efek perubahan warna pada icon dengan cssTop
Efek ini akan merubah warna pada icon ketika mouse berada di atas icon. Untuk membuatnya kita cukup menggunakan element <a> sebagai background  dan :before sebagai icon.
Transisi warna seperti tampak pada contoh berikut:
contoh untuk beberapa set icon:
Pada contoh diatas, element dengan border warna merah adalah element , sedangkan yang berwarna biru adalah element :before
Kode HTML yang kita gunakan:
<a class="digg" href="#"></a>
Sedangkan style yang kita perlukan:
.digg {
background: #757575;
color: #5D5D5D;
}
.digg:before {
content: "f1a6";
}
.digg:hover:before {
color: #79BAFF;
}
Demo Single
Ketika terjadi event :hover baris 9 akan merubah warna icon menjadi biru dan property transition akan membuat perubahan tersebut menjadi halus.
Efek ini akan sulit dilakukan jika kita menggunakan icon berupa gambar, karena warna icon sudah fixed sesuai dengan gambar yang ada.
III. Kesimpulan
Pada bagian satu ini kita membahas beberapa efek yang dapat kita buat hanya dengan menggunakan CSS, diantaranya efek slide dan kubus (3d).
Sobat dapat bereksperimen dengan mengubah nilai yang ada, untuk efek yang lainnya kita bahas pada bagian dua: Â Membuat 15 Efek Social Media Button Dengan CSS Part II

40 Feedback dari pembaca
Cara pakainya gimana bang? misalnya jadi widget disidebar/colum footer. Maklum masih pemula, hehehe
Tinggal di copy-paste kode HTML nya mas, terus di load file CSS nya
Gan? Yang dimaksud dengan content itu apa ya?kan ada tuh yg di atas mksdnya apa ya?
Content maksudnya isi dari element mas, memang untuk pseudo element ::before dan ::after HARUS kita isi contentnya meskipun kosong (“”)
gan itu bisa di ganti dengan logo kita kah?
boleh di tunjukan kah untuk ganti objeknya
Bisa mas, namun perlu beberapa perubahan. Intinya gambar pada button tersebut menggunakan icon font, untuk mengubahnya menjadi logo, maka perlu untuk gambar menjadi background bukan icon font
gan, itu file icon fontsnya upload ke hosting?
Iya mas…
Mantap!! Terima kasih..
Sama sama mas
gan, cara ngatasi supaya font web kita nggak ikut berubah gmna?
manu saya fontnya jadi besar karena dihubungkan dengan effect_main_single
Untuk web, sebaiknya font dideklarasikan pada bagian body mas, misal: body {font-family: open-sans}, selanjutnya untuk bagian spesifik, seperti icon font, definisikan class sendiri, misal: .social-btn { … }
mas mau tanya dong, kalau membuat efek highlight ketika datanya berubah gimana ?
Maksudnya bagaimana ya mas? highlight pada row tabel ketika diedit?
mas, bisa dicontohkan untuk mengubah jadi logo ?
maaf mas, saya masih bingung, karna baru belajar juga.
Coba property dan value pada selector anchornya diganti mas:
a { … }
coba diisi background-image: …
Om ada efek yang tiba tiba ada gambar panah gtuh klo dipencet tapi awalnya itu kga ada gambarnya cmn ada tulisan
Itu sama seperti efek 3 mas, awalnya tidak kelihatan kemudian kelihatan, tanda panah bisa diletakkan di pseudo element :before atau :after dan tidak terlihat, ketika mouse berada di atas elemen, pseudo elemen tersebut di munculkan.
Mas, maaf saya newbie he
Kalau file fontnya dan css nya disimpan di bawah folder apa jika dimasukan ke theme wordpress yang sudah ada?
Didalam folder themes mas, misal wp-content/themes/nama_theme/css
Mas saya kok ganti pakai icon lain kodenya berbeda ya jadi tidak muncul
ex kode facebook yg mas gunakan “\f09a” sedangkan yang ada di web iconmoon “ea90”
saya bingung mas mencari librarynya.
Mending langsung menggunakan font awesome saja mas:
https://jagowebdev.com/cara-menggunakan-font-awesome/
Ijin make efek yang ke 15 mas. Terima kasih sebelumnya mas
Ohiya mas, saya mau tanya. Apakah sudah ada icon untuk sosial media LINE? Karena sudah bongkar penelurusan digoogle belum ketemu . Rata – rata make gambar, sedangkan saya kurang nyaman kalau icon menggunakan gambar .
Mungkin ada saran dari mas.
Sama sama mas
Di Font Awesome ada mas line icon
o gitu toh… mulai sedikit ngerti..
Sip mass….
akhirnyeee ktemu jga artikel bermanfaat kek gini:))
Siap mas…
terimakasih mas, cukup membantu untuk yang baru hijrah ke wp hehe
Sama sama mas…
kalau pakai foto sendiri (bukan icon) bisa ga mas?
Bisa mas…
maaf masih pemula….
cara menggunkannya gimana? sy pake blogspot
ini khusus buat wordpress?
kalau bisa buat blogspot kodenya ditempel di bagian mana?
Ini penggunaannya umum mas, bisa wordpress, blogspot, maupun lainnya. Untuk blogspot saya belum pernah
Bagi tutorial buat blogspot mas Sy tdk mengerti bagaimana cara pakenya buat blogspot
Maaf tidak familiar dengan blogspot mas…
mas cara uploud file icon font nya ke Blogger gimana ya?
Maaf, saya tidak begitu paham platform blogger mas
mantap
Bagaimana caranya jika untuk menambahkan di google sites?