mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
Fixed topbar css
Aded InputComponents.js to take care (dynamically create, add events) of input elements.
This commit is contained in:
parent
79a3c07b82
commit
82aa5ab114
2
build.js
2
build.js
@ -56,7 +56,7 @@ function compile_page(){
|
|||||||
|
|
||||||
.pipe(handlebars({encoding: 'utf8', debug: true, bustCache: true})
|
.pipe(handlebars({encoding: 'utf8', debug: true, bustCache: true})
|
||||||
.partials('./views/[!index]*.hbs').partials('./views/popups/*.hbs')
|
.partials('./views/[!index]*.hbs').partials('./views/popups/*.hbs')
|
||||||
//.helpers({ svg: hb_svg })
|
.partials('./views/components/*.hbs')
|
||||||
.helpers('./helpers/**/*.js')
|
.helpers('./helpers/**/*.js')
|
||||||
.data({
|
.data({
|
||||||
projectSlug: 'pixel-editor',
|
projectSlug: 'pixel-editor',
|
||||||
|
56
css/_components.scss
Normal file
56
css/_components.scss
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
.checkbox-holder {
|
||||||
|
position:relative;
|
||||||
|
width:15px;
|
||||||
|
height:15px;
|
||||||
|
display:block;
|
||||||
|
|
||||||
|
.checkbox {
|
||||||
|
display: inline-block;
|
||||||
|
cursor: pointer;
|
||||||
|
padding-right: 1em;
|
||||||
|
|
||||||
|
.box {
|
||||||
|
color: $basetext;
|
||||||
|
background: darken($basecolor, 5%);
|
||||||
|
border: none;
|
||||||
|
padding: 0.5rem;
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
border: solid 2px $basecolor;
|
||||||
|
pointer-events: none;
|
||||||
|
|
||||||
|
svg {
|
||||||
|
visibility: hidden;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
display: block;
|
||||||
|
path {
|
||||||
|
fill: $basetext;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//checked
|
||||||
|
&.checked .box svg {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
|
pointer-events: none;
|
||||||
|
} //hover label or box
|
||||||
|
|
||||||
|
&:hover:not(.disabled){
|
||||||
|
border-color: $basecolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
.box svg path {fill: $basetext;}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -108,6 +108,11 @@ li#editor-info {
|
|||||||
display:inline;
|
display:inline;
|
||||||
padding-right:20px;
|
padding-right:20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.checkbox-holder {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
margin-left:10px;
|
margin-left:10px;
|
||||||
background-color:darken($basecolor, 6%);
|
background-color:darken($basecolor, 6%);
|
||||||
@ -122,12 +127,5 @@ li#editor-info {
|
|||||||
width:25px;
|
width:25px;
|
||||||
height:15px;
|
height:15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=checkbox] {
|
|
||||||
padding:1px;
|
|
||||||
width:20px;
|
|
||||||
height:20px;
|
|
||||||
background-color:darken($basecolor, 5%) !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,6 +2,7 @@
|
|||||||
@import 'general';
|
@import 'general';
|
||||||
@import 'zindex';
|
@import 'zindex';
|
||||||
@import 'shake';
|
@import 'shake';
|
||||||
|
@import 'components';
|
||||||
@import 'help';
|
@import 'help';
|
||||||
@import 'layers';
|
@import 'layers';
|
||||||
@import 'canvas';
|
@import 'canvas';
|
||||||
|
59
js/InputComponents.js
Normal file
59
js/InputComponents.js
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
const InputComponents = (() => {
|
||||||
|
setInputEvents();
|
||||||
|
|
||||||
|
function setInputEvents() {
|
||||||
|
// Make the checkboxes toggleable
|
||||||
|
let checkboxes = document.getElementsByClassName("checkbox");
|
||||||
|
for (let i=0; i<checkboxes.length; i++) {
|
||||||
|
Events.on("click", checkboxes[i], toggleBox);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleBox(event) {
|
||||||
|
if (event.target.classList.contains("checked"))
|
||||||
|
event.target.classList.remove("checked");
|
||||||
|
else
|
||||||
|
event.target.classList.add("checked");
|
||||||
|
}
|
||||||
|
|
||||||
|
function createCheckbox(id, label) {
|
||||||
|
let element = document.createElement("div");
|
||||||
|
let inner = document.createElement("div");
|
||||||
|
let hiddenInput = document.createElement("input");
|
||||||
|
let box = document.createElement("div");
|
||||||
|
let labelEl = document.createElement("label");
|
||||||
|
|
||||||
|
labelEl.innerHTML = label;
|
||||||
|
box.innerHTML = '\
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\
|
||||||
|
width="405.272px" height="405.272px" viewBox="0 0 405.272 405.272" style="enable-background:new 0 0 405.272 405.272;"\
|
||||||
|
xml:space="preserve">\
|
||||||
|
<g>\
|
||||||
|
<path d="M393.401,124.425L179.603,338.208c-15.832,15.835-41.514,15.835-57.361,0L11.878,227.836\
|
||||||
|
c-15.838-15.835-15.838-41.52,0-57.358c15.841-15.841,41.521-15.841,57.355-0.006l81.698,81.699L336.037,67.064\
|
||||||
|
c15.841-15.841,41.523-15.829,57.358,0C409.23,82.902,409.23,108.578,393.401,124.425z"/>\
|
||||||
|
</g>\
|
||||||
|
</svg>';
|
||||||
|
|
||||||
|
element.className = "checkbox-holder";
|
||||||
|
inner.className = "checkbox";
|
||||||
|
hiddenInput.type = "hidden";
|
||||||
|
box.className = "box";
|
||||||
|
box.id = id;
|
||||||
|
|
||||||
|
inner.appendChild(labelEl);
|
||||||
|
inner.appendChild(hiddenInput);
|
||||||
|
inner.appendChild(box);
|
||||||
|
element.appendChild(inner);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function updated() {
|
||||||
|
setInputEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
updated,
|
||||||
|
createCheckbox
|
||||||
|
}
|
||||||
|
})();
|
@ -9,6 +9,7 @@
|
|||||||
/** UTILITY AND INPUT **/
|
/** UTILITY AND INPUT **/
|
||||||
//=include Util.js
|
//=include Util.js
|
||||||
//=include Events.js
|
//=include Events.js
|
||||||
|
//=include InputComponents.js
|
||||||
//=include Dialogue.js
|
//=include Dialogue.js
|
||||||
//=include History.js
|
//=include History.js
|
||||||
//=include Settings.js
|
//=include Settings.js
|
||||||
@ -70,9 +71,10 @@ PresetModule.instrumentPresetMenu();
|
|||||||
|
|
||||||
//when the page is done loading, you can get ready to start
|
//when the page is done loading, you can get ready to start
|
||||||
window.onload = function () {
|
window.onload = function () {
|
||||||
//featureToggles.onLoad();
|
// First cursor update
|
||||||
|
|
||||||
ToolManager.currentTool().updateCursor();
|
ToolManager.currentTool().updateCursor();
|
||||||
|
// Apply checkboxes
|
||||||
|
|
||||||
|
|
||||||
//check if there are any url parameters
|
//check if there are any url parameters
|
||||||
if (window.location.pathname.replace('/pixel-editor/','').length <= 1) {
|
if (window.location.pathname.replace('/pixel-editor/','').length <= 1) {
|
||||||
|
10
svg/check.svg
Normal file
10
svg/check.svg
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
width="405.272px" height="405.272px" viewBox="0 0 405.272 405.272" style="enable-background:new 0 0 405.272 405.272;"
|
||||||
|
xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<path d="M393.401,124.425L179.603,338.208c-15.832,15.835-41.514,15.835-57.361,0L11.878,227.836
|
||||||
|
c-15.838-15.835-15.838-41.52,0-57.358c15.841-15.841,41.521-15.841,57.355-0.006l81.698,81.699L336.037,67.064
|
||||||
|
c15.841-15.841,41.523-15.829,57.358,0C409.23,82.902,409.23,108.578,393.401,124.425z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 581 B |
7
views/components/checkbox.hbs
Normal file
7
views/components/checkbox.hbs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<div class="checkbox-holder">
|
||||||
|
<div class="checkbox checked">
|
||||||
|
<label>Snap to grid</label>
|
||||||
|
<input type="hidden"/>
|
||||||
|
<div class="box">{{svg "check"}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -69,7 +69,7 @@
|
|||||||
<li id="editor-info">
|
<li id="editor-info">
|
||||||
<ul>
|
<ul>
|
||||||
<li><label><span>Tool size: </span><input type="text" width="10px"/></label></li>
|
<li><label><span>Tool size: </span><input type="text" width="10px"/></label></li>
|
||||||
<li><label><span>Continuous: </span><input type="checkbox"/></label></li>
|
<li>{{> checkbox}}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
Loading…
Reference in New Issue
Block a user