1
0
Fork 0

Initial typega.me source from 2013

master
Ambrose Chua 2019-09-14 14:51:42 +08:00
parent f5c9bc0698
commit 08867bfdc3
18 changed files with 6896 additions and 58 deletions

119
css/fonts.css Executable file

File diff suppressed because one or more lines are too long

BIN
css/fonts/typegame icons.eot Executable file

Binary file not shown.

41
css/fonts/typegame icons.svg Executable file
View File

@ -0,0 +1,41 @@
<?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>Generated by IcoMoon</metadata>
<defs>
<font id="typegame icons" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
<glyph unicode="&#xe600;" d="M128 64h896v-128h-1024v1024h128zM288 128c-53.020 0-96 42.98-96 96s42.98 96 96 96c2.828 0 5.622-0.148 8.388-0.386l103.192 171.986c-9.84 15.070-15.58 33.062-15.58 52.402 0 53.020 42.98 96 96 96 53.020 0 96-42.98 96-96 0-19.342-5.74-37.332-15.58-52.402l103.192-171.986c2.766 0.238 5.56 0.386 8.388 0.386 2.136 0 4.248-0.094 6.35-0.23l170.356 298.122c-10.536 15.408-16.706 34.036-16.706 54.11 0 53.020 42.98 96 96 96 53.020 0 96-42.98 96-96 0-53.020-42.98-96-96-96-2.14 0-4.248 0.094-6.35 0.232l-170.356-298.124c10.536-15.406 16.706-34.036 16.706-54.11 0-53.020-42.98-96-96-96-53.020 0-96 42.98-96 96 0 19.34 5.74 37.332 15.578 52.402l-103.19 171.984c-2.766-0.238-5.56-0.386-8.388-0.386s-5.622 0.146-8.388 0.386l-103.192-171.986c9.84-15.068 15.58-33.060 15.58-52.4 0-53.020-42.98-96-96-96z" />
<glyph unicode="&#xe601;" d="M1024 576h-384l143.53 143.53c-72.53 72.526-168.96 112.47-271.53 112.47-102.57 0-199-39.944-271.53-112.47-72.526-72.53-112.47-168.96-112.47-271.53 0-102.57 39.944-199 112.47-271.53 72.53-72.526 168.96-112.47 271.53-112.47 102.57 0 199 39.944 271.528 112.472 6.056 6.054 11.86 12.292 17.456 18.668l96.32-84.282c-93.846-107.166-231.664-174.858-385.304-174.858-282.77 0-512 229.23-512 512 0 282.77 229.23 512 512 512 141.386 0 269.368-57.326 362.016-149.984l149.984 149.984v-384z" />
<glyph unicode="&#xe602;" d="M0 960h256v-256h-256zM384 896h640v-128h-640zM0 576h256v-256h-256zM384 512h640v-128h-640zM0 192h256v-256h-256zM384 128h640v-128h-640z" />
<glyph unicode="&#xe603;" d="M448 832v16c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576zM256 704v128h128v-128h-128zM832 528c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-576v-128h576v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h192v128h-192v16zM640 384v128h128v-128h-128zM448 208c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576v16zM256 64v128h128v-128h-128z" />
<glyph unicode="&#xe604;" d="M768 896h-128c-105.87 0-192-86.13-192-192v-192h-400c-26.4 0-48-21.6-48-48v-480c0-26.4 21.6-48 48-48h544c26.4 0 48 21.6 48 48v480c0 26.4-21.6 48-48 48h-16v192c0 35.29 28.71 64 64 64h128c35.29 0 64-28.71 64-64v-192h128v192c0 105.87-86.13 192-192 192zM384 64h-128l27.84 139.2c-16.808 11.532-27.84 30.874-27.84 52.8 0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-21.926-11.032-41.268-27.84-52.8l27.84-139.2z" />
<glyph unicode="&#xe605;" d="M592 512h-16v192c0 105.87-86.13 192-192 192h-128c-105.87 0-192-86.13-192-192v-192h-16c-26.4 0-48-21.6-48-48v-480c0-26.4 21.6-48 48-48h544c26.4 0 48 21.6 48 48v480c0 26.4-21.6 48-48 48zM384 64h-128l27.84 139.2c-16.808 11.532-27.84 30.874-27.84 52.8 0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-21.926-11.032-41.268-27.84-52.8l27.84-139.2zM448 512h-256v192c0 35.29 28.71 64 64 64h128c35.29 0 64-28.71 64-64v-192z" />
<glyph unicode="&#xe606;" d="M832 768v128h-640v-128h-192v-128c0-106.038 85.958-192 192-192 20.076 0 39.43 3.086 57.62 8.802 46.174-66.008 116.608-113.796 198.38-130.396v-198.406h-64c-70.694 0-128-57.306-128-128h512c0 70.694-57.306 128-128 128h-64v198.406c81.772 16.6 152.206 64.386 198.38 130.396 18.19-5.716 37.544-8.802 57.62-8.802 106.042 0 192 85.962 192 192v128h-192zM192 524c-63.962 0-116 52.038-116 116v64h116v-64c0-40.186 7.43-78.632 20.954-114.068-6.802-1.246-13.798-1.932-20.954-1.932zM948 640c0-63.962-52.038-116-116-116-7.156 0-14.152 0.686-20.954 1.932 13.524 35.436 20.954 73.882 20.954 114.068v64h116v-64z" />
<glyph unicode="&#xe607;" d="M1024 302.458c0 82.090-56.678 150.9-132.996 169.48-3.242 128.7-108.458 232.062-237.862 232.062-75.792 0-143.266-35.494-186.854-90.732-24.442 31.598-62.69 51.96-105.708 51.96-73.81 0-133.642-59.874-133.642-133.722 0-6.436 0.48-12.76 1.364-18.954-11.222 2.024-22.766 3.138-34.57 3.138-106.998 0.002-193.732-86.786-193.732-193.842 0-107.062 86.734-193.848 193.73-193.848l656.262 0.012c96.138 0.184 174.008 78.212 174.008 174.446z" />
<glyph unicode="&#xe608;" d="M892.268 573.51c2.444 11.11 3.732 22.648 3.732 34.49 0 88.366-71.634 160-160 160-14.222 0-28.014-1.868-41.132-5.352-24.798 77.352-97.29 133.352-182.868 133.352-87.348 0-161.054-58.336-184.326-138.17-22.742 6.622-46.792 10.17-71.674 10.17-141.384 0-256-114.616-256-256 0-141.388 114.616-256 256-256h128v-192h256v192h224c88.366 0 160 71.632 160 160 0 78.72-56.854 144.162-131.732 157.51zM576 320v-192h-128v192h-160l224 224 224-224h-160z" />
<glyph unicode="&#xe609;" d="M891.004 599.94c-3.242 128.698-108.458 232.060-237.862 232.060-75.792 0-143.266-35.494-186.854-90.732-24.442 31.598-62.69 51.96-105.708 51.96-73.81 0-133.642-59.874-133.642-133.722 0-6.436 0.48-12.76 1.364-18.954-11.222 2.024-22.766 3.138-34.57 3.138-106.998 0.002-193.732-86.786-193.732-193.842 0-107.062 86.734-193.848 193.73-193.848h99.76l218.51-218.51 218.51 218.51 119.482 0.012c96.138 0.184 174.008 78.212 174.008 174.446 0 82.090-56.678 150.9-132.996 169.482zM512 128l-192 192h128v192h128v-192h128l-192-192z" />
<glyph unicode="&#xe60a;" d="M437.006 141.838c0-75.068-46.39-134.392-177.758-139.176-76.984 43.786-141.49 106.952-186.908 182.866 23.69 58.496 97.692 103.046 182.316 102.114 24.022-0.252 46.41-4.114 66.744-10.7 55.908-38.866 101-63.152 112.324-107.448 2.114-8.964 3.282-18.206 3.282-27.656zM512 960c-147.94 0-281.196-62.77-374.666-163.098 36.934 20.452 80.538 32.638 126.902 32.638 67.068 0 256.438 0 256.438 0l-57.304-60.14h-67.31c47.496-27.212 72.752-83.248 72.752-145.012 0-56.692-31.416-102.38-75.78-137.058-43.28-33.802-51.492-47.966-51.492-76.734 0-24.542 51.722-61.098 75.5-78.936 82.818-62.112 99.578-101.184 99.578-178.87 0-78.726-68.936-157.104-185.866-183.742 56.348-21.338 117.426-33.048 181.248-33.048 282.77 0 512 229.23 512 512s-229.23 512-512 512zM768 576v-128h-64v128h-128v64h128v128h64v-128h128v-64h-128zM365.768 620.528c11.922-90.776-27.846-149.19-96.934-147.134-69.126 2.082-134.806 65.492-146.74 156.242-11.928 90.788 34.418 160.254 103.53 158.196 69.090-2.074 128.22-76.542 140.144-167.304zM220.886 317.932c-74.68 0-138.128-25.768-182.842-63.864-24.502 59.82-38.044 125.29-38.044 193.932 0 56.766 9.256 111.368 26.312 162.396 7.374-99.442 77.352-176.192 192.97-176.192 8.514 0 16.764 0.442 24.874 1.022-7.95-15.23-13.622-32.19-13.622-49.982 0-29.97 16.488-47.070 36.868-66.894-15.402 0-30.27-0.418-46.516-0.418z" />
<glyph unicode="&#xe60b;" d="M559.066 896c0 0-200.956 0-267.94 0-120.12 0-233.17-91.006-233.17-196.422 0-107.726 81.882-194.666 204.088-194.666 8.498 0 16.756 0.17 24.842 0.752-7.93-15.186-13.602-32.288-13.602-50.042 0-29.938 16.104-54.21 36.468-74.024-15.386 0-30.242-0.448-46.452-0.448-148.782 0.002-263.3-94.758-263.3-193.020 0-96.778 125.542-157.314 274.334-157.314 169.624 0 263.306 96.244 263.306 193.028 0 77.6-22.896 124.072-93.686 174.134-24.216 17.144-70.53 58.836-70.53 83.344 0 28.72 8.196 42.868 51.428 76.646 44.312 34.624 75.672 83.302 75.672 139.916 0 67.406-30.020 133.098-86.372 154.772h84.954l59.96 43.344zM465.48 240.542c2.126-8.972 3.284-18.206 3.284-27.628 0-78.2-50.392-139.31-194.974-139.31-102.842 0-177.116 65.104-177.116 143.3 0 76.642 92.126 140.444 194.964 139.332 24-0.254 46.368-4.116 66.67-10.69 55.826-38.826 95.876-60.762 107.172-105.004zM300.818 532.224c-69.038 2.064-134.636 77.226-146.552 167.86-11.916 90.666 34.37 160.042 103.388 157.99 69.010-2.074 134.638-74.814 146.558-165.458 11.906-90.66-34.39-162.458-103.394-160.392zM832 704v192h-64v-192h-192v-64h192v-192h64v192h192v64z" />
<glyph unicode="&#xe60c;" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM806.242 598.912c0.292-6.508 0.442-13.056 0.442-19.638 0-200.622-152.708-431.964-431.958-431.964-85.736 0-165.536 25.136-232.726 68.214 11.876-1.408 23.962-2.126 36.216-2.126 71.13 0 136.59 24.276 188.55 64.994-66.434 1.22-122.5 45.122-141.824 105.432 9.274-1.768 18.784-2.722 28.566-2.722 13.846 0 27.258 1.856 39.998 5.324-69.452 13.952-121.786 75.312-121.786 148.868 0 0.64 0 1.278 0.016 1.91 20.47-11.37 43.878-18.2 68.764-18.988-40.74 27.222-67.54 73.692-67.54 126.368 0 27.822 7.488 53.904 20.556 76.324 74.878-91.854 186.748-152.292 312.924-158.628-2.588 11.118-3.93 22.702-3.93 34.604 0 83.84 67.98 151.812 151.818 151.812 43.666 0 83.124-18.436 110.818-47.94 34.58 6.808 67.074 19.442 96.412 36.84-11.336-35.454-35.41-65.206-66.752-83.994 30.71 3.668 59.968 11.832 87.194 23.904-20.35-30.448-46.090-57.186-75.758-78.594z" />
<glyph unicode="&#xe60d;" d="M575.87-64h-191.87v512h-128v176.45l128 0.058-0.208 103.952c0 143.952 39.034 231.54 208.598 231.54h141.176v-176.484h-88.23c-66.032 0-69.206-24.656-69.206-70.684l-0.262-88.324h158.69l-18.704-176.45-139.854-0.058-0.13-512z" />
<glyph unicode="&#xe60e;" d="M1024 765.582c-37.676-16.708-78.164-28.002-120.66-33.080 43.372 26 76.686 67.17 92.372 116.23-40.596-24.078-85.556-41.56-133.41-50.98-38.32 40.83-92.922 66.34-153.346 66.34-116.022 0-210.088-94.058-210.088-210.078 0-16.466 1.858-32.5 5.44-47.878-174.6 8.764-329.402 92.4-433.018 219.506-18.084-31.028-28.446-67.116-28.446-105.618 0-72.888 37.088-137.192 93.46-174.866-34.438 1.092-66.832 10.542-95.154 26.278-0.020-0.876-0.020-1.756-0.020-2.642 0-101.788 72.418-186.696 168.522-206-17.626-4.8-36.188-7.372-55.348-7.372-13.538 0-26.698 1.32-39.528 3.772 26.736-83.46 104.32-144.206 196.252-145.896-71.9-56.35-162.486-89.934-260.916-89.934-16.958 0-33.68 0.994-50.116 2.94 92.972-59.61 203.402-94.394 322.042-94.394 386.422 0 597.736 320.124 597.736 597.744 0 9.108-0.206 18.168-0.61 27.18 41.056 29.62 76.672 66.62 104.836 108.748z" />
<glyph unicode="&#xe60f;" d="M864 256c-45.16 0-85.92-18.738-115.012-48.83l-431.004 215.502c1.314 8.252 2.016 16.706 2.016 25.328s-0.702 17.076-2.016 25.326l431.004 215.502c29.092-30.090 69.852-48.828 115.012-48.828 88.366 0 160 71.634 160 160s-71.634 160-160 160-160-71.634-160-160c0-8.622 0.704-17.076 2.016-25.326l-431.004-215.504c-29.092 30.090-69.852 48.83-115.012 48.83-88.366 0-160-71.636-160-160 0-88.368 71.634-160 160-160 45.16 0 85.92 18.738 115.012 48.828l431.004-215.502c-1.312-8.25-2.016-16.704-2.016-25.326 0-88.368 71.634-160 160-160s160 71.632 160 160c0 88.364-71.634 160-160 160z" />
<glyph unicode="&#xe610;" d="M734.202 331.17h236.050c1.82 16.37 2.548 33.098 2.548 50.196 0 80.224-21.534 155.468-59.124 220.266 38.88 103.308 37.492 190.988-14.556 243.39-49.496 49.28-182.29 41.28-332.412-25.198-11.104 0.84-22.318 1.272-33.638 1.272-206.048 0-378.926-141.794-426.708-332.85 64.638 82.754 132.638 142.754 223.478 186.448-8.26-7.74-56.454-55.652-64.56-63.764-239.548-239.478-315.090-552.306-233.806-633.604 61.786-61.774 173.758-51.342 302.376 11.648 59.806-30.458 127.5-47.63 199.218-47.63 193.134 0 356.804 124.316 416.090 297.448h-237.868c-32.734-60.382-96.748-101.48-170.218-101.48-73.468 0-137.484 41.098-170.216 101.48-14.55 27.274-22.914 58.554-22.914 91.656v0.722h386.26zM348.302 447.196c5.456 97.11 86.2 174.584 184.766 174.584s179.312-77.472 184.766-174.584h-369.532zM896.966 796.192c33.526-33.88 32.688-96.214 4.012-174.022-49.136 74.908-120.518 133.936-204.792 167.64 90.106 38.638 163.406 43.756 200.78 6.382zM93.482-7.256c-42.782 42.796-29.884 132.618 25.23 240.832 34.308-96.27 101.156-177.090 187.336-229.154-95.43-43.318-173.536-50.674-212.566-11.678z" />
<glyph unicode="&#xe611;" d="M1022.526 625.86l-11.86-76.080c0 0-16.954 140.856-37.732 193.514-31.846 80.688-46.014 80.040-46.108 79.922 21.33-54.204 17.462-83.324 17.462-83.324s-37.792 102.998-137.712 135.768c-110.686 36.282-170.57 26.364-177.488 24.486-1.050 0.008-2.064 0.010-3.030 0.010 0.818-0.062 1.612-0.146 2.426-0.212-0.034-0.020-0.090-0.042-0.082-0.052 0.45-0.548 122.306-21.302 143.916-50.996 0 0-51.76 0-103.272-14.842-2.328-0.666 189.524-23.964 228.746-215.674 0 0-21.030 43.876-47.040 51.328 17.106-52.036 12.714-150.776-3.576-199.85-2.096-6.312-4.24 27.282-36.328 41.75 10.28-73.646-0.616-190.456-51.708-222.632-3.982-2.504 32.030 115.31 7.242 69.762-142.708-218.802-311.404-100.972-387.248-49.11 38.866-8.462 112.654 1.318 145.314 25.612 0.042 0.030 0.078 0.056 0.118 0.086 35.468 24.252 56.472 41.964 75.334 37.772 18.874-4.214 31.438 14.726 16.78 31.53-14.676 16.838-50.314 39.978-98.524 27.366-34-8.904-76.134-46.522-140.448-8.432-49.364 29.25-54.012 53.546-54.45 70.376 1.218 5.966 2.754 11.536 4.576 16.624 5.682 15.87 22.912 20.658 32.494 24.438 16.256-2.792 30.262-7.862 44.968-15.406 0.19 4.894 0.252 11.39-0.018 18.76 1.41 2.802 0.538 11.252-1.722 21.58-1.302 10.308-3.42 20.974-6.752 30.692 0.012 0.002 0.020 0.010 0.030 0.014 0.056 0.018 0.108 0.040 0.156 0.070 0.078 0.044 0.146 0.112 0.208 0.19 0.012 0.020 0.030 0.034 0.044 0.052 0.082 0.124 0.154 0.272 0.198 0.466 1.020 4.618 12.022 13.524 25.718 23.1 12.272 8.58 26.702 17.696 38.068 24.752 10.060 6.248 17.72 10.882 19.346 12.098 0.618 0.466 1.358 1.012 2.164 1.636 0.15 0.116 0.3 0.232 0.454 0.354 0.094 0.074 0.19 0.148 0.286 0.226 5.41 4.308 13.484 12.448 15.178 29.578 0.004 0.042 0.010 0.080 0.012 0.122 0.050 0.504 0.092 1.014 0.13 1.534 0.028 0.362 0.050 0.726 0.072 1.096 0.014 0.284 0.032 0.566 0.044 0.856 0.030 0.674 0.050 1.364 0.060 2.064 0 0.040 0.002 0.076 0.004 0.116 0.022 1.658-0.006 3.386-0.104 5.202-0.054 1.014-0.126 1.93-0.298 2.762-0.008 0.044-0.018 0.092-0.028 0.136-0.018 0.082-0.036 0.164-0.058 0.244-0.036 0.146-0.076 0.292-0.122 0.43-0.006 0.018-0.010 0.032-0.016 0.046-0.052 0.16-0.112 0.314-0.174 0.464-0.004 0.006-0.004 0.010-0.006 0.016-1.754 4.108-8.32 5.658-35.442 6.118-0.026 0.002-0.050 0.002-0.076 0.002v0c-11.066 0.188-25.538 0.194-44.502 0.118-33.25-0.134-51.628 32.504-57.494 45.132 8.040 44.46 31.276 76.142 69.45 97.626 0.722 0.406 0.58 0.742-0.274 0.978 7.464 4.514-90.246 0.124-135.186-57.036-39.888 9.914-74.654 9.246-104.616 2.214-5.754 0.162-12.924 0.88-21.434 2.652-19.924 18.056-48.448 51.402-49.976 91.208 0 0-0.092-0.072-0.252-0.204-0.020 0.382-0.056 0.76-0.072 1.142 0 0-60.716-46.664-51.628-173.882-0.022-2.036-0.064-3.986-0.12-5.874-16.432-22.288-24.586-41.020-25.192-45.156-14.56-29.644-29.334-74.254-41.356-141.98 0 0 8.408 26.666 25.284 56.866-12.412-38.022-22.164-97.156-16.436-185.856 0 0 1.514 19.666 6.874 47.994 4.186-55.010 22.518-122.924 68.858-202.788 88.948-153.32 225.67-230.74 376.792-242.616 26.836-2.212 54.050-2.264 81.424-0.186 2.516 0.178 5.032 0.364 7.55 0.574 30.964 2.174 62.134 6.852 93.238 14.366 425.172 102.798 378.942 616.198 378.942 616.198z" />
<glyph unicode="&#xe612;" d="M258.278 513.458l-146.532 253.802c93.818 117.464 238.234 192.74 400.254 192.74 187.432 0 351.31-100.736 440.532-251h-417.77c-7.504 0.65-15.092 1-22.762 1-121.874 0-224.578-83.644-253.722-196.542zM695.306 635h293.46c22.74-57.93 35.234-121.004 35.234-187 0-280.826-226.1-508.804-506.186-511.926l209.394 362.678c29.48 42.378 46.792 93.826 46.792 149.248 0 73.17-30.164 139.42-78.694 187zM326 448c0 102.56 83.44 186 186 186s186-83.44 186-186c0-102.56-83.44-186-186-186-102.56 0-186 83.44-186 186zM582.182 195.558l-146.578-253.878c-246.532 36.884-435.604 249.516-435.604 506.32 0 91.218 23.884 176.846 65.696 251.024l209.030-362.054c41.868-89.112 132.476-150.97 237.274-150.97 24.3 0 47.836 3.34 70.182 9.558z" />
<glyph unicode="&#xe613;" d="M510.046 960c-279.724 0-480.748-202.896-480.748-507.224 0-270.818 195.502-516.776 480.784-516.776 288.078 0 484.62 245.886 484.62 516.776 0 306.76-207.446 507.224-484.656 507.224zM688.358 461.458c-0.068-169.352-9.098-410.482-178.276-410.482v-0.034c-166.784 0-173.432 241.266-173.432 410.308 0 198.38 18.56 388.568 173.432 388.568 154.874 0 178.276-192.584 178.276-388.36z" />
<glyph unicode="&#xe614;" d="M512 896c-24.064 0-47.708-1.792-70.824-5.212-0.3 0.782-0.624 1.548-0.982 2.296 12.826 10.002 19.55 23.83 16.634 37.552-3.734 17.564-22.394 29.364-46.434 29.364-5.18 0-10.458-0.562-15.68-1.672-30.168-6.414-50.146-28.622-45.482-50.562 2.834-13.338 14.292-23.338 30.164-27.384-0.032-0.972-0.016-1.95 0.042-2.934-200.622-57.53-347.438-242.338-347.438-461.448 0-265.098 214.904-480 480-480 265.098 0 480 214.902 480 480 0 265.096-214.902 480-480 480zM364.882 911.092c-2.706 12.726 12.48 27.19 33.158 31.584 4.132 0.878 8.29 1.324 12.354 1.324 16.036 0 28.694-6.864 30.784-16.69 1.596-7.51-3.070-15.61-11.386-21.904-7.034 4.966-16.016 7.126-25.1 5.196-9.044-1.922-16.348-7.508-20.758-14.856-10.184 2.45-17.508 8.084-19.052 15.346zM769.386 158.614c-43.968-43.968-97.21-75.278-155.31-92.154l-42.396 68.768-10.746-79.958c-16.090-2.152-32.426-3.27-48.934-3.27-97.228 0-188.636 37.864-257.386 106.614-43.968 43.966-75.278 97.21-92.154 155.308l68.768 42.398-79.96 10.746c-2.15 16.090-3.268 32.426-3.268 48.934 0 97.228 37.862 188.636 106.614 257.386 43.968 43.968 97.212 75.278 155.31 92.156l42.396-68.77 10.748 79.96c16.088 2.15 32.424 3.268 48.932 3.268 97.228 0 188.636-37.862 257.386-106.614 43.968-43.968 75.278-97.212 92.154-155.31l-68.77-42.398 79.96-10.746c2.152-16.088 3.27-32.424 3.27-48.932 0-97.228-37.864-188.636-106.614-257.386zM760.902 664.902l-196.978-149.704c-14.644 7.658-30.876 12.062-47.416 12.726l-51.080 107.18-3.068-118.664c-13.284-6.536-25.104-15.664-34.876-26.95l-63.088 22.364 46.092-48.538c-6.334-13.518-9.866-28.030-10.434-42.824l-107.158-51.066 118.738-3.068c0.38-0.768 0.774-1.526 1.17-2.282l-149.704-196.98 196.978 149.704c14.644-7.656 30.874-12.060 47.416-12.724l51.080-107.182 3.066 118.664c13.286 6.538 25.106 15.664 34.878 26.952l63.090-22.368-46.094 48.54c6.336 13.52 9.868 28.030 10.436 42.824l107.156 51.066-118.736 3.070c-0.378 0.766-0.774 1.524-1.17 2.28l149.702 196.98zM512.102 515.466v0zM492.042 509.902c6.726 1.43 13.444 2.118 20.056 2.118 4.144 0 8.25-0.27 12.294-0.796l0.092-0.032-0.010 0.022c8.732-1.144 17.176-3.5 25.132-6.896l-71.546-54.376-54.38-71.552c-2.376 5.594-4.27 11.484-5.58 17.652-11.026 51.86 22.080 102.836 73.942 113.86zM562.12 334.116v0 0c-9.056-5.544-19.182-9.684-30.16-12.018-6.726-1.43-13.444-2.118-20.054-2.118-4.15 0-8.258 0.272-12.308 0.798l-0.068 0.010c-8.734 1.142-17.174 3.5-25.132 6.894l71.544 54.376 54.38 71.554c2.376-5.594 4.27-11.486 5.58-17.654 8.69-40.882-10.056-81.2-43.782-101.842z" />
<glyph unicode="&#xe615;" d="M60.538 960l82.144-921.63 368.756-102.37 369.724 102.524 82.3 921.476h-902.924zM784.63 658.572h-432.54l10.302-115.75h411.968l-31.042-347.010-231.844-64.254-231.572 64.254-15.83 177.512h113.494l8.048-90.232 125.862-33.916 0.278 0.078 125.934 33.992 13.070 146.55h-391.74l-30.494 341.8h566.214l-10.108-113.024z" />
<glyph unicode="&#xe616;" d="M192 832l640-384-640-384z" />
<glyph unicode="&#xe617;" d="M128 832h320v-768h-320zM576 832h320v-768h-320z" />
<glyph unicode="&#xe618;" d="M512 960c282.77 0 512-229.23 512-512 0-261.094-195.438-476.53-448-508.026v380.026h176l16 128h-192v64c0 35.346 28.654 64 64 64h128v128h-128c-106.040 0-192-85.96-192-192v-64h-96v-128h96v-380.026c-252.562 31.496-448 246.932-448 508.026 0 282.77 229.23 512 512 512z" />
<glyph unicode="&#xe619;" d="M1024 960v-384l-138.26 138.26-212-212-107.48 107.48 212 212-138.26 138.26zM245.74 821.74l212-212-107.48-107.48-212 212-138.26-138.26v384h384zM885.74 181.74l138.26 138.26v-384h-384l138.26 138.26-212 212 107.48 107.48zM457.74 286.26l-212-212 138.26-138.26h-384v384l138.26-138.26 212 212z" />
<glyph unicode="&#xe61a;" d="M64 384h384v-384l-138.26 138.26-202-202-107.48 107.48 202 202zM821.74 245.74l202-202-107.48-107.48-202 202-138.26-138.26v384h384zM960 512h-384v384l138.26-138.26 202 202 107.48-107.48-202-202zM309.74 757.74l138.26 138.26v-384h-384l138.26 138.26-202 202 107.48 107.48z" />
<glyph unicode="&#xe61b;" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM816.056 143.944c-39.518-39.516-85.512-70.532-136.708-92.186-13.006-5.5-26.214-10.328-39.6-14.492v76.734c0 40.334-13.834 70-41.5 89 17.334 1.666 33.25 4 47.75 7s29.834 7.334 46 13 30.666 12.416 43.5 20.25 25.166 18 37 30.5 21.75 26.666 29.75 42.5 14.334 34.834 19 57 7 46.584 7 73.25c0 51.666-16.834 95.666-50.5 132 15.334 40 13.666 83.5-5 130.5l-12.5 1.5c-8.666 1-24.25-2.666-46.75-11s-47.75-22-75.75-41c-39.666 11-80.834 16.5-123.5 16.5-43 0-84-5.5-123-16.5-17.666 12-34.416 21.916-50.25 29.75-15.834 7.834-28.5 13.166-38 16s-18.334 4.584-26.5 5.25-13.416 0.834-15.75 0.5-4-0.666-5-1c-18.666-47.334-20.334-90.834-5-130.5-33.666-36.334-50.5-80.334-50.5-132 0-26.666 2.334-51.084 7-73.25s11-41.166 19-57 17.916-30 29.75-42.5 24.166-22.666 37-30.5 27.334-14.584 43.5-20.25 31.5-10 46-13 30.416-5.334 47.75-7c-27.334-18.666-41-48.334-41-89v-78.23c-15.098 4.494-29.98 9.804-44.6 15.988-51.194 21.654-97.188 52.67-136.706 92.186-39.516 39.518-70.534 85.512-92.186 136.708-22.398 52.958-33.756 109.262-33.756 167.348s11.358 114.39 33.758 167.35c21.654 51.194 52.67 97.188 92.186 136.706s85.512 70.534 136.706 92.186c52.96 22.4 109.264 33.758 167.35 33.758s114.39-11.358 167.35-33.758c51.196-21.654 97.19-52.67 136.708-92.186 39.516-39.516 70.532-85.512 92.186-136.706 22.398-52.96 33.756-109.264 33.756-167.35s-11.358-114.39-33.758-167.35c-21.654-51.194-52.67-97.19-92.186-136.706z" />
<glyph unicode="&#xe61c;" d="M621.254 82.746l320 320c24.994 24.992 24.994 65.516 0 90.51l-320 320c-24.994 24.992-65.516 24.992-90.51 0-24.994-24.994-24.994-65.516 0-90.51l210.746-210.746h-613.49c-35.346 0-64-28.654-64-64s28.654-64 64-64h613.49l-210.746-210.746c-12.496-12.496-18.744-28.876-18.744-45.254s6.248-32.758 18.744-45.254c24.994-24.994 65.516-24.994 90.51 0z" />
<glyph unicode="&#xe61d;" d="M1024 352l-192 192v288h-128v-160l-192 192-512-512v-32h128v-320h320v192h128v-192h320v320h128z" />
<glyph unicode="&#xe61e;" d="M320 768l704 192v-736c0-88.366-100.29-160-224-160s-224 71.634-224 160c0 88.366 100.29 160 224 160 34.358 0 66.902-5.532 96-15.406v329.588l-448-122.182v-480c0-88.366-100.288-160-224-160-123.712 0-224 71.634-224 160 0 88.366 100.288 160 224 160 34.358 0 66.902-5.532 96-15.406v527.406z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 22 KiB

