서준혁

create frontend template

1 +div.svelte-hpuxjp{text-align:left;box-sizing:border-box;display:block}body{padding:0;margin:0}html{scroll-behavior:smooth}nav.svelte-pxoyop{background-color:rgb(225, 175, 85);font-family:"Helvetica Neue", "Helvetica", "Arial", sans-serif;height:70px;top:0}.inner.svelte-pxoyop{max-width:500px;padding-left:10px;padding-right:10px;margin:auto;box-sizing:border-box;display:flex;align-items:center;height:100%}.logo.svelte-pxoyop{display:flex;position:absolute;width:50px;left:40px;top:25px
2 + }.navbar-list.svelte-pxoyop{display:flex;padding:0;width:100%;justify-content:space-between;margin:0}#backtotop.svelte-16na1oq{border-radius:100%;width:50px;height:50px;position:fixed;right:4%;bottom:10%}.article.svelte-90y9ti.svelte-90y9ti{font-family:맑은고딕, Malgun Gothic, dotum, gulim, sans-serif;font-size:24pt;padding:10vw;text-align:center;display:flex}.wbg.svelte-90y9ti.svelte-90y9ti{background-color:#ffffff}.gbg.svelte-90y9ti.svelte-90y9ti{background-color:#edeff2}.article.svelte-90y9ti img.svelte-90y9ti{display:inline-block;max-width:500px;width:20vw;margin-left:4vw;margin-right:4vw}.article.svelte-90y9ti .text.svelte-90y9ti{display:inline-block;width:50vw}.contents.svelte-90y9ti.svelte-90y9ti{display:flex;align-items:center}li.svelte-1c821dq{list-style-type:none;position:relative}li.svelte-1c821dq:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px}a.svelte-1c821dq{color:#e5e6e5;text-decoration:none;display:inline-flex;height:45px;align-items:center;padding:0 10px;font-size:20px}@media only screen and (max-width: 767px){a.svelte-1c821dq{display:none}}.onmouse.svelte-1c821dq{color:#ffffff}#chat_bg.svelte-1177unw{box-sizing:border-box;display:flex;height:100vh;background-color:#edeff2}
...\ No newline at end of file ...\ No newline at end of file
This diff is collapsed. Click to expand it.
This diff could not be displayed because it is too large.
1 +html, body {
2 + position: relative;
3 + width: 100%;
4 + height: 100%;
5 +}
6 +
7 +body {
8 + color: #333;
9 + margin: 0;
10 + padding: 8px;
11 + box-sizing: border-box;
12 + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
13 +}
14 +
15 +a {
16 + color: rgb(0,100,200);
17 + text-decoration: none;
18 +}
19 +
20 +a:hover {
21 + text-decoration: underline;
22 +}
23 +
24 +a:visited {
25 + color: rgb(0,80,160);
26 +}
27 +
28 +label {
29 + display: block;
30 +}
31 +
32 +input, button, select, textarea {
33 + font-family: inherit;
34 + font-size: inherit;
35 + -webkit-padding: 0.4em 0;
36 + padding: 0.4em;
37 + margin: 0 0 0.5em 0;
38 + box-sizing: border-box;
39 + border: 1px solid #ccc;
40 + border-radius: 2px;
41 +}
42 +
43 +input:disabled {
44 + color: #ccc;
45 +}
46 +
47 +button {
48 + color: #333;
49 + background-color: #f4f4f4;
50 + outline: none;
51 +}
52 +
53 +button:disabled {
54 + color: #999;
55 +}
56 +
57 +button:not(:disabled):active {
58 + background-color: #ddd;
59 +}
60 +
61 +button:focus {
62 + border-color: #666;
63 +}
1 +<!DOCTYPE html>
2 +<html lang="en">
3 +<head>
4 + <meta charset='utf-8'>
5 + <meta name='viewport' content='width=device-width,initial-scale=1'>
6 +
7 + <title>Svelte app</title>
8 +
9 + <link rel='icon' type='image/png' href='./favicon.png'>
10 + <link rel='stylesheet' href='./global.css'>
11 + <link rel='stylesheet' href='./build/bundle.css'>
12 +
13 + <script defer src='./build/bundle.js'></script>
14 +</head>
15 +
16 +<body>
17 +</body>
18 +</html>
1 +<script>
2 + import Menu from './Menu.svelte'
3 + import Backtotop from './Backtotop.svelte'
4 + import Map from './Map.svelte'
5 + import Article from './Articles.svelte'
6 +</script>
7 +
8 +<style>
9 + div {
10 + text-align: left;
11 + box-sizing: border-box;
12 + display: block;
13 + }
14 +
15 + :global(body) {
16 + padding: 0;
17 + margin: 0;
18 + }
19 +
20 + :global(html) {
21 + scroll-behavior: smooth;
22 + }
23 +
24 +</style>
25 +
26 +<div>
27 + <Menu/>
28 + <Map/>
29 + <Backtotop/>
30 + <Article/>
31 +</div>
...\ No newline at end of file ...\ No newline at end of file
1 +<style>
2 + .article{
3 + font-family: 맑은고딕, Malgun Gothic, dotum, gulim, sans-serif;
4 + font-size: 24pt;
5 + padding:10vw;
6 + text-align: center;
7 + display: flex;
8 + }
9 +
10 + .wbg{
11 + background-color: #ffffff;
12 + }
13 +
14 + .gbg{
15 + background-color: #edeff2;
16 + }
17 +
18 + .article img {
19 + display: inline-block;
20 + max-width: 500px;
21 + width: 20vw;
22 + margin-left: 4vw;
23 + margin-right: 4vw;
24 + }
25 +
26 + .article .text {
27 + display: inline-block;
28 + width: 50vw;
29 + }
30 +
31 + .contents{
32 + display: flex;
33 + align-items: center;
34 + }
35 +</style>
36 +<script>
37 +</script>
38 +
39 +<div class="article wbg" id="article1">
40 + <div class="contents">
41 + <img src="https://d2u3dcdbebyaiu.cloudfront.net/uploads/atch_img/574/a90016a30d614a19fe6987d94edb5e29.jpeg" alt=":)">
42 + <div class="text">
43 + ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
44 + ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
45 + </div>
46 + </div>
47 +</div>
48 +<div class="article gbg" id="article2">
49 + <div class="contents">
50 + <div class="text">
51 + ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
52 + ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
53 + </div>
54 + <img src="https://www.pinclipart.com/picdir/big/550-5506338_pepe-the-frog-transparent-png-transparent-pepe-png.png" alt=";(">
55 + </div>
56 +</div>
57 +<div class="article wbg" id="article3">
58 + <div class="contents">
59 + <img src="https://d2u3dcdbebyaiu.cloudfront.net/uploads/atch_img/574/a90016a30d614a19fe6987d94edb5e29.jpeg" alt=":)">
60 + <div class="text">
61 + ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
62 + ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
63 + </div>
64 + </div>
65 +</div>
66 +<div class="article gbg" id="article4">
67 + <div class="contents">
68 + <div class="text">
69 + ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
70 + ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
71 + </div>
72 + <img src="https://www.pinclipart.com/picdir/big/550-5506338_pepe-the-frog-transparent-png-transparent-pepe-png.png" alt=";(">
73 + </div>
74 +</div>
...\ No newline at end of file ...\ No newline at end of file
1 +<script>
2 + import { fly } from 'svelte/transition'
3 + import { onMount, onDestroy } from 'svelte';
4 + let show = false;
5 +
6 + function scrollUp() {
7 + document.body.scrollIntoView({behavior: "smooth"})
8 + }
9 +
10 + onMount(() => {
11 + window.onscroll = () => {
12 + if (window.scrollY > 60) {
13 + show = true
14 + } else {
15 + show = false
16 + }
17 + }
18 + });
19 +
20 + onDestroy(() => {
21 + window.onscroll = () => {}
22 + });
23 +</script>
24 +
25 +<style>
26 + #backtotop {
27 + border-radius: 100%;
28 + width: 50px;
29 + height: 50px;
30 + position: fixed;
31 + right: 4%;
32 + bottom: 10%;
33 + }
34 +
35 +</style>
36 +
37 +{#if (show)}
38 + <button id="backtotop"
39 + transition:fly="{{ y : 200, duration:400}}"
40 + on:click={scrollUp}>
41 +
42 + </button>
43 +{/if}
...\ No newline at end of file ...\ No newline at end of file
1 +<style>
2 + #chat_bg {
3 + box-sizing: border-box;
4 + display: flex;
5 + height: 100vh;
6 + background-color:#edeff2;
7 + }
8 +</style>
9 +
10 +<script>
11 +
12 +</script>
13 +
14 +<div id="chat_bg">
15 +
16 +</div>
1 +<script>
2 + import Menuitems from './Menuitems.svelte'
3 +
4 + // 메뉴 바 항목들
5 + const navItems = [
6 + { label: "Article1", href: "#article1" },
7 + { label: "Article2", href: "#article2" },
8 + { label: "Article3", href: "#article3" },
9 + { label: "Article4", href: "#article4" }
10 + ];
11 +</script>
12 +
13 +<style>
14 + nav {
15 + background-color: rgb(225, 175, 85);
16 + font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
17 + height: 70px;
18 + top: 0;
19 + }
20 +
21 + .inner {
22 + max-width: 500px;
23 + padding-left: 10px;
24 + padding-right: 10px;
25 + margin: auto;
26 + box-sizing: border-box;
27 + display: flex;
28 + align-items: center;
29 + height: 100%;
30 + }
31 +
32 + .logo {
33 + display: flex;
34 + position: absolute;
35 + width: 50px;
36 + left: 40px;
37 + top: 25px
38 + }
39 +
40 + .navbar-list {
41 + display: flex;
42 + padding: 0;
43 + width: 100%;
44 + justify-content: space-between;
45 + margin: 0;
46 + }
47 +</style>
48 +
49 +<nav>
50 + <div class="logo">Logo</div>
51 + <div class="inner">
52 + <ul class='navbar-list'>
53 + {#each navItems as item}
54 + <Menuitems {item}/>
55 + {/each}
56 + </ul>
57 + </div>
58 +</nav>
...\ No newline at end of file ...\ No newline at end of file
1 +<style>
2 + li {
3 + list-style-type: none;
4 + position: relative;
5 + }
6 +
7 + li:before {
8 + content: "";
9 + position: absolute;
10 + bottom: 0;
11 + left: 0;
12 + width: 100%;
13 + height: 1px;
14 + }
15 +
16 + a {
17 + color: #e5e6e5;
18 + text-decoration: none;
19 + display: inline-flex;
20 + height: 45px;
21 + align-items: center;
22 + padding: 0 10px;
23 + font-size: 20px;
24 + }
25 +
26 + @media only screen and (max-width: 767px) {
27 + a {
28 + display: none;
29 + }
30 + }
31 +
32 + .onmouse {
33 + color: #ffffff;
34 + }
35 +</style>
36 +
37 +<script>
38 + export let item;
39 + let onmouse;
40 +
41 + function enter() {
42 + onmouse = true;
43 + }
44 +
45 + function leave() {
46 + onmouse = false;
47 + }
48 +</script>
49 +
50 +<li on:mouseenter={enter} on:mouseleave={leave} >
51 + <a href={item.href} class:onmouse>{item.label}</a>
52 +</li>
...\ No newline at end of file ...\ No newline at end of file
1 +<script>
2 +
3 +</script>
4 +
5 +<span>
6 + ...
7 +</span>
...\ No newline at end of file ...\ No newline at end of file
1 +import App from './App.svelte';
2 +
3 +const app = new App({
4 + target: document.body,
5 + props: {
6 + // name: 'world'
7 + }
8 +});
9 +
10 +export default app;
...\ No newline at end of file ...\ No newline at end of file