diff --git a/apps/imagegen/imagegen/webapp/src/main/webapp/index.html b/apps/imagegen/imagegen/webapp/src/main/webapp/index.html index 16cb9e359..4ba341dc4 100644 --- a/apps/imagegen/imagegen/webapp/src/main/webapp/index.html +++ b/apps/imagegen/imagegen/webapp/src/main/webapp/index.html @@ -3,31 +3,132 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - Image Generator Webapp + [I2P] Image Generator Webapp + + -

Image Generator Webapp

-

This is the webapp that creates identification images.

-

Identicon Test

- - - - - - +

Image Generator Webapp

-

QR Test

- - +

+This is the webapp that creates identification images. They can be found in the +hostname details section +of the addressbook, in the Sybils section of +the network database, and you can generate a QR code for your .i2p named website or hidden +service in the edit section of the Tunnel Manager. +You can use the tools below to generate arbitrary identicons and QR codes. +

+ +

Identicons

+ +
+ + + + + + + + + + + + + + + + + + + + +
Identicons for string: planet.i2p
16x1632x3264x64256x256
22x2248x4896x96
+ +
+
Identicon Generator
+ + + +
+
+ +

QR Codes

+ +
+ + + + + + + + + + + + + +
QR Codes for string: https://geti2p.net
128x128160x160256x256
+ +
+
QR Code Generator
+ + + + +
+
+ +

Random Art

+ +

This technique renders an ASCII-Art representation of a digital fingerprint so the human brain can profit from its built-in pattern recognition ability. "Hash Visualization: a New Technique to improve Real-World Security" by Perrig A. and Song D.

+ +
+ + + + + + + + + + + + +
Random Art for I2P address: i2p-projekt.i2p
HTML TestUTF-8 Text Test
+ +
+
Random Art Generator
+ + + +
+ +
+ +
+ + -

Random Art Test