BIN
css/fonts/typegame icons.ttf Executable file

Binary file not shown.

BIN
css/fonts/typegame icons.woff Executable file

Binary file not shown.

613
css/main.css Executable file
View File

@ -0,0 +1,613 @@
/*@import url(http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,400,300);*/
@import url(http://fonts.googleapis.com/css?family=Lato:100);
* {
/*vertical-align: middle;*/
box-sizing: border-box;
}
html {
overflow: hidden;/*
width: 100%;
height: 100%;*/
}
body {/*
width: 100%;
height: 100%;
padding: 0;
margin: 0;*/
font-weight: 300;
font-size: 25px;
color: #444;
/*background-color: #fff;*/
font-family: 'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
/*font-family:'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;*/
}
h1 {
font-family:'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
font-weight: 100;
padding: 20px;
margin: 0;
font-size: 2em;
color: #fff;
background-color: rgba(235, 0, 255, 0.5);
/* From chromium source: */
/* background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAgMAAADXB5lNAAAACVBMVEVTU1P///9TU1P8g2f9AAAAAnRSTlMAAHaTzTgAAAB0SURBVHhe1dMxCgMxDAXRIaVOkXrvs/f79ZwyEGNITKwUgcBOZR4upEKcSxeCmSrAFko1r5Cv4J8A6EGzgwLQQAdHD5ljbUFU08Gz8AOwgWX1HlBNC6WyBVWMOBpq5C2pz3ALUIGsP1ZAKtznmxoAAtc5wgegV/QjpyQHeQAAAABJRU5ErkJggg==);
background-repeat: no-repeat;
background-position: center right; */
transition: 1s width;
width: 100%;
}
h2, h3, h4, h5, h6 {
padding: 5px;
font-weight: 100;
font-family:'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
}
a {
color: #008;
text-decoration: none;
}
b {
font-weight: 400;
}
/*
.menu h1 {
font-size: 3em;
margin-top: -0.3em;
}*/
#wordsh {
font-family:'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
font-weight: 100;
font-size: 5em;
width: 65%;
height: 100%;
position: absolute;
left: 35%;
transition: 1s margin-left;
}
#sidebar {
transition: 1s width;
width: 35%;
height: 100%;
padding: 32px 0 0 0;
float: left;
}
#stats > div {
padding: 0 20px;
}
#stats > div > label {
vertical-align: middle;
font-size: 0.75em;
line-height: 1.5em;
width: 30%;
display: inline-block;
}
#stats > div > span {
vertical-align: middle;
line-height: 1em;
padding: 20px;
width: 50%;
display: inline-block;
}
#stats > div > #time {
font-size: 2em;
color: #aa4444;
}
#stats > div > #time > #timems {
font-size: 0.5em;
line-height: 0.5em;
vertical-align: bottom;
}
#stats > div > #correct {
font-size: 1.32em;
color: #44cc44;
}
#stats > div > #incorrect {
color: #cc4444;
}
#stats > div > #levels {
color: #4444cc;
}
#mainwordblock {
width: 100%;
height: 1.3em;
background-color: #fff;
position: absolute;
top: 233px;
z-index: 1;
}
#mainword {
width: 100%;
line-height: 1.2em;
height: 1.3em;
overflow: hidden;
position: absolute;
top: 233px;
padding: 40px 60px;
color: #fff;
background-color: rgba(105, 0, 255, 0.5);
z-index: 100;
}
#mainword > span {
line-height: 1.2em;
display: block;
position: absolute;
top: 0;
/*transform: translateY(-50px) scale(1) translateZ(0);*/
transform-origin: 0px 50%;
/*transition: top 0.5s, font-size 0.5s, opacity 0.5s;*/
transition: transform 0.5s, opacity 0.5s;
}
.maindone {/*
top: -120px;
font-size: 0.6em;*/
transform: translateY(-120px) scale(0.6) translateZ(0);
opacity: 0.5;
}
.main {/*
top: 0px;
font-size: 1.0em;*/
transform: translateY(0px) scale(1) translateZ(0);
opacity: 1.0;
}
.maincome {/*
top: 175px;
font-size: 0.8em;*/
transform: translateY(175px) scale(0.8) translateZ(0);
opacity: 1;
}
#words {
/* transform: translateZ(0); *//* force acelerated rendering */
}
#words span {
line-height: 1.1em;
padding: 40px 60px;
position: absolute;
top: 0;
/*transform: translateY(-100px) scale(1) translateZ(0);*/
transform-origin: 60px 50%;
/*transition: top 0.5s, font-size 0.5s, opacity 0.5s;*/
transition: transform 0.5s, opacity 0.5s;
}
.w1 {/*
top: -50px;
font-size: 0.1em;*/
transform: translateY(-50px) scale(0.1) translateZ(0);
opacity: 0.2;
}
.w2 {/*
top: -25px;
font-size: 0.2em;*/
transform: translateY(-25px) scale(0.2) translateZ(0);
opacity: 0.3;
}
.w3 {/*
top: 20px;
font-size: 0.4em;*/
transform: translateY(20px) scale(0.4) translateZ(0);
opacity: 0.4;
}
.w4 {/*
top: 80px;
font-size: 0.6em;*/
transform: translateY(80px) scale(0.6) translateZ(0);
opacity: 0.5;
}
.w5 {/*
top: 200px;
font-size: 1em;*/
transform: translateY(200px) scale(1) translateZ(0);
opacity: 1;
}
.w6 {/*
top: 375px;
font-size: 0.8em;*/
transform: translateY(375px) scale(0.8) translateZ(0);
opacity: 1;
}
.w7 {/*
top: 505px;
font-size: 0.65em;*/
transform: translateY(505px) scale(0.65) translateZ(0);
opacity: 0.8;
}
.w8 {/*
top: 610px;
font-size: 0.5em;*/
transform: translateY(610px) scale(0.5) translateZ(0);
opacity: 0.7;
}
.w9 {/*
top: 700px;
font-size: 0.35em;*/
transform: translateY(700px) scale(0.35) translateZ(0);
opacity: 0.6;
}
.w10 {/*
top: 770px;
font-size: 0.2em;*/
transform: translateY(770px) scale(0.2) translateZ(0);
opacity: 0.5;
}
.main span {
display: inline-block;
/*margin-top: -35px;*/
}
#mainword .green {
color: #4f4;
}
#mainword .red {
color: #f44;
}
#mainword.red {
background-color: rgba(255, 0, 255, 0.5);
}
#wordsh > div.timespenth {
display: none;
z-index: 5000;
width: 100%;
background-color: rgba(50, 255, 50, 0);
height: 3px;
position: absolute;
top: 230px;
left: 0%;
}
#wordsh > div.timespenth > span.timespent {
float: left;
display: block;
width: 0%;
background-color: rgba(255, 50, 50, 0.75);
height: 3px;/*
transition: width 0.0s;*//*
box-shadow: 0 0 10px rgba(255, 50, 50, 0.25);*/
}/*
#wordsh > div.timespenth > span.timespent:after {
box-shadow: 0 0 15px 2px rgba(255, 50, 50, 0.25);
content: "";
width: 6px;
height: 3px;
background-color: transparent;
display: block;
position: absolute;
left: attr(data-left);
}*/
.popup {
display: none;
position: absolute;
top: 3%;
left: 40%;
right: 0;
max-height: 96%;
min-height: 60%;
/* padding: 40px; */
padding: 40px 0;
/*padding: 50px 80px;*/
background-color: rgba(105, 0, 255, 0.75);
z-index: 5001;
color: #fff;
font-weight: 100;
text-align: center;
/*text-align: left;*/
font-family:'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
overflow-y: auto;
}
.popup a[class*="tyicon-"] {
color: #fff;
text-decoration: none;
font-size: 0;
margin: 20px;
}
.popup a[class*="tyicon-"]:before {
font-size: 48px;
}
.button {
width: 100%;
color: #fff;
display: inline-block;
padding: 15px;
margin: 0;
/* min-width: 200px; */
}/*
.button h2 {
display: inline-block;
padding: 0;
margin: 0;
}*/
.button:hover {
background-color: rgba(235, 0, 255, 0.5);
}
body.menuopen > #sidebar {
width: 100%;
}
body.menuopen > #wordsh {
margin-left: 100%;
}
body.menuopen > #sidebar > h1 {
width: 65%;
}
#play {
height: auto;
float: right;
font-size: 0.75em;
padding: 26px 41px;
margin: -20px;
cursor: pointer;
color: #fff;/*
background-color: rgba(105, 0, 255, 0.1); */
}
#play:hover {
background-color: rgba(105, 0, 255, 0.5);
}
#stats {
display: none;
margin-top: 16px;
}
#menu {
display: block;
margin-top: 0;
position: absolute;
top: 160px;
background-color: #fff;
width: 35%;
}
#menu > ul {
list-style: none;
padding: 0;
margin: 0;
}
#menu > ul > li {
display: block;
}
#menu > ul > li > a {
color: #444;
display: block;
font-size: 0.75em;
width: 100%;
padding: 15px 20px;
margin: 5px 0;
/*transition: 0.05s background-color;*/
}
#menu > ul > li > a:hover {
background-color: rgba(105, 0, 255, 0.5);
color: #fff;
}
#status {
position: absolute;
top: auto;
left: auto;
right: auto;
bottom: 0;
width: 100%;
height: auto;
min-height: 0;
padding: 3%;
line-height: 1em;
font-size: 1em;
background-color: rgba(105, 0, 255, 0.5);
}
#status span {
}
#remarksh {
position: absolute;
right: 0;
font-size: 30px;
height: 100%;
color: #fff;
}
#remarksh span {
position: absolute;
top: 0;
right: 0;
transform: translateY(-300px) translateZ(0);
opacity: 1;
display: block;
padding: 10px 20px 10px 30px;
min-width: 140px;
text-align: right;
z-index: 120;
background-color: rgba(105, 0, 255, 0.5);
animation: 3s flypast cubic-bezier(.1,1,.50,0), 3s lookatme;
}
#remarksh span.red {
background-color: rgba(255, 0, 255, 0.5);
}
@keyframes flypast {
0% {
transform: translateY(1000px) translateZ(0);
}
100% {
transform: translateY(-400px) translateZ(0);
}
}
@keyframes lookatme {
0% {
opacity: 0.4;
}
50% {
opacity: 1;
}
100% {
opacity: 0.4;
}
}
.loadingdots {
display: none;
margin: 0 5px 0 -5px;
width: 8px;
height: 8px;
background-color: transparent;
border-radius: 10px;
box-shadow: 10px 0 0 rgba(255, 255, 255, 1), 25px 0 0 rgba(255, 255, 255, 1), 40px 0 0 rgba(255, 255, 255, 1);
animation: 0.75s loadingdots infinite;
}
@keyframes loadingdots {
0% {
box-shadow: 10px 0 0 1px rgba(255, 255, 255, 1), 25px 0 0 rgba(255, 255, 255, 0.2), 40px 0 0 rgba(255, 255, 255, 0.2);
}
33.33% {
box-shadow: 10px 0 0 rgba(255, 255, 255, 0.2), 25px 0 0 1px rgba(255, 255, 255, 1), 40px 0 0 rgba(255, 255, 255, 0.2);
}
66.66% {
box-shadow: 10px 0 0 rgba(255, 255, 255, 0.2), 25px 0 0 rgba(255, 255, 255, 0.2), 40px 0 0 1px rgba(255, 255, 255, 1);
}
100% {
box-shadow: 10px 0 0 1px rgba(255, 255, 255, 1), 25px 0 0 rgba(255, 255, 255, 0.2), 40px 0 0 rgba(255, 255, 255, 0.2);
}
}
.showloadingdots {
display: inline-block;
}/*
.close {
float: right;
position: absolute;
right: 40px;
display: block;
font-size: 25px;
line-height: 1em;
padding: 20px;
}
.close:hover {
background-color: rgba(235, 0, 255, 0.5);
}
*/
[class*="tyicon-"] {
vertical-align: middle;
}
#login img {
border-radius: 50%;
margin-top: -0.23em;
height: 1.1em;
margin-right: 0.2em;
vertical-align: middle;
}
.dude {
position: absolute;
right: 0;
top: 160px;
bottom: 0;
width: 65%;
padding: 20px 20px;
overflow-y: auto;
}
.mydetails {
height: 70px;
}
.mydetails img {
border-radius: 50%;
height: 50px;
display: block;
margin: 0 auto;
position: relative;
top: 10px;
}
.mydetails span {
padding: 20px;
display: block;
font-size: 0.9em;
position: absolute;
font-weight: 100;
font-family:'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
}
.mydetails #myname {
left: 20px;
}
.mydetails #logout {
right: 20px;
}
#logout:hover {
background-color: rgba(105, 0, 255, 0.5);
color: #fff;
}
.mygames h3 {
font-size: 1.4em;
margin: 0;
padding: 10px;
text-align: center;
}
.mygames ul {
color: #fff;
list-style: none;
width: 80px;
height: 40px;
font-size: 0;
padding: 0;
background-color: rgba(105, 0, 255, 0.5);
position: absolute;
left: 30px;
top: 105px;
}
.mygames ul li {
width: 40px;
height: 40px;
font-size: 20px;
line-height: 20px;
padding: 10px;
display: inline-block;
}
.mygames ul li:hover {
background-color: rgba(105, 0, 255, 0.5);
}
.mygames ul li.active {
background-color: rgba(235, 0, 255, 0.5);
}
.mygames canvas {
display: block;
margin: 0 auto;
}
.canvas.websockets.cssanimations.csstransforms.csstransitions.fontface.generatedcontent.localstorage #not-supported {
display: none;
}
#too-small, #not-supported {
padding: 10%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 5000;
background-color: #666;
background-color: rgba(105, 0, 255, 0.5);
color: #fff;
font-size: 40px;
}
#too-small {
pointer-events: none;
}
#not-supported {
background-color: rgba(105, 0, 255, 0.9);
}
@media screen and (min-width: 962px) and (min-height: 640px) {
#too-small {
display: none;
}
}
table {
margin: 0 auto;
font-family: "Open Sans";
font-weight: 300;
max-width: 600px;
font-size: 20px;
}
td, th {
padding: 4px 8px;
min-width: 100px;
}
th {
text-align: center;
font-family: "Lato";
font-weight: 100;
font-size: 1.1em;
}
td {
}
td:nth-child(1) {
text-align: right;
font-size: 1.2em;
padding: 4px 10px;
}
td:nth-child(2) {
text-align: right;
}
td:nth-child(4) {
text-align: left;
}

