**Cascading Style Sheet** (**CSS**) merupakan aturan untuk mengatur beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan seragam. CSS bukan merupakan bahasa pemrograman.

Sama halnya *styles* dalam aplikasi pengolahan kata seperti Microsoft Word yang dapat mengatur beberapa *style*, misalnya *heading*, *subbab*, *bodytext*, *footer*, *images*, dan *style* lainnya untuk dapat digunakan bersama-sama dalam beberapa berkas (*file*). Pada umumnya CSS dipakai untuk memformat tampilan halaman web yang dibuat dengan bahasa HTML dan XHTML.

CSS dapat mengendalikan ukuran gambar, warna bagian tubuh pada teks, warna tabel, ukuran border, warna border, warna hyperlink, warna *mouse over*, spasi antar paragraf, spasi antar teks, margin kiri, kanan, atas, bawah, dan parameter lainnya. CSS adalah bahasa style sheet yang digunakan untuk mengatur tampilan dokumen. Dengan adanya CSS memungkinkan kita untuk menampilkan halaman yang sama dengan format yang berbeda.

Sejarah
-------

Nama CSS didapat dari fakta bahwa setiap deklarasi *style* yang berbeda dapat diletakkan secara berurutan, yang kemudian membentuk hubungan ayah-anak (*parent-child*) pada setiap *style*. CSS sendiri merupakan sebuah teknologi internet yang direkomendasikan oleh World Wide Web Consortium atau W3C pada tahun 1996. Setelah CSS distandarisasikan, Internet Explorer dan Netscape melepas browser terbaru mereka yang telah sesuai atau paling tidak hampir mendekati dengan standar CSS.

Untuk saat ini terdapat tiga versi CSS, yaitu CSS1, CSS2, dan CSS3.
CSS1 dikembangkan berpusat pada pemformatan dokumen HTML, CSS2 dikembangkan untuk memenuhi kebutuhan terhadap format dokumen agar bisa ditampilkan di printer, sedangkan CSS3 adalah versi terbaru dari CSS yang mampu melakukan banyak hal dalam desain website.
CSS3 mendukung penentuan posisi konten, downloadable, huruf font, tampilan pada tabel /table layout dan media tipe untuk printer. Kehadiran versi CSS yang ketiga diharapkan lebih baik dari versi pertama dan kedua.

CSS3 juga dapat melakukan animasi pada halaman website, di antaranya animasi warna hingga animasi 3D. Dengan CSS3 desainer lebih dimudahkan dalam hal kompatibilitas websitenya pada smartphone dengan dukungan fitur baru yakni media query. Selain itu, banyak fitur baru pada CSS3 seperti: multiple background, border-radius, drop-shadow, border-image, CSS Math, dan CSS Object Model.

Penulisan
---------

Saat masuk pada bagian CSS, sering dijumpai kode sebagai berikut:

```
h1 {
 color: #0789de;
}

```

Bagian pertama sebelum tanda '{}' dinamakan *selector*, sedangkan yang diapit oleh '{}' disebut *declaration* yang terdiri dari *dua* unsur, yaitu *property* dan *value*. *Selector* dalam pernyataan di atas adalah h1, sedangkan *color* adalah *property*, dan #0789de adalah *value.*

*Selain itu ada tiga metode penulisan CSS atribut, yaitu:*

### Inline Style Sheet

CSS didefinisikan langsung pada tag HTML yang bersangkutan. Cara penulisannya cukup dengan menambahkan atribut **style="..."** dalam tag HTML tersebut. Style hanya akan berlaku pada tag yang bersangkutan, dan tidak akan memengaruhi tag HTML yang lain.

Contoh penulisan CSS dengan metode **Inline Style Sheet**

```
<html>

<head>
  <title>Contoh Bentuk Inline </title>
</head>

<body>
  <p id="cth1">
    Ini adalah contoh tag P tanpa diformat menggunakan CSS </p>

  <p id="cth2" style="font-size:20pt">
    Tag P ini diformat dengan besar font 20 point </p>

  <p id="cth3" style="font-size:14pt; color:red">
    Tag P ini diformat dengan besar font 14 point, dan menggunakan warna merah </p>
</body>

</html>

```

### Embedded Style Sheet

CSS didefinisikan terlebih dahulu dalam tag **<style> ...</style>** di atas tag **<body>**. Pada pendefinisian ini disebutkan atribut-atribut CSS yang akan digunakan untuk tag-tag HTML, yang selanjutnya dapat digunakan oleh tag HTML yang bersangkutan.

Contoh penggunaan CSS dengan metode **Embedded Style Sheet** adalah sebagai berikut :

```
<html>

<head>
  <title>Contoh Bentuk Embedded</title>
</head>
<style>
 body {
 background: #0000FF;
 color: #FFFF00;
 margin-left: 0.5in;
 }

 h1 {
 font-size: 18pt;
 color: #FF0000;
 }

 p {
 font-size: 12pt;
 font-family: arial;
 text-indent: 0.5in;
 }
</style>

<body>
  <h1 id="cth1">Judul ini berukuran 18 dengan warna merah!</h1>
  <p id="cth2">Tag p ini di format dengan besar font 12 point dengan tipe font Arial dan mempunyai identasi 0.5 inch
  </p>
  <p id="cth3">Yang perlu diperhatikan juga bahwa body disini telah diformat dengan margin kiri 0.5 inch dan warna
    background biru</p>
</body>

</html>

```

### External CSS

CSS didefinisikan dengan disimpan di berkas yang berbeda. Ini dapat mempermudah dalam perawatan dan dapat digunakan di semua berkas HTML sehingga memudahkan seorang pengembang web untuk mengembangkan situs web miliknya. Untuk menautkan berkas CSS ke suatu berkas HTML kita hanya perlu menggunakan kode 

```
<link href="lokasiberkas.css" rel="stylesheet">

```

### Shorthand CSS

Ada beberapa properti CSS yang dapat disingkat, biasanya dipanggil dengan Shorthand CSS. Teknik shorthand adalah cara mempersingkat penulisan kode CSS yang memungkinkan untuk menetapkan nilai beberapa *property* secara bersamaan. Teknik ini dapat menghemat karakter, menghemat energi, dan tentu saja menghemat waktu. Kode jadi terlihat lebih rapi, efisien, dan sering kali lebih mudah dibaca.

Dalam CSS, adalah wajar jika satu property memiliki banyak elemen. Misalnya dalam kode margin memiliki 4 *property* untuk setiap sisi elemen.

1. margin-top
2. margin-right
3. margin-bottom
4. margin-left

Jika menggunakan teknik shorthand CSS, maka penulisan semua property bisa disatukan demi terciptanya kode yang lebih ringkas. Urutan penulisan syntax pada teknik shorthandharus benar agar sesuai dengan style yang diinginkan.

Untuk saat ini metode penulisan shorthand CSS tersedia untuk beberapa property berikut:

1. Margin
2. Padding
3. Font
4. Background
5. Border
6. List

#### Margin

```
margin: 3px 5px 7px 10px;

```
Artinya:

```
margin-top: 3px;
margin-right: 5px;
margin-bottom: 7px;
margin-left: 10px;

```

#### Padding

```
padding: 3px 5px 7px 10px;

```
Artinya:

```
padding-top: 3px;
padding-right: 5px;
padding-bottom: 7px;
padding-left: 10px;

```

#### Font

```
font: italic bold 14px/30px Arial;

```
Artinya:

```
font-style: italic;
font-weight: bold;
font-size: 14px;
line-height: 30px;
font-family: Arial;

```

#### Background

```
background: #cc0000 url('igniel.jpg') no-repeat top center;

```
Artinya:

```
background-color: #cc0000;
background-image: url('igniel.jpg');
background-repeat: no-repeat;
background-position: top center;

```

#### Border

```
border: 3px solid #0000cc;

```
Artinya:

```
border-width: 5px;
border-style: solid;
border-color: #0000cc;

```

#### List

```
list-style: disc inside url('dot.gif');

```
Artinya:

```
list-style-type: disc;
list-style-position: inside;
list-style-image: url('dot.gif');

```

### Penulisan komentar pada CSS

```
h1 {
 /\* ini adalah komentar untuk satu baris \*/
 color: red; 
}

p {
 /\* 
 ini juga adalah komentar untuk dua baris atau lebih.
 seluruh teks yang berada pada pembuka dan penutup sebuah komentar 
 akan diabaikan oleh browser sebagai compiler.
 \*/
 color: red; 
}

```

