master
rascul 3 years ago
parent 9dc1ee39dc
commit 4e9c4d8435

@ -0,0 +1,12 @@
Font license info
## Entypo
Copyright (C) 2012 by Daniel Bruce
Author: Daniel Bruce
License: SIL (http://scripts.sil.org/OFL)
Homepage: http://www.entypo.com

@ -0,0 +1,75 @@
This webfont is generated by http://fontello.com open source project.
================================================================================
Please, note, that you should obey original font licences, used to make this
webfont pack. Details available in LICENSE.txt file.
- Usually, it's enough to publish content of LICENSE.txt file somewhere on your
site in "About" section.
- If your project is open-source, usually, it will be ok to make LICENSE.txt
file publically available in your repository.
- Fonts, used in Fontello, don't require a clickable link on your site.
But any kind of additional authors crediting is welcome.
================================================================================
Comments on archive content
---------------------------
- /font/* - fonts in different formats
- /css/* - different kinds of css, for all situations. Should be ok with
twitter bootstrap. Also, you can skip <i> style and assign icon classes
directly to text elements, if you don't mind about IE7.
- demo.html - demo file, to show your webfont content
- LICENSE.txt - license info about source fonts, used to build your one.
- config.json - keeps your settings. You can import it back into fontello
anytime, to continue your work
Why so many CSS files ?
-----------------------
Because we like to fit all your needs :)
- basic file, <your_font_name>.css - is usually enough, it contains @font-face
and character code definitions
- *-ie7.css - if you need IE7 support, but still don't wish to put char codes
directly into html
- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face
rules, but still wish to benefit from css generation. That can be very
convenient for automated asset build systems. When you need to update font -
no need to manually edit files, just override old version with archive
content. See fontello source code for examples.
- *-embedded.css - basic css file, but with embedded WOFF font, to avoid
CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain.
We strongly recommend to resolve this issue by `Access-Control-Allow-Origin`
server headers. But if you ok with dirty hack - this file is for you. Note,
that data url moved to separate @font-face to avoid problems with <IE9, when
string is too long.
- animate.css - use it to get ideas about spinner rotation animation.
Attention for server setup
--------------------------
You MUST setup server to reply with proper `mime-types` for font files -
otherwise some browsers will fail to show fonts.
Usually, `apache` already has necessary settings, but `nginx` and other
webservers should be tuned. Here is list of mime types for our file extensions:
- `application/vnd.ms-fontobject` - eot
- `application/x-font-woff` - woff
- `application/x-font-ttf` - ttf
- `image/svg+xml` - svg

@ -0,0 +1,70 @@
{
"name": "",
"css_prefix_text": "icon-",
"css_use_suffix": false,
"hinting": true,
"units_per_em": 1000,
"ascent": 850,
"glyphs": [
{
"uid": "70370693ada58ef0a60fa0984fe8d52a",
"css": "plus",
"code": 59408,
"src": "entypo"
},
{
"uid": "1256e3054823e304d7e452a589cf8bb8",
"css": "minus",
"code": 59409,
"src": "entypo"
},
{
"uid": "3a230e539a4f3b904debd04c6c155034",
"css": "help",
"code": 59396,
"src": "entypo"
},
{
"uid": "bb46b15cb78cc4cc05d3d715d522ac4d",
"css": "cw",
"code": 59410,
"src": "entypo"
},
{
"uid": "cb13afd4722a849d48056540bb74c47e",
"css": "play",
"code": 59397,
"src": "entypo"
},
{
"uid": "d8d378d0ce413f231dfa37592e39c227",
"css": "pause",
"code": 59398,
"src": "entypo"
},
{
"uid": "18f7c393e3532e40edd45607c9d99988",
"css": "fast-forward",
"code": 59399,
"src": "entypo"
},
{
"uid": "85806fd8ab907f45d34f976354a0df23",
"css": "fast-backward",
"code": 59400,
"src": "entypo"
},
{
"uid": "3a6f0140c3a390bdb203f56d1bfdefcb",
"css": "gauge",
"code": 59393,
"src": "entypo"
},
{
"uid": "d94334f23acba022bfd68e49d76b31bb",
"css": "github",
"code": 59395,
"src": "entypo"
}
]
}

@ -0,0 +1,85 @@
/*
Animation example, for spinners
*/
.animate-spin {
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
-webkit-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
display: inline-block;
}
@-moz-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-webkit-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-o-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-ms-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}

