1
0

Compare commits

..

138 Commits

Author SHA1 Message Date
4b5a2f44cc new 3d modal 2025-06-28 20:57:29 +02:00
077280c7e8 neu 2025-06-19 12:58:23 +02:00
e60195bad2 neu 2025-06-19 12:57:36 +02:00
0bd32b4c92 neu 2025-06-19 12:29:48 +02:00
331894c203 neu 2025-06-19 12:16:26 +02:00
7824aba467 neu 3d model 2025-06-19 12:13:18 +02:00
af824c02cf neurp 2025-06-19 10:49:56 +02:00
5fdc8e8711 retropotable 3d viewer
2
2025-06-19 10:49:11 +02:00
3d94458e72 retropotable 3d viewer 2025-06-19 10:47:53 +02:00
2e8fe5d9ca prensentation weg 2025-05-28 21:22:00 +02:00
aa6f78f2de ui for presentations 2025-05-12 16:35:32 +02:00
ed33527267 presentation 2025-05-11 16:50:40 +02:00
1ec9bac5c9 neu 2025-05-11 14:46:05 +02:00
994ceca740 presentations 2025-05-11 14:43:09 +02:00
e0be2f8ed7 google play verlinkung 2025-05-09 20:58:33 +02:00
8966efd559 snake game mistake behoben 2025-04-24 15:32:41 +02:00
d880e2638f cc 2025-04-23 21:32:58 +02:00
033db21ee0 fixes 2025-04-23 21:31:52 +02:00
8e6d384500 fixes 2025-04-23 21:30:49 +02:00
74cd5da810 cookie clicker 2025-04-23 21:26:17 +02:00
75aca82533 github verknüpfung und neuses snake 2025-04-21 20:48:35 +02:00
7013e330ac redmi buds 6 play 2025-04-08 20:17:15 +02:00
490a7f0009 pdf reader 2025-04-01 20:07:55 +02:00
3b1183f8b3 login 2025-02-06 19:12:44 +01:00
a3048f391a test to www 2025-02-05 16:27:49 +01:00
63994cabcf cleanup 2025-02-02 21:07:18 +01:00
70b29f70ed test 2025-02-02 21:06:58 +01:00
653d9fd644 migrated from hugo to static html 2025-02-02 20:47:07 +01:00
43ea774c54 n 2024-12-27 11:10:34 +01:00
5c9ce1554b n 2024-12-26 21:34:02 +01:00
b42b0f63f7 n 2024-12-26 21:32:27 +01:00
4ebf78e036 n 2024-12-26 21:31:44 +01:00
7a81bf8437 n 2024-12-26 21:30:55 +01:00
3083c10586 n 2024-12-22 19:02:14 +01:00
cce40162c3 feat: update theme, removed header logo 2024-12-22 13:40:05 +01:00
d09e7e76f1 n 2024-12-22 13:11:22 +01:00
5cefa1ff27 m 2024-12-22 13:10:11 +01:00
99c92aecdf m 2024-12-22 13:09:27 +01:00
7691c9b041 ne 2024-12-22 12:51:01 +01:00
985e87b541 n 2024-12-22 12:50:30 +01:00
3b696d9502 n 2024-12-22 12:49:51 +01:00
f63fa944c2 ne 2024-12-22 12:48:21 +01:00
504be03268 magflip 2024-12-22 12:45:55 +01:00
567c2e5a7f nwu 2024-10-19 21:46:59 +02:00
4809d918a2 neu 2024-10-19 21:46:20 +02:00
29e375711d neu 2024-10-19 21:41:38 +02:00
5cd6f0d74d neu 2024-10-19 21:39:34 +02:00
3722004bb7 ne 2024-10-19 21:37:32 +02:00
35911c849c ne 2024-10-19 21:36:35 +02:00
991d82a256 m 2024-10-19 21:35:28 +02:00
1875765c4a neu 2024-10-19 21:34:29 +02:00
68ad955818 neu 2024-10-19 21:32:40 +02:00
88926f2f96 neu 2024-10-14 19:52:01 +02:00
d2ba339893 neu 2024-10-14 19:51:19 +02:00
2350a275f1 neu 2024-10-14 19:36:11 +02:00
5904579fd7 n 2024-10-14 19:35:30 +02:00
36f52f008e n 2024-10-14 19:33:47 +02:00
632c18a0c7 m 2024-10-14 19:33:14 +02:00
0885a69c24 neu 2024-10-14 19:31:55 +02:00
0d75c62a3d neu 2024-10-14 19:27:10 +02:00
8753d3a2a0 neu 2024-10-14 18:57:33 +02:00
a2555c492d neu 2024-10-14 18:56:59 +02:00
edcc93ea66 neu 2024-10-14 18:54:24 +02:00
b2c06f74ac neu 2024-10-14 18:54:00 +02:00
d837c154b8 neu 2024-10-14 18:52:53 +02:00
a0db6bdc22 neu 2024-10-13 20:04:21 +02:00
819756b2d8 nei 2024-10-13 20:03:59 +02:00
8c54ad67cf neu 2024-10-13 20:02:02 +02:00
4fd9cd5afb neu 2024-10-13 20:00:45 +02:00
1aefea162b neu 2024-10-13 19:58:28 +02:00
5aa10ea390 d 2024-10-13 19:58:05 +02:00
c14215c6c8 neu 2024-10-13 19:57:18 +02:00
d7fb401b0c neu 2024-10-13 19:55:45 +02:00
8cd9e27e2e neu 2024-10-13 19:52:46 +02:00
e1a9837bc6 neu 2024-10-13 19:50:28 +02:00
571ba7f516 neu 2024-10-13 19:46:51 +02:00
a285ba0cea neu 2024-10-13 19:35:16 +02:00
64916ca306 neu 2024-10-13 19:33:27 +02:00
8dba17aea5 neu 2024-10-13 19:31:54 +02:00
82f846491f neu 2024-10-12 22:07:08 +02:00
0ba91bd5cb neu 2024-10-12 21:58:38 +02:00
1cefdd3207 neu 2024-10-12 21:55:51 +02:00
c0bc06e037 neues theme 2024-10-12 21:46:23 +02:00
d453363df4 i 2024-10-12 21:31:41 +02:00
65542ed001 iron 2024-10-12 21:24:56 +02:00
c54e435a99 iron man 2024-10-12 21:14:57 +02:00
a3f0a392c6 nive 2024-05-21 16:04:36 +02:00
b52aac6fcf neuer Versuch 2024-05-21 15:56:53 +02:00
0548bef57c neu 2024-05-21 14:42:13 +02:00
4127af3640 fix filename 2024-05-18 12:55:53 +02:00
b3f8943062 update 2024-05-18 12:55:11 +02:00
b276d40631 neu 2024-05-18 12:51:44 +02:00
987e48c483 neu 2024-05-18 12:50:40 +02:00
fcc81e1cbb neu 2024-05-17 13:46:18 +02:00
b0594f6124 info@creative 2024-01-05 17:24:28 +01:00
2647a19c01 f 2023-12-11 18:48:10 +01:00
14c118c3db f 2023-12-10 19:38:55 +01:00
bd2f45213a fussball 2023-12-10 19:23:40 +01:00
7046828f5d fussball 2023-12-10 19:18:10 +01:00
c086963c62 schuessel 2023-12-09 20:06:37 +01:00
93562e99c8 panda 2023-12-09 19:57:19 +01:00
4d2a848221 m 2023-12-08 20:37:04 +01:00
423f028b77 m 2023-12-08 20:34:38 +01:00
fd9daa8420 m 2023-12-08 20:32:37 +01:00
57b4634c79 m 2023-12-08 20:28:11 +01:00
1918dafff6 m 2023-12-08 20:26:46 +01:00
70fd5deb95 m 2023-12-08 20:26:45 +01:00
bd866c7980 creativecrafter 2023-12-08 20:21:32 +01:00
df5f77d0da mathefussball 2023-12-08 20:13:29 +01:00
7c3908c611 fix 2023-12-02 14:49:40 +01:00
f4f911c22d artur 2023-12-02 14:40:02 +01:00
7d758f2ca2 artuersgesc 2023-12-02 14:39:58 +01:00
cd0e5e4a1c email adresse aktualisiert 2023-11-18 20:44:30 +01:00
6de08e5a7b add mail 2023-11-18 20:40:51 +01:00
d9a3863d1e neu 2023-11-11 18:46:14 +01:00
b581290986 neu 2023-11-11 16:09:29 +01:00
7f144aa5ed etwas neues 2023-11-10 20:28:17 +01:00
ab254a0ad7 neu 2023-11-10 20:15:07 +01:00
6927e744e0 neu 2023-11-10 20:10:44 +01:00
fb5f5fda50 neu 2023-11-10 20:06:57 +01:00
37bc56f35c neu 2023-11-10 19:47:19 +01:00
82e1bacc8d n 2023-10-06 21:43:52 +02:00
125509d4a2 neu 2023-10-06 21:43:02 +02:00
64c980d51f neu 2023-10-06 21:38:27 +02:00
cf7ac73f6f neuex 2023-10-06 21:32:52 +02:00
cbae86618e neues 2023-09-30 21:52:47 +02:00
b86478734c neu 2023-09-30 21:50:32 +02:00
a701b9cd5f neues 2023-09-30 21:50:26 +02:00
7f1b454e7e neue 2023-09-30 21:45:16 +02:00
5c8cb23802 es gibt etwas neues bei sweets for animals 2023-09-29 22:20:25 +02:00
f7a891f250 neu 2023-09-29 21:53:39 +02:00
122c85cb6c neu 2023-09-29 20:14:17 +02:00
91cd882d52 neu 2023-09-29 20:14:14 +02:00
65fffb4524 sweets for animals 2023-09-29 19:41:09 +02:00
cc2133c7ff etwas neues 2023-09-29 19:38:52 +02:00
7980e487cd neues 2023-09-29 19:37:09 +02:00
ba2e4c41af neues 2023-09-29 19:35:20 +02:00
9df64df593 neues 2023-09-29 19:35:02 +02:00
104 changed files with 6925 additions and 965 deletions