CSS Selector
------------

### Universal Selector

*Universal selector* digunakan untuk diterapkan pada seluruh elemen.

```
/\* diterapkan pada seluruh elemen \*/
\* {
 color: green;
}

```

### Type Selector

*Type selector* merupakan cara penulisan CSS dengan nama elemen sebagai target untuk diterapkannya *rule*. Ketika menggunakan *selector* ini, maka rule akan diterapkan pada seluruh elemen target yang ada pada dokumen HTML.

```
/\* akan diterapkan pada seluruh elemen <a>\*/
a {
 color: blue;
}

```

### ID Selector

*ID selector* menetapkan target elemen berdasarkan nilai dari atribut id yang diterapkan pada elemennya. Agar elemen dapat terpilih, maka atribut **id** pada elemen harus sama persis dengan yang ada di selector. Contohnya adalah sebagai berikut:

```
<!DOCTYPE html>
<html>

<head>
  <title>Page Title</title>
  <style>
 #contoh {
 border: black 1px solid;
 border-radius: 16px;
 }
 </style>
</head>

<body>
  <!-- Elemen dengan id="contoh" -->
  <p id="contoh">ini adalah contoh kalimat.</p>
</body>

</html>

```

### Class Selector

*Class selector* menetapkan target elemen berdasarkan nilai atribut class yang diterapkan pada elemennya. Mirip seperti *ID Selector,* untuk menerapkan *class selector* maka atribut **class** pada elemen harus sesuai dengan yang ada di selector. Contohnya adalah sebagai berikut:

```
<!DOCTYPE html>
<html>

<head>
  <title>Page Title</title>
  <style>
 .contoh {
 border: black 1px solid;
 border-radius: 16px;
 }
 </style>
</head>

<body>
  <!-- Elemen dengan class="contoh" -->
  <p class="contoh">ini adalah contoh kalimat.</p>
</body>

</html>

```

### Grouping Selector pada CSS

*Grouping selector* pada CSS merupakan cara penulisan CSS yang mana ketika *selector* CSS memiliki *property* yang sama dapat dikelompokkan dengan *selector* lainnya. Contohnya adalah sebagai berikut:

```
h1 {
 color: red;
}

h2{
 color: red;
}

p{
 color: red;
}

/\* ini adalah class selector \*/
.text{
 color: red;
}

```
Kode CSS di atas akan lebih baik dikelompokkan seperti di bawah ini, dengan tujuan untuk meminimalisasi penulisan kode yang sama berulang.

```
h1, h2, p, .text {
 color: red;
}

```

Dukungan dari peramban web
--------------------------

Masing-masing peramban web menggunakan mesin tata letak yang berbeda. Contohnya Firefox menggunakan Gecko sebagai mesin tata letaknya dan Chromium menggunakan Blink sebagai mesin tata letaknya. Dukungan untuk fitur CSS dari setiap mesin tata letak terkadang sering tidak konsisten. Beberapa teknik pun bermunculan untuk menggunakan suatu fitur CSS ke peramban web yang tidak mendukung fitur tersebut (biasa disebut *CSS hack*). Adopsi fitur CSS baru dapat terhambat oleh kurangnya dukungan dari peramban-peramban web besar. Contohnya fitur `cross-fade()` telah didukung oleh Chrome dan Safari namun sampai tahun 2021 masih belum didukung oleh Firefox.

Beberapa pengembang web biasanya memeriksa terlebih dahulu dukungan untuk suatu fitur CSS, terutama untuk fitur CSS baru. Beberapa situs web berikut dapat membantu seperti CanIUse dan Mozilla Developer Network. CSS 3 memiliki fitur kueri, yang memberikan arahan `@supports` yang akan memungkinkan pengembang menargetkan peramban web dengan dukungan untuk fungsionalitas tertentu langsung di dalam CSS mereka. CSS yang tidak didukung oleh suatu peramban web kadang-kadang bisa ditambal menggunakan polyfill, yang merupakan potongan kode JavaScript yang dirancang untuk memberikan dukungan untuk peramban web terhadap suatu fitur yang sebelumnya tidak didukung. Solusi ini dapat menambah kerumitan pada proyek pengembangan, dan akibatnya, perusahaan sering kali menentukan daftar versi peramban web yang akan dan tidak akan mereka dukung.