- - diff --git a/installer/resources/themes/imagegen/imagegen.css b/installer/resources/themes/imagegen/imagegen.css new file mode 100644 index 000000000..9c2655de9 --- /dev/null +++ b/installer/resources/themes/imagegen/imagegen.css @@ -0,0 +1,261 @@ +/* I2P Imagegen Theme */ +/* Author: dr|z3d */ + +body { + background: #eef url(/themes/console/classic/images/bg0.png); + font: 10pt/130% "Droid Sans", "Noto Sans", Ubuntu, "Bitstream Vera Sans", "DejaVu Sans", "Segoe UI", Verdana, "Lucida Grande", Helvetica, sans-serif; + margin: 18px 20px 10px; + color: #333; + min-width: 660px; +} + +h1 { + font-size: 14pt; + border: 1px solid #77789f; + border-radius: 2px; + background: #fff; + padding: 8px 10px; +} + +h2 { + font-size: 11pt; + border: 1px solid #77789f; + border-radius: 2px; + background: #fff; + padding: 5px 10px; +} + +h1, h2 { + background: linear-gradient(to bottom, #fff 50%, #eef 50%); + color: #0c153d; + margin-bottom: 10px; + box-shadow: inset 0 0 0 1px #fff; + text-shadow: 1px 1px 1px #fff; + text-transform: uppercase; + letter-spacing: 0.08em; + word-spacing: 0.1em; + filter: drop-shadow(0 0 1px #aaa); + -webkit-filter: drop-shadow(0 0 1px #aaa); +} + +p { + margin: 5px 20px; + text-align: justify; + line-height: 130%; +} + +a:link { + text-decoration: none; + outline: none; + color: #33f; +} + +a:visited { + color: #227; +} + +a:hover, a:focus { + color: #f60; +} + +a:active { + color: #f90; + text-decoration: underline; +} + +.reference { + background: url(/themes/console/classic/images/newtab.png) top 2px right no-repeat; + background-size: 12px 10px; + padding-right: 14px; +} + +img { + border: 1px solid #77789f; + margin: 5px; + border-radius: 2px; + padding: 1px; + background: #fff; + filter: drop-shadow(0 0 1px #aaa); + -webkit-filter: drop-shadow(0 0 1px #aaa); +} + +table { + border-collapse: separate; + border-spacing: 10px; + margin: 0 auto; +} + +th { + background: #fff; + border: 1px solid #77789f; + border-radius: 2px; + text-align: center; + filter: drop-shadow(0 0 1px #aaa); + -webkit-filter: drop-shadow(0 0 1px #aaa); + font-weight: normal; + height: 16px; +} + +th.title { + font-size: 11pt; + font-weight: bold; + white-space: nowrap; + padding: 5px; + background: linear-gradient(to right, #efefff, #fff 10%, #fff 90%, #efefff); + box-shadow: inset 0 0 0 1px #fff; +} + +td { + text-align: center; + padding: 0 5px; + vertical-align: top; +} + +hr { + height: 1px; + background: #7778bf; + border: none; + margin-top: 10px; +} + +iframe { + border: none; + margin: 30px 50px 0; + transform: scale(1.4); +} + +#qr, #randomart, #identicon { + text-align: center; + padding: 5px 0; +} + +#nav { + text-align: right; +} + +form { + margin: 15px auto 0; + padding-top: 0; + border-top: 1px solid #77789f; + min-width: 640px; +} + +form > * { + vertical-align: middle; +} + +.formtitle { + border: 1px solid #7778bf; + text-transform: uppercase; + font-size: 11pt; + font-weight: bold; + letter-spacing: 0.2em; + word-spacing: 0.1em; + margin: -1px auto 10px; + padding: 4px 5px; + width: 400px; + background: #fff; + background: linear-gradient(to right, #efefff, #fff 10%, #fff 90%, #efefff); + box-shadow: inset 0 0 0 1px #fff; + border-radius: 0 0 2px 2px; + filter: drop-shadow(0 1px 1px #999); + text-rendering: optimizeLegibility; +} + +input, button, select { + font: 10pt/130% "Droid Sans", "Noto Sans", Ubuntu, "Bitstream Vera Sans", "Lucida Grande", "DejaVu Sans", "Segoe UI", Verdana, Helvetica, sans-serif; + margin: 5px 3px; +} + +button, select { + filter: drop-shadow(0 0 1px #fff); +} + +button::-moz-focus-inner { + border: none; + outline:none; +} + +button { + border: 1px solid #bbb; + padding: 4.5px 8px; + border-radius: 2px; + background: #fff; + background: linear-gradient(to bottom, #fff, #ddd); + box-shadow: inset 0 0 0 1px #fff; + color: #333; + display: inline-block; +} + +button > * { + vertical-align: middle; +} + +button:hover, button:focus { + background: linear-gradient(to bottom, #ddd, #fff); + border: 1px solid #89f; + color: #111; + filter: drop-shadow(0 0 1px #89f); + -webkit-filter: drop-shadow(0 0 1px #89f); +} + +button:active { + box-shadow: inset 3px 3px 3px #555; + box-shadow: inset 0 0 0 1px #fff, inset 3px 3px 3px #555; + border: 1px solid #999; + color: #333; +} + +input[type="text"] { + padding: 3px 5px; + border-radius: 2px; + border: 1px solid #bbb; + background: #fff; + box-shadow: inset 2px 2px 2px #bbb; + color: #333; +} + +input[type="text"]:focus { + box-shadow: none; + border: 1px solid #999; + color: #111; + filter: drop-shadow(0 0 1px #89f); + -webkit-filter: drop-shadow(0 0 1px #89f); +} + +select { + vertical-align: middle; + background: linear-gradient(to bottom, #fff 0%, #ddd 100%); + border-radius: 2px; + border: 1px solid #bbb; + box-shadow: inset 0 0 0 1px #fff; + padding: 4px 16px 4px 2px; + text-overflow: ellipsis; + color: #333; +} + +select option { + background: #fff; +} + +select:focus, select:active { + color: #111; + border: 1px solid #89f; + outline: none; +} + +@-moz-document url-prefix() { /* target firefox and derivatives only */ +select { + -moz-appearance: none; + background: url(/themes/console/classic/images/dropdown.png) right center no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%); +} + +select:hover, select:active { + background: url(/themes/console/classic/images/dropdown_hover.png) right center no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%) !important; +} + +select:focus { + background: url(/themes/console/classic/images/dropdown_hover.png) right center no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%) !important; + box-shadow: 0 0 0 1px #89f; +} +}