1
css/normalize.css vendored Executable file
View File

@ -0,0 +1 @@
/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}

BIN
images/icon.psd Executable file

Binary file not shown.

BIN
images/icon240.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

1592
images/typega.me.ai Executable file

File diff suppressed because one or more lines are too long

1426
images/typega.me.pdf Executable file

File diff suppressed because one or more lines are too long

View File

@ -1,70 +1,212 @@
<!DOCTYPE html>
<html>
<html><!-- manifest="typegame.appcache"> -->
<head>
<meta charset="utf-8" />
<title>typega.me - type, type and type. </title>
<meta name="google-site-verification" content="-3fTIhmTL4ZA_9Iysrs7L5DBSwIhToML54dN0DQluvM" />
<meta property="og:title" content="typega.me - type, type and type. " />
<meta property="og:url" content="http://typega.me/" />
<meta property="og:image" content="images/icon240.png" />
<link rel="icon" href="images/icon16.png" type="image/png" />
<meta name="description" content="An awesome typing game by eurica inc. Type, type and type. Coming soon! " />
<meta name="author" content="eurica inc" />
<meta name="google-site-verification" content="-3fTIhmTL4ZA_9Iysrs7L5DBSwIhToML54dN0DQluvM" />
<style>
@import url(http://fonts.googleapis.com/css?family=Lato:100);
* {
padding: 0;
margin: 0;
}
body {
padding: 100px 0;
font-family:'Lato', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
-webkit-font-smoothing: antialiased;
background-color: #fff;
font-size: 25px;
color: #fff;
}
h1, h2, h3, h4, h5 {
font-weight: 100;
line-height: 1em;
}
h1 {
text-align: right;
}
h2 {
text-align: left;
}
span {
color: #fff;
padding: 20px;
display: inline-block;
}
h1 span {
padding-left: 150px;
background-color: rgba(235, 0, 255, 0.5);
}
h2 span {
background-color: rgba(105, 0, 255, 0.5);
}
h3 {
font-size: 1.1em;
}
h3 span {
background-color: rgba(105, 0, 255, 0.5);
}
section {
padding: 50px;
margin: 100px 0 20px 0;
background-color: rgba(105, 0, 255, 0.5);
}
</style>
<meta name="description" content="A typing game by a2y inc. play now! " />
<link rel="stylesheet" href="css/normalize.css" />
<link rel="stylesheet" href="css/main.css" />
<link rel="stylesheet" href="css/fonts.css" />
</head>
<body>
<h1><span>typega.me</span></h1>
<h2><span>coming soon</span></h2>
<section>
an awesome typing game by eurica inc. type, type and type. get ready! <a href="/request.html">request beta</a> if you're enthusiastic!
</section><!-- https://docs.google.com/forms/d/1mLq0mwyt8i9xQEJkCvMoShu3cwJb2AHppb_8sg8B3_s/viewform -->
<body class="menuopen">
<!-- <div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : 'YOUR_APP_ID', // App ID from the app dashboard
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel file for x-domain comms
status : true, // Check Facebook Login status
xfbml : true // Look for social plugins on the page
});
// Additional initialization code such as adding Event Listeners goes here
};
// Load the SDK asynchronously
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script> -->
<div id="sidebar">
<h1><span onclick="scrambleDocument();">typega.me</span> <a href="#" id="play">play <span class="tyicon-play"><!-- &#9654; --><span></a></h1>
<div id="stats">
<div class="timeh">
<label>time: </label><span id="time"><span id="timem">00</span>:<span id="times">00</span><span id="timems">00</span></span>
</div>
<div class="pointsh">
<label>points: </label><span id="points">0</span>
</div>
<div class="levelsh">
<label>level: </label><span id="levels">2</span>
</div>
<div class="correcth">
<label>correct: </label><span id="correct">100</span>
</div>
<div class="incorrecth">
<label>incorrect: </label><span id="incorrect">20</span>
</div>
</div>
<div id="menu">
<ul>
<li><a href="#" id="login">sign in</a></li>
<li><a href="#" id="compete">compete</a></li>
<li><a href="#" id="worldscores">worldwide highscores</a></li>
<li><a href="#" id="friendscores">friends's highscores</a></li>
<!-- <li><a href="#" id="yourscores">your highscores</a></li> -->
<li><a href="#" id="about">options</a></li>
</ul>
</div>
<!-- <footer>
By a<sub>2</sub>y inc. Background music "Battle Rock" by <a href="http://gplus.to/guiltypixel">GuiltyPixel</a>.
</footer> -->
</div>
<div id="wordsh">
<div class="timespenth"><span class="timespent" id="timespent"> </span></div>
<div id="mainword">
<!-- <span class="maindone">done</span> -->
<span class="main">typega.me</span>
<span class="maincome">play now</span>
</div>
<div id="mainwordblock">
</div>
<div id="words">
<!-- <span class="w1">hello</span>
<span class="w2">world</span>
<span class="w3">hello</span>
<span class="w4">done</span>-->
<span class="w5">typega.me</span>
<span class="w6">play now</span>
<span class="w7">typegame</span>
<span class="w8">typing</span>
<span class="w9">fast</span>
<span class="w10">keyboard</span>
</div>
<div id="remarksh">
</div>
</div>
<div class="popup" style="display: block;" id="status">
<span>loading</span><div class="loadingdots showloadingdots"></div>
</div>
<div class="popup" id="loginmenu">
<h2>sign in to typega.me</h2>
<h3>with google</h3>
<span id="signinButton">
<span
class="g-signin"
data-callback="signinCallback"
data-clientid="519814078940.apps.googleusercontent.com"
data-cookiepolicy="single_host_origin"
data-requestvisibleactions="http://schemas.google.com/AddActivity"
data-scope="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/drive.appdata">
</span>
</span>
<!-- <h3>Facebook</h3> -->
<span class="button close">&#10005;</span>
</div>
<div class="popup" id="aboutmenu">
<h2>about typega.me</h2>
<h3>by eureca inc. </h3>
<a href="contact/" class="button">contact us</a><br />
<a href="terms/" class="button">terms of service</a><br />
<a href="privacy/" class="button">privacy policy</a><br />
<a href="http://github.com/a2yinc/typega.me" class="button">github <span class="tyicon-github"></span></a><br />
<span class="button close">&#10005;</span>
</div>
<div class="popup" id="results">
<h2>your score: <span id="resultpoints"></span></h2>
<h3>share</h3>
<a href="#" id="sharegoogleplus" class="tyicon-circle-google-plus">google+</a><br />
<a href="#" id="sharetwitter" class="tyicon-circle-twitter">twitter</a><br />
<a href="#" id="sharefacebook" class="tyicon-circle-facebook">facebook</a><br />
<a href="#" class="button" id="replay">replay <span class="tyicon-spinner"><!-- &#x21bb; --><span></a><br />
<a href="#" class="button" id="home">home <span class="tyicon-home"><span></a>
</div>
<div class="dude" id="me" style="display: none;">
<div class="mydetails">
<span id="myname"></span>
<span id="logout">logout</span>
<img src="" id="myprofileimage" />
</div>
<div class="mygames">
<div class="mygamesheader">
<h3>my games</h3>
<ul>
<li id="graphview" class="active tyicon-stats" title="graph view"></li>
<li id="listview" class="tyicon-list" title="list view"></li>
</ul>
</div>
<div id="mychart">
<canvas id="mygameschart" width="600" height="300"><h4>charts are not working! </h4></canvas>
</div>
<div id="mytable">
<table>
<thead>
<tr>
<th title="points">pts.</th>
<th title="incorrect">incr.</th>
<th title="time taken">took</th>
<th>timestamp</th>
</tr>
</thead>
<tbody id="mygamestable">
</tbody>
</table>
</div>
</div>
</div>
<div id="too-small">
<h2>ow! gimme a little more space. thanks! </h2>
</div>
<div id="not-supported">
<h2>some stuff does not work on your browser. upgrade to a better one! <a href="https://google.com/chrome">Google Chrome</a></h2>
</div>
<!-- <audio src="sounds/background.mp3" autoplay="true">
</audio> -->
<!-- Place this asynchronous JavaScript just before your </body> tag -->
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
<script src="js/keycodes.json"></script>
<script src="js/words.js"></script>
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/main.js"></script>
<script src="js/Chart.min.js"></script>
<script src="js/modernizr.js"></script>
<script type="text/javascript">
var ie = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->', all[0]
);
return v > 4 ? v : undef;
}());
if (ie < 9) {
alert("IE8, IE7, IE6 and lower is not supported by typega.me. That means you're a loser :) Upgrade your browser! (maybe Google Chrome)");
}
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@ -73,5 +215,6 @@
ga('create', 'UA-45053637-1', 'typega.me');
ga('send', 'pageview');
</script>
<script src="js/prefixfree.min.js"></script>
</body>
</html>

