Cleaned up the code display by splitting out the CSS and HTML.

master
Zed A. Shaw 3 years ago
parent 2e863b922e
commit 63303db18a
  1. 51
      package-lock.json
  2. 2
      package.json
  3. 2
      public/build/bundle.css
  4. 1970
      public/build/bundle.js
  5. 2
      public/build/bundle.js.map
  6. 61
      public/code/Google.css
  7. 30
      public/code/Google.html
  8. 70
      public/code/Instagram.css
  9. 61
      public/code/Instagram.html
  10. 6
      public/code/Login.css
  11. 13
      public/code/Login.html
  12. 104
      public/code/Pinterest.css
  13. 46
      public/code/Pinterest.html
  14. 187
      public/code/Twitter.css
  15. 133
      public/code/Twitter.html
  16. 90
      public/code/XorAcademy.css
  17. 51
      public/code/XorAcademy.html
  18. 159
      public/code/XorAcademyWatch.css
  19. 80
      public/code/XorAcademyWatch.html
  20. 155
      public/code/Youtube.css
  21. 121
      public/code/Youtube.html
  22. 221
      public/prism.css
  23. 52
      src/components/CodeView.svelte
  24. 2
      src/demos/Google.svelte
  25. 2
      src/demos/Instagram.svelte
  26. 2
      src/demos/Login.svelte
  27. 2
      src/demos/Pinterest.svelte
  28. 2
      src/demos/Twitter.svelte
  29. 2
      src/demos/XorAcademy.svelte
  30. 2
      src/demos/XorAcademyWatch.svelte
  31. 2
      src/demos/Youtube.svelte

51
package-lock.json generated

@ -1392,6 +1392,17 @@
}
}
},
"clipboard": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz",
"integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==",
"optional": true,
"requires": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
"tiny-emitter": "^2.0.0"
}
},
"cluster-key-slot": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
@ -1831,6 +1842,12 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"optional": true
},
"delegate": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
"optional": true
},
"delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
@ -3208,6 +3225,15 @@
}
}
},
"good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"optional": true,
"requires": {
"delegate": "^3.1.2"
}
},
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@ -5655,6 +5681,19 @@
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
},
"prism-svelte": {
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz",
"integrity": "sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ=="
},
"prismjs": {
"version": "1.22.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz",
"integrity": "sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==",
"requires": {
"clipboard": "^2.0.0"
}
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@ -6217,6 +6256,12 @@
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
"optional": true
},
"semiver": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
@ -7119,6 +7164,12 @@
"resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz",
"integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw=="
},
"tiny-emitter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
"optional": true
},
"tinydate": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz",

@ -50,6 +50,8 @@
"pino-http": "^5.3.0",
"pino-pretty": "^4.3.0",
"polka": "^0.5.2",
"prism-svelte": "^0.4.7",
"prismjs": "^1.22.0",
"sirv-cli": "^1.0.0",
"sqlite3": "^5.0.0",
"svelte-spa-router": "^3.0.5"

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,61 @@
content {
border: 1px solid #ddd;
display: flex;
flex-direction: column;
flex: flex-grow;
flex-basis: 100%;
grid-column: 1/3;
padding: 1rem;
}
header {
display: flex;
flex: flex-grow;
width: 100%;
flex-direction: row;
padding: unset;
}
nav {
flex: 1;
}
figure {
display: flex;
justify-content: center;
margin-top: 4rem;
}
search {
display: flex;
justify-content: center;
flex-direction: column;
margin-top: 2rem;
}
search input {
align-self: center;
width: 50ch;
}
search buttons {
display: flex;
justify-content: space-evenly;
}
button {
padding: 0.5rem;
background-color: #ddd;
border: unset;
color: #000;
font-weight: unset;
}
nav {
font-weight: normal;
}
a {
color: unset;
font-weight: normal;
}

@ -0,0 +1,30 @@
<content>
<header>
<nav>
<nav-left>
<a>About</a>
<a>Store</a>
</nav-left>
<ul>
<li>Gmail</li>
<li>Image</li>
<li><Icon name="grid" color="#000" /></li>
<li><button>Sign In</button></li>
</ul>
</nav>
</header>
<figure>
<a href="/demos/google" use:link>
<img src="https://via.placeholder.com/500x200?text=Google+Doodle">
</a>
</figure>
<search>
<input type="text">
<buttons>
<button>Google Search</button>
<button>I'm Feeling Lucky</button>
</buttons>
</search>
</content>

@ -0,0 +1,70 @@
a {
color: var(--color);
}
content {
border: 1px solid #ddd;
display: flex;
flex-direction: column;
flex: flex-grow;
flex-basis: 100%;
grid-column: 1/3;
padding: 1rem;
}
header {
display: flex;
width: 100%;
flex-direction: row;
}
nav {
flex: 1;
}
button {
padding: 0.5rem;
}
profile {
display: flex;
flow-direction: row;
}
profile figure {
padding-right: 3rem;
padding-left: 3rem;
}
profile info {
display: flex;
flex-direction: column;
width: 100%;
}
profile info p {
padding: 0.5rem;
}
tabs nav {
justify-content: center;
border-top: 1px black solid;
border-color: var(--color-inactive);
}
posts {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
posts figure {
}
pins {
display: flex;
flex-direction: row;
justify-content: space-evenly;
margin-top: 1rem;
margin-bottom: 1rem;
}

@ -0,0 +1,61 @@
<content>
<header>
<nav>
<b><Icon name="instagram" color="var(--color-text)" /> Instagram</b>
<input placeholder="Search">
<ul>
<li><button>Log In</button></li>
<li><a>Sign Up</a></li>
</ul>
</nav>
</header>
<profile>
<figure>
<img alt="Zed's Face" src="https://via.placeholder.com/256x256?text=Zed's Face">
</figure>
<info>
<p>
<b>zedshaw</b> <button>follow</button>
</p>
<p>
<b>280</b> posts <b>4,695 followers</b> <b>1,778 following</b>
</p>
<p><b>Zed A. Shaw</b></p>
<p>Painter in oil, watercolor, and pastel. I’m doing live streams of little paintings on Twitch:<br>
<a href="www.twitch.tv/zedashaw">www.twitch.tv/zedashaw</a>
</p>
</info>
</profile>
<pins>
{#each pins as pin}
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/82x82?text=Story">
</figure>
{/each}
</pins>
<tabs>
<nav>
<ul>
<li><Icon name="grid" color="var(--color-text)" /> POSTS</li>
<li><Icon name="movie" color="var(--color-text)" /> REELS</li>
<li><Icon name="tv" color="var(--color-text)" /> TV</li>
<li><Icon name="user" color="var(--color-text)" /> TAGGED</li>
</ul>
</nav>
</tabs>
<posts>
{#each posts as post}
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/300x300?text=Post Image">
</figure>
{/each}
</posts>
</content>

@ -0,0 +1,6 @@
content {
display: flex;
flex: flex-shrink;
flex-grow: 1;
justify-content: center;
}

@ -0,0 +1,13 @@
<content>
<spacer></spacer>
<form>
<header>Login</header>
<label for="username">Username</label>
<input type="text" id="username" name="username" size="32" placeholder="Username">
<label for="password">Password</label>
<input type="password" id="password" name="password" size="32" placeholder="Password">
<br>
<button type="submit">Login</button>
</form>
<spacer></spacer>
</content>

@ -0,0 +1,104 @@
:root {
--pin-red: #e60023;
}
content {
border: 1px solid #ddd;
display: flex;
flex-direction: column;
flex: flex-grow;
flex-basis: 100%;
grid-column: 1/3;
padding: 1rem;
}
header {
display: flex;
width: 100%;
flex-direction: row;
}
header nav {
display: flex;
flex: 1;
}
header nav input {
width: 100%;
}
header nav button {
border-radius: 30px;
background-color: var(--color-bg-secondary);
border: unset;
color: var(--color-text);
padding-left: 1rem;
padding-right: 1rem;
}
header nav button#signup {
background-color: var(--pin-red);
color: var(--color-bg);
}
header nav a {
color: var(--text-color);
}
header logo {
color: var(--pin-red);
display: flex;
font-size: 1.2em;
}
header left {
display: flex;
justify-content: space-evenly;
padding: 1em;
flex: 2;
}
header input {
border-radius: 30px;
flex: 3;
padding: 1rem;
}
profile {
display: flex;
flex-direction: row;
width: 100%;
justify-content: center;
}
profile info {
margin-right: 2em;
}
profile h1 {
margin-bottom: unset;
font-size: 3em;
}
profile p {
margin-bottom: 0.5rem;
margin-top: 0.5rem;
}
pins {
display: flex;
flex-direction: row;
}
pins lane figure {
margin: 0.5rem;
}
pins lane figure img {
border-radius: 15px;
}
pins lane {
display: flex;
flex-direction: column;
}

@ -0,0 +1,46 @@
<content>
<header>
<nav>
<left>
<logo><Icon name="pinterest" color="var(--color)" /> Pinterest</logo>
<a>Today</a>
<a>Explore</a>
</left>
<input placeholder="Search">
<ul>
<li><button>Log In</button></li>
<li><button id="signup">Sign Up</button></li>
</ul>
</nav>
</header>
{#if !thumbnail}
<profile>
<info>
<h1>Vincent van Gogh</h1>
<p>Collection by A Person</p>
<p><b>420</b> Pins • <b>3.59k</b> Followers</p>
<p>"I dream my painting and I paint my dream." ~ Vincent van Gogh
</info>
<figure>
<img alt="Zed's Face" src="https://via.placeholder.com/128x128?text=Zed's Face">
</figure>
</profile>
<pins>
{#each lanes as lane}
<lane>
{#each random_sample(pin_sizes, 10) as height}
<figure>
<img alt="Zed's Face" src="https://via.placeholder.com/240x{height}?text=Art240x{height}">
<figcaption>Something about Van Gogh {height} high.</figcaption>
</figure>
{/each}
</lane>
{/each}
</pins>
{/if}
</content>

@ -0,0 +1,187 @@
content {
border: 1px solid #ddd;
display: flex;
flex-direction: row;
flex: flex-grow;
flex-basis: 100%;
grid-column: 1/3;
padding: 0rem;
}
left {
display: flex;
flex-basis: 200px;
flex-direction: column;
border-right: 1px solid var(--color-bg-secondary);
padding: 1em;
font-size: 1.2em;
}
middle {
display: flex;
flex: 2;
flex-direction: column;
}
right {
display: flex;
flex-basis: 300px;
flex-direction: column;
border-left: 1px solid var(--color-bg-secondary);
}
header {
width: 100%;
text-align: unset;
}
header nav {
justify-content: left;
}
header nav h4 {
}
header nav back {
padding-left: 1rem;
padding-right: 1rem;
}
header nav name h4 {
margin: unset;
padding: unset;
}
header nav name span {
font-size: 0.8em;
font-weight: normal;
}
middle images {
display: grid;
grid-template-columns: 1fr min-content;
}
middle images figure#background {
z-index: -1;
grid-column: 1/2;
grid-row: 1/ span 2;
}
figure#background img {
height: 200px;
min-width: 500px;
}
middle images figure#avatar {
z-index: 5;
grid-column: 1/1;
grid-row: 2/2;
}
middle images figure#avatar img {
z-index: 5;
position: relative;
top: 90px;
left: 10px;
width: 128px;
}
figure#avatar img {
border-radius: 50%;
border: 5px white solid;
}
button#follow {
padding: 0.8rem;
border-radius: 30px;
border: 1px var(--color) solid;
background: var(--color-bg);
color: var(--color);
position: relative;
top: 60px;
left: 220px;
}
button#signup {
border-radius: 30px;
padding: 0.5rem;
width: 100%;
font-size: 0.9em;
}
aside#newperson p {
font-size: 0.8em;
color: var(--color-inactive);
}
recent-media {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 1px;
}
profile {
margin-top: 6rem;
margin-left: 1rem;
margin-right: 1rem;
}
tweet {
display: flex;
flex-direction: row;
}
tweet post {
padding-left: 1em;
flex-grow: 2;
margin-bottom: 1rem;
}
tweet figure#avatar img {
min-width: 64px;
height: 64px;
}
tweet post h4 {
margin: unset;
}
tweet post p {
margin-bottom: 0.5rem;
}
tweet post actions {
display: flex;
justify-content: space-evenly;
}
hr {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
aside#trending {
background-color: var(--color-bg-secondary);
padding: 0px;
}
aside#trending h3 {
margin-left: 1em;
}
aside#trending a {
margin-left: 1em;
color: var(--color);
}
aside#trending li {
border-top: 1px var(--color-bg) solid;
list-style-type: none;
list-style-position: outside;
padding: 0.3rem;
}
aside#trending ul {
padding-left: 0px;
}