1
.gitignore vendored
View File

@ -1 +0,0 @@
resources/*

6
.gitmodules vendored
View File

@ -1,6 +0,0 @@
[submodule "themes/FixIt"]
path = themes/FixIt
url = https://github.com/hugo-fixit/FixIt.git
[submodule "themes/Tranquilpeak"]
path = themes/Tranquilpeak
url = https://github.com/kakawait/hugo-tranquilpeak-theme.git

View File

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}

61
3dmodalretroportablr.html Normal file
View File

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<title>Retro Portable</title>
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
<style>
body {
margin: 0;
padding: 0;
background-color: #1a1a1a;
font-family: Arial, sans-serif;
color: white;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
h1 {
margin-bottom: 20px;
font-size: 2em;
color: #f0f0f0;
text-shadow: 0 0 5px #666;
}
model-viewer {
width: 80vw;
height: 80vh;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
border-radius: 12px;
background-color: #222;
}
.tooltip {
margin-top: 12px;
font-size: 0.95em;
color: #ccc;
}
</style>
</head>
<body>
<h1>Retro Portable</h1>
<model-viewer
src="RetroPortable.glb"
alt="Retro Portable"
auto-rotate
camera-controls
interaction-prompt="none"
ar
shadow-intensity="1.5"
exposure="0.75"
environment-image="neutral"
tone-mapping="commerce"
></model-viewer>
<div class="tooltip">🔄 Click and drag to rotate the model. Use the mouse wheel to zoom.</div>
</body>
</html>

93
LICENSE
View File

@ -1,93 +0,0 @@
Creative Commons Attribution 3.0 Unported
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
License
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
1. Definitions
a. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
b. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
c. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
d. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
e. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
f. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
g. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
h. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
i. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
d. to Distribute and Publicly Perform Adaptations.
e. For the avoidance of doubt:
i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
iii. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
b. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
c. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
5. Representations, Warranties and Disclaimer
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. Termination
a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
8. Miscellaneous
a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You.
e. This License may not be modified without the mutual written agreement of the Licensor and You.
f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
Creative Commons Notice
Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.
Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of this License.
Creative Commons may be contacted at http://creativecommons.org/.

View File

@ -1,2 +0,0 @@
# www-creativecrafter-de

BIN
RetroPortable.glb Normal file

Binary file not shown.

BIN
Titillium-Web-Regular.ttf Normal file

Binary file not shown.

View File

@ -1,6 +0,0 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

View File

@ -1,298 +0,0 @@
baseURL = "https://creative.br0tkasten.de/"
languageCode = "de"
title = "Creative Crafter"
theme = "Tranquilpeak"
publishdir = "/var/www/localhost/htdocs"
[taxonomies]
tag = "tags"
category = "categories"
[menu]
[[menu.main]]
weight = 1
identifier = "home"
name = "Home"
pre = "<i class=\"sidebar-button-icon fas fa-lg fa-home\" aria-hidden=\"true\"></i>"
url = "/"
[[menu.main]]
weight = 2
identifier = "categories"
name = "Categories"
pre = "<i class=\"sidebar-button-icon fas fa-lg fa-bookmark\" aria-hidden=\"true\"></i>"
url = "/categories"
[[menu.main]]
weight = 3
identifier = "tags"
name = "Tags"
pre = "<i class=\"sidebar-button-icon fas fa-lg fa-tags\" aria-hidden=\"true\"></i>"
url = "/tags"
[[menu.misc]]
weight = 0
identifier = "rss"
name = "RSS"
pre = "<i class=\"sidebar-button-icon fas fa-lg fa-rss\" aria-hidden=\"true\"></i>"
url = "/index.xml"
[params]
version = "0.2.X"
description = "my creative space"
defaultTheme = "auto"
dateFormat = "2006-01-02"
sidebarBehavior = 1
thumbnailImage = true
thumbnailImagePosition = "right"
autoThumbnailImage = true
coverImage = "cover-v1.2.0.jpg"
imageGallery = true
hierarchicalCategories = true
syntaxHighlighter = 'highlight.js'
[params.app]
title = "Creative Crafter"
noFavicon = false
svgFavicon = ""
themeColor = "#ffffff"
iconColor = "#5bbad5"
tileColor = "#da532c"
[params.search]
enable = true
type = "lunr"
contentLength = 4000
placeholder = ""
maxResultLength = 10
snippetLength = 30
highlightTag = "em"
absoluteURL = false
[params.search.algolia]
index = ""
appID = ""
searchKey = ""
[params.header]
desktopMode = "fixed"
mobileMode = "auto"
[params.header.title]
name = ""
logo = "/logo.jpeg"
[params.footer]
enable = true
custom = ''
hugo = true
copyright = true
author = true
since = 2023
license = '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
[params.section]
paginate = 20
dateFormat = "2006-01-02"
rss = 10
[params.list]
paginate = 20
dateFormat = "2006-01-02"
rss = 10
[params.home]
rss = 10
[params.home.profile]
enable = true
avatarURL = "/logo.jpeg"
title = "my creative space"
subtitle = ""
typeit = true
social = true
disclaimer = ""
[params.home.posts]
enable = false
paginate = 6
defaultHiddenFromHomePage = true
[params.social]
Gitea = "https://git.br0tkasten.de/matt"
Matrix = "@matt:matrix.br0tkasten.de"
Email = "matt@br0tkasten.de"
RSS = true # LoveIt NEW | 0.2.0
# LoveIt CHANGED | 0.2.0 Page config
[params.page]
hiddenFromHomePage = false
hiddenFromSearch = false
twemoji = false
lightgallery = false
ruby = true
fraction = true
fontawesome = true
linkToMarkdown = true
rssFullText = false
[params.page.toc]
enable = true
keepStatic = true
auto = true
[params.page.math]
enable = true
blockLeftDelimiter = ""
blockRightDelimiter = ""
inlineLeftDelimiter = ""
inlineRightDelimiter = ""
copyTex = true
mhchem = true
[params.page.code]
copy = true
maxShownLines = 10
[params.page.mapbox]
accessToken = ""
lightStyle = "mapbox://styles/mapbox/light-v9"
darkStyle = "mapbox://styles/mapbox/dark-v9"
navigation = true
geolocate = true
scale = true
fullscreen = true
[params.page.share]
enable = true
Twitter = true
Facebook = false
Linkedin = false
Whatsapp = true
Pinterest = false
Tumblr = false
HackerNews = false
Reddit = false
VK = false
Buffer = false
Xing = false
Line = true
Instapaper = false
Pocket = false
Digg = false
Stumbleupon = false
Flipboard = false
Weibo = false
Renren = false
Myspace = false
Blogger = false
Baidu = false
Odnoklassniki = false
Evernote = false
Skype = false
Trello = false
Mix = false
[params.page.comment]
enable = true
[params.page.library]
[params.page.library.css]
# someCSS = "some.css"
# located in "assets/"
# Or
# someCSS = "https://cdn.example.com/some.css"
[params.page.library.js]
# someJavascript = "some.js"
# located in "assets/"
# Or
# someJavascript = "https://cdn.example.com/some.js"
# LoveIt CHANGED | 0.2.10 Page SEO config
[params.page.seo]
images = []
[params.page.seo.publisher]
name = ""
logoUrl = ""
[params.typeit]
speed = 100
cursorSpeed = 1000
cursorChar = "|"
duration = -1
[params.verification]
google = ""
bing = ""
yandex = ""
pinterest = ""
baidu = ""
[params.seo]
image = ""
thumbnailUrl = ""
[params.analytics]
enable = false
[params.cookieconsent]
enable = false
[params.cookieconsent.content]
message = ""
dismiss = ""
link = ""
[params.cdn]
data = ""
[params.compatibility]
polyfill = false
objectFit = false
[markup]
[markup.highlight]
codeFences = true
guessSyntax = true
lineNos = true
lineNumbersInTable = true
# false is a necessary configuration
# (https://github.com/dillonzq/LoveIt/issues/158)
noClasses = false
[markup.goldmark]
[markup.goldmark.extensions]
definitionList = true
footnote = true
linkify = true
strikethrough = true
table = true
taskList = true
typographer = true
[markup.goldmark.renderer]
unsafe = true
[markup.tableOfContents]
startLevel = 2
endLevel = 6
[author]
name = "matt"
email = "matt@br0tkasten.de"
link = ""
picture = "/logo.jpeg"
avatar = "/logo.jpeg"
[sitemap]
changefreq = "weekly"
filename = "sitemap.xml"
priority = 0.5
[Permalinks]
# posts = ":year/:month/:filename"
posts = ":filename"
[privacy]
[privacy.twitter]
enableDNT = true
[privacy.youtube]
privacyEnhanced = true
[mediaTypes]
[mediaTypes."text/plain"]
suffixes = ["md"]
[outputFormats.MarkDown]
mediaType = "text/plain"
isPlainText = true
isHTML = false
[outputs]
home = ["HTML", "RSS", "JSON"]
page = ["HTML", "MarkDown"]
section = ["HTML", "RSS"]
taxonomy = ["HTML", "RSS"]
taxonomyTerm = ["HTML"]

View File

@ -1,36 +0,0 @@
---
title: "Minecraft Desingerhacks"
categories:
- Minecraft
thumbnailImage: /minecraft/logo.jpeg
---
## Einleitung
Hallo, schön dass du da bist. Bist du gerne kreativ, hast Lust mal was Neues auszuprobieren und Minecraft ist deine Leidenschaft?! Dann bist du bei mir genau richtig. Hier kannst du dir nicht nur Ideen und Anregungen holen, sondern erhältst auch Vorschläge und Anleitungen zu den coolsten Bauwerken. Designe und gestalte so wie du es schon immer wolltest und nicht für möglich gehalten hast.
Aber jetzt, lassen wir doch Worten Taten folgen.
Viel Spaß!!!
Hier ein kleines Beispiel: Wie erstellt man eine Standuhr?
Keine Ahnung? Ich zeig`s dir, geht ganz leicht.
Was du brachst:
* 5 Schwarzeichenfalltüren
* 2 Fichtenholzbretter
* 1 Bilderrahmen
* 1 Uhr
Wie du vorgehst:
* Fichtenholzbretter an der Wand stapeln
* Bilderrahmen an das obere Fichtenholzbrett hängen
* Uhr in den Bilderrahmen legen
* 4 Falltüren links und rechts an beide Fichtenholzbretter anbauen und nach oben klappen und eine auf das oberste Fichtenholzbrett platzieren.
### Häuser:
### Burgen und Schlösser:
### Einrichtungen:
### Alles Rund um Küche:
### Gestalte deine Terrasse:
### Bäder in denen sich Kleopatra wohl gefühlt hätte:
### Essen wie ein Kaiser im Schlaraffenland:
### Schlaf wie auf Wolken:
### Verzaubere wie ein Magier:

View File

@ -1,12 +0,0 @@
---
title: "Flappy Witch"
categories:
- Spiele
thumbnailImage: /spiele/Flappy-Witch/logo.png
---
[Neueste Version hier online spielen](/spiele/Flappy-Witch/FlappyWitch.html)
### screenshots
![Flappy Witch 1](/spiele/Flappy-Witch/FlappyWitch1.png#center)
![Flappy Witch 2](/spiele/Flappy-Witch/FlappyWitch2.png#center)

View File

@ -1,12 +0,0 @@
---
title: "Klick the Witch"
categories:
- Spiele
thumbnailImage: /spiele/klick-the-witch/logo.png
---
[Neueste Version hier online spielen](/spiele/klick-the-witch/witch.html)
### screenshots
![screenshot01](/spiele/klick-the-witch/screenshot01.png#center)
![screenshot02](/spiele/klick-the-witch/screenshot02.png#center)

View File

@ -1,12 +0,0 @@
---
title: "Sweets for Animals"
categories:
- Spiele
thumbnailImage: /spiele/sweets-for-animals/hintergrund3.png
---
[Neueste Version hier online spielen](/spiele/sweets-for-animals/sweets-for-animals.html)
### screenshots
![screenshot01](/spiele/klick-the-witch/screenshot01.png#center)
![screenshot02](/spiele/klick-the-witch/screenshot02.png#center)

BIN
icons/Controller.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

1
icons/Link.svg Normal file
View File

@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="283" height="337.81532" viewBox="0,0,283,337.81532"><g transform="translate(-98.5,-11.09234)"><g data-paper-data="{&quot;isPaintingLayer&quot;:true}" fill-rule="nonzero" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" style="mix-blend-mode: normal"><g><g><g><path d="M98.5,180.63739c0,-11.26462 9.13178,-20.3964 20.3964,-20.3964c11.26462,0 20.3964,9.13178 20.3964,20.3964c0,11.26462 -9.13178,20.3964 -20.3964,20.3964c-11.26462,0 -20.3964,-9.13178 -20.3964,-20.3964z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"/><g fill="none" stroke="#000000" stroke-width="5" stroke-linecap="round"><path d="M360.1391,32.83909l-240.27819,147.24468"/><path d="M119.8609,180.71295l240.27819,147.24468" data-paper-data="{&quot;index&quot;:null}"/></g></g><path d="M340.70721,328.51126c0,-11.26462 9.13178,-20.3964 20.3964,-20.3964c11.26462,0 20.3964,9.13178 20.3964,20.3964c0,11.26462 -9.13178,20.3964 -20.3964,20.3964c-11.26462,0 -20.3964,-9.13178 -20.3964,-20.3964z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"/></g><path d="M340.70721,31.48874c0,-11.26462 9.13178,-20.3964 20.3964,-20.3964c11.26462,0 20.3964,9.13178 20.3964,20.3964c0,11.26462 -9.13178,20.3964 -20.3964,20.3964c-11.26462,0 -20.3964,-9.13178 -20.3964,-20.3964z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"/></g></g></g></svg><!--rotationCenter:141.50000000000006:168.90765765765772-->

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
icons/copy-clipboard.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

1
icons/copy.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z"/></svg>

After

Width:  |  Height:  |  Size: 683 B

BIN
icons/email-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

1
icons/email.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z"/></svg>

After

Width:  |  Height:  |  Size: 576 B

1
icons/envelope-solid.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"/></svg>

After

Width:  |  Height:  |  Size: 499 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#000000" d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#000000" d="M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"/></svg>

After

Width:  |  Height:  |  Size: 492 B

1
icons/instagram.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
icons/link.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
icons/link1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

1
icons/link1.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"/></svg>

After

Width:  |  Height:  |  Size: 591 B

BIN
icons/meine-spiele.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

1
icons/pinterest.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"/></svg>

After

Width:  |  Height:  |  Size: 726 B

BIN
icons/playbutton.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
icons/schuessel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

BIN
icons/spiele.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 962 KiB

BIN
icons/spielen-button.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

1
icons/telegram.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"/></svg>

After

Width:  |  Height:  |  Size: 748 B

1
icons/whatsapp.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

146
index.html Normal file
View File

@ -0,0 +1,146 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<style>
body, html {
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff; /* Leichtes Blau */
}
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8); /* Halbtransparenter bläulicher Hintergrund */
z-index: 9999; /* Sicherstellen, dass die Ladeanimation immer im Vordergrund ist */
}
/* Ladeanimation anzeigen */
.loading .loader-container {
display: flex;
}
@font-face {
font-family: "Titillium";
src: url("/Titillium-Web-Regular.ttf");
}
body {
font-family: 'Titillium';
}
h1, h2, h3 {
text-align: center;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum
size="90"
speed="1.75"
color="black"
></l-quantum>
</div>
<br>
<br>
<!-- Deine anderen Inhalte hier -->
<h1><img src="/icons/Controller.png" height="150svh">
<br/>
Creative Crafter</h1>
<h3>Hey there! I'm Creative Crafter, your go-to gamer. On this website, I showcase my latest and greatest games.<br/>
Note: All games are available in German <span>&#x1F1E9;&#x1F1EA;</span> only. Enjoy the adventure!</h3>
<br>
<header>
<div style="display: flex; gap: 10px; align-items: center;">
<a href="https://github.com/Creative-Crafter" target="_blank">
<img src="/icons/github-alt-brands.svg" height="25" alt="GitHub" style="cursor: pointer;" />
</a>
<a href="mailto:info@creative-crafter.de">
<img src="/icons/email.svg" height="25" alt="E-Mail" style="cursor: pointer;" />
</a>
<a href="https://play.google.com/store/apps/developer?id=Creative+BananaBr0t&utm_source=emea_Med">
<img src="/icons/google-play-brands.svg" height="25" alt="E-Mail" style="cursor: pointer;" />
</a>
</div>
</header>
<br>
<h2><img src="/icons/spiele.png" height="25vh">Categories</h2>
<!-- Button hinzufügen -->
<button class="button" onclick="window.location.href='/programmieren/spiele/'">
<div class="button-inner">
<span class="button-text">Games</span>
</div>
</button>
<button class="button" onclick="window.location.href='/link-collection'">
<div class="button-inner">
<span class="button-text">Link Collection</span>
</div>
</button>
<footer><i id="footer-text"></i></footer>
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
function currentYear() {
var currentYear = new Date().getFullYear();
document.getElementById('footer-text').innerHTML = "2023-" + currentYear;
}
// Ruf die Funktion auf, um den Footer zu aktualisieren
window.addEventListener('load', currentYear);
</script>
</body>
</html>

59
laden.html Normal file
View File

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ladeanimation Beispiel</title>
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<style>
body, html {
height: 100%;
margin: 0;
}
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(255, 255, 255, 0.8); /* Halbtransparenter milchiger Hintergrund */
z-index: 9999; /* Sicherstellen, dass die Ladeanimation immer im Vordergrund ist */
}
/* Ladeanimation anzeigen */
.loading .loader-container {
display: flex;
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum
size="45"
speed="1.75"
color="black"
></l-quantum>
</div>
<!-- Deine anderen Inhalte hier -->
<p>Deine Inhalte hier...</p>
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
</script>
</body>
</html>

View File

@ -0,0 +1,380 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Br0tkasten</h1>
<div align='center'>
<img src="/link-collection/br0tkasten/logo.png" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<h2><a href="https://www.br0tkasten.de">Br0tkasten</a></h2>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic website!https://www.creative-crafter.de/link-collection/br0tkasten/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic website!https://www.creative-crafter.de/link-collection/br0tkasten/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic website!https://www.creative-crafter.de/link-collection/br0tkasten/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic website!https://www.creative-crafter.de/link-collection/br0tkasten/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const body = encodeURIComponent('Check out this fantastic website!https://www.creative-crafter.de/link-collection/br0tkasten/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic website!https://www.creative-crafter.de/link-collection/br0tkasten/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
<br>
<br>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

@ -0,0 +1,85 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<link href="" rel="stylesheet">
<style>
@font-face {
font-family: "Titillium";
src: url("/Titillium-Web-Regular.ttf");
}
body {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff; /* Leichtes Blau */
}
h1 {
text-align: center;
}
h2 {
text-align: center;
}
h1, h2, h3 {
text-align: center;
}
.category-container {
width: 80%;
max-width: 800px;
margin-top: 20px;
}
.category {
padding: 15px;
border: 1px solid #ccc;
border-radius: 8px;
margin: 10px 0;
background-color: #fff;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
text-align: left;
}
.category-title {
font-size: 1.2em;
font-weight: bold;
margin-bottom: 5px;
}
.category-description {
font-size: 1em;
margin-bottom: 10px;
}
.category a {
color: #007bff;
text-decoration: none;
}
.category a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<h1><img src="/icons/Controller.png" height="150svh"><br/>Creative Crafter</h1>
<h1>Link Collection</h1>
<div class="category-container">
<div class="category">
<div class="category-title">Br0tkasten</div>
<div class="category-description">just my two cents</div>
<a href="/link-collection/br0tkasten">Mehr erfahren</a>
</div>
<div class="category">
<div class="category-title">Lego Tiny Plants</div>
<div class="category-description">Build 9 miniature plants in terracotta pots, featuring various species, perfect for display and creative relaxation. Botanical joy!</div>
<a href="/link-collection/lego-tiny-plants">Mehr erfahren</a>
</div>
<div class="category">
<div class="category-title">Redmi Buds 6 Play</div>
<div class="category-description">Hear very good sound and minimalism. Go Hear!</div>
<a href="/link-collection/redmi-buds-6-play">Mehr erfahren</a>
</div>
</body>
</html>

View File

@ -0,0 +1,390 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Lego Tiny Plants</h1>
<div align='center'>
<img src="/link-collection/lego-tiny-plants/lego-pflanze.jpeg" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<center>
<h2>
<a href="https://www.amazon.de/LEGO-10329-k%C3%BCnstliche-Collection-Terrakotta-Topf/dp/B01N6CH4YZ/ref=sr_1_2?crid=3PWMDFTZ8FXD1&dib=eyJ2IjoiMSJ9._75n0qO-YpajelaQ3F4sobWV0Wbr7ROWJ9sPnoTD6_Z9i_N5D64BBmcwPy_a1y-T88KqDuhlVDdyE1QpYo9n6h7aXF_kh5wsy7oMazuW90tQQfzssmCkcI9SyYV0CAQUMtgdRYTjljdAbfh-bzpCWUOqL2b2V3UOV2AKXGostIla1pe0gCXSFq2vaKRzOGTl5fMRr7pakjXiVQIqnf2_GlTjazRYVMa5VjUasdYcU2jCp5OILbzdRlbVIUxH2zHyi9mi-NHSP8a5IpSyC3AF5Zl_Q-K1BtYCdLBE3h0P4os.5o3cn-kk1WxUd6I0RQ4cxHys9Ub8KYDmk9X9XBJlB-w&dib_tag=se&keywords=lego%2Btiny%2Bplants&qid=1729366267&sprefix=tiny%2Blego%2Caps%2C115&sr=8-2&th=1">Amazon</a>
</h2>
</center>
<center>
<h2>
<a href="https://www.lego.com/de-de/product/tiny-plants-10329">LEGO® Online-shop</a>
</h2>
</center>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic toy!https://www.creative-crafter.de/link-collection/lego-tiny-plants/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic toy!https://www.creative-crafter.de/link-collection/lego-tiny-plants/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic toy!https://test.creative-crafter.de/link-collection/lego-tiny-plants/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic toy!https://www.creative-crafter.de/link-collection/lego-tiny-plants/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const body = encodeURIComponent('Check out this fantastic toy!https://www.creative-crafter.de/link-collection/lego-tiny-plants/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic toy!https://www.creative-crafter.de/link-collection/lego-tiny-plants/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
<br>
<br>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

View File

@ -0,0 +1,390 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Lego Tiny Plants</h1>
<div align='center'>
<img src="/link-collection/redmi-buds-6-play/bild.jpeg" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<center>
<h2>
<a href="https://www.amazon.de/Redmi-Buds-Play-Ear-AI-Ger%C3%A4uschunterdr%C3%BCckung-Schwarz/dp/B0DBHRWRKC?th=1">Amazon</a>
</h2>
</center>
<center>
<h2>
<a href="https://www.mi.com/de/product/redmi-buds-6-play/">Xiaomi Online-shop</a>
</h2>
</center>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out these fantastic In-ear headphones!https://www.creative-crafter.de/link-collection/redmi-buds-6-play/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out these fantastic In-ear headphones!https://www.creative-crafter.de/link-collection/redmi-buds-6-play/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out these fantastic In-ear headphones!https://test.creative-crafter.de/link-collection/redmi-buds-6-play/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out these fantastic In-ear headphones!https://www.creative-crafter.de/link-collection/redmi-buds-6-play/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const body = encodeURIComponent('Check out these fantastic In-ear headphones!https://www.creative-crafter.de/link-collection/redmi-buds-6-play/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out these fantastic In-ear headphones!https://www.creative-crafter.de/link-collection/redmi-buds-6-play/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
</body>
<br>
<br>
</html>

174
login/index.html Normal file
View File

@ -0,0 +1,174 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login Form</title>
<style>
/* From Uiverse.io by Praashoo7 */
.form {
display: flex;
flex-direction: column;
gap: 10px;
width: 290.73px;
height: 370.56px;
padding-left: 2em;
padding-right: 2em;
padding-bottom: 0.4em;
background-color: #171717;
border-radius: 25px;
transition: .4s ease-in-out;
}
.form:hover {
transform: scale(1.05);
border: 1px solid black;
}
#heading {
text-align: center;
margin: 2em;
color: rgb(255, 255, 255);
font-size: 1.2em;
}
.field {
display: flex;
align-items: center;
justify-content: center;
gap: 0.5em;
border-radius: 25px;
padding: 0.6em;
border: none;
outline: none;
color: white;
background-color: #171717;
box-shadow: inset 2px 5px 10px rgb(5, 5, 5);
}
.input-icon {
height: 1.3em;
width: 1.3em;
fill: white;
}
.input-field {
background: none;
border: none;
outline: none;
width: 100%;
color: #d3d3d3;
}
.form .btn {
display: flex;
justify-content: center;
flex-direction: row;
margin-top: 2.5em;
}
.button1 {
padding: 0.5em;
padding-left: 1.1em;
padding-right: 1.1em;
border-radius: 5px;
margin-right: 0.5em;
border: none;
outline: none;
transition: .4s ease-in-out;
background-color: #252525;
color: white;
}
.button1:hover {
background-color: black;
color: white;
}
.button2 {
padding: 0.5em;
padding-left: 2.3em;
padding-right: 2.3em;
border-radius: 5px;
border: none;
outline: none;
transition: .4s ease-in-out;
background-color: #252525;
color: white;
}
.button2:hover {
background-color: black;
color: white;
}
.button3 {
margin-bottom: 3em;
padding: 0.5em;
border-radius: 5px;
border: none;
outline: none;
transition: .4s ease-in-out;
background-color: #252525;
color: white;
}
.button3:hover {
background-color: red;
color: white;
}
</style>
</head>
<body>
<!-- From Uiverse.io by Praashoo7 -->
<form class="form" action="SERVER_ADDRESS" method="post" id="loginForm">
<p id="heading">Login</p>
<div class="field">
<svg class="input-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
<path d="M13.106 7.222c0-2.967-2.249-5.032-5.482-5.032-3.35 0-5.646 2.318-5.646 5.702 0 3.493 2.235 5.708 5.762 5.708.862 0 1.689-.123 2.304-.335v-.862c-.43.199-1.354.328-2.29.328-2.926 0-4.813-1.88-4.813-4.798 0-2.844 1.921-4.881 4.594-4.881 2.735 0 4.608 1.688 4.608 4.156 0 1.682-.554 2.769-1.416 2.769-.492 0-.772-.28-.772-.76V5.206H8.923v.834h-.11c-.266-.595-.881-.964-1.6-.964-1.4 0-2.378 1.162-2.378 2.823 0 1.737.957 2.906 2.379 2.906.8 0 1.415-.39 1.709-1.087h.11c.081.67.703 1.148 1.503 1.148 1.572 0 2.57-1.415 2.57-3.643zm-7.177.704c0-1.197.54-1.907 1.456-1.907.93 0 1.524.738 1.524 1.907S8.308 9.84 7.371 9.84c-.895 0-1.442-.725-1.442-1.914z"></path>
</svg>
<input autocomplete="off" placeholder="Username" class="input-field" type="text" name="username">
</div>
<div class="field">
<svg class="input-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
<path d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z"></path>
</svg>
<input placeholder="Password" class="input-field" type="password" name="password">
</div>
<div class="btn">
<button class="button1" type="submit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</button>
<button class="button2" type="button" onclick="signUp()">Sign Up</button>
</div>
<button class="button3" type="button" onclick="forgotPassword()">Forgot Password</button>
</form>
<script>
document.getElementById("loginForm").addEventListener("submit", function(event){
event.preventDefault(); // Verhindert das Standardverhalten
const formData = new FormData(this);
fetch('SERVER_ADDRESS', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
console.log(data);
// hier können Sie die Antwortdaten weiterverarbeiten
})
.catch(error => {
console.error('Error:', error);
});
});
function signUp() {
window.open('URL_ZUM_SIGN_UP_FENSTER', '_blank');
}
function forgotPassword() {
window.open('URL_ZUM_FORGOT_PASSWORD_FENSTER', '_blank');
}
</script>
</body>
</html>

