diff --git a/bower.json b/bower.json
index c92757dea..93adb0c09 100644
--- a/bower.json
+++ b/bower.json
@@ -42,6 +42,6 @@
"alertifyjs": "^1.0.11",
"spin.js": "^2.3.2",
"scrypt-async": "^1.2.0",
- "bootstrap": "^3.3.7"
+ "bootstrap": "#v4.0.0-alpha.6"
}
}
diff --git a/config.js.dist b/config.js.dist
index 95ba7ed49..91bf38d95 100644
--- a/config.js.dist
+++ b/config.js.dist
@@ -81,6 +81,7 @@ module.exports = {
'privacy',
'terms',
'about',
+ 'contact',
],
/*
diff --git a/customize.dist/about.html b/customize.dist/about.html
index 7c54eb7a7..126a4e37c 100644
--- a/customize.dist/about.html
+++ b/customize.dist/about.html
@@ -3,9 +3,12 @@
Cryptpad: Zero Knowledge, Collaborative Real Time Editing
+
+
+
-
-
-
+
+
diff --git a/customize.dist/bg.jpg b/customize.dist/bg.jpg
new file mode 100644
index 000000000..fa5214591
Binary files /dev/null and b/customize.dist/bg.jpg differ
diff --git a/customize.dist/bg2.jpg b/customize.dist/bg2.jpg
new file mode 100644
index 000000000..a7598eee1
Binary files /dev/null and b/customize.dist/bg2.jpg differ
diff --git a/customize.dist/bg3.jpg b/customize.dist/bg3.jpg
new file mode 100644
index 000000000..81783e652
Binary files /dev/null and b/customize.dist/bg3.jpg differ
diff --git a/customize.dist/contact.html b/customize.dist/contact.html
new file mode 100644
index 000000000..d63ac8b35
--- /dev/null
+++ b/customize.dist/contact.html
@@ -0,0 +1,71 @@
+
+
+
+ Cryptpad: Zero Knowledge, Collaborative Real Time Editing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OOPS In order to do encryption in your browser, Javascript is really really required.
+
+
+
+ OUPS Afin de pouvoir réaliser le chiffrement dans votre navigateur, Javascript est vraiment nécessaire.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/customize.dist/images/code.png b/customize.dist/images/code.png
new file mode 100644
index 000000000..e5b966143
Binary files /dev/null and b/customize.dist/images/code.png differ
diff --git a/customize.dist/images/hash.png b/customize.dist/images/hash.png
new file mode 100644
index 000000000..b1b662912
Binary files /dev/null and b/customize.dist/images/hash.png differ
diff --git a/customize.dist/images/pad.png b/customize.dist/images/pad.png
new file mode 100644
index 000000000..deb962bd7
Binary files /dev/null and b/customize.dist/images/pad.png differ
diff --git a/customize.dist/images/poll.png b/customize.dist/images/poll.png
new file mode 100644
index 000000000..776864526
Binary files /dev/null and b/customize.dist/images/poll.png differ
diff --git a/customize.dist/images/realtime.png b/customize.dist/images/realtime.png
new file mode 100644
index 000000000..d854c4d48
Binary files /dev/null and b/customize.dist/images/realtime.png differ
diff --git a/customize.dist/images/slide.png b/customize.dist/images/slide.png
new file mode 100644
index 000000000..9affdc923
Binary files /dev/null and b/customize.dist/images/slide.png differ
diff --git a/customize.dist/images/useraccount.png b/customize.dist/images/useraccount.png
new file mode 100644
index 000000000..8bcec5b39
Binary files /dev/null and b/customize.dist/images/useraccount.png differ
diff --git a/customize.dist/images/zk.png b/customize.dist/images/zk.png
new file mode 100644
index 000000000..4433b257b
Binary files /dev/null and b/customize.dist/images/zk.png differ
diff --git a/customize.dist/index.html b/customize.dist/index.html
index 1b7d66184..9d9f02c18 100644
--- a/customize.dist/index.html
+++ b/customize.dist/index.html
@@ -3,9 +3,12 @@
Cryptpad: Zero Knowledge, Collaborative Real Time Editing
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+ Know more
+
+
+
+
+
+
+
+
+
Zero Knowledge
+
+ Every tool provided by Cryptpad are based on a Zero Knowledge technology. It means that our server stored only encrypted data, and we have no way to decrypt it. Even data about your account, including your username, are encrypted.
+
+
+
+
+
+
+
+
Realtime
+
+ Our tools also use a Realtime technology, which means that you can edit the documents, slides or polls collaboratively with other people. Our unique technology has the advantage of combining both realtime and zero-knowledge at the same time.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Share documents
+
+ When you want to edit a document with other users or invite them to answer to a poll, you just have to share the URL of that document with them. All the information needed to access and edit it are contained in the "hash" of the URL.
+
+
+
+
+
+
+
+
User Account
+
+ In order to have Zero Knowledge user accounts, we needed a way to store your settings without knowing your username and password. To do so, our tools generate a unique key from your username and password, directly in your browser.
+
+
+
+
+
+
+
+
+
+ Try it out!
+
+
+
+
+
+
+
+ Rich Text editor
+
+
+
+ Edit rich text documents collaboratively with our realtime Zero Knowledge CkEditor application.
+
+
+
+
+
+
+ Code editor
+
+
+
+ Edit code from your software collaboratively with our realtime Zero Knowledge CodeMirror application.
+
+
+
+
+
+
+ Slide editor
+
+
+
+ Create your presentations using the Markdown syntax with our CryptSlide application, and display them in your browser.
+
+
+
+
+
+
+ Polls
+
+
+
+ Plan your meeting or your event, or vote for the best solution regarding your problem using our poll application.
+
+
+
+
+
+
+
+
-
-
-
diff --git a/customize.dist/main.css b/customize.dist/main.css
index 49af283c6..5ca09029b 100644
--- a/customize.dist/main.css
+++ b/customize.dist/main.css
@@ -14,15 +14,16 @@
background: rgba(0, 0, 0, 0.8);
}
.alertify-logs > *.error {
- background: #FF0073;
+ background: #FA5858;
}
.alertify-logs > *.success {
background: #46E981;
- color: #302B28;
+ color: #fff;
}
.alertify {
position: fixed;
background-color: rgba(0, 0, 0, 0.3);
+ color: #fafafa;
left: 0;
right: 0;
top: 0;
@@ -79,8 +80,8 @@
}
.alertify .dialog input:not(.form-control),
.alertify .alert input:not(.form-control) {
- background-color: #302B28;
- color: #fafafa;
+ background-color: #fff;
+ color: #555;
border: 0px;
border-radius: 5px;
margin-bottom: 15px;
@@ -210,7 +211,7 @@
height: 2.5em;
display: inline-block;
width: 100%;
- background: #302B28;
+ background: #fff;
border-top: 1px solid #444;
}
.top-bar a,
@@ -226,7 +227,7 @@
display: block;
margin-left: 10px;
padding-top: 3px;
- color: #fafafa;
+ color: #555;
}
.top-bar img,
.bottom-bar img {
@@ -306,6 +307,7 @@
left: 0px;
right: 0px;
background: #302B28;
+ color: #fafafa;
text-align: center;
font-size: 1.5em;
}
@@ -344,7 +346,7 @@
display: none;
position: absolute;
background-color: #f9f9f9;
- min-width: 160px;
+ min-width: 200px;
box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.2);
z-index: 1000;
max-height: 300px;
@@ -401,19 +403,81 @@
font-size: 16px;
white-space: normal;
}
+#cryptpadTopBar {
+ background: #fff;
+ position: relative;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 50px;
+ color: #000;
+ font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ padding: 5px;
+ box-sizing: border-box;
+ font-size: 30px;
+}
+#cryptpadTopBar > span {
+ vertical-align: middle;
+ display: inline-block;
+ height: 100%;
+}
+#cryptpadTopBar .cryptpad-logo {
+ height: 40px;
+ vertical-align: middle;
+}
+#cryptpadTopBar .slogan {
+ font-size: 20px;
+ color: #000;
+ line-height: 40px;
+}
+#cryptpadTopBar .gotoMain {
+ color: #000;
+ height: 40px;
+ line-height: 40px;
+}
+#cryptpadTopBar .gotoMain:hover {
+ text-decoration: none;
+ color: #558;
+}
+#cryptpadTopBar .right {
+ float: right;
+ font-size: 20px;
+ margin: 0px 10px;
+ line-height: 40px;
+}
+#cryptpadTopBar .right a {
+ font-weight: 500;
+ font-size: 0.75em;
+ color: #558;
+ /* text-align: center;
+ min-width: 100px;
+ font-weight: bold;
+ height: 70px;
+ padding: 0 10px;
+ line-height: 70px;
+ display: inline-block;
+ color: @topbar-button-color;*/
+}
+#cryptpadTopBar .right a:hover {
+ text-decoration: none;
+ color: #000;
+}
html.cp,
.cp body {
font-size: .875em;
- background-color: #302B28;
- color: #fafafa;
+ background-color: #fff;
+ color: #555;
font-family: Georgia,Cambria,serif;
- height: 100;
+ height: 100%;
}
-.cp:not(.poll) #language-selector {
- position: absolute;
- top: 0px;
- right: 0px;
- display: inline-block;
+.cp:not(.poll) {
+ /*#language-selector {
+ position: absolute;
+ top: @topbar-height;
+ right: 0px;
+ display: inline-block;
+ z-index: 2;
+ }*/
}
.cp {
/* buttons */
@@ -425,6 +489,7 @@ html.cp,
font-size: 1rem;
font-weight: 400;
line-height: 2rem;
+ margin: 0;
}
.cp a.github-corner > svg {
fill: #00ADEE;
@@ -440,7 +505,7 @@ html.cp,
.cp h4,
.cp h5,
.cp h6 {
- color: #fafafa;
+ color: #555;
font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
-webkit-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1;
-moz-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1;
@@ -486,11 +551,11 @@ html.cp,
}
.cp a {
cursor: pointer;
- color: #46E981;
+ color: #3333ff;
text-decoration: none;
}
.cp a:hover {
- color: #a1f4bf;
+ color: #0000cc;
}
.cp img {
height: auto;
@@ -513,28 +578,311 @@ html.cp,
font-family: lato, Helvetica, sans-serif;
font-size: 1.02em;
}
+.cp .page {
+ width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+ background: #fff;
+ padding: 10px 0;
+ position: relative;
+}
+.cp .page .info-container {
+ width: 900px;
+ max-width: 100%;
+ margin: 0 auto;
+}
+.cp .page .info-container > div {
+ padding: 10px;
+ width: 400px;
+ max-width: 100%;
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+@media screen and (max-width: 800px) {
+ .cp .page .info-container > div:not(.image) {
+ width: 100%;
+ left: 0;
+ }
+}
+.cp .page .info-container > div.image {
+ text-align: center;
+}
+@media screen and (max-width: 800px) {
+ .cp .page .info-container > div.image {
+ display: none;
+ }
+}
+@media screen and (max-width: 800px) {
+}
+.cp .page.category {
+ background: #f7f7f7;
+}
+.cp .page .app {
+ display: inline-block;
+ width: 300px;
+ vertical-align: middle;
+ margin: 0px 25px;
+ white-space: normal;
+ max-width: calc(50% - 50px);
+}
+@media screen and (max-width: 500px) {
+ .cp .page .app {
+ display: block;
+ max-width: 100%;
+ margin: 0 auto;
+ }
+}
+.cp .page .app-container {
+ width: 1400px;
+ max-width: 100%;
+ margin: 0 auto;
+}
+.cp .page .app-row {
+ display: inline-block;
+ white-space: nowrap;
+ width: 700px;
+ max-width: 100%;
+ margin: 0 auto;
+}
+@media screen and (max-width: 1399px) {
+ .cp .page .app-row {
+ display: block;
+ }
+}
+@media screen and (max-width: 800px) {
+ .cp .page .app-row img {
+ display: none;
+ }
+}
+.cp .page .right {
+ left: 100px;
+}
+.cp .page h1,
+.cp .page h2,
+.cp .page h3,
+.cp .page h4,
+.cp .page h5,
+.cp .page h6 {
+ padding: 0;
+}
+@media screen and (max-width: 800px) {
+ .cp .page {
+ padding: 10px 5vh;
+ }
+}
+.cp .page p {
+ font-size: 18px;
+ text-align: justify;
+}
+.cp .btn-default:hover {
+ background-color: #d8d8d8;
+}
.cp #main {
- width: 70vw;
+ background-image: url('/customize/bg3.jpg');
+ background-size: cover;
+ background-position: center center;
+}
+.cp #main_other {
+ padding: 0 15vw;
+}
+.cp #main,
+.cp #main_other {
+ position: relative;
+ left: 0;
+ right: 0;
+ height: calc(100vh - 150px);
+ min-height: 450px;
margin: auto;
font-size: medium;
- padding-bottom: 1em;
+}
+.cp #main #overlay,
+.cp #main_other #overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #000;
+ opacity: 0.3;
+}
+.cp #main #main-container,
+.cp #main_other #main-container {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%);
+ margin-left: auto;
+ margin-right: auto;
+ display: inline-block;
+ width: 1000px;
+ max-width: 90%;
+}
+.cp #main #data,
+.cp #main_other #data {
+ width: 600px;
+ max-width: 60%;
+ color: #fff;
+ padding: 15px;
+ box-sizing: border-box;
+ position: absolute;
+ display: inline-block;
+ top: 50%;
+ left: 0;
+ transform: translateY(-50%);
+}
+.cp #main #data p,
+.cp #main_other #data p {
+ margin: 0;
+ padding: 0;
+ font-size: 20px;
+ line-height: 1.5em;
+}
+.cp #main #data h2,
+.cp #main_other #data h2 {
+ font-weight: normal;
+ font-size: 48px;
+ line-height: 1.2em;
+ color: #fff;
+}
+.cp #main #data h5,
+.cp #main_other #data h5 {
+ font-size: 1em;
+ color: #fff;
+}
+.cp #main #data #tryit,
+.cp #main_other #data #tryit {
+ margin-top: 20px;
+ margin-bottom: 5px;
+}
+.cp #main #userForm,
+.cp #main_other #userForm {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ margin-left: 50px;
+ display: inline-block;
+ width: 350px;
+ max-width: 35%;
+ padding: 10px;
+ box-sizing: border-box;
+ font-family: lato, Helvetica, sans-serif;
+ color: #fff;
+ /*.remember {
+ vertical-align: middle;
+ line-height: 28px;
+ height: 28px;
+ display: inline-block;
+ margin: 10px 0 20px 0;
+ }
+
+
+ [type="checkbox"] {
+ vertical-align: text-top;
+ margin: 0;
+ //margin-top: 10px;
+ margin-right: 5px;
+ }
+ */
+}
+.cp #main #userForm h1,
+.cp #main_other #userForm h1 {
+ color: #fff;
+ padding: 0;
+}
+.cp #main #userForm [type="text"],
+.cp #main_other #userForm [type="text"],
+.cp #main #userForm [type="password"],
+.cp #main_other #userForm [type="password"] {
+ width: 100%;
+}
+.cp #main #userForm label,
+.cp #main_other #userForm label {
+ margin-bottom: 0;
+}
+.cp #main #userForm [type="checkbox"],
+.cp #main_other #userForm [type="checkbox"] {
+ margin-right: 5px;
+}
+.cp #main #userForm button,
+.cp #main_other #userForm button {
+ font-weight: bold;
+ width: 100%;
+ margin: 2px 0px;
+ cursor: pointer;
+}
+.cp #main #userForm button.half,
+.cp #main_other #userForm button.half {
+ width: calc(50% - 4px);
+}
+.cp #main #userForm button.half:not(.first),
+.cp #main_other #userForm button.half:not(.first) {
+ float: right;
+}
+@media screen and (max-width: 800px) {
+ .cp #main #main-container,
+ .cp #main_other #main-container {
+ transform: initial;
+ position: relative;
+ display: block;
+ width: 90%;
+ left: 0;
+ }
+}
+@media screen and (max-width: 800px) {
+ .cp #main #userForm,
+ .cp #main_other #userForm,
+ .cp #main #data,
+ .cp #main_other #data {
+ transform: initial;
+ position: relative;
+ display: block;
+ width: 100%;
+ max-width: 100%;
+ margin: 10px 0;
+ box-sizing: border-box;
+ }
+}
+@media screen and (max-width: 800px) {
+ .cp #main #userForm,
+ .cp #main_other #userForm {
+ border: 1px solid #888;
+ }
+}
+@media screen and (max-width: 800px) {
+ .cp #main,
+ .cp #main_other {
+ position: relative;
+ height: auto;
+ top: -10px;
+ }
+}
+.cp #main .buttons,
+.cp #main_other .buttons {
+ margin-top: 15px;
+}
+.cp p.buttons,
+.cp div.buttons {
+ text-align: center;
+}
+.cp p.buttons button,
+.cp div.buttons button {
+ font-weight: bold;
+ cursor: pointer;
+ margin-top: 10px;
}
.cp #fileManagerIframe {
width: 100%;
height: 500px;
margin-top: 15px;
}
-.cp .buttons {
- margin-bottom: 50px;
- margin-top: 20px;
- line-height: 2.5em;
-}
.cp .create,
.cp .action {
display: inline-block;
- border: 2px solid #46E981;
- background-color: #302B28;
- color: #46E981;
+ border: 0;
+ background-color: #3333ff;
+ color: #fff;
font-weight: bold;
font-size: large;
margin-right: 5px;
@@ -542,18 +890,16 @@ html.cp,
}
.cp .create:hover,
.cp .action:hover {
- border: 2px solid #a1f4bf;
- color: #46E981;
+ color: #cccccc;
}
.cp .button {
padding: 4px 12px 4px 12px;
- margin-top: 12px;
- margin-bottom: 12px;
+ margin: 2px 0;
display: inline-block;
line-height: 1.5em;
}
.cp .panel {
- background-color: #333;
+ background-color: #cccccc;
}
.cp table {
border-collapse: collapse;
@@ -561,7 +907,7 @@ html.cp,
margin: 20px;
}
.cp tbody {
- border: 2px solid black;
+ border: 1px solid #555;
}
.cp tbody tr {
text-align: center;
@@ -579,18 +925,18 @@ html.cp,
cursor: pointer;
}
.cp tbody tr:nth-child(odd) {
- background-color: #685d56;
+ background-color: #ffffff;
}
.cp tbody tr th:first-of-type {
border-left: 0px;
}
.cp tbody tr th {
box-sizing: border-box;
- border: 1px solid black;
+ border: 1px solid #555;
}
.cp tbody tr th,
.cp tbody tr td {
- color: #fafafa;
+ color: #555;
}
.cp tbody tr th.remove,
.cp tbody tr td.remove {
@@ -600,7 +946,7 @@ html.cp,
border-right: 0px;
}
.cp tbody td {
- border-right: 1px solid black;
+ border-right: 1px solid #555;
padding: 12px;
padding-top: 0px;
padding-bottom: 0px;
@@ -615,7 +961,7 @@ html.cp,
border-top-left-radius: 5px;
}
.cp .remove {
- color: #FF0073;
+ color: #FA5858;
cursor: pointer !important;
}
.cp form.realtime,
@@ -661,7 +1007,7 @@ html.cp,
.cp form.realtime table tr td div.text-cell input[disabled],
.cp div.realtime table tr td div.text-cell input[disabled] {
background-color: transparent;
- color: #fafafa;
+ color: #000;
font-weight: bold;
}
.cp form.realtime table tr td.checkbox-cell,
@@ -695,8 +1041,8 @@ html.cp,
.cp form.realtime table tr td.checkbox-cell div.checkbox-contain input[type="checkbox"]:not(.editable) ~ .cover,
.cp div.realtime table tr td.checkbox-cell div.checkbox-contain input[type="checkbox"]:not(.editable) ~ .cover {
font-weight: bold;
- background-color: #FF0073;
- color: #302B28;
+ background-color: #FA5858;
+ color: #000;
display: block;
}
.cp form.realtime table tr td.checkbox-cell div.checkbox-contain input[type="checkbox"]:not(.editable) ~ .cover:after,
@@ -726,13 +1072,13 @@ html.cp,
.cp form.realtime table input[type="text"],
.cp div.realtime table input[type="text"] {
height: auto;
- border: 1px solid #302B28;
+ border: 1px solid #fff;
width: 80%;
}
.cp form.realtime table thead td,
.cp div.realtime table thead td {
padding: 0px 5px;
- background: #4c443f;
+ background: #aaa;
border-radius: 20px 20px 0 0;
text-align: center;
}
@@ -743,13 +1089,13 @@ html.cp,
}
.cp form.realtime table thead td input[type="text"][disabled],
.cp div.realtime table thead td input[type="text"][disabled] {
- color: white;
+ color: #000;
padding: 1px 5px;
border: none;
}
.cp form.realtime table tbody .text-cell,
.cp div.realtime table tbody .text-cell {
- background: #4c443f;
+ background: #aaa;
}
.cp form.realtime table tbody .text-cell input[type="text"],
.cp div.realtime table tbody .text-cell input[type="text"] {
@@ -765,6 +1111,10 @@ html.cp,
float: left;
margin: 0 0 0 10px;
}
+.cp form.realtime table tbody td label,
+.cp div.realtime table tbody td label {
+ border: 0.5px solid #555;
+}
.cp form.realtime table .edit,
.cp div.realtime table .edit {
color: #46E981;
@@ -782,7 +1132,7 @@ html.cp,
.cp form.realtime table thead tr th input[type="text"][disabled],
.cp div.realtime table thead tr th input[type="text"][disabled] {
background-color: transparent;
- color: #fafafa;
+ color: #555;
font-weight: bold;
}
.cp form.realtime table thead tr th .remove,
@@ -868,7 +1218,7 @@ html.cp,
width: 100%;
height: 100vh;
display: none;
- background-color: #302B28;
+ background-color: #000;
}
.cp div.modal #content,
.cp div#modal #content {
@@ -935,6 +1285,20 @@ html.cp,
font-size: 1.6vw;
line-height: 1.76vw;
}
+.cp div.modal #content h1,
+.cp div#modal #content h1,
+.cp div.modal #content h2,
+.cp div#modal #content h2,
+.cp div.modal #content h3,
+.cp div#modal #content h3,
+.cp div.modal #content h4,
+.cp div#modal #content h4,
+.cp div.modal #content h5,
+.cp div#modal #content h5,
+.cp div.modal #content h6,
+.cp div#modal #content h6 {
+ color: inherit;
+}
.cp div.modal #content pre > code,
.cp div#modal #content pre > code {
display: block;
@@ -959,7 +1323,7 @@ html.cp,
width: 80%;
height: 80%;
margin: auto;
- border: 1px solid #685d56;
+ border: 1px solid #ffffff;
text-align: center;
}
.cp div.modal.shown,
@@ -975,7 +1339,7 @@ html.cp,
.cp div#modal table input {
height: 100%;
width: 90%;
- border: 3px solid #302B28;
+ border: 3px solid #fff;
}
.cp div.modal table tfoot tr td,
.cp div#modal table tfoot tr td {
diff --git a/customize.dist/main.js b/customize.dist/main.js
index a03e0922a..186f7f4b6 100644
--- a/customize.dist/main.js
+++ b/customize.dist/main.js
@@ -33,13 +33,15 @@ define([
var displayCreateButtons = function () {
var $parent = $('#buttons');
Config.availablePadTypes.forEach(function (el) {
- $('#create-' + el).detach().appendTo($parent).attr('target', '_blank').show();
+ $('#create-' + el)//.detach().appendTo($parent)
+ .attr('target', '_blank').show();
});
};
// Language selector
var $sel = $('#language-selector');
Cryptpad.createLanguageSelector(undefined, $sel);
+ $sel.find('button').addClass('btn').addClass('btn-secondary');
$sel.show();
$(window).click(function () {
@@ -155,17 +157,64 @@ define([
});
};
+ var addButtonHandlers = function () {
+ $('button.login').click(function (e) {
+ var username = $('#name').val();
+ var passwd = $('#password').val();
+ var remember = $('#rememberme').is(':checked');
+ sessionStorage.login_user = username;
+ sessionStorage.login_pass = passwd;
+ sessionStorage.login_rmb = remember;
+ sessionStorage.login = 1;
+ document.location.href = '/user';
+ });
+ $('button.register').click(function (e) {
+ var username = $('#name').val();
+ var passwd = $('#password').val();
+ var remember = $('#rememberme').is(':checked');
+ sessionStorage.login_user = username;
+ sessionStorage.login_pass = passwd;
+ sessionStorage.login_rmb = remember;
+ sessionStorage.register = 1;
+ document.location.href = '/user';
+ });
+ $('button.nologin').click(function (e) {
+ document.location.href = '/drive';
+ });
+ $('button.knowmore').click(function (e) {
+ e.preventDefault();
+
+ $('html, body').animate({
+ scrollTop: $('#knowmore').offset().top
+ }, 500);
+ });
+ $('button.tryit').click(function (e) {
+ e.preventDefault();
+
+ $('html, body').animate({
+ scrollTop: $('#tryit').offset().top
+ }, 500);
+ });
+ };
+
displayCreateButtons();
- Cryptpad.ready(function () {
+ //Cryptpad.ready(function () {
console.log("ready");
+ if (Cryptpad.isLoggedIn()) {
+ document.location.href = '/drive';
+ }
+
+ addButtonHandlers();
+
$table = $('table.scroll');
$tbody = $table.find('tbody');
$tryit = $('#tryit');
Cryptpad.styleAlerts();
- refreshTable();
+ //refreshTable();
+ /*
if (Cryptpad.store && Cryptpad.store.change) {
Cryptpad.store.change(function (data) {
if (data.key === 'CryptPad_RECENTPADS') {
@@ -173,6 +222,7 @@ define([
}
});
}
- });
+ */
+ //});
});
diff --git a/customize.dist/messages.js b/customize.dist/messages.js
index 59be80317..b0cc524cb 100644
--- a/customize.dist/messages.js
+++ b/customize.dist/messages.js
@@ -81,6 +81,11 @@ define(['/customize/languageSelector.js',
var key = $el.data('localization');
$el.html(messages[key]);
};
+ var translateAppend = function (i, e) {
+ var $el = $(e);
+ var key = $el.data('localization-append');
+ $el.append(messages[key]);
+ };
var translateTitle = function (i, e) {
var $el = $(this);
var key = $el.data('localization-title');
@@ -93,6 +98,7 @@ define(['/customize/languageSelector.js',
};
messages._applyTranslation = function () {
$('[data-localization]').each(translateText);
+ $('[data-localization-append]').each(translateAppend);
$('#pad-iframe').contents().find('[data-localization]').each(translateText);
$('[data-localization-title]').each(translateTitle);
$('[data-localization-placeholder]').each(translatePlaceholder);
diff --git a/customize.dist/privacy.html b/customize.dist/privacy.html
index f985948b2..2464295b5 100644
--- a/customize.dist/privacy.html
+++ b/customize.dist/privacy.html
@@ -3,9 +3,12 @@
Cryptpad: Zero Knowledge, Collaborative Real Time Editing
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -42,6 +57,7 @@
+
-
-
diff --git a/customize.dist/src/build.js b/customize.dist/src/build.js
index b07b88775..c063b3333 100644
--- a/customize.dist/src/build.js
+++ b/customize.dist/src/build.js
@@ -24,9 +24,11 @@ var template = read('./template.html');
var fragments = {};
[ 'index',
'fork',
+ 'topbar',
'terms',
'privacy',
'about',
+ 'contact',
'logo',
'noscript',
].forEach(function (name) {
@@ -34,10 +36,16 @@ var fragments = {};
});
// build static pages
-['index', 'privacy', 'terms', 'about',].forEach(function (page) {
+['index', 'privacy', 'terms', 'about', 'contact',].forEach(function (page) {
var source = swap(template, {
+ topbar: fragments.topbar,
fork: fragments.fork,
- main: fragments[page],
+ main: swap(fragments[page], {
+ topbar: fragments.topbar,
+ fork: fragments.fork,
+ logo: fragments.logo,
+ noscript: fragments.noscript,
+ }),
logo: fragments.logo,
noscript: fragments.noscript,
});
diff --git a/customize.dist/src/fragments/about.html b/customize.dist/src/fragments/about.html
index f1af5d263..5956b69ac 100644
--- a/customize.dist/src/fragments/about.html
+++ b/customize.dist/src/fragments/about.html
@@ -1,10 +1,11 @@
+
diff --git a/customize.dist/src/fragments/contact.html b/customize.dist/src/fragments/contact.html
new file mode 100644
index 000000000..340a26e83
--- /dev/null
+++ b/customize.dist/src/fragments/contact.html
@@ -0,0 +1,8 @@
+
+
diff --git a/customize.dist/src/fragments/fork.html b/customize.dist/src/fragments/fork.html
index 5b0e26a67..668c38648 100644
--- a/customize.dist/src/fragments/fork.html
+++ b/customize.dist/src/fragments/fork.html
@@ -1,3 +1,3 @@
-
+
diff --git a/customize.dist/src/fragments/index.html b/customize.dist/src/fragments/index.html
index c43ee7444..728c71d68 100644
--- a/customize.dist/src/fragments/index.html
+++ b/customize.dist/src/fragments/index.html
@@ -1,42 +1,148 @@
-
-
-
-
-
-
-
-
-
-
+{{fork}}
-
-
-
- -->
-
+
+
+
+
+ Know more
+
+
+
+
+
+
+
+
+
Zero Knowledge
+
+ Every tool provided by Cryptpad are based on a Zero Knowledge technology. It means that our server stored only encrypted data, and we have no way to decrypt it. Even data about your account, including your username, are encrypted.
+
+
+
+
+
+
+
+
Realtime
+
+ Our tools also use a Realtime technology, which means that you can edit the documents, slides or polls collaboratively with other people. Our unique technology has the advantage of combining both realtime and zero-knowledge at the same time.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Share documents
+
+ When you want to edit a document with other users or invite them to answer to a poll, you just have to share the URL of that document with them. All the information needed to access and edit it are contained in the "hash" of the URL.
+
+
+
+
+
+
+
+
User Account
+
+ In order to have Zero Knowledge user accounts, we needed a way to store your settings without knowing your username and password. To do so, our tools generate a unique key from your username and password, directly in your browser.
+
+
+
+
+
+
+
+
+
+ Try it out!
+
+
+
+
+
+
+
+ Rich Text editor
+
+
+
+ Edit rich text documents collaboratively with our realtime Zero Knowledge CkEditor application.
+
+
+
+
+
+
+ Code editor
+
+
+
+ Edit code from your software collaboratively with our realtime Zero Knowledge CodeMirror application.
+
+
+
+
+
+
+ Slide editor
+
+
+
+ Create your presentations using the Markdown syntax with our CryptSlide application, and display them in your browser.
+
+
+
+
+
+
+ Polls
+
+
+
+ Plan your meeting or your event, or vote for the best solution regarding your problem using our poll application.
+
+
+
+
+
+
+
+
-
-
-
-
diff --git a/customize.dist/src/fragments/privacy.html b/customize.dist/src/fragments/privacy.html
index f312e01c7..e489d7025 100644
--- a/customize.dist/src/fragments/privacy.html
+++ b/customize.dist/src/fragments/privacy.html
@@ -1,3 +1,4 @@
+
diff --git a/customize.dist/src/fragments/terms.html b/customize.dist/src/fragments/terms.html
index ed187fe05..11ae1c512 100644
--- a/customize.dist/src/fragments/terms.html
+++ b/customize.dist/src/fragments/terms.html
@@ -1,3 +1,4 @@
+
diff --git a/customize.dist/src/fragments/topbar.html b/customize.dist/src/fragments/topbar.html
new file mode 100644
index 000000000..efe184864
--- /dev/null
+++ b/customize.dist/src/fragments/topbar.html
@@ -0,0 +1,23 @@
+
diff --git a/customize.dist/src/less/alertify.less b/customize.dist/src/less/alertify.less
index 957bacfca..8add4bc13 100644
--- a/customize.dist/src/less/alertify.less
+++ b/customize.dist/src/less/alertify.less
@@ -6,7 +6,7 @@
.alertify-logs {
> * {
padding: @padding-base @padding-base * 4;
- color: @fore;
+ color: @alertify-fore;
font-weight: bold;
font-size: large;
@@ -30,6 +30,7 @@
.alertify {
position: fixed;
background-color: @alertify-bg;
+ color: @alertify-fg;
left: 0;
right: 0;
top: 0;
@@ -128,7 +129,7 @@
cursor: pointer;
color: @alertify-btn-fg;
- border: 1px solid @base;
+ border: 1px solid @alertify-base;
border-radius: 5px;
&:hover, &:active {
@@ -136,7 +137,7 @@
}
&:focus {
- border: 1px dotted @base;
+ border: 1px dotted @alertify-base;
}
&::-moz-focus-inner {
border:0;
diff --git a/customize.dist/src/less/cryptpad.less b/customize.dist/src/less/cryptpad.less
index 7cf8f395a..4efb0e5bf 100644
--- a/customize.dist/src/less/cryptpad.less
+++ b/customize.dist/src/less/cryptpad.less
@@ -5,6 +5,7 @@
@import "./bar.less";
@import "./loading.less";
@import "./dropdown.less";
+@import "./topbar.less";
html.cp, .cp body {
font-size: .875em;
@@ -12,16 +13,17 @@ html.cp, .cp body {
color: @fore;
font-family: Georgia,Cambria,serif;
- height: 100;
+ height: 100%;
}
.cp:not(.poll) {
- #language-selector {
+ /*#language-selector {
position: absolute;
- top: 0px;
+ top: @topbar-height;
right: 0px;
display: inline-block;
- }
+ z-index: 2;
+ }*/
}
.cp {
@@ -30,11 +32,12 @@ body {
font-size: 1rem;
font-weight: 400;
line-height: 2rem;
+ margin: 0;
}
a.github-corner > svg {
fill: @cp-blue;
- color: @base;
+ color: @old-base;
}
.lato {
@@ -97,11 +100,11 @@ h6 {
a {
cursor: pointer;
- color: @cp-green;
+ color: @cp-darkblue;
text-decoration: none;
&:hover {
- color: @cp-accent;
+ color: @cp-accent2;
}
}
@@ -123,12 +126,298 @@ p, pre, td, a, table, tr {
.lato;
}
+body.html {
+}
+
+// Main page
+.page {
+ width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+ background: #fff; //@base;
+ padding: 10px 0;//@main-border-width;
+ position: relative;
+
+ .info-container {
+ width: 900px;
+ max-width: 100%;
+ margin: 0 auto;
+ &>div{
+ padding: 10px;
+ width: 400px;
+ max-width: 100%;
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ &:not(.image) {
+ @media screen and (max-width: @media-not-big) {
+ width: 100%;
+ left: 0;
+ }
+ }
+ &.image {
+ text-align: center;
+ @media screen and (max-width: @media-not-big) {
+ display: none;
+ }
+ }
+ }
+ }
+
+ &.first {
+ //margin-top: ~"min(calc(100vh - 150px), 650px)";
+ @media screen and (max-width: @media-not-big) {
+ //margin-top: 0;
+ }
+ }
+ &.even {
+ //background: darken(@base, 1%);
+ }
+ &.category {
+ background: darken(@base, 3%);
+ }
+
+ .app {
+ display: inline-block;
+ width: 300px;
+ vertical-align: middle;
+ margin: 0px 25px;
+ white-space: normal;
+ max-width: ~"calc(50% - 50px)";
+ @media screen and (max-width: 500px) {
+ display: block;
+ max-width: 100%;
+ margin: 0 auto;
+ }
+ }
+ .app-container {
+ width: 1400px;
+ max-width: 100%;
+ margin: 0 auto;
+ }
+ .app-row {
+ display: inline-block;
+ white-space: nowrap;
+ width: 700px;
+ max-width: 100%;
+ margin: 0 auto;
+ @media screen and (max-width: 1399px) {
+ display: block;
+ }
+ img {
+ @media screen and (max-width: @media-not-big) {
+ display: none;
+ }
+ }
+ }
+
+ .left {
+ //left: 10%; //@main-border-width;
+ }
+ .right {
+ left: 100px; //@main-border-width;
+ }
+
+ h1, h2, h3, h4, h5, h6 {
+ padding: 0;
+ }
+
+ @media screen and (max-width: @media-not-big) {
+ padding: 10px 5vh;
+ }
+
+ p {
+ font-size: 18px;
+ text-align: justify;
+ }
+}
+
+.btn-default {
+ &:hover {
+ background-color: #d8d8d8;
+ }
+}
#main {
- width: 70vw;
+ background-image: url('/customize/bg3.jpg');
+ background-size: cover;
+ background-position: center center;
+}
+#main_other {
+ padding: 0 @main-border-width;
+}
+#main, #main_other {
+ #overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #000;
+ opacity: 0.3;
+ }
+ position: relative;
+ left: 0;
+ right: 0;
+ //padding: 0;
+ height: ~"calc(100vh - 150px)";
+ min-height: 450px;
margin: auto;
+ //margin-top: 100px;
font-size: medium;
- padding-bottom: 1em;
+
+ #main-container {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%);
+ margin-left: auto;
+ margin-right: auto;
+ display: inline-block;
+ width: 1000px;
+ max-width: 90%;
+ }
+
+ #data {
+ p {
+ margin: 0;
+ padding: 0;
+ font-size: 20px;
+ line-height: 1.5em;
+ }
+ h2 {
+ font-weight: normal;
+ font-size: 48px;
+ line-height: 1.2em;
+ color: @main-color;
+ }
+ h5 {
+ font-size: 1em;
+ color: @main-color;
+ }
+ width: 600px;
+ max-width: 60%;
+ color: @main-color;
+ padding: 15px;
+ box-sizing: border-box;
+ position: absolute;
+ display: inline-block;
+ top: 50%;
+ left: 0;
+ transform: translateY(-50%);
+ //width: ~"calc(100% - 450px - 30vw)";
+ //background-color: @main-block-bg;
+
+ #tryit {
+ margin-top: 20px;
+ margin-bottom: 5px;
+ }
+ }
+
+ #userForm {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ margin-left: 50px;
+ display: inline-block;
+ width: 350px;
+ max-width: 35%;
+ //background-color: @main-block-bg;
+ padding: 10px;
+ box-sizing: border-box;
+ font-family: lato, Helvetica, sans-serif;
+ color: @main-color;
+
+ h1 {
+ color: @main-color;
+ padding: 0;
+ }
+
+ [type="text"], [type="password"] {
+ width: 100%;
+ }
+
+ label {
+ margin-bottom: 0;
+ //margin-top: 0.5em;
+ }
+ /*.remember {
+ vertical-align: middle;
+ line-height: 28px;
+ height: 28px;
+ display: inline-block;
+ margin: 10px 0 20px 0;
+ }
+
+
+ [type="checkbox"] {
+ vertical-align: text-top;
+ margin: 0;
+ //margin-top: 10px;
+ margin-right: 5px;
+ }
+ */
+ [type="checkbox"] {
+ margin-right: 5px;
+ }
+
+ button {
+ font-weight: bold;
+ width: 100%;
+ margin: 2px 0px;
+ cursor: pointer;
+ &.half {
+ width: ~"calc(50% - 4px)";
+ &:not(.first) {
+ float: right;
+ }
+ }
+ }
+ }
+ #main-container {
+ @media screen and (max-width: @media-not-big) {
+ transform: initial;
+ position: relative;
+ display: block;
+ width: 90%;
+ left: 0;
+ }
+ }
+ #userForm, #data {
+ @media screen and (max-width: @media-not-big) {
+ transform: initial;
+ position: relative;
+ display: block;
+ width: 100%;
+ max-width: 100%;
+ margin: 10px 0;
+ box-sizing: border-box;
+ }
+ }
+ #userForm {
+ @media screen and (max-width: @media-not-big) {
+ border: 1px solid #888;
+ }
+ }
+ @media screen and (max-width: @media-not-big) {
+ position: relative;
+ height: auto;
+ //background: #aaa;
+ top: -10px;
+ }
+
+ .buttons {
+ margin-top: 15px;
+ }
+}
+p.buttons, div.buttons {
+ text-align: center;
+ button {
+ font-weight: bold;
+ cursor: pointer;
+ margin-top: 10px;
+ }
}
#fileManagerIframe {
@@ -139,27 +428,22 @@ p, pre, td, a, table, tr {
/* buttons */
-// home page button container
-.buttons {
- margin-bottom: 50px;
- margin-top: 20px;
- line-height: 2.5em;
-}
-
.create, .action {
display: inline-block;
@thick: 2px;
- border: @thick solid @cp-green;
- background-color: @base;
- color: @cp-green;
+ //border: @thick solid @cp-darkblue;
+ border: 0;
+ background-color: @cp-darkblue;
+ color: @topbar-button-color;
font-weight: bold;
font-size: large;
margin-right: 5px;
margin-left: 5px;
&:hover {
- border: @thick solid @cp-accent;
- color: @cp-green;
+ color: darken(@topbar-button-color, 20%);
+ //border: @thick solid @cp-accent2;
+ //color: @cp-darkblue;
}
}
@@ -168,15 +452,16 @@ p, pre, td, a, table, tr {
@vpad: 2 * 2px;
padding: @vpad @hpad @vpad @hpad;
- margin-top: 2 * 6px;
- margin-bottom: 2 * 6px;
+ //margin-top: 2 * 6px;
+ //margin-bottom: 2 * 6px;
+ margin: 2px 0;
display: inline-block;
line-height: 1.5em;
}
// currently only used in /user/
.panel {
- background-color: #333;
+ background-color: @dark-base;
}
/* Tables
@@ -188,7 +473,7 @@ table {
margin: 20px;
}
tbody {
- border: 2px solid black;
+ border: 1px solid @poll-border-color;
tr {
text-align: center;
&:first-of-type th{
@@ -212,7 +497,7 @@ tbody {
}
th {
box-sizing: border-box;
- border: 1px solid black;
+ border: 1px solid @poll-border-color;
}
th, td {
color: @fore;
@@ -227,7 +512,7 @@ tbody {
}
td {
- border-right: 1px solid black;
+ border-right: 1px solid @poll-border-color;
padding: 12px;
padding-top: 0px;
padding-bottom: 0px;
@@ -292,7 +577,7 @@ form.realtime, div.realtime {
border: 0px;
&[disabled] {
background-color: transparent;
- color: @fore;
+ color: @poll-fg;
font-weight: bold;
}
}
@@ -330,7 +615,7 @@ form.realtime, div.realtime {
font-weight: bold;
background-color: @cp-red;
- color: @base;
+ color: @poll-cover-color;
&:after {
height: 100%;
@@ -371,7 +656,7 @@ form.realtime, div.realtime {
thead {
td {
padding: 0px 5px;
- background: @less-light-base;
+ background: @poll-th-bg;
border-radius: 20px 20px 0 0;
text-align: center;
input {
@@ -379,7 +664,7 @@ form.realtime, div.realtime {
width: 100%;
box-sizing: border-box;
&[disabled] {
- color: white;
+ color: @poll-fg;
padding: 1px 5px;
border: none;
}
@@ -390,7 +675,7 @@ form.realtime, div.realtime {
tbody {
.text-cell {
- background: @less-light-base;
+ background: @poll-td-bg;
//border-radius: 20px 0 0 20px;
input[type="text"] {
width: ~"calc(100% - 50px)";
@@ -404,6 +689,11 @@ form.realtime, div.realtime {
margin: 0 0 0 10px;
}
}
+ td {
+ label {
+ border: .5px solid @poll-border-color;
+ }
+ }
}
.edit {
color: @cp-green;
@@ -557,6 +847,10 @@ div.modal, div#modal {
h5 { .size(2.2); }
h6 { .size(1.6); }
+ h1, h2, h3, h4, h5, h6 {
+ color: inherit;
+ }
+
pre > code {
display: block;
position: relative;
@@ -585,7 +879,7 @@ div.modal, div#modal {
height: 100vh;
display: none;
- background-color: @base;
+ background-color: @slide-default-bg;
.center {
position: relative;
diff --git a/customize.dist/src/less/dropdown.less b/customize.dist/src/less/dropdown.less
index 80fb08bff..35714a50c 100644
--- a/customize.dist/src/less/dropdown.less
+++ b/customize.dist/src/less/dropdown.less
@@ -26,7 +26,7 @@
display: none;
position: absolute;
background-color: #f9f9f9;
- min-width: 160px;
+ min-width: 200px;
box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.2);
z-index: 1000;
max-height: 300px;
diff --git a/customize.dist/src/less/loading.less b/customize.dist/src/less/loading.less
index bf719e587..fefc533fe 100644
--- a/customize.dist/src/less/loading.less
+++ b/customize.dist/src/less/loading.less
@@ -6,6 +6,7 @@
left: 0px;
right: 0px;
background: @bg-loading;
+ color: @color-loading;
text-align: center;
font-size: 1.5em;
.loadingContainer {
diff --git a/customize.dist/src/less/topbar.less b/customize.dist/src/less/topbar.less
new file mode 100644
index 000000000..b08f2ec41
--- /dev/null
+++ b/customize.dist/src/less/topbar.less
@@ -0,0 +1,67 @@
+@import "./variables.less";
+
+#cryptpadTopBar {
+ background: @topbar-back;
+ position: relative;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: @topbar-height;
+ color: @topbar-color;
+ font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ padding: 5px;
+ box-sizing: border-box;
+ font-size: 30px;
+
+ &> span {
+ vertical-align: middle;
+ display: inline-block;
+ height: 100%;
+ }
+ .cryptpad-logo {
+ height: 40px;
+ vertical-align: middle;
+ }
+
+ .slogan {
+ font-size: 20px;
+ color: @topbar-color;
+ line-height: 40px;
+ }
+
+ .gotoMain {
+ color: @topbar-color;
+ height: 40px;
+ line-height: 40px;
+ &:hover {
+ text-decoration: none;
+ color: #558;
+ }
+ }
+
+ .right {
+ float: right;
+ font-size: 20px;
+ margin: 0px 10px;
+ line-height: 40px;
+
+ a {
+ font-weight: 500;
+ font-size: 0.75em;
+ color: #558;
+
+ &:hover {
+ text-decoration: none;
+ color: #000;
+ }
+/* text-align: center;
+ min-width: 100px;
+ font-weight: bold;
+ height: 70px;
+ padding: 0 10px;
+ line-height: 70px;
+ display: inline-block;
+ color: @topbar-button-color;*/
+ }
+ }
+}
diff --git a/customize.dist/src/less/variables.less b/customize.dist/src/less/variables.less
index eb5df4636..de2539fd8 100644
--- a/customize.dist/src/less/variables.less
+++ b/customize.dist/src/less/variables.less
@@ -1,12 +1,17 @@
-@base: #302B28;
+@base: #fff; //#f5f5f5;
+@dark-base: darken(@base, 20%);
+@less-dark-base: darken(@base, 10%);
@light-base: lighten(@base, 20%);
@less-light-base: lighten(@base, 10%);
-@fore: #fafafa;
+@fore: #555;
+@old-base: #302B28;
+@old-fore: #fafafa;
@cp-green: #46E981;
@cp-accent: lighten(@cp-green, 20%);
-@cp-red: #FF0073; // remove red
+//@cp-red: #FF0073; // remove red
+@cp-red: #FA5858; // remove red
@cp-outline: #444;
@cp-orange: #FE9A2E;
@@ -27,20 +32,33 @@
@text-color: rgba(0, 0, 0, .8);
@border-radius: 1px;
+@alertify-fore: @old-fore;
+@alertify-base: @old-base;
+
@alertify-dialog-bg: #444;
-@alertify-dialog-fg: @fore;
+@alertify-dialog-fg: @old-fore;
-@alertify-btn-fg: @fore;
+@alertify-btn-fg: @old-fore;
@alertify-btn-bg: rgba(200, 200, 200, 0.05);
@alertify-btn-bg-hover: rgba(200, 200, 200, .15);
@alertify-bg: rgba(0, 0, 0, .3);
+@alertify-fg: @old-fore;
@alertify-input-bg: @base;
@alertify-input-fg: @fore;
-@bg-loading: @base;
+@slide-default-bg: #000;
+
+@poll-th-bg: #aaa;
+@poll-td-bg: #aaa;
+@poll-border-color: #555;
+@poll-cover-color: #000;
+@poll-fg: #000;
+
+@bg-loading: @old-base;
+@color-loading: @old-fore;
@media-not-big: 800px;
@media-not-small: 801px;
@@ -51,3 +69,15 @@
@toolbar-gradient-start: #f5f5f5;
@toolbar-gradient-end: #DDDDDD;
+@topbar-back: #fff;
+@topbar-color: #000;
+@topbar-button-bg: #2E9AFE;
+@topbar-button-color: #fff;
+@topbar-height: 50px;
+
+@main-border-width: 15vw;
+@cp-darkblue: #3333ff;
+@cp-accent2: darken(@cp-darkblue, 20%);
+
+@main-block-bg: rgba(200, 200, 200, 0.3);
+@main-color: #fff;
diff --git a/customize.dist/src/template.html b/customize.dist/src/template.html
index 48ad32103..cb4f7cfad 100644
--- a/customize.dist/src/template.html
+++ b/customize.dist/src/template.html
@@ -3,9 +3,12 @@
Cryptpad: Zero Knowledge, Collaborative Real Time Editing
+
+
+
-
- {{fork}}
-
-
-
-
-{{logo}}
+
+ {{topbar}}
{{noscript}}
{{main}}
-
diff --git a/customize.dist/terms.html b/customize.dist/terms.html
index e4e4e1e2a..246abf60d 100644
--- a/customize.dist/terms.html
+++ b/customize.dist/terms.html
@@ -3,9 +3,12 @@
Cryptpad: Zero Knowledge, Collaborative Real Time Editing
+
+
+
-
-
-
+
+
diff --git a/customize.dist/toolbar.css b/customize.dist/toolbar.css
index a169fb4ce..f2caf1d80 100644
--- a/customize.dist/toolbar.css
+++ b/customize.dist/toolbar.css
@@ -13,7 +13,7 @@
display: none;
position: absolute;
background-color: #f9f9f9;
- min-width: 160px;
+ min-width: 200px;
box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.2);
z-index: 1000;
max-height: 300px;
@@ -391,7 +391,7 @@
background-color: #46E981;
}
.lag-red {
- background-color: #FF0073;
+ background-color: #FA5858;
}
.lag-orange {
background-color: #FE9A2E;
diff --git a/customize.dist/translations/messages.fr.js b/customize.dist/translations/messages.fr.js
index 8f3d1881d..cf097ed36 100644
--- a/customize.dist/translations/messages.fr.js
+++ b/customize.dist/translations/messages.fr.js
@@ -279,7 +279,8 @@ define(function () {
// index.html
- out.main_p1 = 'CryptPad est l\'éditeur collaboratif en temps réel zero knowledge . Le chiffrement est effectué depuis votre navigateur, ce qui protège les données contre le serveur, le cloud, et la NSA. La clé de chiffrement est stockée dans l\'identifieur de fragment de l\'URL qui n\'est jamais envoyée au serveur mais est accessible depuis javascript, de sorte qu\'en partageant l\'URL, vous donnez l\'accès au pad à ceux qui souhaitent participer.';
+ //out.main_p1 = 'CryptPad est l\'éditeur collaboratif en temps réel zero knowledge . Le chiffrement est effectué depuis votre navigateur, ce qui protège les données contre le serveur, le cloud, et la NSA. La clé de chiffrement est stockée dans l\'identifieur de fragment de l\'URL qui n\'est jamais envoyée au serveur mais est accessible depuis javascript, de sorte qu\'en partageant l\'URL, vous donnez l\'accès au pad à ceux qui souhaitent participer.';
+ out.main_p1 = "Collaborez en tout confiance Développez vos idées collaborativement grâce à des documents partagés en temps-réel, tout en gardant vos données personnelles invisibles, même pour nous, avec la technologie Zero Knowledge .";
out.main_p2 = 'Ce projet utilise l\'éditeur visuel (WYSIWYG) CKEditor , l\'éditeur de code source CodeMirror , et le moteur temps-réel ChainPad .';
out.main_howitworks = 'Comment ça fonctionne';
out.main_howitworks_p1 = 'CryptPad utilise une variante de l\'algorithme d\'Operational transformation qui est capable de trouver un consensus distribué en utilisant une chaîne de bloc Nakamoto , un outil popularisé par le Bitcoin . De cette manière, l\'algorithme évite la nécessité d\'utiliser un serveur central pour résoudre les conflits d\'édition de l\'Operational Transformation, et sans ce besoin de résolution des conflits le serveur peut rester ignorant du contenu qui est édité dans le pad.';
diff --git a/customize.dist/translations/messages.js b/customize.dist/translations/messages.js
index dff57764f..970f47a15 100644
--- a/customize.dist/translations/messages.js
+++ b/customize.dist/translations/messages.js
@@ -276,7 +276,10 @@ define(function () {
// index.html
- out.main_p1 = 'CryptPad is the zero knowledge realtime collaborative editor. Encryption carried out in your web browser protects the data from the server, the cloud, and the NSA. The secret encryption key is stored in the URL fragment identifier which is never sent to the server but is available to javascript so by sharing the URL, you give authorization to others who want to participate.';
+ //out.main_p1 = 'CryptPad is the zero knowledge realtime collaborative editor. Encryption carried out in your web browser protects the data from the server, the cloud, and the NSA. The secret encryption key is stored in the URL fragment identifier which is never sent to the server but is available to javascript so by sharing the URL, you give authorization to others who want to participate.';
+ //out.main_p1 = "Type quick documents with friends and colleagues. With Zero Knowledge technology, the server doesn't know what you're doing.";
+ out.main_p1 = "Collaborate in Confidence Grow your ideas together with shared documents while Zero Knowledge technology secures your privacy; even from us.";
+
out.main_p2 = 'This project uses the CKEditor Visual Editor, CodeMirror , and the ChainPad realtime engine.';
out.main_howitworks = 'How It Works';
out.main_howitworks_p1 = 'CryptPad uses a variant of the Operational transformation algorithm which is able to find distributed consensus using a Nakamoto Blockchain , a construct popularized by Bitcoin . This way the algorithm can avoid the need for a central server to resolve Operational Transform Edit Conflicts and without the need for resolving conflicts, the server can be kept unaware of the content which is being edited on the pad.';
diff --git a/server.js b/server.js
index 6414c83bc..548a78949 100644
--- a/server.js
+++ b/server.js
@@ -46,7 +46,7 @@ Fs.exists(__dirname + "/customize", function (e) {
// FIXME I think this is a regression caused by a recent PR
// correct this hack without breaking the contributor's intended behaviour.
-var mainPages = config.mainPages || ['index', 'privacy', 'terms', 'about'];
+var mainPages = config.mainPages || ['index', 'privacy', 'terms', 'about', 'contact'];
var mainPagePattern = new RegExp('^\/(' + mainPages.join('|') + ').html$');
app.get(mainPagePattern, Express.static(__dirname + '/customize.dist'));
diff --git a/www/drive/file.css b/www/drive/file.css
index 42d478f18..f406bf4c7 100644
--- a/www/drive/file.css
+++ b/www/drive/file.css
@@ -54,6 +54,10 @@ li {
display: none;
position: absolute;
}
+.contextMenu li {
+ padding: 0;
+ font-size: 16px;
+}
.droppable {
background-color: #FE9A2E;
color: #222;
diff --git a/www/drive/file.less b/www/drive/file.less
index 5d7fd2edf..20b7175ca 100644
--- a/www/drive/file.less
+++ b/www/drive/file.less
@@ -79,6 +79,10 @@ li {
.contextMenu {
display: none;
position: absolute;
+ li {
+ padding: 0;
+ font-size: 16px;
+ }
}
.droppable {
diff --git a/www/drive/inner.html b/www/drive/inner.html
index dc82c7ee2..421443c4e 100644
--- a/www/drive/inner.html
+++ b/www/drive/inner.html
@@ -19,38 +19,38 @@
diff --git a/www/poll/index.html b/www/poll/index.html
index ab78be2f5..64d47c816 100644
--- a/www/poll/index.html
+++ b/www/poll/index.html
@@ -49,11 +49,6 @@
font: white;
border: 0px;
}
-
- td label {
- border: .5px solid black;
- }
-
table#table {
margin: 0px;
}
@@ -101,7 +96,7 @@
}
#description[disabled] {
resize: none;
- color: #bbb;
+ color: #000;
border: 1px solid #444;
}
diff --git a/www/poll/main.js b/www/poll/main.js
index 49835a13a..3a39da091 100644
--- a/www/poll/main.js
+++ b/www/poll/main.js
@@ -788,7 +788,7 @@ define([
Cryptpad.getAttribute(HIDE_INTRODUCTION_TEXT, function (e, value) {
if (e) { console.error(e); }
- if (value === null) {
+ if (!value) {
Cryptpad.setAttribute(HIDE_INTRODUCTION_TEXT, "1", function (e) {
if (e) { console.error(e); }
});