搜索文档 /

黑暗的模式

betway东盟体育app离子可以很容易地改变应用程序的主题,包括支持深色方案。随着本地应用对暗模式的支持越来越多,开发者现在希望将其添加到自己的应用中,以支持用户的偏好。

使用媒体查询

启用暗模式的第一种方法是使用 CSS媒体查询用户的首选配色方案 .这个媒体查询将连接到用户设备的系统设置中,并在启用暗模式时应用主题。


               @media
              
               
               prefers-color-scheme
               
              黑暗
               
             
              
             
              :根
             
              
             
              /*暗模式变量到这里*/
             
              
             
              
复制 复制

目前, prefers-color-scheme 媒体查询 有限的浏览器支持 ,因此用户将无法从使用该媒体查询在某些浏览器中的暗模式中受益。但是,暗模式仍然可以使用 CSS类回退

CSS类回退

作为不支持媒体查询的设备的后备方法,可以通过样式化CSS选择器并将类应用于文档主体来应用黑暗模式。


               @media
              
               
               prefers-color-scheme
               
              黑暗
               
             
              
             
              :根
             
              
             
              /*暗模式变量到这里*/
             
              
             
              
             
              /*返回旧浏览器或手动模式*/
             
              body.dark
             
              
             
              /*暗模式变量到这里*/
             
              
复制 复制

变量的目标是 body.dark 选择器,现在需要做的就是将类添加到 身体< > 这可以通过多种方式实现,这取决于你的应用程序是如何构建的。

注意,在这个例子中变量应该在两个地方。我们可以 使用JavaScript 为了避免在两个地方设置变量。

结合JavaScript

为了一次性写入CSS变量并避免在多个地方更新它们,可以使用JavaScript来组合回退和类来检查 prefers-color-scheme 媒体查询和添加 黑暗 类,如果首选项为 黑暗 .下面是CSS的样子:


              body.dark
             
              
             
              /*暗模式变量到这里*/
             
              
复制 复制

注意,上面的变量只在 body.dark 选择器,然后 prefers-color-scheme 媒体查询已被删除。

自动启用暗模式

在JavaScript中 黑暗 类可以添加到 身体< > 通过检查文档是否匹配使用的媒体查询 matchMedia () .这将使黑暗模式仍然工作基于用户的偏好。


              //使用matchMedia检查用户偏好
             
              常量
             prefersDark
              
             窗口
              
              matchMedia
              
              “(prefers-color-scheme:深色)”
              
              
             
              toggleDarkTheme
              
             prefersDark
              
             匹配
              
              
             
              //监听prefer -color-scheme媒体查询的变化
             prefersDark
              
              addListener
              
              
              mediaQuery
              
             
              =>
             
              toggleDarkTheme
              
             mediaQuery
              
             匹配
              
              
              
             
              //根据媒体查询是否匹配,添加或删除“dark”类
             
              函数
             
              toggleDarkTheme
              
              shouldAdd
              
             
              
             文档
              
             身体
              
             班级名册
              
              切换
              
              “黑暗”
              
             shouldAdd
              
              
             
              
复制 复制

提示:确保查看下面的Codepen 支持的浏览器 然后尝试在亮和暗模式之间改变设备上的系统偏好。这是 如何在Windows 10上启用暗模式 如何在Mac上启用它

手动切换黑暗模式

除了呼叫 toggleDarkTheme () 当应用程序加载和媒体查询改变时 toggleDarkTheme () 函数可以被应用程序调用,例如当用户改变一个开关时,在光明和黑暗主题之间切换:


              //查询用于在主题之间更改的切换
             
              常量
             切换
              
             文档
              
              querySelector
              
              “# themeToggle”
              
              
             
              //在上监听切换检查/取消检查以切换dark类
             切换
              
              addEventListener
              
              “ionChange”
              
             
              
              电动汽车
              
             
              =>
             
              
             文档
              
             身体
              
             班级名册
              
              切换
              
              “黑暗”
              
             电动汽车
              
             细节
              
             检查
              
              
             
              
              
              
             
              常量
             prefersDark
              
             窗口
              
              matchMedia
              
              “(prefers-color-scheme:深色)”
              
              
             
              //监听prefer -color-scheme媒体查询的变化
             prefersDark
              
              addListener
              
              
              e
              
             
              =>
             
              checkToggle
              
             e
              
             匹配
              
              
              
             
              //当应用加载时调用
             
              函数
             
              loadApp
              
              
             
              
             
              checkToggle
              
             prefersDark
              
             匹配
              
              
             
              
             
              //被媒体查询调用来检查/取消选择
             
              函数
             
              checkToggle
              
              shouldCheck
              
             
              
             切换
              
             检查
              
             shouldCheck
              
             
              
复制 复制

调整系统UI组件

在开发黑暗主题时,您可能会注意到某些系统UI组件没有正确地适应黑暗模式。要解决这个问题,您需要指定 台灯 .看到 颜色方案的浏览器兼容性 有关跨浏览器支持的详细信息。