@ -0,0 +1,11 @@
.icon-gauge:before { content: '\e801'; } /* '' */
.icon-github:before { content: '\e803'; } /* '' */
.icon-help:before { content: '\e804'; } /* '' */
.icon-play:before { content: '\e805'; } /* '' */
.icon-pause:before { content: '\e806'; } /* '' */
.icon-fast-forward:before { content: '\e807'; } /* '' */
.icon-fast-backward:before { content: '\e808'; } /* '' */
.icon-plus:before { content: '\e810'; } /* '' */
.icon-minus:before { content: '\e811'; } /* '' */
.icon-cw:before { content: '\e812'; } /* '' */

File diff suppressed because one or more lines are too long

@ -0,0 +1,11 @@
.icon-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.icon-github { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
.icon-help { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
.icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
.icon-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
.icon-fast-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
.icon-fast-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
.icon-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
.icon-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }

@ -0,0 +1,22 @@
[class^="icon-"], [class*=" icon-"] {
font-family: 'fontello';
font-style: normal;
font-weight: normal;
/* fix buttons height */
line-height: 1em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
}
.icon-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.icon-github { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
.icon-help { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
.icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
.icon-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
.icon-fast-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
.icon-fast-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
.icon-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
.icon-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }

@ -0,0 +1,66 @@
@font-face {
font-family: 'fontello';
src: url('../font/fontello.eot?4455604');
src: url('../font/fontello.eot?4455604#iefix') format('embedded-opentype'),
url('../font/fontello.woff?4455604') format('woff'),
url('../font/fontello.ttf?4455604') format('truetype'),
url('../font/fontello.svg?4455604#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
src: url('../font/fontello.svg?4455604#fontello') format('svg');
}
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: "fontello";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.icon-gauge:before { content: '\e801'; } /* '' */
.icon-github:before { content: '\e803'; } /* '' */
.icon-help:before { content: '\e804'; } /* '' */
.icon-play:before { content: '\e805'; } /* '' */
.icon-pause:before { content: '\e806'; } /* '' */
.icon-fast-forward:before { content: '\e807'; } /* '' */
.icon-fast-backward:before { content: '\e808'; } /* '' */
.icon-plus:before { content: '\e810'; } /* '' */
.icon-minus:before { content: '\e811'; } /* '' */
.icon-cw:before { content: '\e812'; } /* '' */

@ -0,0 +1,322 @@
<!DOCTYPE html>
<html>
<head><!--[if lt IE 9]><script language="javascript" type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<meta charset="UTF-8"><style>/*
* Bootstrap v2.2.1
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
line-height: 0;
}
.clearfix:after {
clear: both;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
a:hover,
a:active {
outline: 0;
}
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
}
button,
input {
*overflow: visible;
line-height: normal;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
body {
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 20px;
color: #333;
background-color: #fff;
}
a {
color: #08c;
text-decoration: none;
}
a:hover {
color: #005580;
text-decoration: underline;
}
.row {
margin-left: -20px;
*zoom: 1;
}
.row:before,
.row:after {
display: table;
content: "";
line-height: 0;
}
.row:after {
clear: both;
}
[class*="span"] {
float: left;
min-height: 1px;
margin-left: 20px;
}
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
width: 940px;
}
.span12 {
width: 940px;
}
.span11 {
width: 860px;
}
.span10 {
width: 780px;
}
.span9 {
width: 700px;
}
.span8 {
width: 620px;
}
.span7 {
width: 540px;
}
.span6 {
width: 460px;
}
.span5 {
width: 380px;
}
.span4 {
width: 300px;
}
.span3 {
width: 220px;
}
.span2 {
width: 140px;
}
.span1 {
width: 60px;
}
[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
float: right;
}
.container {
margin-right: auto;
margin-left: auto;
*zoom: 1;
}
.container:before,
.container:after {
display: table;
content: "";
line-height: 0;
}
.container:after {
clear: both;
}
p {
margin: 0 0 10px;
}
.lead {
margin-bottom: 20px;
font-size: 21px;
font-weight: 200;
line-height: 30px;
}
small {
font-size: 85%;
}
h1 {
margin: 10px 0;
font-family: inherit;
font-weight: bold;
line-height: 20px;
color: inherit;
text-rendering: optimizelegibility;
}
h1 small {
font-weight: normal;
line-height: 1;
color: #999;
}
h1 {
line-height: 40px;
}
h1 {
font-size: 38.5px;
}
h1 small {
font-size: 24.5px;
}
body {
margin-top: 90px;
}
.header {
position: fixed;
top: 0;
left: 50%;
margin-left: -480px;
background-color: #fff;
border-bottom: 1px solid #ddd;
padding-top: 10px;
z-index: 10;
}
.footer {
color: #ddd;
font-size: 12px;
text-align: center;
margin-top: 20px;
}
.footer a {
color: #ccc;
text-decoration: underline;
}
.the-icons {
font-size: 14px;
line-height: 24px;
}
.switch {
position: absolute;
right: 0;
bottom: 10px;
color: #666;
}
.switch input {
margin-right: 0.3em;
}
.codesOn .i-name {
display: none;
}
.codesOn .i-code {
display: inline;
}
.i-code {
display: none;
}
@font-face {
font-family: 'fontello';
src: url('./font/fontello.eot?80798054');
src: url('./font/fontello.eot?80798054#iefix') format('embedded-opentype'),
url('./font/fontello.woff?80798054') format('woff'),
url('./font/fontello.ttf?80798054') format('truetype'),
url('./font/fontello.svg?80798054#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
.demo-icon
{
font-family: "fontello";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* You can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
</style>
<link rel="stylesheet" href="css/animation.css"><!--[if IE 7]><link rel="stylesheet" href="css/fontello-ie7.css"><![endif]-->
<script>
function toggleCodes(on) {
var obj = document.getElementById('icons');
if (on) {
obj.className += ' codesOn';
} else {
obj.className = obj.className.replace(' codesOn', '');
}
}
</script>
</head>
<body>
<div class="container header">
<h1>
fontello
<small>font demo</small>
</h1>
<label class="switch">
<input type="checkbox" onclick="toggleCodes(this.checked)">show codes
</label>
</div>
<div id="icons" class="container">
<div class="row">
<div title="Code: 0xe801" class="the-icons span3"><i class="demo-icon icon-gauge">&#xe801;</i> <span class="i-name">icon-gauge</span><span class="i-code">0xe801</span></div>
<div title="Code: 0xe803" class="the-icons span3"><i class="demo-icon icon-github">&#xe803;</i> <span class="i-name">icon-github</span><span class="i-code">0xe803</span></div>
<div title="Code: 0xe804" class="the-icons span3"><i class="demo-icon icon-help">&#xe804;</i> <span class="i-name">icon-help</span><span class="i-code">0xe804</span></div>
<div title="Code: 0xe805" class="the-icons span3"><i class="demo-icon icon-play">&#xe805;</i> <span class="i-name">icon-play</span><span class="i-code">0xe805</span></div>
</div>
<div class="row">
<div title="Code: 0xe806" class="the-icons span3"><i class="demo-icon icon-pause">&#xe806;</i> <span class="i-name">icon-pause</span><span class="i-code">0xe806</span></div>
<div title="Code: 0xe807" class="the-icons span3"><i class="demo-icon icon-fast-forward">&#xe807;</i> <span class="i-name">icon-fast-forward</span><span class="i-code">0xe807</span></div>
<div title="Code: 0xe808" class="the-icons span3"><i class="demo-icon icon-fast-backward">&#xe808;</i> <span class="i-name">icon-fast-backward</span><span class="i-code">0xe808</span></div>
<div title="Code: 0xe810" class="the-icons span3"><i class="demo-icon icon-plus">&#xe810;</i> <span class="i-name">icon-plus</span><span class="i-code">0xe810</span></div>
</div>
<div class="row">
<div title="Code: 0xe811" class="the-icons span3"><i class="demo-icon icon-minus">&#xe811;</i> <span class="i-name">icon-minus</span><span class="i-code">0xe811</span></div>
<div title="Code: 0xe812" class="the-icons span3"><i class="demo-icon icon-cw">&#xe812;</i> <span class="i-name">icon-cw</span><span class="i-code">0xe812</span></div>
</div>
</div>
<div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div>
</body>
</html>

Binary file not shown.

@ -0,0 +1,21 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="gauge" unicode="&#xe801;" d="m406 178q34 56 214 284t194 220q12-6-96-278t-138-326q-50-86-136-36t-38 136z m94 380q-168 0-284-127t-116-311q0-30 2-46 2-22-12-37t-34-17-36 12-18 34q0 8-1 26t-1 28q0 226 145 382t355 156q72 0 134-18l-70-86q-40 4-64 4z m362-62q138-154 138-376 0-38-2-56-2-20-16-33t-34-13l-4 0q-22 4-35 20t-11 36q2 14 2 46 0 150-80 268 6 14 20 51t22 57z" horiz-adv-x="1000" />
<glyph glyph-name="github" unicode="&#xe803;" d="m620 286q26 0 45-26t19-64-19-64-45-26q-28 0-47 26t-19 64 19 64 47 26z m226 234q74-80 74-194 0-74-17-133t-43-96-64-65-70-41-73-20-62-8-45-1q-6 0-36-1t-50-1-50 1-36 1q-24 0-45 1t-62 8-73 20-70 41-64 65-43 96-17 133q0 114 74 194-8 4-1 80t33 140q92-10 228-104 46 12 126 12 84 0 126-12 62 42 119 68t83 30l26 6q26-64 33-140t-1-80z m-384-514q166 0 251 40t85 164q0 72-54 120-28 26-65 32t-113 0-104-6l-4 0q-32 0-83 4t-80 5-63-7-56-28q-52-46-52-120 0-124 84-164t250-40l4 0z m-160 280q26 0 45-26t19-64-19-64-45-26q-28 0-47 26t-19 64 19 64 47 26z" horiz-adv-x="920" />
<glyph glyph-name="help" unicode="&#xe804;" d="m494 740q86-62 86-184 0-64-42-124-12-20-88-80l-46-30q-40-34-48-60-6-16-8-44 0-14-16-14l-128 0q-16 0-16 12 4 98 28 124 16 22 48 48t56 42l24 14q22 16 34 34 28 44 28 70 0 40-26 78-28 36-92 36-68 0-94-44-28-42-28-92l-166 0q6 162 114 232 70 42 166 42 130 0 214-60z m-216-636q44 0 73-30t27-74q-2-46-32-73t-74-25q-44 0-73 29t-27 75 32 73 74 25z" horiz-adv-x="580" />
<glyph glyph-name="play" unicode="&#xe805;" d="m486 376q14-10 14-26 0-14-14-24l-428-266q-24-16-41-6t-17 40l0 514q0 30 17 40t41-6z" horiz-adv-x="500" />
<glyph glyph-name="pause" unicode="&#xe806;" d="m440 700q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z m-350 0q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z" horiz-adv-x="530" />
<glyph glyph-name="fast-forward" unicode="&#xe807;" d="m866 374q14-10 14-24t-14-22l-372-248q-22-14-37-6t-15 36l0 482q0 28 15 36t37-6z m-454 0q14-10 14-24t-14-22l-360-248q-20-14-36-6t-16 36l0 482q0 28 16 36t36-6z" horiz-adv-x="880" />
<glyph glyph-name="fast-backward" unicode="&#xe808;" d="m0 350q0 14 14 24l374 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-374 248q-14 8-14 22z m454 0q0 14 14 24l360 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-360 248q-14 8-14 22z" horiz-adv-x="880" />
<glyph glyph-name="plus" unicode="&#xe810;" d="m550 400q30 0 30-50t-30-50l-210 0 0-210q0-30-50-30t-50 30l0 210-210 0q-30 0-30 50t30 50l210 0 0 210q0 30 50 30t50-30l0-210 210 0z" horiz-adv-x="580" />
<glyph glyph-name="minus" unicode="&#xe811;" d="m550 400q30 0 30-50t-30-50l-520 0q-30 0-30 50t30 50l520 0z" horiz-adv-x="580" />
<glyph glyph-name="cw" unicode="&#xe812;" d="m408 760q168 0 287-116t123-282l122 0-184-206-184 206 144 0q-4 124-94 210t-214 86q-126 0-216-90t-90-218q0-126 90-216t216-90q104 0 182 60l70-76q-110-88-252-88-168 0-288 120t-120 290 120 290 288 120z" horiz-adv-x="940" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

@ -0,0 +1,186 @@
body {
background-color: black;
color: silver;
font-family: monospace;
margin-right: 19rem;
}
h1, h2, h3, h4, h5, h6 {
color: seagreen;
}
a {
color: dodgerblue;
text-decoration: none;
}
a:hover {
color: skyblue;
}
/*nav {
position: fixed;
background: black;
z-index: 10;
top: 0;
right: 0;
padding: .5rem;
border-left: 1px dashed gray;
border-bottom: 1px dashed gray;
text-align: right;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li {
list-style: none;
padding-bottom: .5rem;
}
nav ul li:last-child {
padding-bottom: 0;
}
header {
position: fixed;
background: black;
top: 0;
left: 0;
width: 100%;
height: 3rem;
border-bottom: 1px dashed gray;
padding-left: 2rem;
z-index: 9;
}
header h1, header h2 {
height: 2rem;
display: inline-block;
color: coral;
}
main#replay {
white-space: pre-wrap;
}
textarea {
width: 75%;
height: 30rem;
}
footer {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 2rem;
border-top: 1px dashed gray;
line-height: 2rem;
background: black;
}
/*
footer ul {
margin: 0;
padding: 0;
}
footer ul li {
list-style: none;
display: inline-block;
padding-left: 1rem;
}
footer ul li.divider {
color: green;
font-size: 1rem;
}
footer i {
font-size: x-large;
}
span.header_mod {
visibility: hidden;
}
.notice {
color: yellow;
}*/
div.top {
position: fixed;
right: 0;
top: 0;
width: 10em;
text-align: center;
}
div.top h1 {
font-size: xx-large;
border-bottom: 1px solid seagreen;
margin-bottom: 0;
}
div.top h1 a {
color: coral;
}
div.top ul {
margin: 0;
padding: 0;
}
div.top ul li {
list-style: none;
display: inline-block;
margin: 0;
padding-top: .5rem;
padding-right: .5rem;
width: 100%;
}
div.bottom {
position: fixed;
right: 0;
bottom: 0;
width: 10rem;
text-align: right;
padding: .5rem;
}
div.bottom table {
display: inline-block;
}
div.bottom i {
font-size: xx-large;
}
.green {
color: seagreen;
}
div.notice {
color: seagreen;
padding: 1rem;
}
div.notice span {
color: yellow;
}
progress[value] {
width: 3rem;
height: 1rem;
}
main#main {
/*white-space: pre-wrap;*/
}
div.replay-div {
display: none;
white-space: pre-wrap;
}
div.replay-div-visible {
display: block;
}
textarea {
width: 40rem;
height: 20rem;
}

@ -0,0 +1,200 @@
"use strict";
var counter = 1;
var elmain = document.getElementById("main");
var direction = "forward";
var fast_forward_lines = 0;
var json = null;
var lineno = 0;
var pausedid = null;
var playing = false;
var speed = 1;
var timeout = null;
function scroll(el) {
var de = document.documentElement;
if ((el.offsetTop < de.scrollTop) ||
(el.offsetTop + el.offsetHeight > de.scrollTop + de.clientHeight)) {
el.scrollIntoView();
}
}
function add_line(line, visible) {
var div = document.createElement("div");
div.classList.add("replay-div");
div.id = "replay-div-" + counter;
div.innerHTML = line || "\n";
elmain.appendChild(div);
if (visible) {
div.classList.add("replay-div-visible");
scroll(div);
}
counter += 1;
return counter - 1;
}
function notice(msg, now) {
var s = '<div class="notice"><span>****</span> ' + msg;
return add_line(s, now);
}
function del_line(id) {
var el = document.getElementById("replay-div-" + id);
if (el) {
el.parentNode.removeChild(el);
}
}
function finished() {
playing = false;
notice('Finished <a href="/+' + json.meta.id + '">' +
(json.meta.title || json.meta.id) + '</a>', true);
document.getElementById("play_pause").className = "icon-play";
}
function forward() {
direction = "forward";
return false;
}
function xhr_load() {
this.callback.apply(this, this.arguments);
}
function xhr_error() {
console.error(this.statusText);
}
function fetch_json(url, callback) {
var xhr = new XMLHttpRequest();
xhr.callback = callback;
xhr.onload = xhr_load;
xhr.onerror = xhr_error;
xhr.open("get", url, true);
xhr.send(null);
}
function load_log_lines() {
json = JSON.parse(this.responseText);
if (!json) {
notice("Loading failed", true);
return;
}
var ready = notice((json.meta.title || json.meta.id) +
' loaded <a href="#" onclick="return play_pause();">Play</a>', false);
json.log.forEach(function(line) {
json.log[line.lineno - 1].lineid =
add_line(line.line, false);
});
document.getElementById("progress").max = json.log.length;
document.title = "ReWoT :: " + (json.meta.title || json.meta.id);
document.getElementById("play_pause").className = "icon-play";
update_progress();
show_line(ready);
}
function load_log(url) {
fetch_json(url, load_log_lines);
return false;
}
function play_pause() {
var el = document.getElementById("play_pause");
if (playing) {
if (timeout) {
window.clearTimeout(timeout);
}
pausedid = notice("Paused", true);
playing = false;
document.getElementById("play_pause").className = "icon-play";
} else {
if (json) {
playing = true;
document.getElementById("play_pause").className = "icon-pause";
if (pausedid) {
del_line(pausedid);
}
if (lineno > json.log.slice(-1)[0].lineno) {
lineno = json.log.slice(-1)[0].lineno;
} else if (lineno < 1) {
lineno = 1;
}
replay_log();
} else {
notice("No replay loaded", true);
}
}
return false;
}
function replay_log() {
if (!json.log[lineno] || !playing) {
return;
}
show_line(json.log[lineno].lineid);
if (direction == "forward") {
lineno += 1;
} else {
hide_line(json.log[lineno].lineid);
lineno -= 1;
}
if (json.log[lineno]) {
if (fast_forward_lines) {
fast_forward_lines -= 1;
replay_log();
} else {
var d = parseFloat(json.log[lineno].delta) * speed;
if (d > 4000) {
d = 4000;
}
timeout = setTimeout(replay_log, d);
}
update_lineno();
update_progress();
} else {
finished();
}
}
function reverse() {
direction = "reverse";
return false;
}
function show_line(id) {
var el = document.getElementById("replay-div-" + id);
if (!!el) {
el.classList.add("replay-div-visible");
scroll(el);
}
}
function hide_line(id) {
var el = document.getElementById("replay-div-" + id);
if (!!el) {
el.classList.remove("replay-div-visible");
}
}
function update_lineno() {
document.getElementById("lineno").innerHTML = json.log[lineno].lineno;
}
function update_progress() {
var el = document.getElementById("progress");
el.value = json.log[lineno].lineno;
el.title = json.log[lineno].lineno + " / " + el.max;
}
Loading…
Cancel
Save