Penggunaan CSS dalam perangkat lunak lain
-----------------------------------------

CSS dahulunya dibuat hanya untuk mempercantik halaman web. Namun, seiring perkembangan waktu CSS mulai diadopsi oleh perangkat lunak lain.

GTK adalah peralatan gawit lintas platform yang menggunakan CSS untuk memberi gaya pada setiap widget. GTK sering digunakan untuk membuat program Linux. GTK memperkenalkan API Tema baru dengan menggunakan CSS pada pembaharuan besar GTK versi 3.

Qt merupakan toolkit widget dan biasa dipakai untuk membuat aplikasi lintas platform. Qt juga menggunakan CSS untuk mengkonfigurasi tema.

Fakta-Fakta menggunakan CSS
---------------------------

Fakta Menggunakan CSS di antaranya:

* Lebih fleksibel dalam penempatan posisi layout. Dalam layouting CSS, kita mengenal Z-Index untuk menempatkan objek dalam posisi yang sama.
* Menjaga HTML dalam penggunaan tag yang minimal, hal ini berpengaruh terhadap ukuran berkas dan kecepatan pengunduhan.
* Dapat menampilkan konten utama terlebih dahulu, sementara gambar dapat ditampilkan sesudahnya.

Contoh Berkas CSS
-----------------

```
/\* Kode berikut didedikasikan ke ruang publik (public domain)
 Silahkan untuk menggunakan, mensalin, dan mendistribusikan kode berikut \*/

body {
 background-color: yellow;
}
p {
 color: red;
}

```
Kode diatas akan mengganti warna halaman menjadi kuning dan membuat warna paragraf menjadi berwarna merah.

CSS Preprocessor
----------------

Artikel utama: CSS Preprocessor*CSS preprocessor* (pra pengolahan) adalah bahasa script atau program yang memungkinkan pengguna menulis kode CSS sesuai dengan sintaksis (*syntax) prepocessor* itu sendiri.

Ada banyak jenis CSS *prepocessor* yang dapat digunakan, namun sebagain besar CSS *prepocessor* memiliki beberapa fitur yangt tidak ada di *vanilla* CSS (CSS polos atau murni). Beberapa fitur tersebut di antaranya yaitu penulisan variabel, *nesting*, *mixins*, *extends*, *color operations*, *if/else statement*, *loops*, dan lain sebagainya. Fitur-fitur tersebut membuat penulisan kode CSS menjadi lebih mudah dibaca dan lebih mudah dirawat,

Berikut adalah beberapa CSS *preprocessor* popular dan sering digunakan, di antaranya yaitu :

* Sass
* LESS
* Stylus
* PostCSS

### Variabel

Salah satu fitur yang dimiliki *CSS preprocessor* dan sering digunakan yaitu penulisan variabel. Dengan menuliskan variabel, kode yang dituliskan dapat digunakan digunakan kembali (*reusable*). Sehingga proses pengembangan suatu web dapat lebih cepat dan mudah.

Berikut adalah contoh penulisan variabel dalam *CSS preprocessor:*

#### Sass/SCSS

```
// Penulisan SCSS preprocessor 
$base-color: #c6538c;
$border-dark: rgba($base-color, 0.88);

.box {
 border: 1px solid $border-dark;
}

```

#### Less CSS

```
// Penulisan Less preprocessor 
@width: 10px;
@height: @width + 10px;

#header {
 width: @width;
 height: @height;
}

```

#### Stylus

```
// Penulisan STYLUS preprocessor
font-size = 1em

div
 font-size font-size

```

### Nesting

Dengan menggunakan fitur *nesting,* pengguna dapat menuliskan *selector* di dalam *selector* (bersarang). Contoh penulisannya adalah sebagai berikut:

#### Sass/SCSS

```
// Penulisan SCSS preprocessor 
nav {
 ul {
 margin: 0;
 padding: 0;
 list-style: none;
 }
 li {
 display: inline-block;
 }
 a {
 display: block;
 padding: 6px 12px;
 text-decoration: none;
 }
}

```

#### Less CSS

```
// Penulisan Less preprocessor 
nav {
 ul {
 margin: 0;
 padding: 0;
 list-style: none;
 }
 li {
 display: inline-block;
 }
 a {
 display: block;
 padding: 6px 12px;
 text-decoration: none;
 }
}

```

