Properti CSS Terkait Efek Filter
Artikel ini menjelaskan properti CSS yang terkait dengan efek filter.
Anda dapat mempelajari penggunaan dan cara menulis properti seperti filter
dan transform
.
YouTube Video
HTML untuk Pratinjau
css-effect.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-effect.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties For Animation</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Filter/Effect Related Properties</h2>
20 </header>
21 <article>
22 <h3>filter</h3>
23 <section>
24 <header><h4>Original Image</h4></header>
25 <section class="sample-view">
26 <img src="example.jpg" alt="Example Image" width="100">
27 </section>
28 <header><h4>filter: sepia(1)</h4></header>
29 <section class="sample-view">
30 <img src="example.jpg" alt="Example Sepia Image" class="filtered-image-sepia" width="100">
31 </section>
32 <header><h4>filter: opacity(0.5)</h4></header>
33 <section class="sample-view">
34 <img src="example.jpg" alt="Example Opacity Image" class="filtered-image-opacity" width="100">
35 </section>
36 <header><h4>filter: brightness(1.2) contrast(1.5) sepia(0.5)</h4></header>
37 <section class="sample-view">
38 <img src="example.jpg" alt="Example Filtered Image" class="filtered-image-multiple" width="100">
39 </section>
40 </section>
41 </article>
42 <article>
43 <h3>filter-function</h3>
44 <section>
45 <header><h4>filter: blur(5px)</h4></header>
46 <section class="sample-view">
47 <img src="example.jpg" alt="Example Blur Image" style="filter: blur(5px);" width="100">
48 </section>
49 <header><h4>filter: brightness(1.5)</h4></header>
50 <section class="sample-view">
51 <img src="example.jpg" alt="Example Brightness Image" style="filter: brightness(1.5);" width="100">
52 </section>
53 <header><h4>filter: contrast(2)</h4></header>
54 <section class="sample-view">
55 <img src="example.jpg" alt="Example Contrast Image" style="filter: contrast(2);" width="100">
56 </section>
57 <header><h4>filter: grayscale(1)</h4></header>
58 <section class="sample-view">
59 <img src="example.jpg" alt="Example Grayscale Image" style="filter: grayscale(1);" width="100">
60 </section>
61 <header><h4>filter: hue-rotate(90deg)</h4></header>
62 <section class="sample-view">
63 <img src="example.jpg" alt="Example Hue Rotate Image" style="filter: hue-rotate(90deg);" width="100">
64 </section>
65 <header><h4>filter: invert(1)</h4></header>
66 <section class="sample-view">
67 <img src="example.jpg" alt="Example Invert Image" style="filter: invert(1);" width="100">
68 </section>
69 <header><h4>filter: opacity(0.5)</h4></header>
70 <section class="sample-view">
71 <img src="example.jpg" alt="Example Opacity Image" style="filter: opacity(0.5);" width="100">
72 </section>
73 <header><h4>filter: saturate(2)</h4></header>
74 <section class="sample-view">
75 <img src="example.jpg" alt="Example Saturate Image" style="filter: saturate(2);" width="100">
76 </section>
77 <header><h4>filter: sepia(1)</h4></header>
78 <section class="sample-view">
79 <img src="example.jpg" alt="Example Sepia Image" style="filter: sepia(1);" width="100">
80 </section>
81 <header><h4>filter: brightness(1.2) contrast(1.5) sepia(0.5)</h4></header>
82 <section class="sample-view">
83 <img src="example.jpg" alt="Example Filtered Image" style="filter: brightness(1.2) contrast(1.5) sepia(0.5);" width="100">
84 </section>
85 </section>
86 </article>
87 <article>
88 <h3>transform</h3>
89 <section>
90 <header><h4>Transform: scale(1.5, 2)</h4></header>
91 <section class="sample-view">
92 <div class="transform-box transform-scale">Scale</div>
93 </section>
94 <header><h4>Transform: skew(30deg, 20deg)</h4></header>
95 <section class="sample-view">
96 <div class="transform-box transform-skew">Skew</div>
97 </section>
98 <header><h4>Transform: rotate(45deg) scale(1.5)</h4></header>
99 <section class="sample-view">
100 <div class="transform-box transform-rotate">Rotate Scale</div>
101 </section>
102 </section>
103 </article>
104 <article>
105 <h3>transform functions</h3>
106 <section>
107 <header><h4>Transform: translate(100px, 50px)</h4></header>
108 <section class="sample-view">
109 <div class="transform-box transform-translate">Translate</div>
110 </section>
111 <header><h4>Transform: rotate(45deg)</h4></header>
112 <section class="sample-view">
113 <div class="transform-box transform-rotate">Rotate</div>
114 </section>
115 <header><h4>Transform: scale(1.5, 2)</h4></header>
116 <section class="sample-view">
117 <div class="transform-box transform-scale">Scale</div>
118 </section>
119 <header><h4>Transform: skew(30deg, 20deg)</h4></header>
120 <section class="sample-view">
121 <div class="transform-box transform-skew">Skew</div>
122 </section>
123 <header><h4>Transform: matrix(1, 0.5, -0.5, 1, 100, 0)</h4></header>
124 <section class="sample-view">
125 <div class="transform-box transform-matrix">Matrix</div>
126 </section>
127 <header><h4>Transform: translate3d(50px, 50px, 50px)</h4></header>
128 <section class="sample-view perspective">
129 <div class="transform-box transform-translate3d">Translate3D</div>
130 </section>
131 <header><h4>Transform: rotate3d(1, 1, 0, 45deg)</h4></header>
132 <section class="sample-view perspective">
133 <div class="transform-box transform-rotate3d">Rotate3D</div>
134 </section>
135 <header><h4>Transform: rotate(45deg) scale(1.5)</h4></header>
136 <section class="sample-view">
137 <div class="transform-box transform-rotate-scale">Rotate Scale</div>
138 </section>
139 </section>
140 </article>
141 <article>
142 <h3>transform-origin</h3>
143 <section>
144 <header><h4>transform-origin: left top</h4></header>
145 <section class="sample-view">
146 <div class="transform-box transform-origin">Transform<br>(left-top)</div>
147 </section>
148 <header><h4>transform-origin: right bottom</h4></header>
149 <section class="sample-view">
150 <div class="transform-box transform-origin-right-bottom">Transform<br>(right-bottom)</div>
151 </section>
152 <header><h4>transform-origin: 0% 100%</h4></header>
153 <section class="sample-view">
154 <div class="transform-box transform-origin-percent">Transform<br>(percent)</div>
155 </section>
156 </section>
157 </article>
158 </main>
159</body>
160</html>
Efek Filter
Properti filter
1.filtered-image-sepia {
2 filter: sepia(1);
3}
4
5.filtered-image-opacity {
6 filter: opacity(0.5);
7}
8
9.filtered-image-multiple {
10 filter: brightness(1.2) contrast(1.5) sepia(0.5);
11}
Properti filter
digunakan untuk menerapkan efek visual pada elemen. Anda dapat dengan mudah menambahkan berbagai efek seperti membuat gambar atau elemen menjadi blur, menyesuaikan kecerahan, dan mengubah kontras.
- Kelas
filtered-image-sepia
memiliki efek sepia yang diterapkan. - Kelas
filtered-image-opacity
memiliki efek opasitas yang diterapkan. - Kelas
filtered-image-multiple
memiliki efek kecerahan, kontras, dan sepia yang diterapkan pada gambar.
Sintaks Dasar
1filter: none | <filter-function> [<filter-function>]*;
Untuk properti filter
, tentukan none
atau filter-function
.
- Menentukan
none
tidak menerapkan efek filter apa pun. - Tentukan fungsi filter untuk diterapkan di
<filter-function>
. Beberapa filter dapat ditentukan dengan memisahkannya menggunakan spasi.
Jenis-jenis fungsi filter
blur()
1filter: blur(5px);
Fungsi blur()
menerapkan efek blur.
- Nilainya ditentukan dalam piksel (px) dan semakin besar nilainya, semakin kuat tingkat blur-nya.
brightness()
1filter: brightness(1.5);
Fungsi brightness()
menyesuaikan kecerahan.
- Nilainya ditentukan berdasarkan
0
(sepenuhnya gelap) hingga1
(kecerahan asli). Menentukan nilai lebih besar dari1
membuat elemen menjadi lebih terang.
contrast()
1filter: contrast(2);
Fungsi contrast()
menyesuaikan kontras.
- Nilainya ditentukan berdasarkan
0
(skala abu-abu) hingga1
(kontras asli), dan nilai lebih besar dari1
meningkatkan kontras.
grayscale()
1filter: grayscale(1);
Fungsi grayscale()
mengubah elemen menjadi monokrom.
- Nilai ditentukan dari
0
(warna asli) hingga1
(sepenuhnya monokrom).
hue-rotate()
1filter: hue-rotate(90deg);
Fungsi hue-rotate()
memutar rona.
- Nilai ditentukan dalam derajat (deg), menerapkan perubahan warna dengan memutar rona. Rona berputar dalam rentang dari
0deg
hingga360deg
.
invert()
1filter: invert(1);
Fungsi invert()
membalikkan warna.
- Nilai ditentukan dari
0
(warna asli) hingga1
(sepenuhnya terbalik).
opacity()
1filter: opacity(0.5);
Fungsi opacity()
mengubah transparansi elemen.
- Nilai ditentukan dalam rentang dari
0
(sepenuhnya transparan) hingga1
(tidak transparan).
saturate()
1filter: saturate(2);
Fungsi saturate()
mengatur saturasi.
- Nilai berkisar dari
0
(monokrom) hingga1
(saturasi asli), dan nilai lebih dari1
meningkatkan saturasi.
sepia()
1filter: sepia(1);
Fungsi sepia()
mengubah menjadi nada sepia.
- Nilai ditentukan dari
0
(warna asli) hingga1
(sepenuhnya nada sepia).
Menerapkan Beberapa Filter
1filter: brightness(1.2) contrast(1.5) sepia(0.5);
Beberapa filter dapat diterapkan, dipisahkan dengan spasi.
Keuntungan Menggunakan Properti filter
Properti filter
adalah alat yang ampuh untuk membuat elemen yang menarik secara visual dengan mudah. Properti ini memiliki keuntungan sebagai berikut:.
- Efek visual dapat ditambahkan dengan mudah.
- Gambar dapat disesuaikan hanya dengan menggunakan CSS, tanpa perangkat lunak pengedit gambar.
- Efek dinamis dapat dibuat dengan mengkombinasikan dengan animasi.
Properti transform
1.transform-box {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 transition: transform 0.3s ease;
6}
7
8.transform-scale:hover {
9 /* Width 1.5 times and height 2 times */
10 transform: scale(1.5, 2);
11}
12
13.transform-skew:hover {
14 /* Skew 30 degrees on the X-axis and 20 degrees on the Y-axis */
15 transform: skew(30deg, 20deg);
16}
17
18.transform-rotate:hover {
19 transform: rotate(45deg) scale(1.5);
20}
Properti transform
digunakan untuk menerapkan transformasi 2D atau 3D pada elemen. Berbagai transformasi visual seperti posisi, rotasi, skala (perbesar/perkecil), dan kemiringan dapat ditentukan dengan menggunakan CSS. Properti transform
sering digunakan dalam kombinasi dengan animasi dan membantu dalam menciptakan elemen UI yang dinamis.
-
Dalam kelas
transform-scale
, melayang di atas elemen akan memperbesar lebarnya 1,5 kali dan tingginya 2 kali. -
Dalam kelas
transform-skew
, melayang di atas elemen akan memutarnya sebesar 30 derajat pada sumbu X dan 20 derajat pada sumbu Y. -
Dalam kelas
transform-rotate
, melayang di atas elemen akan memutarnya sebesar 45 derajat dan memperbesarnya 1,5 kali.
Sintaks Dasar
1transform: none | <transform-function> [<transform-function>]*;
Properti transform
menentukan baik none
atau transform-function
.
- Jika
none
ditentukan, tidak ada transformasi yang akan diterapkan. - Tentukan jenis transformasi dengan
<transform-function>
. Beberapa transformasi dapat diterapkan dengan memisahkannya menggunakan spasi.
Fungsi Transformasi Utama
translate()
1/* Move 50px to the right and 100px down */
2transform: translate(50px, 100px);
3
4transform: translateX(50px); /* Move 50px to the right */
5transform: translateY(100px); /* Move 100px down */
- Fungsi
translate(x, y)
memindahkan elemen sejauh jarak yang ditentukan sepanjang sumbu X dan Y. Tentukanx
dany
menggunakan unit sepertipx
atau%
. Anda juga dapat menentukan secara terpisah dengantranslateX()
atautranslateY()
.
rotate()
1transform: rotate(45deg); /* Rotate 45 degrees */
- Fungsi
rotate(angle)
memutar elemen sesuai sudut yang ditentukan dalam derajat (deg
).
scale()
1/* Width 1.5 times and height 2 times */
2transform: scale(1.5, 2);
3
4transform: scaleX(1.5); /* Width 1.5 times */
5transform: scaleY(2); /* Height 2 times */
- Fungsi
scale(x, y)
mengubah ukuran elemen sepanjang sumbu X dan Y.x
dany
adalah faktor skala relatif terhadap ukuran asli. Sebagai contoh,scale(2, 2)
akan menggandakan ukurannya. Anda dapat menentukan secara terpisah denganscaleX()
atauscaleY()
.
skew()
1/* Skew 30 degrees on the X-axis and
2 20 degrees on the Y-axis */
3transform: skew(30deg, 20deg);
4
5/* Skew 30 degrees on the X-axis */
6transform: skewX(30deg);
7
8/* Skew 20 degrees on the Y-axis */
9transform: skewY(20deg);
- Fungsi
skew(x-angle, y-angle)
memiringkan elemen sesuai sudut yang ditentukan sepanjang sumbu X dan Y. Anda dapat menentukan secara terpisah denganskewX()
atauskewY()
.
matrix()
1/* Apply a special transformation */
2transform: matrix(1, 0.5, -0.5, 1, 0, 0);
- Fungsi
matrix()
menentukan matriks untuk menggabungkan beberapa transformasi sekaligus. Fungsi ini biasanya digunakan dalam kombinasi dengan fungsi transformasi lainnya.
Fungsi transformasi 3D
translate3d()
1/* Moves the element 100px to the right (X-axis),
250px down (Y-axis), and 30px towards the viewer (Z-axis) */
3transform: translate3d(100px, 50px, 30px);
4
5/* Allows child elements to preserve their 3D position relative to the parent */
6transform-style: preserve-3d;
7
8/* Applies a perspective from a distance of 600px to give a sense of depth */
9perspective: 600px;
- Fungsi
translate3d()
melakukan translasi dalam ruang 3D.- Fungsi ini dapat ditentukan dalam tiga dimensi: sumbu X, Y, dan Z.
- Dengan mengatur properti
transform-style
kepreserve-3d
dan propertiperspective
ke600px
, efek pergerakan tiga dimensi dengan kedalaman diterapkan pada elemen anak.
rotate3d()
1/* Rotate 45 degrees around the X and Y axes */
2transform: rotate3d(1, 1, 0, 45deg);
3
4transform-style: preserve-3d;
5perspective: 600px;
- Fungsi
rotate3d()
melakukan rotasi dalam ruang 3D.- Fungsi ini memutar elemen sehubungan dengan sumbu X, Y, dan Z.
Menggabungkan beberapa transformasi
1transform: rotate(45deg) scale(1.5);
Properti transform
dapat menerapkan beberapa transformasi secara bersamaan. Sebagai contoh, Anda dapat menggabungkan rotasi dan skala.
Poin Penting untuk Penggunaan
Properti transform
adalah alat yang kuat dalam CSS untuk secara visual mengubah elemen. Dengan menggabungkan berbagai fungsi, Anda dapat menciptakan antarmuka pengguna yang interaktif dan dinamis.
- Properti
transform
memungkinkan transformasi langsung pada elemen, memungkinkan manipulasi visual tanpa mengubah tata letak DOM. - Hal ini sangat berguna untuk menciptakan animasi dan elemen interaktif, memungkinkan desain dinamis ketika digabungkan dengan
transition
atauanimation
.
Properti transform-origin
1.transform-box {
2 background-color: skyblue;
3}
4
5.transform-origin-left-top:hover {
6 /* Based on the top left corner */
7 transform-origin: left top;
8 transform: rotate(45deg) scale(1.2);
9}
10
11.transform-origin-right-bottom:hover {
12 /* Based on the right bottom corner */
13 transform-origin: right bottom;
14 transform: rotate(45deg) scale(1.2);
15}
16
17.transform-origin-percent:hover {
18 /* Transform based on the bottom left corner */
19 transform-origin: 0% 100%;
20 transform: rotate(45deg) scale(1.2);
21}
Properti transform-origin
digunakan untuk menetapkan titik asal bagi transformasi yang diterapkan oleh properti transform
. Anda dapat menentukan titik referensi untuk transformasi elemen, memungkinkan Anda mengontrol posisi efek seperti rotasi atau skala diterapkan.
Dalam contoh ini, ketika Anda menunjuk elemen dengan mouse, elemen akan berotasi dan berskala secara bersamaan berdasarkan titik yang ditentukan oleh properti transform-origin
.
Sintaks Dasar
1transform-origin: x y z;
Untuk properti transform-origin
, Anda menetapkan x
, y
, dan z
seperti ini.
- Untuk
x
, tentukan titik referensi pada sumbu X (arah horizontal). Nilai dapat ditentukan dengan menggunakan kata kunci (left
,center
,right
) atau ukuran (px
,%
, dll.). - Untuk
y
, tentukan titik referensi pada sumbu Y (arah vertikal). Nilai dapat ditentukan dengan menggunakan kata kunci (top
,center
,bottom
) atau ukuran. - Untuk
z
, tentukan titik referensi pada sumbu Z (arah kedalaman). Ini hanya dapat digunakan dengan transformasi 3D. Ini opsional, dan nilai defaultnya adalah0
.
Nilai Default
1transform-origin: 50% 50%; /* Center of the element */
Nilai default untuk properti transform-origin
adalah pusat elemen untuk sumbu X dan Y. Ini berarti bahwa, secara default, transformasi dilakukan dengan pusat elemen sebagai titik referensi.
Cara Menentukan Nilai
Nilai untuk properti transform-origin
dapat ditentukan menggunakan kata kunci, persentase, ukuran seperti px
, em
, dll.
-
Spesifikasi Kata Kunci
left
: Menetapkan referensi sumbu X ke tepi kiri elemen.right
: Menetapkan referensi sumbu X ke tepi kanan elemen.top
: Menetapkan referensi sumbu Y ke tepi atas elemen.bottom
: Menetapkan referensi sumbu Y ke tepi bawah elemen.center
: Menetapkan referensi untuk sumbu X atau Y ke tengah elemen.
-
Spesifikasi Persentase
0%
: Menetapkannya di tepi kiri atau atas.50%
: Menetapkannya di tengah.100%
: Menetapkannya di tepi kanan atau bawah.
-
Spesifikasi Panjang
- Anda dapat menyesuaikan titik referensi secara detail menggunakan panjang spesifik seperti
px
,em
, dll.
- Anda dapat menyesuaikan titik referensi secara detail menggunakan panjang spesifik seperti
transform-origin
dalam Transformasi 3D
1.box {
2 width: 100px;
3 height: 100px;
4 background-color: lightblue;
5 transform-origin: 50% 50% 50px; /* Specify the Z-axis as well */
6 transform: rotateY(45deg);
7}
transform-origin
juga dapat digunakan untuk transformasi 3D. Dalam transformasi 3D, Anda juga dapat menentukan titik referensi pada sumbu Z. Misalnya, dengan menentukan pusat rotasi dalam arah kedalaman, transformasi dengan kesan kedalaman dapat dilakukan.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.