diff --git a/.github/STYLE_GUIDE.zh-CN.md b/.github/STYLE_GUIDE.zh-CN.md
new file mode 100644
index 000000000..435e0d029
--- /dev/null
+++ b/.github/STYLE_GUIDE.zh-CN.md
@@ -0,0 +1,222 @@
+# 组件风格指南
+
+## 组件数据
+
+组件的 data 必须是一个函数。
+
+```js
+// bad
+export default {
+ data: {
+ foo: 'bar'
+ }
+}
+
+// good
+export default {
+ data () {
+ return {
+ foo: 'bar'
+ }
+ }
+}
+```
+
+## 单文件组件文件名称
+
+单文件组件的文件名应该要么始终是单词大写开头 (PascalCase),要么始终是横线连接 (kebab-case)。
+
+```
+// bad
+mycomponent.vue
+myComponent.vue
+
+// good
+my-component.vue
+MyComponent.vue
+```
+
+## 紧密耦合的组件名
+
+和父组件紧密耦合的子组件应该以父组件名作为前缀命名。
+
+```
+// bad
+components/
+|- TodoList.vue
+|- TodoItem.vue
+|- TodoButton.vue
+
+// good
+components/
+|- TodoList.vue
+|- TodoListItem.vue
+|- TodoListItemButton.vue
+```
+
+## 自闭合组件
+
+在单文件组件中没有内容的组件应该是自闭合的。
+
+```html
+
+
+
+
+
+```
+
+## Prop 名大小写
+
+在声明 prop 的时候,其命名应该始终使用 camelCase,而在模板中应该始终使用 kebab-case。
+
+```js
+// bad
+export default {
+ props: {
+ 'greeting-text': String
+ }
+};
+
+// good
+export default {
+ props: {
+ greetingText: String
+ }
+}
+```
+
+```html
+
+
+
+
+
+```
+
+## Props 换行
+
+多个 Props 的元素应该分多行撰写,每个 Props 一行,闭合标签单起一行。
+
+```html
+
+
+
+
+
+```
+
+## 指令缩写
+
+指令缩写,用 `:` 表示 `v-bind:` ,用 `@` 表示 `v-on:`
+
+```html
+
+
+
+
+
+```
+
+## Props 顺序
+
+标签的 Props 应该有统一的顺序,依次为指令、属性和事件。
+
+```html
+
+```
+
+## 组件选项的顺序
+
+组件选项应该有统一的顺序。
+
+```js
+export default {
+ name: '',
+
+ mixins: [],
+
+ components: {},
+
+ props: {},
+
+ data() {},
+
+ computed: {},
+
+ watch: {},
+
+ created() {},
+
+ mounted() {},
+
+ destroyed() {},
+
+ methods: {}
+};
+```
+
+## 组件选项中的空行
+
+组件选项较多时,建议在属性之间添加空行。
+
+```js
+export default {
+ computed: {
+ formattedValue() {
+ // ...
+ },
+
+ styles() {
+ // ...
+ }
+ },
+
+ methods: {
+ onInput() {
+ // ...
+ },
+
+ onChange() {
+ // ...
+ }
+ }
+};
+```
+
+## 单文件组件顶级标签的顺序
+
+单文件组件应该总是让顶级标签的顺序保持一致,且标签之间留有空行。
+
+```html
+
+...
+
+
+
+
+
+```