nubomed-ui 1.0.1 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. package/.env.bi +13 -0
  2. package/.env.terminal +13 -0
  3. package/.vscode/extensions.json +3 -0
  4. package/README.md +17 -0
  5. package/index.html +13 -0
  6. package/nubomed-ui/nubomed-ui.es.js +2005 -0
  7. package/nubomed-ui/nubomed-ui.umd.js +1 -0
  8. package/nubomed-ui/style.css +1 -0
  9. package/package.json +19 -7
  10. package/src/App.vue +31 -0
  11. package/src/bi-demos/Header.vue +29 -0
  12. package/src/bi-demos/Table.vue +69 -0
  13. package/src/bi-demos/index.vue +132 -0
  14. package/src/bi-packages/components/Box/images/corner-error.png +0 -0
  15. package/src/bi-packages/components/Box/images/corner-warning.png +0 -0
  16. package/src/bi-packages/components/Box/images/corner.png +0 -0
  17. package/src/bi-packages/components/Box/index.scss +86 -0
  18. package/src/bi-packages/components/Box/index.vue +53 -0
  19. package/src/bi-packages/components/Carousel/CarouselItem.vue +0 -0
  20. package/src/bi-packages/components/Carousel/index.vue +0 -0
  21. package/src/bi-packages/components/Header/images/left-bg.png +0 -0
  22. package/src/bi-packages/components/Header/images/logo.png +0 -0
  23. package/src/bi-packages/components/Header/images/right-bg.png +0 -0
  24. package/src/bi-packages/components/Header/index.scss +50 -0
  25. package/src/bi-packages/components/Header/index.vue +54 -0
  26. package/src/bi-packages/components/Table/TableColgroup.vue +43 -0
  27. package/src/bi-packages/components/Table/index copy.vue +107 -0
  28. package/src/bi-packages/components/Table/index.scss +118 -0
  29. package/src/bi-packages/components/Table/index.vue +108 -0
  30. package/src/bi-packages/components/TableColumn/index.scss +7 -0
  31. package/src/bi-packages/components/TableColumn/index.vue +60 -0
  32. package/src/bi-packages/fonts/OPPOSans-B.ttf +0 -0
  33. package/src/bi-packages/fonts/OPPOSans-M.ttf +0 -0
  34. package/src/bi-packages/fonts/font.scss +11 -0
  35. package/src/bi-packages/iconfont-svg/demo.css +539 -0
  36. package/src/bi-packages/iconfont-svg/demo_index.html +4811 -0
  37. package/src/bi-packages/iconfont-svg/iconfont.css +819 -0
  38. package/src/bi-packages/iconfont-svg/iconfont.js +1 -0
  39. package/src/bi-packages/iconfont-svg/iconfont.json +1416 -0
  40. package/src/bi-packages/iconfont-svg/iconfont.ttf +0 -0
  41. package/src/bi-packages/iconfont-svg/iconfont.woff +0 -0
  42. package/src/bi-packages/iconfont-svg/iconfont.woff2 +0 -0
  43. package/src/bi-packages/index.js +34 -0
  44. package/src/bi-packages/styles/mixin.scss +12 -0
  45. package/src/bi-packages/styles/var.scss +11 -0
  46. package/src/demos/ActionBar.vue +59 -0
  47. package/src/demos/Badge.vue +28 -0
  48. package/src/demos/Button copy.vue +302 -0
  49. package/src/demos/Button.vue +116 -0
  50. package/src/demos/ButtonGroup.vue +40 -0
  51. package/src/demos/Check.vue +29 -0
  52. package/src/demos/Dialog.vue +255 -0
  53. package/src/demos/Empty.vue +38 -0
  54. package/src/demos/FooterMenu.vue +49 -0
  55. package/src/demos/Header.vue +71 -0
  56. package/src/demos/Icons.vue +314 -0
  57. package/src/demos/Input.vue +87 -0
  58. package/src/demos/InputKeyboard.vue +30 -0
  59. package/src/demos/InputNumber.vue +34 -0
  60. package/src/demos/LeftMenu.vue +128 -0
  61. package/src/demos/Menus.vue +106 -0
  62. package/src/demos/OpenCabinetBall.vue +37 -0
  63. package/src/demos/Statusbar.vue +146 -0
  64. package/src/demos/Steps.vue +45 -0
  65. package/src/demos/Tost.vue +35 -0
  66. package/src/demos/button/button.md +19 -0
  67. package/src/demos/data/terList.json +145 -0
  68. package/src/demos/images/cabinets/H3000-D.png +0 -0
  69. package/src/demos/images/cabinets/H3000-R.png +0 -0
  70. package/src/demos/images/cabinets/H3000-Rh.png +0 -0
  71. package/src/demos/images/cabinets/H3000-Rh2.png +0 -0
  72. package/src/demos/images/cabinets/H3010-R.png +0 -0
  73. package/src/demos/index.vue +348 -0
  74. package/src/docs/icons/Icon.vue +72 -0
  75. package/src/docs/icons/icon.md +21 -0
  76. package/src/docs/index.html +15 -0
  77. package/src/docs/index.vue +301 -0
  78. package/src/main.js +23 -0
  79. package/src/packages/components/ActionBar/images/error.png +0 -0
  80. package/src/packages/components/ActionBar/images/loading.gif +0 -0
  81. package/src/packages/components/ActionBar/images/success.png +0 -0
  82. package/src/packages/components/ActionBar/images/warning.png +0 -0
  83. package/src/packages/components/ActionBar/images/warning_yellow.png +0 -0
  84. package/src/packages/components/ActionBar/index.scss +81 -0
  85. package/src/packages/components/ActionBar/index.vue +100 -0
  86. package/src/packages/components/Badge/index.scss +50 -0
  87. package/src/packages/components/Badge/index.vue +75 -0
  88. package/src/packages/components/Button/index.scss +241 -0
  89. package/src/packages/components/Button/index.vue +111 -0
  90. package/src/packages/components/ButtonGroup/index.scss +54 -0
  91. package/src/packages/components/ButtonGroup/index.vue +75 -0
  92. package/src/packages/components/Check/Cate.vue +138 -0
  93. package/src/packages/components/Check/index.scss +47 -0
  94. package/src/packages/components/Check/index.vue +105 -0
  95. package/src/packages/components/Dialog/images/error.png +0 -0
  96. package/src/packages/components/Dialog/images/success.png +0 -0
  97. package/src/packages/components/Dialog/images/warning-red.png +0 -0
  98. package/src/packages/components/Dialog/images/warning-yellow.png +0 -0
  99. package/src/packages/components/Dialog/index.scss +154 -0
  100. package/src/packages/components/Dialog/index.vue +305 -0
  101. package/src/packages/components/Empty/images/empty-abnormal.png +0 -0
  102. package/src/packages/components/Empty/images/empty-data.png +0 -0
  103. package/src/packages/components/Empty/images/empty-search.png +0 -0
  104. package/src/packages/components/Empty/index.vue +68 -0
  105. package/src/packages/components/Form/FormItem.vue +73 -0
  106. package/src/packages/components/Form/index.vue +76 -0
  107. package/src/packages/components/Icon/index.vue +30 -0
  108. package/src/packages/components/Input/index.scss +184 -0
  109. package/src/packages/components/Input/index.vue +189 -0
  110. package/src/packages/components/InputKeyboard/index.scss +63 -0
  111. package/src/packages/components/InputKeyboard/index.vue +117 -0
  112. package/src/packages/components/InputNumber/index.scss +103 -0
  113. package/src/packages/components/InputNumber/index.vue +160 -0
  114. package/src/packages/components/Menu/index.scss +559 -0
  115. package/src/packages/components/Menu/index.vue +211 -0
  116. package/src/packages/components/OpenCabinetBall/CabinetStatus.vue +94 -0
  117. package/src/packages/components/OpenCabinetBall/index.scss +204 -0
  118. package/src/packages/components/OpenCabinetBall/index.vue +113 -0
  119. package/src/packages/components/Statusbar/CabinetList.vue +125 -0
  120. package/src/packages/components/Statusbar/CabinetListStatus.vue +75 -0
  121. package/src/packages/components/Statusbar/CabinetListTempHum.vue +108 -0
  122. package/src/packages/components/Statusbar/index.scss +205 -0
  123. package/src/packages/components/Statusbar/index.vue +83 -0
  124. package/src/packages/components/Steps/index.scss +104 -0
  125. package/src/packages/components/Steps/index.vue +66 -0
  126. package/src/packages/components/SvgIcon/index.vue +41 -0
  127. package/src/packages/components/Toast/index.vue +72 -0
  128. package/src/packages/fonts/OPPOSans-B.ttf +0 -0
  129. package/src/packages/fonts/OPPOSans-M.ttf +0 -0
  130. package/src/packages/fonts/font.scss +11 -0
  131. package/src/packages/iconfont-svg/demo.css +539 -0
  132. package/src/packages/iconfont-svg/demo_index.html +4811 -0
  133. package/src/packages/iconfont-svg/iconfont.css +819 -0
  134. package/src/packages/iconfont-svg/iconfont.js +1 -0
  135. package/src/packages/iconfont-svg/iconfont.json +1416 -0
  136. package/src/packages/iconfont-svg/iconfont.ttf +0 -0
  137. package/src/packages/iconfont-svg/iconfont.woff +0 -0
  138. package/src/packages/iconfont-svg/iconfont.woff2 +0 -0
  139. package/src/packages/index.js +64 -0
  140. package/src/packages/styles/var.scss +24 -0
  141. package/src/utils/create.js +48 -0
  142. package/src/utils/index.js +13 -0
  143. package/src/utils/validate.js +3 -0
  144. package/vite.config.js +47 -0
  145. package/nubomed-ui.es.js +0 -152
  146. package/nubomed-ui.umd.js +0 -1
  147. package/style.css +0 -1
