wip
This commit is contained in:
commit
a94e750b61
|
@ -0,0 +1,34 @@
|
||||||
|
# dependencies (bun install)
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# output
|
||||||
|
out
|
||||||
|
dist
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# code coverage
|
||||||
|
coverage
|
||||||
|
*.lcov
|
||||||
|
|
||||||
|
# logs
|
||||||
|
logs
|
||||||
|
_.log
|
||||||
|
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
||||||
|
|
||||||
|
# dotenv environment variable files
|
||||||
|
.env
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
.env.local
|
||||||
|
|
||||||
|
# caches
|
||||||
|
.eslintcache
|
||||||
|
.cache
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# IntelliJ based IDEs
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Finder (MacOS) folder config
|
||||||
|
.DS_Store
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Weather
|
||||||
|
|
||||||
|
To install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
To run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun run index.js
|
||||||
|
```
|
||||||
|
|
||||||
|
### TODO
|
||||||
|
|
||||||
|
- Lots, like
|
||||||
|
- background image from city camera
|
||||||
|
- API Integration
|
||||||
|
- meta junk
|
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"workspaces": {
|
||||||
|
"": {
|
||||||
|
"name": "weather",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/bun": "latest",
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "^5",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"packages": {
|
||||||
|
"@types/bun": ["@types/bun@1.2.5", "", { "dependencies": { "bun-types": "1.2.5" } }, "sha512-w2OZTzrZTVtbnJew1pdFmgV99H0/L+Pvw+z1P67HaR18MHOzYnTYOi6qzErhK8HyT+DB782ADVPPE92Xu2/Opg=="],
|
||||||
|
|
||||||
|
"@types/node": ["@types/node@22.13.10", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw=="],
|
||||||
|
|
||||||
|
"@types/ws": ["@types/ws@8.5.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw=="],
|
||||||
|
|
||||||
|
"bun-types": ["bun-types@1.2.5", "", { "dependencies": { "@types/node": "*", "@types/ws": "~8.5.10" } }, "sha512-3oO6LVGGRRKI4kHINx5PIdIgnLRb7l/SprhzqXapmoYkFl5m4j6EvALvbDVuuBFaamB46Ap6HCUxIXNLCGy+tg=="],
|
||||||
|
|
||||||
|
"typescript": ["typescript@5.8.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ=="],
|
||||||
|
|
||||||
|
"undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="],
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"name": "weather-app",
|
||||||
|
"module": "src/index.js",
|
||||||
|
"type": "module",
|
||||||
|
"private": true,
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/bun": "latest"
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 125 KiB |
|
@ -0,0 +1,75 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Weather Forecast</title>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/n2geoff/stylelite/dist/stylelite.min.css">
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/feather-icons-css/css/feather.min.css">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
section {
|
||||||
|
background-color: #EEE;
|
||||||
|
width: 84px;
|
||||||
|
padding: .5rem;
|
||||||
|
text-align: center;
|
||||||
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
background: #DDD;
|
||||||
|
}
|
||||||
|
|
||||||
|
section:hover {
|
||||||
|
background: var(--theme);
|
||||||
|
color: #FFF;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
em {
|
||||||
|
color: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-size: 2.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script src="index.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<article style="padding: 1rem; width: 540px;">
|
||||||
|
<h1 style="border-bottom: 2px solid var(--theme);">Weather Forecast</h1>
|
||||||
|
<div class="grid">
|
||||||
|
<div style="font-size: 2.2rem; line-height: 3rem; font-weight: bold;">RICEVILLE</div>
|
||||||
|
<div style="font-size: 2.2rem;line-height: 3rem; text-align: right; color: var(--theme);font-weight: bold;">
|
||||||
|
<i class="ft-sun"></i>
|
||||||
|
72°F
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="background: var(--theme); color: #FFF; padding: .5rem;width: 100%">
|
||||||
|
Today,
|
||||||
|
March 13th
|
||||||
|
<strong>THURSDAY</strong>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<!-- sunny -->
|
||||||
|
|
||||||
|
<div class="grid" style="width: 512px">
|
||||||
|
<daily-temp></daily-temp>
|
||||||
|
<daily-temp></daily-temp>
|
||||||
|
<daily-temp></daily-temp>
|
||||||
|
<daily-temp></daily-temp>
|
||||||
|
<daily-temp></daily-temp>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center;">
|
||||||
|
<em>Five Day Forecast</em>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,41 @@
|
||||||
|
customElements.define("daily-temp", class DailyTempeture extends HTMLElement {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
|
||||||
|
// this.attachShadow({mode:"open"});
|
||||||
|
}
|
||||||
|
|
||||||
|
connectedCallback() {
|
||||||
|
|
||||||
|
const state = {
|
||||||
|
day: this.day(new Date().getDay()),
|
||||||
|
high: 72,
|
||||||
|
low: 64
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.innerHTML = this.render(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
day(idx) {
|
||||||
|
const days = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
|
||||||
|
|
||||||
|
return days[idx];
|
||||||
|
}
|
||||||
|
|
||||||
|
render(state = {}) {
|
||||||
|
return `
|
||||||
|
<section>
|
||||||
|
<strong>${state.day}</strong>
|
||||||
|
<div>
|
||||||
|
<i class="${state.icon || 'ft-sun'}" style="font-size: 2.2rem"></i>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<strong>${state.high}°</strong> / ${state.low}°
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
});
|
Loading…
Reference in New Issue