diff --git a/package.json b/package.json
index fdc60ca..7f3c254 100644
--- a/package.json
+++ b/package.json
@@ -3,6 +3,7 @@
"version": "1.0.0",
"private": true,
"dependencies": {
+ "bootstrap": "^3.3.7",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-scripts": "1.0.17"
diff --git a/src/App.js b/src/App.js
index aadc816..3fa11c2 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,12 +1,41 @@
import React from 'react';
/**
- * A simple function which returns some text inside a
tag.
+ * Return HTML skeleton for todo list.
*/
function App() {
return (
- Let's Learn React
- )
+
+ );
}
export default App;
diff --git a/src/assets/images/add.svg b/src/assets/images/add.svg
new file mode 100644
index 0000000..1cb03d8
--- /dev/null
+++ b/src/assets/images/add.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/src/assets/images/search.svg b/src/assets/images/search.svg
new file mode 100644
index 0000000..ccc84b6
--- /dev/null
+++ b/src/assets/images/search.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/src/assets/style/index.css b/src/assets/style/index.css
new file mode 100644
index 0000000..5994827
--- /dev/null
+++ b/src/assets/style/index.css
@@ -0,0 +1,126 @@
+body {
+ background-color: #eee;
+ color: #555;
+}
+
+.todolist {
+ background-color: #FFF;
+ padding: 20px 20px 10px 20px;
+ width: 600px;
+ margin: 30px auto;
+ border: 1px solid #ddd;
+ border-radius: 2px;
+ position: relative;
+}
+
+.todolist h1 {
+ margin: 0;
+ padding-bottom: 20px;
+ text-align: center;
+ text-transform: uppercase;
+}
+
+.todolist .info {
+ position: absolute;
+ margin-top: 20px;
+ left: 0;
+ right: 0;
+ color: #999;
+ text-align: center;
+}
+
+.form-control {
+ border-radius: 0;
+}
+
+li.ui-state-default {
+ background: #fff;
+ border: none;
+ border-bottom: 1px solid #ddd;
+}
+
+li.ui-state-default:last-child {
+ border-bottom: none;
+}
+
+li.completed label {
+ text-decoration: line-through;
+ color: #aaa;
+}
+
+footer {
+ border-top: 1px solid #ddd;
+ background-color: #F4FCE8;
+ margin: 0 -20px -10px -20px;
+ padding: 12px 20px;
+ position: relative;
+ color: #777;
+}
+
+.filters {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.filters li {
+ display: inline-block;
+}
+
+.filters li a {
+ cursor: pointer;
+ color: inherit;
+ margin: 3px;
+ padding: 4px 8px;
+ text-decoration: none;
+ border: 1px solid transparent;
+ border-radius: 3px;
+}
+
+.filters li a.selected, .filters li a:hover {
+ border-color: rgba(175, 47, 47, 0.1);
+}
+
+.filters li a.selected {
+ border-color: rgba(175, 47, 47, 0.2);
+ color: #555;
+}
+
+footer .buttons {
+ border-right: 1px solid #ccc;
+ margin-right: 15px;
+ padding-right: 10px;
+ height: 20px;
+}
+
+.buttons .button {
+ display: inline-block;
+ margin: 0 5px;
+ height: 18px;
+ width: 18px;
+ cursor: pointer;
+ opacity: 0.5;
+ transition: 0.3s all;
+}
+
+.buttons .button:hover, .buttons .button.selected {
+ opacity: 1;
+ border-color: #ddd;
+}
+
+.buttons .add {
+ background: url(../images/add.svg) no-repeat center;
+}
+
+.buttons .search {
+ background: url(../images/search.svg) no-repeat center;
+}
+
+.alert.alert-info {
+ margin: 10px 0;
+ padding: 10px;
+ border-radius: 0;
+ background: #f2f2f2;
+ border: 1px solid rgba(229, 229, 229, 0.5);
+ color: #888;
+}
diff --git a/src/index.js b/src/index.js
index a6aac8d..0939a3f 100644
--- a/src/index.js
+++ b/src/index.js
@@ -3,5 +3,11 @@ import ReactDOM from 'react-dom';
import App from './App';
+// Add boostrap css
+import 'bootstrap/dist/css/bootstrap.css';
+
+// Add our style
+import './assets/style/index.css';
+
// Render a React element to the DOM
ReactDOM.render(, document.getElementById('root'));
diff --git a/yarn.lock b/yarn.lock
index e49635a..44e33e8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1040,6 +1040,10 @@ boom@5.x.x:
dependencies:
hoek "4.x.x"
+bootstrap@^3.3.7:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71"
+
boxen@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6"
@@ -5125,7 +5129,7 @@ react-dev-utils@^4.2.1:
strip-ansi "3.0.1"
text-table "0.2.0"
-react-dom@16.2.0:
+react-dom@^16.2.0:
version "16.2.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.2.0.tgz#69003178601c0ca19b709b33a83369fe6124c044"
dependencies:
@@ -5181,7 +5185,7 @@ react-scripts@1.0.17:
optionalDependencies:
fsevents "1.1.2"
-react@16.2.0:
+react@^16.2.0:
version "16.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.2.0.tgz#a31bd2dab89bff65d42134fa187f24d054c273ba"
dependencies: