From 76b5b575fc779fa0420267c3cb65ef3d6c2e5da5 Mon Sep 17 00:00:00 2001 From: gauthiier Date: Thu, 2 Dec 2021 20:44:00 +0100 Subject: [PATCH] skin --- .gitignore | 3 + Makefile | 18 + pppad-skin/images/le-fond.png | Bin 0 -> 47397 bytes pppad-skin/images/screenshot.png | Bin 0 -> 97715 bytes pppad-skin/index.css | 88 +++ pppad-skin/index.js | 7 + pppad-skin/pad.css | 70 +++ pppad-skin/pad.js | 7 + pppad-skin/src/components/buttons.css | 25 + pppad-skin/src/components/chat.css | 91 +++ pppad-skin/src/components/form.css | 117 ++++ pppad-skin/src/components/gritter.css | 82 +++ pppad-skin/src/components/import-export.css | 17 + pppad-skin/src/components/popup.css | 83 +++ pppad-skin/src/components/scrollbars.css | 41 ++ pppad-skin/src/components/sidediv.css | 31 + .../src/components/table-of-content.css | 21 + pppad-skin/src/components/toolbar.css | 154 +++++ pppad-skin/src/components/users.css | 52 ++ pppad-skin/src/general.css | 11 + pppad-skin/src/layout.css | 48 ++ pppad-skin/src/pad-editor.css | 5 + pppad-skin/src/pad-variants.css | 228 +++++++ pppad-skin/src/plugins/author_hover.css | 10 + pppad-skin/src/plugins/brightcolorpicker.css | 14 + pppad-skin/src/plugins/comments.css | 112 ++++ pppad-skin/src/plugins/font_color.css | 41 ++ pppad-skin/src/plugins/set_title_on_pad.css | 7 + pppad-skin/src/plugins/tables2.css | 239 +++++++ pppad-skin/timeslider.css | 98 +++ pppad-skin/timeslider.js | 4 + pppad.settings.json.docker | 591 ++++++++++++++++++ 32 files changed, 2315 insertions(+) create mode 100644 Makefile create mode 100644 pppad-skin/images/le-fond.png create mode 100644 pppad-skin/images/screenshot.png create mode 100644 pppad-skin/index.css create mode 100644 pppad-skin/index.js create mode 100644 pppad-skin/pad.css create mode 100644 pppad-skin/pad.js create mode 100644 pppad-skin/src/components/buttons.css create mode 100644 pppad-skin/src/components/chat.css create mode 100644 pppad-skin/src/components/form.css create mode 100644 pppad-skin/src/components/gritter.css create mode 100644 pppad-skin/src/components/import-export.css create mode 100644 pppad-skin/src/components/popup.css create mode 100644 pppad-skin/src/components/scrollbars.css create mode 100644 pppad-skin/src/components/sidediv.css create mode 100644 pppad-skin/src/components/table-of-content.css create mode 100644 pppad-skin/src/components/toolbar.css create mode 100644 pppad-skin/src/components/users.css create mode 100644 pppad-skin/src/general.css create mode 100644 pppad-skin/src/layout.css create mode 100644 pppad-skin/src/pad-editor.css create mode 100644 pppad-skin/src/pad-variants.css create mode 100644 pppad-skin/src/plugins/author_hover.css create mode 100644 pppad-skin/src/plugins/brightcolorpicker.css create mode 100644 pppad-skin/src/plugins/comments.css create mode 100644 pppad-skin/src/plugins/font_color.css create mode 100644 pppad-skin/src/plugins/set_title_on_pad.css create mode 100644 pppad-skin/src/plugins/tables2.css create mode 100644 pppad-skin/timeslider.css create mode 100644 pppad-skin/timeslider.js create mode 100644 pppad.settings.json.docker diff --git a/.gitignore b/.gitignore index 758ea31..97a61c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# -- etherpad +etherpad-lite/ + # ---> macOS *.DS_Store .AppleDouble diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..94bff5b --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +#makefile + +all: skin docker-build + +docker-settings: + cp pppad.settings.json.docker etherpad-lite/settings.json.docker + +skin: + cp -r pppad-skin etherpad-lite/src/static/skins/pppad + +docker-build: docker-settings + docker build --tag gauthiier/pppad etherpad-lite/ + + + +clean: + rm -Rf etherpad-lite/src/static/skins/pppad + docker image rm gauthiier/pppad \ No newline at end of file diff --git a/pppad-skin/images/le-fond.png b/pppad-skin/images/le-fond.png new file mode 100644 index 0000000000000000000000000000000000000000..abeaa6344f90ebb087758f02e98e0b6c8c8ce0a8 GIT binary patch literal 47397 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 OTi(0dX_vsBdGQ}H8mdD8 literal 0 HcmV?d00001 diff --git a/pppad-skin/images/screenshot.png b/pppad-skin/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d461192f696ebc820809114849439af8d9d0039d GIT binary patch literal 97715 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

@lD+%4YDth$A*NJNY1b{$#6JBFL5%{Ww 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 { + // define your javascript here + // jquery is available - except index.js + // you can load extra scripts with $.getScript http://api.jquery.com/jQuery.getScript/ +}; diff --git a/pppad-skin/pad.css b/pppad-skin/pad.css new file mode 100644 index 0000000..a12bec3 --- /dev/null +++ b/pppad-skin/pad.css @@ -0,0 +1,70 @@ +@import url("src/general.css"); +@import url("src/layout.css"); +@import url("src/pad-editor.css"); + +@import url("src/components/scrollbars.css"); +@import url("src/components/buttons.css"); +@import url("src/components/popup.css"); + +@import url("src/components/chat.css"); +@import url("src/components/sidediv.css"); +@import url("src/components/gritter.css"); +@import url("src/components/table-of-content.css"); +@import url("src/components/toolbar.css"); +@import url("src/components/users.css"); +@import url("src/components/form.css"); +@import url("src/components/import-export.css"); + +@import url("src/plugins/brightcolorpicker.css"); +@import url("src/plugins/font_color.css"); +@import url("src/plugins/tables2.css"); +@import url("src/plugins/set_title_on_pad.css"); +@import url("src/plugins/author_hover.css"); +@import url("src/plugins/comments.css"); + +@import url("src/pad-variants.css"); + +/* ----------------------------------------------------------------- + * COLORS + * If you want to change main colors, please replace following CSS variables + * ----------------------------------------------------------------- + */ + +:root { + --super-dark-color: #485365; /*#374256;*/ + --dark-color: #576273; /*#4d5d77*/ + + --primary-color: #64d29b; + --middle-color: #d2d2d2; /* kind of grey, use for border for examples */ + + --light-color: #f2f3f4; /*#f9f9f9;*/ + --super-light-color: white; + + --text-color: var(--super-dark-color); + --text-soft-color: var(--dark-color); + --border-color: var(--middle-color); + --bg-soft-color: var(--light-color); + --bg-color: var(--super-light-color); + + --toolbar-border: none; + + --main-font-family: Quicksand, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + + /* Those padding like an external padding. Basic padding of 15px is always applied */ + --editor-horizontal-padding: 40px; + --editor-vertical-padding: 25px; +} + +@media (max-width:1000px) { + :root { + --editor-horizontal-padding: 0px; + --editor-vertical-padding: 0px; + } +} + +/* Default scrollbar values */ +body { + --scrollbar-bg: var(--light-color); + --scrollbar-track: var(--super-light-color); + --scrollbar-thumb: var(--dark-color); +} diff --git a/pppad-skin/pad.js b/pppad-skin/pad.js new file mode 100644 index 0000000..1987f32 --- /dev/null +++ b/pppad-skin/pad.js @@ -0,0 +1,7 @@ +'use strict'; + +window.customStart = () => { + $('#pad_title').show(); + $('.buttonicon').mousedown(function () { $(this).parent().addClass('pressed'); }); + $('.buttonicon').mouseup(function () { $(this).parent().removeClass('pressed'); }); +}; diff --git a/pppad-skin/src/components/buttons.css b/pppad-skin/src/components/buttons.css new file mode 100644 index 0000000..9a34454 --- /dev/null +++ b/pppad-skin/src/components/buttons.css @@ -0,0 +1,25 @@ +button, .btn +{ + padding: 5px 20px; + border-radius: 4px; + line-height: 1.5; + width: auto; + border: none; + font-weight: bold; + text-transform: uppercase; + position: relative; + background: none; + cursor: pointer; +} + +.btn-primary +{ + background-color: #64d29b; + background-color: var(--primary-color); + color: #ffffff; + color: var(--bg-color); +} +.btn-default { + color: #485365; + color: var(--text-color); +} diff --git a/pppad-skin/src/components/chat.css b/pppad-skin/src/components/chat.css new file mode 100644 index 0000000..4e92342 --- /dev/null +++ b/pppad-skin/src/components/chat.css @@ -0,0 +1,91 @@ +#chatbox { + background-color: transparent !important; + color: var(--text-color); +} +.chat-content { + background: none; + padding: 0; + width: 400px; + height: 300px; + background-color: #f2f3f4; + background-color: var(--bg-soft-color); +} + +.chat-content, #chaticon { + box-shadow: 0 0 0 1px rgba(99, 114, 130, 0.16), 0 8px 16px rgba(27, 39, 51, 0.08); + border: none; +} + +#chaticon { + padding: 10px 20px; + background-color: #f2f3f4; + background-color: var(--bg-soft-color); + color: #485365; + color: var(--text-color); + right: 30px; +} + +#chatbox.stickyChat .chat-content { + border: none; + box-shadow: none; + background-color: #f2f3f4; + background-color: var(--bg-soft-color); +} + +#titlebar { + bottom: 0; + line-height: 44px; + height: 44px; + padding: 0 7px; + z-index: 20000; +} + +#titlelabel, #chatlabel { + text-transform: uppercase; + font-weight: bold; +} + +#titlebar #titlelabel { font-size: 16px; } +#chatlabel { margin-right: 15px; } + +#chattext { + padding: 0; + border-top: 1px solid #ffffff; + border-top: 1px solid var(--bg-color); + border-bottom: 1px solid #ffffff; + border-bottom: 1px solid var(--bg-color); + background-color: inherit; + color: inherit; +} +#chattext p { + padding: 4px 10px; +} +#chattext:not(.authorColors) p:first-child { + padding-top: 10px; +} +#chattext:not(.authorColors) p:last-child { + padding-bottom: 10px; +} + +#chatinputbox { + padding: 8px; +} +#chatinputbox #chatinput { + background-color: #ffffff; + background-color: var(--bg-color); +} + +@media (prefers-reduced-motion) { + .chat-content { + transform: scale(1); + transition: none; + } +} + +@media (max-width: 800px) { + #chaticon { + right: 0; + } + + .stick-to-screen-btn { display: none; } +} diff --git a/pppad-skin/src/components/form.css b/pppad-skin/src/components/form.css new file mode 100644 index 0000000..8903c31 --- /dev/null +++ b/pppad-skin/src/components/form.css @@ -0,0 +1,117 @@ +input[type="text"], select, textarea, .nice-select { + border-radius: 3px; + box-shadow: none; + border: none; + outline: 0; +} + +input[type="text"], textarea { + padding: 8px 10px; + background-color: #f2f3f4; + background-color: var(--bg-soft-color); + border: none; + color: #485365; + color: var(--text-color); +} +input[type="text"]::placeholder, textarea::placeholder { + color: #576273; + color: var(--text-soft-color); +} +select, .nice-select { + background-color: #f2f3f4; + background-color: var(--bg-soft-color); + border: 1px solid var(--bg-soft-color); + padding: 4px 10px; + padding-right: 25px; + font-weight: bold; + line-height: inherit; +} +select:hover, .nice-select:hover { + border-color: var(--bg-soft-color) +} +.nice-select .list { + background-color: #f2f3f4; + background-color: var(--bg-soft-color); +} +.nice-select .option:hover,.nice-select .option.focus,.nice-select .option.selected.focus { + background-color: #ffffff; + background-color: var(--bg-color); +} +.nice-select .option { + padding: 0 15px; +} +.popup .nice-select .list { + right: 0; + left: auto; +} + + +/* Checkboxes + ========================================================================== */ +/* Remove default checkbox */ +[type="checkbox"]:not(:checked), +[type="checkbox"]:checked { + position: absolute; + opacity: 0; + pointer-events: none; +} + +[type="checkbox"] + label { + position: relative; + padding-left: 2.5rem; + cursor: pointer; + display: inline-block; + height: 1.4rem; + line-height: 1.4rem; + font-size: 1rem; +} + +[type="checkbox"] + label:before, +[type="checkbox"] + label:after { + content: ''; + position: absolute; + margin-top: 4px; + transition: all .2s ease-in-out; +} + +/* BEFORE, the container*/ +[type="checkbox"] + label:before { + width: 24px; + height: 14px; + top: 0; + left: 0; + border-radius: 6px; + border: 2px solid #576273; + border: 2px solid var(--text-soft-color); + background-color: #f2f3f4; + background-color: var(--bg-soft-color); + opacity: .7; +} +[type="checkbox"]:checked + label:before { + background-color: transparent; + border-color: #64d29b; + border-color: var(--primary-color); +} + +/* AFTER, the circle moving */ +[type="checkbox"] + label:after { + width: 16px; + height: 16px; + border-radius: 50%; + background-color: #576273; + background-color: var(--text-soft-color); + top: -1px; + left: -3px; +} +[type="checkbox"]:checked + label:after { + background-color: #64d29b; + background-color: var(--primary-color); + transform: translateX(14px); +} + +[type="checkbox"]:checked:disabled + label, +[type="checkbox"]:checked:disabled + label:before, +[type="checkbox"]:checked:disabled + label:after { + cursor: not-allowed; + opacity: .4; +} diff --git a/pppad-skin/src/components/gritter.css b/pppad-skin/src/components/gritter.css new file mode 100644 index 0000000..f0c8610 --- /dev/null +++ b/pppad-skin/src/components/gritter.css @@ -0,0 +1,82 @@ +.gritter-item:not(.error) .popup-content{ + background-color: #64d29b; + background-color: var(--primary-color); + color: #ffffff; + color: var(--super-light-color); +} +.gritter-item .popup-content { + padding: 15px; + box-shadow: 0 0 0 1px rgba(99, 114, 130, 0.16), 0 8px 16px rgba(27, 39, 51, 0.08); +} +#gritter-container.bottom .gritter-item .popup-content { + margin-top: 10px; +} +#gritter-container.top .gritter-item .popup-content { + margin-bottom: 10px; +} +.gritter-item p { + margin: 0 !important; +} +.gritter-item .gritter-title { + margin-bottom: 10px; +} +.gritter-item .gritter-close { + margin-left: 15px; + margin-right: 0px; +} +.gritter-item:not(.error) .gritter-close .buttonicon { + color: #ffffff; + color: var(--super-light-color); +} + +/* CHAT GRIITER ITEM */ +.gritter-item.chat-gritter-msg:not(.error) .popup-content { + background-color: white; + background-color: var(--bg-color); + color: #485365; + color: var(--text-color); +} +.gritter-item.chat-gritter-msg .gritter-content { + text-align: left; +} +.gritter-item.chat-gritter-msg .author-name { + font-weight: bold; + margin-right: 5px; +} +.gritter-item.chat-gritter-msg:not(.error) .gritter-close .buttonicon { + color: #485365; + color: var(--text-color); +} + +.gritter-item.saved-revision { + max-width: 600px; +} + +#gritter-container.top .gritter-item.popup > .popup-content { + transform: scale(0.8) translateY(-100px); +} +#gritter-container.bottom .gritter-item.popup > .popup-content { + transform: scale(0.8) translateY(0px); +} + +.gritter-item.popup.popup-show > .popup-content { + transform: scale(1) translateY(0) !important; + transition: all 0.4s cubic-bezier(0.74, -0.05, 0.27, 1.75) !important; +} +@media (prefers-reduced-motion) { + #gritter-container.top .gritter-item.popup > .popup-content { + transform: scale(1) translateY(0px) !important; + } + #gritter-container.bottom .gritter-item.popup > .popup-content { + transform: scale(1) translateY(0px) !important; + } + .gritter-item.popup.popup-show > .popup-content { + transform: scale(1) translateY(0px) !important; + transition: none; + } +} + +/* for ep_deleted_after_delay */ +.gritter-item #close_expiration_notif { + display: none; +} diff --git a/pppad-skin/src/components/import-export.css b/pppad-skin/src/components/import-export.css new file mode 100644 index 0000000..d8425d8 --- /dev/null +++ b/pppad-skin/src/components/import-export.css @@ -0,0 +1,17 @@ +#importmessageabiword { + font-style: italic; + color: #64d29b; + color: var(--primary-color); +} +#importmessageabiword > a { + font-weight: bold; + text-decoration: underline; + color: #64d29b; + color: var(--primary-color); +} + +#importmessagefail { + margin-top: 10px; +} + +#importsubmitinput[disabled] { opacity: .6; } \ No newline at end of file diff --git a/pppad-skin/src/components/popup.css b/pppad-skin/src/components/popup.css new file mode 100644 index 0000000..0fe67e5 --- /dev/null +++ b/pppad-skin/src/components/popup.css @@ -0,0 +1,83 @@ +.popup-content { + border-radius: 5px; + padding: 25px; + background: none; + background-color: #ffffff; + background-color: var(--bg-color); + color: #576273; + color: var(--text-soft-color); + border: none; + box-shadow: 0 0 0 1px rgba(99, 114, 130, 0.16), 0 8px 16px rgba(27, 39, 51, 0.08); +} + +#mycolorpicker, #users { + min-width: 0; +} + +.popup h1 { + margin-bottom: 20px; + font-size: 1.6rem; +} + +.popup h2 { + margin-bottom: 15px; + margin-top: 20px; + color: #485365; + color: var(--text-color); +} + +.popup:not(.comment-modal) p { + margin: 10px 0; +} + +.popup .dropdowns-container .dropdown-line { + margin-top: 15px; +} +.popup .dropdowns-container label { + width: 120px; + display: inline-block; +} +.popup .dropdowns-container .nice-select { + min-width: 180px; +} + +@media (prefers-reduced-motion) { + .popup>.popup-content { + transform: scale(1); + transition: none; + } + .nice-select .list { + transform: scale(1) translateY(0px); + -webkit-transform: scale(1) translateY(0px); + -ms-transform: scale(1) translateY(0px); + transition: none; + } +} + +@media (max-width: 800px) { + .popup-content { + padding: 1rem; + box-shadow: 0 0 0 1px rgba(99, 114, 130, 0.16), -1px 1px 16px 3px rgba(27, 39, 51, 0.12); + } + .popup .dropdowns-container select { + min-width: 0; + } +} + +/* SKIN Variants Popup */ +#skin-variants { + bottom: 0; + left: 0; + right: auto; + top: auto; +} +#skin-variants .popup-content > p { + margin-top: 25px; +} +#skin-variants-result{ + background-color: #f2f3f4; + background-color: var(--bg-soft-color); +} +.skin-variant-container { + text-transform: capitalize; +} diff --git a/pppad-skin/src/components/scrollbars.css b/pppad-skin/src/components/scrollbars.css new file mode 100644 index 0000000..85f942b --- /dev/null +++ b/pppad-skin/src/components/scrollbars.css @@ -0,0 +1,41 @@ +@media (min-width: 721px) { + ::-webkit-scrollbar-track { + background-color: white; + background-color: var(--scrollbar-track); + border-radius: 10px; + border: 7px solid #f2f3f4; + border: 7px solid var(--scrollbar-bg); + } + + ::-webkit-scrollbar { + width: 22px; + } + + ::-webkit-scrollbar-thumb { + min-height: 40px; + border-radius: 10px; + background-color: #576273; + background-color: var(--scrollbar-thumb); + border: 7px solid #f2f3f4; + border: 7px solid var(--scrollbar-bg); + } +} + +.thin-scrollbar::-webkit-scrollbar-track { + background-color: #f2f3f4; + background-color: var(--bg-soft-color); + border-radius: 0px; + border: none; +} + +.thin-scrollbar::-webkit-scrollbar { + width: 6px; +} + +.thin-scrollbar::-webkit-scrollbar-thumb { + border-radius: 0px; + min-height: 40px; + background-color: #d2d2d2; + background-color: var(--middle-color); + border: none; +} \ No newline at end of file diff --git a/pppad-skin/src/components/sidediv.css b/pppad-skin/src/components/sidediv.css new file mode 100644 index 0000000..c48d38f --- /dev/null +++ b/pppad-skin/src/components/sidediv.css @@ -0,0 +1,31 @@ +#sidediv { + background-color: transparent; + border: none; + opacity: .8; +} + +#sidedivinner>div:before { + font-family: var(--main-font-family); /* the parent div have font-family monospace (line number) */ + color: #485365; + color: var(--text-color); + font-weight: bold; +} + +#sidedivinner>div .line-number { + line-height: inherit; + font-family: RobotoMono; + display: inline-block; + color: #576273; + color: var(--text-soft-color); + height:100%; +} + +#sidedivinner>div .line-number:hover { + background-color: var(--bg-soft-color); + border-radius: 5px 0 0 5px; + font-weight: bold; + color: var(--text-color); +} +.plugin-ep_author_neat #sidedivinner>div .line-number:hover { + background-color: transparent; +} diff --git a/pppad-skin/src/components/table-of-content.css b/pppad-skin/src/components/table-of-content.css new file mode 100644 index 0000000..fd6c5ea --- /dev/null +++ b/pppad-skin/src/components/table-of-content.css @@ -0,0 +1,21 @@ +#toc { + padding: 20px 20px 10px 10px !important; + min-width: 146px !important; + background-color: transparent !important; + border: none !important; + order: -2; +} + +#tocItems { + line-height: 40px !important; +} + +.plugin-ep_resizable_bars #toc { + min-width: 186px !important; +} + +@media (max-width: 1200px) { + #toc { + padding-top: 10px !important + } +} \ No newline at end of file diff --git a/pppad-skin/src/components/toolbar.css b/pppad-skin/src/components/toolbar.css new file mode 100644 index 0000000..7f3e714 --- /dev/null +++ b/pppad-skin/src/components/toolbar.css @@ -0,0 +1,154 @@ +.toolbar { + border-bottom: none; + padding: 0; + background-color: #ffffff; + background-color: var(--bg-color); + color: #576273; + color: var(--text-soft-color); + border-bottom: none; +} + +#editbar.editor-scrolled { + border-bottom: 1px solid #d2d2d2; + border-bottom: var(--toolbar-border); +} + +.toolbar ul { + align-items: center; +} + +.toolbar ul.menu_left { + padding-left: 5px; +} + +.toolbar ul li { + margin: 7px 1px; +} + +.toolbar ul li a, .toolbar .buttonicon { + color: inherit; +} + +.toolbar .buttonicon { + background-color: transparent; + font-size: 15px; +} +.buttonicon-insertorderedlist:before, +.buttonicon-insertunorderedlist:before, +.buttonicon-indent:before, +.buttonicon-outdent:before { + font-size: 16px !important; +} + +.toolbar ul li.separator { + visibility: hidden; + width: 1px; + margin: 0 10px; + position: relative; +} + +.toolbar.condensed ul li { + margin-left: 0; +} + +.toolbar.condensed ul li.separator { + margin: 0 5px; +} + +.toolbar ul li a { + background-color: transparent; + background: none; + border: none; + border-radius: 3px !important; + transition: background-color .1s; +} + +.toolbar ul li a:hover, .toolbar ul li select:hover { + background-color: #f2f3f4; + background-color: var(--bg-soft-color); + color: #485365; + color: var(--text-color); +} +.toolbar ul li a.selected { + background-color: #f2f3f4; + background-color: var(--bg-soft-color); +} +.toolbar ul li a.pressed, +.toolbar ul li select:active { + color: #64d29b; + color: var(--primary-color); +} + +.toolbar ul li select:active option { + background-color: #ffffff; + background-color: var(--bg-color); + color: #576273; + color: var(--text-soft-color); + padding: 5px; +} + +.toolbar .menu_right li a.selected { + background-color: #576273; + background-color: var(--text-soft-color); + color: #ffffff; + color: var(--bg-color); +} + +.toolbar ul li[data-key=showusers] { + margin: 0; + margin-left: 15px; + width: 45px; + height: 100%; +} +.toolbar ul li[data-key=showusers] > a { + width: 100%; + height: 100%; + border-radius: 0 !important; +} + +.toolbar .menu_right .separator { + display: none; +} +.toolbar .menu_right li { + margin-left: 10px; +} + +.toolbar.cropped .menu_left { + height: 39px; + padding-top: 1px; +} +.toolbar .show-more-icon-btn { + font-size: 1.8rem; + color: #64d29b; + color: var(--primary-color); +} + +@media (max-width: 1000px) { + .toolbar ul li.separator { + margin: 0 5px; + background: none; + display: block; + } +} + +.mobile-layout .toolbar ul li { + margin: 5px 2px; +} +.mobile-layout .toolbar ul li.separator { + margin: 0 5px; +} +@media (max-width: 800px) { + .mobile-layout .toolbar ul li.separator { + display: none; + } +} +.mobile-layout .toolbar .menu_right { + border-top: 1px solid #d2d2d2; + border-top: var(--toolbar-border); + background-color: #ffffff; + background-color: var(--bg-color); + padding: 0; +} +.mobile-layout .toolbar ul li a:hover { + /* background-color: transparent; */ +} diff --git a/pppad-skin/src/components/users.css b/pppad-skin/src/components/users.css new file mode 100644 index 0000000..beb498e --- /dev/null +++ b/pppad-skin/src/components/users.css @@ -0,0 +1,52 @@ +table#otheruserstable { + margin-top: 20px; +} + +.popup#users.chatAndUsers > .popup-content { + padding: 20px 10px; + height: 250px; + border-left: none; + transition: none; + border-bottom-color: #d2d2d2; + border-bottom-color: var(--border-color); +} +.popup#users.chatAndUsers #mycolorpicker.popup { + right: calc(100% + 30px); + top: 15px; +} + +#otheruserstable .swatch { + border: none !important; + border-radius: 50%; + width: 18px; + height: 18px; + margin: 0; + margin-left: 1px; + margin-right: 15px; +} + +#myusernameform { + margin-left: 35px; +} + +input#myusernameedit { + min-width: 110px; + border: none !important; + background-color: transparent !important; + border-bottom: 1px solid #d2d2d2 !important; + border-bottom: 1px solid var(--border-color) !important; + border-radius: 0; + padding-bottom: 5px; +} + +#myswatch { + border-radius: 50%; +} + +#colorpicker { + margin-bottom: 25px; +} + +#mycolorpickerpreview { + border-radius: 50%; +} \ No newline at end of file diff --git a/pppad-skin/src/general.css b/pppad-skin/src/general.css new file mode 100644 index 0000000..1caf6a0 --- /dev/null +++ b/pppad-skin/src/general.css @@ -0,0 +1,11 @@ +body { + color: #485365; + color: var(--text-color); + font-family: Quicksand, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + font-family: var(--main-font-family); +} + +h1 { + color: #64d29b; + color: var(--primary-color); +} \ No newline at end of file diff --git a/pppad-skin/src/layout.css b/pppad-skin/src/layout.css new file mode 100644 index 0000000..1ec3886 --- /dev/null +++ b/pppad-skin/src/layout.css @@ -0,0 +1,48 @@ +#outerdocbody { + margin: 0 auto; + padding-top: 20px; + width: 100%; +} + +#editorcontainerbox { + background-color: #f2f3f4; + background-color: var(--bg-color); + color: var(--text-color); +} + +#editorcontainerbox .sticky-container { + width: 250px; +} + +#outerdocbody iframe, #outerdocbody > #innerdocbody { + max-width: 900px; + padding: 40px 55px; + padding-left: var(--editor-horizontal-padding); + padding-right: var(--editor-horizontal-padding); + padding-top: var(--editor-vertical-padding); + padding-bottom: var(--editor-vertical-padding); + box-shadow: none; + border: 0; + border-radius: 8px 8px 0 0; + background-color: #ffffff; + background-color: var(--bg-color); + color: #485365; + color: var(--text-color); +} +#sidediv { + /* Padding must be the same than editor, otherwise it creates problem */ + padding-top: 40px; /* = #innerdocbody iframe vertical padding */ + padding-bottom: 40px; + padding-top: calc(var(--editor-vertical-padding) + 15px); + padding-bottom: calc(var(--editor-vertical-padding) + 15px); +} + +@media (max-width:1000px) { + #outerdocbody { + padding-top: 0; + } + #outerdocbody iframe, #outerdocbody > #innerdocbody { + max-width: none; + border-radius: 0; + } +} diff --git a/pppad-skin/src/pad-editor.css b/pppad-skin/src/pad-editor.css new file mode 100644 index 0000000..7a4c8ec --- /dev/null +++ b/pppad-skin/src/pad-editor.css @@ -0,0 +1,5 @@ +#innerdocbody { + background: transparent; + color: #485365; + color: var(--text-color); +} diff --git a/pppad-skin/src/pad-variants.css b/pppad-skin/src/pad-variants.css new file mode 100644 index 0000000..1b335d3 --- /dev/null +++ b/pppad-skin/src/pad-variants.css @@ -0,0 +1,228 @@ +/* =========================== */ +/* === Super Light Toolbar === */ +/* =========================== */ +.super-light-toolbar .toolbar, .super-light-toolbar .popup-content, .super-light-toolbar #pad_title { + --text-color: var(--super-dark-color); + --text-soft-color: var(--dark-color); + --border-color: #e4e6e9; + --bg-soft-color: var(--light-color); + --bg-color: var(--super-light-color); +} +/* ===================== */ +/* === Light Toolbar === */ +/* ===================== */ +.light-toolbar .toolbar, .light-toolbar .popup-content, .light-toolbar #pad_title { + --text-color: var(--super-dark-color); + --text-soft-color: var(--dark-color); + --border-color: var(--middle-color); + --bg-soft-color: var(--super-light-color); + --bg-color: var(--light-color); +} +/* ========================== */ +/* === Super Dark Toolbar === */ +/* ========================== */ +.super-dark-toolbar .toolbar, .super-dark-toolbar .popup-content, .super-dark-toolbar #pad_title { + --text-color: var(--super-light-color); + --text-soft-color: var(--light-color); + --border-color: var(--dark-color); + --bg-soft-color: var(--dark-color); + --bg-color: var(--super-dark-color); +} +.super-dark-toolbar.super-dark-editor .popup-content { + border: 1px solid var(--dark-color); + box-shadow: none; +} +/* ==================== */ +/* === Dark Toolbar === */ +/* ==================== */ +.dark-toolbar .toolbar, .dark-toolbar .popup-content, .dark-toolbar #pad_title { + --text-color: var(--super-light-color); + --text-soft-color: var(--light-color); + --border-color: var(--super-dark-color); + --bg-soft-color: var(--super-dark-color); + --bg-color: var(--dark-color); +} + + + + + +/* ============================ */ +/* == Super Light Background == */ +/* ============================ */ +.super-light-background #editorcontainerbox, .super-light-background #sidediv, +.super-light-background #chatbox, .super-light-background #outerdocbody, .super-light-background { + --text-color: var(--super-dark-color); + --text-soft-color: var(--dark-color); + --border-color: #e4e6e9; + --bg-soft-color: var(--light-color); + --bg-color: var(--super-light-color); +} +.super-light-background body, .full-width-editor.super-light-editor body:not(.comments-active) { + --scrollbar-bg: var(--super-light-color); + --scrollbar-track: var(--light-color); + --scrollbar-thumb: var(--dark-color); +} +.super-light-background .compact-display-content { + background-color: var(--super-light-color); +} +/* ====================== */ +/* == Light Background == */ +/* ====================== */ +.light-background #editorcontainerbox, .light-background #sidediv, +.light-background #chatbox, .light-background #outerdocbody, .light-background { + --text-color: var(--super-dark-color); + --text-soft-color: var(--dark-color); + --border-color: var(--middle-color); + --bg-soft-color: var(--super-light-color); + --bg-color: var(--light-color); +} +.light-background body, .full-width-editor.light-editor body:not(.comments-active) { + --scrollbar-bg: var(--light-color); + --scrollbar-track: var(--super-light-color); + --scrollbar-thumb: var(--dark-color); +} +.light-background .compact-display-content { + background-color: var(--light-color); +} +/* =========================== */ +/* == Super Dark Background == */ +/* =========================== */ +.super-dark-background #editorcontainerbox, .super-dark-background #sidediv, +.super-dark-background #chatbox, .super-dark-background #outerdocbody, .super-dark-background { + --text-color: var(--super-light-color); + --text-soft-color: var(--light-color); + --border-color: var(--dark-color); + --bg-soft-color: var(--dark-color); + --bg-color: var(--super-dark-color); +} +.super-dark-background body, .full-width-editor.super-dark-editor body:not(.comments-active) { + --scrollbar-bg: var(--super-dark-color); + --scrollbar-track: var(--dark-color); + --scrollbar-thumb: var(--light-color); +} +.super-dark-background .compact-display-content { + background-color: var(--super-dark-color); +} +/* Special combinaison with toolbar */ +.super-dark-background.super-dark-toolbar .popup-content { + border: 1px solid var(--dark-color); + box-shadow: none; +} +/* ===================== */ +/* == Dark Background == */ +/* ===================== */ +.dark-background #editorcontainerbox, .dark-background #sidediv, +.dark-background #chatbox, .dark-background #outerdocbody, .dark-background { + --text-color: var(--super-light-color); + --text-soft-color: var(--light-color); + --border-color: var(--super-dark-color); + --bg-soft-color: var(--super-dark-color); + --bg-color: var(--dark-color); +} +.dark-background body, .full-width-editor.dark-editor body:not(.comments-active) { + --scrollbar-bg: var(--dark-color); + --scrollbar-track: var(--super-dark-color); + --scrollbar-thumb: var(--light-color); +} +.dark-background .compact-display-content { + background-color: var(--dark-color); +} +/* Special combinaison with toolbar */ +.dark-background.dark-toolbar .popup-content, .dark-editor.dark-toolbar .popup-content { + box-shadow: 0 0 14px 0px var(--super-dark-color); +} + + + + + +/* ======================== */ +/* == Super Light Editor == */ +/* ======================== */ +.super-light-editor #outerdocbody iframe, .super-light-editor #outerdocbody > #innerdocbody { + --bg-color: var(--super-light-color); +} +.super-light-editor #innerdocbody { + --text-color: var(--super-dark-color); +} +/* ================== */ +/* == Light Editor == */ +/* ================== */ +.light-editor #outerdocbody iframe, .light-editor #outerdocbody > #innerdocbody { + --bg-color: var(--light-color); +} +.light-editor #innerdocbody { + --text-color: var(--super-dark-color); +} +/* ======================= */ +/* == Super Dark Editor == */ +/* ======================= */ +.super-dark-editor #outerdocbody iframe, .super-dark-editor #outerdocbody > #innerdocbody { + --bg-color: var(--super-dark-color); +} +.super-dark-editor #innerdocbody { + --text-color: var(--super-light-color); +} +/* ================= */ +/* == Dark Editor == */ +/* ================= */ +.dark-editor #outerdocbody iframe, .dark-editor #outerdocbody > #innerdocbody { + --bg-color: var(--dark-color); +} +.dark-editor #innerdocbody { + --text-color: var(--super-light-color); +} + + +/* ======================================== */ +/* == Combinaison with background/editor == */ +/* ======================================== */ +.super-light-editor.super-light-background #outerdocbody, +.light-editor.light-background #outerdocbody, +.super-dark-editor.super-dark-background #outerdocbody, +.dark-editor.dark-background #outerdocbody { + padding-top: 0; +} +@media (min-width: 1001px) { + .super-light-editor.super-light-background, + .light-editor.light-background, + .super-dark-editor.super-dark-background, + .dark-editor.dark-background { + --editor-horizontal-padding: 20px; + --editor-vertical-padding: 5px; + } +} + +/* ===================================== */ +/* == Combinaison with toolbar/editor == */ +/* ===================================== */ +.super-light-editor.super-light-toolbar .toolbar, +.light-editor.light-toolbar .toolbar, +.super-dark-editor.super-dark-toolbar .toolbar, +.dark-editor.dark-toolbar .toolbar { + --toolbar-border: 1px solid var(--border-color); +} + + +/* ======================= */ +/* == Full Width Editor == */ +/* ======================= */ +.full-width-editor #outerdocbody iframe, .full-width-editor #outerdocbody > #innerdocbody { + max-width: none !important; + border-radius: 0; +} +.full-width-editor #outerdocbody { + padding: 0; + margin: 0; +} +@media (min-width: 1001px) { + .full-width-editor { + --editor-horizontal-padding: 20px !important; + --editor-vertical-padding: 5px !important; + } +} +.full-width-editor ::-webkit-scrollbar-track, +.full-width-editor ::-webkit-scrollbar-thumb { + border-radius: 0px; +} \ No newline at end of file diff --git a/pppad-skin/src/plugins/author_hover.css b/pppad-skin/src/plugins/author_hover.css new file mode 100644 index 0000000..6a0fbe4 --- /dev/null +++ b/pppad-skin/src/plugins/author_hover.css @@ -0,0 +1,10 @@ +.authortooltip { + opacity: 1!important; + border-radius: 2px; + padding: 4px 10px 3px!important; + text-transform: uppercase; + font-size: 13px!important; + font-weight: 700; + color: #000; + background-color: rgba(255, 255, 255, 0.85) !important; +} \ No newline at end of file diff --git a/pppad-skin/src/plugins/brightcolorpicker.css b/pppad-skin/src/plugins/brightcolorpicker.css new file mode 100644 index 0000000..8db2880 --- /dev/null +++ b/pppad-skin/src/plugins/brightcolorpicker.css @@ -0,0 +1,14 @@ +#colorpicker a.brightColorPicker-cancelButton { + background: none; + padding: 0; + padding-top: 10px; + font-weight: bold; + border: none; +} + +.brightColorPicker-colorPanel { + background-color: white !important; + box-shadow: 0 0 0 1px rgba(99, 114, 130, 0.16), 0 8px 16px rgba(27, 39, 51, 0.08) !important; + border-radius: 3px !important; + padding: 15px !important; +} \ No newline at end of file diff --git a/pppad-skin/src/plugins/comments.css b/pppad-skin/src/plugins/comments.css new file mode 100644 index 0000000..005890e --- /dev/null +++ b/pppad-skin/src/plugins/comments.css @@ -0,0 +1,112 @@ +.sidebar-comment .btn { + margin-top: 10px; + padding: 3px 8px; + font-size: .9rem; + margin: 10px 0 5px 0; +} +.sidebar-comment .btn.btn-primary:not(#comment-create-btn) { + background-color: #576273; + background-color: var(--text-soft-color); +} +.sidebar-comment .suggestion-create { + margin-top: 10px; +} +.suggestion-display .from-value, .suggestion-display .to-value { + color: #64d29b; + color: var(--primary-color); + font-weight: bold; + opacity: 1; +} +.suggestion-display .from-value { + margin-right: 5px; +} +.comment-actions-wrapper .buttonicon { + opacity: .8; +} +.comment-actions-wrapper .buttonicon:hover { + opacity: 1; +} +.comment-actions-wrapper .comment-edit { + margin-right: 5px; +} +[type="checkbox"] + label.label-suggestion-checkbox { + margin-left: 5px; + padding-left: 2.4rem; +} +.sidebar-comment .full-display-content { + margin-left: -10px; + box-shadow: none; + background-color: #f2f3f4; + background-color: var(--bg-soft-color); + border: 1px solid #ffffff; + border: 1px solid var(--bg-color); +} +.comment-reply { + border-top: 1px solid #ffffff; + border-top: 1px solid var(--bg-color); + background-color: inherit; +} +.comment-reply textarea, .comment-reply input[type="text"] { + background-color: #ffffff; + background-color: var(--bg-color); +} +.btn.revert-suggestion-btn { + padding-left: 0; +} +.comment-edit-form { + margin-top: 15px; +} + +/* MODAL */ +.comment-modal .full-display-content { + box-shadow: none; + margin: 0 !important; + border: none; + background-color: #ffffff; + background-color: var(--bg-color); +} +.comment-modal .comment-modal-comment { + padding: 0; +} +.comment-modal .comment-reply textarea, .comment-modal .comment-reply input[type="text"] { + background-color: #f2f3f4; + background-color: var(--bg-soft-color); +} +.comment-modal .comment-reply { + border-top: 1px solid #f2f3f4; + border-top: 1px solid var(--bg-soft-color); +} +.comment-modal .full-display-content .comment-title-wrapper, +.comment-modal .full-display-content .comment-reply { + padding: 15px; +} + + +/* NEW COMMENT POPUP */ +.new-comment-popup textarea { + background-color: #f2f3f4; + background-color: var(--bg-soft-color); +} +.new-comment-popup .suggestion { + margin-bottom: 10px; +} + + +/* EDITOR COMMENTEED LINE */ +#innerdocbody .ace-line .comment { + background-color: #fffacc; + color: var(--super-dark-color); +} + + +@media (min-width: 1200px) { + #comments { + width: 300px; + } + .sidebar-comment .full-display-content { + margin-left: 10px; + } + .compact-display-content { + padding-left: 20px; + } +} \ No newline at end of file diff --git a/pppad-skin/src/plugins/font_color.css b/pppad-skin/src/plugins/font_color.css new file mode 100644 index 0000000..43647ac --- /dev/null +++ b/pppad-skin/src/plugins/font_color.css @@ -0,0 +1,41 @@ +.font-color-icon { + display: none !important; +} + +#font-color { + display: list-item !important; +} +.readonly #font-color { + display: none !important; +} + +.color\:black, +[data-color=black] { + color: #485365; + color: var(--text-color); +} + +.color\:red, +[data-color=red] { + color: #F44336; +} + +.color\:green, +[data-color=green] { + color: #66d29c; +} + +.color\:blue, +[data-color=blue] { + color: #2196f3; +} + +.color\:yellow, +[data-color=yellow] { + color: #ffeb3b; +} + +.color\:orange, +[data-color=orange] { + color: #FF9800; +} \ No newline at end of file diff --git a/pppad-skin/src/plugins/set_title_on_pad.css b/pppad-skin/src/plugins/set_title_on_pad.css new file mode 100644 index 0000000..9ab1e2a --- /dev/null +++ b/pppad-skin/src/plugins/set_title_on_pad.css @@ -0,0 +1,7 @@ +#pad_title { + border-bottom: 1px solid var(--border-color) !important; + background-color: var(--bg-color) !important; +} +#edit_title { + color: var(--text-soft-color); +} \ No newline at end of file diff --git a/pppad-skin/src/plugins/tables2.css b/pppad-skin/src/plugins/tables2.css new file mode 100644 index 0000000..d24056d --- /dev/null +++ b/pppad-skin/src/plugins/tables2.css @@ -0,0 +1,239 @@ +/* MENU ICON*/ +#editbar #tbl_menu_list { + width: auto !important; +} +#tbl-menu { + background: none !important; + width: 18px !important; + padding-left: 2px !important; +} +#tbl-menu:before { + content: "\F0CE"; +} + +#tbl_menu_list > a { + font-size: 16px; + margin-top: 8px; + padding-left: 0; + padding-right: 2px; + padding-bottom: 4px; +} + +/* DROP DOWN MENU */ +#tbl_context_menu { + margin-left: -24px; + border: none; + margin-top: 9px; + box-shadow: 0 0 0 1px rgba(99, 114, 130, 0.16), 0 8px 16px rgba(27, 39, 51, 0.08); + border-radius: 3px; + background-color: white; + font-size: 100%; + line-height: 1.7; +} + +#tbl_context_menu > .bd { + border: none; + background-color: transparent; +} + +#tbl_context_menu > .bd > ul { + padding: 6px 0; +} + +/* TABLE SIZE PICKER */ +#tbl_insert { + background-color: white; + box-shadow: 0 0 0 1px rgba(99, 114, 130, 0.16), 0 8px 16px rgba(27, 39, 51, 0.08); + border-radius: 3px; +} + +#tbl_insert .bd { + border: none; + text-align: center; + background-color: transparent; + padding-top: 4px; +} + +#tbl_insert .yuimenuitemlabel { text-align: center; } + +#tbl_insert .ft { + margin: 0; + border: none; + background-color: transparent; + padding: 6px; + padding-top: 0; +} + +#matrix_table tr td { + border: 1px solid #d7d7d7; + height: 1px; + padding: 7px; + width: 11px; + background-color: #fbfbfb; + border-radius: 1px; +} +#matrix_table tr td.selected { + border: 1px solid #789dce; + background-color: #b3d4ff; +} + +/* TABLE SETTINGS POPUP */ +.yui-skin-sam .yui-panel-container { + padding: 0; + margin: 0; + background-color: #fff; + box-shadow: 0 0 0 1px rgba(99, 114, 130, 0.16), 0 8px 16px rgba(27, 39, 51, 0.08); + border-radius: 5px; + padding-bottom: 15px; +} + +.yui-skin-sam .yui-panel-container .yui-panel { + border: none !important; + background: none; + box-shadow: none !important; +} + +.yui-skin-sam .yui-panel-container .yui-panel .hd { + cursor: move; + padding: 0; + border: 0; + background: 0; + margin: 0; + font-size: 14px; + line-height: 40px; + text-transform: uppercase; + padding: 0 15px; + padding-top: 5px; + font-weight: bold; + border-bottom: 1px solid #d2d2d2; +} + +.yui-skin-sam .yui-panel-container .yui-panel .container-close { + top: 15px; + border: none; + background: none; + color: white; + text-indent: 0; +} +.yui-skin-sam .yui-panel-container .yui-panel .container-close::before { + content: "x"; + color: #6f757a; + font-size: 16px; + font-weight: bold; +} + +.yui-skin-sam .yui-panel-container .yui-panel .bd { + background: none; + border: none; + box-shadow: none; + padding: 15px; + background-color: transparent !important; +} + +.yui-panel .underlay, .yui-skin-sam .yui-panel-container.shadow .underlay { + display: none !important; +} + +#div_tbl_btn_close { + float: right; + position: relative; + width: 100%; + margin-top: 10px; + right: 0; + bottom: 0; +} + +#tbl_btn_close { + border: none; + color: #ffffff; + height: 30px; + width: 100%; + border-radius: 3px; + text-transform: uppercase; +} +#tbl_btn_close:hover { cursor: pointer; } + +.yui-skin-sam .yui-button { + background: none; + background-color: white; + border: none; + height: 24px; + margin-bottom: -4px; + margin-top: 5px; +} + +.yui-skin-sam .yui-button .first-child { margin: 0; border: none; } + +.yui-skin-sam .yui-split-button button { + padding: 0; + background: none !important; +} + +.yui-skin-sam .yui-split-button button em:not(.color-picker-button) { + font-style: normal !important; + border-bottom: 1px solid #b5b7b7; + padding: 0 5px; + margin: 0 5px; + padding-bottom: 3px; +} + +button#yui-gen13-button { + margin-left: -5px; +} + +button .color-picker-button { + border: 1px solid #c1c2c2; + border-radius: 50%; + width: 16px; + height: 16px; + margin-top: 2px; +} + +#even-row-bg-color, #single-row-bg-color { + margin-right: 5px; +} +#single-col-bg-color, #odd-row-bg-color { + margin-left: 7px; +} + +#yui-tbl-prop-panel .text-input[type=text] { + border: 1px solid #d2d2d2; + float: right; + height: 10px; + border-radius: 3px; + padding: 8px 10px; +} + +#text_input_message { + background-color: #64d29b; + padding: 0 5px; + color: white; + font-size: 12px; + border-radius: 5px; + font-weight: bold; + display: none; +} + +/* TABLES INSIDE THE PAD */ +td[name=tData] { + /*border: 1px solid grey !important;*/ +} + +#yui-picker-panel_c +{ + padding-bottom: 40px; +} + +div#yui-picker-panel_h { + line-height: 1.8em; + font-size: 13px; + padding: 9px 15px 5px; +} + +#yui-picker-panel .ft { + position: relative; + border: none; + width: 100%; + padding: 0; + margin-top: 20px; +} \ No newline at end of file diff --git a/pppad-skin/timeslider.css b/pppad-skin/timeslider.css new file mode 100644 index 0000000..263e0e5 --- /dev/null +++ b/pppad-skin/timeslider.css @@ -0,0 +1,98 @@ +#timeslider-slider #ui-slider-handle { + border-radius: 3px; + width: 12px; + height: 28px; + background-color: #64d29b; + background-color: var(--primary-color); +} + +#timeslider-slider #ui-slider-bar { + border-radius: 3px; + background-color: #d2d2d2; + background-color: var(--border-color); +} +#slider-btn-container { + margin: -18px 15px 0 20px; +} +#slider-btn-container #playpause_button_icon { + color: #ffffff; + color: var(--bg-color); + background-color: #64d29b; + background-color: var(--primary-color); + border: none; + margin-right: 5px; + padding-top: 3px; + width: 45px; + height: 45px; +} +#slider-btn-container #playpause_button_icon:not(.pause) { + padding-left: 4px; +} +#slider-btn-container .stepper { + border: 2px solid !important; + height: 30px; + width: 30px; + line-height: 28px; + margin-left: 5px; + font-size: 13px; + color: #64d29b; + color: var(--primary-color); + border-color: #64d29b; + border-color: var(--primary-color); +} +#slider-btn-container .stepper.disabled { + opacity: .5; +} + +.timeslider #editbar .buttontext { + background-color: #576273; + background-color: var(--text-soft-color); + color: #ffffff; + color: var(--bg-color); + margin: 0; +} + +#editbar { + display: block; + padding-bottom: 5px; +} + +#editbar li > a { + border-radius: 3px; +} + +#timeslider-slider #timer { + opacity: .7; + top: -12px; + font-size: .8em; +} + +.timeslider #authorsList .author { + padding: 2px 5px; + border-radius: 3px; + margin-right: 4px; + margin-bottom: 4px; +} + +.timeslider-title { + font-size: 1.8rem !important; +} +.timeslider-subtitle { + margin-top: 6px; + font-size: .9em; +} + +@media (max-width: 800px) { + + #slider-btn-container { + margin-top: 0; + margin-right: 5px; + } + #slider-btn-container #playpause_button_icon { + width: 30px; + height: 30px; + } + #slider-btn-container #playpause_button_icon:before { + font-size: 18px; + } +} \ No newline at end of file diff --git a/pppad-skin/timeslider.js b/pppad-skin/timeslider.js new file mode 100644 index 0000000..5fa8ae3 --- /dev/null +++ b/pppad-skin/timeslider.js @@ -0,0 +1,4 @@ +'use strict'; + +window.customStart = () => { +}; diff --git a/pppad.settings.json.docker b/pppad.settings.json.docker new file mode 100644 index 0000000..e188ada --- /dev/null +++ b/pppad.settings.json.docker @@ -0,0 +1,591 @@ +/** + * THIS IS THE SETTINGS FILE THAT IS COPIED INSIDE THE DOCKER CONTAINER. + * + * By default, some runtime customizations are supported (see the + * documentation). + * + * If you need more control, edit this file and rebuild the container. + */ + +/* + * This file must be valid JSON. But comments are allowed + * + * Please edit settings.json, not settings.json.template + * + * Please note that starting from Etherpad 1.6.0 you can store DB credentials in + * a separate file (credentials.json). + * + * + * ENVIRONMENT VARIABLE SUBSTITUTION + * ================================= + * + * All the configuration values can be read from environment variables using the + * syntax "${ENV_VAR}" or "${ENV_VAR:default_value}". + * + * This is useful, for example, when running in a Docker container. + * + * DETAILED RULES: + * - If the environment variable is set to the string "true" or "false", the + * value becomes Boolean true or false. + * - If the environment variable is set to the string "null", the value + * becomes null. + * - If the environment variable is set to the string "undefined", the setting + * is removed entirely, except when used as the member of an array in which + * case it becomes null. + * - If the environment variable is set to a string representation of a finite + * number, the string is converted to that number. + * - If the environment variable is set to any other string, including the + * empty string, the value is that string. + * - If the environment variable is unset and a default value is provided, the + * value is as if the environment variable was set to the provided default: + * - "${UNSET_VAR:}" becomes the empty string. + * - "${UNSET_VAR:foo}" becomes the string "foo". + * - "${UNSET_VAR:true}" and "${UNSET_VAR:false}" become true and false. + * - "${UNSET_VAR:null}" becomes null. + * - "${UNSET_VAR:undefined}" causes the setting to be removed (or be set + * to null, if used as a member of an array). + * - If the environment variable is unset and no default value is provided, + * the value becomes null. THIS BEHAVIOR MAY CHANGE IN A FUTURE VERSION OF + * ETHERPAD; if you want the default value to be null, you should explicitly + * specify "null" as the default value. + * + * EXAMPLE: + * "port": "${PORT:9001}" + * "minify": "${MINIFY}" + * "skinName": "${SKIN_NAME:colibris}" + * + * Would read the configuration values for those items from the environment + * variables PORT, MINIFY and SKIN_NAME. + * + * If PORT and SKIN_NAME variables were not defined, the default values 9001 and + * "colibris" would be used. + * The configuration value "minify", on the other hand, does not have a + * designated default value. Thus, if the environment variable MINIFY were + * undefined, "minify" would be null. + * + * REMARKS: + * 1) please note that variable substitution always needs to be quoted. + * + * "port": 9001, <-- Literal values. When not using + * "minify": false substitution, only strings must be + * "skinName": "colibris" quoted. Booleans and numbers must not. + * + * "port": "${PORT:9001}" <-- CORRECT: if you want to use a variable + * "minify": "${MINIFY:true}" substitution, put quotes around its name, + * "skinName": "${SKIN_NAME}" even if the required value is a number or + * a boolean. + * Etherpad will take care of rewriting it + * to the proper type if necessary. + * + * "port": ${PORT:9001} <-- ERROR: this is not valid json. Quotes + * "minify": ${MINIFY} around variable names are missing. + * "skinName": ${SKIN_NAME} + * + * 2) Beware of undefined variables and default values: nulls and empty strings + * are different! + * + * This is particularly important for user's passwords (see the relevant + * section): + * + * "password": "${PASSW}" // if PASSW is not defined would result in password === null + * "password": "${PASSW:}" // if PASSW is not defined would result in password === '' + * + * If you want to use an empty value (null) as default value for a variable, + * simply do not set it, without putting any colons: "${ABIWORD}". + * + * 3) if you want to use newlines in the default value of a string parameter, + * use "\n" as usual. + * + * "defaultPadText" : "${DEFAULT_PAD_TEXT}Line 1\nLine 2" + */ +{ + /* + * Name your instance! + */ + "title": "${TITLE:PPPaaad}", + + /* + * Pathname of the favicon you want to use. If null, the skin's favicon is + * used if one is provided by the skin, otherwise the default Etherpad favicon + * is used. If this is a relative path it is interpreted as relative to the + * Etherpad root directory. + */ + "favicon": "${FAVICON:null}", + + /* + * Skin name. + * + * Its value has to be an existing directory under src/static/skins. + * You can write your own, or use one of the included ones: + * + * - "no-skin": an empty skin (default). This yields the unmodified, + * traditional Etherpad theme. + * - "colibris": the new experimental skin (since Etherpad 1.8), candidate to + * become the default in Etherpad 2.0 + */ + "skinName": "${SKIN_NAME:pppad}", + + /* + * Skin Variants + * + * Use the UI skin variants builder at /p/test#skinvariantsbuilder + * + * For the colibris skin only, you can choose how to render the three main + * containers: + * - toolbar (top menu with icons) + * - editor (containing the text of the pad) + * - background (area outside of editor, mostly visible when using page style) + * + * For each of the 3 containers you can choose 4 color combinations: + * super-light, light, dark, super-dark. + * + * For example, to make the toolbar dark, you will include "dark-toolbar" into + * skinVariants. + * + * You can provide multiple skin variants separated by spaces. Default + * skinVariant is "super-light-toolbar super-light-editor light-background". + * + * For the editor container, you can also make it full width by adding + * "full-width-editor" variant (by default editor is rendered as a page, with + * a max-width of 900px). + */ + "skinVariants": "${SKIN_VARIANTS:super-light-toolbar super-light-editor light-background}", + + /* + * IP and port which Etherpad should bind at. + * + * Binding to a Unix socket is also supported: just use an empty string for + * the ip, and put the full path to the socket in the port parameter. + * + * EXAMPLE USING UNIX SOCKET: + * "ip": "", // <-- has to be an empty string + * "port" : "/somepath/etherpad.socket", // <-- path to a Unix socket + */ + "ip": "${IP:0.0.0.0}", + "port": "${PORT:9001}", + + /* + * Option to hide/show the settings.json in admin page. + * + * Default option is set to true + */ + "showSettingsInAdminPage": "${SHOW_SETTINGS_IN_ADMIN_PAGE:true}", + + /* + * Node native SSL support + * + * This is disabled by default. + * Make sure to have the minimum and correct file access permissions set so + * that the Etherpad server can access them + */ + + /* + "ssl" : { + "key" : "/path-to-your/epl-server.key", + "cert" : "/path-to-your/epl-server.crt", + "ca": ["/path-to-your/epl-intermediate-cert1.crt", "/path-to-your/epl-intermediate-cert2.crt"] + }, + */ + + /* + * The type of the database. + * + * You can choose between many DB drivers, for example: dirty, postgres, + * sqlite, mysql. + * + * You shouldn't use "dirty" for for anything else than testing or + * development. + * + * + * Database specific settings are dependent on dbType, and go in dbSettings. + * Remember that since Etherpad 1.6.0 you can also store this information in + * credentials.json. + * + * For a complete list of the supported drivers, please refer to: + * https://www.npmjs.com/package/ueberdb2 + */ + + "dbType": "${DB_TYPE:mysql}", + "dbSettings": { + "host": "${DB_HOST:192.168.111.22}", + "port": "${DB_PORT:3306}", + "database": "${DB_NAME:pppad}", + "user": "${DB_USER:root}", + "password": "${DB_PASS:kritik}", + "charset": "${DB_CHARSET:utf8}", + "filename": "${DB_FILENAME:var/dirty.db}", + "collection": "${DB_COLLECTION:undefined}", + "url": "${DB_URL:undefined}" + }, + + /* + * The default text of a pad + */ + "defaultPadText" : "${DEFAULT_PAD_TEXT:PPPaaad!!}", + + /* + * Default Pad behavior. + * + * Change them if you want to override. + */ + "padOptions": { + "noColors": "${PAD_OPTIONS_NO_COLORS:false}", + "showControls": "${PAD_OPTIONS_SHOW_CONTROLS:true}", + "showChat": "${PAD_OPTIONS_SHOW_CHAT:true}", + "showLineNumbers": "${PAD_OPTIONS_SHOW_LINE_NUMBERS:true}", + "useMonospaceFont": "${PAD_OPTIONS_USE_MONOSPACE_FONT:false}", + "userName": "${PAD_OPTIONS_USER_NAME:false}", + "userColor": "${PAD_OPTIONS_USER_COLOR:false}", + "rtl": "${PAD_OPTIONS_RTL:false}", + "alwaysShowChat": "${PAD_OPTIONS_ALWAYS_SHOW_CHAT:false}", + "chatAndUsers": "${PAD_OPTIONS_CHAT_AND_USERS:false}", + "lang": "${PAD_OPTIONS_LANG:en-gb}" + }, + + /* + * Pad Shortcut Keys + */ + "padShortcutEnabled" : { + "altF9": "${PAD_SHORTCUTS_ENABLED_ALT_F9:true}", /* focus on the File Menu and/or editbar */ + "altC": "${PAD_SHORTCUTS_ENABLED_ALT_C:true}", /* focus on the Chat window */ + "cmdShift2": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_2:true}", /* shows a gritter popup showing a line author */ + "delete": "${PAD_SHORTCUTS_ENABLED_DELETE:true}", + "return": "${PAD_SHORTCUTS_ENABLED_RETURN:true}", + "esc": "${PAD_SHORTCUTS_ENABLED_ESC:true}", /* in mozilla versions 14-19 avoid reconnecting pad */ + "cmdS": "${PAD_SHORTCUTS_ENABLED_CMD_S:true}", /* save a revision */ + "tab": "${PAD_SHORTCUTS_ENABLED_TAB:true}", /* indent */ + "cmdZ": "${PAD_SHORTCUTS_ENABLED_CMD_Z:true}", /* undo/redo */ + "cmdY": "${PAD_SHORTCUTS_ENABLED_CMD_Y:true}", /* redo */ + "cmdI": "${PAD_SHORTCUTS_ENABLED_CMD_I:true}", /* italic */ + "cmdB": "${PAD_SHORTCUTS_ENABLED_CMD_B:true}", /* bold */ + "cmdU": "${PAD_SHORTCUTS_ENABLED_CMD_U:true}", /* underline */ + "cmd5": "${PAD_SHORTCUTS_ENABLED_CMD_5:true}", /* strike through */ + "cmdShiftL": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_L:true}", /* unordered list */ + "cmdShiftN": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_N:true}", /* ordered list */ + "cmdShift1": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_1:true}", /* ordered list */ + "cmdShiftC": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_C:true}", /* clear authorship */ + "cmdH": "${PAD_SHORTCUTS_ENABLED_CMD_H:true}", /* backspace */ + "ctrlHome": "${PAD_SHORTCUTS_ENABLED_CTRL_HOME:true}", /* scroll to top of pad */ + "pageUp": "${PAD_SHORTCUTS_ENABLED_PAGE_UP:true}", + "pageDown": "${PAD_SHORTCUTS_ENABLED_PAGE_DOWN:true}" + }, + + /* + * Should we suppress errors from being visible in the default Pad Text? + */ + "suppressErrorsInPadText": "${SUPPRESS_ERRORS_IN_PAD_TEXT:false}", + + /* + * If this option is enabled, a user must have a session to access pads. + * This effectively allows only group pads to be accessed. + */ + "requireSession": "${REQUIRE_SESSION:false}", + + /* + * Users may edit pads but not create new ones. + * + * Pad creation is only via the API. + * This applies both to group pads and regular pads. + */ + "editOnly": "${EDIT_ONLY:false}", + + /* + * If true, all css & js will be minified before sending to the client. + * + * This will improve the loading performance massively, but makes it difficult + * to debug the javascript/css + */ + "minify": "${MINIFY:true}", + + /* + * How long may clients use served javascript code (in seconds)? + * + * Not setting this may cause problems during deployment. + * Set to 0 to disable caching. + */ + "maxAge": "${MAX_AGE:21600}", // 60 * 60 * 6 = 6 hours + + /* + * Absolute path to the Abiword executable. + * + * Abiword is needed to get advanced import/export features of pads. Setting + * it to null disables Abiword and will only allow plain text and HTML + * import/exports. + */ + "abiword": "${ABIWORD:null}", + + /* + * This is the absolute path to the soffice executable. + * + * LibreOffice can be used in lieu of Abiword to export pads. + * Setting it to null disables LibreOffice exporting. + */ + "soffice": "${SOFFICE:null}", + + /* + * Path to the Tidy executable. + * + * Tidy is used to improve the quality of exported pads. + * Setting it to null disables Tidy. + */ + "tidyHtml": "${TIDY_HTML:null}", + + /* + * Allow import of file types other than the supported ones: + * txt, doc, docx, rtf, odt, html & htm + */ + "allowUnknownFileEnds": "${ALLOW_UNKNOWN_FILE_ENDS:true}", + + /* + * This setting is used if you require authentication of all users. + * + * Note: "/admin" always requires authentication. + */ + "requireAuthentication": "${REQUIRE_AUTHENTICATION:false}", + + /* + * Require authorization by a module, or a user with is_admin set, see below. + */ + "requireAuthorization": "${REQUIRE_AUTHORIZATION:false}", + + /* + * When you use NGINX or another proxy/load-balancer set this to true. + * + * This is especially necessary when the reverse proxy performs SSL + * termination, otherwise the cookies will not have the "secure" flag. + * + * The other effect will be that the logs will contain the real client's IP, + * instead of the reverse proxy's IP. + */ + "trustProxy": "${TRUST_PROXY:false}", + + /* + * Settings controlling the session cookie issued by Etherpad. + */ + "cookie": { + /* + * Value of the SameSite cookie property. "Lax" is recommended unless + * Etherpad will be embedded in an iframe from another site, in which case + * this must be set to "None". Note: "None" will not work (the browser will + * not send the cookie to Etherpad) unless https is used to access Etherpad + * (either directly or via a reverse proxy with "trustProxy" set to true). + * + * "Strict" is not recommended because it has few security benefits but + * significant usability drawbacks vs. "Lax". See + * https://stackoverflow.com/q/41841880 for discussion. + */ + "sameSite": "${COOKIE_SAME_SITE:Lax}" + }, + + /* + * Privacy: disable IP logging + */ + "disableIPlogging": "${DISABLE_IP_LOGGING:false}", + + /* + * Time (in seconds) to automatically reconnect pad when a "Force reconnect" + * message is shown to user. + * + * Set to 0 to disable automatic reconnection. + */ + "automaticReconnectionTimeout": "${AUTOMATIC_RECONNECTION_TIMEOUT:1}", + + /* + * By default, when caret is moved out of viewport, it scrolls the minimum + * height needed to make this line visible. + */ + "scrollWhenFocusLineIsOutOfViewport": { + + /* + * Percentage of viewport height to be additionally scrolled. + * + * E.g.: use "percentage.editionAboveViewport": 0.5, to place caret line in + * the middle of viewport, when user edits a line above of the + * viewport + * + * Set to 0 to disable extra scrolling + */ + "percentage": { + "editionAboveViewport": "${FOCUS_LINE_PERCENTAGE_ABOVE:0}", + "editionBelowViewport": "${FOCUS_LINE_PERCENTAGE_BELOW:0}" + }, + + /* + * Time (in milliseconds) used to animate the scroll transition. + * Set to 0 to disable animation + */ + "duration": "${FOCUS_LINE_DURATION:0}", + + /* + * Flag to control if it should scroll when user places the caret in the + * last line of the viewport + */ + "scrollWhenCaretIsInTheLastLineOfViewport": "${FOCUS_LINE_CARET_SCROLL:false}", + + /* + * Percentage of viewport height to be additionally scrolled when user + * presses arrow up in the line of the top of the viewport. + * + * Set to 0 to let the scroll to be handled as default by Etherpad + */ + "percentageToScrollWhenUserPressesArrowUp": "${FOCUS_LINE_PERCENTAGE_ARROW_UP:0}" + }, + + /* + * User accounts. These accounts are used by: + * - default HTTP basic authentication if no plugin handles authentication + * - some but not all authentication plugins + * - some but not all authorization plugins + * + * User properties: + * - password: The user's password. Some authentication plugins will ignore + * this. + * - is_admin: true gives access to /admin. Defaults to false. If you do not + * uncomment this, /admin will not be available! + * - readOnly: If true, this user will not be able to create new pads or + * modify existing pads. Defaults to false. + * - canCreate: If this is true and readOnly is false, this user can create + * new pads. Defaults to true. + * + * Authentication and authorization plugins may define additional properties. + * + * WARNING: passwords should not be stored in plaintext in this file. + * If you want to mitigate this, please install ep_hash_auth and + * follow the section "secure your installation" in README.md + */ + + "users": { + "dvd": { + // 1) "password" can be replaced with "hash" if you install ep_hash_auth + // 2) please note that if password is null, the user will not be created + "password": "${ADMIN_PASSWORD:1qazse4}", + "is_admin": true + }, + "user": { + // 1) "password" can be replaced with "hash" if you install ep_hash_auth + // 2) please note that if password is null, the user will not be created + "password": "${USER_PASSWORD:null}", + "is_admin": false + } + }, + + /* + * Restrict socket.io transport methods + */ + "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"], + + "socketIo": { + /* + * Maximum permitted client message size (in bytes). All messages from + * clients that are larger than this will be rejected. Large values make it + * possible to paste large amounts of text, and plugins may require a larger + * value to work properly, but increasing the value increases susceptibility + * to denial of service attacks (malicious clients can exhaust memory). + */ + "maxHttpBufferSize": "${SOCKETIO_MAX_HTTP_BUFFER_SIZE:10000}" + }, + + /* + * Allow Load Testing tools to hit the Etherpad Instance. + * + * WARNING: this will disable security on the instance. + */ + "loadTest": "${LOAD_TEST:false}", + + /** + * Disable dump of objects preventing a clean exit + */ + "dumpOnUncleanExit": "${DUMP_ON_UNCLEAN_EXIT:false}", + + /* + * Disable indentation on new line when previous line ends with some special + * chars (':', '[', '(', '{') + */ + + /* + "indentationOnNewLine": false, + */ + + /* + * From Etherpad 1.8.3 onwards, import and export of pads is always rate + * limited. + * + * The default is to allow at most 10 requests per IP in a 90 seconds window. + * After that the import/export request is rejected. + * + * See https://github.com/nfriedly/express-rate-limit for more options + */ + "importExportRateLimiting": { + // duration of the rate limit window (milliseconds) + "windowMs": "${IMPORT_EXPORT_RATE_LIMIT_WINDOW:90000}", + + // maximum number of requests per IP to allow during the rate limit window + "max": "${IMPORT_EXPORT_MAX_REQ_PER_IP:10}" + }, + + /* + * From Etherpad 1.8.3 onwards, the maximum allowed size for a single imported + * file is always bounded. + * + * File size is specified in bytes. Default is 50 MB. + */ + "importMaxFileSize": "${IMPORT_MAX_FILE_SIZE:52428800}", // 50 * 1024 * 1024 + + /* + * From Etherpad 1.8.5 onwards, when Etherpad is in production mode commits from individual users are rate limited + * + * The default is to allow at most 10 changes per IP in a 1 second window. + * After that the change is rejected. + * + * See https://github.com/animir/node-rate-limiter-flexible/wiki/Overall-example#websocket-single-connection-prevent-flooding for more options + */ + "commitRateLimiting": { + // duration of the rate limit window (seconds) + "duration": "${COMMIT_RATE_LIMIT_DURATION:1}", + + // maximum number of changes per IP to allow during the rate limit window + "points": "${COMMIT_RATE_LIMIT_POINTS:10}" + }, + + /* + * Toolbar buttons configuration. + * + * Uncomment to customize. + */ + + /* + "toolbar": { + "left": [ + ["bold", "italic", "underline", "strikethrough"], + ["orderedlist", "unorderedlist", "indent", "outdent"], + ["undo", "redo"], + ["clearauthorship"] + ], + "right": [ + ["importexport", "timeslider", "savedrevision"], + ["settings", "embed"], + ["showusers"] + ], + "timeslider": [ + ["timeslider_export", "timeslider_returnToPad"] + ] + }, + */ + + /* + * Expose Etherpad version in the web interface and in the Server http header. + * + * Do not enable on production machines. + */ + "exposeVersion": "${EXPOSE_VERSION:false}", + + /* + * The log level we are using. + * + * Valid values: DEBUG, INFO, WARN, ERROR + */ + "loglevel": "${LOGLEVEL:INFO}", + + /* Override any strings found in locale directories */ + "customLocaleStrings": {} +}