122
login/test.html Normal file
View File

@ -0,0 +1,122 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: #e3f2fd;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.form {
display: flex;
flex-direction: column;
gap: 15px;
padding: 2em;
background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
border-radius: 10px;
transition: transform 0.3s ease-in-out;
}
.form:hover {
transform: scale(1.02);
}
#heading {
text-align: center;
margin: 0;
color: #1565c0;
font-size: 1.5em;
font-weight: 600;
}
.field {
display: flex;
align-items: center;
gap: 10px;
padding: 0.75em 1em;
background-color: #bbdefb;
border-radius: 5px;
}
.input-icon {
height: 1.5em;
width: 1.5em;
fill: #1565c0;
}
.input-field {
width: 100%;
background: none;
border: none;
outline: none;
color: #1565c0;
font-size: 1em;
}
.btn {
display: flex;
justify-content: center;
}
.button {
padding: 0.75em 2em;
border: none;
outline: none;
border-radius: 5px;
background-color: #1565c0; /* Blue Button */
color: #ffffff;
font-size: 1em;
font-weight: 600;
cursor: pointer;
transition: background-color 0.3s ease-in-out;
}
.button:hover {
background-color: #0d47a1; /* Darker blue on hover */
}
</style>
</head>
<body>
<div class="form">
<h2 id="heading">Login</h2>
<div class="field">
<input type="text" id="username" placeholder="Username" required class="input-field">
</div>
<div class="field">
<input type="email" id="email" placeholder="Email" required class="input-field">
</div>
<div class="field">
<input type="password" id="password" placeholder="Password" required class="input-field">
</div>
<div class="field">
<input type="password" id="confirm_password" placeholder="Confirm Password" required class="input-field">
</div>
<div class="btn">
<button class="button" onclick="login()">Login</button>
</div>
</div>
<script>
function login() {
var username = document.getElementById('username').value;
var email = document.getElementById('email').value;
var password = document.getElementById('password').value;
var confirmPassword = document.getElementById('confirm_password').value;
if (password !== confirmPassword) {
alert("Passwords do not match.");
return;
}
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://YOUR_SERVER_ADDRESS/login", true); // Replace "YOUR_SERVER_ADDRESS" with your actual server address
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE) {
document.body.innerHTML = xhr.responseText;
}
};
xhr.send("username=" + encodeURIComponent(username) + "&email=" + encodeURIComponent(email) + "&password=" + encodeURIComponent(password));
}
</script>
</body>
</html>