@@ -0,0 +1,66 @@
1
+ <!--
2
+ * @Author: chenghuan.dong
3
+ * @Date: 2023-06-27 16:57:58
4
+ * @LastEditors: chenghuan.dong
5
+ * @LastEditTime: 2023-07-24 14:15:34
6
+ * @Description: 步骤条
7
+ -->
8
+ <template>
9
+ <ul class="nb-steps">
10
+ <li v-for="(item, index) in data" :key="index" :class="itemClass(item, index)">
11
+ <div class="nb-steps__item__icon">
12
+ <nb-icon icon="circle-check-filled" />
13
+ <span></span>
14
+ </div>
15
+ <span class="nb-steps__item__text">{{ item }}</span>
16
+ </li>
17
+ </ul>
18
+ </template>
19
+ <script setup>
20
+ import { ref, computed, watch } from 'vue'
21
+ import { createNamespace } from '../../../utils/create.js'
22
+
23
+ const [name, bem] = createNamespace('steps')
24
+
25
+ // 定义名称
26
+ defineOptions({
27
+ name: 'NbSteps'
28
+ })
29
+
30
+ // 定义props
31
+ const props = defineProps({
32
+ // 值
33
+ data: {
34
+ type: Array,
35
+ default: () => {
36
+ return []
37
+ }
38
+ },
39
+ // 当前激活步骤
40
+ active: {
41
+ type: Number,
42
+ default: 0
43
+ },
44
+ // 设置当前步骤的状态, 不设置则根据 steps 确定状态:process-当前,finish-完成,wait-待完成
45
+ status: {
46
+ type: String,
47
+ default: 'process'
48
+ }
49
+ })
50
+
51
+ // 定义emits
52
+ const emits = defineEmits(['change'])
53
+
54
+ // 样式
55
+ const itemClass = (item, index) => {
56
+ return bem('item', {
57
+ process: (index === props.active && props.status === 'process'),
58
+ finish: index < props.active || (index === props.active && props.status === 'finish'),
59
+ wait: index > props.active || (index === props.active && props.status === 'wait')
60
+ })
61
+ }
62
+ </script>
63
+
64
+ <style lang="scss">
65
+ @import './index.scss';
66
+ </style>
@@ -0,0 +1,41 @@
1
+ <!--
2
+ * @Author: chenghuan.dong
3
+ * @Date: 2022-10-15 22:31:37
4
+ * @LastEditors: chenghuan.dong
5
+ * @LastEditTime: 2023-07-02 11:01:38
6
+ * @Description: svg-icon
7
+ -->
8
+ <template>
9
+ <svg :class="`svg-icon ${iconClass}`">
10
+ <use :xlink:href="`#icon-${props.icon}`" />
11
+ </svg>
12
+ </template>
13
+
14
+ <script setup>
15
+ // 定义名称
16
+ defineOptions({
17
+ name: 'SvgIcon'
18
+ })
19
+
20
+ const props = defineProps({
21
+ // icon的名称
22
+ icon: {
23
+ type: String,
24
+ required: true
25
+ },
26
+ // icon的样式名称
27
+ iconClass: {
28
+ type: String,
29
+ default: ''
30
+ }
31
+ })
32
+ </script>
33
+
34
+ <style lang="scss">
35
+ .svg-icon {
36
+ width: 1em;
37
+ height: 1em;
38
+ fill: currentColor;
39
+ vertical-align: middle;
40
+ }
41
+ </style>
@@ -0,0 +1,72 @@
1
+ <!--
2
+ * @Author: chenghuan.dong
3
+ * @Date: 2023-07-06 10:20:14
4
+ * @LastEditors: chenghuan.dong
5
+ * @LastEditTime: 2023-07-07 17:50:36
6
+ * @Description: 状态栏
7
+ -->
8
+
9
+ <template>
10
+ <transition>
11
+ <div v-show="visible" :class="classes" @mouseenter="onMouseenter" @mouseleave="onMouseleave">
12
+ <div v-html="message"></div>
13
+ </div>
14
+ </transition>
15
+ </template>
16
+
17
+ <script setup>
18
+ import { ref } from 'vue'
19
+ const [name, bem] = createNamespace("statusbar");
20
+ const visible = ref(false)
21
+
22
+ // 定义名称
23
+ defineOptions({
24
+ name: "nb-tost",
25
+ });
26
+
27
+ // 定义props
28
+ const props = defineProps({
29
+ // 消息类型
30
+ type: {
31
+ type: String,
32
+ default: "",
33
+ },
34
+ // 显示时间,单位为毫秒。 设为 0 则不会自动关闭
35
+ duration: {
36
+ type: Number,
37
+ default: 3000
38
+ },
39
+ // 是否显示关闭按钮
40
+ showClose: {
41
+ type: Boolean,
42
+ default: false
43
+ },
44
+ // 消息文字
45
+ message: {
46
+ type: String,
47
+ default: "",
48
+ }
49
+ });
50
+ // 定义emits
51
+ const emits = defineEmits(["change"]);
52
+
53
+ // 消息的样式
54
+ const classes = bem(props.type)
55
+
56
+
57
+ // 鼠标移入,暂停自动关闭倒计时
58
+ const onMouseenter = () => {
59
+
60
+ }
61
+
62
+ // 鼠标移出,开启自动关闭倒计时
63
+ const onMouseleave = () => {
64
+
65
+ }
66
+
67
+ defineExpose({
68
+ success: () => {
69
+ visible.value = true
70
+ }
71
+ })
72
+ </script>
@@ -0,0 +1,11 @@
1
+ // 浏览器壳和Android壳均已集成字体文件,但处理方式不一样
2
+ // 开发环境下,均需要引用字体文件
3
+ // 生产环境下,Android包需要引入字体文件,但Android可会进行请求拦截
4
+ // 生成环境下,Web包不需要引入字体文件,但要兼容-M和 M两种
5
+ @font-face {
6
+ font-family: OPPOSans-M;src: url('./OPPOSans-M.ttf');
7
+ }
8
+
9
+ @font-face {
10
+ font-family: OPPOSans-B;src: url('./OPPOSans-B.ttf');
11
+ }
@@ -0,0 +1,539 @@
1
+ /* Logo 字体 */
2
+ @font-face {
3
+ font-family: "iconfont logo";
4
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
5
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
6
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
7
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
8
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
9
+ }
10
+
11
+ .logo {
12
+ font-family: "iconfont logo";
13
+ font-size: 160px;
14
+ font-style: normal;
15
+ -webkit-font-smoothing: antialiased;
16
+ -moz-osx-font-smoothing: grayscale;
17
+ }
18
+
19
+ /* tabs */
20
+ .nav-tabs {
21
+ position: relative;
22
+ }
23
+
24
+ .nav-tabs .nav-more {
25
+ position: absolute;
26
+ right: 0;
27
+ bottom: 0;
28
+ height: 42px;
29
+ line-height: 42px;
30
+ color: #666;
31
+ }
32
+
33
+ #tabs {
34
+ border-bottom: 1px solid #eee;
35
+ }
36
+
37
+ #tabs li {
38
+ cursor: pointer;
39
+ width: 100px;
40
+ height: 40px;
41
+ line-height: 40px;
42
+ text-align: center;
43
+ font-size: 16px;
44
+ border-bottom: 2px solid transparent;
45
+ position: relative;
46
+ z-index: 1;
47
+ margin-bottom: -1px;
48
+ color: #666;
49
+ }
50
+
51
+
52
+ #tabs .active {
53
+ border-bottom-color: #f00;
54
+ color: #222;
55
+ }
56
+
57
+ .tab-container .content {
58
+ display: none;
59
+ }
60
+
61
+ /* 页面布局 */
62
+ .main {
63
+ padding: 30px 100px;
64
+ width: 960px;
65
+ margin: 0 auto;
66
+ }
67
+
68
+ .main .logo {
69
+ color: #333;
70
+ text-align: left;
71
+ margin-bottom: 30px;
72
+ line-height: 1;
73
+ height: 110px;
74
+ margin-top: -50px;
75
+ overflow: hidden;
76
+ *zoom: 1;
77
+ }
78
+
79
+ .main .logo a {
80
+ font-size: 160px;
81
+ color: #333;
82
+ }
83
+
84
+ .helps {
85
+ margin-top: 40px;
86
+ }
87
+
88
+ .helps pre {
89
+ padding: 20px;
90
+ margin: 10px 0;
91
+ border: solid 1px #e7e1cd;
92
+ background-color: #fffdef;
93
+ overflow: auto;
94
+ }
95
+
96
+ .icon_lists {
97
+ width: 100% !important;
98
+ overflow: hidden;
99
+ *zoom: 1;
100
+ }
101
+
102
+ .icon_lists li {
103
+ width: 100px;
104
+ margin-bottom: 10px;
105
+ margin-right: 20px;
106
+ text-align: center;
107
+ list-style: none !important;
108
+ cursor: default;
109
+ }
110
+
111
+ .icon_lists li .code-name {
112
+ line-height: 1.2;
113
+ }
114
+
115
+ .icon_lists .icon {
116
+ display: block;
117
+ height: 100px;
118
+ line-height: 100px;
119
+ font-size: 42px;
120
+ margin: 10px auto;
121
+ color: #333;
122
+ -webkit-transition: font-size 0.25s linear, width 0.25s linear;
123
+ -moz-transition: font-size 0.25s linear, width 0.25s linear;
124
+ transition: font-size 0.25s linear, width 0.25s linear;
125
+ }
126
+
127
+ .icon_lists .icon:hover {
128
+ font-size: 100px;
129
+ }
130
+
131
+ .icon_lists .svg-icon {
132
+ /* 通过设置 font-size 来改变图标大小 */
133
+ width: 1em;
134
+ /* 图标和文字相邻时,垂直对齐 */
135
+ vertical-align: -0.15em;
136
+ /* 通过设置 color 来改变 SVG 的颜色/fill */
137
+ fill: currentColor;
138
+ /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
139
+ normalize.css 中也包含这行 */
140
+ overflow: hidden;
141
+ }
142
+
143
+ .icon_lists li .name,
144
+ .icon_lists li .code-name {
145
+ color: #666;
146
+ }
147
+
148
+ /* markdown 样式 */
149
+ .markdown {
150
+ color: #666;
151
+ font-size: 14px;
152
+ line-height: 1.8;
153
+ }
154
+
155
+ .highlight {
156
+ line-height: 1.5;
157
+ }
158
+
159
+ .markdown img {
160
+ vertical-align: middle;
161
+ max-width: 100%;
162
+ }
163
+
164
+ .markdown h1 {
165
+ color: #404040;
166
+ font-weight: 500;
167
+ line-height: 40px;
168
+ margin-bottom: 24px;
169
+ }
170
+
171
+ .markdown h2,
172
+ .markdown h3,
173
+ .markdown h4,
174
+ .markdown h5,
175
+ .markdown h6 {
176
+ color: #404040;
177
+ margin: 1.6em 0 0.6em 0;
178
+ font-weight: 500;
179
+ clear: both;
180
+ }
181
+
182
+ .markdown h1 {
183
+ font-size: 28px;
184
+ }
185
+
186
+ .markdown h2 {
187
+ font-size: 22px;
188
+ }
189
+
190
+ .markdown h3 {
191
+ font-size: 16px;
192
+ }
193
+
194
+ .markdown h4 {
195
+ font-size: 14px;
196
+ }
197
+
198
+ .markdown h5 {
199
+ font-size: 12px;
200
+ }
201
+
202
+ .markdown h6 {
203
+ font-size: 12px;
204
+ }
205
+
206
+ .markdown hr {
207
+ height: 1px;
208
+ border: 0;
209
+ background: #e9e9e9;
210
+ margin: 16px 0;
211
+ clear: both;
212
+ }
213
+
214
+ .markdown p {
215
+ margin: 1em 0;
216
+ }
217
+
218
+ .markdown>p,
219
+ .markdown>blockquote,
220
+ .markdown>.highlight,
221
+ .markdown>ol,
222
+ .markdown>ul {
223
+ width: 80%;
224
+ }
225
+
226
+ .markdown ul>li {
227
+ list-style: circle;
228
+ }
229
+
230
+ .markdown>ul li,
231
+ .markdown blockquote ul>li {
232
+ margin-left: 20px;
233
+ padding-left: 4px;
234
+ }
235
+
236
+ .markdown>ul li p,
237
+ .markdown>ol li p {
238
+ margin: 0.6em 0;
239
+ }
240
+
241
+ .markdown ol>li {
242
+ list-style: decimal;
243
+ }
244
+
245
+ .markdown>ol li,
246
+ .markdown blockquote ol>li {
247
+ margin-left: 20px;
248
+ padding-left: 4px;
249
+ }
250
+
251
+ .markdown code {
252
+ margin: 0 3px;
253
+ padding: 0 5px;
254
+ background: #eee;
255
+ border-radius: 3px;
256
+ }
257
+
258
+ .markdown strong,
259
+ .markdown b {
260
+ font-weight: 600;
261
+ }
262
+
263
+ .markdown>table {
264
+ border-collapse: collapse;
265
+ border-spacing: 0px;
266
+ empty-cells: show;
267
+ border: 1px solid #e9e9e9;
268
+ width: 95%;
269
+ margin-bottom: 24px;
270
+ }
271
+
272
+ .markdown>table th {
273
+ white-space: nowrap;
274
+ color: #333;
275
+ font-weight: 600;
276
+ }
277
+
278
+ .markdown>table th,
279
+ .markdown>table td {
280
+ border: 1px solid #e9e9e9;
281
+ padding: 8px 16px;
282
+ text-align: left;
283
+ }
284
+
285
+ .markdown>table th {
286
+ background: #F7F7F7;
287
+ }
288
+
289
+ .markdown blockquote {
290
+ font-size: 90%;
291
+ color: #999;
292
+ border-left: 4px solid #e9e9e9;
293
+ padding-left: 0.8em;
294
+ margin: 1em 0;
295
+ }
296
+
297
+ .markdown blockquote p {
298
+ margin: 0;
299
+ }
300
+
301
+ .markdown .anchor {
302
+ opacity: 0;
303
+ transition: opacity 0.3s ease;
304
+ margin-left: 8px;
305
+ }
306
+
307
+ .markdown .waiting {
308
+ color: #ccc;
309
+ }
310
+
311
+ .markdown h1:hover .anchor,
312
+ .markdown h2:hover .anchor,
313
+ .markdown h3:hover .anchor,
314
+ .markdown h4:hover .anchor,
315
+ .markdown h5:hover .anchor,
316
+ .markdown h6:hover .anchor {
317
+ opacity: 1;
318
+ display: inline-block;
319
+ }
320
+
321
+ .markdown>br,
322
+ .markdown>p>br {
323
+ clear: both;
324
+ }
325
+
326
+
327
+ .hljs {
328
+ display: block;
329
+ background: white;
330
+ padding: 0.5em;
331
+ color: #333333;
332
+ overflow-x: auto;
333
+ }
334
+
335
+ .hljs-comment,
336
+ .hljs-meta {
337
+ color: #969896;
338
+ }
339
+
340
+ .hljs-string,
341
+ .hljs-variable,
342
+ .hljs-template-variable,
343
+ .hljs-strong,
344
+ .hljs-emphasis,
345
+ .hljs-quote {
346
+ color: #df5000;
347
+ }
348
+
349
+ .hljs-keyword,
350
+ .hljs-selector-tag,
351
+ .hljs-type {
352
+ color: #a71d5d;
353
+ }
354
+
355
+ .hljs-literal,
356
+ .hljs-symbol,
357
+ .hljs-bullet,
358
+ .hljs-attribute {
359
+ color: #0086b3;
360
+ }
361
+
362
+ .hljs-section,
363
+ .hljs-name {
364
+ color: #63a35c;
365
+ }
366
+
367
+ .hljs-tag {
368
+ color: #333333;
369
+ }
370
+
371
+ .hljs-title,
372
+ .hljs-attr,
373
+ .hljs-selector-id,
374
+ .hljs-selector-class,
375
+ .hljs-selector-attr,
376
+ .hljs-selector-pseudo {
377
+ color: #795da3;
378
+ }
379
+
380
+ .hljs-addition {
381
+ color: #55a532;
382
+ background-color: #eaffea;
383
+ }
384
+
385
+ .hljs-deletion {
386
+ color: #bd2c00;
387
+ background-color: #ffecec;
388
+ }
389
+
390
+ .hljs-link {
391
+ text-decoration: underline;
392
+ }
393
+
394
+ /* 代码高亮 */
395
+ /* PrismJS 1.15.0
396
+ https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
397
+ /**
398
+ * prism.js default theme for JavaScript, CSS and HTML
399
+ * Based on dabblet (http://dabblet.com)
400
+ * @author Lea Verou
401
+ */
402
+ code[class*="language-"],
403
+ pre[class*="language-"] {
404
+ color: black;
405
+ background: none;
406
+ text-shadow: 0 1px white;
407
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
408
+ text-align: left;
409
+ white-space: pre;
410
+ word-spacing: normal;
411
+ word-break: normal;
412
+ word-wrap: normal;
413
+ line-height: 1.5;
414
+
415
+ -moz-tab-size: 4;
416
+ -o-tab-size: 4;
417
+ tab-size: 4;
418
+
419
+ -webkit-hyphens: none;
420
+ -moz-hyphens: none;
421
+ -ms-hyphens: none;
422
+ hyphens: none;
423
+ }
424
+
425
+ pre[class*="language-"]::-moz-selection,
426
+ pre[class*="language-"] ::-moz-selection,
427
+ code[class*="language-"]::-moz-selection,
428
+ code[class*="language-"] ::-moz-selection {
429
+ text-shadow: none;
430
+ background: #b3d4fc;
431
+ }
432
+
433
+ pre[class*="language-"]::selection,
434
+ pre[class*="language-"] ::selection,
435
+ code[class*="language-"]::selection,
436
+ code[class*="language-"] ::selection {
437
+ text-shadow: none;
438
+ background: #b3d4fc;
439
+ }
440
+
441
+ @media print {
442
+
443
+ code[class*="language-"],
444
+ pre[class*="language-"] {
445
+ text-shadow: none;
446
+ }
447
+ }
448
+
449
+ /* Code blocks */
450
+ pre[class*="language-"] {
451
+ padding: 1em;
452
+ margin: .5em 0;
453
+ overflow: auto;
454
+ }
455
+
456
+ :not(pre)>code[class*="language-"],
457
+ pre[class*="language-"] {
458
+ background: #f5f2f0;
459
+ }
460
+
461
+ /* Inline code */
462
+ :not(pre)>code[class*="language-"] {
463
+ padding: .1em;
464
+ border-radius: .3em;
465
+ white-space: normal;
466
+ }
467
+
468
+ .token.comment,
469
+ .token.prolog,
470
+ .token.doctype,
471
+ .token.cdata {
472
+ color: slategray;
473
+ }
474
+
475
+ .token.punctuation {
476
+ color: #999;
477
+ }
478
+
479
+ .namespace {
480
+ opacity: .7;
481
+ }
482
+
483
+ .token.property,
484
+ .token.tag,
485
+ .token.boolean,
486
+ .token.number,
487
+ .token.constant,
488
+ .token.symbol,
489
+ .token.deleted {
490
+ color: #905;
491
+ }
492
+
493
+ .token.selector,
494
+ .token.attr-name,
495
+ .token.string,
496
+ .token.char,
497
+ .token.builtin,
498
+ .token.inserted {
499
+ color: #690;
500
+ }
501
+
502
+ .token.operator,
503
+ .token.entity,
504
+ .token.url,
505
+ .language-css .token.string,
506
+ .style .token.string {
507
+ color: #9a6e3a;
508
+ background: hsla(0, 0%, 100%, .5);
509
+ }
510
+
511
+ .token.atrule,
512
+ .token.attr-value,
513
+ .token.keyword {
514
+ color: #07a;
515
+ }
516
+
517
+ .token.function,
518
+ .token.class-name {
519
+ color: #DD4A68;
520
+ }
521
+
522
+ .token.regex,
523
+ .token.important,
524
+ .token.variable {
525
+ color: #e90;
526
+ }
527
+
528
+ .token.important,
529
+ .token.bold {
530
+ font-weight: bold;
531
+ }
532
+
533
+ .token.italic {
534
+ font-style: italic;
535
+ }
536
+
537
+ .token.entity {
538
+ cursor: help;
539
+ }