Compare commits
83 Commits
Author | SHA1 | Date | |
---|---|---|---|
f8c61cfe0c | |||
c6dd4d18f3 | |||
dbf8072343 | |||
d7c6231e78 | |||
816639f51b | |||
1015173f28 | |||
f9823258ac | |||
3ae5474ec0 | |||
44aded6d40 | |||
cf8bdc97d8 | |||
cbb249ccdc | |||
42c9eacf4f | |||
37789c7a66 | |||
e7d8bcdcc4 | |||
abd1d24f9b | |||
b54f83acb6 | |||
2e93696ce7 | |||
bf2c9f765e | |||
6eea416121 | |||
44645aa38c | |||
457d1e3d62 | |||
d711698c55 | |||
7b625bd10c | |||
897bfd5ac9 | |||
7a7e619133 | |||
d35308f1df | |||
bbacd6d8ed | |||
ba6f8663e3 | |||
1aa27aeb42 | |||
d6569f6ed3 | |||
a0485331ae | |||
1692822914 | |||
e5f0197170 | |||
992e55dec6 | |||
18764e7d12 | |||
b1e18d0c56 | |||
d7102ae0bd | |||
ef6d253896 | |||
c9be4f9452 | |||
978d6ef832 | |||
2be28f4d3d | |||
5e94b69aa0 | |||
f589e71686 | |||
0caacd6223 | |||
d6608ab263 | |||
0501123763 | |||
24506def11 | |||
e9a5e27266 | |||
db9e832984 | |||
d64a228a8b | |||
5c44830746 | |||
13ea6514f8 | |||
3f130c08cb | |||
9bdd17d456 | |||
375c496ff9 | |||
4537f750ca | |||
590626fc85 | |||
9840b54f54 | |||
2a2cf7190f | |||
bd7f84c8f0 | |||
f6c72be223 | |||
b8e96a33b1 | |||
621173555c | |||
16594369d8 | |||
d98ddef0b9 | |||
21cc6c1fdb | |||
7c8e183cb7 | |||
c6e90cbf9f | |||
062d30b056 | |||
d82981c995 | |||
843a61b25a | |||
69a2a76192 | |||
6f6d2b84b3 | |||
16dbfea134 | |||
635eb88cdd | |||
8cdd554db2 | |||
d489504a88 | |||
05edee6f3c | |||
9e2ad39f39 | |||
1b023a58c7 | |||
fcb5563e29 | |||
d4c869a442 | |||
e6e2f20d80 |
17
.gitignore
vendored
@ -3,25 +3,10 @@
|
||||
|
||||
# nodejs local installs
|
||||
node_modules
|
||||
npm-debug.log
|
||||
|
||||
# sublime text stuff (the -project should actually be shared, but then we'd have to share the same disk location)
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
|
||||
# git stackdumps
|
||||
*.stackdump
|
||||
|
||||
|
||||
# diffs
|
||||
diff.txt
|
||||
|
||||
# build destination
|
||||
dest
|
||||
build/closure/closure_compiled_binary.js
|
||||
|
||||
# plato report directory
|
||||
report
|
||||
|
||||
# marked as private
|
||||
*.private.*
|
||||
*.stackdump
|
14
.travis.yml
@ -1,14 +0,0 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 0.10
|
||||
before_install:
|
||||
- npm update -g npm
|
||||
- npm install -g grunt-cli
|
||||
- git clone git://github.com/n1k0/casperjs.git ~/casperjs
|
||||
- cd ~/casperjs
|
||||
- git checkout tags/1.0.2
|
||||
- export PATH=$PATH:`pwd`/bin
|
||||
- cd -
|
||||
before_script:
|
||||
- phantomjs --version
|
||||
- casperjs --version
|
341
Gruntfile.js
@ -1,341 +0,0 @@
|
||||
/**
|
||||
* How to run grunt tasks:
|
||||
* - At project root, run 'npm install' - It will install nodedependencies declared in package,json in <root>/.node_modules
|
||||
* - install grunt CLI tools globally, run 'npm install -g grunt-cli'
|
||||
* - run a grunt target defined in Gruntfiles.js, ex: 'grunt lint'
|
||||
*
|
||||
* Note: The 'ghost' grunt task have special deps on CasperJS and phantomjs.
|
||||
* For now, It's configured to run only on TravisCI where these deps are
|
||||
* correctly defined.
|
||||
* If you run this task locally, it may require some env set up first.
|
||||
*/
|
||||
|
||||
|
||||
module.exports = function(grunt) {
|
||||
var dateFormat = require('dateformat');
|
||||
var now = new Date();
|
||||
var version = '-' + dateFormat(now, "yyyy-mm-dd-hh-MM");
|
||||
|
||||
var mapToSrcFolder = function (path) {
|
||||
return "src/" + path;
|
||||
};
|
||||
|
||||
var piskelScripts = require('./src/piskel-script-list.js').scripts.map(mapToSrcFolder).filter(function (path) {
|
||||
return path.indexOf('devtools') === -1;
|
||||
});
|
||||
var piskelStyles = require('./src/piskel-style-list.js').styles.map(mapToSrcFolder);
|
||||
|
||||
var mapToCasperFolder = function (path) {
|
||||
return "test/casperjs/" + path;
|
||||
};
|
||||
|
||||
var casperEnvironments = {
|
||||
'local' : {
|
||||
suite : './test/casperjs/LocalTestSuite.js',
|
||||
delay : 50
|
||||
},
|
||||
'travis' : {
|
||||
suite : './test/casperjs/TravisTestSuite.js',
|
||||
delay : 10000
|
||||
}
|
||||
};
|
||||
|
||||
var getCasperConfig = function (env) {
|
||||
var conf = casperEnvironments[env];
|
||||
var tests = require(conf.suite).tests.map(mapToCasperFolder);
|
||||
return {
|
||||
filesSrc : tests,
|
||||
options : {
|
||||
args : {
|
||||
baseUrl : 'http://localhost:' + '<%= express.test.options.port %>/',
|
||||
mode : '?debug',
|
||||
delay : conf.delay
|
||||
},
|
||||
async : false,
|
||||
direct : false,
|
||||
logLevel : 'info',
|
||||
printCommand : false,
|
||||
printFilePaths : true
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
var getExpressConfig = function (source, port, host) {
|
||||
var bases;
|
||||
if (typeof source === 'string') {
|
||||
bases = [source];
|
||||
} else if (Array.isArray(source)) {
|
||||
bases = source;
|
||||
}
|
||||
|
||||
return {
|
||||
options: {
|
||||
port: port,
|
||||
hostname : host || 'localhost',
|
||||
bases: bases
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
grunt.initConfig({
|
||||
clean: {
|
||||
before: ['dest'],
|
||||
after: ['build/closure/closure_compiled_binary.js']
|
||||
},
|
||||
jshint: {
|
||||
options: {
|
||||
indent:2,
|
||||
undef : true,
|
||||
latedef : true,
|
||||
browser : true,
|
||||
trailing : true,
|
||||
curly : true,
|
||||
es3 : true,
|
||||
globals : {'$':true, 'jQuery' : true, 'pskl':true, 'Events':true, 'Constants':true, 'console' : true, 'module':true, 'require':true}
|
||||
},
|
||||
files: [
|
||||
'Gruntfile.js',
|
||||
'package.json',
|
||||
'src/js/**/*.js',
|
||||
'!src/js/lib/**/*.js' // Exclude lib folder (note the leading !)
|
||||
]
|
||||
},
|
||||
express: {
|
||||
test: getExpressConfig(['src', 'test'], 9991),
|
||||
regular: getExpressConfig('dest', 9001),
|
||||
debug: getExpressConfig(['src', 'test'], 9901)
|
||||
},
|
||||
open : {
|
||||
regular : {
|
||||
path : 'http://localhost:9001/'
|
||||
},
|
||||
debug : {
|
||||
path : 'http://localhost:9901/?debug'
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
scripts: {
|
||||
files: ['src/**/*.*'],
|
||||
tasks: ['merge'],
|
||||
options: {
|
||||
spawn: false
|
||||
}
|
||||
}
|
||||
},
|
||||
ghost : {
|
||||
'travis' : getCasperConfig('travis'),
|
||||
'local' : getCasperConfig('local')
|
||||
},
|
||||
concat : {
|
||||
js : {
|
||||
options : {
|
||||
separator : ';'
|
||||
},
|
||||
src : piskelScripts,
|
||||
dest : 'dest/js/piskel-packaged' + version + '.js'
|
||||
},
|
||||
css : {
|
||||
src : piskelStyles,
|
||||
dest : 'dest/css/piskel-style-packaged' + version + '.css'
|
||||
}
|
||||
},
|
||||
uglify : {
|
||||
options : {
|
||||
mangle : true
|
||||
},
|
||||
my_target : {
|
||||
files : {
|
||||
'dest/js/piskel-packaged-min.js' : ['dest/js/piskel-packaged' + version + '.js']
|
||||
}
|
||||
}
|
||||
},
|
||||
replace: {
|
||||
main: {
|
||||
options: {
|
||||
patterns: [
|
||||
{
|
||||
match: 'version',
|
||||
replacement: version
|
||||
}
|
||||
]
|
||||
},
|
||||
files: [
|
||||
{src: ['src/piskel-boot.js'], dest: 'dest/piskel-boot.js'}
|
||||
]
|
||||
},
|
||||
editor: {
|
||||
options: {
|
||||
patterns: [
|
||||
{
|
||||
match: /templates\//g,
|
||||
replacement: "../templates"+version+"/"
|
||||
},{
|
||||
match: /piskel-boot.js/g,
|
||||
replacement: "../piskel-boot"+version+".js"
|
||||
},{
|
||||
match: /^(.|[\r\n])*<!--body-main-start-->/,
|
||||
replacement: "",
|
||||
description : "Remove everything before body-main-start comment"
|
||||
},{
|
||||
match: /<!--body-main-end-->(.|[\r\n])*$/,
|
||||
replacement: "",
|
||||
description : "Remove everything after body-main-end comment"
|
||||
},{
|
||||
match: /([\r\n]) /g,
|
||||
replacement: "$1",
|
||||
description : "Decrease indentation by one"
|
||||
}
|
||||
]
|
||||
},
|
||||
files: [
|
||||
{src: ['src/index.html'], dest: 'dest/piskelapp-partials/main-partial.html'}
|
||||
]
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
main: {
|
||||
files: [
|
||||
{src: ['dest/js/piskel-packaged-min.js'], dest: 'dest/js/piskel-packaged-min' + version + '.js'},
|
||||
{src: ['dest/piskel-boot.js'], dest: 'dest/piskel-boot' + version + '.js'},
|
||||
{src: ['src/logo.png'], dest: 'dest/logo.png'},
|
||||
{src: ['src/js/lib/iframeLoader-0.1.0.js'], dest: 'dest/js/lib/iframeLoader-0.1.0.js'},
|
||||
{src: ['src/js/lib/gif/gif.ie.worker.js'], dest: 'dest/js/lib/gif/gif.ie.worker.js'},
|
||||
{expand: true, src: ['img/**'], cwd: 'src/', dest: 'dest/', filter: 'isFile'},
|
||||
{expand: true, src: ['css/fonts/**'], cwd: 'src/', dest: 'dest/', filter: 'isFile'},
|
||||
{expand: true, src: ['**/*.html'], cwd: 'src/', dest: 'dest/', filter: 'isFile'}
|
||||
]
|
||||
}
|
||||
},
|
||||
closureCompiler: {
|
||||
options: {
|
||||
// [REQUIRED] Path to closure compiler
|
||||
compilerFile: 'build/closure/closure_compiler_20130823.jar',
|
||||
|
||||
// [OPTIONAL] set to true if you want to check if files were modified
|
||||
// before starting compilation (can save some time in large sourcebases)
|
||||
//checkModified: true,
|
||||
|
||||
// [OPTIONAL] Set Closure Compiler Directives here
|
||||
compilerOpts: {
|
||||
/**
|
||||
* Keys will be used as directives for the compiler
|
||||
* values can be strings or arrays.
|
||||
* If no value is required use null
|
||||
*/
|
||||
//compilation_level: 'ADVANCED_OPTIMIZATIONS',
|
||||
compilation_level: 'SIMPLE_OPTIMIZATIONS',
|
||||
externs: ['build/closure/piskel-closure-externs.js'],
|
||||
// Inject some constants in JS code, could we use that for appengine wiring ?
|
||||
//define: ["'goog.DEBUG=false'"],
|
||||
warning_level: 'verbose',
|
||||
jscomp_off: ['checkTypes', 'fileoverviewTags'],
|
||||
summary_detail_level: 1,
|
||||
language_in: 'ECMASCRIPT3'
|
||||
//output_wrapper: '"(function(){%output%}).call(this);"'
|
||||
},
|
||||
execOpts: { // [OPTIONAL] Set exec method options
|
||||
maxBuffer: 999999 * 1024
|
||||
}
|
||||
|
||||
},
|
||||
compile: {
|
||||
|
||||
/**
|
||||
*[OPTIONAL] Here you can add new or override previous option of the Closure Compiler Directives.
|
||||
* IMPORTANT! The feature is enabled as a temporary solution to [#738](https://github.com/gruntjs/grunt/issues/738).
|
||||
* As soon as issue will be fixed this feature will be removed.
|
||||
*/
|
||||
TEMPcompilerOpts: {
|
||||
},
|
||||
src: [
|
||||
'src/js/**/*.js',
|
||||
'src/piskel-boot.js',
|
||||
'src/piskel-script-list.js',
|
||||
'!src/js/lib/**/*.js'
|
||||
],
|
||||
|
||||
// This generated JS binary is currently not used and even excluded from source control using .gitignore.
|
||||
dest: 'build/closure/closure_compiled_binary.js'
|
||||
}
|
||||
},
|
||||
karma: {
|
||||
unit: {
|
||||
configFile: 'karma.conf.js'
|
||||
}
|
||||
},
|
||||
nodewebkit: {
|
||||
options: {
|
||||
build_dir: './dest/desktop/', // destination folder of releases.
|
||||
mac: true,
|
||||
win: true,
|
||||
linux32: true,
|
||||
linux64: true
|
||||
},
|
||||
src: ['./dest/**/*', "./package.json", "!./dest/desktop/"]
|
||||
}
|
||||
});
|
||||
|
||||
grunt.config.set('leadingIndent.indentation', 'spaces');
|
||||
grunt.config.set('leadingIndent.jsFiles', {
|
||||
src: [
|
||||
'src/js/**/*.js',
|
||||
'!src/js/lib/**/*.js'
|
||||
]
|
||||
});
|
||||
grunt.config.set('leadingIndent.cssFiles', {
|
||||
src: ['src/css/**/*.css']
|
||||
});
|
||||
|
||||
grunt.loadNpmTasks('grunt-closure-tools');
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
grunt.loadNpmTasks('grunt-express');
|
||||
grunt.loadNpmTasks('grunt-replace');
|
||||
grunt.loadNpmTasks('grunt-ghost');
|
||||
grunt.loadNpmTasks('grunt-open');
|
||||
grunt.loadNpmTasks('grunt-karma');
|
||||
grunt.loadNpmTasks('grunt-leading-indent');
|
||||
grunt.loadNpmTasks('grunt-node-webkit-builder');
|
||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||
|
||||
// Validate
|
||||
grunt.registerTask('lint', ['leadingIndent:jsFiles', 'leadingIndent:cssFiles', 'jshint']);
|
||||
|
||||
// karma/unit-tests task
|
||||
grunt.registerTask('unit-test', ['karma']);
|
||||
|
||||
// Validate & Test
|
||||
grunt.registerTask('test-travis', ['lint', 'compile', 'unit-test', 'express:test', 'ghost:travis']);
|
||||
// Validate & Test (faster version) will NOT work on travis !!
|
||||
grunt.registerTask('test-local', ['lint', 'compile', 'unit-test', 'express:test', 'ghost:local']);
|
||||
|
||||
grunt.registerTask('test', ['test-travis']);
|
||||
grunt.registerTask('precommit', ['test-local']);
|
||||
|
||||
|
||||
// Compile JS code (eg verify JSDoc annotation and types, no actual minified code generated).
|
||||
grunt.registerTask('compile', ['closureCompiler:compile', 'clean:after']);
|
||||
|
||||
grunt.registerTask('rep', ['replace:main', 'replace:editor']);
|
||||
|
||||
grunt.registerTask('merge', ['concat:js', 'concat:css', 'uglify', 'rep', 'copy']);
|
||||
|
||||
// Validate & Build
|
||||
grunt.registerTask('default', ['clean:before', 'lint', 'compile', 'merge']);
|
||||
|
||||
// Build stand alone app with nodewebkit
|
||||
grunt.registerTask('desktop', ['default', 'nodewebkit']);
|
||||
|
||||
grunt.registerTask('server', ['merge', 'express:regular', 'open:regular', 'express-keepalive']);
|
||||
|
||||
// Start webserver and watch for changes
|
||||
grunt.registerTask('server:watch', ['server', 'watch']);
|
||||
|
||||
// Start webserver on src folder, in debug mode
|
||||
grunt.registerTask('server:debug', ['express:debug', 'open:debug', 'express-keepalive']);
|
||||
};
|
76
README.md
@ -1,76 +0,0 @@
|
||||
Piskel
|
||||
======
|
||||
|
||||
[](https://travis-ci.org/juliandescottes/piskel) [](http://gruntjs.com/)
|
||||
|
||||
A simple web-based tool for Spriting and Pixel art.
|
||||
|
||||

|
||||
|
||||
You can try the standalone editor at **http://juliandescottes.github.io/piskel** or see it integrated in **http://piskelapp.com**.
|
||||
|
||||
Piskel is mainly developped by :
|
||||
|
||||
* **[@juliandescottes](https://github.com/juliandescottes)**
|
||||
* **[@grosbouddha](https://github.com/grosbouddha)**
|
||||
|
||||
## What's the point ?
|
||||
|
||||
You can use Piskel to do two things :
|
||||
* **spriting** : create retro-style sprites for games
|
||||
|
||||

|
||||
|
||||
* **pixelart** : create crazy/pretty pixelart animations for fun !
|
||||
|
||||

|
||||
|
||||
Integrated in **[piskelapp.com](http://piskelapp.com)**, you can share everything you work on with others as easily as you share a link.
|
||||
|
||||
## Requirements
|
||||
|
||||
Piskel supports the following browsers :
|
||||
* **Chrome** (latest)
|
||||
* **Firefox** (latest)
|
||||
* **Internet Explorer** 11+
|
||||
|
||||
... and a fairly recent computer.
|
||||
|
||||
We don't plan/want/could be forced into supporting older IEs. For Opera and Safari, we've never tested them but the gap shouldn't be huge.
|
||||
|
||||
## Offline version (Windows and MacOS)
|
||||
|
||||
Offline builds are available. More details in the [dedicated wiki page](https://github.com/juliandescottes/piskel/wiki/Desktop-applications).
|
||||
|
||||
## Built with
|
||||
|
||||
The Piskel editor is purely built in **JavaScript, HTML and CSS**. It uses Canvas extensively for displaying all them pretty sprites.
|
||||
|
||||
We also use the following **libraries** :
|
||||
* [spectrum](https://github.com/bgrins/spectrum) : awesome standalone colorpicker
|
||||
* [gifjs](http://jnordberg.github.io/gif.js/) : generate animated GIFs in javascript, using webworkers
|
||||
* [jszip](https://github.com/Stuk/jszip) : create, read and edit .zip files with Javascript
|
||||
* [canvas-toBlob](https://github.com/eligrey/canvas-toBlob.js/) : shim for canvas toBlob
|
||||
* [jquery](http://jquery.com/) : used sporadically in the application
|
||||
* [bootstrap-tooltip](http://getbootstrap.com/javascript/#tooltips) : nice tooltips
|
||||
|
||||
As well as some **icons** from the [Noun Project](http://thenounproject.com/) :
|
||||
* Folder by Simple Icons from The Noun Project
|
||||
* (and probably one or two others)
|
||||
|
||||
|
||||
## Contributing ?
|
||||
|
||||
Help is always welcome !
|
||||
|
||||
* **Issues** : Found a problem when using the application, want to request a feature, [open an issue](https://github.com/juliandescottes/piskel/issues).
|
||||
* **Participate** : Have a look at the [wiki](https://github.com/juliandescottes/piskel/wiki) to set up the development environment
|
||||
|
||||
## Licensing
|
||||
|
||||
Probably need to pick one at some point ... Until then it's a "do whatever you want with it" license.
|
||||
|
||||
## Mobile/Tablets
|
||||
|
||||
There is no support for mobile for now.
|
||||
|
@ -1,18 +0,0 @@
|
||||
/**
|
||||
* @fileoverview Externs for Piskel
|
||||
*
|
||||
* @externs
|
||||
*/
|
||||
|
||||
// Piskel externs.
|
||||
var exports;
|
||||
var pskl_exports;
|
||||
var $;
|
||||
var console;
|
||||
var pskl;
|
||||
|
||||
// Piskel libs externs.
|
||||
var define;
|
||||
var jQuery;
|
||||
var getComputedStyle;
|
||||
var URL;
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
4293
chromebook_alert/css/piskel-style-packaged-2017-07-17-12-59.css
Normal file
After Width: | Height: | Size: 222 B |
After Width: | Height: | Size: 255 B |
After Width: | Height: | Size: 255 B |
After Width: | Height: | Size: 254 B |
BIN
chromebook_alert/img/cursors/circle.png
Normal file
After Width: | Height: | Size: 766 B |
0
src/img/icons/color-palette.png → chromebook_alert/img/cursors/color-palette.png
Executable file → Normal file
Before Width: | Height: | Size: 209 B After Width: | Height: | Size: 209 B |
BIN
chromebook_alert/img/cursors/dither.png
Normal file
After Width: | Height: | Size: 702 B |
Before Width: | Height: | Size: 543 B After Width: | Height: | Size: 543 B |
0
src/img/icons/eraser.png → chromebook_alert/img/cursors/eraser.png
Executable file → Normal file
Before Width: | Height: | Size: 656 B After Width: | Height: | Size: 656 B |
Before Width: | Height: | Size: 672 B After Width: | Height: | Size: 672 B |
BIN
chromebook_alert/img/cursors/lighten.png
Normal file
After Width: | Height: | Size: 606 B |
Before Width: | Height: | Size: 557 B After Width: | Height: | Size: 557 B |
0
src/img/icons/paint-bucket.png → chromebook_alert/img/cursors/paint-bucket.png
Executable file → Normal file
Before Width: | Height: | Size: 707 B After Width: | Height: | Size: 707 B |
0
src/img/icons/pen.png → chromebook_alert/img/cursors/pen.png
Executable file → Normal file
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 450 B |
0
src/img/icons/rectangle.png → chromebook_alert/img/cursors/rectangle.png
Executable file → Normal file
Before Width: | Height: | Size: 660 B After Width: | Height: | Size: 660 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
chromebook_alert/img/cursors/stroke.png
Normal file
After Width: | Height: | Size: 617 B |
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 603 B |
0
src/img/icons/wand.png → chromebook_alert/img/cursors/wand.png
Executable file → Normal file
Before Width: | Height: | Size: 570 B After Width: | Height: | Size: 570 B |
Before Width: | Height: | Size: 177 B After Width: | Height: | Size: 177 B |
BIN
chromebook_alert/img/icons.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
chromebook_alert/img/icons/common/common-keyboard-gold.png
Normal file
After Width: | Height: | Size: 340 B |
BIN
chromebook_alert/img/icons/common/common-keyboard-gold@2x.png
Normal file
After Width: | Height: | Size: 570 B |
After Width: | Height: | Size: 565 B |
After Width: | Height: | Size: 960 B |
BIN
chromebook_alert/img/icons/common/common-warning-red.png
Normal file
After Width: | Height: | Size: 446 B |
BIN
chromebook_alert/img/icons/common/common-warning-red@2x.png
Normal file
After Width: | Height: | Size: 851 B |
BIN
chromebook_alert/img/icons/frame/frame-dragndrop-white.png
Normal file
After Width: | Height: | Size: 324 B |
BIN
chromebook_alert/img/icons/frame/frame-dragndrop-white@2x.png
Normal file
After Width: | Height: | Size: 537 B |
BIN
chromebook_alert/img/icons/frame/frame-duplicate-white.png
Normal file
After Width: | Height: | Size: 387 B |
BIN
chromebook_alert/img/icons/frame/frame-duplicate-white@2x.png
Normal file
After Width: | Height: | Size: 664 B |
BIN
chromebook_alert/img/icons/frame/frame-plus-white.png
Normal file
After Width: | Height: | Size: 210 B |
BIN
chromebook_alert/img/icons/frame/frame-plus-white@2x.png
Normal file
After Width: | Height: | Size: 262 B |
BIN
chromebook_alert/img/icons/frame/frame-recyclebin-white.png
Normal file
After Width: | Height: | Size: 319 B |
BIN
chromebook_alert/img/icons/frame/frame-recyclebin-white@2x.png
Normal file
After Width: | Height: | Size: 539 B |
After Width: | Height: | Size: 301 B |
After Width: | Height: | Size: 367 B |
After Width: | Height: | Size: 246 B |
After Width: | Height: | Size: 357 B |
BIN
chromebook_alert/img/icons/settings/settings-export-white.png
Normal file
After Width: | Height: | Size: 589 B |
BIN
chromebook_alert/img/icons/settings/settings-export-white@2x.png
Normal file
After Width: | Height: | Size: 1016 B |
BIN
chromebook_alert/img/icons/settings/settings-gear-white.png
Normal file
After Width: | Height: | Size: 668 B |
BIN
chromebook_alert/img/icons/settings/settings-gear-white@2x.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 587 B |
After Width: | Height: | Size: 1008 B |
BIN
chromebook_alert/img/icons/settings/settings-resize-white.png
Normal file
After Width: | Height: | Size: 392 B |
BIN
chromebook_alert/img/icons/settings/settings-resize-white@2x.png
Normal file
After Width: | Height: | Size: 656 B |
BIN
chromebook_alert/img/icons/settings/settings-save-white.png
Normal file
After Width: | Height: | Size: 381 B |
BIN
chromebook_alert/img/icons/settings/settings-save-white@2x.png
Normal file
After Width: | Height: | Size: 652 B |
BIN
chromebook_alert/img/icons/tools/tool-circle.png
Normal file
After Width: | Height: | Size: 495 B |
BIN
chromebook_alert/img/icons/tools/tool-circle@2x.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
chromebook_alert/img/icons/tools/tool-colorpicker.png
Normal file
After Width: | Height: | Size: 563 B |
BIN
chromebook_alert/img/icons/tools/tool-colorpicker@2x.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
chromebook_alert/img/icons/tools/tool-colorswap.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
chromebook_alert/img/icons/tools/tool-colorswap@2x.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
chromebook_alert/img/icons/tools/tool-dithering.png
Normal file
After Width: | Height: | Size: 245 B |
BIN
chromebook_alert/img/icons/tools/tool-dithering@2x.png
Normal file
After Width: | Height: | Size: 393 B |
BIN
chromebook_alert/img/icons/tools/tool-eraser.png
Normal file
After Width: | Height: | Size: 524 B |
BIN
chromebook_alert/img/icons/tools/tool-eraser@2x.png
Normal file
After Width: | Height: | Size: 963 B |
BIN
chromebook_alert/img/icons/tools/tool-lasso-select.png
Normal file
After Width: | Height: | Size: 827 B |
BIN
chromebook_alert/img/icons/tools/tool-lasso-select@2x.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
chromebook_alert/img/icons/tools/tool-lighten.png
Normal file
After Width: | Height: | Size: 690 B |
BIN
chromebook_alert/img/icons/tools/tool-lighten@2x.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
chromebook_alert/img/icons/tools/tool-move.png
Normal file
After Width: | Height: | Size: 547 B |
BIN
chromebook_alert/img/icons/tools/tool-move@2x.png
Normal file
After Width: | Height: | Size: 1015 B |
BIN
chromebook_alert/img/icons/tools/tool-paint-bucket.png
Normal file
After Width: | Height: | Size: 741 B |
BIN
chromebook_alert/img/icons/tools/tool-paint-bucket@2x.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
chromebook_alert/img/icons/tools/tool-pen.png
Normal file
After Width: | Height: | Size: 670 B |
BIN
chromebook_alert/img/icons/tools/tool-pen@2x.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
chromebook_alert/img/icons/tools/tool-rectangle-select.png
Normal file
After Width: | Height: | Size: 276 B |
BIN
chromebook_alert/img/icons/tools/tool-rectangle-select@2x.png
Normal file
After Width: | Height: | Size: 425 B |
BIN
chromebook_alert/img/icons/tools/tool-rectangle.png
Normal file
After Width: | Height: | Size: 245 B |
BIN
chromebook_alert/img/icons/tools/tool-rectangle@2x.png
Normal file
After Width: | Height: | Size: 395 B |
BIN
chromebook_alert/img/icons/tools/tool-shape-select.png
Normal file
After Width: | Height: | Size: 580 B |
BIN
chromebook_alert/img/icons/tools/tool-shape-select@2x.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
chromebook_alert/img/icons/tools/tool-stroke.png
Normal file
After Width: | Height: | Size: 802 B |
BIN
chromebook_alert/img/icons/tools/tool-stroke@2x.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
chromebook_alert/img/icons/tools/tool-vertical-mirror-pen.png
Normal file
After Width: | Height: | Size: 744 B |
BIN
chromebook_alert/img/icons/tools/tool-vertical-mirror-pen@2x.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
chromebook_alert/img/icons/transform/tool-center.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
chromebook_alert/img/icons/transform/tool-center@2x.png
Normal file
After Width: | Height: | Size: 457 B |
BIN
chromebook_alert/img/icons/transform/tool-clone.png
Normal file
After Width: | Height: | Size: 621 B |
BIN
chromebook_alert/img/icons/transform/tool-clone@2x.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
chromebook_alert/img/icons/transform/tool-crop.png
Normal file
After Width: | Height: | Size: 393 B |
BIN
chromebook_alert/img/icons/transform/tool-crop@2x.png
Normal file
After Width: | Height: | Size: 693 B |