102
pdf/index.html Normal file
View File

@ -0,0 +1,102 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PDF Reader</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.min.js"></script>
<style>
body { font-family: Arial, sans-serif; text-align: center; position: relative; }
canvas { border: 1px solid black; margin-top: 10px; display: block; margin-left: auto; margin-right: auto; }
.btn-conteiner {
display: flex;
justify-content: center;
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
--color-text: #ffffff;
--color-background: #007BFF;
}
.btn-content {
display: flex;
justify-content: center;
align-items: center;
padding: 10px 40px;
text-decoration: none;
font-family: 'Poppins', sans-serif;
font-weight: 600;
font-size: 30px;
color: var(--color-text);
background: var(--color-background);
transition: 1s;
border-radius: 100px;
box-shadow: 0 0 0.2em 0 var(--color-background);
}
.btn-content:hover {
transition: 0.5s;
box-shadow: 0 0 0.4em 0 var(--color-background);
}
</style>
</head>
<body>
<h1>PDF Reader</h1>
<input type="file" id="uploadPdf" accept="application/pdf">
<br>
<canvas id="pdfCanvas"></canvas>
<div class="btn-conteiner">
<a class="btn-content" href="#" id="nextPage">
<span class="btn-title">NEXT</span>
</a>
</div>
<script>
let pdfDoc = null;
let currentPage = 1;
document.getElementById('uploadPdf').addEventListener('change', function(event) {
const file = event.target.files[0];
if (file) {
const fileReader = new FileReader();
fileReader.onload = function() {
const typedarray = new Uint8Array(this.result);
pdfjsLib.getDocument({ data: typedarray }).promise.then(pdf => {
pdfDoc = pdf;
currentPage = 1;
renderPage(currentPage);
}).catch(error => {
console.error("Fehler beim Laden des PDFs:", error);
});
};
fileReader.readAsArrayBuffer(file);
}
});
function renderPage(pageNumber) {
if (!pdfDoc) return;
pdfDoc.getPage(pageNumber).then(page => {
const scale = 1.5;
const viewport = page.getViewport({ scale });
const canvas = document.getElementById('pdfCanvas');
const context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
const renderContext = { canvasContext: context, viewport };
page.render(renderContext);
}).catch(error => {
console.error("Fehler beim Rendern der Seite:", error);
});
}
document.getElementById('nextPage').addEventListener('click', function(event) {
event.preventDefault();
if (pdfDoc && currentPage < pdfDoc.numPages) {
currentPage++;
renderPage(currentPage);
}
});
</script>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,385 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Flappy Witch</h1>
<div align='center'>
<img src="/programmieren/spiele/Flappy-Witch/logo.png" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<button class="button" onclick="window.location.href=`/programmieren/spiele/Flappy-Witch/FlappyWitch.html`">
<div class="button-inner">
<span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span>
</div>
</button>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<div align='center'>
<img src="/programmieren/spiele/Flappy-Witch/FlappyWitch1.png" width="250">
<img src="/programmieren/spiele/Flappy-Witch/FlappyWitch2.png" width="250">
</div>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,387 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Capybara Jump and Run</h1>
<div align='center'>
<img src="/programmieren/spiele/capybara-jump-and-run/logo.svg" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<button class="button" onclick="window.location.href=`/programmieren/spiele/capybara-jump-and-run/cajuanru.html`">
<div class="button-inner">
<span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span>
</div>
</button>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<div align='center'>
<img src="/programmieren/spiele/capybara-jump-and-run/screenshot01.png" height="250">
<img src="/programmieren/spiele/capybara-jump-and-run/screenshot02.png" height="250">
</div>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Capybara Jump and Run');
const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

