开发适配

如果你开发的页面均使用FastAdmin组件且符合FastAdmin开发规范,基本上无需改动即可适配深色模式。

EqXLjMTWCNRsABdVpVlko2z8vAkRDmvSiWrntA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

如果你的自定义页面使用了自定义CSS或个性化CSS样式,此时需要你按以下文档进行适配深色模式。

ZpULAungGfSvMqiVY2UjdhdHakhdwcMJNsAyYw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

准备工作

GwimMTYagjsLXoUemB+m9dlfPayj3zh59BGguA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

首先插件内预置了几个暗色主题的颜色,我们在编写CSS时可以使用相应的变量,也可以自行使用深色系颜色。
其中内置的颜色如下:

jisyuHqvUKToeJdBVzLa+U5PMKlixAX2mrY3YA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
变量描述
var(--bgcolor)深色背景颜色,可用于深色背景和深色边框颜色
var(--lightenbgcolor)深色背景颜色,相比bgcolor要浅10%,通常可用在bgcolor上一层样式
var(--fontcolor)文字颜色,浅色系,通常用在bgcolorlightenbgcolor上一层文字颜色
LDZVGMgBtKrlCUsRyoLcSJPeBUZl4cgAJXG70Q==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

全局页面适配

sSrUAKtRCknepljib79EplFChLott/Q0DfcVjg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

如果你在多个页面使用了自定义CSS或个性化CSS样式,此时建议你采用全局适配的方法进行适配暗色模式。
可以采用以下三种方法:

VYKHpluOgPdkemqTfKioQ4PW6WONTWN94A1TfA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

1、在页面引入CSS文件

在页面中编写引入CSS文件的代码,如:

AIDJpGnwTPcMrxhbrkGzfxEN8gTDwRo54/jVBQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
<link rel="stylesheet" href="__CDN__/assets/addons/example/css/dark.css" data-render="darktheme" />
opsqKSWDjPaYAgBVo6ZLkJnCbSOHqq7X0NA1nA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

其中data-render="darktheme"是必选项。
其次CSS文件中代码的编写必须是body.darktheme 前缀,如:

nvJuCpSOXcwgQLTxvEac8Q3+0rE7lKLi38FLvA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
body.darktheme .testdiv {
        background: var(--bgcolor);
        color: var(--fontcolor);
}
ybiSnIYRqPVEmpWCoZ4QdIIg/hvjnr9ou2ybdw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

2、使用Hook引入CSS文件

如果你不想每个HTML视图文件去引入CSS文件,可以尝试使用Hook的方法进行引入,我们需要添加以下Hook,如:

NnhtMOdXVSBHlzuEY7eot62e2/x8Xy1XcU4SDw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
public function darkthemeCustomcss(&$content)
{
    $request = request();
    // 判断当前页面是否位于example页面
    if (strtolower($request->controller()) == 'example') {
        return "__CDN__/assets/addons/example/css/dark.css";
    }
    return '';
}
OUfEyKxcVZXiWrhJ5UDuRfr5HpKRWYcaOIXAGA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

其中Hook的darkthemeCustomfile方法必须返回CSS文件路径,注意可以返回空字符串,但不能返回false

vnfHqxLKkJzUXboQxFYPgW3gGPi72XgHr592Hg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

3、使用Hook引入CSS样式

如果你不希望采用引入CSS文件的名称来实现多页面样式,可以尝试使用以下的方法来引入,如:

bVWgOzSLsipfUMoD1iuxprMF3VoYvbM4nMsDsw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
public function darkthemeCustomcss(&$content)
{
    $request = request();
    // 判断当前页面是否位于example页面
    if (strtolower($request->controller()) == 'example') {
        return "body.darktheme .testdiv {
                    background: var(--bgcolor);
                    color: var(--fontcolor);
        }";
    }
    return '';
}
JnWcvRFYNsGELOBU4czhLDWLNbNapYZCiKb8Yg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

方法2方法3的Hook名称相同,只不过方法2返回的CSS文件,方法3直接返回了CSS样式

bUswvZkYrCiBOuahrKsyKajsWyTSw01Ox9fOZw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

局部页面适配

aSDPOlimdHVWvFrXoGhmRjrSOVzJegv+vmlIRw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

局部适配仅需在视图页面添加CSS进行适配即可,例如在视图页面添加以下代码:

AwIsBROhqfTCzktJmZ2Ofd9wvSxJA08cGW8v/A==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
<style data-render="darktheme">
    body.darktheme .testdiv {
            background: var(--bgcolor);
            color: var(--fontcolor);
   }
</style>
jhdixqVYXeBsJIPl2K4hajKk70/3R5uYpRyqqQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

其中style标签的data-render="darktheme"是必选项,其次样式中body.darktheme 前缀也是必选项。只有同时拥有上述属性和前缀,才会自适应暗色主题插件。

文档最后更新时间:2023-11-29 09:41:48
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。

文档
目录

深色
模式

切换
宽度