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