├── README.md
├── docs
└── typescript
│ └── typescript基础.md
├── index.html
├── params.json
└── stylesheets
├── github-light.css
├── normalize.css
└── stylesheet.css
/README.md:
--------------------------------------------------------------------------------
1 | # web-awesome
2 |
3 | > 好玩的前端小玩意
4 |
5 | > 通过个人主页的二级域名访问 http://fengmiaosen.github.io/web-awesome/
6 |
7 |
8 | # Github rank
9 | * [查看](https://github-ranking.com/)
10 | * [node_modules推荐](https://github.com/node-modules)
11 |
12 | # Github trending排行榜
13 |
14 | * [JavaScript](https://github.com/trending/javascript?since=daily)
15 | * [HTML](https://github.com/trending/html?since=daily)
16 | * [CSS](https://github.com/trending/css?since=daily)
17 |
18 | # 前端面试参考题库
19 |
20 | * https://q.shanyue.tech/fe/
21 | * https://www.cxymsg.com/guide/
22 | * https://muyiy.cn/question/
23 |
24 | # js功能框架
25 |
26 | * [小型js模块加载器 loadjs](https://github.com/muicss/loadjs)
27 | * [模块化的日期函数库 date-fns](https://github.com/date-fns/date-fns?utm_source=nodeweekly&utm_medium=email)
28 | * 基于Promise实现的状态机 [fsm-as-promised](https://github.com/vstirbu/fsm-as-promised?utm_source=javascriptweekly&utm_medium=email)
29 | * 腾讯推出的H5页面首屏秒开框架 [VasSonic](https://github.com/Tencent/VasSonic)
30 |
31 | # 前端技术汇总
32 |
33 | * [awesome](https://www.awesomes.cn/rank?sort=trend)
34 |
35 | * [前端学习资料大全](https://github.com/nicejade/Front-end-tutorial)
36 |
37 | # 页面效果
38 |
39 | * codepen优秀代码demo集合 [code](http://codepen.io/collection/nMgKxJ/)
40 |
41 | * 页面加载库 [PACE](http://github.hubspot.com/pace/docs/welcome/) 多种页面加载效果可供选择
42 |
43 | * 基于Canvas的加载动画 [spring-loaders](http://tympanus.net/codrops/2016/03/08/spring-loaders-rebound-canvas/)
44 |
45 | * CSS3D反转特效 [adobe](http://adobe.v404.cn/adobe/)
46 |
47 | * 交互式多层饼图 [cake-chart](https://github.com/alexkuz/cake-chart)
48 |
49 | * 可视化图 [caravel](https://github.com/airbnb/caravel)
50 |
51 | * CSS3 关键帧动画库[bounce](https://travelitem.taobao.com/item.htm?id=35722626709&spm=a1z09.2.0.0.fepqS3&_u=t8fi6pea266)
52 |
53 | * 小型JavaScript动画库 [snabbt](http://daniel-lundin.github.io/snabbt.js)
54 |
55 | * javascript动画库 [anim](https://github.com/juliangarnier/anime)
56 |
57 | * 侧栏划出效果 [Snap](https://github.com/jakiestfu/Snap.js/)
58 |
59 | * JavaScript动画库 [velocity](https://github.com/julianshapiro/velocity)
60 |
61 | * 提交按钮动画集合库 [ladda](http://lab.hakim.se/ladda/)
62 |
63 | * JavaScript动画库(含svg)[dynamicsjs](http://dynamicsjs.com/)
64 |
65 | * Input格式控制基础库 [cleave.js](https://github.com/nosir/cleave.js/)
66 |
67 | * JavaScript粒子特效基础库 [particles.js](https://github.com/VincentGarreau/particles.js/)
68 |
69 | * 纯CSS实现各种按钮效果 [bttn.surge](https://bttn.surge.sh/)
70 |
71 | # 前端UI框架
72 |
73 | * [VUE优秀UI组件库合集](https://shimo.im/doc/LkpdnWxM1j40BDJj/)
74 |
75 | * 基于Vue和WeUI的微信风格组件库 [vux](https://github.com/airyland/vux)
76 |
77 | * 基于Vue的饿了么团队开发的移动端组件库 [Mint UI](https://github.com/ElemeFE/mint-ui)
78 |
79 | * 基于Vue的饿了么团队开发的PC端组件库[element](http://element.eleme.io/#/zh-CN)
80 |
81 | * 微信官方UI库 [WeUI](https://github.com/weui/weui)
82 |
83 | * 纯CSS UI界面集合 [Collection best of Web Demos](https://github.com/airen/DemoHouse)
84 |
85 | * 轻量级视差滚动基础库[rellax](https://github.com/dixonandmoe/rellax?utm_source=CSS-Weekly&utm_campaign=Issue-247&utm_medium=email)
86 |
87 | * A lightweight collection of essential UI components written with Vue and inspired by Material Design [Keen-UI](https://github.com/JosephusPaye/Keen-UI)
88 |
89 | * 微软出品的UI设计组件 [React-UWP](https://www.react-uwp.com/)
90 |
91 | * 替代原生js的alert的组件 [sweetAlert](https://github.com/t4t5/sweetalert)
92 |
93 | # 地图组件
94 |
95 | * 基于Vue的百度地图组件封装 [vue-baidu-map](https://github.com/Dafrok/vue-baidu-map)
96 |
97 | * 基于Vue的高德地图组件[vue-amap](https://github.com/ElemeFE/vue-amap)
98 |
99 | * 基于react的高德地图组件 [react-amap](https://github.com/ElemeFE/react-amap)
100 |
101 | # CSS框架
102 |
103 | * 前端向 10+ 值得前端开发者关注的优秀 CSS 框架 [css框架](http://gold.xitu.io/entry/577a7c8c165abd0054c2e2f6)
104 |
105 | * 小型SCSS基础库 [sierra-library](http://sierra-library.github.io/)
106 |
107 | * 基于Flex布局的CSS框架库 [bulma](http://bulma.io/)
108 |
109 | * Pure.css [pure.css](http://purecss.io/)
110 |
111 | # 页面浮层
112 |
113 | * 浮层效果 [Modaal](https://github.com/humaan/Modaal)
114 |
115 | # 前端工具
116 |
117 | * 在线PPT制作 [spectacle](http://formidable.com/open-source/spectacle/)
118 |
119 | * 基于React基础库使用JSX语法来编写在线演示PPT,并能导出为PDF文档
120 |
121 | * 在线内容编辑 [substance](https://github.com/substance/substance)
122 |
123 | * 富语义文本编辑 [prosemirror](https://github.com/prosemirror/prosemirror)
124 |
125 | * HTML预编译库 [typeset](https://github.com/davidmerfield/typeset)
126 |
127 | * 在线解析处理PDF文件 [pdf.js](https://github.com/mozilla/pdf.js)
128 |
129 | * 算法可视化学习 [AlgorithmVisualizer](https://github.com/parkjs814/AlgorithmVisualizer)
130 |
131 | * 前端SASS组件文档生成管理 [atomic](https://github.com/nickberens360/atomic-docs)
132 |
133 | # 日期处理
134 |
135 | * 日期时间处理 [momentjs](http://momentjs.com/)
136 | * [moment-range](https://github.com/rotaready/moment-range)
137 | * 现代模块化日期处理库[date-fns](https://date-fns.org/)
138 |
139 | # 代码编辑器框架
140 |
141 | * [monaco-editor](https://github.com/Microsoft/monaco-editor)
142 | * [react-monaco-editor](https://github.com/superRaytin/react-monaco-editor)
143 |
144 |
145 | # 文档管理
146 |
147 | * 网站文档生成框架 [docsify](https://docsify.js.org/#/zh-cn/quickstart)
148 |
149 | * 快速搭建文档 [docute](https://docute.js.org/#/home?id=introduction)
150 |
151 | * API描述语言 [api-blueprint](https://github.com/apiaryio/api-blueprint/)
152 |
153 | # 版本管理
154 |
155 | * git的纯js实现 [gitkit.js](https://github.com/SamyPesse/gitkit-js?utm_source=nodeweekly&utm_medium=email)
156 |
157 | * 使用node来操作git [nodegit](https://github.com/nodegit/nodegit)
158 |
159 | # 前端绘图
160 |
161 | * 像素图形绘制 [anypixel](https://github.com/googlecreativelab/anypixel)
162 |
163 | * SVG 进度条 [progressbar](https://kimmobrunfeldt.github.io/progressbar.js/)
164 |
165 | * 刮刮卡刮奖效果 [wScratchPad](https://github.com/websanova/wScratchPad)
166 |
167 | * HTML生成canvas导出图片 [rasterizeHTML](https://github.com/cburgmer/rasterizeHTML.js)
168 |
169 | # 物理引擎
170 |
171 | * box2d [box2d](http://box2d.org/documentation/)
172 |
173 | * 2D JavaScript物理引擎 [planck](https://github.com/shakiba/planck.js)
174 |
175 | * 2D 物理引擎 [Matter.js](http://brm.io/matter-js/)
176 |
177 | # 前端开发调试
178 |
179 | * Web开发调试工具 [AlloyLever](https://github.com/AlloyTeam/AlloyLever)
180 |
181 | * JavaScript运行性能监测 [stats.js](https://github.com/mrdoob/stats.js)
182 |
183 | * webapp debug工具 [eruda](https://github.com/liriliri/eruda)
184 |
185 | * 移动设备外框 [devices.css](https://github.com/marvelapp/devices.css)
186 |
187 | # 娱乐工具
188 | * 键盘播放Are you ok歌曲 [are-you-ok](https://github.com/llh911001/are-you-ok)
189 |
190 | # 页面布局
191 | * [golden-layout](https://golden-layout.com/)
192 |
193 | # 虚拟现实(VR)
194 |
195 | * [A-Frame](https://aframe.io/)
196 |
197 | # 开源地图
198 | * [leafletjs](http://leafletjs.com/index.html)
199 | * 坐标转换js [gcoord](https://github.com/hujiulong/gcoord)
200 | * 坐标转换js [coordtransform](https://github.com/wandergis/coordtransform)
201 |
202 | # 网页字体
203 | * [字蛛](http://font-spider.org/)
204 |
205 | # 桌面APP开发
206 | * 基于JavaScript的桌面app开发 [electron](http://electron.atom.io/)
207 |
208 | # 手机传感器
209 | * Apple Force Touch支持 [pressure] (https://github.com/yamartino/pressure)
210 |
211 | # NodeJS web框架
212 |
213 | * 基于NodeJs的REST API开发框架 [node-restify](https://github.com/restify/node-restify)
214 | * 基于Vue的服务端渲染应用框架 [nuxt.js](https://github.com/nuxt/nuxt.js)
215 | * 基于react的服务端渲染应用框架 [next.js](https://github.com/zeit/next.js)
216 | * 基于ssh2的纯js实现scp [node-scp](https://github.com/spmjs/node-scp2)
217 | * electron开发完整框架 [electron-forge](https://github.com/electron-userland/electron-forge?utm_source=nodeweekly&utm_medium=email)
218 |
219 |
--------------------------------------------------------------------------------
/docs/typescript/typescript基础.md:
--------------------------------------------------------------------------------
1 | ## 目录
2 |
3 | 1. 泛型的作用
4 |
5 | [泛型](https://www.tslang.cn/docs/handbook/generics.html)
6 |
7 | 2. unknown 类型
8 |
9 | > unknown 类型不能赋值给除了 unknown 或 any 的其他任何类型,使用前必需显式进行指定类型,或是在有条件判断情况下能够隐式地进行类型推断的情况
10 |
11 | unknown 和 any 的主要区别
12 |
13 | * 新的 unknown 类型,它是 any 类型对应的安全类型。
14 |
15 | * unknown 类型会更加严格:在对 unknown 类型的值执行大多数操作之前,我们必须进行某种形式的检查。
16 |
17 | * 在对 any 类型的值执行操作之前,我们不必进行任何检查
18 |
19 | 3. interface 和 type 到底有什么区别
20 |
21 | [参考文档](https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-aliases)
22 |
23 | - 相同点
24 |
25 | - 都可以描述一个对象或者函数
26 | - 都允许拓展(interface extends)但语法不同,type 是通过联合来实现扩展
27 | - type 类型别名能被 extends 和 implements
28 |
29 | ```ts
30 | // extends
31 | type Parent = { x: number }
32 | interface Child extends Parent {
33 | y: number
34 | }
35 |
36 | // implements
37 | type Point2 = {
38 | x: number
39 | y: number
40 | }
41 | class SomePoint2 implements Point2 {
42 | x = 1
43 | }
44 | ```
45 |
46 | - 不同点
47 | - type 可以声明基本类型别名,联合类型,元组等类型,interface 不可以
48 | - type 还可以使用 typeof 获取实例的 类型进行赋值
49 | - interface 能够声明合并,type 不可以
50 | - type 类型别名不能被 extends 和 implements
51 |
52 | 4. 高级类型
53 |
54 | https://www.tslang.cn/docs/handbook/advanced-types.html
55 |
56 | 5. TypeScript 的高级类型
57 | https://juejin.im/post/5eb6d9cde51d454de777297d?utm_source=gold_browser_extension
58 |
59 | ## 参考资料
60 |
61 | * [如何编写一个 d.ts 文件](https://segmentfault.com/a/1190000009247663)
62 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
23 | web-awesome
24 |
25 |
26 | 好玩的前端小玩意
27 |
28 | 通过个人主页的二级域名访问 http://fengmiaosen.github.io/web-awesome/
29 |
30 |
31 |
32 | Github rank
33 |
34 |
37 |
38 |
39 | 前端技术汇总
40 |
41 |
45 |
46 |
47 | 页面效果
48 |
49 |
66 |
67 |
68 | 前端UI框架
69 |
70 |
75 |
76 |
77 | CSS框架
78 |
79 |
85 |
86 |
87 | 页面浮层
88 |
89 |
93 |
94 |
95 | 前端工具
96 |
97 |
113 |
114 |
115 | 版本管理
116 |
117 |
121 |
122 |
123 | 前端绘图
124 |
125 |
130 |
131 |
132 | 前端开发调试
133 |
134 |
147 |
148 |
149 | 页面布局
150 |
151 | # golden-layout
152 |
153 |
154 | 虚拟现实(VR)
155 |
156 | # A-Frame
157 |
158 |
159 | 开源地图
160 |
161 | # leafletjs
162 |
163 |
164 | 网页字体
165 |
166 | # 字蛛
167 |
168 |
169 | 桌面APP开发
170 |
171 | # 基于JavaScript的桌面app开发 electron
172 |
173 |
174 | 手机传感器
175 |
176 | # Apple Force Touch支持 pressure
177 |
178 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
--------------------------------------------------------------------------------
/params.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Web-awesome",
3 | "tagline": "好玩的前端小玩意",
4 | "body": "# web-awesome\r\n\r\n> 好玩的前端小玩意\r\n\r\n> 通过个人主页的二级域名访问 http://fengmiaosen.github.io/web-awesome/\r\n\r\n\r\n# Github rank \r\n * [查看](https://github-ranking.com/)\r\n\r\n# 前端技术汇总\r\n\r\n * [awesome](https://www.awesomes.cn/rank?sort=trend)\r\n \r\n * [前端学习资料大全](https://github.com/nicejade/Front-end-tutorial)\r\n\r\n# 页面效果\r\n\r\n* 页面加载库 [PACE](http://github.hubspot.com/pace/docs/welcome/)\r\n * 多种页面加载效果可供选择\r\n\r\n* 基于Canvas的加载动画 [spring-loaders](http://tympanus.net/codrops/2016/03/08/spring-loaders-rebound-canvas/)\r\n\r\n* CSS3D反转特效 [adobe](http://adobe.v404.cn/adobe/)\r\n\r\n* 交互式多层饼图 [cake-chart](https://github.com/alexkuz/cake-chart)\r\n\r\n* 可视化图 [caravel](https://github.com/airbnb/caravel)\r\n\r\n* CSS3 关键帧动画库[bounce](https://travelitem.taobao.com/item.htm?id=35722626709&spm=a1z09.2.0.0.fepqS3&_u=t8fi6pea266)\r\n\r\n* 小型JavaScript动画库 [snabbt](http://daniel-lundin.github.io/snabbt.js)\r\n\r\n* javascript动画库 [anim](https://github.com/juliangarnier/anime)\r\n\r\n* 侧栏划出效果 [Snap](https://github.com/jakiestfu/Snap.js/)\r\n\r\n# 前端UI框架\r\n\r\n* 基于Vue和WeUI的组件库 [vux](https://vuxjs.gitbooks.io/vux/content/)\r\n\r\n* 微信官方UI库 [WeUI](https://github.com/weui/weui)\r\n\r\n* 纯CSS UI界面集合 [Collection best of Web Demos](https://github.com/airen/DemoHouse)\r\n\r\n# CSS框架\r\n\r\n* 前端向 10+ 值得前端开发者关注的优秀 CSS 框架 [css框架](http://gold.xitu.io/entry/577a7c8c165abd0054c2e2f6)\r\n\r\n* 小型SCSS基础库 [sierra-library](http://sierra-library.github.io/)\r\n\r\n* 基于Flex布局的CSS框架库 [bulma](http://bulma.io/)\r\n\r\n* Pure.css [pure.css](http://purecss.io/)\r\n\r\n# 页面浮层\r\n\r\n* 浮层效果 [Modaal](https://github.com/humaan/Modaal)\r\n\r\n# 前端工具\r\n\r\n* 在线PPT制作 [spectacle](http://formidable.com/open-source/spectacle/)\r\n * 基于React基础库使用JSX语法来编写在线演示PPT,并能导出为PDF文档\r\n\r\n* 在线内容编辑 [substance](https://github.com/substance/substance)\r\n\r\n* 富语义文本编辑 [prosemirror](https://github.com/prosemirror/prosemirror)\r\n\r\n* HTML预编译库 [typeset](https://github.com/davidmerfield/typeset)\r\n\r\n* 日期时间处理 [momentjs](http://momentjs.com/)\r\n\r\n* 在线解析处理PDF文件 [pdf.js](https://github.com/mozilla/pdf.js)\r\n\r\n* 算法可视化学习 [AlgorithmVisualizer](https://github.com/parkjs814/AlgorithmVisualizer)\r\n\r\n* 前端SASS组件文档生成管理 [atomic](https://github.com/nickberens360/atomic-docs)\r\n\r\n# 版本管理\r\n\r\n* git的纯js实现 [gitkit.js](https://github.com/SamyPesse/gitkit-js?utm_source=nodeweekly&utm_medium=email)\r\n\r\n# 前端绘图\r\n * 像素图形绘制 [anypixel](https://github.com/googlecreativelab/anypixel)\r\n \r\n * SVG 进度条 [progressbar](https://kimmobrunfeldt.github.io/progressbar.js/)\r\n \r\n * 刮刮卡刮奖效果 [wScratchPad](https://github.com/websanova/wScratchPad)\r\n\r\n# 前端开发调试\r\n\r\n * Web开发调试工具 [AlloyLever](https://github.com/AlloyTeam/AlloyLever)\r\n\r\n * JavaScript运行性能监测 [stats.js](https://github.com/mrdoob/stats.js)\r\n\r\n * webapp debug工具 [eruda](https://github.com/liriliri/eruda)\r\n \r\n * 移动设备外框 [devices.css](https://github.com/marvelapp/devices.css)\r\n# 娱乐工具\r\n * 键盘播放Are you ok歌曲 [are-you-ok](https://github.com/llh911001/are-you-ok)\r\n\r\n# 页面布局\r\n # [golden-layout](https://golden-layout.com/)\r\n \r\n# 虚拟现实(VR)\r\n # [A-Frame](https://aframe.io/)\r\n \r\n# 开源地图\r\n # [leafletjs](http://leafletjs.com/index.html)\r\n\r\n# 网页字体\r\n # [字蛛](http://font-spider.org/)\r\n\r\n# 桌面APP开发\r\n # 基于JavaScript的桌面app开发 [electron](http://electron.atom.io/)\r\n\r\n# 手机传感器\r\n # Apple Force Touch支持 [pressure] (https://github.com/yamartino/pressure)\r\n \r\n",
5 | "note": "Don't delete this file! It's used internally to help with page regeneration."
6 | }
--------------------------------------------------------------------------------
/stylesheets/github-light.css:
--------------------------------------------------------------------------------
1 | /*
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2016 GitHub, Inc.
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
24 | */
25 |
26 | .pl-c /* comment */ {
27 | color: #969896;
28 | }
29 |
30 | .pl-c1 /* constant, variable.other.constant, support, meta.property-name, support.constant, support.variable, meta.module-reference, markup.raw, meta.diff.header */,
31 | .pl-s .pl-v /* string variable */ {
32 | color: #0086b3;
33 | }
34 |
35 | .pl-e /* entity */,
36 | .pl-en /* entity.name */ {
37 | color: #795da3;
38 | }
39 |
40 | .pl-smi /* variable.parameter.function, storage.modifier.package, storage.modifier.import, storage.type.java, variable.other */,
41 | .pl-s .pl-s1 /* string source */ {
42 | color: #333;
43 | }
44 |
45 | .pl-ent /* entity.name.tag */ {
46 | color: #63a35c;
47 | }
48 |
49 | .pl-k /* keyword, storage, storage.type */ {
50 | color: #a71d5d;
51 | }
52 |
53 | .pl-s /* string */,
54 | .pl-pds /* punctuation.definition.string, string.regexp.character-class */,
55 | .pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,
56 | .pl-sr /* string.regexp */,
57 | .pl-sr .pl-cce /* string.regexp constant.character.escape */,
58 | .pl-sr .pl-sre /* string.regexp source.ruby.embedded */,
59 | .pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */ {
60 | color: #183691;
61 | }
62 |
63 | .pl-v /* variable */ {
64 | color: #ed6a43;
65 | }
66 |
67 | .pl-id /* invalid.deprecated */ {
68 | color: #b52a1d;
69 | }
70 |
71 | .pl-ii /* invalid.illegal */ {
72 | color: #f8f8f8;
73 | background-color: #b52a1d;
74 | }
75 |
76 | .pl-sr .pl-cce /* string.regexp constant.character.escape */ {
77 | font-weight: bold;
78 | color: #63a35c;
79 | }
80 |
81 | .pl-ml /* markup.list */ {
82 | color: #693a17;
83 | }
84 |
85 | .pl-mh /* markup.heading */,
86 | .pl-mh .pl-en /* markup.heading entity.name */,
87 | .pl-ms /* meta.separator */ {
88 | font-weight: bold;
89 | color: #1d3e81;
90 | }
91 |
92 | .pl-mq /* markup.quote */ {
93 | color: #008080;
94 | }
95 |
96 | .pl-mi /* markup.italic */ {
97 | font-style: italic;
98 | color: #333;
99 | }
100 |
101 | .pl-mb /* markup.bold */ {
102 | font-weight: bold;
103 | color: #333;
104 | }
105 |
106 | .pl-md /* markup.deleted, meta.diff.header.from-file */ {
107 | color: #bd2c00;
108 | background-color: #ffecec;
109 | }
110 |
111 | .pl-mi1 /* markup.inserted, meta.diff.header.to-file */ {
112 | color: #55a532;
113 | background-color: #eaffea;
114 | }
115 |
116 | .pl-mdr /* meta.diff.range */ {
117 | font-weight: bold;
118 | color: #795da3;
119 | }
120 |
121 | .pl-mo /* meta.output */ {
122 | color: #1d3e81;
123 | }
124 |
125 |
--------------------------------------------------------------------------------
/stylesheets/normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */
2 |
3 | /**
4 | * 1. Set default font family to sans-serif.
5 | * 2. Prevent iOS text size adjust after orientation change, without disabling
6 | * user zoom.
7 | */
8 |
9 | html {
10 | font-family: sans-serif; /* 1 */
11 | -ms-text-size-adjust: 100%; /* 2 */
12 | -webkit-text-size-adjust: 100%; /* 2 */
13 | }
14 |
15 | /**
16 | * Remove default margin.
17 | */
18 |
19 | body {
20 | margin: 0;
21 | }
22 |
23 | /* HTML5 display definitions
24 | ========================================================================== */
25 |
26 | /**
27 | * Correct `block` display not defined for any HTML5 element in IE 8/9.
28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11
29 | * and Firefox.
30 | * Correct `block` display not defined for `main` in IE 11.
31 | */
32 |
33 | article,
34 | aside,
35 | details,
36 | figcaption,
37 | figure,
38 | footer,
39 | header,
40 | hgroup,
41 | main,
42 | menu,
43 | nav,
44 | section,
45 | summary {
46 | display: block;
47 | }
48 |
49 | /**
50 | * 1. Correct `inline-block` display not defined in IE 8/9.
51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
52 | */
53 |
54 | audio,
55 | canvas,
56 | progress,
57 | video {
58 | display: inline-block; /* 1 */
59 | vertical-align: baseline; /* 2 */
60 | }
61 |
62 | /**
63 | * Prevent modern browsers from displaying `audio` without controls.
64 | * Remove excess height in iOS 5 devices.
65 | */
66 |
67 | audio:not([controls]) {
68 | display: none;
69 | height: 0;
70 | }
71 |
72 | /**
73 | * Address `[hidden]` styling not present in IE 8/9/10.
74 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
75 | */
76 |
77 | [hidden],
78 | template {
79 | display: none;
80 | }
81 |
82 | /* Links
83 | ========================================================================== */
84 |
85 | /**
86 | * Remove the gray background color from active links in IE 10.
87 | */
88 |
89 | a {
90 | background-color: transparent;
91 | }
92 |
93 | /**
94 | * Improve readability when focused and also mouse hovered in all browsers.
95 | */
96 |
97 | a:active,
98 | a:hover {
99 | outline: 0;
100 | }
101 |
102 | /* Text-level semantics
103 | ========================================================================== */
104 |
105 | /**
106 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
107 | */
108 |
109 | abbr[title] {
110 | border-bottom: 1px dotted;
111 | }
112 |
113 | /**
114 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
115 | */
116 |
117 | b,
118 | strong {
119 | font-weight: bold;
120 | }
121 |
122 | /**
123 | * Address styling not present in Safari and Chrome.
124 | */
125 |
126 | dfn {
127 | font-style: italic;
128 | }
129 |
130 | /**
131 | * Address variable `h1` font-size and margin within `section` and `article`
132 | * contexts in Firefox 4+, Safari, and Chrome.
133 | */
134 |
135 | h1 {
136 | font-size: 2em;
137 | margin: 0.67em 0;
138 | }
139 |
140 | /**
141 | * Address styling not present in IE 8/9.
142 | */
143 |
144 | mark {
145 | background: #ff0;
146 | color: #000;
147 | }
148 |
149 | /**
150 | * Address inconsistent and variable font size in all browsers.
151 | */
152 |
153 | small {
154 | font-size: 80%;
155 | }
156 |
157 | /**
158 | * Prevent `sub` and `sup` affecting `line-height` in all browsers.
159 | */
160 |
161 | sub,
162 | sup {
163 | font-size: 75%;
164 | line-height: 0;
165 | position: relative;
166 | vertical-align: baseline;
167 | }
168 |
169 | sup {
170 | top: -0.5em;
171 | }
172 |
173 | sub {
174 | bottom: -0.25em;
175 | }
176 |
177 | /* Embedded content
178 | ========================================================================== */
179 |
180 | /**
181 | * Remove border when inside `a` element in IE 8/9/10.
182 | */
183 |
184 | img {
185 | border: 0;
186 | }
187 |
188 | /**
189 | * Correct overflow not hidden in IE 9/10/11.
190 | */
191 |
192 | svg:not(:root) {
193 | overflow: hidden;
194 | }
195 |
196 | /* Grouping content
197 | ========================================================================== */
198 |
199 | /**
200 | * Address margin not present in IE 8/9 and Safari.
201 | */
202 |
203 | figure {
204 | margin: 1em 40px;
205 | }
206 |
207 | /**
208 | * Address differences between Firefox and other browsers.
209 | */
210 |
211 | hr {
212 | box-sizing: content-box;
213 | height: 0;
214 | }
215 |
216 | /**
217 | * Contain overflow in all browsers.
218 | */
219 |
220 | pre {
221 | overflow: auto;
222 | }
223 |
224 | /**
225 | * Address odd `em`-unit font size rendering in all browsers.
226 | */
227 |
228 | code,
229 | kbd,
230 | pre,
231 | samp {
232 | font-family: monospace, monospace;
233 | font-size: 1em;
234 | }
235 |
236 | /* Forms
237 | ========================================================================== */
238 |
239 | /**
240 | * Known limitation: by default, Chrome and Safari on OS X allow very limited
241 | * styling of `select`, unless a `border` property is set.
242 | */
243 |
244 | /**
245 | * 1. Correct color not being inherited.
246 | * Known issue: affects color of disabled elements.
247 | * 2. Correct font properties not being inherited.
248 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
249 | */
250 |
251 | button,
252 | input,
253 | optgroup,
254 | select,
255 | textarea {
256 | color: inherit; /* 1 */
257 | font: inherit; /* 2 */
258 | margin: 0; /* 3 */
259 | }
260 |
261 | /**
262 | * Address `overflow` set to `hidden` in IE 8/9/10/11.
263 | */
264 |
265 | button {
266 | overflow: visible;
267 | }
268 |
269 | /**
270 | * Address inconsistent `text-transform` inheritance for `button` and `select`.
271 | * All other form control elements do not inherit `text-transform` values.
272 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
273 | * Correct `select` style inheritance in Firefox.
274 | */
275 |
276 | button,
277 | select {
278 | text-transform: none;
279 | }
280 |
281 | /**
282 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
283 | * and `video` controls.
284 | * 2. Correct inability to style clickable `input` types in iOS.
285 | * 3. Improve usability and consistency of cursor style between image-type
286 | * `input` and others.
287 | */
288 |
289 | button,
290 | html input[type="button"], /* 1 */
291 | input[type="reset"],
292 | input[type="submit"] {
293 | -webkit-appearance: button; /* 2 */
294 | cursor: pointer; /* 3 */
295 | }
296 |
297 | /**
298 | * Re-set default cursor for disabled elements.
299 | */
300 |
301 | button[disabled],
302 | html input[disabled] {
303 | cursor: default;
304 | }
305 |
306 | /**
307 | * Remove inner padding and border in Firefox 4+.
308 | */
309 |
310 | button::-moz-focus-inner,
311 | input::-moz-focus-inner {
312 | border: 0;
313 | padding: 0;
314 | }
315 |
316 | /**
317 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in
318 | * the UA stylesheet.
319 | */
320 |
321 | input {
322 | line-height: normal;
323 | }
324 |
325 | /**
326 | * It's recommended that you don't attempt to style these elements.
327 | * Firefox's implementation doesn't respect box-sizing, padding, or width.
328 | *
329 | * 1. Address box sizing set to `content-box` in IE 8/9/10.
330 | * 2. Remove excess padding in IE 8/9/10.
331 | */
332 |
333 | input[type="checkbox"],
334 | input[type="radio"] {
335 | box-sizing: border-box; /* 1 */
336 | padding: 0; /* 2 */
337 | }
338 |
339 | /**
340 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain
341 | * `font-size` values of the `input`, it causes the cursor style of the
342 | * decrement button to change from `default` to `text`.
343 | */
344 |
345 | input[type="number"]::-webkit-inner-spin-button,
346 | input[type="number"]::-webkit-outer-spin-button {
347 | height: auto;
348 | }
349 |
350 | /**
351 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
352 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
353 | * (include `-moz` to future-proof).
354 | */
355 |
356 | input[type="search"] {
357 | -webkit-appearance: textfield; /* 1 */ /* 2 */
358 | box-sizing: content-box;
359 | }
360 |
361 | /**
362 | * Remove inner padding and search cancel button in Safari and Chrome on OS X.
363 | * Safari (but not Chrome) clips the cancel button when the search input has
364 | * padding (and `textfield` appearance).
365 | */
366 |
367 | input[type="search"]::-webkit-search-cancel-button,
368 | input[type="search"]::-webkit-search-decoration {
369 | -webkit-appearance: none;
370 | }
371 |
372 | /**
373 | * Define consistent border, margin, and padding.
374 | */
375 |
376 | fieldset {
377 | border: 1px solid #c0c0c0;
378 | margin: 0 2px;
379 | padding: 0.35em 0.625em 0.75em;
380 | }
381 |
382 | /**
383 | * 1. Correct `color` not being inherited in IE 8/9/10/11.
384 | * 2. Remove padding so people aren't caught out if they zero out fieldsets.
385 | */
386 |
387 | legend {
388 | border: 0; /* 1 */
389 | padding: 0; /* 2 */
390 | }
391 |
392 | /**
393 | * Remove default vertical scrollbar in IE 8/9/10/11.
394 | */
395 |
396 | textarea {
397 | overflow: auto;
398 | }
399 |
400 | /**
401 | * Don't inherit the `font-weight` (applied by a rule above).
402 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
403 | */
404 |
405 | optgroup {
406 | font-weight: bold;
407 | }
408 |
409 | /* Tables
410 | ========================================================================== */
411 |
412 | /**
413 | * Remove most spacing between table cells.
414 | */
415 |
416 | table {
417 | border-collapse: collapse;
418 | border-spacing: 0;
419 | }
420 |
421 | td,
422 | th {
423 | padding: 0;
424 | }
425 |
--------------------------------------------------------------------------------
/stylesheets/stylesheet.css:
--------------------------------------------------------------------------------
1 | * {
2 | box-sizing: border-box; }
3 |
4 | body {
5 | padding: 0;
6 | margin: 0;
7 | font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
8 | font-size: 16px;
9 | line-height: 1.5;
10 | color: #606c71; }
11 |
12 | a {
13 | color: #1e6bb8;
14 | text-decoration: none; }
15 | a:hover {
16 | text-decoration: underline; }
17 |
18 | .btn {
19 | display: inline-block;
20 | margin-bottom: 1rem;
21 | color: rgba(255, 255, 255, 0.7);
22 | background-color: rgba(255, 255, 255, 0.08);
23 | border-color: rgba(255, 255, 255, 0.2);
24 | border-style: solid;
25 | border-width: 1px;
26 | border-radius: 0.3rem;
27 | transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
28 | .btn + .btn {
29 | margin-left: 1rem; }
30 |
31 | .btn:hover {
32 | color: rgba(255, 255, 255, 0.8);
33 | text-decoration: none;
34 | background-color: rgba(255, 255, 255, 0.2);
35 | border-color: rgba(255, 255, 255, 0.3); }
36 |
37 | @media screen and (min-width: 64em) {
38 | .btn {
39 | padding: 0.75rem 1rem; } }
40 |
41 | @media screen and (min-width: 42em) and (max-width: 64em) {
42 | .btn {
43 | padding: 0.6rem 0.9rem;
44 | font-size: 0.9rem; } }
45 |
46 | @media screen and (max-width: 42em) {
47 | .btn {
48 | display: block;
49 | width: 100%;
50 | padding: 0.75rem;
51 | font-size: 0.9rem; }
52 | .btn + .btn {
53 | margin-top: 1rem;
54 | margin-left: 0; } }
55 |
56 | .page-header {
57 | color: #fff;
58 | text-align: center;
59 | background-color: #159957;
60 | background-image: linear-gradient(120deg, #155799, #159957); }
61 |
62 | @media screen and (min-width: 64em) {
63 | .page-header {
64 | padding: 5rem 6rem; } }
65 |
66 | @media screen and (min-width: 42em) and (max-width: 64em) {
67 | .page-header {
68 | padding: 3rem 4rem; } }
69 |
70 | @media screen and (max-width: 42em) {
71 | .page-header {
72 | padding: 2rem 1rem; } }
73 |
74 | .project-name {
75 | margin-top: 0;
76 | margin-bottom: 0.1rem; }
77 |
78 | @media screen and (min-width: 64em) {
79 | .project-name {
80 | font-size: 3.25rem; } }
81 |
82 | @media screen and (min-width: 42em) and (max-width: 64em) {
83 | .project-name {
84 | font-size: 2.25rem; } }
85 |
86 | @media screen and (max-width: 42em) {
87 | .project-name {
88 | font-size: 1.75rem; } }
89 |
90 | .project-tagline {
91 | margin-bottom: 2rem;
92 | font-weight: normal;
93 | opacity: 0.7; }
94 |
95 | @media screen and (min-width: 64em) {
96 | .project-tagline {
97 | font-size: 1.25rem; } }
98 |
99 | @media screen and (min-width: 42em) and (max-width: 64em) {
100 | .project-tagline {
101 | font-size: 1.15rem; } }
102 |
103 | @media screen and (max-width: 42em) {
104 | .project-tagline {
105 | font-size: 1rem; } }
106 |
107 | .main-content :first-child {
108 | margin-top: 0; }
109 | .main-content img {
110 | max-width: 100%; }
111 | .main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 {
112 | margin-top: 2rem;
113 | margin-bottom: 1rem;
114 | font-weight: normal;
115 | color: #159957; }
116 | .main-content p {
117 | margin-bottom: 1em; }
118 | .main-content code {
119 | padding: 2px 4px;
120 | font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
121 | font-size: 0.9rem;
122 | color: #383e41;
123 | background-color: #f3f6fa;
124 | border-radius: 0.3rem; }
125 | .main-content pre {
126 | padding: 0.8rem;
127 | margin-top: 0;
128 | margin-bottom: 1rem;
129 | font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace;
130 | color: #567482;
131 | word-wrap: normal;
132 | background-color: #f3f6fa;
133 | border: solid 1px #dce6f0;
134 | border-radius: 0.3rem; }
135 | .main-content pre > code {
136 | padding: 0;
137 | margin: 0;
138 | font-size: 0.9rem;
139 | color: #567482;
140 | word-break: normal;
141 | white-space: pre;
142 | background: transparent;
143 | border: 0; }
144 | .main-content .highlight {
145 | margin-bottom: 1rem; }
146 | .main-content .highlight pre {
147 | margin-bottom: 0;
148 | word-break: normal; }
149 | .main-content .highlight pre, .main-content pre {
150 | padding: 0.8rem;
151 | overflow: auto;
152 | font-size: 0.9rem;
153 | line-height: 1.45;
154 | border-radius: 0.3rem; }
155 | .main-content pre code, .main-content pre tt {
156 | display: inline;
157 | max-width: initial;
158 | padding: 0;
159 | margin: 0;
160 | overflow: initial;
161 | line-height: inherit;
162 | word-wrap: normal;
163 | background-color: transparent;
164 | border: 0; }
165 | .main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after {
166 | content: normal; }
167 | .main-content ul, .main-content ol {
168 | margin-top: 0; }
169 | .main-content blockquote {
170 | padding: 0 1rem;
171 | margin-left: 0;
172 | color: #819198;
173 | border-left: 0.3rem solid #dce6f0; }
174 | .main-content blockquote > :first-child {
175 | margin-top: 0; }
176 | .main-content blockquote > :last-child {
177 | margin-bottom: 0; }
178 | .main-content table {
179 | display: block;
180 | width: 100%;
181 | overflow: auto;
182 | word-break: normal;
183 | word-break: keep-all; }
184 | .main-content table th {
185 | font-weight: bold; }
186 | .main-content table th, .main-content table td {
187 | padding: 0.5rem 1rem;
188 | border: 1px solid #e9ebec; }
189 | .main-content dl {
190 | padding: 0; }
191 | .main-content dl dt {
192 | padding: 0;
193 | margin-top: 1rem;
194 | font-size: 1rem;
195 | font-weight: bold; }
196 | .main-content dl dd {
197 | padding: 0;
198 | margin-bottom: 1rem; }
199 | .main-content hr {
200 | height: 2px;
201 | padding: 0;
202 | margin: 1rem 0;
203 | background-color: #eff0f1;
204 | border: 0; }
205 |
206 | @media screen and (min-width: 64em) {
207 | .main-content {
208 | max-width: 64rem;
209 | padding: 2rem 6rem;
210 | margin: 0 auto;
211 | font-size: 1.1rem; } }
212 |
213 | @media screen and (min-width: 42em) and (max-width: 64em) {
214 | .main-content {
215 | padding: 2rem 4rem;
216 | font-size: 1.1rem; } }
217 |
218 | @media screen and (max-width: 42em) {
219 | .main-content {
220 | padding: 2rem 1rem;
221 | font-size: 1rem; } }
222 |
223 | .site-footer {
224 | padding-top: 2rem;
225 | margin-top: 2rem;
226 | border-top: solid 1px #eff0f1; }
227 |
228 | .site-footer-owner {
229 | display: block;
230 | font-weight: bold; }
231 |
232 | .site-footer-credits {
233 | color: #819198; }
234 |
235 | @media screen and (min-width: 64em) {
236 | .site-footer {
237 | font-size: 1rem; } }
238 |
239 | @media screen and (min-width: 42em) and (max-width: 64em) {
240 | .site-footer {
241 | font-size: 1rem; } }
242 |
243 | @media screen and (max-width: 42em) {
244 | .site-footer {
245 | font-size: 0.9rem; } }
246 |
--------------------------------------------------------------------------------