View File

@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Cookie Clicker</title>
<style>
body {
text-align: center;
font-family: sans-serif;
color: rgb(255, 255, 255);
padding-top: 50px;
background: #3498db;
}
#score, #highscore {
font-size: 2em;
margin-bottom: 10px;
}
#clickTarget {
width: 150px;
height: 150px;
cursor: pointer;
transition: transform 0.1s ease;
display: inline-block;
}
#clickTargetreversed {
width: 150px;
height: 150px;
cursor: pointer;
transition: transform 0.1s ease;
display: inline-block;
}
#clickTarget:active {
transform: scale(0.80);
}
svg {
width: 100%;
height: 100%;
}
#clickTarget.clicked {
filter: brightness(1.5);
}
</style>
</head>
<body>
<div id="score">Score: 0</div>
<div id="highscore">Highscore: 0</div>
<!-- Klickbarer SVG-Button -->
<div id="clickTarget" onclick="addPoint()">
<svg id="cookie" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#ffc23d" d="M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/>
</svg>
<audio id="clickSound" src="crunchy-bite-95979.mp3"></audio>
</div>
<script>
let score = 0;
let highscore = localStorage.getItem('highscore') || 0;
document.getElementById('highscore').textContent = "Highscore: " + highscore;
function addPoint() {
score++;
document.getElementById('score').textContent = "Punkte: " + score;
if (score > highscore) {
highscore = score;
localStorage.setItem('highscore', highscore);
document.getElementById('highscore').textContent = "Highscore: " + highscore;
}
if (score % 100 == 0) {
const cookie = document.getElementById('clickTarget');
cookie.classList.add('clicked');
setTimeout(() => cookie.classList.remove('clicked'), 333);
}
// Sound abspielen
const clickSound = document.getElementById('clickSound');
clickSound.currentTime = 0; // damit der Sound bei mehreren schnellen Klicks neu startet
clickSound.play();
}
</script>
</body>
<footer>Sound Effect by <a href="https://pixabay.com/users/freesound_community-46691455/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=95979">freesound_community</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=95979">Pixabay</a></footer>
</html>

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#ffc23d" d="M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>