6
js/jquery-1.10.2.min.js vendored Executable file

File diff suppressed because one or more lines are too long

147
js/keycodes.json Executable file
View File

@ -0,0 +1,147 @@
var keycodes = { // added `var keycodes = `
/**
* The most common keycodes defined by :
* @type {Object.<number>}
* @const
*/
KEYMAP : {
STRG: 17,
CTRL: 17,
CTRLRIGHT: 18,
CTRLR: 18,
SHIFT: 16,
RETURN: 13,
ENTER: 13,
BACKSPACE: 8,
BCKSP:8,
ALT: 18,
ALTR: 17,
ALTRIGHT: 17,
SPACE: 32,
WIN: 91,
MAC: 91,
FN: null,
UP: 38,
DOWN: 40,
LEFT: 37,
RIGHT: 39,
ESC: 27,
DEL: 46,
F1: 112,
F2: 113,
F3: 114,
F4: 115,
F5: 116,
F6: 117,
F7: 118,
F8: 119,
F9: 120,
F10: 121,
F11: 122,
F12: 123
},
/**
* @type {Object.<string>}
* @const
*/
KEYCODES : {
'backspace' : '8',
'tab' : '9',
'enter' : '13',
'shift' : '16',
'ctrl' : '17',
'alt' : '18',
'pause_break' : '19',
'caps_lock' : '20',
'escape' : '27',
'page_up' : '33',
'page down' : '34',
'end' : '35',
'home' : '36',
'left_arrow' : '37',
'up_arrow' : '38',
'right_arrow' : '39',
'down_arrow' : '40',
'insert' : '45',
'delete' : '46',
'0' : '48',
'1' : '49',
'2' : '50',
'3' : '51',
'4' : '52',
'5' : '53',
'6' : '54',
'7' : '55',
'8' : '56',
'9' : '57',
'a' : '65',
'b' : '66',
'c' : '67',
'd' : '68',
'e' : '69',
'f' : '70',
'g' : '71',
'h' : '72',
'i' : '73',
'j' : '74',
'k' : '75',
'l' : '76',
'm' : '77',
'n' : '78',
'o' : '79',
'p' : '80',
'q' : '81',
'r' : '82',
's' : '83',
't' : '84',
'u' : '85',
'v' : '86',
'w' : '87',
'x' : '88',
'y' : '89',
'z' : '90',
'left_window key' : '91',
'right_window key' : '92',
'select_key' : '93',
'numpad 0' : '96',
'numpad 1' : '97',
'numpad 2' : '98',
'numpad 3' : '99',
'numpad 4' : '100',
'numpad 5' : '101',
'numpad 6' : '102',
'numpad 7' : '103',
'numpad 8' : '104',
'numpad 9' : '105',
'multiply' : '106',
'add' : '107',
'subtract' : '109',
'decimal point' : '110',
'divide' : '111',
'f1' : '112',
'f2' : '113',
'f3' : '114',
'f4' : '115',
'f5' : '116',
'f6' : '117',
'f7' : '118',
'f8' : '119',
'f9' : '120',
'f10' : '121',
'f11' : '122',
'f12' : '123',
'num_lock' : '144',
'scroll_lock' : '145',
'semi_colon' : '186',
'equal_sign' : '187',
'comma' : '188',
'dash' : '189',
'period' : '190',
'forward_slash' : '191',
'grave_accent' : '192',
'open_bracket' : '219',
'backslash' : '220',
'closebracket' : '221',
'single_quote' : '222'
}
}

