add Weather markups

This commit is contained in:
Ryan Kulp
2025-05-06 16:59:25 -04:00
parent 50f9ccac21
commit 6c748b1774
6 changed files with 282 additions and 0 deletions
+1
View File
@@ -16,6 +16,7 @@ community Recipes:
- [Lunch Money](/lib/lunch_money)
- [Stock Price](/lib/stock_price)
- [Tempest Weather Station](/lib/tempest_weather_station)
- [Weather (generic)](/lib/weather)
native plugin structure:
+22
View File
@@ -0,0 +1,22 @@
<style>
.view--full .weather-image {
width: 180px;
}
.view--full .weather-icon {
width: 50px;
}
.view--quadrant .weather-image {
width: 170px;
}
/* was 298 before forecast */
.view--half_vertical .weather-image {
width: 288px;
}
.view--half_horizontal .weather-image {
width: 170px;
}
</style>
+152
View File
@@ -0,0 +1,152 @@
<div class="view view--full">
<div class="layout layout--col gap--space-between">
<div class="grid">
<div class="row row--center col--span-3 col--end">
<img class="weather-image" src="<%= Rails.application.credentials.base_url %>/images/weather/<%= weather_image %>.svg" />
</div>
<div class="col col--span-3 col--end">
<div class="item h--full">
<div class="meta"></div>
<div class="content">
<span class="value value--xxxlarge" data-fit-value="true"><%= temperature&.round %>°</span>
<span class="label"><%= t('renders.weather.temperature') %></span>
</div>
</div>
</div>
<div class="col col--span-3 col--end gap--medium">
<div class="item">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/wi-thermometer.svg" />
</div>
<div class="content">
<span class="value value--small"><%= feels_like&.round %>°</span>
<span class="label"><%= t('renders.weather.feels_like') %></span>
</div>
</div>
<div class="item">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/wi-raindrops.svg" />
</div>
<div class="content">
<span class="value value--small"><%= humidity %>%</span>
<span class="label"><%= t('renders.weather.humidity') %></span>
</div>
</div>
<div class="item">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/<%= weather_image %>.svg" />
</div>
<div class="content">
<span class="value value--xsmall"><%= conditions %></span>
<span class="label"><%= t('renders.weather.right_now') %></span>
</div>
</div>
</div>
</div>
<div class="w-full b-h-gray-5"></div>
<div class="grid">
<div class="col gap--large">
<div class="grid">
<div class="item col--span-3">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/<%= today_weather_image %>.svg" />
</div>
<div class="content">
<span class="value value--xsmall"><%= forecast[:today][:conditions] %></span>
<span class="label"><%= forecast[:today][:day_override] || t('renders.weather.today') %></span>
</div>
</div>
<div class="item col--span-3">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/wi-hot.svg" />
</div>
<div class="content">
<span class="value value--xsmall"><%= forecast[:today][:uv_index] %></span>
<span class="label"><%= t('renders.weather.uv') %></span>
</div>
</div>
<div class="row col--span-3">
<div class="item">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/wi-thermometer.svg" />
</div>
<div class="row">
<div class="content w--20">
<span class="value value--small"><%= forecast[:today][:mintemp]&.round %>°</span>
<span class="label"><%= t('renders.weather.low') %></span>
</div>
<div class="content w--20">
<span class="value value--small"><%= forecast[:today][:maxtemp]&.round %>°</span>
<span class="label"><%= t('renders.weather.high') %></span>
</div>
</div>
</div>
</div>
</div>
<div class="grid">
<div class="item col--span-3">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/<%= tomorrow_weather_image %>.svg" />
</div>
<div class="content">
<span class="value value--xsmall"><%= forecast[:tomorrow][:conditions] %></span>
<span class="label"><%= forecast[:tomorrow][:day_override] || t('renders.weather.tomorrow') %></span>
</div>
</div>
<div class="item col--span-3">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/wi-hot.svg" />
</div>
<div class="content">
<span class="value value--xsmall"><%= forecast[:tomorrow][:uv_index] %></span>
<span class="label"><%= t('renders.weather.uv') %></span>
</div>
</div>
<div class="row col--span-3">
<div class="item">
<div class="meta"></div>
<div class="icon">
<img class="weather-icon" src="<%= Rails.application.credentials.base_url %>/images/weather/wi-thermometer.svg" />
</div>
<div class="row">
<div class="content w--20">
<span class="value value--small"><%= forecast[:tomorrow][:mintemp]&.round %>°</span>
<span class="label"><%= t('renders.weather.low') %></span>
</div>
<div class="content w--20">
<span class="value value--small"><%= forecast[:tomorrow][:maxtemp]&.round %>°</span>
<span class="label"><%= t('renders.weather.high') %></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="title_bar">
<img class="image" src="<%= Rails.application.credentials.base_url %>/images/plugins/weather--render.svg" />
<h1 class="title"><%= t('renders.weather.title') %></h1>
<span class="instance"><%= instance_name %></span>
</div>
</div>
<%= render 'plugins/weather/common' %>
@@ -0,0 +1,37 @@
<div class="view view--half_horizontal">
<div class="layout">
<div class="grid">
<div class="col col--span-1 col--center">
<div class="row row--center">
<img class="weather-image" src="<%= Rails.application.credentials.base_url %>/images/weather/<%= weather_image %>.svg" />
</div>
</div>
<div class="col col--span-2 col--center">
<div class="grid grid--cols-2">
<div class="item">
<div class="meta"></div>
<div class="content">
<span class="value value--xlarge" data-fit-value="true"><%= temperature&.round %>°</span>
<span class="label"><%= t('renders.weather.temperature') %></span>
</div>
</div>
<div class="item">
<div class="meta"></div>
<div class="content">
<span class="value value"><%= conditions %></span>
<span class="label">Conditions</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="title_bar">
<img class="image" src="<%= Rails.application.credentials.base_url %>/images/plugins/weather--render.svg" />
<h1 class="title"><%= t('renders.weather.title') %></h1>
<span class="instance"><%= instance_name %></span>
</div>
</div>
<%= render 'plugins/weather/common' %>
+34
View File
@@ -0,0 +1,34 @@
<div class="view view--half_vertical">
<div class="layout layout--col">
<img class="weather-image" src="<%= Rails.application.credentials.base_url %>/images/weather/<%= weather_image %>.svg" />
<div class="grid grid--cols-2">
<div class="item">
<div class="meta"></div>
<div class="content">
<span class="value value--large" data-fit-value="true"><%= temperature&.round %>°</span>
<span class="label"><%= conditions %></span>
<span class="label"><%= forecast[:today][:mintemp] %>° - <%= forecast[:today][:maxtemp] %>°</span>
<span class="label">UV <%= forecast[:today][:uv_index] %></span>
</div>
</div>
<div class="item">
<div class="meta"></div>
<div class="content gap">
<span class="label label--inverted"><%= forecast[:tomorrow][:day_override] || t('renders.weather.tomorrow') %></span>
<span class="label"><%= forecast[:tomorrow][:conditions] %></span>
<span class="label">[L/H] <%= forecast[:tomorrow][:mintemp] %>° - <%= forecast[:tomorrow][:maxtemp] %>°</span>
<span class="label">[UV] <%= forecast[:tomorrow][:uv_index] %></span>
</div>
</div>
</div>
</div>
<div class="title_bar">
<img class="image" src="<%= Rails.application.credentials.base_url %>/images/plugins/weather--render.svg" />
<h1 class="title"><%= t('renders.weather.title') %></h1>
<span class="instance"><%= instance_name %></span>
</div>
</div>
<%= render 'plugins/weather/common' %>
+36
View File
@@ -0,0 +1,36 @@
<div class="view view--quadrant">
<div class="layout">
<div class="grid grid--cols-2">
<div class="row row--center">
<img class="weather-image" src="<%= Rails.application.credentials.base_url %>/images/weather/<%= weather_image %>.svg" />
</div>
<div class="grid">
<div class="col gap--space-between">
<div class="item">
<div class="meta"></div>
<div class="content">
<span class="value value--large" data-fit-value="true"><%= temperature&.round %>°</span>
<span class="label"><%= conditions %></span>
</div>
</div>
<div class="item">
<div class="meta"></div>
<div class="content">
<span class="label"><%= forecast[:today][:mintemp] %>° - <%= forecast[:today][:maxtemp] %>°</span>
<span class="label">UV <%= forecast[:today][:uv_index] %></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="title_bar">
<img class="image" src="<%= Rails.application.credentials.base_url %>/images/plugins/weather--render.svg" />
<h1 class="title"><%= t('renders.weather.title') %></h1>
<span class="instance"><%= instance_name %></span>
</div>
</div>
<%= render 'plugins/weather/common' %>