After

Width:  |  Height:  |  Size: 767 B

View File

@ -0,0 +1,384 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Flappy Witch</h1>
<div align='center'>
<img src="/programmieren/spiele/cookie-klicker/logo.png" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<button class="button" onclick="window.location.href=`/programmieren/spiele/cookie-klicker/cookie-clicker.html`">
<div class="button-inner">
<span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span>
</div>
</button>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<div align='center'>
<img src="/programmieren/spiele/cookie-klicker/screenshot.png/" width="500">
</div>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@ -0,0 +1,387 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Fruit or No</h1>
<div align='center'>
<img src="/programmieren/spiele/fruit-or-no/logo.png" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<button class="button" onclick="window.location.href=`/programmieren/spiele/fruit-or-no/fruit-or-no.html`">
<div class="button-inner">
<span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span>
</div>
</button>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<div align='center'>
<img src="/programmieren/spiele/fruit-or-no/fruit-or-no1.png" height="250">
<img src="/programmieren/spiele/fruit-or-no/fruit-or-no2.png" height="250">
</div>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Fruit or No');
const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 KiB

View File

@ -0,0 +1,106 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<link href="" rel="stylesheet">
<style>
@font-face {
font-family: "Titillium";
src: url("/Titillium-Web-Regular.ttf");
}
body {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff; /* Leichtes Blau */
}
h1 {
text-align: center;
}
h2 {
text-align: center;
}
h1, h2, h3 {
text-align: center;
}
.category-container {
width: 80%;
max-width: 800px;
margin-top: 20px;
}
.category {
padding: 15px;
border: 1px solid #ccc;
border-radius: 8px;
margin: 10px 0;
background-color: #fff;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
text-align: left;
}
.category-title {
font-size: 1.2em;
font-weight: bold;
margin-bottom: 5px;
}
.category-description {
font-size: 1em;
margin-bottom: 10px;
}
.category a {
color: #007bff;
text-decoration: none;
}
.category a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<h1><img src="/icons/Controller.png" height="150svh"><br/>Creative Crafter</h1>
<h1>My Games</h1>
<div class="category-container">
<div class="category">
<div class="category-title">Klick the Witch</div>
<div class="category-description">Klick the Witch is a mini-game. Tap evil witches for points, avoid good ones, and manage 3 lives.</div>
<a href="/programmieren/spiele/klick-the-witch">Mehr erfahren</a>
</div>
<div class="category">
<div class="category-title">Flappy Witch</div>
<div class="category-description">Help the witch navigate through the pipes, collecting points and avoiding obstacles. Test your skills in this magical adventure!</div>
<a href="/programmieren/spiele/Flappy-Witch">Mehr erfahren</a>
</div>
<div class="category">
<div class="category-title">Capybara Jump and Run</div>
<div class="category-description">Collect apples for points, avoid deadly spikes. Guide your capybara to a fun and thrilling adventure. Play now!</div>
<a href="/programmieren/spiele/capybara-jump-and-run">Mehr erfahren</a>
</div>
<div class="category">
<div class="category-title">Fruit or No</div>
<div class="category-description">Tap fruits for points. Let non-food items fall. Test reflexes in this fast-paced, fun game.</div>
<a href="/programmieren/spiele/fruit-or-no">Mehr erfahren</a>
</div>
<div class="category">
<div class="category-title">Sweets for Animals</div>
<div class="category-description">Tap the cat for cakes, bunny for donuts. Give Sweets away.</div>
<a href="/programmieren/spiele/sweets-for-animals">Mehr erfahren</a>
</div>
<div class="category">
<div class="category-title">Snake Game</div>
<div class="category-description">Experience the timeless classic by guiding the snake, collecting food, avoiding collisions! Play now.</div>
<a href="/programmieren/spiele/snake">Mehr erfahren</a>
</div>
<div class="category">
<div class="category-title">Cookie Clicker</div>
<div class="category-description">Click the cookie as fast as you can to earn points. Beat your high score and enjoy fun extras like sounds and effects!</div>
<a href="/programmieren/spiele/cookie-klicker">Mehr erfahren</a>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,387 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Klick the Witch</h1>
<div align='center'>
<img src="/programmieren/spiele/klick-the-witch/logo.png" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<button class="button" onclick="window.location.href=`/programmieren/spiele/klick-the-witch/witc1h.html`">
<div class="button-inner">
<span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span>
</div>
</button>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<div align='center'>
<img src="/programmieren/spiele/klick-the-witch/screenshot01.png" height="250">
<img src="/programmieren/spiele/klick-the-witch/screenshot02.png" height="250">
</div>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 230 KiB