#### Stylus

```
nav 
 ul 
 margin: 0;
 padding: 0;
 list-style: none;
 li 
 display: inline-block;
 a 
 display: block;
 padding: 6px 12px;
 text-decoration: none;

```

#### CSS

```
/\* Apabila ditulis dengan kode vanilla CSS atau CSS polos, maka hasilnya adalah sebagai berikut \*/
nav ul {
 margin: 0;
 padding: 0;
 list-style: none;
}
nav li {
 display: inline-block;
}
nav a {
 display: block;
 padding: 6px 12px;
 text-decoration: none;
}

```

Lihat pula
----------

* Bootstrap (kerangka kerja)
* Tailwind CSS
* Bulma

Referensi
---------

1. 1 2 3  Slamet Riyanto, *Membuat Web Portal Multi Bahasa Jomla 1.5X + CD*, halaman 236. Elex Media Komputindo.
2. 1 2 3  Dominikus Juju & Matamaya Studio, *Seri Penuntun Praktis Join Multiply*, halaman 95. Elex Media Komputindo.
3. 1 2  Sulistyawan, Rubianto, Rahmad Saleh, *Modifikasi Blog Multiply dengan CSS*, halaman 32. Elex Media Komputindo.
4. ↑  "CSS 3 Introduction". W3Schools. [*pranala nonaktif permanen*]
5. ↑  Untung Julianto, *Modifikator Blogger + CD*, halaman 22. Elex Media Komputindo.
6. 1 2 3 4 5 6  Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). *Siapa saja bisa membuat website dengan CSS dan HTML*, halaman 37-41. Andi Yogyakarta.
7. ↑  "Universal selectors - CSS: Cascading Style Sheets | MDN". *developer.mozilla.org* (dalam bahasa Inggris). Diakses tanggal 2022-09-11.
8. ↑  "Type selectors - CSS: Cascading Style Sheets | MDN". *developer.mozilla.org* (dalam bahasa Inggris). Diakses tanggal 2022-09-11.
9. ↑  "ID selectors - CSS: Cascading Style Sheets | MDN". *developer.mozilla.org* (dalam bahasa Inggris). Diakses tanggal 2022-09-11.
10. ↑  "CSS .class Selector". *www.w3schools.com* (dalam bahasa Inggris). Diakses tanggal 2022-09-11.
11. ↑  "CSS Selectors". *www.w3schools.com* (dalam bahasa Inggris). Diakses tanggal 2022-09-11.
12. ↑  "Can I use... Support tables for HTML5, CSS3, etc". *caniuse.com*. Diakses tanggal 2021-02-24.
13. ↑  "Using Feature Queries in CSS – Mozilla Hacks - the Web developer blog". *Mozilla Hacks – the Web developer blog* (dalam bahasa Inggris). Diakses tanggal 2021-02-24.
14. ↑  "February 2011 – GTK Development Blog" (dalam bahasa Inggris). Diakses tanggal 2021-02-25.
15. ↑  Pupung Budi Purnama, *Kiat Praktis Menjadi Desainer Web Profesional*, halaman 8. Elex Media Komputindo.
16. 1 2  "CSS preprocessor - MDN Web Docs Glossary: Definitions of Web-related terms | MDN". *developer.mozilla.org* (dalam bahasa Inggris). Diakses tanggal 2022-09-28.
17. ↑  "CSS Preprocessors Explained". *freeCodeCamp.org* (dalam bahasa Inggris). 2020-01-17. Diakses tanggal 2022-09-28.
18. ↑  "Getting started | Less.js". *lesscss.org*. Diakses tanggal 2022-09-28.
19. ↑  "Sass: Variables". *sass-lang.com*. Diakses tanggal 2022-09-28.
20. ↑  "Sass Nesting". *www.w3schools.com* (dalam bahasa Inggris). Diakses tanggal 2022-09-29.
21. ↑  "Getting started | Less.js". *lesscss.org*. Diakses tanggal 2022-09-29.

Pranala luar
------------


Wikibooks memiliki buku di:
*Pemrograman CSS*

* (Inggris) Spesifikasi CSS 1.0
* (Inggris) Spesifikasi CSS 2.1
* (Inggris) Spesifikasi CSS 2.2 (Preview)
* (Inggris) Tutorial CSS
* (Inggris) Referensi CSS