787
js/main.js Executable file
View File

@ -0,0 +1,787 @@
// Status
var levels = 0;
var correct = 0;
var incorrect = 0;
var points = 0;
var extrapoints = 0;
// Timing
var starttime = 0;
var endtime = 0;
var runtime = 0;
var clockupdate;
var paintclockupdates;
// Word timing
var wordstarttime = 0;
var wordruntime = 0;
var wordtimer;
var paintwordtimer;
var maxwordtime = 4000;
// Words
// var words = ["main", "come", "hello", "world", "hello", "world", "hello", "world"];
var newwords = [];
var currentword = 0;
var thisletters = [];
var nowletter = "";
var currentindex = 0;
// Others
var allowwrong = true;
var otherkeydown = false;
var isplaying = false;
var menuopen = true;
var currentmenu = 0;
var signedin = false;
var usercredentials = {
name: "",
givenname: "",
familyname: "",
type: "googleplus",
token: "",
profileimage: "",
games: [
/*
{
timestamp: 0,
points: 0,
levels: 0,
correct: 0,
incorrect: 0,
timetaken: 0
}
*/
]
};
var encouragingwords = ["awesome!", "great!", "wow!", "good!", "cool!"];
// Localstorage
// console.log(JSON.parse(localStorage["usercredentials"]));
try {
console.log('localStorage available! ');
usercredentials = JSON.parse(localStorage["usercredentials"]);
}
catch (e) {
console.log('localStorage unavailable. ');
}
function saveLocal() {
console.log('localStorage save! ');
localStorage["usercredentials"] = JSON.stringify(usercredentials);
drawMyChart();
}
// Helpers
// var pfx = ["webkit", "moz", "MS", "o", ""];
// function PrefixedEvent(element, type, callback) {
// for (var p = 0; p < pfx.length; p++) {
// if (!pfx[p]) type = type.toLowerCase();
// element.addEventListener(pfx[p]+type, callback, false);
// }
// }
// Tools
function showPopup(str, fadeout, delayclose) {
$("#status span").html(str);
$("#status").fadeIn(750);
$(".loadingdots").addClass("showloadingdots");
if (fadeout) {
$(".loadingdots").removeClass("showloadingdots");
$("#status").fadeIn(250);
setTimeout(function() {
$("#status").fadeOut(750);
}, delayclose || 500);
}
}
function injectRemark(text, spanclass) {
var remspan = $("<span>").html(text).addClass(spanclass);
$("#remarksh").append(remspan);
remspan.on("webkitAnimationEnd", function() {
$(remspan).remove();
});
}
function showEncouragement() {
setTimeout(function() {
if (Math.floor(Math.random() + 0.25)) {
var encouragingwordsindex = Math.floor(Math.random() * (encouragingwords.length - 1) + 0.5);
injectRemark(encouragingwords[encouragingwordsindex]);
}
}, 2000);
}
function humanNumber(number) {
var num = Math.floor(number + 0.5);
var ret = "";
var start = num.toString().length;
// snippet from http://labs.vectorform.com/2011/08/large-number-aesthetics-in-javascript/
for (i = start; i > 0; i-=3, num = Math.floor(num / 1000)) {
var prepend = num.toString();
// Grab trailing three digits
prepend = prepend.substr(i-3 < 0 ? 0 : i-3, i)
// Include a comma only if this isn't our first time through
if(i != start) {
prepend += ' ';
}
ret = prepend + ret;
}
return ret;
}
function addPoints(pts, delay) {
extrapoints += pts;
var ptsclass = "";
var ptsstr = humanNumber(pts);
if (pts < 0) {
ptsclass = "red";
}
else {
ptsstr = "+" + ptsstr;
}
setTimeout(function() {
injectRemark(ptsstr, ptsclass);
}, delay);
}
// Timing
function addz(number) {
newstr = number + "";
if (newstr.length == 1) {
newstr = "0" + newstr;
}
return newstr;
}
function clockframe() {
now = new Date().getTime();
runtime = now - starttime;
/*
min = Math.floor(runtime/10/100/60);
sec = Math.floor(runtime/10/100);
milsec = Math.floor(runtime/10);
$("#timems").html(addz(milsec % 100));
$("#times").html(addz(sec % 60));
$("#timem").html(addz(min));
*/
}
function paintclockframe() {
var frametimes = getRunningTime();
$("#timems").html(addz(frametimes[2]));
$("#times").html(addz(frametimes[1]));
$("#timem").html(addz(frametimes[0]));
}
function getRunningTime() {
return [
Math.floor(runtime/10/100/60),
Math.floor(runtime/10/100) % 60,
Math.floor(runtime/10) % 100];
}
function timerStart() {
if (starttime == 0) {
starttime = new Date().getTime();
}
starttime = new Date().getTime() - runtime;
clockupdate = setInterval(clockframe, 0);
paintclockupdate = setInterval(paintclockframe, 13);
started = 1;
}
function timerStop() {
clearInterval(clockupdate);
clearInterval(paintclockupdate);
started = 0;
}
function showNext() {
showEncouragement();
$(".maindone").remove();
$(".main").removeClass("main").addClass("maindone");
$(".maincome").removeClass("maincome").addClass("main");
$("#words").children().each(function (index) {
var thisclass = $(this).attr("class");
$(this).removeClass().addClass("w" + (
thisclass.replace("w", "") * 1 - 1
));
});
$(".w0").remove();
}
function wordTimerStart() {
wordstarttime = new Date().getTime();
wordtimer = setInterval(wordTimerFrame, 0);
paintwordtimer = setInterval(paintWordTimerFrame, 17);
}
function wordTimerStop() {
clearInterval(wordtimer);
clearInterval(paintwordtimer);
if (allowwrong) {
// POINTS
var pointstoadd = (wordruntime / maxwordtime * - 100 + 75 ) * (levels-1);
addPoints(pointstoadd, 750);
}
}
function wordTimerFrame() {
wordruntime = new Date().getTime() - wordstarttime;
// MOVED TO paintWordTimerFrame();
// $(".timespent").css("width", (wordruntime / maxwordtime * 100) + "%");
// document.getElementById("timespent").style.width = (wordruntime / maxwordtime * 100) + "%";
// $(".timespent").attr("data-left", (wordruntime / maxwordtime * 100) + "%");
if (wordruntime >= maxwordtime) {
exceedTime();
updateData();
}
}
function paintWordTimerFrame() {
document.getElementById("timespent").style.width = (wordruntime / maxwordtime * 100) + "%";
}
function updateData() {
levels = newwords[currentword].length;
// points = Math.floor(correct * levels * 20 - incorrect * levels * 100 + 0.5 + extrapoints);
// points = Math.floor(incorrect * levels * 100 + 0.5 + extrapoints);
points = Math.floor(extrapoints);
$("#correct").html(humanNumber(correct));
$("#incorrect").html(humanNumber(incorrect));
$("#levels").html(levels);
$("#points").html(humanNumber(points));
}
function insertSpans() {
var ele = ".main";
// thisletters = $(ele).html();
var spans = [];
for (i = 0; i < thisletters.length; i++) {
spans.push("<span>" + thisletters[i] + "</span>");
};
spans = spans.join("");
$(ele).html(spans);
}
function exceedTime() {
endGame("exceed");
}
function nextWord(letterwascorrect) {
// CORRECT WORD
correct++;
currentword++;
if (newwords[currentword]) {
thisletters = newwords[currentword].split("");
nowletter = thisletters[0];
showNext();
insertSpans();
updateWords();
currentindex = 0;
}
else {
showNext();
noMoreWords();
}
if (letterwascorrect) {
// POINTS
addPoints(80 * (levels-1));
wordTimerStop();
wordTimerStart();
}
else {
// POINTS
addPoints(-80 * (levels-1));
}
updateData();
}
$(document).keydown(function(e) {
if (e.which == keycodes.KEYMAP["ESC"] && isplaying) {
showMenu();
endGame();
e.preventDefault();
// continue;
}
if (!menuopen && runtime == 0 && e.which <= keycodes.KEYCODES["z"] && e.which >= keycodes.KEYCODES["0"]) {
timerStart();
wordTimerStart();
$("#wordsh > div.timespenth").fadeIn();
}
if (isplaying) {
if (keycodes.KEYCODES[nowletter] == e.which) {
e.preventDefault();
$(".main span:nth-child(" + (currentindex + 1) + ")").addClass("green");
nowletter = thisletters[currentindex + 1];
// CORRECT LETTER
//correct++;
currentindex++;
updateData();
allowwrong = true;
if (nowletter == thisletters[-1]) {
nextWord(true);
}
}
else if (e.which == keycodes.KEYMAP.BACKSPACE) {
e.preventDefault();
}
else if (allowwrong && e.which <= keycodes.KEYCODES["z"] && e.which >= keycodes.KEYCODES["a"] && !otherkeydown) {
e.preventDefault();
$(".main span:nth-child(" + (thisletters.indexOf(nowletter) + 1) + ")").addClass("red");
$("#mainword").addClass("red");
incorrect++;
updateData();
nextWord(false);
allowwrong = false;
setTimeout(function () {
$(".main span").removeClass("red");
$("#mainword").removeClass("red");
}, 200);
setTimeout(function () {
allowwrong = true;
}, 1500);
}
else {
otherkeydown = true;
}
}
});
$(document).keyup(function(e) {
if (!(keycodes.KEYCODES[nowletter] == e.which) && !(e.which <= 90 && e.which >= 65 && !otherkeydown)) {
otherkeydown = false;
}
});
function updateWords() {
if (newwords[currentword + 1]) {
$("#mainword").append('<span class="maincome">' + newwords[currentword + 1] + '</span>');
}
if (newwords[currentword + 5]) {
$("#words").append('<span class="w10">' + newwords[currentword + 5] + '</span>');
}
}
function noMoreWords() {
endGame("nowords");
// say smt that we ran out
}
function injectInitialWords() {
$("#mainword").html("");
$("#words").html("");
$("#mainword").append('<span class="main">' + newwords[0] + '</span>');
$("#mainword").append('<span class="maincome">' + newwords[1] + '</span>');
for (i = 0; i < 6; i++) {
$("#words").append('<span class="w' + (i + 5) + '">' + newwords[i] + '</span>');
}
}
function sortWords() {
newwords = [];
for (i = 0; i < words.length; i++) {
if (Math.floor(Math.random() + 0.05) > 0) { // + 0.5
newwords.push(words[i]);
}
}
newwords.sort(function(a, b){
return a.length - b.length;
});
// newwords[0] = "deadmau5";
nowletter = newwords[0][0];
}
function updateGameData() {
usercredentials.games.push({
timestamp: new Date().getTime(),
points: points,
levels: levels,
correct: correct,
incorrect: incorrect,
timetaken: getRunningTime()
});
}
function endGame(reason) {
timerStop();
wordTimerStop();
$("#resultpoints").html(humanNumber(points));
// Setup google plus share
/*
var gplusshareoptions = {
contenturl: 'http://typega.me/',
contentdeeplinkid: '/',
clientid: '519814078940.apps.googleusercontent.com',
cookiepolicy: 'single_host_origin',
prefilltext: 'Beat my score of ' + points + ' points! ',
calltoactionlabel: 'PLAY',
calltoactionurl: 'http://typega.me/',
calltoactiondeeplinkid: '/'
};
gapi.interactivepost.render('sharegoogleplus', gplusshareoptions);
*/
$("#results").fadeIn();
isplaying = false;
$("#wordsh > div.timespenth").fadeOut();
updateGameData();
if (reason == "nowords") {
showPopup("wow! we ran out of words for you! ", true);
}
saveLocal();
}
function showMenu() {
// UX
$("body").addClass("menuopen");
$("#stats").fadeOut();
$("#menu").fadeIn();
$("#play").fadeIn();
menuopen = true;
}
function hideMenu() {
// UX
$("body").removeClass("menuopen");
$("#stats").fadeIn();
$("#menu").fadeOut();
$("#play").fadeOut();
menuopen = false;
}
// Charting
function getRelativeTime(timestamp) {
var now = new Date();
var date = new Date(timestamp);
var diff = now - date;
return Math.floor( diff / 1000 / 60 ) + " min ago";
/*
if ( !diff.getFullYear() && !diff.getMonth() && !diff.getDate() && !diff.getHours() && !diff.getMinutes() ) {
return diff.getSeconds() + " seconds ago. ";
}
else if ( !diff.getFullYear() && !diff.getMonth() && !diff.getDate() && !diff.getHours() ) {
return diff.getMinutes() + " minutes ago. ";
}
else if ( !diff.getFullYear() && !diff.getMonth() && !diff.getDate() ) {
return diff.getHours() + " hours ago. ";
}
else if ( !diff.getFullYear() && !diff.getMonth() ) {
return diff.getDate() + " days ago. ";
}
else {
return (diff.getFullYear() * 12 + diff.getMonth()) + " months ago. ";
}
*/
}
function drawMyChart() {
var data = {
labels: [],
datasets: [
{
fillColor: "rgba(235, 0, 255, 0.5)",
strokeColor: "rgba(235, 0, 255, 0.75)",
pointColor: "rgba(235, 0, 255, 1)",
pointStrokeColor: "rgba(235, 0, 255, 0)",
data: []
}
]
}
$("#mygamestable").empty();
for (i = 0; i < usercredentials.games.length; i++) {
data.labels.push("");
data.datasets[0].data.push(usercredentials.games[i].points);
$("#mygamestable").append("<tr><td>" + usercredentials.games[i].points + "</td><td>" + usercredentials.games[i].incorrect + "</td><td>" + usercredentials.games[i].timetaken[0] + ":" + usercredentials.games[i].timetaken[1] + "<sub>" + usercredentials.games[i].timetaken[2] + "</sub></td><td>" + getRelativeTime(usercredentials.games[i].timestamp) + "</td></tr>")
}
var ctx = $("#mygameschart").get(0).getContext("2d");
var mygameschart = new Chart(ctx).Line(data);
}
// Show menus. "me" > user games, "compete", "worldscores", "friendscores", "options".
function showDude(dude) {
if (dude == "me") {
drawMyChart()
$(".dude").fadeOut();
$("#me").fadeIn();
}
}
$("#status").click(function() {
$(this).fadeOut();
});
// popups
$(".close").click(function() {
$(this).parent().fadeOut();
});
$("#about").click(function() {
$(".popups").fadeOut();
$("#aboutmenu").fadeIn();
});
// start
function start() {
levels = 0;
correct = 0;
incorrect = 0;
points = 0;
extrapoints = 0;
currentword = 0;
currentindex = 0;
isplaying = true;
allowwrong = true;
runtime = 0;
hideMenu();
sortWords();
injectInitialWords();
thisletters = newwords[currentword].split("");
insertSpans();
updateData();
$(".timespent").css("width", "0%");
$("#timems").html("00");
$("#times").html("00");
$("#timem").html("00");
$("#wordsh > div.timespenth").fadeIn();
$(".popups").fadeOut();
$(".dude").fadeOut();
}
$("#play").click(function () {
start();
});
$("#replay").click(function () {
$("#results").fadeOut();
start();
});
$("#home").click(function () {
$("#results").fadeOut();
showMenu();
});
// main menu dudes
$("#compete").click(function() {
showDude("compete");
});
$("#worldscores").click(function() {
showDude("worldscores");
});
$("#friendscores").click(function() {
showDude("friendscores");
});
$("#login").click(function() {
if (!signedin) {
$(".popups").fadeOut();
$("#loginmenu").fadeIn();
}
else {
showDude("me");
}
});
// sign in
$("#logout").click(function() {
saveLocal();
disconnectUser(usercredentials.token);
});
function signinCallback(authResult) {
showPopup("signing in", false);
if (authResult['access_token']) {
usercredentials.token = authResult['access_token'];
$("#login").html("profile");
gapi.client.load('plus','v1', function(){
var request = gapi.client.plus.people.get({
'userId': 'me'
});
request.execute(function(resp) {
console.log(resp);
if (resp.nickname.length != 0) {
usercredentials.name = resp.nickname;
}
else if (resp.name.givenName.length != 0) {
usercredentials.name = resp.name.givenName;
}
if (resp.image.url.length != 0) {
usercredentials.profileimage = resp.image.url;
}
usercredentials.givenname = resp.name.givenName;
usercredentials.familyname = resp.name.familyName;
$("#login").html("<img src='" + usercredentials.profileimage + "' /><b>" + usercredentials.name+"</b>");
$("#myname").html("" + usercredentials.givenname + " " + usercredentials.familyname + "");
$("#myprofileimage").attr("src", usercredentials.profileimage);
showPopup("signed in", true);
saveLocal();
signedin = true;
});
});
$("#loginmenu").fadeOut();
}
else if (authResult['error']) {
if (authResult['error'] != "immediate_failed") {
showPopup("error signing in", true);
}
else {
showPopup("not signed in. sign in for awesome features! ", true, 2000);
}
console.log('Sign-in state: ' + authResult['error']);
}
}
// Update the app to reflect a signed out user
// Possible error values:
// "user_signed_out" - User is signed-out
// "access_denied" - User denied access to your app
// "immediate_failed" - Could not automatically log in the user
// sign out
function signOut() {
disconnectUser(usercredentials["token"]);
}
function disconnectUser(access_token) {
showPopup("signing out", false);
var revokeUrl = 'https://accounts.google.com/o/oauth2/revoke?token=' + access_token;
$.ajax({
type: 'GET',
url: revokeUrl,
async: false,
contentType: "application/json",
dataType: 'jsonp',
success: function(nullResponse) {
$("#login").html("sign in");
usercredentials = {
name: "",
givenname: "",
familyname: "",
type: "googleplus",
token: "",
games: []
};
showPopup("signed out", true);
signedin = false;
},
error: function(e) {
showPopup("error signing out", true);
}
});
}
// social
function getShareString() {
// return "I scored " + points + " on typga.me in " + getRunningTime()[0] + ":" + getRunningTime()[1] + ":" + getRunningTime()[2] + "! Can you beat me? Play now ";// http://typega.me/
return "I scored " + points + " on typga.me and got only "+incorrect+" wrong! Can you beat me? Play now ";// http://typega.me/
}
$("#sharefacebook").click(function() {
window.open('https://www.facebook.com/dialog/feed? app_id=341520039318030&link=' + encodeURIComponent('http://typega.me/') + '&picture=' + encodeURIComponent('http://typega.me/images/icon128.png') + '&name=' + encodeURIComponent('Beat my score of ' + points + ' points! ') + '&caption=' + encodeURIComponent('typega.me - type, type and type. ') + '&description=' + encodeURIComponent(getShareString()) + '&redirect_uri=' + encodeURIComponent('http://typega.me/') + '', 'facebook-share-dialog', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=490,width=980'); return false;
});
$("#sharetwitter").click(function() {
window.open('https://twitter.com/share?hashtags=typega.me&original_referer=' + encodeURIComponent('http://typega.me/') + '&text=' + encodeURIComponent(getShareString()) + '&tw_p=tweetbutton&url=' + encodeURIComponent('http://typega.me/') + '&via=thebunniesinc', 'twitter-share-dialog', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=626,width=436');
return false;
});
$("#sharegoogleplus").click(function() {
window.open('https://plus.google.com/share?url=' + encodeURIComponent('http://typega.me/') + '', 'googleplus-share-dialog', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=500');
return false;
});
$(document).ready(function () {
setTimeout(function() {
$("#status").fadeOut(200);
}, 0);
// window.applicationCache.update();
window.applicationCache.addEventListener('updateready', function(e) {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
window.applicationCache.swapCache();
setTimeout(function() {
showPopup("a new version is available. refreshing", false);
}, 2000);
setTimeout(function() {
window.location.reload();
}, 4000);
} else {
}
}, false);
window.applicationCache.addEventListener('downloading', function(e) {
if (e.lengthComputable) {
showPopup("downloading... " + Math.round(e.loaded / e.total * 100) + "%...", false);
}
else {
showPopup("downloading... ", false);
}
}, false);
/*
window.applicationCache.addEventListener('online', function(e) {
showPopup("you are online", true, 1000);
}, false);
window.applicationCache.addEventListener('offline', function(e) {
showPopup("you are offline", true, 1000);
}, false);
*/
});
/**
* Insert new file in the Application Data folder.
*
* @param {File} fileData File object to read data from.
* @param {Function} callback Function to call when the request is complete.
*/
function insertFileInApplicationDataFolder(fileData, callback) {
const boundary = '-------314159265358979323846';
const delimiter = "\r\n--" + boundary + "\r\n";
const close_delim = "\r\n--" + boundary + "--";
var reader = new FileReader();
reader.readAsBinaryString(fileData);
reader.onload = function(e) {
var contentType = fileData.type || 'application/octet-stream';
var metadata = {
'title': fileData.fileName,
'mimeType': contentType,
'parents': [{'id': 'appdata'}]
};
var base64Data = btoa(reader.result);
var multipartRequestBody =
delimiter +
'Content-Type: application/json\r\n\r\n' +
JSON.stringify(metadata) +
delimiter +
'Content-Type: ' + contentType + '\r\n' +
'Content-Transfer-Encoding: base64\r\n' +
'\r\n' +
base64Data +
close_delim;
var request = gapi.client.request({
'path': '/upload/drive/v2/files',
'method': 'POST',
'params': {'uploadType': 'multipart'},
'headers': {
'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
},
'body': multipartRequestBody});
if (!callback) {
callback = function(file) {
console.log(file)
};
}
request.execute(callback);
}
}
/* easter egg! */
function scrambleDocument(){function a(a){return a.replace(/\b(\w)(\w+)(\w)\b/gi,function(a,b,c,d){splitext=c.split("");for(var e=splitext.length;e>1;){e--;var f=Math.floor(Math.random()*(e+1)),a=splitext[f];splitext[f]=splitext[e+1],splitext[e+1]=a}return b+splitext.join("")+d})}function b(c){for(var d=0;d<c.length;++d)3==c[d].nodeType?c[d].nodeValue=a(c[d].nodeValue):b(c[d].childNodes)}function c(){var a=document.getElementsByTagName("body");b(a)}c()}

4
js/modernizr.js Executable file
View File

@ -0,0 +1,4 @@
/* Modernizr 2.6.3 (Custom Build) | MIT & BSD
* Build: http://modernizr.com/download/#-fontface-rgba-cssanimations-generatedcontent-csstransforms-csstransitions-canvas-localstorage-websockets-mq-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes
*/
;window.Modernizr=function(a,b,c){function B(a){j.cssText=a}function C(a,b){return B(n.join(a+";")+(b||""))}function D(a,b){return typeof a===b}function E(a,b){return!!~(""+a).indexOf(b)}function F(a,b){for(var d in a){var e=a[d];if(!E(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function G(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:D(f,"function")?f.bind(d||b):f}return!1}function H(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return D(b,"string")||D(b,"undefined")?F(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),G(e,b,c))}var d="2.6.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={},s={},t={},u=[],v=u.slice,w,x=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},y=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return x("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},z={}.hasOwnProperty,A;!D(z,"undefined")&&!D(z.call,"undefined")?A=function(a,b){return z.call(a,b)}:A=function(a,b){return b in a&&D(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e}),r.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},r.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},r.rgba=function(){return B("background-color:rgba(150,255,150,.5)"),E(j.backgroundColor,"rgba")},r.cssanimations=function(){return H("animationName")},r.csstransforms=function(){return!!H("transform")},r.csstransitions=function(){return H("transition")},r.fontface=function(){var a;return x('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},r.generatedcontent=function(){var a;return x(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},r.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}};for(var I in r)A(r,I)&&(w=I.toLowerCase(),e[w]=r[I](),u.push((e[w]?"":"no-")+w));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)A(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},B(""),i=k=null,e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=y,e.testProp=function(a){return F([a])},e.testAllProps=H,e.testStyles=x,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+u.join(" "):""),e}(this,this.document);

5
js/prefixfree.min.js vendored Executable file

File diff suppressed because one or more lines are too long

1954
js/words.js Executable file

File diff suppressed because it is too large Load Diff