After

Width:  |  Height:  |  Size: 230 KiB

View File

Before

Width:  |  Height:  |  Size: 978 KiB

After

Width:  |  Height:  |  Size: 978 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Snake Game</title>
<style>
body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #000; }
canvas { border: 1px solid #fff; }
#startScreen { display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: white; text-align: center; }
</style>
</head>
<body>
<canvas id="gameCanvas" width="400" height="400"></canvas>
<div id="startScreen"><h1>Snake Game</h1><p>Press Space to Start</p></div>
<script>
const canvas = document.getElementById('gameCanvas'), ctx = canvas.getContext('2d'), startScreen = document.getElementById('startScreen');
const gridSize = 20; let snake = [{ x: 200, y: 200 }], direction = { x: 0, y: 0 }, food = { x: 0, y: 0 }, gameOver = false, gameStarted = false;
const getRandomFoodPosition = () => ({ x: Math.floor(Math.random() * (canvas.width / gridSize)) * gridSize, y: Math.floor(Math.random() * (canvas.height / gridSize)) * gridSize });
const drawRect = (x, y, color) => { ctx.fillStyle = color; ctx.fillRect(x, y, gridSize, gridSize); };
const update = () => {
if (gameOver) return;
const head = { x: snake[0].x + direction.x, y: snake[0].y + direction.y };
if (head.x < 0 || head.x >= canvas.width || head.y < 0 || head.y >= canvas.height || snake.some(segment => segment.x === head.x && segment.y === head.y)) {
gameOver = true;
location.reload(); // Reload the page when the game is over
return;
}
snake.unshift(head);
if (head.x === food.x && head.y === food.y) food = getRandomFoodPosition(); else snake.pop();
};
const draw = () => { ctx.clearRect(0, 0, canvas.width, canvas.height); snake.forEach(segment => drawRect(segment.x, segment.y, 'lime')); drawRect(food.x, food.y, 'red'); };
const gameLoop = () => { update(); draw(); if (!gameOver) setTimeout(gameLoop, 100); };
const resetGame = () => { snake = [{ x: 200, y: 200 }]; direction = { x: 0, y: 0 }; food = getRandomFoodPosition(); gameOver = false; gameLoop(); };
window.addEventListener('keydown', e => {
switch (e.key) {
case 'ArrowUp': case 'w': if (direction.y === 0) direction = { x: 0, y: -gridSize }; break;
case 'ArrowDown': case 's': if (direction.y === 0) direction = { x: 0, y: gridSize }; break;
case 'ArrowLeft': case 'a': if (direction.x === 0) direction = { x: -gridSize, y: 0 }; break;
case 'ArrowRight': case 'd': if (direction.x === 0) direction = { x: gridSize, y: 0 }; break;
case ' ': if (gameOver) resetGame(); else if (!gameStarted) { startScreen.style.display = 'none'; gameStarted = true; gameLoop(); } break;
}
});
food = getRandomFoodPosition();
startScreen.style.display = 'block';
</script>
</body>
</html>

View File

@ -0,0 +1,387 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Snake</h1>
<div align='center'>
<img src="/programmieren/spiele/snake/logo.svg" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<button class="button" onclick="window.location.href=`/programmieren/spiele/snake/snake.html`">
<div class="button-inner">
<span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span>
</div>
</button>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<div align='center'>
<img src="/programmieren/spiele/snake/screenshot01.png" height="250">
<img src="/programmieren/spiele/snake/screenshot02.png" height="250">
</div>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Snake');
const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
</body>
</html>

View File

@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="277" height="285" viewBox="0,0,277,285"><g transform="translate(-105.5,-38.5)"><g stroke="none" stroke-miterlimit="10"><path d="M105.5,323.5v-285h277v285z" fill="#000000" stroke-width="0"/><path d="M167.5,193.58489v-26.08489h25.35268v26.08489z" fill="#ff0000" stroke-width="0"/><g fill="#00ff00" stroke-width="0"><path d="M167.5,117.41822v-26.08488h25.35268v26.08489z"/><g><path d="M167.41602,66.77253l26.08467,-0.10603l0.10305,25.35247l-26.08467,0.10603z"/><path d="M192.74915,66.66956l26.08467,-0.10603l0.10305,25.35247l-26.08467,0.10603z"/><path d="M218.24894,66.56591l26.08467,-0.10603l0.10305,25.35247l-26.08467,0.10603z"/></g></g><text transform="translate(123.79263,283.89989) scale(1.16743,1.16743)" font-size="40" xml:space="preserve" fill="#ffffff" stroke-width="1" font-family="Serif" font-weight="normal" text-anchor="start"><tspan x="0" dy="0">Snake Game</tspan></text></g></g></svg><!--rotationCenter:134.5:141.5-->

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 KiB

View File

@ -0,0 +1,222 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Snake Game</title>
<style>
* { box-sizing: border-box; }
body {
margin: 0;
background: linear-gradient(135deg, #3498db, #9b59b6);
color: white;
font-family: "Coda", system-ui;
font-weight: 800;
font-style: normal;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
position: relative;
overflow: hidden;
}
canvas {
border: 4px solid #ffffff81;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
background-color: #2c3e5085;
}
#overlay {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
display: none;
}
#overlay h1 {
font-size: 3em;
margin-bottom: 0.5em;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}
#scoreboard {
position: absolute;
top: 20px;
left: 20px;
font-size: 18px;
z-index: 2;
}
.score-text {
font-size: 1.5em;
font-weight: bold;
}
.highscore-text {
font-size: 1.5em;
font-weight: bold;
}
</style>
</head>
<body>
<canvas id="gameCanvas" width="400" height="400"></canvas>
<div id="scoreboard">
<div class="score-text">Score: <span id="score">0</span></div>
<div class="highscore-text">Highscore: <span id="highscore">0</span></div>
</div>
<div id="overlay">
<h1>Snake Game</h1>
<p>Press Space to Start</p>
</div>
<script>
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
const overlay = document.getElementById('overlay');
const scoreDisplay = document.getElementById('score');
const highscoreDisplay = document.getElementById('highscore');
const gridSize = 20;
let snake = [{ x: 200, y: 200 }];
let direction = { x: 0, y: 0 };
let nextDirection = { x: 0, y: -gridSize };
let food = {};
let score = 0;
let highscore = parseInt(localStorage.getItem('snakeHighscore')) || 0;
let gameRunning = false;
let gameOver = false;
let speed = 100;
let timeoutId;
highscoreDisplay.textContent = highscore;
function getRandomPosition() {
return {
x: Math.floor(Math.random() * (canvas.width / gridSize)) * gridSize,
y: Math.floor(Math.random() * (canvas.height / gridSize)) * gridSize
};
}
function placeFood() {
food = getRandomPosition();
while (snake.some(s => s.x === food.x && s.y === food.y)) {
food = getRandomPosition();
}
}
// Funktion zum Zeichnen eines abgerundeten Rechtecks (für die Snake)
function drawRoundedRect(x, y, width, height, radius, color) {
ctx.fillStyle = color;
ctx.beginPath();
ctx.moveTo(x + radius, y);
ctx.lineTo(x + width - radius, y);
ctx.arcTo(x + width, y, x + width, y + height, radius);
ctx.lineTo(x + width, y + height - radius);
ctx.arcTo(x + width, y + height, x + width - radius, y + height, radius);
ctx.lineTo(x + radius, y + height);
ctx.arcTo(x, y + height, x, y + height - radius, radius);
ctx.lineTo(x, y + radius);
ctx.arcTo(x, y, x + radius, y, radius);
ctx.closePath();
ctx.fill();
}
function update() {
direction = nextDirection;
const head = {
x: snake[0].x + direction.x,
y: snake[0].y + direction.y
};
if (
head.x < 0 || head.x >= canvas.width ||
head.y < 0 || head.y >= canvas.height ||
snake.some(segment => segment.x === head.x && segment.y === head.y)
) {
endGame();
return;
}
snake.unshift(head);
if (head.x === food.x && head.y === food.y) {
score++;
scoreDisplay.textContent = score;
placeFood();
} else {
snake.pop();
}
}
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
// Snake als abgerundetes Rechteck zeichnen
snake.forEach((segment, index) => {
const color = index === 0 ? 'limegreen' : 'darkgreen'; // Kopf grün, Rest dunkelgrün
drawRoundedRect(segment.x, segment.y, gridSize, gridSize, 5, color);
});
// Essen zeichnen
drawRoundedRect(food.x, food.y, gridSize, gridSize, 5, 'tomato');
}
function gameLoop() {
if (!gameRunning) return;
update();
draw();
timeoutId = setTimeout(gameLoop, speed);
}
function startGame() {
snake = [{ x: 200, y: 200 }];
direction = { x: 0, y: -gridSize };
nextDirection = { x: 0, y: -gridSize };
score = 0;
speed = 100; // Standard-Geschwindigkeit ohne Erhöhung
scoreDisplay.textContent = score;
gameOver = false;
gameRunning = true;
overlay.style.display = 'none';
placeFood();
gameLoop();
}
function endGame() {
gameRunning = false;
clearTimeout(timeoutId);
if (score > highscore) {
highscore = score;
localStorage.setItem('snakeHighscore', highscore);
highscoreDisplay.textContent = highscore;
}
overlay.innerHTML = '<h1>Game Over</h1><p>Press Space to Restart</p>';
overlay.style.display = 'block';
}
window.addEventListener('keydown', e => {
switch (e.key) {
case 'ArrowUp':
case 'w':
if (direction.y === 0) nextDirection = { x: 0, y: -gridSize };
break;
case 'ArrowDown':
case 's':
if (direction.y === 0) nextDirection = { x: 0, y: gridSize };
break;
case 'ArrowLeft':
case 'a':
if (direction.x === 0) nextDirection = { x: -gridSize, y: 0 };
break;
case 'ArrowRight':
case 'd':
if (direction.x === 0) nextDirection = { x: gridSize, y: 0 };
break;
case ' ':
if (!gameRunning) startGame();
break;
}
});
overlay.style.display = 'block';
</script>
</body>
</html>

