- CSS
text-stroke hanya menerima satu nilai, tetapi dengan menumpuk beberapa layer huruf yang sama dan memberi ketebalan outline serta warna yang berbeda pada tiap layer, kita bisa membuat efek teks multi-outline bergaya retro
- Dengan merujuk pada efek teks dari Graphic Japan : from woodblock and zen to manga and kawaii, hasil yang lebih mendekati bisa diperoleh dengan mengatur
text-stroke-width berbeda pada beberapa elemen
- Dengan menggabungkan
text-stroke-width, text-stroke-color, dan z-index per layer, urutan dan warna outline dapat dikendalikan, dan bentuk huruf asli tetap terjaga meskipun ketebalannya bertambah
- Hasil rendering berbeda antar-browser; Firefox terlihat lebih halus dibanding Chrome dan Safari, dan jika beberapa huruf dimasukkan dalam satu baris, bentuk huruf akan saling menyatu
- Hasil akhirnya sangat dipengaruhi oleh font yang dipilih, dan pada
font-size besar bisa muncul kedipan, sehingga cocok untuk eksperimen atau pembuatan gambar dengan css-doodle, tetapi tidak cocok untuk penggunaan produksi
Cara implementasi
-webkit-text-stroke-color: @pn(--c, #f4e1e8);
-webkit-text-stroke-width: $em(.08n+.02(1-(-1)^n));
- Dengan memberi warna berbeda pada tiap layer dan menumpuknya dalam urutan yang diinginkan, kita bisa mengontrol warna serta urutan outline
-webkit-text-stroke-color: @pn(#f4e1e8, #cc0d55);
-webkit-text-stroke-width: @i(*3px);
Rendering dan keterbatasan
- Firefox memberikan rendering yang lebih halus dibanding Chrome dan Safari
- Jika beberapa huruf dimasukkan dalam satu baris, bentuk huruf akan saling menyatu
@content: '秋收冬藏';
- Untuk bereksperimen cepat dengan berbagai font, fungsi
@google-font ditambahkan agar pemuatan font lebih cepat
font-family: @google-font(Matemasie);
@content: 'b';
font-family: @google-font(Tangerine);
@content: 'Love';
font-family: @google-font('Cherry Bomb One');
@content: '+';
- Performanya tidak sebaik filter CSS, dan terutama saat
font-size semakin besar, kedipan bisa terlihat
- Contoh tambahan dibuat dengan css-doodle, dan CodePen untuk contoh pertama bisa dilihat di https://codepen.io/yuanchuan/pen/ogzarGo
1 komentar
Komentar Hacker News
Tulisan ini dibuat oleh pembuat css-doodle menggunakan css-doodle. Web component ini memungkinkan sintaks varian CSS yang dipakai di blog ditulis langsung di dalam HTML
Contohnya seperti ini:
@grid: 15 / 90%;border-radius: 50%;background: hsl(@t(/20), 70%, 60%);scale: sin(@atan2(@dx, @dy) + @ts);Selain memuat definisi komponennya, tidak perlu JavaScript, dan ini berjalan di HTML biasa, Markdown, framework, dan sebagainya
https://css-doodle.com/
Sebagian besar CSS di halaman ini terlihat seperti sandi bagi saya. Di era dengan begitu banyak gaya yang sudah terstandarisasi, salut untuk penulis yang mengunggah sesuatu yang baru dan keren
Saya penasaran kenapa mesin rendering CSS Firefox lebih memilih hasil yang halus. Implementasinya terlihat sangat berbeda, tetapi mungkin memang tampak begitu karena ini kasus tepi dalam rendering
Firefox memutuskan untuk memperluas berdasarkan jarak di semua titik, yang merupakan salah satu jawaban yang masuk akal dan mungkin juga pendekatan yang paling umum. Karena itu cusp yang runcing meluas menjadi kurva
Browser lain memilih mempertahankan cusp, yang juga bisa dianggap masuk akal dan saya kira biaya komputasinya jauh lebih rendah. Namun, ketika diperluas melebihi ukuran fitur, yaitu jarak antarnode, banyak kasus degeneratif muncul, sehingga sekitar cincin merah keempat hasilnya terlihat jelas salah
box-shadowjuga merupakan kasus lain di mana ekspansi terjadi. Itulah spread distance, nilai panjang keempatnya. Jika sudutnya cusp, sudut bayangannya juga menjadi cusp; jika membulat, sudut bayangannya juga membulat. Ada ilustrasi yang berguna di https://drafts.csswg.org/css-backgrounds/#shadow-shapeDengan sedikit trik, jika diberi
0.1px border-radius, kotaknya tetap terlihat persegi, tetapi bayangan yang diperluas menjadi kurva. Kadang berguna. Kembali ke isi tulisan aslinya, jika memakai font dengan kurva yang sangat halus alih-alih node cusp, Chromium/Safari juga akan menjadi lebih mirip FirefoxSecara intuitif saya berharap outline berbentuk bintang akan mendekati heksagon biasa, tetapi tidak ada browser yang benar-benar melakukannya
Sudut-sudut bulat pada layer pertama akan semuanya berjarak sama dari sudut terdekat karakter aslinya
Desain blog ini sangat bagus. Sederhana, jelas, dan mengutamakan konten
Seri Daily Sketch maupun
CSS Animation with offset-pathjuga sama menariknyaSetelah membaca tulisan ini saya baru pertama kali tahu https://css-doodle.com
Beberapa bulan lalu saya melakukan hal serupa dengan HTML Canvas API, tetapi saya tidak tahu CSS juga bisa dipakai untuk eksperimen kecil yang menyenangkan seperti ini. Saya sangat suka
Saya mencoba mengubah fiddle-nya menjadi logo dan warna Apple, dan cincin pertama malah memakan sebagian apel. Bagian atas apelnya terpotong, jadi saya penasaran apakah ada yang tahu kenapa
--c: #5EBD3E,#FFB900,#F78200,#E23838,#973999,#009CDF;@content: '';Saya penasaran apa cara terbaik membuat teks outline ganda sambil tetap mempertahankan tampilan yang direkomendasikan font, tanpa memakai karakter Unicode yang mewah
Saat ini saya memakai karakter keren di my blog, tetapi itu merugikan hasil pencarian. Saya sedang memindahkan blog dari HTML manual ke 11ty, jadi sekalian ingin memperbaiki blognya juga
Selain itu, saya juga ingin mendapat masukan tentang desain blog saat ini
Keren. Hanya saja sayang sekali perbedaan rendering antar-browser terlalu besar
Saya penasaran apakah ada yang mencoba hal yang sama dengan bayangan. Rasanya bayangan juga bisa ditumpuk
Hal pertama yang terpikir oleh saya adalah memasukkan emoji ke content. Tetapi yang muncul cuma kotak karakter tak dikenal. Saya kira saya mengharapkan semacam sihir