| * l
* b
* s
Bahasa pemrograman |
| --- |
| 
* Garis waktu
* Perbandingan
* Sejarah

 |
| 
* APL
* Assembly
* BASIC
* C
* C++
* C#
* COBOL
* Fortran
* Go
* Groovy
* Haskell
* Java
* JavaScript (JS)
* Kotlin
* Lisp
* Lua
* Objective-C
* OCaml
* Pascal
* Perl
* PHP
* Python
* Ruby
* Rust
* Shell
* Smalltalk
* Swift
* Visual Basic
* Visual Basic .NET (VB.NET)
* *selengkapnya...*

 |
| 
* Category **Kategori**
* List-Class article **Daftar**
	+ Menurut alfabet
	+ Menurut kategori
	+ Menurut muatan
	+ bahasa non-Inggris

 |

| * l
* b
* s
Standar dari Konsorsium World Wide Web |
| --- |
| Produk danstandar | 

|  |  |
| --- | --- |
| Rekomendasi | 
* ActivityPub
* Activity Streams
* ARIA
* Canonical XML
* CDF
* CSS
	+ Animations
	+ Flexbox
	+ Grid
* DOM
* Geolocation API
* HTML
	+ HTML5
* IndexedDB
* ITS
* JSON-LD
* Linked Data Notifications
* MathML
* Micropub
* OWL
* PLS
* RDF
	+ Schema
* SISR
* SKOS
* SMIL
* SOAP
* SRGS
* SRI
* SSML
* SVG
	+ Efek filter
* SCXML
* SHACL
* SPARQL
* Timed text
* VoiceXML
* WoT
	+ TD
* Web storage
* WSDL
* Webmention
* WebSub
* XHTML
	+ +RDFa
* XML
	+ Base
	+ Encryption
	+ Events
	+ Information Set
	+ Namespace
	+ Schema
	+ Signature
	+ XForms
	+ XInclude
	+ XLink
	+ XOP
	+ XPath
		- 2.0
		- 3.x
	+ XPointer
	+ XProc
	+ XQuery
	+ XSL
	+ XSL-FO
	+ XSLT
		- elements

 |
| Catatan | 
* IndieAuth
* XAdES
* XBL
* XHTML+SMIL
* XUP

 |
| Daftar kerja | 
* CCXML
* CURIE
* EME
* InkML
* MSE
* RIF
* SMIL Timesheets
* sXBL
* WebGPU
* WebXR
* XFDL
* XFrames
* XMLHttpRequest

 |
| Panduan | 
* Web Content Accessibility Guidelines

 |
| Inisiatif | 
* Markup Validation Service
* Web Accessibility Initiative
* Web Components

 |
| Terdahulu | 
* C-HTML
* HDML
* JSSS
* PGML
* VML
* WebPlatform
* XHTML+MathML+SVG

 |
| Usang | 
* P3P

 |

 |
| Organisasi | 

|  |
| --- |
| 
* World Wide Web Foundation

 |
| Kelompok kerja | 
* TAG
* CSS
* SVG
* WebAssembly
* WebAuthn
* WHATWG

 |
| Kelompok komunitas & bisnis | 
* Web Advertising BG
* WebAssembly CG

 |
| Kelompok yang sudah ditutup | 
* Device Description (DDWG)
* HTML
* Multimodal Interaction Activity (MMI)

 |

 |
| Perangkatlunak | 

|  |
| --- |
| 
* CERN httpd
* Libwww

 |
| Peramban | 
* Line Mode (1990–)
* Arena (1993–1998)
* Agora (1994–1997)
* Argo (1994–1997)
* Amaya (browser/editor, 1996–2012)

 |

 |
| Konferensi | 
* International World Wide Web Conference (IW3C)
	+ Steering Committee (IW3C2)
	+ First conference ("WWW1", 1994)

 |

| Pengawasan otoritas Sunting ini di Wikidata |
| --- |
| Umum | 
* Integrated Authority File (Jerman)

 |
| Perpustakaan nasional | 
* Spanyol
* Prancis (data)
* Amerika Serikat
* Republik Ceko

 |
| Lain-lain | 
* Microsoft Academic

 |