一行代碼實現黑暗模式

其實黑暗模式可以用一行代碼來實現。我們看看具體是怎麼做到的。🤔

以這個模板爲例🖥

現在添加神奇的 CSS

html[theme='dark-mode'] {
    filter: invert(1) hue-rotate(180deg);
}

就這些!你搞定了✌

黑暗模式完成,但其實有點不合適。

說明

現在我們試着看看幕後發生了什麼。

filter 這個 CSS 屬性將模糊或顏色偏移等圖形效果應用於某個元素。這些濾鏡通常用於調整圖像、背景和邊框的渲染。

對於這種黑暗模式,我們將使用兩個濾鏡,分別是 invert 和 hue-rotate

invert 濾鏡用來反轉應用程序的配色方案。也就是說黑色會變成白色,白色變成黑色,所有顏色以此類推。invert() 函數作爲 filter 屬性的值將取 0 到 1 之間的數字,或 0%到 100%的百分比。

hue- rotate 濾鏡可以幫助我們處理所有非黑色和白色的顏色。它能將色相旋轉 180 度,讓我們可以確保應用程序的配色方案不變,而只是減弱其顏色。

使用這種方法的唯一陷阱是,它還將反轉應用程序中的所有圖像、圖片和視頻。因此,我們將向所有圖像添加相同的規則以反轉效果。

html[theme='dark-mode'] img,
picture,
video{
    filter: invert(1) hue-rotate(180deg);
}

並且我們要添加一個類,以反轉特定標籤內的效果。

.invert {
    filter: invert(1) hue-rotate(180deg);
}

結果🧑‍🧑

這樣我們就成功實現了黑暗模式。

BBulma 和 Bulma 的模板是基於 Flexbox 的免費開源 CSS 框架。

原文鏈接

Dark Mode with only 1 CSS PROPERTY

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章