-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathpostcss-mobile-forever.d.ts
165 lines (123 loc) · 5.37 KB
/
postcss-mobile-forever.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
import { Plugin } from "postcss"
declare namespace mobileForever {
type viewportWidthFunc = (file: string) => number
type strOrReg = string | RegExp
type propertyBlackList = strOrReg | (strOrReg | { [s: string]: strOrReg | strOrReg[] })[]
interface Options {
/** 设计图宽度,可以传递函数动态生成设计图宽度,例如 `file => file.includes("vant") ? 375 : 750` 表示在名称包含“vant”的文件内使用 375 的设计图宽度 */
viewportWidth?: number | viewportWidthFunc
/** 限制视口单位的最大宽度,使用该参数不可以打开 `disableMobile` */
maxDisplayWidth?: number
/** rem 模式的基准宽度 */
basicRemWidth?: number
/** 打开媒体查询模式,打开后将自动关闭 maxDisplayWidth */
enableMediaQuery?: boolean
/** 适配到桌面端时,展示的视图宽度 */
desktopWidth?: number
/** 适配到移动端横屏时,展示的视图宽度 */
landscapeWidth?: number
/** 宽度断点,如果不提供这个值,默认使用 `desktopWidth` 的值,视图大于这个宽度,则页面宽度是桌面端宽度 `desktopWidth`,“简介”一节具体介绍了该值的触发情况 */
minDesktopDisplayWidth?: number
/** 高度断点,视图小于这个高度,并满足一定条件,则页面使用移动端横屏宽度,“原理和输入输出范例”一节具体介绍了该值的触发情况 */
maxLandscapeDisplayHeight?: number
/** 页面最外层选择器,如 `#app`、`.root-class` */
appSelector?: string
/** 矫正 fixed 定位元素的方式 */
appContainingBlock?: "calc" | "manual" | "auto"
/** 指定 `appSelector` 往内一层的元素选择器,当 `appContainingBlock` 值为 `auto` 时,需要设置该属性 */
necessarySelectorWhenAuto?: string
/** 在页面外层展示边框吗,用于分辨居中的小版心布局和背景,可以设置颜色字符串 */
border?: boolean | string
/** 打开则不做桌面端适配 */
disableDesktop?: boolean
/** 打开则不做移动端横屏适配 */
disableLandscape?: boolean
/** 打开则不做移动端竖屏适配,把 px 转换为视口单位,如 vw */
disableMobile?: boolean
/** 排除文件或文件夹 */
exclude?: RegExp | RegExp[]
/** 包括文件或文件夹 */
include?: RegExp | RegExp[]
/** 单位精确到小数点后几位? */
unitPrecision?: number
/** 哪些属性要替换,哪些属性忽略?用法参考 [postcss-px-to-viewport 文档](https://github.com/evrone/postcss-px-to-viewport/blob/HEAD/README_CN.md) */
propList?: string[];
/** 选择器黑名单,名单上的不转换 */
selectorBlackList?: (string | RegExp)[]
/** 属性的黑名单列表,名单上的属性不被转换 */
propertyBlackList?: propertyBlackList
/** 属性值黑名单,名单上的值不被转换 */
valueBlackList?: (string | RegExp)[]
/** 包含块是根元素的选择器列表 */
rootContainingBlockSelectorList?: (string | RegExp)[]
/** 纵向书写模式的选择器列表 */
verticalWritingSelectorList?: (string | RegExp)[]
/** 竖屏要转换成什么视口单位? */
mobileUnit?: string;
/** 侧边内容的配置,用于扩大桌面端可访问内容 */
side?: side
/** 自定义注释名称 */
comment?: comment
/** 和长度有关的自定义属性,需要转换的自定义属性 */
customLengthProperty?: {
/** 用于根包含块和 left、right 的自定义属性 */
rootContainingBlockList_LR?: string[]
/** 用于根包含块的,非 left、right 的自定义属性 */
rootContainingBlockList_NOT_LR?: string[]
/** 用于非根包含块的自定义属性 */
ancestorContainingBlockList?: string[]
/** 关闭自动添加到桌面端和横屏 */
disableAutoApply?: boolean,
}
/** 实验性功能 */
experimental?: {
/** 分离桌面、横屏、移动端样式 */
extract?: boolean
/** 最小视图宽度,媒体查询模式不可用 */
minDisplayWidth?: number
}
}
function remakeExtractedGetLocalIdent(getLocalIdentOpts: getLocalIdentOpts): any
interface side {
/** 侧边宽度,如果指定的选择器下有 width 属性,则无需设置 */
width?: number
/** 上下左右间隔 */
gap?: number
/** 左上选择器 */
selector1?: string
/** 右上选择器 */
selector2?: string
/** 右下选择器 */
selector3?: string
/** 左下选择器 */
selector4?: string
/** 左上侧边宽度,优先级大于 width */
width1?: number
/** 右上侧边宽度 */
width2?: number
/** 右下侧边宽度 */
width3?: number
/** 左下侧边宽度 */
width4?: number
}
interface comment {
/** 直接添加进屏幕媒体查询,不转换 */
applyWithoutConvert?: string
/** 包含块注释 */
rootContainingBlock?: string
/** 非包含块注释 */
notRootContainingBlock?: string
/** 忽略选择器内的转换 */
ignoreNext?: string
/** 忽略本行转换 */
ignoreLine?: string
/** 纵向书写模式 */
verticalWritingMode?: string
}
interface getLocalIdentOpts {
defaultGetLocalIdent?: any
getLocalIdent?: any
}
}
declare function mobileForever(options?: mobileForever.Options): Plugin
export = mobileForever