View File

@ -0,0 +1,387 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Creative Crafter</title>
<!-- Ladeanimation -->
<script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script>
<!-- Stylesheet -->
<style>
@font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); }
body, html {
font-family: 'Titillium';
height: 100%;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: #e6f7ff;
}
h1, h2 { text-align: center; }
/* Ladeanimation */
.loader-container {
display: none;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(173, 216, 230, 0.8);
z-index: 9999;
}
.loading .loader-container { display: flex; }
/* Button-Style */
.button-share {
--white: #fff;
cursor: pointer;
background: linear-gradient(to bottom, #6e3bff, #7e51ff);
color: #fff;
border: 1px solid #af93ff;
border-radius: 8px;
position: relative;
font-family: Arial, Helvetica, sans-serif;
text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce;
font-size: 25px;
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 20px;
}
.button {
padding: 16px 32px; /* Doppelte Größe */
border-radius: 8px;
background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */
box-shadow: 0 2px 4px rgba(0,0,0,0.7);
transition: all 0.2s;
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px; /* Abstand zum oberen Inhalt */
}
.button:hover {
box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.button:active {
box-shadow: 0 0px 1px rgba(0,0,0,0.8);
transform: scale(0.995);
}
.button-text {
font-weight: 600;
color: white;
font-size: 1.5em; /* Textgröße anpassen */
}
.icon path.bm {
stroke-dasharray: 3;
stroke-dashoffset: 3;
stroke-width: 1px;
transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg);
}
.icon-container {
display: flex;
align-items: center;
justify-content: center;
padding: 8px 10px;
background-color: #fff;
border-radius: 50%;
box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25);
text-align: center;
z-index: 10;
}
.icon-container .icon {
width: 25px;
height: 30px;
stroke: #592cd6;
margin-top: -2px;
z-index: 4;
/* Für das Teilen-Icon die Rotation entfernen */
}
.content {
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
position: relative;
height: 100%;
width: 100%;
padding: 4px;
gap: 16px;
border-radius: 7px;
font-weight: 600;
transition: all 0.3s ease;
}
.letters {
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
.letters span {
display: block;
color: transparent;
position: relative;
left: 6px;
animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s);
}
.letters span::before, .letters span::after {
content: attr(data-label);
position: absolute;
color: var(--white);
text-shadow: -1px 1px 2px var(--purple-500);
left: 0;
}
.letters span::before {
opacity: 0;
transform: translateY(-100%);
}
.button:hover .letters span::before {
animation: letterShow 0.7s ease calc(var(--i) * 0.03s);
}
.button:hover .letters span::after {
opacity: 1;
animation: letterHide 0.7s ease calc(var(--i) * 0.03s);
}
@keyframes letterShow {
0% { transform: translateY(50%); opacity: 0; filter: blur(20px); }
20% { transform: translateY(70%); opacity: 1; }
50% { transform: translateY(-15%); opacity: 1; filter: blur(0); }
100% { transform: translateY(0); opacity: 1; }
}
@keyframes letterHide {
0% { transform: translateY(0); opacity: 1; }
100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); }
}
/* Modal-Stile */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.5);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 400px;
text-align: center;
border-radius: 10px;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: black;
}
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<!-- Ladeanimation -->
<div class="loader-container">
<l-quantum size="90" speed="1.75" color="black"></l-quantum>
</div>
<h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1>
<h1>Sweets for Animals</h1>
<div align='center'>
<img src="/programmieren/spiele/sweets-for-animals/logo.png" width="250">
</div>
<br/>
<div align='center'>
<!-- Spielen-Button -->
<button class="button" onclick="window.location.href=`/programmieren/spiele/sweets-for-animals/sweets-for-animals.html`">
<div class="button-inner">
<span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span>
</div>
</button>
</a>
<br/><br/>
<!-- Neuer Teilen-Button -->
<button class="button-share" onclick="openSharePopup()">
<div class="icon-container">
<svg viewBox="0 0 24 24" fill="none" class="icon">
<!-- Teilen-Icon -->
<path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path>
<polyline points="16 6 12 2 8 6"></polyline>
<line x1="12" y1="2" x2="12" y2="15"></line>
</svg>
</div>
<div class="content">
<div class="letters">
<span data-label="S" style="--i:0;">S</span>
<span data-label="h" style="--i:1;">h</span>
<span data-label="a" style="--i:2;">a</span>
<span data-label="r" style="--i:3;">r</span>
<span data-label="e" style="--i:4;">e</span>
</div>
</div>
</button>
</div>
<!-- Popup-Fenster zum Teilen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeSharePopup()">&times;</span>
<h2>Share with:</h2>
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
<!-- Weitere Sharing-Optionen kannst du hier hinzufügen -->
</div>
</div>
</div>
<br/><br/><br/>
<div align='center'>
<img src="/programmieren/spiele/sweets-for-animals/sweetsforanimalscake.png" height="250">
<img src="/programmieren/spiele/sweets-for-animals/sweetsforanimalsdonut.png" height="250">
</div>
<!-- JavaScript für Ladeanimation und Teilen-Funktion -->
<script>
// Ladeanimation beim Laden der Seite anzeigen
document.body.classList.add('loading');
// Ladeanimation entfernen, wenn die Seite vollständig geladen ist
window.addEventListener('load', () => {
document.body.classList.remove('loading');
});
// Funktion zum Öffnen des Popup-Fensters
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
// Funktion zum Schließen des Popup-Fensters
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
// Teilen via WhatsApp
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
// Teilen via Telegram
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link
const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
// Teilen via E-Mail
function shareViaEmail() {
const subject = encodeURIComponent('Sweets for Animals');
const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/';
navigator.clipboard.writeText(text).then(function() {
alert('Text has been copied to the clipboard!');
}, function(err) {
alert('Error copying to clipboard!: ', err);
});
}
// Schließt das Popup bei Klick außerhalb des Inhalts
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
}
}
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 963 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 915 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

Some files were not shown because too many files have changed in this diff Show More