commit
5424fff322
23 changed files with 599 additions and 0 deletions
@ -0,0 +1,2 @@ |
|||||||
|
.idea |
||||||
|
|
@ -0,0 +1,6 @@ |
|||||||
|
{ |
||||||
|
"display_name": "Colors", |
||||||
|
"info_text": "Many colors.", |
||||||
|
"visible": false, |
||||||
|
"tags": ["Simulation"] |
||||||
|
} |
After Width: | Height: | Size: 318 B |
@ -0,0 +1,35 @@ |
|||||||
|
class Colors{ |
||||||
|
|
||||||
|
constructor() { |
||||||
|
this.minSize = 25; |
||||||
|
p.colorMode(p.HSB); |
||||||
|
} |
||||||
|
|
||||||
|
display(){ |
||||||
|
this.paint({x: 0, y: 0, w: p.width, h: p.height}, p.color(p.random(360), 100, 100)); |
||||||
|
} |
||||||
|
|
||||||
|
paint(rect, colorScheme){ |
||||||
|
if (rect.w < this.minSize || rect.h < this.minSize){ |
||||||
|
p.stroke(0); |
||||||
|
p.strokeWeight(1); |
||||||
|
p.fill(colorScheme); |
||||||
|
p.rect(rect.x, rect.y, rect.w, rect.h); |
||||||
|
} else { |
||||||
|
let change = 25; |
||||||
|
colorScheme = p.color(p.hue(colorScheme) + p.noise(p.frameCount) * change, 100, 100); |
||||||
|
let axis = ranBoolP(rect.w / rect.h - 0.5); //true -> x, false -> y
|
||||||
|
let offset = 0.2; |
||||||
|
if (axis){ |
||||||
|
let w = p.random(rect.w * offset, rect.w * (1 - offset)); |
||||||
|
this.paint({x: rect.x, y: rect.y, w: w, h: rect.h}, colorScheme); |
||||||
|
this.paint({x: rect.x + w, y: rect.y, w: rect.w - w, h: rect.h}, colorScheme); |
||||||
|
} else { |
||||||
|
let h = p.random(rect.h * offset, rect.h * (1 - offset)); |
||||||
|
this.paint({x: rect.x, y: rect.y, w: rect.w, h: h}, colorScheme); |
||||||
|
this.paint({x: rect.x, y: rect.y + h, w: rect.w, h: rect.h - h}, colorScheme); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
p.keyPressed = () => { |
||||||
|
switch (p.keyCode){ |
||||||
|
//Ctrl + D
|
||||||
|
case 68: |
||||||
|
if (p.keyIsDown(17)){ |
||||||
|
debug = !debug; |
||||||
|
let msg = 'Debug mode turned ' + (debug ? 'ON' : 'OFF'); |
||||||
|
console.info(msg); |
||||||
|
return false; |
||||||
|
} |
||||||
|
break; |
||||||
|
case 67: |
||||||
|
colors.display(); |
||||||
|
break; |
||||||
|
case 76: |
||||||
|
if (p.isLooping()){ |
||||||
|
p.noLoop(); |
||||||
|
} else{ |
||||||
|
p.loop(); |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
p.windowResized = () => { |
||||||
|
let element = $('#canvas_holder'); |
||||||
|
let w = element.width(), |
||||||
|
h = element.height(); |
||||||
|
p.resizeCanvas(w, h); |
||||||
|
}; |
@ -0,0 +1,95 @@ |
|||||||
|
'use strict'; |
||||||
|
|
||||||
|
let debug = false, |
||||||
|
font, |
||||||
|
settings, |
||||||
|
loader; |
||||||
|
|
||||||
|
//Only for online games
|
||||||
|
let socket; |
||||||
|
|
||||||
|
let antiCacheQuery = '?_=' + new Date().getTime(); |
||||||
|
|
||||||
|
let colors; |
||||||
|
|
||||||
|
const p = new p5((p) => { |
||||||
|
|
||||||
|
p.preload = () => { |
||||||
|
settings = p.loadJSON('data/settings/settings.json' + antiCacheQuery, {}, 'json', (json) => { |
||||||
|
console.log('Local settings loaded: ', json); |
||||||
|
}, (error) => { |
||||||
|
console.log('Local settings failed: ', error); |
||||||
|
}); |
||||||
|
|
||||||
|
font = p.loadFont('data/styles/fonts/Tajawal/Tajawal-Regular.ttf' + antiCacheQuery, (font) => { |
||||||
|
console.log('Local font loaded: ', font); |
||||||
|
}, (error) => { |
||||||
|
console.log('Local font failed: ', error); |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
p.setup = () => { |
||||||
|
interfaceSetup(); |
||||||
|
canvasSetup(); |
||||||
|
//loader = new Loader(p.createVector(p.width / 2, p.height / 2), Math.min(p.width, p.height) / 2);
|
||||||
|
loadDynamicScripts().then(() => { |
||||||
|
//Load other stuff, then =>
|
||||||
|
//loader = null;
|
||||||
|
colors = new Colors(); |
||||||
|
colors.display(); |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
p.draw = () => { |
||||||
|
p.background(30); |
||||||
|
|
||||||
|
if (loader){ |
||||||
|
loader.update(); |
||||||
|
loader.display(); |
||||||
|
} |
||||||
|
|
||||||
|
if (colors){ |
||||||
|
colors.display(); |
||||||
|
} |
||||||
|
|
||||||
|
if (debug) debugInformation(); |
||||||
|
}; |
||||||
|
}); |
||||||
|
|
||||||
|
function debugInformation(){ |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
function interfaceSetup(){ |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
function canvasSetup(){ |
||||||
|
p.frameRate(60); |
||||||
|
let element = $('#canvas_holder'); |
||||||
|
let w = element.width(), |
||||||
|
h = element.height(); |
||||||
|
let canvas = p.createCanvas(w, h); |
||||||
|
canvas.parent('canvas_holder'); |
||||||
|
p.textFont(font); |
||||||
|
p.frameRate(5); |
||||||
|
} |
||||||
|
|
||||||
|
async function loadDynamicScripts(){ |
||||||
|
const json = await p.httpGet('data/settings/libraries.json' + antiCacheQuery, 'json'); |
||||||
|
let requests = []; |
||||||
|
for (let script in json) { |
||||||
|
if (json.hasOwnProperty(script)){ |
||||||
|
if (json[script]) { |
||||||
|
let url = '/lib/benjocraeft/' + script + '.js'; |
||||||
|
requests.push($.getScript(url, () => { |
||||||
|
console.log('Successfully loaded script: ', url); |
||||||
|
})); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
await $.when(...requests); |
||||||
|
console.log('All dynamic scripts have been loaded!'); |
||||||
|
} |
@ -0,0 +1,46 @@ |
|||||||
|
class Loader{ |
||||||
|
|
||||||
|
constructor(pos, radius){ |
||||||
|
this.pos = pos; |
||||||
|
this.c = p.createGraphics(radius * 2, radius * 2); |
||||||
|
this.radius = radius; |
||||||
|
this.center = p.createVector(radius, radius); |
||||||
|
this.message = 'Loading...'; |
||||||
|
this.progress = 0; |
||||||
|
this.angle = 0; |
||||||
|
} |
||||||
|
|
||||||
|
update(){ |
||||||
|
this.angle += Math.PI / 10; |
||||||
|
} |
||||||
|
|
||||||
|
display(){ |
||||||
|
let c = this.c; |
||||||
|
c.clear(); |
||||||
|
c.noFill(); |
||||||
|
c.stroke(20, 100, 200); |
||||||
|
c.strokeWeight(this.radius * 0.025); |
||||||
|
//c.arc(this.center.x, this.center.y, this.radius * 2, this.radius * 2, this.angle, this.angle + Math.PI * 1.5);
|
||||||
|
c.strokeWeight(2); |
||||||
|
c.rect(this.center.x - this.radius + 5, this.center.y - 25, this.radius * 2 - 50, 50); |
||||||
|
c.fill(50, 150, 255); |
||||||
|
c.rect(this.center.x - this.radius + 5, this.center.y - 25, (this.radius - 50) * this.progress, 50); |
||||||
|
|
||||||
|
c.textAlign(p.CENTER, p.CENTER); |
||||||
|
c.textSize(25); |
||||||
|
c.fill(220); |
||||||
|
c.strokeWeight(4); |
||||||
|
c.text(this.message, this.radius, this.radius * 1.5); |
||||||
|
|
||||||
|
c.textSize(40); |
||||||
|
c.text(Math.floor(this.progress * 100) + '%', this.radius, this.radius / 2); |
||||||
|
|
||||||
|
p.imageMode(p.CENTER); |
||||||
|
p.image(c, this.pos.x, this.pos.y); |
||||||
|
} |
||||||
|
|
||||||
|
destroy(){ |
||||||
|
this.c.remove(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
'use strict'; |
||||||
|
|
||||||
|
function socketConnect(project = settings.project, name = "noone"){ |
||||||
|
$.get('/php/get_nodejs_port.php', port => { |
||||||
|
let urlQueries = '?game=' + project.name + '&name=' + name; |
||||||
|
let url = 'https://' + location.hostname + ":" + port + urlQueries; |
||||||
|
|
||||||
|
socket = io.connect(url); |
||||||
|
socket.on('connect', () => console.log('Connected to ', url)); |
||||||
|
}); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"collision": false, |
||||||
|
"colorPicker": false, |
||||||
|
"cookie": false, |
||||||
|
"prototypes": false, |
||||||
|
"technical": true |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
{ |
||||||
|
"project": { |
||||||
|
"name": "project_pattern", |
||||||
|
"author": "BenjoCraeft", |
||||||
|
"version": "0.0.0", |
||||||
|
"playerCounts": [], |
||||||
|
"online": { |
||||||
|
"iceServers": [ |
||||||
|
{"urls": "stun:stun.l.google.com:19302"}, |
||||||
|
{ |
||||||
|
"urls": "turn:numb.viagenie.ca", |
||||||
|
"credential": "muazkh", |
||||||
|
"username": "webrtc@live.com" |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
}, |
||||||
|
"frameWork": { |
||||||
|
"frameRate": 60, |
||||||
|
"width": null, |
||||||
|
"height": null |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,88 @@ |
|||||||
|
#color_picker{ |
||||||
|
width: 300px; |
||||||
|
height: 25%; |
||||||
|
margin: 20px; |
||||||
|
margin-top: 50px; |
||||||
|
border: 5px solid #000; |
||||||
|
background-color: #000; |
||||||
|
-webkit-user-select: none; |
||||||
|
-moz-user-select: none; |
||||||
|
-ms-user-select: none; |
||||||
|
user-select: none; |
||||||
|
position: relative; |
||||||
|
} |
||||||
|
#color_picker_numeric{ |
||||||
|
width: 80%; |
||||||
|
padding: 5%; |
||||||
|
margin: 5%; |
||||||
|
background-color: #888; |
||||||
|
border-radius: 10px; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.color_picker_rgb{ |
||||||
|
float: left; |
||||||
|
width: 22%; |
||||||
|
height: 35px; |
||||||
|
font-size: 25px; |
||||||
|
color: #000; |
||||||
|
} |
||||||
|
.color_picker_rgb:nth-child(1){ |
||||||
|
margin-right: 10%; |
||||||
|
margin-left: 3%; |
||||||
|
background-color: #F00; |
||||||
|
|
||||||
|
} |
||||||
|
.color_picker_rgb:nth-child(2){ |
||||||
|
background-color: #0F0; |
||||||
|
} |
||||||
|
.color_picker_rgb:nth-child(3){ |
||||||
|
margin-left: 10%; |
||||||
|
background-color: #00F; |
||||||
|
color: #FFF; |
||||||
|
} |
||||||
|
#color_picker_hex{ |
||||||
|
width: 50%; |
||||||
|
height: 30px; |
||||||
|
font-size: 25px; |
||||||
|
margin: 10% 25% 0 25%; |
||||||
|
} |
||||||
|
#saturation{ |
||||||
|
position: relative; |
||||||
|
width: calc(100% - 33px); |
||||||
|
height: 100%; |
||||||
|
background: linear-gradient(to right, #FFF 0%, #F00 100%); |
||||||
|
float: left; |
||||||
|
margin-right: 6px; |
||||||
|
} |
||||||
|
#value { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%); |
||||||
|
} |
||||||
|
#sb_picker{ |
||||||
|
border: 2px solid; |
||||||
|
border-color: #FFF; |
||||||
|
position: absolute; |
||||||
|
width: 14px; |
||||||
|
height: 14px; |
||||||
|
border-radius: 10px; |
||||||
|
bottom: 50px; |
||||||
|
left: 50px; |
||||||
|
box-sizing: border-box; |
||||||
|
z-index: 10; |
||||||
|
} |
||||||
|
#hue { |
||||||
|
width: 27px; |
||||||
|
height: 100%; |
||||||
|
position: relative; |
||||||
|
float: left; |
||||||
|
background: linear-gradient(to bottom, #F00 0%, #F0F 17%, #00F 34%, #0FF 50%, #0F0 67%, #FF0 84%, #F00 100%); |
||||||
|
} |
||||||
|
#hue_picker { |
||||||
|
position: absolute; |
||||||
|
background: #000; |
||||||
|
border-bottom: 1px solid #000; |
||||||
|
top: 0; |
||||||
|
width: 27px; |
||||||
|
height: 2px; |
||||||
|
} |
Binary file not shown.
@ -0,0 +1,93 @@ |
|||||||
|
Copyright 2018 Boutros International. (https://www.boutrosfonts.com) |
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1. |
||||||
|
This license is copied below, and is also available with a FAQ at: |
||||||
|
https://scripts.sil.org/OFL |
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------- |
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 |
||||||
|
----------------------------------------------------------- |
||||||
|
|
||||||
|
PREAMBLE |
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide |
||||||
|
development of collaborative font projects, to support the font creation |
||||||
|
efforts of academic and linguistic communities, and to provide a free and |
||||||
|
open framework in which fonts may be shared and improved in partnership |
||||||
|
with others. |
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and |
||||||
|
redistributed freely as long as they are not sold by themselves. The |
||||||
|
fonts, including any derivative works, can be bundled, embedded, |
||||||
|
redistributed and/or sold with any software provided that any reserved |
||||||
|
names are not used by derivative works. The fonts and derivatives, |
||||||
|
however, cannot be released under any other type of license. The |
||||||
|
requirement for fonts to remain under this license does not apply |
||||||
|
to any document created using the fonts or their derivatives. |
||||||
|
|
||||||
|
DEFINITIONS |
||||||
|
"Font Software" refers to the set of files released by the Copyright |
||||||
|
Holder(s) under this license and clearly marked as such. This may |
||||||
|
include source files, build scripts and documentation. |
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the |
||||||
|
copyright statement(s). |
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as |
||||||
|
distributed by the Copyright Holder(s). |
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting, |
||||||
|
or substituting -- in part or in whole -- any of the components of the |
||||||
|
Original Version, by changing formats or by porting the Font Software to a |
||||||
|
new environment. |
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical |
||||||
|
writer or other person who contributed to the Font Software. |
||||||
|
|
||||||
|
PERMISSION & CONDITIONS |
||||||
|
Permission is hereby granted, free of charge, to any person obtaining |
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify, |
||||||
|
redistribute, and sell modified and unmodified copies of the Font |
||||||
|
Software, subject to the following conditions: |
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components, |
||||||
|
in Original or Modified Versions, may be sold by itself. |
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled, |
||||||
|
redistributed and/or sold with any software, provided that each copy |
||||||
|
contains the above copyright notice and this license. These can be |
||||||
|
included either as stand-alone text files, human-readable headers or |
||||||
|
in the appropriate machine-readable metadata fields within text or |
||||||
|
binary files as long as those fields can be easily viewed by the user. |
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font |
||||||
|
Name(s) unless explicit written permission is granted by the corresponding |
||||||
|
Copyright Holder. This restriction only applies to the primary font name as |
||||||
|
presented to the users. |
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font |
||||||
|
Software shall not be used to promote, endorse or advertise any |
||||||
|
Modified Version, except to acknowledge the contribution(s) of the |
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written |
||||||
|
permission. |
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole, |
||||||
|
must be distributed entirely under this license, and must not be |
||||||
|
distributed under any other license. The requirement for fonts to |
||||||
|
remain under this license does not apply to any document created |
||||||
|
using the Font Software. |
||||||
|
|
||||||
|
TERMINATION |
||||||
|
This license becomes null and void if any of the above conditions are |
||||||
|
not met. |
||||||
|
|
||||||
|
DISCLAIMER |
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF |
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT |
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE |
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL |
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM |
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,89 @@ |
|||||||
|
input[type=range] { |
||||||
|
-webkit-appearance: none; |
||||||
|
margin: 18px 0; |
||||||
|
width: 100%; |
||||||
|
background: none; |
||||||
|
} |
||||||
|
input[type=range]:focus { |
||||||
|
outline: none; |
||||||
|
} |
||||||
|
input[type=range]::-webkit-slider-runnable-track { |
||||||
|
width: 100%; |
||||||
|
height: 8.4px; |
||||||
|
cursor: pointer; |
||||||
|
animate: 0.2s; |
||||||
|
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; |
||||||
|
background: #3071a9; |
||||||
|
border-radius: 1.3px; |
||||||
|
border: 0.2px solid #010101; |
||||||
|
} |
||||||
|
input[type=range]::-webkit-slider-thumb { |
||||||
|
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; |
||||||
|
border: 1px solid #000000; |
||||||
|
height: 36px; |
||||||
|
width: 16px; |
||||||
|
border-radius: 3px; |
||||||
|
background: #ffffff; |
||||||
|
cursor: pointer; |
||||||
|
-webkit-appearance: none; |
||||||
|
margin-top: -14px; |
||||||
|
} |
||||||
|
input[type=range]:focus::-webkit-slider-runnable-track { |
||||||
|
background: #367ebd; |
||||||
|
} |
||||||
|
input[type=range]::-moz-range-track { |
||||||
|
width: 100%; |
||||||
|
height: 8.4px; |
||||||
|
cursor: pointer; |
||||||
|
animate: 0.2s; |
||||||
|
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; |
||||||
|
background: #3071a9; |
||||||
|
border-radius: 1.3px; |
||||||
|
border: 0.2px solid #010101; |
||||||
|
} |
||||||
|
input[type=range]::-moz-range-thumb { |
||||||
|
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; |
||||||
|
border: 1px solid #000000; |
||||||
|
height: 36px; |
||||||
|
width: 16px; |
||||||
|
border-radius: 3px; |
||||||
|
background: #ffffff; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
input[type=range]::-ms-track { |
||||||
|
width: 100%; |
||||||
|
height: 8.4px; |
||||||
|
cursor: pointer; |
||||||
|
animate: 0.2s; |
||||||
|
background: transparent; |
||||||
|
border-color: transparent; |
||||||
|
border-width: 16px 0; |
||||||
|
color: transparent; |
||||||
|
} |
||||||
|
input[type=range]::-ms-fill-lower { |
||||||
|
background: #2a6495; |
||||||
|
border: 0.2px solid #010101; |
||||||
|
border-radius: 2.6px; |
||||||
|
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; |
||||||
|
} |
||||||
|
input[type=range]::-ms-fill-upper { |
||||||
|
background: #3071a9; |
||||||
|
border: 0.2px solid #010101; |
||||||
|
border-radius: 2.6px; |
||||||
|
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; |
||||||
|
} |
||||||
|
input[type=range]::-ms-thumb { |
||||||
|
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; |
||||||
|
border: 1px solid #000000; |
||||||
|
height: 36px; |
||||||
|
width: 16px; |
||||||
|
border-radius: 3px; |
||||||
|
background: #ffffff; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
input[type=range]:focus::-ms-fill-lower { |
||||||
|
background: #3071a9; |
||||||
|
} |
||||||
|
input[type=range]:focus::-ms-fill-upper { |
||||||
|
background: #367ebd; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
<!-- Web project created by Benjo Craeft (alias) --> |
||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8"> |
||||||
|
<script src="/lib/p5/p5.min.js" type="text/javascript"></script> |
||||||
|
<script src="/lib/jquery/jquery.min.js" type="text/javascript"></script> |
||||||
|
<script src="data/scripts/init.js" type="text/javascript"></script> |
||||||
|
<script src="data/scripts/events.js" type="text/javascript"></script> |
||||||
|
<script src="data/scripts/colors.js" type="text/javascript"></script> |
||||||
|
<link href="styles.css" rel="stylesheet"> |
||||||
|
<link href="data/styles/color_picker.css" rel="stylesheet"> |
||||||
|
<link href="data/styles/range_input.css" rel="stylesheet"> |
||||||
|
<link href="data/images/favicon.ico" rel="icon" type="image/x-icon"> |
||||||
|
<title>Colors</title> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<div id="p5_loading"></div> |
||||||
|
<div id="content"> |
||||||
|
<div id="canvas_holder"></div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,49 @@ |
|||||||
|
a:link, a:hover, a:active, a:visited{color: #000;} |
||||||
|
|
||||||
|
html, body{margin: 0; padding: 0; height: 100%; width: 100%;} |
||||||
|
|
||||||
|
canvas{margin: 0; padding: 0; border: none; display: block;} |
||||||
|
|
||||||
|
button:hover{cursor: pointer;} |
||||||
|
|
||||||
|
@font-face{ |
||||||
|
font-family: "Tajawal"; |
||||||
|
src: url("data/styles/fonts/Tajawal/Tajawal-Regular.ttf"); |
||||||
|
} |
||||||
|
@font-face{ |
||||||
|
font-family: "Elronet"; |
||||||
|
src: url("data/styles/fonts/Elronet/Elronmonospace.ttf"); |
||||||
|
} |
||||||
|
|
||||||
|
*{ |
||||||
|
font-family: "Tajawal"; |
||||||
|
color: #000; |
||||||
|
font-size: 17px; |
||||||
|
} |
||||||
|
|
||||||
|
:root{ |
||||||
|
--width: 100vw; |
||||||
|
--height: 100vh; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Standard styles |
||||||
|
*/ |
||||||
|
|
||||||
|
#canvas_holder{ |
||||||
|
position: relative; |
||||||
|
width: var(--width); |
||||||
|
height: var(--height); |
||||||
|
} |
||||||
|
#canvas_holder canvas{ |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
right: 0; |
||||||
|
bottom: 0; |
||||||
|
border-radius: inherit; |
||||||
|
} |
||||||
|
#p5_loading{ |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue