diff --git a/browser/main/HomePage/ArticleDetail.js b/browser/main/HomePage/ArticleDetail.js
index ae2a6acd..b07145de 100644
--- a/browser/main/HomePage/ArticleDetail.js
+++ b/browser/main/HomePage/ArticleDetail.js
@@ -139,10 +139,10 @@ export default class ArticleDetail extends React.Component {
diff --git a/browser/main/HomePage/ArticleTopBar.js b/browser/main/HomePage/ArticleTopBar.js
index adcb364d..c8363b89 100644
--- a/browser/main/HomePage/ArticleTopBar.js
+++ b/browser/main/HomePage/ArticleTopBar.js
@@ -2,6 +2,8 @@ import React, { PropTypes } from 'react'
import ReactDOM from 'react-dom'
import ExternalLink from 'boost/components/ExternalLink'
import { setSearchFilter, clearSearch } from 'boost/actions'
+import { openModal } from 'boost/modal'
+import Tutorial from 'boost/components/modal/Tutorial'
export default class ArticleTopBar extends React.Component {
constructor (props) {
@@ -65,6 +67,10 @@ export default class ArticleTopBar extends React.Component {
this.focusInput()
}
+ handleTutorialButtonClick (e) {
+ openModal(Tutorial)
+ }
+
render () {
return (
@@ -92,7 +98,7 @@ export default class ArticleTopBar extends React.Component {
-
+
Boost official page 公式サイト
diff --git a/browser/main/index.html b/browser/main/index.html
index 364f96ed..267377d4 100644
--- a/browser/main/index.html
+++ b/browser/main/index.html
@@ -2,7 +2,7 @@
-
+
diff --git a/browser/styles/main/HomeContainer/components/ArticleDetail.styl b/browser/styles/main/HomeContainer/components/ArticleDetail.styl
index 4ccb2c52..399529e5 100644
--- a/browser/styles/main/HomeContainer/components/ArticleDetail.styl
+++ b/browser/styles/main/HomeContainer/components/ArticleDetail.styl
@@ -205,10 +205,10 @@ iptFocusBorderColor = #369DCD
tooltip()
&.editBtn .tooltip
margin-top 25px
- margin-left -63px
+ margin-left -65px
&.deleteBtn .tooltip
margin-top 25px
- margin-left -96px
+ margin-left -98px
&:hover
color inherit
.tooltip
diff --git a/browser/styles/main/HomeContainer/index.styl b/browser/styles/main/HomeContainer/index.styl
index d0551d0c..bb74ee2d 100644
--- a/browser/styles/main/HomeContainer/index.styl
+++ b/browser/styles/main/HomeContainer/index.styl
@@ -8,3 +8,4 @@
@require './lib/CreateNewTeam'
@require './lib/CreateNewFolder'
@require './lib/Preferences'
+@require './lib/Tutorial'
diff --git a/browser/styles/main/HomeContainer/lib/Tutorial.styl b/browser/styles/main/HomeContainer/lib/Tutorial.styl
new file mode 100644
index 00000000..ced4547c
--- /dev/null
+++ b/browser/styles/main/HomeContainer/lib/Tutorial.styl
@@ -0,0 +1,129 @@
+
+slideBgColor0 = #2BAC8F
+slideBgColor1 = #F68F92
+slideBgColor2 = #D6AD56
+slideBgColor3 = #26969B
+slideBgColor4 = #00B493
+
+.Tutorial.modal
+ background-color slideBgColor0
+ color white
+ width 720px
+ height 480px
+ margin-top 75px
+ border-radius 5px
+ overflow hidden
+
+ .priorBtn, .nextBtn
+ font-size 72px
+ position absolute
+ background-color transparent
+ color transparentify(white, 50%)
+ transition 0.1s
+ border none
+ line-height 72px
+ padding 0
+ width 93px
+ height 72px
+ z-index 2
+ top 189px
+ &:hover
+ color white
+ &.hide
+ opacity 0
+ .priorBtn
+ left 15px
+ .nextBtn
+ right 15px
+ .title
+ text-align center
+ font-size 54px
+ margin 40px 0
+ .content
+ text-align center
+ font-size 22px
+ line-height 1.8
+ .dots
+ position absolute
+ left 0
+ right 0
+ bottom 25px
+ margin 0 auto
+ color gray
+ text-align center
+ z-index 2
+ &>i
+ transition 0.3s
+ &.active
+ color white
+ .slide
+ absolute top bottom left right
+ z-index 1
+ .slide0
+ background-color slideBgColor0
+ .content
+ margin-top 100px
+ .slide1
+ background-color slideBgColor1
+ .content
+ .markdown
+ background-color white
+ color textColor
+ width 480px
+ height 140px
+ margin 45px auto 0
+ clearfix()
+ text-align left
+ border-radius 5px
+ overflow hidden
+ .left
+ float left
+ width 240px
+ height 140px
+ box-sizing border-box
+ font-size 0.5em
+ padding 30px
+ border-right 1px solid borderColor
+ .right
+ width 240px
+ height 140px
+ float right
+ box-sizing border-box
+ padding: 28px 0 0 10px
+ font-size 0.45em
+ marked()
+ ul
+ padding-left 20px
+ .slide2
+ background-color slideBgColor2
+ .code
+ border-radius 5px
+ overflow hidden
+ text-align left
+ width 480px
+ heght 140px
+ margin 45px auto 0
+ font-size 14px
+ .ace_editor
+ height 140px
+ .slide3
+ background-color slideBgColor3
+ .content
+ &>img
+ margin-top 45px
+ .slide4
+ background-color slideBgColor4
+ .content
+ &>button
+ background-color white
+ color brandColor
+ font-size 60px
+ width 250px
+ height 250px
+ border-radius 125px
+ border none
+ transition 0.1s
+ &:hover
+ transform scale(1.2)
+
+
diff --git a/lib/components/modal/Tutorial.js b/lib/components/modal/Tutorial.js
new file mode 100644
index 00000000..1891ebd1
--- /dev/null
+++ b/lib/components/modal/Tutorial.js
@@ -0,0 +1,107 @@
+import React from 'react'
+import MarkdownPreview from 'boost/components/MarkdownPreview'
+import CodeEditor from 'boost/components/CodeEditor'
+
+export default class Tutorial extends React.Component {
+ constructor (props) {
+ super(props)
+
+ this.state = {
+ slideIndex: 0
+ }
+ }
+
+ handlePriorSlideClick () {
+ if (this.state.slideIndex > 0) this.setState({slideIndex: this.state.slideIndex - 1})
+ }
+
+ handleNextSlideClick () {
+ if (this.state.slideIndex < 4) this.setState({slideIndex: this.state.slideIndex + 1})
+ }
+
+ startButtonClick (e) {
+ this.props.close()
+ }
+
+ render () {
+ let content = this.renderContent(this.state.slideIndex)
+
+ let dotElements = []
+ for (let i = 0; i < 5; i++) {
+ dotElements.push()
+ }
+
+ return (
+
+
+
+ {content}
+
+ {dotElements}
+
+
+ )
+ }
+
+ renderContent (index) {
+ switch (index) {
+ case 0:
+ return (
+
Welcome to Boost
+
+ Boost is a brand new note app for software
+ Don't waste time cleaning up your data.
+ devote that time to more creative work.
+ Hack your memory.
+
+
)
+ case 1:
+ let content = '## Boost is a note app for engineer.\n\n - Write with markdown\n - Stylize beautiful'
+ return (
+
Write with Markdown
+
+ Markdown is available.
+ Your notes will be stylized beautifully and quickly.
+
+
+
)
+ case 2:
+ let code = 'import shell from \'shell\'\r\nvar React = require(\'react\')\r\nvar { PropTypes } = React\r\nimport markdown from \'boost\/markdown\'\r\nvar ReactDOM = require(\'react-dom\')\r\n\r\nfunction handleAnchorClick (e) {\r\n shell.openExternal(e.target.href)\r\n e.preventDefault()\r\n}\r\n\r\nexport default class MarkdownPreview extends React.Component {\r\n componentDidMount () {\r\n this.addListener()\r\n }\r\n\r\n componentDidUpdate () {\r\n this.addListener()\r\n }\r\n\r\n componentWillUnmount () {\r\n this.removeListener()\r\n }'
+ return (
+
Beautiful code highlighting
+
+ Boost supports code syntax highlighting.
+ There are more than 100 different type of language.
+
+
+
+
+
)
+ case 3:
+ return (
+
Easy to access with Finder
+
+ Finder is a small popup window.
+ With finder, You can search your articles faster.
+

+
+
)
+ case 4:
+ return (
+
Are you ready?
+
+
+
+
)
+ default:
+ return null
+ }
+ }
+}
diff --git a/lib/modal.js b/lib/modal.js
index a445ec33..105888af 100644
--- a/lib/modal.js
+++ b/lib/modal.js
@@ -1,5 +1,5 @@
import React from 'react'
-let ReactDOM = require('react-dom')
+import ReactDOM from 'react-dom'
class ModalBase extends React.Component {
constructor (props) {
diff --git a/package.json b/package.json
index 7d862a9c..bb941c71 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "boost",
- "version": "0.4.0-alpha.5",
+ "version": "0.4.0-alpha.6",
"description": "Boost App",
"main": "main.js",
"scripts": {
diff --git a/resources/finder.png b/resources/finder.png
new file mode 100644
index 00000000..4caf9249
Binary files /dev/null and b/resources/finder.png differ