虽然你可能主要使用离子组件而不是本地组件,betway东盟体育app 台灯 也会影响应用程序的某些方面,比如滚动条。为了使用 台灯 您需要将下列HTML添加到 您的应用程序:


                <
               
              
               的名字
                
                
               台灯
                
              
               内容
                
                
               光暗
                
              
               />
复制 复制

这允许页面指示使用哪种颜色方案进行渲染。或者,你可以添加以下CSS来实现每个元素:


              台灯
              
             光暗
              
复制 复制
默认的滚动条 滚动条和 台灯
应用程序没有台灯"src=
应用程序与台灯"src=

有关 台灯 请参阅 https://web.dev/color-scheme/

台灯 不适用于键盘。有关暗模式如何使用键盘的详细信息,请参见 键盘的文档

betway东盟体育app离子黑暗的主题

betway东盟体育appIonic有一个推荐的变量主题,用于基于运行应用的设备获得黑暗模式。它可以分为以下几个部分:

  1. 更改默认 betway东盟体育app离子的颜色 对所有 模式 以补充黑暗的背景 body.dark 选择器。
  2. 为黑色主题设置变量 ios 设备。
  3. 为黑色主题设置变量 医学博士 设备。

下面的代码可以复制和粘贴到一个应用程序,以获得爱奥尼亚的黑色主题。betway东盟体育app我们添加 黑暗 类中提到的使用JavaScript的文档主体 结合JavaScript 部分。暗模式将不会被启用,直到 黑暗 类添加到文档主体。