@ -0,0 +1,133 @@
<content>
<left>
<Icon name="twitter" color="var(--color)" />
<h4># Explore</h4>
<h4><Icon name="settings" color="var(--color-text)" /> Settings</h4>
</left>
<middle>
<header>
<nav>
<back><Icon name="arrow-left" /></back>
<name>
<h4>Zed A. Shaw, Writer</h4>
<span>7,754 Tweets</span>
</name>
</nav>
</header>
<images>
<figure id="background">
<img src="/header_pic.jpg">
</figure>
<figure id="avatar"> <img src="/profile_pic.jpg">
<button id="follow">Follow</button>
</figure>
</images>
<profile>
<h3>Zed A. Shaw, Writer</h3>
<p>@lzsthw</p>
<p>Blah blah profile stuff.</p>
<p><Icon name="map" size="24" color="var(--color-bg-secondary)" />
Some Place, KY <Icon name="link" size="24" color="var(--color-bg-secondary)" />
<a>learnjsthehardway.org</a>
<Icon name="calendar" size="24" color="var(--color-bg-secondary)" />
Joined Jan, 1999.
</p>
<p><b>167</b> Following <b>10.4k</b> Followers</p>
</profile>
<hr>
<tweets>
{#each tweets as tweet}
<tweet>
<figure id="avatar">
<img alt="Stock photo" src="/profile_pic.jpg">
</figure>
<post>
<h4>Zed A. Shaw, Writer</h4>
<p>Lorem ipsum dolor siThe author of The Hard Way Series published by
Addison/Wesley including Learn Python The Hard Way and many more.
Follow me here for coding tips and book news.t amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam: <br>
<a>quis nostrud exercitation</a> ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.
</p>
<actions>
<Icon size="16" name="message-circle" color="var(--color-inactive)" /> 2
<Icon size="16" name="repeat" color="var(--color-inactive)" /> 1
<Icon size="16" name="heart" color="var(--color-inactive)" /> 12
<Icon size="16" name="upload" color="var(--color-inactive)" />
</actions>
</post>
<Icon name="more-horizontal" />
</tweet>
{/each}
</tweets>
</middle>
<right>
<input placeholder="Search Twitter" />
<section>
<aside id="newperson">
<h3>New to Twitter?</h3>
<p>Sign up now to get your own personalized hate stream!</p>
<button id="signup">Sign Up</button>
</aside>
<aside>
<recent-media>
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/82x82?text=Media">
</figure>
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/82x82?text=Media">
</figure>
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/82x82?text=Media">
</figure>
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/82x82?text=Media">
</figure>
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/82x82?text=Media">
</figure>
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/82x82?text=Media">
</figure>
</recent-media>
</aside>
<aside id="trending">
<h3>You Might Like</h3>
<ul>
<li>Card Person</li>
<li>Card Person</li>
<li>Card Person</li>
</ul>
<a>Show More</a>
</aside>
<aside id="trending">
<h3>What's Happening</h3>
<ul>
<li>News news news.</li>
<li>News news news.</li>
<li>News news news.</li>
<li>News news news.</li>
<li>News news news.</li>
</ul>
</aside>
</section>
</right>
</content>

@ -0,0 +1,90 @@
a {
color: var(--color);
}
content {
border: 1px solid #ddd;
display: flex;
flex-direction: column;
flex: flex-grow;
flex-basis: 100%;
grid-column: 1/3;
padding: 1rem;
padding-top: 0px;
}
header {
display: flex;
width: 100%;
flex-direction: row;
}
header nav {
flex: 1;
}
header nav input {
display: flex;
flex-grow: 2;
margin: 1rem;
}
header nav logo {
font-weight: bold;
font-size: 1rem;
color: black;
}
header nav button {
background-color: var(--color-bg);
color: var(--color);
padding: 0.5rem;
}
profile {
display: flex;
flow-direction: row;
}
profile figure {
padding-right: 3rem;
padding-left: 3rem;
}
profile info {
display: flex;
flex-direction: column;
width: 100%;
}
profile info p {
padding: 0.5rem;
}
tabs nav {
justify-content: center;
border-top: 1px black solid;
border-color: var(--color-inactive);
}
posts {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
posts figure {
}
related {
display: flex;
flex-direction: row;
justify-content: space-evenly;
margin-top: 1rem;
margin-bottom: 1rem;
}
nav a,a:visited,a:active {
text-decoration: none;
color: var(--color-text);
}

@ -0,0 +1,51 @@
<content>
<header>
<nav>
<b><a id="logo-link" href="/demos/xoracademy" use:link><Icon name="edit-3" color="var(--color-text)" /> Xor.Academy</a></b>
<input placeholder="Search">
<ul>
<li><a href="/demos/login" use:link><button>Log In</button></a></li>
<li><a>Sign Up</a></li>
</ul>
</nav>
</header>
<profile>
<figure>
<img alt="Module Thumb" src="https://via.placeholder.com/256x256?text=Module+Thumb">
</figure>
<info>
<p>
<button>Follow</button>
</p>
<p>
<b>10</b> videos <b>4,695 followers</b>
</p>
<h3>Drawing Level 1</h3>
<p>The first module you should take. It covers the basics of drawing and how to get started
making drawing a habit.
</p>
</info>
</profile>
<related>
{#each related as pin}
<figure>
<img alt="Stock photo" src="https://via.placeholder.com/82x82?text=Related">
</figure>
{/each}
</related>
<posts>
{#each posts as post}
<figure>
<a href="/demos/xoracademy/watch" use:link>
<img alt="Placeholder" src="https://via.placeholder.com/300x300?text=Video Thumb">
</a>
</figure>
{/each}
</posts>
</content>

@ -0,0 +1,159 @@
content {
border: 1px solid #ddd;
display: flex;
flex-direction: column;
flex: flex-grow;
flex-basis: 100%;
grid-column: 1/3;
--sub-color: #999;
--title-color: #000;
}
main {
display: flex;
flex-direction: column;
}
header {
display: flex;
width: 100%;
flex-direction: row;
}
header nav {
flex: 1;
margin-left: 1rem;
margin-right: 1rem;
}
header nav input {
display: flex;
flex-grow: 2;
margin: 1rem;
}
header nav logo {
font-weight: bold;
font-size: 1rem;
color: black;
}
header nav button {
background-color: var(--color-bg);
color: var(--color);
padding: 0.5rem;
}
hr {
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
figcaption {
padding: 1rem;
}
figcaption a {
color: var(--color-secondary);
font-size: 0.8em;
}
figcaption p {
font-weight: bold;
margin-top: unset;
}
figcaption video-actions {
color: var(--sub-color);
font-weight: unset;
display: flex;
flex-grow: 1;
justify-content: space-between;
}
card {
display: flex;
margin-top: 0.2rem;
margin-bottom: 0.2rem;
--img-width: 120px;
--img-height: 80px;
--font-size: 0.8em;
}
card img {
width: var(--img-width);
height: var(--img-height);
}
card info {
display: flex;
flex-direction: column;
padding: 0.2rem;
color: var(--sub-color);
font-size: var(--font-size);
}
card info h4 {
font-weight: bold;
color: var(--title-color);
margin: 0px;
}
card.small {
--img-width: 100px;
--img-height: 70px;
--font-size: 0.6em;
}
promotion {
display: flex;
flex-direction: column;
}
promotion card {
--img-width:4rem;
--img-height:4rem;
}
promotion content {
border: unset;
padding-left: 4rem;
}
comments nav {
justify-content: left;
font-weight: unset;
}
comments nav sort {
color: var(--sub-color);
}
comments card {
color: black;
--img-width:4rem;
--img-height:4rem;
--font-size: 1em;
}
comments card p {
color: black;
}
comments card reply {
color: var(--color);
}
lower {
padding: 1rem;
}
nav#vote-nav {
justify-content: flex-end;
}
nav a,a:visited,a:active {
text-decoration: none;
color: var(--color-text);
}

@ -0,0 +1,80 @@
<content>
<header>
<nav>
<b><a href="/demos/xoracademy" use:link><Icon name="edit-3" color="var(--color-text)" /> Xor.Academy</a></b>
<input placeholder="Search">
<ul>
<li><a href="/demos/login" use:link><button>Log In</button></a></li>
<li><a>Sign Up</a></li>
</ul>
</nav>
</header>
<main>
<figure>
<img src="https://via.placeholder.com/1280x720?text=Video">
<figcaption>
<a>#tag</a> <a>#anothertag</a>
<p>Title And Stuff</p>
<video-actions>
<likes>Likes Other Stats</likes>
<video-buttons>
<Icon name="thumbs-up" color="#999" /> 1.1K
<Icon name="thumbs-down" color="#999" /> 22
<Icon name="corner-up-right" color="#999" /> SHARE
<Icon name="menu" color="#999" /> SAVE
<Icon name="vertical-more" />
</video-buttons>
</video-actions>
</figcaption>
</figure>
<lower>
<promotion>
<nav>
<card>
<img src="https://via.placeholder.com/64x64?text=ME">
<info>
<h4>Zed A. Shaw</h4>
<subs>1 subscriber</subs>
</card>
<button id="subscribe">SUBSCRIBE</button>
</nav>
<content> Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae
ab illo inventore veritatis et quasi architecto beatae vitae dicta
sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit
aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos
qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui
dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed
quia non numquam eius modi tempora incidunt ut labore et dolore magnam
aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum
exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex
ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in
ea voluptate velit esse quam nihil molestiae consequatur, vel illum
qui dolorem eum fugiat quo voluptas nulla pariatur
</content>
</promotion>
<hr>
<comments>
<nav>
<span>125 Comments</span> <sort><Icon name="bar-chart" color="var(--sub-color)" /> SORT BY</sort>
</nav>
{#each cards as card}
<card>
<img src="https://via.placeholder.com/64x64?text=Person">
<info>
<h4>Guys</h4>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque</p>
<nav id="vote-nav">
<Icon name="thumbs-up" color="var(--sub-color)" /> 233
</nav>
<reply><Icon name="chevron-down" /> View replies</reply>
</info>
</card>
{/each}
</comments>
</lower>
</main>
</content>

@ -0,0 +1,155 @@
content {
border: 1px solid #ddd;
display: flex;
flex-direction: column;
flex: flex-grow;
flex-basis: 100%;
grid-column: 1/3;
padding: 1rem;
--sub-color: #999;
--title-color: #000;
}
header {
display: flex;
width: 100%;
flex-direction: row;
}
nav {
flex: 1;
}
nav input {
display: flex;
flex-grow: 2;
margin: 1rem;
}
logo {
font-weight: bold;
font-size: 1rem;
color: black;
}
button {
background-color: var(--color-bg);
color: var(--color);
padding: 0.5rem;
border-radius: 2px;
}
hr {
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
main {
display: flex;
flex-direction: row;
}
right {
margin-left: 0.5rem;
}
left {
margin-right: 0.5rem;
}
figcaption a {
color: var(--color-secondary);
font-size: 0.8em;
}
figcaption p {
font-weight: bold;
margin-top: unset;
}
figcaption video-actions {
color: var(--sub-color);
font-weight: unset;
display: flex;
flex-grow: 1;
justify-content: space-between;
}
card {
display: flex;
margin-top: 0.2rem;
margin-bottom: 0.2rem;
--img-width: 120px;
--img-height: 80px;
--font-size: 0.8em;
}
card img {
width: var(--img-width);
height: var(--img-height);
}
card info {
display: flex;
flex-direction: column;
padding: 0.2rem;
color: var(--sub-color);
font-size: var(--font-size);
}
card info h4 {
font-weight: bold;
color: var(--title-color);
margin: 0px;
}
card.small {
--img-width: 100px;
--img-height: 70px;
--font-size: 0.6em;
}
promotion {
display: flex;
flex-direction: column;
}
promotion nav button#subscribe {
background-color: red;
color: #fff;
border: unset;
}
promotion card {
--img-width:4rem;
--img-height:4rem;
}
promotion content {
border: unset;
padding-left: 4rem;
}
comments nav {
justify-content: left;
font-weight: unset;
}
comments nav sort {
color: var(--sub-color);
}
comments card {
color: black;
--img-width:4rem;
--img-height:4rem;
--font-size: 1em;
}
comments card p {
color: black;
}
comments card reply {
color: var(--color);
}

@ -0,0 +1,121 @@
<content>
<header>
<nav>
<nav-left>
<a><Icon name="menu" /> <Icon name="youtube" /> <logo>Youtube</logo></a>
</nav-left>
<input id="search" placeholder="Search" name="search">
<ul>
<li><Icon name="camera" color="#000" /></li>
<li><Icon name="more-vertical" color="#000" /></li>
<li><Icon name="grid" color="#000" /></li>
<li><button><Icon name="user" /> Sign In</button></li>
</ul>
</nav>
</header>
<main>
<left>
<figure>
<a href="/demos/google" use:link>
<img src="https://via.placeholder.com/800x450?text=Video">
</a>
<figcaption>
<a>#tag</a> <a>#anothertag</a>
<p>Title And Stuff</p>
<video-actions>
<likes>Stats Stats</likes>
<video-buttons>
<Icon name="thumbs-up" color="#999" /> 1.1K
<Icon name="thumbs-down" color="#999" /> 22
<Icon name="corner-up-right" color="#999" /> SHARE
<Icon name="menu" color="#999" /> SAVE
<Icon name="vertical-more" />
</video-buttons>
</video-actions>
</figcaption>
</figure>
<hr>
<promotion>
<nav>
<card>
<img src="https://via.placeholder.com/64x64?text=ME">
<info>
<h4>Zed A. Shaw</h4>
<subs>1 subscriber</subs>
</card>
<button id="subscribe">SUBSCRIBE</button>
</nav>
<content>Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae
ab illo inventore veritatis et quasi architecto beatae vitae dicta
sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit
aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos
qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui
dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed
quia non numquam eius modi tempora incidunt ut labore et dolore magnam
aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum
exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex
ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in
ea voluptate velit esse quam nihil molestiae consequatur, vel illum
qui dolorem eum fugiat quo voluptas nulla pariatur </content>
</promotion>
<hr>
<comments>
<nav>
<span>125 Comments</span> <sort><Icon name="bar-chart" color="var(--sub-color)" /> SORT BY</sort>
</nav>
{#each cards as card}
<card>
<img src="https://via.placeholder.com/64x64?text=Person">
<info>
<h4>Guys</h4>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque</p>
<nav>
<Icon name="thumbs-up" color="var(--sub-color)" /> 233
<Icon name="thumbs-down" color="var(--sub-color)" /> 1
</nav>
<reply><Icon name="chevron-down" /> View replies</reply>
</info>
</card>
{/each}
</comments>
</left>
<right>
{#each cards as card}
<card class="small">
<img src="https://via.placeholder.com/120x80?text=Thumb">
<info>
<h4>Video Thumb Title</h4>
<author>Zed</author>
<views>1.1M views</views>
<date>2 years ago</date>
</info>
</card>
{/each}
<figure>
<a href="/demos/google" use:link>
<img src="https://via.placeholder.com/300x150?text=Advert">
</a>
</figure>
{#each cards as card}
<card>
<img src="https://via.placeholder.com/120x80?text=Thumb">
<info>
<h4>Video Thumb Title</h4>
<author>Zed</author>
<views>1.1M views</views>
<date>2 years ago</date>
</info>
</card>
{/each}
</right>
</main>
</content>

@ -0,0 +1,221 @@
/* PrismJS 1.22.0
https://prismjs.com/download.html#themes=prism-coy&languages=markup+css+clike+javascript */
/**
* prism.js Coy theme for JavaScript, CoffeeScript, CSS and HTML
* Based on https://github.com/tshedor/workshop-wp-theme (Example: http://workshop.kansan.com/category/sessions/basics or http://workshop.timshedor.com/category/sessions/basics);
* @author Tim Shedor
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
font-size: 1em;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
/* Code blocks */
pre[class*="language-"] {
position: relative;
margin: .5em 0;
overflow: visible;
padding: 0;
}
pre[class*="language-"]>code {
position: relative;
border-left: 10px solid #358ccb;
box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf;
background-color: #fdfdfd;
background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
background-size: 3em 3em;
background-origin: content-box;
background-attachment: local;
}
code[class*="language-"] {
max-height: inherit;
height: inherit;
padding: 0 1em;
display: block;
overflow: auto;
}
/* Margin bottom to accommodate shadow */
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background-color: #fdfdfd;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
margin-bottom: 1em;
}
/* Inline code */
:not(pre) > code[class*="language-"] {
position: relative;
padding: .2em;
border-radius: 0.3em;
color: #c92c2c;
border: 1px solid rgba(0, 0, 0, 0.1);
display: inline;
white-space: normal;
}
pre[class*="language-"]:before,
pre[class*="language-"]:after {
content: '';
z-index: -2;
display: block;
position: absolute;
bottom: 0.75em;
left: 0.18em;
width: 40%;
height: 20%;
max-height: 13em;
box-shadow: 0px 13px 8px #979797;
-webkit-transform: rotate(-2deg);
-moz-transform: rotate(-2deg);
-ms-transform: rotate(-2deg);
-o-transform: rotate(-2deg);
transform: rotate(-2deg);
}
pre[class*="language-"]:after {
right: 0.75em;
left: auto;
-webkit-transform: rotate(2deg);
-moz-transform: rotate(2deg);
-ms-transform: rotate(2deg);
-o-transform: rotate(2deg);
transform: rotate(2deg);
}
.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #7D8B99;
}
.token.punctuation {
color: #5F6364;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.function-name,
.token.constant,
.token.symbol,
.token.deleted {
color: #c92c2c;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.function,
.token.builtin,
.token.inserted {
color: #2f9c0a;
}
.token.operator,
.token.entity,
.token.url,
.token.variable {
color: #a67f59;
background: rgba(255, 255, 255, 0.5);
}
.token.atrule,
.token.attr-value,
.token.keyword,
.token.class-name {
color: #1990b8;
}
.token.regex,
.token.important {
color: #e90;
}
.language-css .token.string,
.style .token.string {
color: #a67f59;
background: rgba(255, 255, 255, 0.5);
}
.token.important {
font-weight: normal;
}
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
.token.namespace {
opacity: .7;
}
@media screen and (max-width: 767px) {
pre[class*="language-"]:before,
pre[class*="language-"]:after {
bottom: 14px;
box-shadow: none;
}
}
/* Plugin styles: Line Numbers */
pre[class*="language-"].line-numbers.line-numbers {
padding-left: 0;
}
pre[class*="language-"].line-numbers.line-numbers code {
padding-left: 3.8em;
}
pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows {
left: 0;
}
/* Plugin styles: Line Highlight */
pre[class*="language-"][data-line] {
padding-top: 0;
padding-bottom: 0;
padding-left: 0;
}
pre[data-line] code {
position: relative;
padding-left: 4em;
}
pre .line-highlight {
margin-top: 0;
}

@ -1,24 +1,56 @@
<script>
import { onMount } from 'svelte';
import Prism from 'prismjs';
import 'prism-svelte';
export let source = "";
let code = "";
let css_code = "";
let html_code = "";
onMount(() => {
fetch(source)
fetch(`${source}.css`)
.then(resource => resource.text())
.then(data => code = data);
.then(data => css_code = data);
fetch(`${source}.html`)
.then(resource => resource.text())
.then(data => html_code = data)
.then(() => Prism.highlightAll());
});
</script>
<style>
code-view {
display:flex;
flex-direction: row;
justify-content: space-evenly;
}
</style>
code-view css-view {
flex: 1;
}
code-view html-view {
flex: 2;
max-width: 50%;
}
</style>
<pre>
<code>
{code}
</code>
</pre>
<code-view>
<css-view>
<h1>CSS</h1>
<pre>
<code class="language-svelte">
{css_code}
</code>
</pre>
</css-view>
<html-view>
<h1>HTML</h1>
<pre>
<code class="language-svelte">
{html_code}
</code>
</pre>
</html-view>
</code-view>

@ -102,4 +102,4 @@
</content>
<CodeView source="/code/Google.svelte" />
<CodeView source="/code/Google" />

@ -143,4 +143,4 @@
</posts>
</content>
<CodeView source="/code/Instagram.svelte" />
<CodeView source="/code/Instagram" />

@ -26,4 +26,4 @@
</content>
<CodeView source="/code/Login.svelte" />
<CodeView source="/code/Login" />

@ -181,4 +181,4 @@ pins lane {
{/if}
</content>
<CodeView source="/code/Pinterest.svelte" />
<CodeView source="/code/Pinterest" />

@ -317,4 +317,4 @@
</right>
</content>
<CodeView source="/code/Twitter.svelte" />
<CodeView source="/code/Twitter" />

@ -155,4 +155,4 @@
</posts>
</content>
<CodeView source="/code/XorAcademy.svelte" />
<CodeView source="/code/XorAcademy" />

@ -241,4 +241,4 @@
</main>
</content>
<CodeView source="/code/XorAcademyWatch.svelte" />
<CodeView source="/code/XorAcademyWatch" />

@ -279,4 +279,4 @@
</main>
</content>
<CodeView source="/code/Youtube.svelte" />
<CodeView source="/code/Youtube" />

Loading…
Cancel
Save