有关正在更改的变量(包括可以添加到进一步自定义的其他变量)的更多信息,请参见 主题


              / * *黑暗的颜色  * ------------------------------------------- */
             
              body.dark
             
              
             
              ——ion-color-primary
              
             # 428 cff
              
             
              ——ion-color-primary-rgb
              
             66
              
             140
              
             255
              
             
              ——ion-color-primary-contrast
              
             # ffffff
              
             
              ——ion-color-primary-contrast-rgb
              
             255
              
             255
              
             255
              
             
              ——ion-color-primary-shade
              
             # 3 a7be0
              
             
              ——ion-color-primary-tint
              
             # 5598 ff
              
             
              ——ion-color-secondary
              
             # 50 c8ff
              
             
              ——ion-color-secondary-rgb
              
             80
              
             200
              
             255
              
             
              ——ion-color-secondary-contrast
              
             # ffffff
              
             
              ——ion-color-secondary-contrast-rgb
              
             255
              
             255
              
             255
              
             
              ——ion-color-secondary-shade
              
             # 46 b0e0
              
             
              ——ion-color-secondary-tint
              
             # 62 ceff
              
             
              ——ion-color-tertiary
              
             # 6 a64ff
              
             
              ——ion-color-tertiary-rgb
              
             106
              
             One hundred.
              
             255
              
             
              ——ion-color-tertiary-contrast
              
             # ffffff
              
             
              ——ion-color-tertiary-contrast-rgb
              
             255
              
             255
              
             255
              
             
              ——ion-color-tertiary-shade
              
             # 5 d58e0
              
             
              ——ion-color-tertiary-tint
              
             # 7974 ff
              
             
              ——ion-color-success
              
             # 2 fdf75
              
             
              ——ion-color-success-rgb
              
             47
              
             223
              
             117
              
             
              ——ion-color-success-contrast
              
             # 000000
              
             
              ——ion-color-success-contrast-rgb
              
             0
              
             0
              
             0
              
             
              ——ion-color-success-shade
              
             # 29 c467
              
             
              ——ion-color-success-tint
              
             # 44 e283
              
             
              ——ion-color-warning
              
             # ffd534
              
             
              ——ion-color-warning-rgb
              
             255
              
             213
              
             52
              
             
              ——ion-color-warning-contrast
              
             # 000000
              
             
              ——ion-color-warning-contrast-rgb
              
             0
              
             0
              
             0
              
             
              ——ion-color-warning-shade
              
             # e0bb2e
              
             
              ——ion-color-warning-tint
              
             # ffd948
              
             
              ——ion-color-danger
              
             # ff4961
              
             
              ——ion-color-danger-rgb
              
             255
              
             73
              
             97
              
             
              ——ion-color-danger-contrast
              
             # ffffff
              
             
              ——ion-color-danger-contrast-rgb
              
             255
              
             255
              
             255
              
             
              ——ion-color-danger-shade
              
             # e04055
              
             
              ——ion-color-danger-tint
              
             # ff5b71
              
             
              ——ion-color-dark
              
             # f4f5f8
              
             
              ——ion-color-dark-rgb
              
             244
              
             245
              
             248
              
             
              ——ion-color-dark-contrast
              
             # 000000
              
             
              ——ion-color-dark-contrast-rgb
              
             0
              
             0
              
             0
              
             
              ——ion-color-dark-shade
              
             # d7d8da
              
             
              ——ion-color-dark-tint
              
             # f5f6f9
              
             
              ——ion-color-medium
              
             # 989 aa2
              
             
              ——ion-color-medium-rgb
              
             152
              
             154
              
             162
              
             
              ——ion-color-medium-contrast
              
             # 000000
              
             
              ——ion-color-medium-contrast-rgb
              
             0
              
             0
              
             0
              
             
              ——ion-color-medium-shade
              
             # 86888 f
              
             
              ——ion-color-medium-tint
              
             # a2a4ab
              
             
              ——ion-color-light
              
             # 222428
              
             
              ——ion-color-light-rgb
              
             34
              
             36
              
             40
              
             
              ——ion-color-light-contrast
              
             # ffffff
              
             
              ——ion-color-light-contrast-rgb
              
             255
              
             255
              
             255
              
             
              ——ion-color-light-shade
              
             # 1 e2023
              
             
              ——ion-color-light-tint
              
             # 383 a3e
              
             
              
             
              / * * iOS黑暗的主题  * ------------------------------------------- */
             
              .ios body.dark
             
              
             
              ——ion-background-color
              
             # 000000
              
             
              ——ion-background-color-rgb
              
             0
              
             0
              
             0
              
             
              ——ion-text-color
              
             # ffffff
              
             
              ——ion-text-color-rgb
              
             255
              
             255
              
             255
              
             
              ——ion-color-step-50
              
             # 0 d0d0d
              
             
              ——离子-颜色- 100步
              
             # 1 a1a1a
              
             
              ——离子-颜色- 150步
              
             # 262626
              
             
              ——离子-颜色- 200步
              
             # 333333
              
             
              ——离子-颜色- 250步
              
             # 404040
              
             
              ——离子-颜色- 300步
              
             # 4 d4d4d
              
             
              ——离子-颜色- 350步
              
             # 595959
              
             
              ——离子-颜色- 400步
              
             # 666666
              
             
              ——离子-颜色- 450步
              
             # 737373
              
             
              ——离子-颜色- 500步
              
             # 808080
              
             
              ——离子-颜色- 550步
              
             # 8 c8c8c
              
             
              ——离子-颜色- 600步
              
             # 999999
              
             
              ——离子-颜色- 650步
              
             # a6a6a6
              
             
              ——离子-颜色- 700步
              
             # b3b3b3
              
             
              ——离子-颜色- 750步
              
             # bfbfbf
              
             
              ——离子-颜色- 800步
              
             # cccccc
              
             
              ——离子-颜色- 850步
              
             # d9d9d9
              
             
              ——离子-颜色- 900步
              
             # e6e6e6
              
             
              ——离子-颜色- 950步
              
             # f2f2f2
              
             
              ——ion-item-background
              
             # 000000
              
             
              ——ion-card-background
              
             # 1 c1c1d
              
             
              
             
              .ios body.darkion-modal
             
              
             
              ——ion-background-color
              
             
              var
              
             ——离子-颜色- 100步
              
              
             
              ——ion-toolbar-background
              
             
              var
              
             ——离子-颜色- 150步
              
              
             
              ——ion-toolbar-border-color
              
             
              var
              
             ——离子-颜色- 250步
              
              
             
              ——ion-item-background
              
             
              var
              
             ——离子-颜色- 150步
              
              
             
              
             
              / * *材料设计黑暗的主题  * ------------------------------------------- */
             
              。海事body.dark
             
              
             
              ——ion-background-color
              
             # 121212
              
             
              ——ion-background-color-rgb
              
             18
              
             18
              
             18
              
             
              ——ion-text-color
              
             # ffffff
              
             
              ——ion-text-color-rgb
              
             255
              
             255
              
             255
              
             
              ——ion-border-color
              
             # 222222
              
             
              ——ion-color-step-50
              
             # 1 e1e1e
              
             
              ——离子-颜色- 100步
              
             # 2 a2a2a
              
             
              ——离子-颜色- 150步
              
             # 363636
              
             
              ——离子-颜色- 200步
              
             # 414141
              
             
              ——离子-颜色- 250步
              
             # 4 d4d4d
              
             
              ——离子-颜色- 300步
              
             # 595959
              
             
              ——离子-颜色- 350步
              
             # 656565
              
             
              ——离子-颜色- 400步
              
             # 717171
              
             
              ——离子-颜色- 450步
              
             # 7 d7d7d
              
             
              ——离子-颜色- 500步
              
             # 898989
              
             
              ——离子-颜色- 550步
              
             # 949494
              
             
              ——离子-颜色- 600步
              
             # a0a0a0
              
             
              ——离子-颜色- 650步
              
             # acacac
              
             
              ——离子-颜色- 700步
              
             # b8b8b8
              
             
              ——离子-颜色- 750步
              
             # c4c4c4
              
             
              ——离子-颜色- 800步
              
             # d0d0d0
              
             
              ——离子-颜色- 850步
              
             # dbdbdb
              
             
              ——离子-颜色- 900步
              
             # e7e7e7
              
             
              ——离子-颜色- 950步
              
             # f3f3f3
              
             
              ——ion-item-background
              
             # 1 e1e1e
              
             
              ——ion-toolbar-background
              
             # 1 f1f1f
              
             
              ——ion-tab-bar-background
              
             # 1 f1f1f
              
             
              ——ion-card-background
              
             # 1 e1e1e
              
             
              
复制 复制
以前的
主题
下一个
先进的主题
Baidu