Home Assistant Git Exporter
@@ -0,0 +1 @@
|
||||
var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}export{e as c,o as g};
|
||||
@@ -0,0 +1 @@
|
||||
const o=o=>void 0!==o.mozHasAudio?o.mozHasAudio:void 0===o.audioTracks||Boolean(o.audioTracks?.length);export{o as m};
|
||||
@@ -0,0 +1 @@
|
||||
import{dI as r,d8 as t,cL as n,l as a}from"./card-555679fd.js";const e=async(e,s,i,l)=>{if(!i.sign)return i.endpoint;let c;try{c=await r(s,i.endpoint,l)}catch(r){return t(r),null}return c?c.replace(/^http/i,"ws"):(n(e,a("error.failed_sign")),null)};export{e as g};
|
||||
@@ -0,0 +1 @@
|
||||
const e=1e4;export{e as C};
|
||||
@@ -0,0 +1 @@
|
||||
import{bS as e,d as n,bT as t}from"./card-555679fd.js";class r{getEngineType(){return e.Generic}async initializeCamera(e,n,t){return t}generateDefaultEventQuery(e,n,t){return null}generateDefaultRecordingQuery(e,n,t){return null}generateDefaultRecordingSegmentsQuery(e,n,t){return null}async getEvents(e,n,t,r){return null}async getRecordings(e,n,t,r){return null}async getRecordingSegments(e,n,t,r){return null}generateMediaFromEvents(e,n,t,r){return null}generateMediaFromRecordings(e,n,t,r){return null}async getMediaDownloadPath(e,n,t){return null}async favoriteMedia(e,n,t,r){}getQueryResultMaxAge(e){return null}async getMediaSeekTime(e,n,t,r,a){return null}async getMediaMetadata(e,n,t,r){return null}getCameraMetadata(e,r){return{title:r.title??n(e,r.camera_entity)??n(e,r.webrtc_card?.entity)??r.id??"",icon:r?.icon??t(e,r.camera_entity)??"mdi:video"}}getCameraCapabilities(e){return{canFavoriteEvents:!1,canFavoriteRecordings:!1,canSeek:!1,supportsClips:!1,supportsRecordings:!1,supportsSnapshots:!1,supportsTimeline:!1}}getMediaCapabilities(e){return null}getCameraEndpoints(e,n){return null}}export{r as GenericCameraManagerEngine};
|
||||
@@ -0,0 +1 @@
|
||||
import"./card-555679fd.js";
|
||||
@@ -0,0 +1,33 @@
|
||||
import{di as e,cL as t,y as i,dj as s,dk as o,dl as r,dm as a,bj as n,dn as d,bk as l,bn as h}from"./card-555679fd.js";import{m as u}from"./audio-557099cb.js";import{h as c,s as v,M as y}from"./lazyload-c2d6254a.js";
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2017 Google LLC
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/const p=({finisher:e,descriptor:t})=>(i,s)=>{var o;if(void 0===s){const s=null!==(o=i.originalKey)&&void 0!==o?o:i.key,r=null!=t?{kind:"method",placement:"prototype",key:s,descriptor:t(i.key)}:{...i,key:s};return null!=e&&(r.finisher=function(t){e(t,s)}),r}{const o=i.constructor;void 0!==t&&Object.defineProperty(i,s,t(s)),null==e||e(o,s)}}
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2017 Google LLC
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/;function m(e,t){return p({descriptor:i=>{const s={get(){var t,i;return null!==(i=null===(t=this.renderRoot)||void 0===t?void 0:t.querySelector(e))&&void 0!==i?i:null},enumerable:!0,configurable:!0};if(t){const t="symbol"==typeof i?Symbol():"__"+i;s.get=function(){var i,s;return void 0===this[t]&&(this[t]=null!==(s=null===(i=this.renderRoot)||void 0===i?void 0:i.querySelector(e))&&void 0!==s?s:null),this[t]}}return s}})}var _="img, video {\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n}";customElements.whenDefined("ha-hls-player").then((()=>{let p=class extends(customElements.get("ha-hls-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(c(this._video),this._video.currentTime=e)}async setControls(e){this._video&&v(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){if(this._error){if(this._errorIsFatal)return t(this,this._error);console.error(this._error)}return i`
|
||||
<video
|
||||
id="video"
|
||||
?autoplay=${this.autoPlay}
|
||||
.muted=${this.muted}
|
||||
?playsinline=${this.playsInline}
|
||||
?controls=${this.controls}
|
||||
@loadedmetadata=${()=>{this.controls&&c(this._video,y)}}
|
||||
@loadeddata=${e=>{s(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:u(this._video)}})}}
|
||||
@volumechange=${()=>o(this)}
|
||||
@play=${()=>r(this)}
|
||||
@pause=${()=>a(this)}
|
||||
></video>
|
||||
`}static get styles(){return[super.styles,n(_),d`
|
||||
:host {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
`]}};l([m("#video")],p.prototype,"_video",void 0),p=l([h("frigate-card-ha-hls-player")],p)}));export{_ as c,m as i};
|
||||
@@ -0,0 +1 @@
|
||||
import{bY as t,dg as o,b_ as e,dh as n}from"./card-555679fd.js";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function s(s,u){if(t(2,arguments),!u||"object"!==r(u))return new Date(NaN);var a=u.years?e(u.years):0,y=u.months?e(u.months):0,f=u.weeks?e(u.weeks):0,c=u.days?e(u.days):0,i=u.hours?e(u.hours):0,m=u.minutes?e(u.minutes):0,b=u.seconds?e(u.seconds):0,p=function(o,r){t(2,arguments);var s=e(r);return n(o,-s)}(s,y+12*a),d=function(n,r){t(2,arguments);var s=e(r);return o(n,-s)}(p,c+7*f),l=1e3*(b+60*(m+60*i));return new Date(d.getTime()-l)}export{s};
|
||||
@@ -0,0 +1,127 @@
|
||||
import{cH as e,cI as i,cJ as t,cK as a,cL as r,l as s,cM as o,s as n,cN as d,y as l,bj as h,bk as c,bl as g,cO as u,bm as m,bn as v,cP as p,bQ as f,cQ as _,cR as C,cS as b,cT as $,cU as y,cV as w,o as P}from"./card-555679fd.js";import{L as M,A as S,i as k,w as x,a as L,p as I}from"./lazyload-c2d6254a.js";import{u as z}from"./media-layout-8e0c974f.js";
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2021 Google LLC
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/const E=e(class extends i{constructor(){super(...arguments),this.key=t}render(e,i){return this.key=e,i}update(e,[i,t]){return i!==this.key&&(a(e),this.key=i),t}});const R="frigate-card-live-provider",O=(e,i,t)=>{if(!t?.camera_entity)return r(e,s("error.no_live_camera"),{context:t}),null;const a=i.states[t.camera_entity];return a?"unavailable"===a.state?(o(e,s("error.live_camera_unavailable"),"info",{icon:"mdi:connection",context:t}),null):a:(r(e,s("error.live_camera_not_found"),{context:t}),null)};let V=class extends n{constructor(){super(),this._inBackground=!1,this._lastMediaLoadedInfo=null,this._messageReceivedPostRender=!1,this._renderKey=0,this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}_intersectionHandler(e){this._inBackground=!e.some((e=>e.isIntersecting)),this._inBackground||this._messageReceivedPostRender||!this._lastMediaLoadedInfo||d(this._lastMediaLoadedInfo.source,this._lastMediaLoadedInfo.mediaLoadedInfo),this._messageReceivedPostRender&&!this._inBackground&&this.requestUpdate()}shouldUpdate(e){return!this._inBackground||!this._messageReceivedPostRender}connectedCallback(){this._intersectionObserver.observe(this),super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._intersectionObserver.disconnect()}render(){if(!(this.hass&&this.liveConfig&&this.cameraManager&&this.view))return;const e=l`${E(this._renderKey,l`
|
||||
<frigate-card-live-carousel
|
||||
.hass=${this.hass}
|
||||
.view=${this.view}
|
||||
.liveConfig=${this.liveConfig}
|
||||
.inBackground=${this._inBackground}
|
||||
.conditionControllerEpoch=${this.conditionControllerEpoch}
|
||||
.liveOverrides=${this.liveOverrides}
|
||||
.cardWideConfig=${this.cardWideConfig}
|
||||
.cameraManager=${this.cameraManager}
|
||||
.microphoneStream=${this.microphoneStream}
|
||||
@frigate-card:message=${e=>{this._renderKey++,this._messageReceivedPostRender=!0,this._inBackground&&e.stopPropagation()}}
|
||||
@frigate-card:media:loaded=${e=>{this._lastMediaLoadedInfo={source:e.composedPath()[0],mediaLoadedInfo:e.detail},this._inBackground&&e.stopPropagation()}}
|
||||
@frigate-card:view:change=${e=>{this._inBackground&&e.stopPropagation()}}
|
||||
>
|
||||
</frigate-card-live-carousel>
|
||||
`)}`;return this._messageReceivedPostRender=!1,e}static get styles(){return h(":host {\n width: 100%;\n height: 100%;\n display: block;\n}")}};c([g({attribute:!1})],V.prototype,"conditionControllerEpoch",void 0),c([g({attribute:!1})],V.prototype,"hass",void 0),c([g({attribute:!1})],V.prototype,"view",void 0),c([g({attribute:!1})],V.prototype,"liveConfig",void 0),c([g({attribute:!1,hasChanged:u})],V.prototype,"liveOverrides",void 0),c([g({attribute:!1})],V.prototype,"cameraManager",void 0),c([g({attribute:!1})],V.prototype,"cardWideConfig",void 0),c([g({attribute:!1})],V.prototype,"microphoneStream",void 0),c([m()],V.prototype,"_inBackground",void 0),V=c([v("frigate-card-live")],V);let j=class extends n{constructor(){super(...arguments),this._cameraToSlide={},this._refMediaCarousel=p()}updated(e){super.updated(e),e.has("inBackground")&&this.updateComplete.then((async()=>{const e=this._refMediaCarousel.value;e&&(await e.updateComplete,this.inBackground?(e.autoPause(),e.autoMute()):(e.autoPlay(),e.autoUnmute()))}))}_getTransitionEffect(){return this.liveConfig?.transition_effect??f.live.transition_effect}_getSelectedCameraIndex(){const e=this.cameraManager?.getStore().getVisibleCameraIDs();return e&&this.view?Math.max(0,Array.from(e).indexOf(this.view.camera)):0}_getOptions(){return{draggable:this.liveConfig?.draggable,loop:!0}}_getPlugins(){const e=this.cameraManager?.getStore().getVisibleCameraIDs();return[...e&&e.size>1?[_({forceWheelAxis:"y"})]:[],M({...this.liveConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadOrUnloadSlide("load",e,i)},lazyUnloadCondition:this.liveConfig?.lazy_unload,lazyUnloadCallback:(e,i)=>this._lazyloadOrUnloadSlide("unload",e,i)}),S({playerSelector:R,...this.liveConfig?.auto_play&&{autoPlayCondition:this.liveConfig.auto_play},...this.liveConfig?.auto_pause&&{autoPauseCondition:this.liveConfig.auto_pause},...this.liveConfig?.auto_mute&&{autoMuteCondition:this.liveConfig.auto_mute},...this.liveConfig?.auto_unmute&&{autoUnmuteCondition:this.liveConfig.auto_unmute}})]}_getLazyLoadCount(){return!1===this.liveConfig?.lazy_load?null:0}_getSlides(){const e=this.cameraManager?.getStore().getVisibleCameras();if(!e)return[[],{}];const i=[],t={};for(const[a,r]of e){const e=this.view?.context?.live?.overrides?.get(a)??a,s=a===e?r:this.cameraManager?.getStore().getCameraConfig(e),o=s?this._renderLive(e,s,i.length):null;o&&(t[a]=i.length,i.push(o))}return[i,t]}_setViewHandler(e){const i=this.cameraManager?.getStore().getVisibleCameras();i&&e.detail.index!==this._getSelectedCameraIndex()&&this._setViewCameraID(Array.from(i.keys())[e.detail.index])}_setViewCameraID(e){e&&this.view?.evolve({camera:e,query:null,queryResults:null}).mergeInContext({thumbnails:{fetch:!1}}).dispatchChangeEvent(this)}_lazyloadOrUnloadSlide(e,i,t){t instanceof HTMLSlotElement&&(t=t.assignedElements({flatten:!0})[0]);const a=t?.querySelector(R);a&&(a.disabled="load"!==e)}_renderLive(e,i,t){if(!(this.liveConfig&&this.hass&&this.cameraManager&&this.conditionControllerEpoch))return;const a=C(this.conditionControllerEpoch.controller,this.liveConfig,this.liveOverrides,{camera:e}),r=this.cameraManager.getCameraMetadata(this.hass,e);return l`
|
||||
<div class="embla__slide">
|
||||
<frigate-card-live-provider
|
||||
?disabled=${this.liveConfig.lazy_load}
|
||||
.microphoneStream=${this.view?.camera===e?this.microphoneStream:void 0}
|
||||
.cameraConfig=${i}
|
||||
.cameraEndpoints=${k([this.cameraManager,e],(()=>this.cameraManager?.getCameraEndpoints(e)??void 0))}
|
||||
.label=${r?.title??""}
|
||||
.liveConfig=${a}
|
||||
.hass=${this.hass}
|
||||
.cardWideConfig=${this.cardWideConfig}
|
||||
@frigate-card:media:loaded=${e=>{x(t,e)}}
|
||||
@frigate-card:media:unloaded=${e=>{L(t,e)}}
|
||||
>
|
||||
</frigate-card-live-provider>
|
||||
</div>
|
||||
`}_getCameraIDsOfNeighbors(){const e=this.cameraManager?.getStore().getVisibleCameras();if(!e||!this.view||!this.hass)return[null,null];const i=Array.from(e.keys()),t=i.indexOf(this.view.camera);return t<0||e.size<=1?[null,null]:[i[t>0?t-1:e.size-1],i[t+1<e.size?t+1:0]]}render(){if(!(this.liveConfig&&this.view&&this.hass&&this.cameraManager))return;const[e,i]=this._getSlides();if(this._cameraToSlide=i,!e.length)return;const[t,a]=this._getCameraIDsOfNeighbors(),r=e=>this.view?.context?.live?.overrides?.get(e)??e,o=t?this.cameraManager.getCameraMetadata(this.hass,r(t)):null,n=this.cameraManager.getCameraMetadata(this.hass,r(this.view.camera)),d=a?this.cameraManager.getCameraMetadata(this.hass,r(a)):null;return l`
|
||||
<frigate-card-media-carousel
|
||||
${b(this._refMediaCarousel)}
|
||||
.carouselOptions=${k([this.cameraManager,this.liveConfig],this._getOptions.bind(this))}
|
||||
.carouselPlugins=${k([this.cameraManager,this.liveConfig],this._getPlugins.bind(this))}
|
||||
.label="${n?`${s("common.live")}: ${n.title}`:""}"
|
||||
.logo="${n?.engineLogo}"
|
||||
.titlePopupConfig=${this.liveConfig.controls.title}
|
||||
.selected=${this._getSelectedCameraIndex()}
|
||||
transitionEffect=${this._getTransitionEffect()}
|
||||
@frigate-card:media-carousel:select=${this._setViewHandler.bind(this)}
|
||||
@frigate-card:carousel:settle=${()=>{$(this,{thumbnails:{fetch:!0}})}}
|
||||
>
|
||||
<frigate-card-next-previous-control
|
||||
slot="previous"
|
||||
.hass=${this.hass}
|
||||
.direction=${"previous"}
|
||||
.controlConfig=${this.liveConfig.controls.next_previous}
|
||||
.label=${o?.title??""}
|
||||
.icon=${o?.icon}
|
||||
?disabled=${null===t}
|
||||
@click=${e=>{this._setViewCameraID(t),y(e)}}
|
||||
>
|
||||
</frigate-card-next-previous-control>
|
||||
${e}
|
||||
<frigate-card-next-previous-control
|
||||
slot="next"
|
||||
.hass=${this.hass}
|
||||
.direction=${"next"}
|
||||
.controlConfig=${this.liveConfig.controls.next_previous}
|
||||
.label=${d?.title??""}
|
||||
.icon=${d?.icon}
|
||||
?disabled=${null===a}
|
||||
@click=${e=>{this._setViewCameraID(a),y(e)}}
|
||||
>
|
||||
</frigate-card-next-previous-control>
|
||||
</frigate-card-media-carousel>
|
||||
`}static get styles(){return h(".embla__slide {\n height: 100%;\n flex: 0 0 100%;\n}")}};c([g({attribute:!1})],j.prototype,"hass",void 0),c([g({attribute:!1})],j.prototype,"view",void 0),c([g({attribute:!1})],j.prototype,"liveConfig",void 0),c([g({attribute:!1,hasChanged:u})],j.prototype,"liveOverrides",void 0),c([g({attribute:!1})],j.prototype,"inBackground",void 0),c([g({attribute:!1})],j.prototype,"conditionControllerEpoch",void 0),c([g({attribute:!1})],j.prototype,"cardWideConfig",void 0),c([g({attribute:!1})],j.prototype,"cameraManager",void 0),c([g({attribute:!1})],j.prototype,"microphoneStream",void 0),j=c([v("frigate-card-live-carousel")],j);let B=class extends n{constructor(){super(...arguments),this.disabled=!1,this.label="",this._isVideoMediaLoaded=!1,this._refProvider=p(),this._importPromises=[]}async play(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await I(this,this._refProvider.value)}async pause(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.pause())}async mute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.mute())}async unmute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.unmute())}isMuted(){return this._refProvider.value?.isMuted()??!0}async seek(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.seek(e))}async setControls(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.setControls(e))}isPaused(){return this._refProvider.value?.isPaused()??!0}async getScreenshotURL(){return await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.getScreenshotURL())??null}_getResolvedProvider(){return"auto"===this.cameraConfig?.live_provider?this.cameraConfig?.webrtc_card?.entity||this.cameraConfig?.webrtc_card?.url?"webrtc-card":this.cameraConfig?.camera_entity?"low"===this.cardWideConfig?.performance?.profile?"image":"ha":this.cameraConfig?.frigate.camera_name?"jsmpeg":f.cameras.live_provider:this.cameraConfig?.live_provider||"image"}_shouldShowImageDuringLoading(){return!!this.cameraConfig?.camera_entity&&!!this.hass&&!!this.liveConfig?.show_image_during_load}disconnectedCallback(){this._isVideoMediaLoaded=!1}_videoMediaShowHandler(){this._isVideoMediaLoaded=!0}willUpdate(e){if(e.has("disabled")&&this.disabled&&(this._isVideoMediaLoaded=!1,w(this)),e.has("liveConfig")&&(z(this,this.liveConfig?.layout),this.liveConfig?.show_image_during_load&&this._importPromises.push(import("./live-image-c8850fc4.js")),this.liveConfig?.zoomable&&this._importPromises.push(import("./zoomer-1857311a.js"))),e.has("cameraConfig")){const e=this._getResolvedProvider();"jsmpeg"===e?this._importPromises.push(import("./live-jsmpeg-9c767737.js")):"ha"===e?this._importPromises.push(import("./live-ha-df63bfc8.js")):"webrtc-card"===e?this._importPromises.push(import("./live-webrtc-card-dfc8f852.js")):"image"===e?this._importPromises.push(import("./live-image-c8850fc4.js")):"go2rtc"===e&&this._importPromises.push(import("./live-go2rtc-0795a62f.js"))}}async getUpdateComplete(){const e=await super.getUpdateComplete();return await Promise.all(this._importPromises),this._importPromises=[],e}_useZoomIfRequired(e){return this.liveConfig?.zoomable?l` <frigate-card-zoomer
|
||||
@frigate-card:zoom:zoomed=${()=>this.setControls(!1)}
|
||||
@frigate-card:zoom:unzoomed=${()=>this.setControls()}
|
||||
>
|
||||
${e}
|
||||
</frigate-card-zoomer>`:e}render(){if(this.disabled||!this.hass||!this.liveConfig||!this.cameraConfig)return;this.title=this.label,this.ariaLabel=this.label;const e=this._getResolvedProvider(),i=!this._isVideoMediaLoaded&&this._shouldShowImageDuringLoading(),t={hidden:i};return this._useZoomIfRequired(l`
|
||||
${i||"image"===e?l` <frigate-card-live-image
|
||||
${b(this._refProvider)}
|
||||
.hass=${this.hass}
|
||||
.cameraConfig=${this.cameraConfig}
|
||||
@frigate-card:media:loaded=${i=>{"image"===e?this._videoMediaShowHandler():i.stopPropagation()}}
|
||||
>
|
||||
</frigate-card-live-image>`:l``}
|
||||
${"ha"===e?l` <frigate-card-live-ha
|
||||
${b(this._refProvider)}
|
||||
class=${P(t)}
|
||||
.hass=${this.hass}
|
||||
.cameraConfig=${this.cameraConfig}
|
||||
?controls=${this.liveConfig.controls.builtin}
|
||||
@frigate-card:media:loaded=${this._videoMediaShowHandler.bind(this)}
|
||||
>
|
||||
</frigate-card-live-ha>`:"go2rtc"===e?l`<frigate-card-live-go2rtc
|
||||
${b(this._refProvider)}
|
||||
class=${P(t)}
|
||||
.hass=${this.hass}
|
||||
.cameraConfig=${this.cameraConfig}
|
||||
.cameraEndpoints=${this.cameraEndpoints}
|
||||
.microphoneStream=${this.microphoneStream}
|
||||
.microphoneConfig=${this.liveConfig.microphone}
|
||||
?controls=${this.liveConfig.controls.builtin}
|
||||
@frigate-card:media:loaded=${this._videoMediaShowHandler.bind(this)}
|
||||
>
|
||||
</frigate-card-live-webrtc-card>`:"webrtc-card"===e?l`<frigate-card-live-webrtc-card
|
||||
${b(this._refProvider)}
|
||||
class=${P(t)}
|
||||
.hass=${this.hass}
|
||||
.cameraConfig=${this.cameraConfig}
|
||||
.cameraEndpoints=${this.cameraEndpoints}
|
||||
.cardWideConfig=${this.cardWideConfig}
|
||||
?controls=${this.liveConfig.controls.builtin}
|
||||
@frigate-card:media:loaded=${this._videoMediaShowHandler.bind(this)}
|
||||
>
|
||||
</frigate-card-live-webrtc-card>`:"jsmpeg"===e?l` <frigate-card-live-jsmpeg
|
||||
${b(this._refProvider)}
|
||||
class=${P(t)}
|
||||
.hass=${this.hass}
|
||||
.cameraConfig=${this.cameraConfig}
|
||||
.cameraEndpoints=${this.cameraEndpoints}
|
||||
.cardWideConfig=${this.cardWideConfig}
|
||||
@frigate-card:media:loaded=${this._videoMediaShowHandler.bind(this)}
|
||||
>
|
||||
</frigate-card-live-jsmpeg>`:l``}
|
||||
`)}static get styles(){return h(":host {\n display: block;\n height: 100%;\n width: 100;\n}\n\n.hidden {\n display: none;\n}")}};c([g({attribute:!1})],B.prototype,"hass",void 0),c([g({attribute:!1})],B.prototype,"cameraConfig",void 0),c([g({attribute:!1})],B.prototype,"cameraEndpoints",void 0),c([g({attribute:!1})],B.prototype,"liveConfig",void 0),c([g({attribute:!0,type:Boolean})],B.prototype,"disabled",void 0),c([g({attribute:!1})],B.prototype,"label",void 0),c([g({attribute:!1})],B.prototype,"cardWideConfig",void 0),c([g({attribute:!1})],B.prototype,"microphoneStream",void 0),c([m()],B.prototype,"_isVideoMediaLoaded",void 0),B=c([v(R)],B);export{V as FrigateCardLive,j as FrigateCardLiveCarousel,B as FrigateCardLiveProvider,O as getStateObjOrDispatchError};
|
||||
@@ -0,0 +1,61 @@
|
||||
import{di as e,cL as t,y as s,dj as a,dk as r,dl as i,dm as h,bj as o,dn as l,bk as n,bn as d,s as u,cP as c,cS as y,bl as p}from"./card-555679fd.js";import{getStateObjOrDispatchError as m}from"./live-e0c9196c.js";import{c as _,i as v}from"./ha-hls-player-aef987da.js";import{m as f}from"./audio-557099cb.js";import{s as $,h as g,M as b}from"./lazyload-c2d6254a.js";import"./media-layout-8e0c974f.js";customElements.whenDefined("ha-web-rtc-player").then((()=>{let u=class extends(customElements.get("ha-web-rtc-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(this._video.currentTime=e)}async setControls(e){this._video&&$(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){return this._error?t(this,`${this._error} (${this.entityid})`):s`
|
||||
<video
|
||||
id="remote-stream"
|
||||
?autoplay=${this.autoPlay}
|
||||
.muted=${this.muted}
|
||||
?playsinline=${this.playsInline}
|
||||
?controls=${this.controls}
|
||||
@loadedmetadata=${()=>{this.controls&&g(this._video,b)}}
|
||||
@loadeddata=${e=>{a(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:f(this._video)}})}}
|
||||
@volumechange=${()=>r(this)}
|
||||
@play=${()=>i(this)}
|
||||
@pause=${()=>h(this)}
|
||||
></video>
|
||||
`}static get styles(){return[super.styles,o(_),l`
|
||||
:host {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
`]}};n([v("#remote-stream")],u.prototype,"_video",void 0),u=n([d("frigate-card-ha-web-rtc-player")],u)})),customElements.whenDefined("ha-camera-stream").then((()=>{let e=class extends(customElements.get("ha-camera-stream")){async play(){return this._player?.play()}async pause(){this._player?.pause()}async mute(){this._player?.mute()}async unmute(){this._player?.unmute()}isMuted(){return this._player?.isMuted()??!0}async seek(e){this._player?.seek(e)}async setControls(e){this._player&&this._player.setControls(e??this.controls)}isPaused(){return this._player?.isPaused()??!0}async getScreenshotURL(){return this._player?await this._player.getScreenshotURL():null}render(){return this.stateObj?this._shouldRenderMJPEG?s`
|
||||
<img
|
||||
@load=${e=>{a(this,e,{player:this})}}
|
||||
.src=${void 0===this._connected||this._connected?(e=this.stateObj,`/api/camera_proxy_stream/${e.entity_id}?token=${e.attributes.access_token}`):""}
|
||||
/>
|
||||
`:"hls"===this.stateObj.attributes.frontend_stream_type?this._url?s` <frigate-card-ha-hls-player
|
||||
id="player"
|
||||
?autoplay=${!1}
|
||||
playsinline
|
||||
.allowExoPlayer=${this.allowExoPlayer}
|
||||
.muted=${this.muted}
|
||||
.controls=${this.controls}
|
||||
.hass=${this.hass}
|
||||
.url=${this._url}
|
||||
></frigate-card-ha-hls-player>`:s``:"web_rtc"===this.stateObj.attributes.frontend_stream_type?s`<frigate-card-ha-web-rtc-player
|
||||
id="player"
|
||||
?autoplay=${!1}
|
||||
playsinline
|
||||
.muted=${this.muted}
|
||||
.controls=${this.controls}
|
||||
.hass=${this.hass}
|
||||
.entityid=${this.stateObj.entity_id}
|
||||
></frigate-card-ha-web-rtc-player>`:void 0:s``;var e}static get styles(){return[super.styles,o(_),l`
|
||||
:host {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
`]}};n([v("#player")],e.prototype,"_player",void 0),e=n([d("frigate-card-ha-camera-stream")],e)}));let w=class extends u{constructor(){super(...arguments),this.controls=!0,this._playerRef=c()}async play(){return this._playerRef.value?.play()}async pause(){this._playerRef.value?.pause()}async mute(){this._playerRef.value?.mute()}async unmute(){this._playerRef.value?.unmute()}isMuted(){return this._playerRef.value?.isMuted()??!0}async seek(e){this._playerRef.value?.seek(e)}async setControls(e){this._playerRef.value?.setControls(e??this.controls)}isPaused(){return this._playerRef.value?.isPaused()??!0}async getScreenshotURL(){return await(this._playerRef.value?.getScreenshotURL())??null}render(){if(!this.hass)return;const e=m(this,this.hass,this.cameraConfig);return e?s` <frigate-card-ha-camera-stream
|
||||
${y(this._playerRef)}
|
||||
.hass=${this.hass}
|
||||
.stateObj=${e}
|
||||
.controls=${this.controls}
|
||||
.muted=${!0}
|
||||
>
|
||||
</frigate-card-ha-camera-stream>`:void 0}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: block;\n --video-max-height: none;\n}")}};n([p({attribute:!1})],w.prototype,"hass",void 0),n([p({attribute:!1})],w.prototype,"cameraConfig",void 0),n([p({attribute:!0,type:Boolean})],w.prototype,"controls",void 0),w=n([d("frigate-card-live-ha")],w);export{w as FrigateCardLiveHA};
|
||||
@@ -0,0 +1,7 @@
|
||||
import{s as e,cP as a,y as s,cS as t,bj as i,bk as r,bl as m,bn as o}from"./card-555679fd.js";import"./image-0b99ab11.js";import{getStateObjOrDispatchError as n}from"./live-e0c9196c.js";import"./media-layout-8e0c974f.js";import"./lazyload-c2d6254a.js";let u=class extends e{constructor(){super(...arguments),this._refImage=a()}async play(){await(this._refImage.value?.play())}async pause(){await(this._refImage.value?.pause())}async mute(){await(this._refImage.value?.mute())}async unmute(){await(this._refImage.value?.unmute())}isMuted(){return!!this._refImage.value?.isMuted()}async seek(e){await(this._refImage.value?.seek(e))}async setControls(e){await(this._refImage.value?.setControls(e))}isPaused(){return this._refImage.value?.isPaused()??!0}async getScreenshotURL(){return await(this._refImage.value?.getScreenshotURL())??null}render(){if(this.hass&&this.cameraConfig)return n(this,this.hass,this.cameraConfig),s` <frigate-card-image
|
||||
${t(this._refImage)}
|
||||
.imageConfig=${{mode:this.cameraConfig.image.url?"url":"camera",refresh_seconds:this.cameraConfig.image.refresh_seconds,url:this.cameraConfig.image.url,zoomable:!1}}
|
||||
.hass=${this.hass}
|
||||
.cameraConfig=${this.cameraConfig}
|
||||
>
|
||||
</frigate-card-image>`}static get styles(){return i(":host {\n width: 100%;\n height: 100%;\n display: block;\n}")}};r([m({attribute:!1})],u.prototype,"hass",void 0),r([m({attribute:!1})],u.prototype,"cameraConfig",void 0),u=r([o("frigate-card-live-image")],u);export{u as FrigateCardLiveImage};
|
||||
@@ -0,0 +1 @@
|
||||
import{s as t,dJ as e,di as a,cZ as r,dj as s,dl as n,dm as o,dk as i,bj as c,bk as d,bl as l,bn as u,db as h,l as p,cL as b,bX as y,y as g}from"./card-555679fd.js";import{m}from"./audio-557099cb.js";import{s as w,h as _,M as f}from"./lazyload-c2d6254a.js";let C=class extends t{constructor(){super(...arguments),this.controls=!1,this._webrtcTask=new e(this,this._getWebRTCCardElement,(()=>[1]))}async play(){return this._getPlayer()?.play()}async pause(){this._getPlayer()?.pause()}async mute(){const t=this._getPlayer();t&&(t.muted=!0)}async unmute(){const t=this._getPlayer();t&&(t.muted=!1)}isMuted(){return this._getPlayer()?.muted??!0}async seek(t){const e=this._getPlayer();e&&(e.currentTime=t)}async setControls(t){const e=this._getPlayer();e&&w(e,t??this.controls)}isPaused(){return this._getPlayer()?.paused??!0}async getScreenshotURL(){const t=this._getPlayer();return t?a(t):null}connectedCallback(){super.connectedCallback(),this.requestUpdate()}_getPlayer(){const t=this.renderRoot?.querySelector("#webrtc");return t?.video??null}async _getWebRTCCardElement(){return await customElements.whenDefined("webrtc-camera"),customElements.get("webrtc-camera")}_createWebRTC(){const t=this._webrtcTask.value;if(t&&this.hass&&this.cameraConfig){const e=new t,a={...this.cameraConfig.webrtc_card};return a.url||a.entity||!this.cameraEndpoints?.webrtcCard||(a.url=this.cameraEndpoints.webrtcCard.endpoint),e.setConfig(a),e.hass=this.hass,e}return null}render(){return r(this,this._webrtcTask,(()=>{let t;try{t=this._createWebRTC()}catch(t){return b(this,t instanceof y?t.message:p("error.webrtc_card_reported_error")+": "+t.message,{context:t.context})}return t&&(t.id="webrtc"),g`${t}`}),{inProgressFunc:()=>h({message:p("error.webrtc_card_waiting"),cardWideConfig:this.cardWideConfig})})}updated(){this.updateComplete.then((()=>{const t=this._getPlayer();t&&(w(t,this.controls),t.onloadeddata=()=>{this.controls&&_(t,f),s(this,t,{player:this,capabilities:{supportsPause:!0,hasAudio:m(t)}})},t.onplay=()=>n(this),t.onpause=()=>o(this),t.onvolumechange=()=>i(this))}))}static get styles(){return c(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n/* Don't drop shadow or have radius for nested webrtc card */\n#webrtc ha-card {\n border-radius: 0px;\n margin: 0px;\n box-shadow: none;\n}\n\nha-card,\ndiv.fix-safari,\n#video {\n background: unset;\n background-color: unset;\n}\n\n#webrtc #video {\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n}")}};d([l({attribute:!1})],C.prototype,"cameraConfig",void 0),d([l({attribute:!1})],C.prototype,"cameraEndpoints",void 0),d([l({attribute:!1})],C.prototype,"cardWideConfig",void 0),d([l({attribute:!0,type:Boolean})],C.prototype,"controls",void 0),C=d([u("frigate-card-live-webrtc-card")],C);export{C as FrigateCardLiveWebRTCCard};
|
||||
@@ -0,0 +1 @@
|
||||
var e;!function(e){e.MP4="mp4",e.HLS="hls"}(e||(e={}));class t{constructor(e,t){this._mediaType=e,this._cameraID=t}getContentType(){return"snapshot"===this._mediaType?"image":"video"}getCameraID(){return this._cameraID}getMediaType(){return this._mediaType}getVideoContentType(){return null}getID(){return null}getStartTime(){return null}getEndTime(){return null}getUsableEndTime(){return this.getEndTime()??(this.inProgress()?new Date:this.getStartTime())}inProgress(){return null}getContentID(){return null}getTitle(){return null}getThumbnail(){return null}isFavorite(){return null}includesTime(e){const t=this.getStartTime(),r=this.getUsableEndTime();return!!t&&!!r&&e>=t&&e<=r}setFavorite(e){}getWhere(){return null}}export{t as V,e as a};
|
||||
@@ -0,0 +1 @@
|
||||
const t=(t,o)=>{void 0!==o?.fit?t.style.setProperty("--frigate-card-media-layout-fit",o.fit):t.style.removeProperty("--frigate-card-media-layout-fit");for(const e of["x","y"])void 0!==o?.position?.[e]?t.style.setProperty(`--frigate-card-media-layout-position-${e}`,`${o.position[e]}%`):t.style.removeProperty(`--frigate-card-media-layout-position-${e}`)};export{t as u};
|
||||
@@ -0,0 +1 @@
|
||||
import{c1 as o}from"./card-555679fd.js";function t(t,n){return n="function"==typeof n?n:void 0,t&&t.length?o(t,void 0,n):[]}export{t as u};
|
||||
@@ -0,0 +1,104 @@
|
||||
import{s as e,d9 as i,da as t,db as a,y as s,bj as r,bk as o,bl as d,bn as l,cP as n,bQ as h,cQ as u,cM as v,l as c,cS as g,cU as f,cO as p,di as m,c5 as w,d7 as y,d8 as C,de as _,ck as b,cl as $,dj as M,dk as P,dl as R,dm as x}from"./card-555679fd.js";import{L as q,A as V,i as S,w as I,p as T,h as F,s as k,M as z}from"./lazyload-c2d6254a.js";import"./ha-hls-player-aef987da.js";import{m as W}from"./audio-557099cb.js";import{u as j}from"./media-layout-8e0c974f.js";import{a as E}from"./media-b0eb3f2a.js";let D=class extends e{render(){if(this.hass&&this.view&&this.viewerConfig&&this.cameraManager&&this.cardWideConfig){if(!this.view.queryResults?.hasResults()){const e=this.view.getDefaultMediaType();if(!e)return;return"recordings"===e?i(this,this.hass,this.cameraManager,this.cardWideConfig,this.view,{targetView:"recording",select:"latest"}):t(this,this.hass,this.cameraManager,this.cardWideConfig,this.view,{targetView:"media",mediaType:e,select:"latest"}),a({cardWideConfig:this.cardWideConfig})}return s`
|
||||
<frigate-card-viewer-carousel
|
||||
.hass=${this.hass}
|
||||
.view=${this.view}
|
||||
.viewerConfig=${this.viewerConfig}
|
||||
.resolvedMediaCache=${this.resolvedMediaCache}
|
||||
.cameraManager=${this.cameraManager}
|
||||
.cardWideConfig=${this.cardWideConfig}
|
||||
>
|
||||
</frigate-card-viewer-carousel>
|
||||
`}}static get styles(){return r(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 5px;\n}\n\nfrigate-card-viewer-carousel {\n flex: 1;\n min-height: 0;\n}")}};o([d({attribute:!1})],D.prototype,"hass",void 0),o([d({attribute:!1})],D.prototype,"view",void 0),o([d({attribute:!1})],D.prototype,"viewerConfig",void 0),o([d({attribute:!1})],D.prototype,"resolvedMediaCache",void 0),o([d({attribute:!1})],D.prototype,"cameraManager",void 0),o([d({attribute:!1})],D.prototype,"cardWideConfig",void 0),D=o([l("frigate-card-viewer")],D);const H="frigate-card-viewer-provider";let L=class extends e{constructor(){super(...arguments),this._refMediaCarousel=n()}updated(e){if(super.updated(e),e.has("view")){const i=e.get("view");this.view?.context?.mediaViewer!==i?.context?.mediaViewer&&this._seekHandler()}}_getTransitionEffect(){return this.viewerConfig?.transition_effect??h.media_viewer.transition_effect}_getPlayer(e){return e||(e=this._refMediaCarousel.value?.frigateCardCarousel()?.getCarouselSelected()?.element),e?.querySelector(H)??null}_getPlugins(){return[...this.view?.queryResults?.getResultsCount()?[u({forceWheelAxis:"y"})]:[],q({...this.viewerConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadSlide(i)}}),V({playerSelector:H,...this.viewerConfig?.auto_play&&{autoPlayCondition:this.viewerConfig.auto_play},...this.viewerConfig?.auto_pause&&{autoPauseCondition:this.viewerConfig.auto_pause},...this.viewerConfig?.auto_mute&&{autoMuteCondition:this.viewerConfig.auto_mute},...this.viewerConfig?.auto_unmute&&{autoUnmuteCondition:this.viewerConfig.auto_unmute}})]}_getMediaNeighbors(){const e=this.view?.queryResults?.getSelectedIndex()??null,i=this.view?.queryResults?.getResultsCount()??0;if(!this.view||!this.view.queryResults||null===e)return[null,null];return[e>0?this.view.queryResults.getResult(e-1):null,e+1<i?this.view.queryResults.getResult(e+1):null]}_setViewHandler(e){this._setViewSelectedIndex(e.detail.index)}_setViewSelectedIndex(e){if(!this.view?.queryResults)return;const i=this.view.queryResults.getSelectedIndex();if(null===i||i===e)return;const t=this.view?.queryResults?.clone().selectResult(e);if(!t)return;const a=t.getSelectedResult()?.getCameraID();this.view?.evolve({queryResults:t,...a&&{camera:a}}).dispatchChangeEvent(this)}_lazyloadSlide(e){e instanceof HTMLSlotElement&&(e=e.assignedElements({flatten:!0})[0]);const i=e?.querySelector("frigate-card-viewer-provider");i&&(i.disabled=!1)}_getSlides(){if(!this.view||!this.view.queryResults)return[];const e=[];for(let i=0;i<this.view.queryResults.getResultsCount();++i){const t=this.view.queryResults.getResult(i);if(t){const a=this._renderMediaItem(t,i);a&&(e[i]=a)}}return e}willUpdate(e){e.has("viewerConfig")&&j(this,this.viewerConfig?.layout)}render(){const e=this.view?.queryResults?.getResultsCount()??0;if(!e)return v(this,c("common.no_media"),"info",{icon:"mdi:multimedia"});const i=this.view?.queryResults?.getSelectedResult()??this.view?.queryResults?.getResult(e-1);if(!(this.hass&&this.cameraManager&&i&&this.view&&this.view.queryResults))return;const[t,a]=this._getMediaNeighbors(),r=e=>{const i=this.view?.queryResults?.getSelectedIndex()??null;if(!this.view||!this.view?.queryResults||null===i)return;const t="previous"===e?i-1:i+1;t>=0&&t<this.view.queryResults.getResultsCount()&&this._setViewSelectedIndex(t)},o=this.cameraManager.getCameraMetadata(this.hass,i.getCameraID());return s` <frigate-card-media-carousel
|
||||
${g(this._refMediaCarousel)}
|
||||
.carouselOptions=${S([this.viewerConfig],(()=>({draggable:this.viewerConfig?.draggable??!0})))}
|
||||
.carouselPlugins=${S([this.viewerConfig,this.view.queryResults.getResults()],this._getPlugins.bind(this))}
|
||||
.label=${i.getTitle()??void 0}
|
||||
.logo=${o?.engineLogo}
|
||||
.titlePopupConfig=${this.viewerConfig?.controls.title}
|
||||
.selected=${this.view?.queryResults?.getSelectedIndex()??0}
|
||||
transitionEffect=${this._getTransitionEffect()}
|
||||
@frigate-card:media-carousel:select=${this._setViewHandler.bind(this)}
|
||||
@frigate-card:media:loaded=${this._seekHandler.bind(this)}
|
||||
>
|
||||
<frigate-card-next-previous-control
|
||||
slot="previous"
|
||||
.hass=${this.hass}
|
||||
.direction=${"previous"}
|
||||
.controlConfig=${this.viewerConfig?.controls.next_previous}
|
||||
.thumbnail=${t?.getThumbnail()??void 0}
|
||||
.label=${t?.getTitle()??""}
|
||||
?disabled=${!t}
|
||||
@click=${e=>{r("previous"),f(e)}}
|
||||
></frigate-card-next-previous-control>
|
||||
${S(this.view?.queryResults?.getResults(),(()=>this._getSlides()))}
|
||||
<frigate-card-next-previous-control
|
||||
slot="next"
|
||||
.hass=${this.hass}
|
||||
.direction=${"next"}
|
||||
.controlConfig=${this.viewerConfig?.controls.next_previous}
|
||||
.thumbnail=${a?.getThumbnail()??void 0}
|
||||
.label=${a?.getTitle()??""}
|
||||
?disabled=${!a}
|
||||
@click=${e=>{r("next"),f(e)}}
|
||||
></frigate-card-next-previous-control>
|
||||
</frigate-card-media-carousel>`}async _seekHandler(){const e=this.view?.context?.mediaViewer?.seek,i=this.view?.queryResults?.getSelectedResult();if(!this.hass||!i||!e)return;const t=await(this.cameraManager?.getMediaSeekTime(this.hass,i,e))??null,a=this._getPlayer();a&&null!==t&&a.seek(t)}_renderMediaItem(e,i){return this.hass&&this.view&&this.viewerConfig?s` <div class="embla__slide">
|
||||
<frigate-card-viewer-provider
|
||||
.hass=${this.hass}
|
||||
.view=${this.view}
|
||||
.media=${e}
|
||||
.viewerConfig=${this.viewerConfig}
|
||||
.resolvedMediaCache=${this.resolvedMediaCache}
|
||||
.cameraManager=${this.cameraManager}
|
||||
.disabled=${this.viewerConfig.lazy_load}
|
||||
.cardWideConfig=${this.cardWideConfig}
|
||||
@frigate-card:media:loaded=${e=>{I(i,e)}}
|
||||
></frigate-card-viewer-provider>
|
||||
</div>`:null}static get styles(){return r(".embla__slide {\n height: 100%;\n flex: 0 0 100%;\n}")}};o([d({attribute:!1})],L.prototype,"hass",void 0),o([d({attribute:!1})],L.prototype,"view",void 0),o([d({attribute:!1,hasChanged:p})],L.prototype,"viewerConfig",void 0),o([d({attribute:!1})],L.prototype,"resolvedMediaCache",void 0),o([d({attribute:!1})],L.prototype,"cardWideConfig",void 0),o([d({attribute:!1})],L.prototype,"cameraManager",void 0),L=o([l("frigate-card-viewer-carousel")],L);let U=class extends e{constructor(){super(...arguments),this.disabled=!1,this._refFrigateCardMediaPlayer=n(),this._refVideoProvider=n(),this._refImageProvider=n()}async play(){await T(this,this._refFrigateCardMediaPlayer.value??this._refVideoProvider.value)}async pause(){(this._refFrigateCardMediaPlayer.value||this._refVideoProvider.value)?.pause()}async mute(){this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.mute():this._refVideoProvider.value&&(this._refVideoProvider.value.muted=!0)}async unmute(){this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.mute():this._refVideoProvider.value&&(this._refVideoProvider.value.muted=!1)}isMuted(){return this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.isMuted()??!0:!this._refVideoProvider.value||this._refVideoProvider.value.muted}async seek(e){if(this._refFrigateCardMediaPlayer.value)return this._refFrigateCardMediaPlayer.value.seek(e);this._refVideoProvider.value&&(F(this._refVideoProvider.value),this._refVideoProvider.value.currentTime=e)}async setControls(e){if(this._refFrigateCardMediaPlayer.value)return this._refFrigateCardMediaPlayer.value.setControls(e);this._refVideoProvider.value&&k(this._refVideoProvider.value,e??this.viewerConfig?.controls.builtin??!0)}isPaused(){return this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value.isPaused():!this._refVideoProvider.value||this._refVideoProvider.value.paused}async getScreenshotURL(){return this._refFrigateCardMediaPlayer.value?await this._refFrigateCardMediaPlayer.value.getScreenshotURL():this._refVideoProvider.value?m(this._refVideoProvider.value):this._refImageProvider.value?this._refImageProvider.value.src:null}async _dispatchRelatedClipView(){if(!(this.hass&&this.view&&this.cameraManager&&this.media&&w.isEvent(this.media)&&y.areEventQueries(this.view.query)))return;const e=this.view.query.clone();e.convertToClipsQueries();const i=e.getQueries();if(!i)return;let t;try{t=await this.cameraManager.executeMediaQueries(this.hass,i)}catch(e){return void C(e)}if(!t)return;const a=new _(t);a.selectResultIfFound((e=>e.getID()===this.media?.getID())),a.hasSelectedResult()&&this.view.evolve({view:"media",query:e,queryResults:a}).dispatchChangeEvent(this)}willUpdate(e){const i=this.media?this.media.getContentID():null;!((e.has("disabled")||e.has("media")||e.has("viewerConfig")||e.has("resolvedMediaCache")||e.has("hass"))&&this.hass&&i)||this.resolvedMediaCache?.has(i)||this.viewerConfig?.lazy_load&&this.disabled||b(this.hass,i,this.resolvedMediaCache).then((()=>{this.requestUpdate()})),e.has("viewerConfig")&&this.viewerConfig?.zoomable&&import("./zoomer-1857311a.js")}_useZoomIfRequired(e){return this.viewerConfig?.zoomable?s` <frigate-card-zoomer
|
||||
@frigate-card:zoom:zoomed=${()=>this.setControls(!1)}
|
||||
@frigate-card:zoom:unzoomed=${()=>this.setControls()}
|
||||
>
|
||||
${e}
|
||||
</frigate-card-zoomer>`:e}render(){if(this.disabled||!this.media||!this.hass||!this.view||!this.viewerConfig)return;const e=this.media.getContentID(),i=e?this.resolvedMediaCache?.get(e):null;return i?this._useZoomIfRequired(s`
|
||||
${w.isVideo(this.media)?this.media.getVideoContentType()===E.HLS?s`<frigate-card-ha-hls-player
|
||||
${g(this._refFrigateCardMediaPlayer)}
|
||||
allow-exoplayer
|
||||
aria-label="${this.media.getTitle()??""}"
|
||||
?autoplay=${!1}
|
||||
controls
|
||||
muted
|
||||
playsinline
|
||||
title="${this.media.getTitle()??""}"
|
||||
url=${$(this.hass,i?.url)??""}
|
||||
.hass=${this.hass}
|
||||
?controls=${this.viewerConfig.controls.builtin}
|
||||
>
|
||||
</frigate-card-ha-hls-player>`:s`
|
||||
<video
|
||||
${g(this._refVideoProvider)}
|
||||
aria-label="${this.media.getTitle()??""}"
|
||||
title="${this.media.getTitle()??""}"
|
||||
muted
|
||||
playsinline
|
||||
crossorigin="anonymous"
|
||||
?autoplay=${!1}
|
||||
?controls=${this.viewerConfig.controls.builtin}
|
||||
@loadedmetadata=${e=>{e.target&&this.viewerConfig?.controls.builtin&&F(e.target,z)}}
|
||||
@loadeddata=${e=>{M(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:W(e.target)}})}}
|
||||
@volumechange=${()=>P(this)}
|
||||
@play=${()=>R(this)}
|
||||
@pause=${()=>x(this)}
|
||||
>
|
||||
<source
|
||||
src=${$(this.hass,i?.url)??""}
|
||||
type="video/mp4"
|
||||
/>
|
||||
</video>
|
||||
`:s`<img
|
||||
${g(this._refImageProvider)}
|
||||
aria-label="${this.media.getTitle()??""}"
|
||||
src="${$(this.hass,i?.url)??""}"
|
||||
title="${this.media.getTitle()??""}"
|
||||
@click=${()=>{this.viewerConfig?.snapshot_click_plays_clip&&this._dispatchRelatedClipView()}}
|
||||
@load=${e=>{M(this,e,{player:this})}}
|
||||
/>`}
|
||||
`):a({cardWideConfig:this.cardWideConfig})}static get styles(){return r(":host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nimg,\nvideo,\nfrigate-card-ha-hls-player {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n}\n\nfrigate-card-progress-indicator {\n padding: 30px;\n box-sizing: border-box;\n}")}};o([d({attribute:!1})],U.prototype,"hass",void 0),o([d({attribute:!1})],U.prototype,"view",void 0),o([d({attribute:!1})],U.prototype,"media",void 0),o([d({attribute:!1})],U.prototype,"viewerConfig",void 0),o([d({attribute:!1})],U.prototype,"resolvedMediaCache",void 0),o([d({attribute:!1})],U.prototype,"disabled",void 0),o([d({attribute:!1})],U.prototype,"cameraManager",void 0),o([d({attribute:!1})],U.prototype,"cardWideConfig",void 0),U=o([l(H)],U);export{D as FrigateCardViewer,L as FrigateCardViewerCarousel,U as FrigateCardViewerProvider};
|
||||
@@ -0,0 +1,24 @@
|
||||
import nodeResolve from "@rollup/plugin-node-resolve";
|
||||
import json from "@rollup/plugin-json";
|
||||
import typescript from "rollup-plugin-typescript2";
|
||||
import terser from "@rollup/plugin-terser";
|
||||
import babel from "@rollup/plugin-babel";
|
||||
|
||||
const dev = process.env.ROLLUP_WATCH;
|
||||
|
||||
export default {
|
||||
input: "src/main.ts",
|
||||
output: {
|
||||
file: "auto-entities.js",
|
||||
format: "es",
|
||||
},
|
||||
plugins: [
|
||||
nodeResolve(),
|
||||
json(),
|
||||
typescript(),
|
||||
babel({
|
||||
exclude: "node_modules/**",
|
||||
}),
|
||||
!dev && terser({ format: { comments: false } }),
|
||||
],
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
import nodeResolve from "@rollup/plugin-node-resolve";
|
||||
import json from "@rollup/plugin-json";
|
||||
import commonjs from "@rollup/plugin-commonjs";
|
||||
import typescript from "rollup-plugin-typescript2";
|
||||
import { terser } from "rollup-plugin-terser";
|
||||
import babel from "@rollup/plugin-babel";
|
||||
|
||||
const dev = process.env.ROLLUP_WATCH;
|
||||
|
||||
export default {
|
||||
input: "src/main.ts",
|
||||
output: {
|
||||
file: "layout-card.js",
|
||||
format: "es",
|
||||
},
|
||||
plugins: [
|
||||
nodeResolve(),
|
||||
commonjs(),
|
||||
json(),
|
||||
typescript(),
|
||||
babel({
|
||||
exclude: "node_modules/**",
|
||||
}),
|
||||
!dev && terser({ format: { comments: false } }),
|
||||
],
|
||||
};
|
||||
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" />
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05" />
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode />
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="cloudy-day-3">
|
||||
<g transform="translate(20,10)">
|
||||
<g transform="translate(0,16)">
|
||||
<g class="am-weather-sun">
|
||||
<g>
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2"
|
||||
transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(45)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2"
|
||||
transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(90)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2"
|
||||
transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(135)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2"
|
||||
transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(180)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2"
|
||||
transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(225)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2"
|
||||
transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(270)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2"
|
||||
transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(315)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2"
|
||||
transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
</g>
|
||||
<circle cx="0" cy="0" fill="orange" r="5" stroke="orange" stroke-width="2" />
|
||||
</g>
|
||||
<g class="am-weather-cloud-2">
|
||||
<path
|
||||
d="M47.7,35.4c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z"
|
||||
fill="#57A0EE" stroke="#FFFFFF" stroke-linejoin="round" stroke-width="1.2"
|
||||
transform="translate(-20,-11)" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1,354 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg66"
|
||||
sodipodi:docname="cloudy-day-3.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata70">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1554"
|
||||
inkscape:window-height="778"
|
||||
id="namedview68"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.9790903"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="406"
|
||||
inkscape:window-y="1169"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="cloudy-day-3"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** SUN
|
||||
*/
|
||||
@keyframes am-weather-sun {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-moz-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun {
|
||||
-webkit-animation-name: am-weather-sun;
|
||||
-moz-animation-name: am-weather-sun;
|
||||
-ms-animation-name: am-weather-sun;
|
||||
animation-name: am-weather-sun;
|
||||
-webkit-animation-duration: 9s;
|
||||
-moz-animation-duration: 9s;
|
||||
-ms-animation-duration: 9s;
|
||||
animation-duration: 9s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-sun-shiny {
|
||||
0% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
stroke-dasharray: 0.1px 10px;
|
||||
stroke-dashoffset: -1px;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun-shiny line {
|
||||
-webkit-animation-name: am-weather-sun-shiny;
|
||||
-moz-animation-name: am-weather-sun-shiny;
|
||||
-ms-animation-name: am-weather-sun-shiny;
|
||||
animation-name: am-weather-sun-shiny;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="cloudy-day-3">
|
||||
<g
|
||||
transform="matrix(1.1138015,0,0,1.1138015,22.47942,10.859436)"
|
||||
id="g63">
|
||||
<g
|
||||
transform="translate(0,16)"
|
||||
id="g57">
|
||||
<g
|
||||
class="am-weather-sun"
|
||||
id="g53">
|
||||
<g
|
||||
id="g23">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line21" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(45)"
|
||||
id="g27">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line25" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(90)"
|
||||
id="g31">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line29" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(135)"
|
||||
id="g35">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line33" />
|
||||
</g>
|
||||
<g
|
||||
transform="scale(-1)"
|
||||
id="g39">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line37" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-135)"
|
||||
id="g43">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line41" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-90)"
|
||||
id="g47">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line45" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-45)"
|
||||
id="g51">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line49" />
|
||||
</g>
|
||||
</g>
|
||||
<circle
|
||||
cx="0"
|
||||
cy="0"
|
||||
fill="#ffa500"
|
||||
r="5"
|
||||
stroke="#ffa500"
|
||||
stroke-width="2"
|
||||
id="circle55" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-cloud-2"
|
||||
id="g61">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path59" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.4 KiB |
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
|
||||
<feOffset dx="0" dy="4" result="offsetblur"/>
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05"/>
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="cloudy-night-3">
|
||||
<g transform="translate(20,10)">
|
||||
<g transform="translate(16,4), scale(0.8)">
|
||||
<g class="am-weather-moon-star-1">
|
||||
<polygon fill="orange" points="3.3,1.5 4,2.7 5.2,3.3 4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7" stroke="none" stroke-miterlimit="10"/>
|
||||
</g>
|
||||
<g class="am-weather-moon-star-2">
|
||||
<polygon fill="orange" points="3.3,1.5 4,2.7 5.2,3.3 4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7" stroke="none" stroke-miterlimit="10" transform="translate(20,10)"/>
|
||||
</g>
|
||||
<g class="am-weather-moon">
|
||||
<path d="M14.5,13.2c0-3.7,2-6.9,5-8.7 c-1.5-0.9-3.2-1.3-5-1.3c-5.5,0-10,4.5-10,10s4.5,10,10,10c1.8,0,3.5-0.5,5-1.3C16.5,20.2,14.5,16.9,14.5,13.2z" fill="orange" stroke="orange" stroke-linejoin="round" stroke-width="2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g class="am-weather-cloud-2">
|
||||
<path d="M47.7,35.4 c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z" fill="#57A0EE" stroke="#FFFFFF" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,296 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg42"
|
||||
sodipodi:docname="cloudy-night-3.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata46">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1646"
|
||||
inkscape:window-height="831"
|
||||
id="namedview44"
|
||||
showgrid="false"
|
||||
inkscape:zoom="5.9340752"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="38.74073"
|
||||
inkscape:window-x="1690"
|
||||
inkscape:window-y="326"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="cloudy-night-3"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** MOON
|
||||
*/
|
||||
@keyframes am-weather-moon {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
-moz-transform: rotate(15deg);
|
||||
-ms-transform: rotate(15deg);
|
||||
transform: rotate(15deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon {
|
||||
-webkit-animation-name: am-weather-moon;
|
||||
-moz-animation-name: am-weather-moon;
|
||||
-ms-animation-name: am-weather-moon;
|
||||
animation-name: am-weather-moon;
|
||||
-webkit-animation-duration: 6s;
|
||||
-moz-animation-duration: 6s;
|
||||
-ms-animation-duration: 6s;
|
||||
animation-duration: 6s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
-webkit-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-moz-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-ms-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-1 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-1 {
|
||||
-webkit-animation-name: am-weather-moon-star-1;
|
||||
-moz-animation-name: am-weather-moon-star-1;
|
||||
-ms-animation-name: am-weather-moon-star-1;
|
||||
animation-name: am-weather-moon-star-1;
|
||||
-webkit-animation-delay: 3s;
|
||||
-moz-animation-delay: 3s;
|
||||
-ms-animation-delay: 3s;
|
||||
animation-delay: 3s;
|
||||
-webkit-animation-duration: 5s;
|
||||
-moz-animation-duration: 5s;
|
||||
-ms-animation-duration: 5s;
|
||||
animation-duration: 5s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-2 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-2 {
|
||||
-webkit-animation-name: am-weather-moon-star-2;
|
||||
-moz-animation-name: am-weather-moon-star-2;
|
||||
-ms-animation-name: am-weather-moon-star-2;
|
||||
animation-name: am-weather-moon-star-2;
|
||||
-webkit-animation-delay: 5s;
|
||||
-moz-animation-delay: 5s;
|
||||
-ms-animation-delay: 5s;
|
||||
animation-delay: 5s;
|
||||
-webkit-animation-duration: 4s;
|
||||
-moz-animation-duration: 4s;
|
||||
-ms-animation-duration: 4s;
|
||||
animation-duration: 4s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="cloudy-night-3">
|
||||
<g
|
||||
transform="matrix(1.131333,0,0,1.131333,13.428035,8.7170683)"
|
||||
id="g39">
|
||||
<g
|
||||
transform="matrix(0.8,0,0,0.8,16,4)"
|
||||
id="g33">
|
||||
<g
|
||||
class="am-weather-moon-star-1"
|
||||
id="g23">
|
||||
<polygon
|
||||
fill="#ffa500"
|
||||
points="4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7 3.3,1.5 4,2.7 5.2,3.3 "
|
||||
stroke="none"
|
||||
stroke-miterlimit="10"
|
||||
id="polygon21" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-moon-star-2"
|
||||
id="g27">
|
||||
<polygon
|
||||
fill="#ffa500"
|
||||
points="4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7 3.3,1.5 4,2.7 5.2,3.3 "
|
||||
stroke="none"
|
||||
stroke-miterlimit="10"
|
||||
transform="translate(20,10)"
|
||||
id="polygon25" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-moon"
|
||||
id="g31">
|
||||
<path
|
||||
d="m 14.5,13.2 c 0,-3.7 2,-6.9 5,-8.7 -1.5,-0.9 -3.2,-1.3 -5,-1.3 -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 1.8,0 3.5,-0.5 5,-1.3 -3,-1.7 -5,-5 -5,-8.7 z"
|
||||
fill="#ffa500"
|
||||
stroke="#ffa500"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
id="path29" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-cloud-2"
|
||||
id="g37">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path35" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.4 KiB |
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
|
||||
<feOffset dx="0" dy="4" result="offsetblur"/>
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05"/>
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="cloudy">
|
||||
<g transform="translate(20,10)">
|
||||
<g class="am-weather-cloud-1">
|
||||
<path d="M47.7,35.4 c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z" fill="#91C0F8" stroke="white" stroke-linejoin="round" stroke-width="1.2" transform="translate(-10,-8), scale(0.6)"/>
|
||||
</g>
|
||||
<g class="am-weather-cloud-2">
|
||||
<path d="M47.7,35.4 c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z" fill="#57A0EE" stroke="#FFFFFF" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,582 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg32"
|
||||
sodipodi:docname="cloudy.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata36">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1324"
|
||||
inkscape:window-height="642"
|
||||
id="namedview34"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.911648"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="cloudy"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-1 {
|
||||
0% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(10px,0px);
|
||||
-moz-transform: translate(10px,0px);
|
||||
-ms-transform: translate(10px,0px);
|
||||
transform: translate(10px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-1 {
|
||||
-webkit-animation-name: am-weather-cloud-1;
|
||||
-moz-animation-name: am-weather-cloud-1;
|
||||
animation-name: am-weather-cloud-1;
|
||||
-webkit-animation-duration: 7s;
|
||||
-moz-animation-duration: 7s;
|
||||
animation-duration: 7s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** SUN
|
||||
*/
|
||||
@keyframes am-weather-sun {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-moz-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun {
|
||||
-webkit-animation-name: am-weather-sun;
|
||||
-moz-animation-name: am-weather-sun;
|
||||
-ms-animation-name: am-weather-sun;
|
||||
animation-name: am-weather-sun;
|
||||
-webkit-animation-duration: 9s;
|
||||
-moz-animation-duration: 9s;
|
||||
-ms-animation-duration: 9s;
|
||||
animation-duration: 9s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-sun-shiny {
|
||||
0% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
stroke-dasharray: 0.1px 10px;
|
||||
stroke-dashoffset: -1px;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun-shiny line {
|
||||
-webkit-animation-name: am-weather-sun-shiny;
|
||||
-moz-animation-name: am-weather-sun-shiny;
|
||||
-ms-animation-name: am-weather-sun-shiny;
|
||||
animation-name: am-weather-sun-shiny;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
** MOON
|
||||
*/
|
||||
@keyframes am-weather-moon {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
-moz-transform: rotate(15deg);
|
||||
-ms-transform: rotate(15deg);
|
||||
transform: rotate(15deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon {
|
||||
-webkit-animation-name: am-weather-moon;
|
||||
-moz-animation-name: am-weather-moon;
|
||||
-ms-animation-name: am-weather-moon;
|
||||
animation-name: am-weather-moon;
|
||||
-webkit-animation-duration: 6s;
|
||||
-moz-animation-duration: 6s;
|
||||
-ms-animation-duration: 6s;
|
||||
animation-duration: 6s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
-webkit-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-moz-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-ms-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-1 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-1 {
|
||||
-webkit-animation-name: am-weather-moon-star-1;
|
||||
-moz-animation-name: am-weather-moon-star-1;
|
||||
-ms-animation-name: am-weather-moon-star-1;
|
||||
animation-name: am-weather-moon-star-1;
|
||||
-webkit-animation-delay: 3s;
|
||||
-moz-animation-delay: 3s;
|
||||
-ms-animation-delay: 3s;
|
||||
animation-delay: 3s;
|
||||
-webkit-animation-duration: 5s;
|
||||
-moz-animation-duration: 5s;
|
||||
-ms-animation-duration: 5s;
|
||||
animation-duration: 5s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-2 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-2 {
|
||||
-webkit-animation-name: am-weather-moon-star-2;
|
||||
-moz-animation-name: am-weather-moon-star-2;
|
||||
-ms-animation-name: am-weather-moon-star-2;
|
||||
animation-name: am-weather-moon-star-2;
|
||||
-webkit-animation-delay: 5s;
|
||||
-moz-animation-delay: 5s;
|
||||
-ms-animation-delay: 5s;
|
||||
animation-delay: 5s;
|
||||
-webkit-animation-duration: 4s;
|
||||
-moz-animation-duration: 4s;
|
||||
-ms-animation-duration: 4s;
|
||||
animation-duration: 4s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** SNOW
|
||||
*/
|
||||
@keyframes am-weather-snow {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(-1.2px) translateY(2px);
|
||||
-moz-transform: translateX(-1.2px) translateY(2px);
|
||||
-ms-transform: translateX(-1.2px) translateY(2px);
|
||||
transform: translateX(-1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(1.4px) translateY(4px);
|
||||
-moz-transform: translateX(1.4px) translateY(4px);
|
||||
-ms-transform: translateX(1.4px) translateY(4px);
|
||||
transform: translateX(1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(-1.6px) translateY(6px);
|
||||
-moz-transform: translateX(-1.6px) translateY(6px);
|
||||
-ms-transform: translateX(-1.6px) translateY(6px);
|
||||
transform: translateX(-1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes am-weather-snow-reverse {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(1.2px) translateY(2px);
|
||||
-moz-transform: translateX(1.2px) translateY(2px);
|
||||
-ms-transform: translateX(1.2px) translateY(2px);
|
||||
transform: translateX(1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(-1.4px) translateY(4px);
|
||||
-moz-transform: translateX(-1.4px) translateY(4px);
|
||||
-ms-transform: translateX(-1.4px) translateY(4px);
|
||||
transform: translateX(-1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(1.6px) translateY(6px);
|
||||
-moz-transform: translateX(1.6px) translateY(6px);
|
||||
-ms-transform: translateX(1.6px) translateY(6px);
|
||||
transform: translateX(1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-snow-1 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-2 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-delay: 1.2s;
|
||||
-moz-animation-delay: 1.2s;
|
||||
-ms-animation-delay: 1.2s;
|
||||
animation-delay: 1.2s;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-3 {
|
||||
-webkit-animation-name: am-weather-snow-reverse;
|
||||
-moz-animation-name: am-weather-snow-reverse;
|
||||
-ms-animation-name: am-weather-snow-reverse;
|
||||
animation-name: am-weather-snow-reverse;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** EASING
|
||||
*/
|
||||
.am-weather-easing-ease-in-out {
|
||||
-webkit-animation-timing-function: ease-in-out;
|
||||
-moz-animation-timing-function: ease-in-out;
|
||||
-ms-animation-timing-function: ease-in-out;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="cloudy">
|
||||
<g
|
||||
transform="matrix(1.3569207,0,0,1.3569207,15.823384,5.083028)"
|
||||
id="g29">
|
||||
<g
|
||||
class="am-weather-cloud-1"
|
||||
id="g23">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#91c0f8"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="matrix(0.6,0,0,0.6,-10,-8)"
|
||||
id="path21" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-cloud-2"
|
||||
id="g27">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
|
||||
<feOffset dx="0" dy="4" result="offsetblur"/>
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05"/>
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="day">
|
||||
<g transform="translate(32,32)">
|
||||
<g class="am-weather-sun am-weather-sun-shiny am-weather-easing-ease-in-out">
|
||||
<g>
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2" transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(45)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2" transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(90)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2" transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(135)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2" transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(180)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2" transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(225)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2" transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(270)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2" transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
<g transform="rotate(315)">
|
||||
<line fill="none" stroke="orange" stroke-linecap="round" stroke-width="2" transform="translate(0,9)" x1="0" x2="0" y1="0" y2="3" />
|
||||
</g>
|
||||
</g>
|
||||
<circle cx="0" cy="0" fill="orange" r="5" stroke="orange" stroke-width="2"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,689 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg60"
|
||||
sodipodi:docname="day.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata64">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1629"
|
||||
inkscape:window-height="830"
|
||||
id="namedview62"
|
||||
showgrid="false"
|
||||
inkscape:zoom="5.9152817"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="day"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-1 {
|
||||
0% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(10px,0px);
|
||||
-moz-transform: translate(10px,0px);
|
||||
-ms-transform: translate(10px,0px);
|
||||
transform: translate(10px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-1 {
|
||||
-webkit-animation-name: am-weather-cloud-1;
|
||||
-moz-animation-name: am-weather-cloud-1;
|
||||
animation-name: am-weather-cloud-1;
|
||||
-webkit-animation-duration: 7s;
|
||||
-moz-animation-duration: 7s;
|
||||
animation-duration: 7s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** SUN
|
||||
*/
|
||||
@keyframes am-weather-sun {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-moz-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun {
|
||||
-webkit-animation-name: am-weather-sun;
|
||||
-moz-animation-name: am-weather-sun;
|
||||
-ms-animation-name: am-weather-sun;
|
||||
animation-name: am-weather-sun;
|
||||
-webkit-animation-duration: 9s;
|
||||
-moz-animation-duration: 9s;
|
||||
-ms-animation-duration: 9s;
|
||||
animation-duration: 9s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-sun-shiny {
|
||||
0% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
stroke-dasharray: 0.1px 10px;
|
||||
stroke-dashoffset: -1px;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun-shiny line {
|
||||
-webkit-animation-name: am-weather-sun-shiny;
|
||||
-moz-animation-name: am-weather-sun-shiny;
|
||||
-ms-animation-name: am-weather-sun-shiny;
|
||||
animation-name: am-weather-sun-shiny;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
** MOON
|
||||
*/
|
||||
@keyframes am-weather-moon {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
-moz-transform: rotate(15deg);
|
||||
-ms-transform: rotate(15deg);
|
||||
transform: rotate(15deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon {
|
||||
-webkit-animation-name: am-weather-moon;
|
||||
-moz-animation-name: am-weather-moon;
|
||||
-ms-animation-name: am-weather-moon;
|
||||
animation-name: am-weather-moon;
|
||||
-webkit-animation-duration: 6s;
|
||||
-moz-animation-duration: 6s;
|
||||
-ms-animation-duration: 6s;
|
||||
animation-duration: 6s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
-webkit-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-moz-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-ms-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-1 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-1 {
|
||||
-webkit-animation-name: am-weather-moon-star-1;
|
||||
-moz-animation-name: am-weather-moon-star-1;
|
||||
-ms-animation-name: am-weather-moon-star-1;
|
||||
animation-name: am-weather-moon-star-1;
|
||||
-webkit-animation-delay: 3s;
|
||||
-moz-animation-delay: 3s;
|
||||
-ms-animation-delay: 3s;
|
||||
animation-delay: 3s;
|
||||
-webkit-animation-duration: 5s;
|
||||
-moz-animation-duration: 5s;
|
||||
-ms-animation-duration: 5s;
|
||||
animation-duration: 5s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-2 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-2 {
|
||||
-webkit-animation-name: am-weather-moon-star-2;
|
||||
-moz-animation-name: am-weather-moon-star-2;
|
||||
-ms-animation-name: am-weather-moon-star-2;
|
||||
animation-name: am-weather-moon-star-2;
|
||||
-webkit-animation-delay: 5s;
|
||||
-moz-animation-delay: 5s;
|
||||
-ms-animation-delay: 5s;
|
||||
animation-delay: 5s;
|
||||
-webkit-animation-duration: 4s;
|
||||
-moz-animation-duration: 4s;
|
||||
-ms-animation-duration: 4s;
|
||||
animation-duration: 4s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** SNOW
|
||||
*/
|
||||
@keyframes am-weather-snow {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(-1.2px) translateY(2px);
|
||||
-moz-transform: translateX(-1.2px) translateY(2px);
|
||||
-ms-transform: translateX(-1.2px) translateY(2px);
|
||||
transform: translateX(-1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(1.4px) translateY(4px);
|
||||
-moz-transform: translateX(1.4px) translateY(4px);
|
||||
-ms-transform: translateX(1.4px) translateY(4px);
|
||||
transform: translateX(1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(-1.6px) translateY(6px);
|
||||
-moz-transform: translateX(-1.6px) translateY(6px);
|
||||
-ms-transform: translateX(-1.6px) translateY(6px);
|
||||
transform: translateX(-1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes am-weather-snow-reverse {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(1.2px) translateY(2px);
|
||||
-moz-transform: translateX(1.2px) translateY(2px);
|
||||
-ms-transform: translateX(1.2px) translateY(2px);
|
||||
transform: translateX(1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(-1.4px) translateY(4px);
|
||||
-moz-transform: translateX(-1.4px) translateY(4px);
|
||||
-ms-transform: translateX(-1.4px) translateY(4px);
|
||||
transform: translateX(-1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(1.6px) translateY(6px);
|
||||
-moz-transform: translateX(1.6px) translateY(6px);
|
||||
-ms-transform: translateX(1.6px) translateY(6px);
|
||||
transform: translateX(1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-snow-1 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-2 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-delay: 1.2s;
|
||||
-moz-animation-delay: 1.2s;
|
||||
-ms-animation-delay: 1.2s;
|
||||
animation-delay: 1.2s;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-3 {
|
||||
-webkit-animation-name: am-weather-snow-reverse;
|
||||
-moz-animation-name: am-weather-snow-reverse;
|
||||
-ms-animation-name: am-weather-snow-reverse;
|
||||
animation-name: am-weather-snow-reverse;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** EASING
|
||||
*/
|
||||
.am-weather-easing-ease-in-out {
|
||||
-webkit-animation-timing-function: ease-in-out;
|
||||
-moz-animation-timing-function: ease-in-out;
|
||||
-ms-animation-timing-function: ease-in-out;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="day">
|
||||
<g
|
||||
transform="matrix(1.6076923,0,0,1.6076923,31.9,31.9)"
|
||||
id="g57">
|
||||
<g
|
||||
class="am-weather-sun am-weather-sun-shiny am-weather-easing-ease-in-out"
|
||||
id="g53">
|
||||
<g
|
||||
id="g23">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line21" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(45)"
|
||||
id="g27">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line25" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(90)"
|
||||
id="g31">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line29" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(135)"
|
||||
id="g35">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line33" />
|
||||
</g>
|
||||
<g
|
||||
transform="scale(-1)"
|
||||
id="g39">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line37" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-135)"
|
||||
id="g43">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line41" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-90)"
|
||||
id="g47">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line45" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-45)"
|
||||
id="g51">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line49" />
|
||||
</g>
|
||||
</g>
|
||||
<circle
|
||||
cx="0"
|
||||
cy="0"
|
||||
fill="#ffa500"
|
||||
r="5"
|
||||
stroke="#ffa500"
|
||||
stroke-width="2"
|
||||
id="circle55" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="64" height="64" viewbox="0 0 64 64"
|
||||
id="svg36" sodipodi:docname="rainy-71.svg" inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata id="metadata40">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
|
||||
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
|
||||
inkscape:window-width="1558" inkscape:window-height="1295" id="namedview38" showgrid="false"
|
||||
inkscape:zoom="11.998142" inkscape:cx="32" inkscape:cy="32" inkscape:window-x="77" inkscape:window-y="751"
|
||||
inkscape:window-maximized="0" inkscape:current-layer="rainy-7" inkscape:document-rotation="0" />
|
||||
<defs id="defs19">
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" id="feGaussianBlur2" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" id="feOffset4" />
|
||||
<feComponentTransfer id="feComponentTransfer8">
|
||||
<feFuncA type="linear" slope="0.05" id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge id="feMerge14">
|
||||
<feMergeNode id="feMergeNode10" />
|
||||
<feMergeNode in="SourceGraphic" id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="rainy-7">
|
||||
<g style="shape-rendering:geometricPrecision;text-rendering:geometricPrecision" id="g896"
|
||||
transform="translate(-0.5364177,-3.1502922)">
|
||||
<g id="erwehhtipo1o2_to" transform="translate(24.458777,19.932756)">
|
||||
<line id="erwehhtipo1o2" x1="19.523592" y1="23.932756" x2="29.393963" y2="23.932756"
|
||||
transform="translate(-24.458777,-23.932756)" fill="none" stroke="#90bff7" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o3_to" transform="translate(19.143962,23.72905)">
|
||||
<line id="erwehhtipo1o3" x1="14.208777" y1="27.72905" x2="24.079147" y2="27.72905"
|
||||
transform="translate(-19.143962,-27.72905)" fill="none" stroke="#90bff7" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o4_to" transform="translate(30.532851,27.525349)">
|
||||
<line id="erwehhtipo1o4" x1="11.930999" y1="31.525349" x2="49.134705" y2="31.525349"
|
||||
transform="translate(-30.532851,-31.525349)" fill="none" stroke="#90bff7" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o5_to" transform="translate(43.819889,31.321644)">
|
||||
<line id="erwehhtipo1o5" x1="36.986557" y1="35.321644" x2="50.653221" y2="35.321644"
|
||||
transform="translate(-43.819889,-35.321644)" fill="none" stroke="#569fed" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o6_to" transform="translate(21.421741,31.321644)">
|
||||
<line id="erwehhtipo1o6" x1="11.930999" y1="35.321644" x2="30.912481" y2="35.321644"
|
||||
transform="translate(-21.421741,-35.321644)" fill="none" stroke="#90bff7" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o7_to" transform="translate(40.403223,35.117912)">
|
||||
<line id="erwehhtipo1o7" x1="30.153221" y1="39.117912" x2="49.893963" y2="39.117912"
|
||||
transform="translate(-40.023592,-39.117912)" fill="none" stroke="#569fed" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o8_to" transform="translate(32,38.914207)">
|
||||
<line id="erwehhtipo1o8" x1="18.764334" y1="42.914207" x2="46.856926" y2="42.914207"
|
||||
transform="translate(-32.81063,-42.914207)" fill="none" stroke="#569fed" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o9_to" transform="translate(32.810629,42.710506)">
|
||||
<line id="erwehhtipo1o9" x1="26.356926" y1="46.710506" x2="39.264332" y2="46.710506"
|
||||
transform="translate(-32.810629,-46.710506)" fill="none" stroke="#569fed" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o10_to" transform="translate(19.143962,35.117912)">
|
||||
<line id="erwehhtipo1o10" x1="13.449517" y1="39.117912" x2="24.838408" y2="39.117912"
|
||||
transform="translate(-19.143962,-39.117912)" fill="none" stroke="#569fed" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o11_to" transform="translate(31.292111,23.72905)">
|
||||
<line id="erwehhtipo1o11" x1="28.634703" y1="27.72905" x2="33.94952" y2="27.72905"
|
||||
transform="translate(-31.292111,-27.72905)" fill="none" stroke="#90bff7" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g id="erwehhtipo1o12_to" transform="translate(44.199518,23.72905)">
|
||||
<line id="erwehhtipo1o12" x1="41.54211" y1="27.72905" x2="46.856926" y2="27.72905"
|
||||
transform="translate(-44.199518,-27.72905)" fill="none" stroke="#569fed" stroke-width="3"
|
||||
stroke-linecap="round" stroke-miterlimit="10" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.0 KiB |
@@ -0,0 +1,327 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg36"
|
||||
sodipodi:docname="rainy-71.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata40">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1558"
|
||||
inkscape:window-height="1295"
|
||||
id="namedview38"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.998142"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="77"
|
||||
inkscape:window-y="751"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="rainy-7"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="rainy-7">
|
||||
<g
|
||||
style="shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
|
||||
id="g896"
|
||||
transform="translate(-0.5364177,-3.1502922)">
|
||||
<g
|
||||
id="erwehhtipo1o2_to"
|
||||
transform="translate(24.458777,19.932756)">
|
||||
<line
|
||||
id="erwehhtipo1o2"
|
||||
x1="19.523592"
|
||||
y1="23.932756"
|
||||
x2="29.393963"
|
||||
y2="23.932756"
|
||||
transform="translate(-24.458777,-23.932756)"
|
||||
fill="none"
|
||||
stroke="#90bff7"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o3_to"
|
||||
transform="translate(19.143962,23.72905)">
|
||||
<line
|
||||
id="erwehhtipo1o3"
|
||||
x1="14.208777"
|
||||
y1="27.72905"
|
||||
x2="24.079147"
|
||||
y2="27.72905"
|
||||
transform="translate(-19.143962,-27.72905)"
|
||||
fill="none"
|
||||
stroke="#90bff7"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o4_to"
|
||||
transform="translate(30.532851,27.525349)">
|
||||
<line
|
||||
id="erwehhtipo1o4"
|
||||
x1="11.930999"
|
||||
y1="31.525349"
|
||||
x2="49.134705"
|
||||
y2="31.525349"
|
||||
transform="translate(-30.532851,-31.525349)"
|
||||
fill="none"
|
||||
stroke="#90bff7"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o5_to"
|
||||
transform="translate(43.819889,31.321644)">
|
||||
<line
|
||||
id="erwehhtipo1o5"
|
||||
x1="36.986557"
|
||||
y1="35.321644"
|
||||
x2="50.653221"
|
||||
y2="35.321644"
|
||||
transform="translate(-43.819889,-35.321644)"
|
||||
fill="none"
|
||||
stroke="#569fed"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o6_to"
|
||||
transform="translate(21.421741,31.321644)">
|
||||
<line
|
||||
id="erwehhtipo1o6"
|
||||
x1="11.930999"
|
||||
y1="35.321644"
|
||||
x2="30.912481"
|
||||
y2="35.321644"
|
||||
transform="translate(-21.421741,-35.321644)"
|
||||
fill="none"
|
||||
stroke="#90bff7"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o7_to"
|
||||
transform="translate(40.403223,35.117912)">
|
||||
<line
|
||||
id="erwehhtipo1o7"
|
||||
x1="30.153221"
|
||||
y1="39.117912"
|
||||
x2="49.893963"
|
||||
y2="39.117912"
|
||||
transform="translate(-40.023592,-39.117912)"
|
||||
fill="none"
|
||||
stroke="#569fed"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o8_to"
|
||||
transform="translate(32,38.914207)">
|
||||
<line
|
||||
id="erwehhtipo1o8"
|
||||
x1="18.764334"
|
||||
y1="42.914207"
|
||||
x2="46.856926"
|
||||
y2="42.914207"
|
||||
transform="translate(-32.81063,-42.914207)"
|
||||
fill="none"
|
||||
stroke="#569fed"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o9_to"
|
||||
transform="translate(32.810629,42.710506)">
|
||||
<line
|
||||
id="erwehhtipo1o9"
|
||||
x1="26.356926"
|
||||
y1="46.710506"
|
||||
x2="39.264332"
|
||||
y2="46.710506"
|
||||
transform="translate(-32.810629,-46.710506)"
|
||||
fill="none"
|
||||
stroke="#569fed"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o10_to"
|
||||
transform="translate(19.143962,35.117912)">
|
||||
<line
|
||||
id="erwehhtipo1o10"
|
||||
x1="13.449517"
|
||||
y1="39.117912"
|
||||
x2="24.838408"
|
||||
y2="39.117912"
|
||||
transform="translate(-19.143962,-39.117912)"
|
||||
fill="none"
|
||||
stroke="#569fed"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o11_to"
|
||||
transform="translate(31.292111,23.72905)">
|
||||
<line
|
||||
id="erwehhtipo1o11"
|
||||
x1="28.634703"
|
||||
y1="27.72905"
|
||||
x2="33.94952"
|
||||
y2="27.72905"
|
||||
transform="translate(-31.292111,-27.72905)"
|
||||
fill="none"
|
||||
stroke="#90bff7"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
<g
|
||||
id="erwehhtipo1o12_to"
|
||||
transform="translate(44.199518,23.72905)">
|
||||
<line
|
||||
id="erwehhtipo1o12"
|
||||
x1="41.54211"
|
||||
y1="27.72905"
|
||||
x2="46.856926"
|
||||
y2="27.72905"
|
||||
transform="translate(-44.199518,-27.72905)"
|
||||
fill="none"
|
||||
stroke="#569fed"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<style
|
||||
id="style2"><![CDATA[#erwehhtipo1o2_to {animation: erwehhtipo1o2_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o2_to__to { 0% {transform: translate(24.458777px,23.932756px)} 25% {transform: translate(26px,23.930000px)} 50% {transform: translate(24.458777px,23.932756px)} 75% {transform: translate(22.460000px,23.932756px)} 100% {transform: translate(24.458777px,23.932756px)} }#erwehhtipo1o3_to {animation: erwehhtipo1o3_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o3_to__to { 0% {transform: translate(19.143962px,27.729050px)} 25% {transform: translate(17px,27.729050px)} 50% {transform: translate(19.143962px,27.729050px)} 75% {transform: translate(21.140000px,27.729050px)} 100% {transform: translate(19.143962px,27.729050px)} }#erwehhtipo1o4_to {animation: erwehhtipo1o4_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o4_to__to { 0% {transform: translate(30.532851px,31.525349px)} 25% {transform: translate(32.530000px,31.530000px)} 50% {transform: translate(30.532851px,31.525349px)} 75% {transform: translate(28.530000px,31.525349px)} 100% {transform: translate(30.532853px,31.525349px)} }#erwehhtipo1o5_to {animation: erwehhtipo1o5_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o5_to__to { 0% {transform: translate(43.819889px,35.321644px)} 25% {transform: translate(41.020000px,35.321644px)} 50% {transform: translate(43.819889px,35.321644px)} 75% {transform: translate(45.820000px,35.321644px)} 100% {transform: translate(43.819891px,35.321644px)} }#erwehhtipo1o6_to {animation: erwehhtipo1o6_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o6_to__to { 0% {transform: translate(21.421741px,35.321644px)} 25% {transform: translate(19px,35.321644px)} 50% {transform: translate(21.421741px,35.321644px)} 75% {transform: translate(23.420000px,35.321644px)} 100% {transform: translate(21.421742px,35.321644px)} }#erwehhtipo1o7_to {animation: erwehhtipo1o7_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o7_to__to { 0% {transform: translate(40.403223px,39.117912px)} 25% {transform: translate(42.020000px,39.117912px)} 50% {transform: translate(40.023592px,39.117912px)} 75% {transform: translate(38.020000px,39.117912px)} 100% {transform: translate(40.023593px,39.117912px)} }#erwehhtipo1o8_to {animation: erwehhtipo1o8_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o8_to__to { 0% {transform: translate(32px,42.914207px)} 25% {transform: translate(30px,42.914207px)} 50% {transform: translate(32px,42.914207px)} 75% {transform: translate(34px,42.914207px)} 100% {transform: translate(32.000001px,42.914207px)} }#erwehhtipo1o9_to {animation: erwehhtipo1o9_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o9_to__to { 0% {transform: translate(32.810629px,46.710506px)} 25% {transform: translate(34px,46.710506px)} 50% {transform: translate(32.810000px,46.710506px)} 75% {transform: translate(30.810000px,46.710506px)} 100% {transform: translate(32.810001px,46.710506px)} }#erwehhtipo1o10_to {animation: erwehhtipo1o10_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o10_to__to { 0% {transform: translate(19.143962px,39.117912px)} 25% {transform: translate(21.140000px,39.117912px)} 50% {transform: translate(19.143962px,39.117912px)} 75% {transform: translate(17.140000px,39.117912px)} 100% {transform: translate(19.143964px,39.117912px)} }#erwehhtipo1o11_to {animation: erwehhtipo1o11_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o11_to__to { 0% {transform: translate(31.292111px,27.729050px)} 25% {transform: translate(29px,27.729050px)} 50% {transform: translate(31.292111px,27.729050px)} 75% {transform: translate(33.290000px,27.729050px)} 100% {transform: translate(31.292111px,27.729050px)} }#erwehhtipo1o12_to {animation: erwehhtipo1o12_to__to 8000ms linear infinite normal forwards}@keyframes erwehhtipo1o12_to__to { 0% {transform: translate(44.199518px,27.729050px)} 25% {transform: translate(42px,27.729050px)} 50% {transform: translate(44.199518px,27.729050px)} 75% {transform: translate(46.200000px,27.729050px)} 100% {transform: translate(44.199520px,27.729050px)} }]]></style>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="64" height="64" viewbox="0 0 64 64"
|
||||
id="svg36" sodipodi:docname="lightning-rainy.svg" inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata id="metadata40">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
|
||||
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
|
||||
inkscape:window-width="1622" inkscape:window-height="1109" id="namedview38" showgrid="false"
|
||||
inkscape:zoom="9.6286108" inkscape:cx="32" inkscape:cy="32" inkscape:window-x="1971" inkscape:window-y="104"
|
||||
inkscape:window-maximized="0" inkscape:current-layer="g33-4" inkscape:document-rotation="0" />
|
||||
<defs id="defs19">
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" id="feGaussianBlur2" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" id="feOffset4" />
|
||||
<feComponentTransfer id="feComponentTransfer8">
|
||||
<feFuncA type="linear" slope="0.05" id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge id="feMerge14">
|
||||
<feMergeNode id="feMergeNode10" />
|
||||
<feMergeNode in="SourceGraphic" id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="thunder">
|
||||
<g transform="translate(20,10)" id="g33">
|
||||
<g class="am-weather-cloud-1" id="g23" transform="matrix(1.061729,0,0,1.061729,-1.2222195,-5.9437076)">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#91c0f8" stroke="#ffffff" stroke-linejoin="round" stroke-width="1.2"
|
||||
transform="matrix(0.6,0,0,0.6,-15,-6)" id="path21" />
|
||||
</g>
|
||||
<g id="g27" transform="matrix(1.061729,0,0,1.061729,-1.2222195,-5.9437076)">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee" stroke="#ffffff" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"
|
||||
id="path25" />
|
||||
</g>
|
||||
<g transform="matrix(1.2740748,0,0,1.2740748,-10.777781,23.784704)" id="g31">
|
||||
<polygon class="am-weather-stroke" fill="#ffa500" stroke="#ffffff" stroke-width="1"
|
||||
points="11.1,6.9 14.3,-2.9 20.5,-2.9 16.4,4.3 20.3,4.3 11.5,14.6 14.9,6.9 " id="polygon29" />
|
||||
</g>
|
||||
<g transform="rotate(10,-199.38609,85.237485)" id="g33-4">
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91c0f8" stroke-dasharray="4.24692, 4.24692"
|
||||
stroke-linecap="round" stroke-width="2.12346" x1="-11.655619" x2="-11.655619" y1="-1.4159311"
|
||||
y2="7.0779023" id="line27" />
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91c0f8" stroke-dasharray="4.24692, 4.24692"
|
||||
stroke-linecap="round" stroke-width="2.12346" x1="5.2030058" x2="5.2030058" y1="-3.9525981" y2="4.541234"
|
||||
id="line31" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,442 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg36"
|
||||
sodipodi:docname="lightning-rainy.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata40">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1622"
|
||||
inkscape:window-height="1109"
|
||||
id="namedview38"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.6286108"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="1971"
|
||||
inkscape:window-y="104"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g33-4"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-1 {
|
||||
0% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(10px,0px);
|
||||
-moz-transform: translate(10px,0px);
|
||||
-ms-transform: translate(10px,0px);
|
||||
transform: translate(10px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-1 {
|
||||
-webkit-animation-name: am-weather-cloud-1;
|
||||
-moz-animation-name: am-weather-cloud-1;
|
||||
animation-name: am-weather-cloud-1;
|
||||
-webkit-animation-duration: 7s;
|
||||
-moz-animation-duration: 7s;
|
||||
animation-duration: 7s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** STROKE
|
||||
*/
|
||||
@keyframes am-weather-stroke {
|
||||
0% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
2% {
|
||||
-webkit-transform: translate(0.3px,0.0px);
|
||||
-moz-transform: translate(0.3px,0.0px);
|
||||
-ms-transform: translate(0.3px,0.0px);
|
||||
transform: translate(0.3px,0.0px);
|
||||
}
|
||||
|
||||
4% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
6% {
|
||||
-webkit-transform: translate(0.5px,0.4px);
|
||||
-moz-transform: translate(0.5px,0.4px);
|
||||
-ms-transform: translate(0.5px,0.4px);
|
||||
transform: translate(0.5px,0.4px);
|
||||
}
|
||||
|
||||
8% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
10% {
|
||||
-webkit-transform: translate(0.3px,0.0px);
|
||||
-moz-transform: translate(0.3px,0.0px);
|
||||
-ms-transform: translate(0.3px,0.0px);
|
||||
transform: translate(0.3px,0.0px);
|
||||
}
|
||||
|
||||
12% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
14% {
|
||||
-webkit-transform: translate(0.3px,0.0px);
|
||||
-moz-transform: translate(0.3px,0.0px);
|
||||
-ms-transform: translate(0.3px,0.0px);
|
||||
transform: translate(0.3px,0.0px);
|
||||
}
|
||||
|
||||
16% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
18% {
|
||||
-webkit-transform: translate(0.3px,0.0px);
|
||||
-moz-transform: translate(0.3px,0.0px);
|
||||
-ms-transform: translate(0.3px,0.0px);
|
||||
transform: translate(0.3px,0.0px);
|
||||
}
|
||||
|
||||
20% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
22% {
|
||||
-webkit-transform: translate(1px,0.0px);
|
||||
-moz-transform: translate(1px,0.0px);
|
||||
-ms-transform: translate(1px,0.0px);
|
||||
transform: translate(1px,0.0px);
|
||||
}
|
||||
|
||||
24% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
26% {
|
||||
-webkit-transform: translate(-1px,0.0px);
|
||||
-moz-transform: translate(-1px,0.0px);
|
||||
-ms-transform: translate(-1px,0.0px);
|
||||
transform: translate(-1px,0.0px);
|
||||
|
||||
}
|
||||
|
||||
28% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
40% {
|
||||
fill: orange;
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
65% {
|
||||
fill: white;
|
||||
-webkit-transform: translate(-1px,5.0px);
|
||||
-moz-transform: translate(-1px,5.0px);
|
||||
-ms-transform: translate(-1px,5.0px);
|
||||
transform: translate(-1px,5.0px);
|
||||
}
|
||||
61% {
|
||||
fill: orange;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-stroke {
|
||||
-webkit-animation-name: am-weather-stroke;
|
||||
-moz-animation-name: am-weather-stroke;
|
||||
animation-name: am-weather-stroke;
|
||||
-webkit-animation-duration: 1.11s;
|
||||
-moz-animation-duration: 1.11s;
|
||||
animation-duration: 1.11s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="thunder">
|
||||
<g
|
||||
transform="translate(20,10)"
|
||||
id="g33">
|
||||
<g
|
||||
class="am-weather-cloud-1"
|
||||
id="g23"
|
||||
transform="matrix(1.061729,0,0,1.061729,-1.2222195,-5.9437076)">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#91c0f8"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="matrix(0.6,0,0,0.6,-10,-6)"
|
||||
id="path21" />
|
||||
</g>
|
||||
<g
|
||||
id="g27"
|
||||
transform="matrix(1.061729,0,0,1.061729,-1.2222195,-5.9437076)">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path25" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.2740748,0,0,1.2740748,-10.777781,23.784704)"
|
||||
id="g31">
|
||||
<polygon
|
||||
class="am-weather-stroke"
|
||||
fill="#ffa500"
|
||||
stroke="#ffffff"
|
||||
stroke-width="1"
|
||||
points="11.1,6.9 14.3,-2.9 20.5,-2.9 16.4,4.3 20.3,4.3 11.5,14.6 14.9,6.9 "
|
||||
id="polygon29" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(10,-199.38609,85.237485)"
|
||||
id="g33-4">
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4.24692, 4.24692"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2.12346"
|
||||
x1="-11.655619"
|
||||
x2="-11.655619"
|
||||
y1="-1.4159311"
|
||||
y2="7.0779023"
|
||||
id="line27" />
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4.24692, 4.24692"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2.12346"
|
||||
x1="5.2030058"
|
||||
x2="5.2030058"
|
||||
y1="-3.9525981"
|
||||
y2="4.541234"
|
||||
id="line31" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
|
||||
<feOffset dx="0" dy="4" result="offsetblur"/>
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05"/>
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="night">
|
||||
<g transform="translate(20,20)">
|
||||
<g class="am-weather-moon-star-1">
|
||||
<polygon fill="orange" points="3.3,1.5 4,2.7 5.2,3.3 4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7" stroke="none" stroke-miterlimit="10"/>
|
||||
</g>
|
||||
<g class="am-weather-moon-star-2">
|
||||
<polygon fill="orange" points="3.3,1.5 4,2.7 5.2,3.3 4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7" stroke="none" stroke-miterlimit="10" transform="translate(20,10)"/>
|
||||
</g>
|
||||
<g class="am-weather-moon">
|
||||
<path d="M14.5,13.2c0-3.7,2-6.9,5-8.7 c-1.5-0.9-3.2-1.3-5-1.3c-5.5,0-10,4.5-10,10s4.5,10,10,10c1.8,0,3.5-0.5,5-1.3C16.5,20.2,14.5,16.9,14.5,13.2z" fill="orange" stroke="orange" stroke-linejoin="round" stroke-width="2"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,590 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg36"
|
||||
sodipodi:docname="night.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata40">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1847"
|
||||
inkscape:window-height="1102"
|
||||
id="namedview38"
|
||||
showgrid="false"
|
||||
inkscape:zoom="10.639491"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="1509"
|
||||
inkscape:window-y="252"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="night"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-1 {
|
||||
0% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(10px,0px);
|
||||
-moz-transform: translate(10px,0px);
|
||||
-ms-transform: translate(10px,0px);
|
||||
transform: translate(10px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-1 {
|
||||
-webkit-animation-name: am-weather-cloud-1;
|
||||
-moz-animation-name: am-weather-cloud-1;
|
||||
animation-name: am-weather-cloud-1;
|
||||
-webkit-animation-duration: 7s;
|
||||
-moz-animation-duration: 7s;
|
||||
animation-duration: 7s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** SUN
|
||||
*/
|
||||
@keyframes am-weather-sun {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-moz-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun {
|
||||
-webkit-animation-name: am-weather-sun;
|
||||
-moz-animation-name: am-weather-sun;
|
||||
-ms-animation-name: am-weather-sun;
|
||||
animation-name: am-weather-sun;
|
||||
-webkit-animation-duration: 9s;
|
||||
-moz-animation-duration: 9s;
|
||||
-ms-animation-duration: 9s;
|
||||
animation-duration: 9s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-sun-shiny {
|
||||
0% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
stroke-dasharray: 0.1px 10px;
|
||||
stroke-dashoffset: -1px;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun-shiny line {
|
||||
-webkit-animation-name: am-weather-sun-shiny;
|
||||
-moz-animation-name: am-weather-sun-shiny;
|
||||
-ms-animation-name: am-weather-sun-shiny;
|
||||
animation-name: am-weather-sun-shiny;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
** MOON
|
||||
*/
|
||||
@keyframes am-weather-moon {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
-moz-transform: rotate(15deg);
|
||||
-ms-transform: rotate(15deg);
|
||||
transform: rotate(15deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon {
|
||||
-webkit-animation-name: am-weather-moon;
|
||||
-moz-animation-name: am-weather-moon;
|
||||
-ms-animation-name: am-weather-moon;
|
||||
animation-name: am-weather-moon;
|
||||
-webkit-animation-duration: 6s;
|
||||
-moz-animation-duration: 6s;
|
||||
-ms-animation-duration: 6s;
|
||||
animation-duration: 6s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
-webkit-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-moz-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-ms-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-1 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-1 {
|
||||
-webkit-animation-name: am-weather-moon-star-1;
|
||||
-moz-animation-name: am-weather-moon-star-1;
|
||||
-ms-animation-name: am-weather-moon-star-1;
|
||||
animation-name: am-weather-moon-star-1;
|
||||
-webkit-animation-delay: 3s;
|
||||
-moz-animation-delay: 3s;
|
||||
-ms-animation-delay: 3s;
|
||||
animation-delay: 3s;
|
||||
-webkit-animation-duration: 5s;
|
||||
-moz-animation-duration: 5s;
|
||||
-ms-animation-duration: 5s;
|
||||
animation-duration: 5s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-2 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-2 {
|
||||
-webkit-animation-name: am-weather-moon-star-2;
|
||||
-moz-animation-name: am-weather-moon-star-2;
|
||||
-ms-animation-name: am-weather-moon-star-2;
|
||||
animation-name: am-weather-moon-star-2;
|
||||
-webkit-animation-delay: 5s;
|
||||
-moz-animation-delay: 5s;
|
||||
-ms-animation-delay: 5s;
|
||||
animation-delay: 5s;
|
||||
-webkit-animation-duration: 4s;
|
||||
-moz-animation-duration: 4s;
|
||||
-ms-animation-duration: 4s;
|
||||
animation-duration: 4s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** SNOW
|
||||
*/
|
||||
@keyframes am-weather-snow {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(-1.2px) translateY(2px);
|
||||
-moz-transform: translateX(-1.2px) translateY(2px);
|
||||
-ms-transform: translateX(-1.2px) translateY(2px);
|
||||
transform: translateX(-1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(1.4px) translateY(4px);
|
||||
-moz-transform: translateX(1.4px) translateY(4px);
|
||||
-ms-transform: translateX(1.4px) translateY(4px);
|
||||
transform: translateX(1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(-1.6px) translateY(6px);
|
||||
-moz-transform: translateX(-1.6px) translateY(6px);
|
||||
-ms-transform: translateX(-1.6px) translateY(6px);
|
||||
transform: translateX(-1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes am-weather-snow-reverse {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(1.2px) translateY(2px);
|
||||
-moz-transform: translateX(1.2px) translateY(2px);
|
||||
-ms-transform: translateX(1.2px) translateY(2px);
|
||||
transform: translateX(1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(-1.4px) translateY(4px);
|
||||
-moz-transform: translateX(-1.4px) translateY(4px);
|
||||
-ms-transform: translateX(-1.4px) translateY(4px);
|
||||
transform: translateX(-1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(1.6px) translateY(6px);
|
||||
-moz-transform: translateX(1.6px) translateY(6px);
|
||||
-ms-transform: translateX(1.6px) translateY(6px);
|
||||
transform: translateX(1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-snow-1 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-2 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-delay: 1.2s;
|
||||
-moz-animation-delay: 1.2s;
|
||||
-ms-animation-delay: 1.2s;
|
||||
animation-delay: 1.2s;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-3 {
|
||||
-webkit-animation-name: am-weather-snow-reverse;
|
||||
-moz-animation-name: am-weather-snow-reverse;
|
||||
-ms-animation-name: am-weather-snow-reverse;
|
||||
animation-name: am-weather-snow-reverse;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** EASING
|
||||
*/
|
||||
.am-weather-easing-ease-in-out {
|
||||
-webkit-animation-timing-function: ease-in-out;
|
||||
-moz-animation-timing-function: ease-in-out;
|
||||
-ms-animation-timing-function: ease-in-out;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="night">
|
||||
<g
|
||||
transform="matrix(1.7637131,0,0,1.7637131,7.6363987,9.0123566)"
|
||||
id="g33">
|
||||
<g
|
||||
class="am-weather-moon-star-1"
|
||||
id="g23">
|
||||
<polygon
|
||||
fill="#ffa500"
|
||||
points="3.3,1.5 4,2.7 5.2,3.3 4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7 "
|
||||
stroke="none"
|
||||
stroke-miterlimit="10"
|
||||
id="polygon21" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-moon-star-2"
|
||||
id="g27">
|
||||
<polygon
|
||||
fill="#ffa500"
|
||||
points="3.3,1.5 4,2.7 5.2,3.3 4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7 "
|
||||
stroke="none"
|
||||
stroke-miterlimit="10"
|
||||
transform="translate(20,10)"
|
||||
id="polygon25" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-moon"
|
||||
id="g31">
|
||||
<path
|
||||
d="m 14.5,13.2 c 0,-3.7 2,-6.9 5,-8.7 -1.5,-0.9 -3.2,-1.3 -5,-1.3 -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 1.8,0 3.5,-0.5 5,-1.3 -3,-1.7 -5,-5 -5,-8.7 z"
|
||||
fill="#ffa500"
|
||||
stroke="#ffa500"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
id="path29" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
|
||||
<feOffset dx="0" dy="4" result="offsetblur"/>
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05"/>
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="rainy-5">
|
||||
<g transform="translate(20,10)">
|
||||
<g>
|
||||
<path d="M47.7,35.4c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z" fill="#57A0EE" stroke="#FFFFFF" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(34,46), rotate(10)">
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91C0F8" stroke-dasharray="4,7" stroke-linecap="round" stroke-width="2" transform="translate(-6,1)" x1="0" x2="0" y1="0" y2="8" />
|
||||
<line class="am-weather-rain-2" fill="none" stroke="#91C0F8" stroke-dasharray="4,7" stroke-linecap="round" stroke-width="2" transform="translate(0,-1)" x1="0" x2="0" y1="0" y2="8" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,188 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg34"
|
||||
sodipodi:docname="rainy-5.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata38">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1541"
|
||||
inkscape:window-height="1067"
|
||||
id="namedview36"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.202953"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="rainy-5"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="rainy-5">
|
||||
<g
|
||||
transform="matrix(1.2322612,0,0,1.2322612,16.545175,-1.1993859)"
|
||||
id="g25">
|
||||
<g
|
||||
id="g23">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path21" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.2135403,0.2139799,-0.2139799,1.2135403,33.796831,43.162016)"
|
||||
id="g31">
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4, 7"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(-6,1)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="8"
|
||||
id="line27" />
|
||||
<line
|
||||
class="am-weather-rain-2"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4, 7"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,-1)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="8"
|
||||
id="line29" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
|
||||
<feOffset dx="0" dy="4" result="offsetblur"/>
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05"/>
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="rainy-6">
|
||||
<g transform="translate(20,10)">
|
||||
<g>
|
||||
<path d="M47.7,35.4c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z" fill="#57A0EE" stroke="#FFFFFF" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(31,46), rotate(10)">
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91C0F8" stroke-dasharray="4,4" stroke-linecap="round" stroke-width="2" transform="translate(-4,1)" x1="0" x2="0" y1="0" y2="8" />
|
||||
<line class="am-weather-rain-2" fill="none" stroke="#91C0F8" stroke-dasharray="4,4" stroke-linecap="round" stroke-width="2" transform="translate(0,-1)" x1="0" x2="0" y1="0" y2="8" />
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91C0F8" stroke-dasharray="4,4" stroke-linecap="round" stroke-width="2" transform="translate(4,0)" x1="0" x2="0" y1="0" y2="8" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,201 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg36"
|
||||
sodipodi:docname="rainy-6.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata40">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1889"
|
||||
inkscape:window-height="1134"
|
||||
id="namedview38"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.001339"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="rainy-6"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="rainy-6">
|
||||
<g
|
||||
transform="matrix(1.2055471,0,0,1.2055471,16.424962,-0.93491626)"
|
||||
id="g25">
|
||||
<g
|
||||
id="g23">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path21" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.1872321,0.20934105,-0.20934105,1.1872321,29.68598,42.464779)"
|
||||
id="g33">
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4, 4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(-4,1)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="8"
|
||||
id="line27" />
|
||||
<line
|
||||
class="am-weather-rain-2"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4, 4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,-1)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="8"
|
||||
id="line29" />
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4, 4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(4)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="8"
|
||||
id="line31" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
|
||||
<feOffset dx="0" dy="4" result="offsetblur"/>
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05"/>
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="rainy-7">
|
||||
<g transform="translate(20,10)">
|
||||
<g>
|
||||
<path d="M47.7,35.4c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z" fill="#57A0EE" stroke="#FFFFFF" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(31,46), rotate(10)">
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91C0F8" stroke-dasharray="0.1,7" stroke-linecap="round" stroke-width="3" transform="translate(-5,1)" x1="0" x2="0" y1="0" y2="8" />
|
||||
<line class="am-weather-rain-2" fill="none" stroke="#91C0F8" stroke-dasharray="0.1,7" stroke-linecap="round" stroke-width="3" transform="translate(0,-1)" x1="0" x2="0" y1="0" y2="8" />
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91C0F8" stroke-dasharray="0.1,7" stroke-linecap="round" stroke-width="3" transform="translate(5,0)" x1="0" x2="0" y1="0" y2="8" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,201 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg36"
|
||||
sodipodi:docname="rainy-7.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata40">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1558"
|
||||
inkscape:window-height="1295"
|
||||
id="namedview38"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.524221"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="rainy-7"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="rainy-7">
|
||||
<g
|
||||
transform="matrix(1.1755159,0,0,1.1755159,16.289822,-0.63760738)"
|
||||
id="g25">
|
||||
<g
|
||||
id="g23">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path21" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.1576571,0.20412619,-0.20412619,1.1576571,29.220497,41.680964)"
|
||||
id="g33">
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="0.1, 7"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
transform="translate(-5,1)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="8"
|
||||
id="line27" />
|
||||
<line
|
||||
class="am-weather-rain-2"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="0.1, 7"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
transform="translate(0,-1)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="8"
|
||||
id="line29" />
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="0.1, 7"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
transform="translate(5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="8"
|
||||
id="line31" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
|
||||
<feOffset dx="0" dy="4" result="offsetblur"/>
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05"/>
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="snowy-6">
|
||||
<g transform="translate(20,10)">
|
||||
<g class="am-weather-cloud-2">
|
||||
<path d="M47.7,35.4c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z" fill="#57A0EE" stroke="#FFFFFF" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"/>
|
||||
</g>
|
||||
<g class="am-weather-snow-1">
|
||||
<g transform="translate(3,28)">
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1.2" transform="translate(0,9), rotate(0)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(45)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(90)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(135)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
</g>
|
||||
</g>
|
||||
<g class="am-weather-snow-2">
|
||||
<g transform="translate(11,28)">
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1.2" transform="translate(0,9), rotate(0)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(45)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(90)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(135)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
</g>
|
||||
</g>
|
||||
<g class="am-weather-snow-3">
|
||||
<g transform="translate(20,28)">
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1.2" transform="translate(0,9), rotate(0)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(45)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(90)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
<line fill="none" stroke="#57A0EE" stroke-linecap="round" stroke-width="1" transform="translate(0,9), rotate(135)" x1="0" x2="0" y1="-2.5" y2="2.5" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1,430 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg64"
|
||||
sodipodi:docname="snowy-6.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata68">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1556"
|
||||
inkscape:window-height="1086"
|
||||
id="namedview66"
|
||||
showgrid="false"
|
||||
inkscape:zoom="10.083293"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="1843"
|
||||
inkscape:window-y="250"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="snowy-6"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** SNOW
|
||||
*/
|
||||
@keyframes am-weather-snow {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(-1.2px) translateY(2px);
|
||||
-moz-transform: translateX(-1.2px) translateY(2px);
|
||||
-ms-transform: translateX(-1.2px) translateY(2px);
|
||||
transform: translateX(-1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(1.4px) translateY(4px);
|
||||
-moz-transform: translateX(1.4px) translateY(4px);
|
||||
-ms-transform: translateX(1.4px) translateY(4px);
|
||||
transform: translateX(1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(-1.6px) translateY(6px);
|
||||
-moz-transform: translateX(-1.6px) translateY(6px);
|
||||
-ms-transform: translateX(-1.6px) translateY(6px);
|
||||
transform: translateX(-1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes am-weather-snow-reverse {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(1.2px) translateY(2px);
|
||||
-moz-transform: translateX(1.2px) translateY(2px);
|
||||
-ms-transform: translateX(1.2px) translateY(2px);
|
||||
transform: translateX(1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(-1.4px) translateY(4px);
|
||||
-moz-transform: translateX(-1.4px) translateY(4px);
|
||||
-ms-transform: translateX(-1.4px) translateY(4px);
|
||||
transform: translateX(-1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(1.6px) translateY(6px);
|
||||
-moz-transform: translateX(1.6px) translateY(6px);
|
||||
-ms-transform: translateX(1.6px) translateY(6px);
|
||||
transform: translateX(1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-snow-1 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-2 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-delay: 1.2s;
|
||||
-moz-animation-delay: 1.2s;
|
||||
-ms-animation-delay: 1.2s;
|
||||
animation-delay: 1.2s;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-3 {
|
||||
-webkit-animation-name: am-weather-snow-reverse;
|
||||
-moz-animation-name: am-weather-snow-reverse;
|
||||
-ms-animation-name: am-weather-snow-reverse;
|
||||
animation-name: am-weather-snow-reverse;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="snowy-6">
|
||||
<g
|
||||
transform="matrix(1.2195122,0,0,1.2195122,16.487805,-1.0731708)"
|
||||
id="g61">
|
||||
<g
|
||||
class="am-weather-cloud-2"
|
||||
id="g23">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path21" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-snow-1"
|
||||
id="g35">
|
||||
<g
|
||||
transform="translate(3,28)"
|
||||
id="g33">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line25" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(45,-10.863961,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line27" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(90,-4.5,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line29" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(135,-1.863961,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line31" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-snow-2"
|
||||
id="g47">
|
||||
<g
|
||||
transform="translate(11,28)"
|
||||
id="g45">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line37" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(45,-10.863961,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line39" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(90,-4.5,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line41" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(135,-1.863961,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line43" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-snow-3"
|
||||
id="g59">
|
||||
<g
|
||||
transform="translate(20,28)"
|
||||
id="g57">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line49" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(45,-10.863961,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line51" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(90,-4.5,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line53" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(135,-1.863961,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line55" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="64" height="64" viewbox="0 0 64 64"
|
||||
id="svg40" sodipodi:docname="snowy-rainy.svg" inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata id="metadata44">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
|
||||
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
|
||||
inkscape:window-width="1348" inkscape:window-height="893" id="namedview42" showgrid="false"
|
||||
inkscape:zoom="4.8250399" inkscape:cx="32" inkscape:cy="32" inkscape:window-x="1074" inkscape:window-y="74"
|
||||
inkscape:window-maximized="0" inkscape:current-layer="snowy-4" inkscape:document-rotation="0" />
|
||||
<defs id="defs19">
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" id="feGaussianBlur2" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" id="feOffset4" />
|
||||
<feComponentTransfer id="feComponentTransfer8">
|
||||
<feFuncA type="linear" slope="0.05" id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge id="feMerge14">
|
||||
<feMergeNode id="feMergeNode10" />
|
||||
<feMergeNode in="SourceGraphic" id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="snowy-4">
|
||||
<g transform="matrix(1.2101111,0,0,1.2101111,16.4455,-0.98009986)" id="g37">
|
||||
<g id="g23">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee" stroke="#ffffff" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"
|
||||
id="path21" />
|
||||
</g>
|
||||
<g class="am-weather-snow-1" id="g35">
|
||||
<g transform="translate(11,28)" id="g33">
|
||||
<line fill="none" stroke="#57a0ee" stroke-linecap="round" stroke-width="1.2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="-2.5" y2="2.5" id="line25" />
|
||||
<line fill="none" stroke="#57a0ee" stroke-linecap="round" stroke-width="1"
|
||||
transform="rotate(45,-10.863961,4.5)" x1="0" x2="0" y1="-2.5" y2="2.5" id="line27" />
|
||||
<line fill="none" stroke="#57a0ee" stroke-linecap="round" stroke-width="1"
|
||||
transform="rotate(90,-4.5,4.5)" x1="0" x2="0" y1="-2.5" y2="2.5" id="line29" />
|
||||
<line fill="none" stroke="#57a0ee" stroke-linecap="round" stroke-width="1"
|
||||
transform="rotate(135,-1.863961,4.5)" x1="0" x2="0" y1="-2.5" y2="2.5" id="line31" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91c0f8" stroke-dasharray="4.84044, 4.84044"
|
||||
stroke-linecap="round" stroke-width="2.42022" x1="20.420971" x2="18.739901" y1="42.776844" y2="52.310658"
|
||||
id="line27-8" />
|
||||
<line class="am-weather-rain-1" fill="none" stroke="#91c0f8" stroke-dasharray="4.84044, 4.84044"
|
||||
stroke-linecap="round" stroke-width="2.42022" x1="39.845806" x2="38.164742" y1="43.266186" y2="52.799999"
|
||||
id="line31-1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,289 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg40"
|
||||
sodipodi:docname="snowy-rainy.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata44">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1348"
|
||||
inkscape:window-height="893"
|
||||
id="namedview42"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.8250399"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="1074"
|
||||
inkscape:window-y="74"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="snowy-4"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** SNOW
|
||||
*/
|
||||
@keyframes am-weather-snow {
|
||||
0% {
|
||||
-webkit-transform: translate(0.0px,0);
|
||||
-moz-transform: translate(0.0px,0);
|
||||
-ms-transform: translate(0.0px,0);
|
||||
transform: translate(0.0px,0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translate(-1.2px,2px);
|
||||
-moz-transform: translate(-1.2px,2px);
|
||||
-ms-transform: translate(-1.2px,2px);
|
||||
transform: translate(-1.2px,2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translate(1.4px,4px);
|
||||
-moz-transform: translate(1.4px,4px);
|
||||
-ms-transform: translate(1.4px,4px);
|
||||
transform: translate(1.4px,4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(-1.6px,6px);
|
||||
-moz-transform: translate(-1.6px,6px);
|
||||
-ms-transform: translate(-1.6px,6px);
|
||||
transform: translate(-1.6px,6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-snow-1 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="snowy-4">
|
||||
<g
|
||||
transform="matrix(1.2101111,0,0,1.2101111,16.4455,-0.98009986)"
|
||||
id="g37">
|
||||
<g
|
||||
id="g23">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path21" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-snow-1"
|
||||
id="g35">
|
||||
<g
|
||||
transform="translate(11,28)"
|
||||
id="g33">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line25" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(45,-10.863961,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line27" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(90,-4.5,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line29" />
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-linecap="round"
|
||||
stroke-width="1"
|
||||
transform="rotate(135,-1.863961,4.5)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="-2.5"
|
||||
y2="2.5"
|
||||
id="line31" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4.84044, 4.84044"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2.42022"
|
||||
x1="20.420971"
|
||||
x2="18.739901"
|
||||
y1="42.776844"
|
||||
y2="52.310658"
|
||||
id="line27-8" />
|
||||
<line
|
||||
class="am-weather-rain-1"
|
||||
fill="none"
|
||||
stroke="#91c0f8"
|
||||
stroke-dasharray="4.84044, 4.84044"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2.42022"
|
||||
x1="39.845806"
|
||||
x2="38.164742"
|
||||
y1="43.266186"
|
||||
y2="52.799999"
|
||||
id="line31-1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.9 KiB |
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- (c) ammap.com | SVG weather icons -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"
|
||||
viewbox="0 0 64 64">
|
||||
<defs>
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" />
|
||||
<feComponentTransfer>
|
||||
<feFuncA type="linear" slope="0.05" />
|
||||
</feComponentTransfer>
|
||||
<feMerge>
|
||||
<feMergeNode />
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="thunder">
|
||||
<g transform="translate(20,10)">
|
||||
<g class="am-weather-cloud-1">
|
||||
<path
|
||||
d="M47.7,35.4 c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z"
|
||||
fill="#91C0F8" stroke="white" stroke-linejoin="round" stroke-width="1.2"
|
||||
transform="translate(-15,-6), scale(0.6)" />
|
||||
</g>
|
||||
<g>
|
||||
<path
|
||||
d="M47.7,35.4 c0-4.6-3.7-8.2-8.2-8.2c-1,0-1.9,0.2-2.8,0.5c-0.3-3.4-3.1-6.2-6.6-6.2c-3.7,0-6.7,3-6.7,6.7c0,0.8,0.2,1.6,0.4,2.3 c-0.3-0.1-0.7-0.1-1-0.1c-3.7,0-6.7,3-6.7,6.7c0,3.6,2.9,6.6,6.5,6.7l17.2,0C44.2,43.3,47.7,39.8,47.7,35.4z"
|
||||
fill="#57A0EE" stroke="#FFFFFF" stroke-linejoin="round" stroke-width="1.2"
|
||||
transform="translate(-20,-11)" />
|
||||
</g>
|
||||
<g transform="translate(-9,28), scale(1.2)">
|
||||
<polygon class="am-weather-stroke" fill="orange" stroke="white" stroke-width="1"
|
||||
points="14.3,-2.9 20.5,-2.9 16.4,4.3 20.3,4.3 11.5,14.6 14.9,6.9 11.1,6.9" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,357 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg36"
|
||||
sodipodi:docname="thunder.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata40">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1646"
|
||||
inkscape:window-height="1167"
|
||||
id="namedview38"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.936293"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="thunder"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-1 {
|
||||
0% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(10px,0px);
|
||||
-moz-transform: translate(10px,0px);
|
||||
-ms-transform: translate(10px,0px);
|
||||
transform: translate(10px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-1 {
|
||||
-webkit-animation-name: am-weather-cloud-1;
|
||||
-moz-animation-name: am-weather-cloud-1;
|
||||
animation-name: am-weather-cloud-1;
|
||||
-webkit-animation-duration: 7s;
|
||||
-moz-animation-duration: 7s;
|
||||
animation-duration: 7s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** STROKE
|
||||
*/
|
||||
@keyframes am-weather-stroke {
|
||||
0% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
2% {
|
||||
-webkit-transform: translate(0.3px,0.0px);
|
||||
-moz-transform: translate(0.3px,0.0px);
|
||||
-ms-transform: translate(0.3px,0.0px);
|
||||
transform: translate(0.3px,0.0px);
|
||||
}
|
||||
|
||||
4% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
6% {
|
||||
-webkit-transform: translate(0.5px,0.4px);
|
||||
-moz-transform: translate(0.5px,0.4px);
|
||||
-ms-transform: translate(0.5px,0.4px);
|
||||
transform: translate(0.5px,0.4px);
|
||||
}
|
||||
|
||||
8% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
10% {
|
||||
-webkit-transform: translate(0.3px,0.0px);
|
||||
-moz-transform: translate(0.3px,0.0px);
|
||||
-ms-transform: translate(0.3px,0.0px);
|
||||
transform: translate(0.3px,0.0px);
|
||||
}
|
||||
|
||||
12% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
14% {
|
||||
-webkit-transform: translate(0.3px,0.0px);
|
||||
-moz-transform: translate(0.3px,0.0px);
|
||||
-ms-transform: translate(0.3px,0.0px);
|
||||
transform: translate(0.3px,0.0px);
|
||||
}
|
||||
|
||||
16% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
18% {
|
||||
-webkit-transform: translate(0.3px,0.0px);
|
||||
-moz-transform: translate(0.3px,0.0px);
|
||||
-ms-transform: translate(0.3px,0.0px);
|
||||
transform: translate(0.3px,0.0px);
|
||||
}
|
||||
|
||||
20% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
22% {
|
||||
-webkit-transform: translate(1px,0.0px);
|
||||
-moz-transform: translate(1px,0.0px);
|
||||
-ms-transform: translate(1px,0.0px);
|
||||
transform: translate(1px,0.0px);
|
||||
}
|
||||
|
||||
24% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
26% {
|
||||
-webkit-transform: translate(-1px,0.0px);
|
||||
-moz-transform: translate(-1px,0.0px);
|
||||
-ms-transform: translate(-1px,0.0px);
|
||||
transform: translate(-1px,0.0px);
|
||||
|
||||
}
|
||||
|
||||
28% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
40% {
|
||||
fill: orange;
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
|
||||
65% {
|
||||
fill: white;
|
||||
-webkit-transform: translate(-1px,5.0px);
|
||||
-moz-transform: translate(-1px,5.0px);
|
||||
-ms-transform: translate(-1px,5.0px);
|
||||
transform: translate(-1px,5.0px);
|
||||
}
|
||||
61% {
|
||||
fill: orange;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0.0px,0.0px);
|
||||
-moz-transform: translate(0.0px,0.0px);
|
||||
-ms-transform: translate(0.0px,0.0px);
|
||||
transform: translate(0.0px,0.0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-stroke {
|
||||
-webkit-animation-name: am-weather-stroke;
|
||||
-moz-animation-name: am-weather-stroke;
|
||||
animation-name: am-weather-stroke;
|
||||
-webkit-animation-duration: 1.11s;
|
||||
-moz-animation-duration: 1.11s;
|
||||
animation-duration: 1.11s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="thunder">
|
||||
<g
|
||||
transform="matrix(1.061729,0,0,1.061729,16.777781,4.0562924)"
|
||||
id="g33">
|
||||
<g
|
||||
class="am-weather-cloud-1"
|
||||
id="g23">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#91c0f8"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="matrix(0.6,0,0,0.6,-10,-6)"
|
||||
id="path21" />
|
||||
</g>
|
||||
<g
|
||||
id="g27">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#57a0ee"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path25" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.2,0,0,1.2,-9,28)"
|
||||
id="g31">
|
||||
<polygon
|
||||
class="am-weather-stroke"
|
||||
fill="#ffa500"
|
||||
stroke="#ffffff"
|
||||
stroke-width="1"
|
||||
points="14.9,6.9 11.1,6.9 14.3,-2.9 20.5,-2.9 16.4,4.3 20.3,4.3 11.5,14.6 "
|
||||
id="polygon29" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="64" height="64" viewbox="0 0 64 64"
|
||||
id="svg42" sodipodi:docname="windy-night-modif.svg" inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata id="metadata46">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
|
||||
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
|
||||
inkscape:window-width="1671" inkscape:window-height="1295" id="namedview44" showgrid="false"
|
||||
inkscape:zoom="13.4988" inkscape:cx="32" inkscape:cy="34.384286" inkscape:window-x="171" inkscape:window-y="124"
|
||||
inkscape:window-maximized="0" inkscape:current-layer="svg42" inkscape:document-rotation="0" />
|
||||
<defs id="defs19">
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" id="feGaussianBlur2" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" id="feOffset4" />
|
||||
<feComponentTransfer id="feComponentTransfer8">
|
||||
<feFuncA type="linear" slope="0.05" id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge id="feMerge14">
|
||||
<feMergeNode id="feMergeNode10" />
|
||||
<feMergeNode in="SourceGraphic" id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter id="blur-5" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" id="feGaussianBlur28" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" id="feOffset30" />
|
||||
<feComponentTransfer id="feComponentTransfer34">
|
||||
<feFuncA type="linear" slope="0.05" id="feFuncA32" />
|
||||
</feComponentTransfer>
|
||||
<feMerge id="feMerge40">
|
||||
<feMergeNode id="feMergeNode36" />
|
||||
<feMergeNode in="SourceGraphic" id="feMergeNode38" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="cloudy-night-2">
|
||||
<g transform="matrix(1.1348201,0,0,1.1348201,13.10669,5.0989355)" id="g39">
|
||||
<g transform="matrix(0.8,0,0,0.8,16,4)" id="g33">
|
||||
<g class="am-weather-moon-star-1" id="g23">
|
||||
<polygon fill="#ffa500" points="4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7 3.3,1.5 4,2.7 5.2,3.3 " stroke="none"
|
||||
stroke-miterlimit="10" id="polygon21" />
|
||||
</g>
|
||||
<g class="am-weather-moon-star-2" id="g27">
|
||||
<polygon fill="#ffa500" points="4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7 3.3,1.5 4,2.7 5.2,3.3 " stroke="none"
|
||||
stroke-miterlimit="10" transform="translate(20,10)" id="polygon25" />
|
||||
</g>
|
||||
<g class="am-weather-moon" id="g31">
|
||||
<path
|
||||
d="m 14.5,13.2 c 0,-3.7 2,-6.9 5,-8.7 -1.5,-0.9 -3.2,-1.3 -5,-1.3 -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 1.8,0 3.5,-0.5 5,-1.3 -3,-1.7 -5,-5 -5,-8.7 z"
|
||||
fill="#ffa500" stroke="#ffa500" stroke-linejoin="round" stroke-width="2" id="path29" />
|
||||
</g>
|
||||
</g>
|
||||
<g class="am-weather-cloud-2" id="g37">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#91c0f8" stroke="#ffffff" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"
|
||||
id="path35" />
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(0.7,0,0,0.7,4.3355856,22.270636)" id="g59">
|
||||
<path class="am-weather-cloud-3" d="m 13,26 h 20 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5" fill="none" stroke="#ffffff"
|
||||
stroke-width="5.4" stroke-linecap="round" id="path47" />
|
||||
<path class="am-weather-cloud-2" d="m 10,32 h 35 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5" fill="none" stroke="#ffffff"
|
||||
stroke-width="5.4" stroke-linecap="round" id="path49" />
|
||||
<path class="am-weather-cloud-1" d="m 16,38 h 22 a 5,5 0 0 1 0,10 5,5 0 0 1 -5,-5" fill="none" stroke="#ffffff"
|
||||
stroke-width="5.4" stroke-linecap="round" id="path51" />
|
||||
<path class="am-weather-cloud-3" d="m 13,26 h 20 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5" fill="none" stroke="#57a0ee"
|
||||
stroke-width="3" stroke-linecap="round" id="path53" />
|
||||
<path class="am-weather-cloud-2" d="m 10,32 h 35 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5" fill="none" stroke="#57a0ee"
|
||||
stroke-width="3" stroke-linecap="round" id="path55" />
|
||||
<path class="am-weather-cloud-1" d="m 16,38 h 22 a 5,5 0 0 1 0,10 5,5 0 0 1 -5,-5" fill="none" stroke="#57a0ee"
|
||||
stroke-width="3" stroke-linecap="round" id="path57" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1,847 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg42"
|
||||
sodipodi:docname="windy-night-modif.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata46">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1671"
|
||||
inkscape:window-height="1295"
|
||||
id="namedview44"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.4988"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="34.384286"
|
||||
inkscape:window-x="171"
|
||||
inkscape:window-y="124"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg42"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** MOON
|
||||
*/
|
||||
@keyframes am-weather-moon {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
-moz-transform: rotate(15deg);
|
||||
-ms-transform: rotate(15deg);
|
||||
transform: rotate(15deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon {
|
||||
-webkit-animation-name: am-weather-moon;
|
||||
-moz-animation-name: am-weather-moon;
|
||||
-ms-animation-name: am-weather-moon;
|
||||
animation-name: am-weather-moon;
|
||||
-webkit-animation-duration: 6s;
|
||||
-moz-animation-duration: 6s;
|
||||
-ms-animation-duration: 6s;
|
||||
animation-duration: 6s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
-webkit-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-moz-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-ms-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-1 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-1 {
|
||||
-webkit-animation-name: am-weather-moon-star-1;
|
||||
-moz-animation-name: am-weather-moon-star-1;
|
||||
-ms-animation-name: am-weather-moon-star-1;
|
||||
animation-name: am-weather-moon-star-1;
|
||||
-webkit-animation-delay: 3s;
|
||||
-moz-animation-delay: 3s;
|
||||
-ms-animation-delay: 3s;
|
||||
animation-delay: 3s;
|
||||
-webkit-animation-duration: 5s;
|
||||
-moz-animation-duration: 5s;
|
||||
-ms-animation-duration: 5s;
|
||||
animation-duration: 5s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-2 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-2 {
|
||||
-webkit-animation-name: am-weather-moon-star-2;
|
||||
-moz-animation-name: am-weather-moon-star-2;
|
||||
-ms-animation-name: am-weather-moon-star-2;
|
||||
animation-name: am-weather-moon-star-2;
|
||||
-webkit-animation-delay: 5s;
|
||||
-moz-animation-delay: 5s;
|
||||
-ms-animation-delay: 5s;
|
||||
animation-delay: 5s;
|
||||
-webkit-animation-duration: 4s;
|
||||
-moz-animation-duration: 4s;
|
||||
-ms-animation-duration: 4s;
|
||||
animation-duration: 4s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
]]></style>
|
||||
<filter
|
||||
id="blur-5"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur28" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset30" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer34">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA32" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge40">
|
||||
<feMergeNode
|
||||
id="feMergeNode36" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode38" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style43"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-1 {
|
||||
0% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(6px,0px);
|
||||
-moz-transform: translate(6px,0px);
|
||||
-ms-transform: translate(6px,0px);
|
||||
transform: translate(6px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-1 {
|
||||
-webkit-animation-name: am-weather-cloud-1;
|
||||
-moz-animation-name: am-weather-cloud-1;
|
||||
animation-name: am-weather-cloud-1;
|
||||
-webkit-animation-duration: 7s;
|
||||
-moz-animation-duration: 7s;
|
||||
animation-duration: 7s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** SUN
|
||||
*/
|
||||
@keyframes am-weather-sun {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-moz-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun {
|
||||
-webkit-animation-name: am-weather-sun;
|
||||
-moz-animation-name: am-weather-sun;
|
||||
-ms-animation-name: am-weather-sun;
|
||||
animation-name: am-weather-sun;
|
||||
-webkit-animation-duration: 9s;
|
||||
-moz-animation-duration: 9s;
|
||||
-ms-animation-duration: 9s;
|
||||
animation-duration: 9s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-sun-shiny {
|
||||
0% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
stroke-dasharray: 0.1px 10px;
|
||||
stroke-dashoffset: -1px;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun-shiny line {
|
||||
-webkit-animation-name: am-weather-sun-shiny;
|
||||
-moz-animation-name: am-weather-sun-shiny;
|
||||
-ms-animation-name: am-weather-sun-shiny;
|
||||
animation-name: am-weather-sun-shiny;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
** MOON
|
||||
*/
|
||||
@keyframes am-weather-moon {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
-moz-transform: rotate(15deg);
|
||||
-ms-transform: rotate(15deg);
|
||||
transform: rotate(15deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon {
|
||||
-webkit-animation-name: am-weather-moon;
|
||||
-moz-animation-name: am-weather-moon;
|
||||
-ms-animation-name: am-weather-moon;
|
||||
animation-name: am-weather-moon;
|
||||
-webkit-animation-duration: 6s;
|
||||
-moz-animation-duration: 6s;
|
||||
-ms-animation-duration: 6s;
|
||||
animation-duration: 6s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
-webkit-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-moz-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-ms-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-1 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-1 {
|
||||
-webkit-animation-name: am-weather-moon-star-1;
|
||||
-moz-animation-name: am-weather-moon-star-1;
|
||||
-ms-animation-name: am-weather-moon-star-1;
|
||||
animation-name: am-weather-moon-star-1;
|
||||
-webkit-animation-delay: 3s;
|
||||
-moz-animation-delay: 3s;
|
||||
-ms-animation-delay: 3s;
|
||||
animation-delay: 3s;
|
||||
-webkit-animation-duration: 5s;
|
||||
-moz-animation-duration: 5s;
|
||||
-ms-animation-duration: 5s;
|
||||
animation-duration: 5s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-2 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-2 {
|
||||
-webkit-animation-name: am-weather-moon-star-2;
|
||||
-moz-animation-name: am-weather-moon-star-2;
|
||||
-ms-animation-name: am-weather-moon-star-2;
|
||||
animation-name: am-weather-moon-star-2;
|
||||
-webkit-animation-delay: 5s;
|
||||
-moz-animation-delay: 5s;
|
||||
-ms-animation-delay: 5s;
|
||||
animation-delay: 5s;
|
||||
-webkit-animation-duration: 4s;
|
||||
-moz-animation-duration: 4s;
|
||||
-ms-animation-duration: 4s;
|
||||
animation-duration: 4s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** SNOW
|
||||
*/
|
||||
@keyframes am-weather-snow {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(-1.2px) translateY(2px);
|
||||
-moz-transform: translateX(-1.2px) translateY(2px);
|
||||
-ms-transform: translateX(-1.2px) translateY(2px);
|
||||
transform: translateX(-1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(1.4px) translateY(4px);
|
||||
-moz-transform: translateX(1.4px) translateY(4px);
|
||||
-ms-transform: translateX(1.4px) translateY(4px);
|
||||
transform: translateX(1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(-1.6px) translateY(6px);
|
||||
-moz-transform: translateX(-1.6px) translateY(6px);
|
||||
-ms-transform: translateX(-1.6px) translateY(6px);
|
||||
transform: translateX(-1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes am-weather-snow-reverse {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(1.2px) translateY(2px);
|
||||
-moz-transform: translateX(1.2px) translateY(2px);
|
||||
-ms-transform: translateX(1.2px) translateY(2px);
|
||||
transform: translateX(1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(-1.4px) translateY(4px);
|
||||
-moz-transform: translateX(-1.4px) translateY(4px);
|
||||
-ms-transform: translateX(-1.4px) translateY(4px);
|
||||
transform: translateX(-1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(1.6px) translateY(6px);
|
||||
-moz-transform: translateX(1.6px) translateY(6px);
|
||||
-ms-transform: translateX(1.6px) translateY(6px);
|
||||
transform: translateX(1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-snow-1 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-2 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-delay: 1.2s;
|
||||
-moz-animation-delay: 1.2s;
|
||||
-ms-animation-delay: 1.2s;
|
||||
animation-delay: 1.2s;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-3 {
|
||||
-webkit-animation-name: am-weather-snow-reverse;
|
||||
-moz-animation-name: am-weather-snow-reverse;
|
||||
-ms-animation-name: am-weather-snow-reverse;
|
||||
animation-name: am-weather-snow-reverse;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** EASING
|
||||
*/
|
||||
.am-weather-easing-ease-in-out {
|
||||
-webkit-animation-timing-function: ease-in-out;
|
||||
-moz-animation-timing-function: ease-in-out;
|
||||
-ms-animation-timing-function: ease-in-out;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="cloudy-night-2">
|
||||
<g
|
||||
transform="matrix(1.1348201,0,0,1.1348201,13.10669,5.0989355)"
|
||||
id="g39">
|
||||
<g
|
||||
transform="matrix(0.8,0,0,0.8,16,4)"
|
||||
id="g33">
|
||||
<g
|
||||
class="am-weather-moon-star-1"
|
||||
id="g23">
|
||||
<polygon
|
||||
fill="#ffa500"
|
||||
points="4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7 3.3,1.5 4,2.7 5.2,3.3 "
|
||||
stroke="none"
|
||||
stroke-miterlimit="10"
|
||||
id="polygon21" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-moon-star-2"
|
||||
id="g27">
|
||||
<polygon
|
||||
fill="#ffa500"
|
||||
points="4,4 3.3,5.2 2.7,4 1.5,3.3 2.7,2.7 3.3,1.5 4,2.7 5.2,3.3 "
|
||||
stroke="none"
|
||||
stroke-miterlimit="10"
|
||||
transform="translate(20,10)"
|
||||
id="polygon25" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-moon"
|
||||
id="g31">
|
||||
<path
|
||||
d="m 14.5,13.2 c 0,-3.7 2,-6.9 5,-8.7 -1.5,-0.9 -3.2,-1.3 -5,-1.3 -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 1.8,0 3.5,-0.5 5,-1.3 -3,-1.7 -5,-5 -5,-8.7 z"
|
||||
fill="#ffa500"
|
||||
stroke="#ffa500"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
id="path29" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-cloud-2"
|
||||
id="g37">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#91c0f8"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path35" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.7,0,0,0.7,4.3355856,22.270636)"
|
||||
id="g59">
|
||||
<path
|
||||
class="am-weather-cloud-3"
|
||||
d="m 13,26 h 20 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5"
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
stroke-width="5.4"
|
||||
stroke-linecap="round"
|
||||
id="path47" />
|
||||
<path
|
||||
class="am-weather-cloud-2"
|
||||
d="m 10,32 h 35 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5"
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
stroke-width="5.4"
|
||||
stroke-linecap="round"
|
||||
id="path49" />
|
||||
<path
|
||||
class="am-weather-cloud-1"
|
||||
d="m 16,38 h 22 a 5,5 0 0 1 0,10 5,5 0 0 1 -5,-5"
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
stroke-width="5.4"
|
||||
stroke-linecap="round"
|
||||
id="path51" />
|
||||
<path
|
||||
class="am-weather-cloud-3"
|
||||
d="m 13,26 h 20 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5"
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
id="path53" />
|
||||
<path
|
||||
class="am-weather-cloud-2"
|
||||
d="m 10,32 h 35 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5"
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
id="path55" />
|
||||
<path
|
||||
class="am-weather-cloud-1"
|
||||
d="m 16,38 h 22 a 5,5 0 0 1 0,10 5,5 0 0 1 -5,-5"
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
id="path57" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="64" height="64" viewbox="0 0 64 64"
|
||||
id="svg66" sodipodi:docname="windy-modif.svg" inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata id="metadata70">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
|
||||
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
|
||||
inkscape:window-width="1383" inkscape:window-height="1278" id="namedview68" showgrid="false"
|
||||
inkscape:zoom="7.1844982" inkscape:cx="32" inkscape:cy="32" inkscape:window-x="260" inkscape:window-y="473"
|
||||
inkscape:window-maximized="0" inkscape:current-layer="svg66" inkscape:document-rotation="0" />
|
||||
<defs id="defs19">
|
||||
<filter id="blur" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" id="feGaussianBlur2" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" id="feOffset4" />
|
||||
<feComponentTransfer id="feComponentTransfer8">
|
||||
<feFuncA type="linear" slope="0.05" id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge id="feMerge14">
|
||||
<feMergeNode id="feMergeNode10" />
|
||||
<feMergeNode in="SourceGraphic" id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter id="blur-4" width="200%" height="200%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="3" id="feGaussianBlur40" />
|
||||
<feOffset dx="0" dy="4" result="offsetblur" id="feOffset42" />
|
||||
<feComponentTransfer id="feComponentTransfer46">
|
||||
<feFuncA type="linear" slope="0.05" id="feFuncA44" />
|
||||
</feComponentTransfer>
|
||||
<feMerge id="feMerge52">
|
||||
<feMergeNode id="feMergeNode48" />
|
||||
<feMergeNode in="SourceGraphic" id="feMergeNode50" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#blur)" id="cloudy-day-2">
|
||||
<g transform="matrix(1.0657299,0,0,1.0657299,21.854489,7.8028103)" id="g63">
|
||||
<g transform="translate(0,16)" id="g57">
|
||||
<g class="am-weather-sun" id="g53">
|
||||
<g id="g23">
|
||||
<line fill="none" stroke="#ffa500" stroke-linecap="round" stroke-width="2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="0" y2="3" id="line21" />
|
||||
</g>
|
||||
<g transform="rotate(45)" id="g27">
|
||||
<line fill="none" stroke="#ffa500" stroke-linecap="round" stroke-width="2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="0" y2="3" id="line25" />
|
||||
</g>
|
||||
<g transform="rotate(90)" id="g31">
|
||||
<line fill="none" stroke="#ffa500" stroke-linecap="round" stroke-width="2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="0" y2="3" id="line29" />
|
||||
</g>
|
||||
<g transform="rotate(135)" id="g35">
|
||||
<line fill="none" stroke="#ffa500" stroke-linecap="round" stroke-width="2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="0" y2="3" id="line33" />
|
||||
</g>
|
||||
<g transform="scale(-1)" id="g39">
|
||||
<line fill="none" stroke="#ffa500" stroke-linecap="round" stroke-width="2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="0" y2="3" id="line37" />
|
||||
</g>
|
||||
<g transform="rotate(-135)" id="g43">
|
||||
<line fill="none" stroke="#ffa500" stroke-linecap="round" stroke-width="2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="0" y2="3" id="line41" />
|
||||
</g>
|
||||
<g transform="rotate(-90)" id="g47">
|
||||
<line fill="none" stroke="#ffa500" stroke-linecap="round" stroke-width="2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="0" y2="3" id="line45" />
|
||||
</g>
|
||||
<g transform="rotate(-45)" id="g51">
|
||||
<line fill="none" stroke="#ffa500" stroke-linecap="round" stroke-width="2" transform="translate(0,9)"
|
||||
x1="0" x2="0" y1="0" y2="3" id="line49" />
|
||||
</g>
|
||||
</g>
|
||||
<circle cx="0" cy="0" fill="#ffa500" r="5" stroke="#ffa500" stroke-width="2" id="circle55" />
|
||||
</g>
|
||||
<g class="am-weather-cloud-2" id="g61">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#91c0f8" stroke="#ffffff" stroke-linejoin="round" stroke-width="1.2" transform="translate(-20,-11)"
|
||||
id="path59" />
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(0.7,0,0,0.7,17.276856,21.305209)" id="g71">
|
||||
<path class="am-weather-cloud-3" d="m 13,26 h 20 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5" fill="none" stroke="#ffffff"
|
||||
stroke-width="5.4" stroke-linecap="round" id="path59-2" />
|
||||
<path class="am-weather-cloud-2" d="m 10,32 h 35 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5" fill="none" stroke="#ffffff"
|
||||
stroke-width="5.4" stroke-linecap="round" id="path61" />
|
||||
<path class="am-weather-cloud-1" d="m 16,38 h 22 a 5,5 0 0 1 0,10 5,5 0 0 1 -5,-5" fill="none" stroke="#ffffff"
|
||||
stroke-width="5.4" stroke-linecap="round" id="path63" />
|
||||
<path class="am-weather-cloud-3" d="m 13,26 h 20 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5" fill="none" stroke="#57a0ee"
|
||||
stroke-width="3" stroke-linecap="round" id="path65" />
|
||||
<path class="am-weather-cloud-2" d="m 10,32 h 35 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5" fill="none" stroke="#57a0ee"
|
||||
stroke-width="3" stroke-linecap="round" id="path67" />
|
||||
<path class="am-weather-cloud-1" d="m 16,38 h 22 a 5,5 0 0 1 0,10 5,5 0 0 1 -5,-5" fill="none" stroke="#57a0ee"
|
||||
stroke-width="3" stroke-linecap="round" id="path69" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.5 KiB |
@@ -0,0 +1,905 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
viewbox="0 0 64 64"
|
||||
id="svg66"
|
||||
sodipodi:docname="windy-modif.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<metadata
|
||||
id="metadata70">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1383"
|
||||
inkscape:window-height="1278"
|
||||
id="namedview68"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.1844982"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-x="260"
|
||||
inkscape:window-y="473"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg66"
|
||||
inkscape:document-rotation="0" />
|
||||
<defs
|
||||
id="defs19">
|
||||
<filter
|
||||
id="blur"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur2" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset4" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer8">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA6" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge14">
|
||||
<feMergeNode
|
||||
id="feMergeNode10" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode12" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style17"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** SUN
|
||||
*/
|
||||
@keyframes am-weather-sun {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-moz-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun {
|
||||
-webkit-animation-name: am-weather-sun;
|
||||
-moz-animation-name: am-weather-sun;
|
||||
-ms-animation-name: am-weather-sun;
|
||||
animation-name: am-weather-sun;
|
||||
-webkit-animation-duration: 9s;
|
||||
-moz-animation-duration: 9s;
|
||||
-ms-animation-duration: 9s;
|
||||
animation-duration: 9s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-sun-shiny {
|
||||
0% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
stroke-dasharray: 0.1px 10px;
|
||||
stroke-dashoffset: -1px;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun-shiny line {
|
||||
-webkit-animation-name: am-weather-sun-shiny;
|
||||
-moz-animation-name: am-weather-sun-shiny;
|
||||
-ms-animation-name: am-weather-sun-shiny;
|
||||
animation-name: am-weather-sun-shiny;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
]]></style>
|
||||
<filter
|
||||
id="blur-4"
|
||||
width="200%"
|
||||
height="200%">
|
||||
<feGaussianBlur
|
||||
in="SourceAlpha"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur40" />
|
||||
<feOffset
|
||||
dx="0"
|
||||
dy="4"
|
||||
result="offsetblur"
|
||||
id="feOffset42" />
|
||||
<feComponentTransfer
|
||||
id="feComponentTransfer46">
|
||||
<feFuncA
|
||||
type="linear"
|
||||
slope="0.05"
|
||||
id="feFuncA44" />
|
||||
</feComponentTransfer>
|
||||
<feMerge
|
||||
id="feMerge52">
|
||||
<feMergeNode
|
||||
id="feMergeNode48" />
|
||||
<feMergeNode
|
||||
in="SourceGraphic"
|
||||
id="feMergeNode50" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<style
|
||||
type="text/css"
|
||||
id="style55"><![CDATA[
|
||||
/*
|
||||
** CLOUDS
|
||||
*/
|
||||
@keyframes am-weather-cloud-1 {
|
||||
0% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(6px,0px);
|
||||
-moz-transform: translate(6px,0px);
|
||||
-ms-transform: translate(6px,0px);
|
||||
transform: translate(6px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(-5px,0px);
|
||||
-moz-transform: translate(-5px,0px);
|
||||
-ms-transform: translate(-5px,0px);
|
||||
transform: translate(-5px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-1 {
|
||||
-webkit-animation-name: am-weather-cloud-1;
|
||||
-moz-animation-name: am-weather-cloud-1;
|
||||
animation-name: am-weather-cloud-1;
|
||||
-webkit-animation-duration: 7s;
|
||||
-moz-animation-duration: 7s;
|
||||
animation-duration: 7s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-cloud-2 {
|
||||
0% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: translate(2px,0px);
|
||||
-moz-transform: translate(2px,0px);
|
||||
-ms-transform: translate(2px,0px);
|
||||
transform: translate(2px,0px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translate(0px,0px);
|
||||
-moz-transform: translate(0px,0px);
|
||||
-ms-transform: translate(0px,0px);
|
||||
transform: translate(0px,0px);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-cloud-2 {
|
||||
-webkit-animation-name: am-weather-cloud-2;
|
||||
-moz-animation-name: am-weather-cloud-2;
|
||||
animation-name: am-weather-cloud-2;
|
||||
-webkit-animation-duration: 3s;
|
||||
-moz-animation-duration: 3s;
|
||||
animation-duration: 3s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** SUN
|
||||
*/
|
||||
@keyframes am-weather-sun {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-moz-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun {
|
||||
-webkit-animation-name: am-weather-sun;
|
||||
-moz-animation-name: am-weather-sun;
|
||||
-ms-animation-name: am-weather-sun;
|
||||
animation-name: am-weather-sun;
|
||||
-webkit-animation-duration: 9s;
|
||||
-moz-animation-duration: 9s;
|
||||
-ms-animation-duration: 9s;
|
||||
animation-duration: 9s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
@keyframes am-weather-sun-shiny {
|
||||
0% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
|
||||
50% {
|
||||
stroke-dasharray: 0.1px 10px;
|
||||
stroke-dashoffset: -1px;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dasharray: 3px 10px;
|
||||
stroke-dashoffset: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-sun-shiny line {
|
||||
-webkit-animation-name: am-weather-sun-shiny;
|
||||
-moz-animation-name: am-weather-sun-shiny;
|
||||
-ms-animation-name: am-weather-sun-shiny;
|
||||
animation-name: am-weather-sun-shiny;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
** MOON
|
||||
*/
|
||||
@keyframes am-weather-moon {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
-moz-transform: rotate(15deg);
|
||||
-ms-transform: rotate(15deg);
|
||||
transform: rotate(15deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon {
|
||||
-webkit-animation-name: am-weather-moon;
|
||||
-moz-animation-name: am-weather-moon;
|
||||
-ms-animation-name: am-weather-moon;
|
||||
animation-name: am-weather-moon;
|
||||
-webkit-animation-duration: 6s;
|
||||
-moz-animation-duration: 6s;
|
||||
-ms-animation-duration: 6s;
|
||||
animation-duration: 6s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
-webkit-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-moz-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
-ms-transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
transform-origin: 12.5px 15.15px 0; /* TODO FF CENTER ISSUE */
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-1 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-1 {
|
||||
-webkit-animation-name: am-weather-moon-star-1;
|
||||
-moz-animation-name: am-weather-moon-star-1;
|
||||
-ms-animation-name: am-weather-moon-star-1;
|
||||
animation-name: am-weather-moon-star-1;
|
||||
-webkit-animation-delay: 3s;
|
||||
-moz-animation-delay: 3s;
|
||||
-ms-animation-delay: 3s;
|
||||
animation-delay: 3s;
|
||||
-webkit-animation-duration: 5s;
|
||||
-moz-animation-duration: 5s;
|
||||
-ms-animation-duration: 5s;
|
||||
animation-duration: 5s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
@keyframes am-weather-moon-star-2 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-moon-star-2 {
|
||||
-webkit-animation-name: am-weather-moon-star-2;
|
||||
-moz-animation-name: am-weather-moon-star-2;
|
||||
-ms-animation-name: am-weather-moon-star-2;
|
||||
animation-name: am-weather-moon-star-2;
|
||||
-webkit-animation-delay: 5s;
|
||||
-moz-animation-delay: 5s;
|
||||
-ms-animation-delay: 5s;
|
||||
animation-delay: 5s;
|
||||
-webkit-animation-duration: 4s;
|
||||
-moz-animation-duration: 4s;
|
||||
-ms-animation-duration: 4s;
|
||||
animation-duration: 4s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
-moz-animation-iteration-count: 1;
|
||||
-ms-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
/*
|
||||
** RAIN
|
||||
*/
|
||||
@keyframes am-weather-rain {
|
||||
0% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke-dashoffset: -100;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-rain-1 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-rain-2 {
|
||||
-webkit-animation-name: am-weather-rain;
|
||||
-moz-animation-name: am-weather-rain;
|
||||
-ms-animation-name: am-weather-rain;
|
||||
animation-name: am-weather-rain;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
-moz-animation-delay: 0.25s;
|
||||
-ms-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
-webkit-animation-duration: 8s;
|
||||
-moz-animation-duration: 8s;
|
||||
-ms-animation-duration: 8s;
|
||||
animation-duration: 8s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** SNOW
|
||||
*/
|
||||
@keyframes am-weather-snow {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(-1.2px) translateY(2px);
|
||||
-moz-transform: translateX(-1.2px) translateY(2px);
|
||||
-ms-transform: translateX(-1.2px) translateY(2px);
|
||||
transform: translateX(-1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(1.4px) translateY(4px);
|
||||
-moz-transform: translateX(1.4px) translateY(4px);
|
||||
-ms-transform: translateX(1.4px) translateY(4px);
|
||||
transform: translateX(1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(-1.6px) translateY(6px);
|
||||
-moz-transform: translateX(-1.6px) translateY(6px);
|
||||
-ms-transform: translateX(-1.6px) translateY(6px);
|
||||
transform: translateX(-1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes am-weather-snow-reverse {
|
||||
0% {
|
||||
-webkit-transform: translateX(0) translateY(0);
|
||||
-moz-transform: translateX(0) translateY(0);
|
||||
-ms-transform: translateX(0) translateY(0);
|
||||
transform: translateX(0) translateY(0);
|
||||
}
|
||||
|
||||
33.33% {
|
||||
-webkit-transform: translateX(1.2px) translateY(2px);
|
||||
-moz-transform: translateX(1.2px) translateY(2px);
|
||||
-ms-transform: translateX(1.2px) translateY(2px);
|
||||
transform: translateX(1.2px) translateY(2px);
|
||||
}
|
||||
|
||||
66.66% {
|
||||
-webkit-transform: translateX(-1.4px) translateY(4px);
|
||||
-moz-transform: translateX(-1.4px) translateY(4px);
|
||||
-ms-transform: translateX(-1.4px) translateY(4px);
|
||||
transform: translateX(-1.4px) translateY(4px);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateX(1.6px) translateY(6px);
|
||||
-moz-transform: translateX(1.6px) translateY(6px);
|
||||
-ms-transform: translateX(1.6px) translateY(6px);
|
||||
transform: translateX(1.6px) translateY(6px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.am-weather-snow-1 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-2 {
|
||||
-webkit-animation-name: am-weather-snow;
|
||||
-moz-animation-name: am-weather-snow;
|
||||
-ms-animation-name: am-weather-snow;
|
||||
animation-name: am-weather-snow;
|
||||
-webkit-animation-delay: 1.2s;
|
||||
-moz-animation-delay: 1.2s;
|
||||
-ms-animation-delay: 1.2s;
|
||||
animation-delay: 1.2s;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.am-weather-snow-3 {
|
||||
-webkit-animation-name: am-weather-snow-reverse;
|
||||
-moz-animation-name: am-weather-snow-reverse;
|
||||
-ms-animation-name: am-weather-snow-reverse;
|
||||
animation-name: am-weather-snow-reverse;
|
||||
-webkit-animation-duration: 2s;
|
||||
-moz-animation-duration: 2s;
|
||||
-ms-animation-duration: 2s;
|
||||
animation-duration: 2s;
|
||||
-webkit-animation-timing-function: linear;
|
||||
-moz-animation-timing-function: linear;
|
||||
-ms-animation-timing-function: linear;
|
||||
animation-timing-function: linear;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-moz-animation-iteration-count: infinite;
|
||||
-ms-animation-iteration-count: infinite;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
/*
|
||||
** EASING
|
||||
*/
|
||||
.am-weather-easing-ease-in-out {
|
||||
-webkit-animation-timing-function: ease-in-out;
|
||||
-moz-animation-timing-function: ease-in-out;
|
||||
-ms-animation-timing-function: ease-in-out;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
]]></style>
|
||||
</defs>
|
||||
<g
|
||||
filter="url(#blur)"
|
||||
id="cloudy-day-2">
|
||||
<g
|
||||
transform="matrix(1.0657299,0,0,1.0657299,21.854489,7.8028103)"
|
||||
id="g63">
|
||||
<g
|
||||
transform="translate(0,16)"
|
||||
id="g57">
|
||||
<g
|
||||
class="am-weather-sun"
|
||||
id="g53">
|
||||
<g
|
||||
id="g23">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line21" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(45)"
|
||||
id="g27">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line25" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(90)"
|
||||
id="g31">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line29" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(135)"
|
||||
id="g35">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line33" />
|
||||
</g>
|
||||
<g
|
||||
transform="scale(-1)"
|
||||
id="g39">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line37" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-135)"
|
||||
id="g43">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line41" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-90)"
|
||||
id="g47">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line45" />
|
||||
</g>
|
||||
<g
|
||||
transform="rotate(-45)"
|
||||
id="g51">
|
||||
<line
|
||||
fill="none"
|
||||
stroke="#ffa500"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2"
|
||||
transform="translate(0,9)"
|
||||
x1="0"
|
||||
x2="0"
|
||||
y1="0"
|
||||
y2="3"
|
||||
id="line49" />
|
||||
</g>
|
||||
</g>
|
||||
<circle
|
||||
cx="0"
|
||||
cy="0"
|
||||
fill="#ffa500"
|
||||
r="5"
|
||||
stroke="#ffa500"
|
||||
stroke-width="2"
|
||||
id="circle55" />
|
||||
</g>
|
||||
<g
|
||||
class="am-weather-cloud-2"
|
||||
id="g61">
|
||||
<path
|
||||
d="m 47.7,35.4 c 0,-4.6 -3.7,-8.2 -8.2,-8.2 -1,0 -1.9,0.2 -2.8,0.5 -0.3,-3.4 -3.1,-6.2 -6.6,-6.2 -3.7,0 -6.7,3 -6.7,6.7 0,0.8 0.2,1.6 0.4,2.3 -0.3,-0.1 -0.7,-0.1 -1,-0.1 -3.7,0 -6.7,3 -6.7,6.7 0,3.6 2.9,6.6 6.5,6.7 h 17.2 c 4.4,-0.5 7.9,-4 7.9,-8.4 z"
|
||||
fill="#91c0f8"
|
||||
stroke="#ffffff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.2"
|
||||
transform="translate(-20,-11)"
|
||||
id="path59" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.7,0,0,0.7,17.276856,21.305209)"
|
||||
id="g71">
|
||||
<path
|
||||
class="am-weather-cloud-3"
|
||||
d="m 13,26 h 20 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5"
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
stroke-width="5.4"
|
||||
stroke-linecap="round"
|
||||
id="path59-2" />
|
||||
<path
|
||||
class="am-weather-cloud-2"
|
||||
d="m 10,32 h 35 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5"
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
stroke-width="5.4"
|
||||
stroke-linecap="round"
|
||||
id="path61" />
|
||||
<path
|
||||
class="am-weather-cloud-1"
|
||||
d="m 16,38 h 22 a 5,5 0 0 1 0,10 5,5 0 0 1 -5,-5"
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
stroke-width="5.4"
|
||||
stroke-linecap="round"
|
||||
id="path63" />
|
||||
<path
|
||||
class="am-weather-cloud-3"
|
||||
d="m 13,26 h 20 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5"
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
id="path65" />
|
||||
<path
|
||||
class="am-weather-cloud-2"
|
||||
d="m 10,32 h 35 a 5,5 0 0 0 0,-10 5,5 0 0 0 -5,5"
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
id="path67" />
|
||||
<path
|
||||
class="am-weather-cloud-1"
|
||||
d="m 16,38 h 22 a 5,5 0 0 1 0,10 5,5 0 0 1 -5,-5"
|
||||
fill="none"
|
||||
stroke="#57a0ee"
|
||||
stroke-width="3"
|
||||
stroke-linecap="round"
|
||||
id="path69" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,325 @@
|
||||
const fireEvent = (node, type, detail, options) => {
|
||||
options = options || {};
|
||||
detail = detail === null || detail === undefined ? {} : detail;
|
||||
const event = new Event(type, {
|
||||
bubbles: options.bubbles === undefined ? true : options.bubbles,
|
||||
cancelable: Boolean(options.cancelable),
|
||||
composed: options.composed === undefined ? true : options.composed,
|
||||
});
|
||||
event.detail = detail;
|
||||
node.dispatchEvent(event);
|
||||
return event;
|
||||
};
|
||||
|
||||
if (
|
||||
!customElements.get("ha-switch") &&
|
||||
customElements.get("paper-toggle-button")
|
||||
) {
|
||||
customElements.define("ha-switch", customElements.get("paper-toggle-button"));
|
||||
}
|
||||
|
||||
const LitElement = customElements.get("hui-masonry-view")
|
||||
? Object.getPrototypeOf(customElements.get("hui-masonry-view"))
|
||||
: Object.getPrototypeOf(customElements.get("hui-view"));
|
||||
const html = LitElement.prototype.html;
|
||||
const css = LitElement.prototype.css;
|
||||
|
||||
const HELPERS = window.loadCardHelpers();
|
||||
|
||||
const DefaultSensors = new Map([
|
||||
["cloudCoverEntity", "_cloud_cover"],
|
||||
["rainChanceEntity", "_rain_chance"],
|
||||
["freezeChanceEntity", "_freeze_chance"],
|
||||
["snowChanceEntity", "_snow_chance"],
|
||||
["uvEntity", "_uv"],
|
||||
["rainForecastEntity", "_next_rain"],
|
||||
]);
|
||||
|
||||
export class MeteofranceWeatherCardEditor extends LitElement {
|
||||
setConfig(config) {
|
||||
this._config = { ...config };
|
||||
}
|
||||
|
||||
static get properties() {
|
||||
return { hass: {}, _config: {} };
|
||||
}
|
||||
|
||||
get _entity() {
|
||||
return this._config.entity || "";
|
||||
}
|
||||
|
||||
get _name() {
|
||||
return this._config.name || "";
|
||||
}
|
||||
|
||||
get _icons() {
|
||||
return this._config.icons || "";
|
||||
}
|
||||
|
||||
get _current() {
|
||||
return this._config.current !== false;
|
||||
}
|
||||
|
||||
get _details() {
|
||||
return this._config.details !== false;
|
||||
}
|
||||
|
||||
get _forecast() {
|
||||
return this._config.forecast !== false;
|
||||
}
|
||||
|
||||
get _number_of_forecasts() {
|
||||
return this._config.number_of_forecasts || 5;
|
||||
}
|
||||
|
||||
// Météo France
|
||||
// Switches state
|
||||
get _one_hour_forecast() {
|
||||
return this._config.one_hour_forecast !== false;
|
||||
}
|
||||
|
||||
get _alert_forecast() {
|
||||
return this._config.alert_forecast !== false;
|
||||
}
|
||||
|
||||
get _animated_icons() {
|
||||
return this._config.animated_icons !== false;
|
||||
}
|
||||
|
||||
// Config value
|
||||
get _alertEntity() {
|
||||
return this._config.alertEntity || "";
|
||||
}
|
||||
|
||||
get _cloudCoverEntity() {
|
||||
return this._config.cloudCoverEntity || "";
|
||||
}
|
||||
|
||||
get _freezeChanceEntity() {
|
||||
return this._config.freezeChanceEntity || "";
|
||||
}
|
||||
|
||||
get _rainChanceEntity() {
|
||||
return this._config.rainChanceEntity || "";
|
||||
}
|
||||
|
||||
get _rainForecastEntity() {
|
||||
return this._config.rainForecastEntity || "";
|
||||
}
|
||||
|
||||
get _snowChanceEntity() {
|
||||
return this._config.snowChanceEntity || "";
|
||||
}
|
||||
|
||||
get _uvEntity() {
|
||||
return this._config.uvEntity || "";
|
||||
}
|
||||
|
||||
get _detailEntity() {
|
||||
return this._config.detailEntity || "";
|
||||
}
|
||||
|
||||
firstUpdated() {
|
||||
HELPERS.then((help) => {
|
||||
if (help.importMoreInfoControl) {
|
||||
help.importMoreInfoControl("fan");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
render() {
|
||||
if (!this.hass) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
return html`
|
||||
<div class="card-config">
|
||||
<div>
|
||||
<paper-input
|
||||
label="Name"
|
||||
.value="${this._name}"
|
||||
.configValue="${"name"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
${this.renderSensorPicker(
|
||||
"Détail",
|
||||
this._detailEntity,
|
||||
"detailEntity"
|
||||
)}
|
||||
<paper-input
|
||||
label="Icons location"
|
||||
.value="${this._icons}"
|
||||
.configValue="${"icons"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
<!-- Primary weather entity -->
|
||||
${this.renderWeatherPicker("Entity", this._entity, "entity")}
|
||||
<!-- Switches -->
|
||||
<ul class="switches">
|
||||
${this.renderSwitchOption("Show current", this._current, "current")}
|
||||
${this.renderSwitchOption("Show details", this._details, "details")}
|
||||
${this.renderSwitchOption(
|
||||
"Show one hour forecast",
|
||||
this._one_hour_forecast,
|
||||
"one_hour_forecast"
|
||||
)}
|
||||
${this.renderSwitchOption(
|
||||
"Show alert",
|
||||
this._alert_forecast,
|
||||
"alert_forecast"
|
||||
)}
|
||||
${this.renderSwitchOption(
|
||||
"Show forecast",
|
||||
this._forecast,
|
||||
"forecast"
|
||||
)}
|
||||
${this.renderSwitchOption(
|
||||
"Use animated icons",
|
||||
this._animated_icons,
|
||||
"animated_icons"
|
||||
)}
|
||||
</ul>
|
||||
<!-- -->
|
||||
<paper-input
|
||||
label="Number of future forcasts"
|
||||
type="number"
|
||||
min="1"
|
||||
max="8"
|
||||
value=${this._number_of_forecasts}
|
||||
.configValue="${"number_of_forecasts"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
<!-- Meteo France weather entities -->
|
||||
${this.renderSensorPicker(
|
||||
"Risque de pluie",
|
||||
this._rainChanceEntity,
|
||||
"rainChanceEntity"
|
||||
)}
|
||||
${this.renderSensorPicker("UV", this._uvEntity, "uvEntity")}
|
||||
${this.renderSensorPicker(
|
||||
"Couverture nuageuse",
|
||||
this._cloudCoverEntity,
|
||||
"cloudCoverEntity"
|
||||
)}
|
||||
${this.renderSensorPicker(
|
||||
"Risque de gel",
|
||||
this._freezeChanceEntity,
|
||||
"freezeChanceEntity"
|
||||
)}
|
||||
${this.renderSensorPicker(
|
||||
"Risque de neige",
|
||||
this._snowChanceEntity,
|
||||
"snowChanceEntity"
|
||||
)}
|
||||
${this.renderSensorPicker(
|
||||
"Vigilance Météo",
|
||||
this._alertEntity,
|
||||
"alertEntity"
|
||||
)}
|
||||
${this.renderSensorPicker(
|
||||
"Pluie dans l'heure",
|
||||
this._rainForecastEntity,
|
||||
"rainForecastEntity"
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
renderWeatherPicker(label, entity, configAttr) {
|
||||
return this.renderPicker(label, entity, configAttr, "weather");
|
||||
}
|
||||
|
||||
renderSensorPicker(label, entity, configAttr) {
|
||||
return this.renderPicker(label, entity, configAttr, "sensor");
|
||||
}
|
||||
|
||||
renderPicker(label, entity, configAttr, domain) {
|
||||
return html`
|
||||
<ha-entity-picker
|
||||
label="${label}"
|
||||
.hass="${this.hass}"
|
||||
.value="${entity}"
|
||||
.configValue="${configAttr}"
|
||||
.includeDomains="${domain}"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`;
|
||||
}
|
||||
|
||||
renderSwitchOption(label, state, configAttr) {
|
||||
return html`
|
||||
<li class="switch">
|
||||
<ha-switch
|
||||
.checked=${state}
|
||||
.configValue="${configAttr}"
|
||||
@change="${this._valueChanged}"
|
||||
></ha-switch
|
||||
><span>${label}</span>
|
||||
</div>
|
||||
</li>
|
||||
`;
|
||||
}
|
||||
|
||||
_weatherEntityChanged(entityName) {
|
||||
DefaultSensors.forEach((sensorSuffix, configAttribute) => {
|
||||
const entity = "sensor." + entityName + sensorSuffix;
|
||||
if (this.hass.states[entity] !== undefined)
|
||||
this._config = {
|
||||
...this._config,
|
||||
[configAttribute]: entity,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
_valueChanged(ev) {
|
||||
if (!this._config || !this.hass) {
|
||||
return;
|
||||
}
|
||||
const target = ev.target;
|
||||
if (this[`_${target.configValue}`] === target.value) {
|
||||
return;
|
||||
}
|
||||
if (target.configValue) {
|
||||
if (target.value === "") {
|
||||
delete this._config[target.configValue];
|
||||
} else {
|
||||
if (target.configValue === "entity")
|
||||
this._weatherEntityChanged(target.value.split(".")[1]);
|
||||
this._config = {
|
||||
...this._config,
|
||||
[target.configValue]:
|
||||
target.checked !== undefined ? target.checked : target.value,
|
||||
};
|
||||
}
|
||||
}
|
||||
fireEvent(this, "config-changed", { config: this._config });
|
||||
}
|
||||
|
||||
static get styles() {
|
||||
return css`
|
||||
.switches {
|
||||
margin: 8px 0;
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
.switch {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 50%;
|
||||
height: 40px;
|
||||
}
|
||||
.switches span {
|
||||
padding: 0 16px;
|
||||
}
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define(
|
||||
"meteofrance-weather-card-editor",
|
||||
MeteofranceWeatherCardEditor
|
||||
);
|
||||
@@ -0,0 +1,978 @@
|
||||
const LitElement = customElements.get("hui-masonry-view")
|
||||
? Object.getPrototypeOf(customElements.get("hui-masonry-view"))
|
||||
: Object.getPrototypeOf(customElements.get("hui-view"));
|
||||
const html = LitElement.prototype.html;
|
||||
const css = LitElement.prototype.css;
|
||||
|
||||
const weatherIconsDay = {
|
||||
clear: "day",
|
||||
"clear-night": "night",
|
||||
cloudy: "cloudy",
|
||||
fog: "fog",
|
||||
hail: "rainy-7",
|
||||
lightning: "thunder",
|
||||
"lightning-rainy": "lightning-rainy",
|
||||
partlycloudy: "cloudy-day-3",
|
||||
pouring: "rainy-6",
|
||||
rainy: "rainy-5",
|
||||
snowy: "snowy-6",
|
||||
"snowy-rainy": "snowy-rainy",
|
||||
sunny: "day",
|
||||
windy: "windy",
|
||||
"windy-variant": "windy",
|
||||
exceptional: "!!",
|
||||
};
|
||||
|
||||
const DefaultSensors = [
|
||||
["cloudCoverEntity", "_cloud_cover"],
|
||||
["rainChanceEntity", "_rain_chance"],
|
||||
["freezeChanceEntity", "_freeze_chance"],
|
||||
["snowChanceEntity", "_snow_chance"],
|
||||
["uvEntity", "_uv"],
|
||||
["rainForecastEntity", "_next_rain"],
|
||||
];
|
||||
|
||||
const weatherIconsNight = {
|
||||
...weatherIconsDay,
|
||||
clear: "night",
|
||||
sunny: "night",
|
||||
partlycloudy: "cloudy-night-3",
|
||||
};
|
||||
|
||||
const windDirections = [
|
||||
"N",
|
||||
"NNE",
|
||||
"NE",
|
||||
"ENE",
|
||||
"E",
|
||||
"ESE",
|
||||
"SE",
|
||||
"SSE",
|
||||
"S",
|
||||
"SSO",
|
||||
"SO",
|
||||
"OSO",
|
||||
"O",
|
||||
"ONO",
|
||||
"NO",
|
||||
"NNO",
|
||||
"N",
|
||||
];
|
||||
|
||||
const phenomenaText = {
|
||||
clear: "Ciel dégagé",
|
||||
"clear-night": "Nuit claire",
|
||||
cloudy: "Nuageux",
|
||||
fog: "Brouillard",
|
||||
hail: "Risque de grèle",
|
||||
lightning: "Orages",
|
||||
"lightning-rainy": "Pluies orageuses",
|
||||
partlycloudy: "Eclaircies",
|
||||
pouring: "Pluie forte",
|
||||
rainy: "Pluie",
|
||||
snowy: "Neige",
|
||||
"snowy-rainy": "Pluie verglaçante",
|
||||
sunny: "Ensoleillé",
|
||||
windy: "Venteux",
|
||||
"windy-variant": "Venteux variable",
|
||||
exceptional: "Exceptionnel",
|
||||
};
|
||||
|
||||
const phenomenaNightText = {
|
||||
...phenomenaText,
|
||||
sunny: "Nuit claire",
|
||||
};
|
||||
|
||||
const rainForecastValues = new Map([
|
||||
["Pas de valeur", 0.1],
|
||||
["Temps sec", 0.1],
|
||||
["Pluie faible", 0.4],
|
||||
["Pluie modérée", 0.7],
|
||||
["Pluie forte", 1],
|
||||
]);
|
||||
|
||||
window.customCards = window.customCards || [];
|
||||
window.customCards.push({
|
||||
type: "meteofrance-weather-card",
|
||||
name: "Carte Météo France par HACF",
|
||||
description: "Carte pour l'intégration Météo France.",
|
||||
preview: true,
|
||||
documentationURL:
|
||||
"https://github.com/hacf-fr/lovelace-meteofrance-weather-card",
|
||||
});
|
||||
|
||||
const fireEvent = (node, type, detail, options) => {
|
||||
options = options || {};
|
||||
detail = detail === null || detail === undefined ? {} : detail;
|
||||
const event = new Event(type, {
|
||||
bubbles: options.bubbles === undefined ? true : options.bubbles,
|
||||
cancelable: Boolean(options.cancelable),
|
||||
composed: options.composed === undefined ? true : options.composed,
|
||||
});
|
||||
event.detail = detail;
|
||||
node.dispatchEvent(event);
|
||||
return event;
|
||||
};
|
||||
|
||||
function hasConfigOrEntityChanged(element, changedProps) {
|
||||
if (changedProps.has("_config")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const oldHass = changedProps.get("hass");
|
||||
if (oldHass) {
|
||||
const entityName = element._config.entity.split(".")[1];
|
||||
return (
|
||||
oldHass.states[element._config.entity] !==
|
||||
element.hass.states[element._config.entity] ||
|
||||
oldHass.states["sun.sun"] !== element.hass.states["sun.sun"] ||
|
||||
!DefaultSensors.every((sensor) => {
|
||||
const sensorName = "sensor." + entityName + sensor[1];
|
||||
oldHass.states[sensorName] == element.hass.states[sensorName];
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
class MeteofranceWeatherCard extends LitElement {
|
||||
static get properties() {
|
||||
return {
|
||||
_config: {},
|
||||
hass: {},
|
||||
};
|
||||
}
|
||||
|
||||
static async getConfigElement() {
|
||||
await import("./meteofrance-weather-card-editor.js");
|
||||
return document.createElement("meteofrance-weather-card-editor");
|
||||
}
|
||||
|
||||
static getStubConfig(hass, unusedEntities, allEntities) {
|
||||
let entity = this.getDefaultWeatherEntity(unusedEntities, allEntities);
|
||||
let entities = { entity };
|
||||
|
||||
if (entity) {
|
||||
let sensors = this.getWeatherEntitiesFromEntity(
|
||||
hass,
|
||||
entity.split(".")[1],
|
||||
allEntities
|
||||
);
|
||||
entities = {
|
||||
...entities,
|
||||
...sensors,
|
||||
};
|
||||
}
|
||||
return entities;
|
||||
}
|
||||
|
||||
static getDefaultWeatherEntity(unusedEntities, allEntities) {
|
||||
let entity = unusedEntities.find((eid) => eid.split(".")[0] === "weather");
|
||||
if (!entity) {
|
||||
entity = allEntities.find((eid) => eid.split(".")[0] === "weather");
|
||||
}
|
||||
return entity;
|
||||
}
|
||||
|
||||
static getWeatherEntitiesFromEntity(hass, entityName, allEntities) {
|
||||
let entities = {};
|
||||
DefaultSensors.forEach((sensor) => {
|
||||
const sensorName = "sensor." + entityName + sensor[0];
|
||||
if (hass.states[sensorName] !== undefined) {
|
||||
let sensor = allEntities[sensorName];
|
||||
if (!sensor) {
|
||||
entities = {
|
||||
...entities,
|
||||
[sensor[1]]: sensorName,
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
return entities;
|
||||
}
|
||||
|
||||
setConfig(config) {
|
||||
if (!config.entity) {
|
||||
throw new Error("Please define a weather entity");
|
||||
}
|
||||
this._config = config;
|
||||
}
|
||||
|
||||
shouldUpdate(changedProps) {
|
||||
return hasConfigOrEntityChanged(this, changedProps);
|
||||
}
|
||||
|
||||
isSelected(option) {
|
||||
return option === undefined || option === true;
|
||||
}
|
||||
|
||||
render() {
|
||||
if (!this._config || !this.hass) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
this.numberElements = 0;
|
||||
|
||||
const stateObj = this.hass.states[this._config.entity];
|
||||
|
||||
if (!stateObj) {
|
||||
return html`
|
||||
<style>
|
||||
.not-found {
|
||||
flex: 1;
|
||||
background-color: yellow;
|
||||
padding: 8px;
|
||||
}
|
||||
</style>
|
||||
<ha-card>
|
||||
<div class="not-found">
|
||||
Entity not available: ${this._config.entity}
|
||||
</div>
|
||||
</ha-card>
|
||||
`;
|
||||
}
|
||||
|
||||
return html`
|
||||
<ha-card @click="${this._handleClick}">
|
||||
${this.isSelected(this._config.current)
|
||||
? this.renderCurrent(stateObj)
|
||||
: ""}
|
||||
${this.isSelected(this._config.details)
|
||||
? this.renderDetails(stateObj)
|
||||
: ""}
|
||||
${this.isSelected(this._config.alert_forecast)
|
||||
? this.renderAlertForecast()
|
||||
: ""}
|
||||
${this.isSelected(this._config.one_hour_forecast)
|
||||
? this.renderOneHourForecast()
|
||||
: ""}
|
||||
${this.isSelected(this._config.forecast)
|
||||
? this.renderForecast(stateObj.attributes.forecast)
|
||||
: ""}
|
||||
</ha-card>
|
||||
`;
|
||||
}
|
||||
|
||||
renderCurrent(stateObj) {
|
||||
this.numberElements++;
|
||||
return html`
|
||||
<ul class="flow-row current">
|
||||
<li
|
||||
style="background: none, url('${this.getWeatherIcon(
|
||||
stateObj.state.toLowerCase(),
|
||||
this.isNightTime()
|
||||
)}') no-repeat; background-size: contain;"
|
||||
></li>
|
||||
<li>
|
||||
${this.getPhenomenaText(stateObj.state, this.isNightTime())}
|
||||
${this._config.name ? html` <div>${this._config.name}</div>` : ""}
|
||||
</li>
|
||||
<li>
|
||||
${this.getUnit("temperature") == "°F"
|
||||
? Math.round(stateObj.attributes.temperature)
|
||||
: stateObj.attributes.temperature}
|
||||
<sup>${this.getUnit("temperature")}</sup>
|
||||
<ul>
|
||||
${this.renderMeteoFranceDetail(
|
||||
this.hass.states[this._config.detailEntity]
|
||||
)}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
`;
|
||||
}
|
||||
|
||||
renderDetails(stateObj) {
|
||||
const sun = this.hass.states["sun.sun"];
|
||||
let next_rising;
|
||||
let next_setting;
|
||||
|
||||
if (sun) {
|
||||
next_rising = new Date(sun.attributes.next_rising);
|
||||
next_setting = new Date(sun.attributes.next_setting);
|
||||
}
|
||||
|
||||
this.numberElements++;
|
||||
|
||||
return html`
|
||||
<ul class="flow-row details ${this.numberElements > 1 ? " spacer" : ""}">
|
||||
<!-- Cloudy -->
|
||||
${this.renderMeteoFranceDetail(
|
||||
this.hass.states[this._config.cloudCoverEntity]
|
||||
)}
|
||||
<!-- Wind -->
|
||||
${this.renderDetail(
|
||||
(stateObj.attributes.wind_bearing == undefined
|
||||
? " "
|
||||
: windDirections[
|
||||
parseInt((stateObj.attributes.wind_bearing + 11.25) / 22.5)
|
||||
] + " ") + stateObj.attributes.wind_speed,
|
||||
"Vent",
|
||||
"mdi:weather-windy",
|
||||
this.getUnit("speed")
|
||||
)}
|
||||
<!-- Rain -->
|
||||
${this.renderMeteoFranceDetail(
|
||||
this.hass.states[this._config.rainChanceEntity]
|
||||
)}
|
||||
<!-- Humidity -->
|
||||
${this.renderDetail(
|
||||
stateObj.attributes.humidity,
|
||||
"Humidité",
|
||||
"mdi:water-percent",
|
||||
"%"
|
||||
)}
|
||||
<!-- Freeze -->
|
||||
${this.renderMeteoFranceDetail(
|
||||
this.hass.states[this._config.freezeChanceEntity]
|
||||
)}
|
||||
<!-- Pressure -->
|
||||
${this.renderDetail(
|
||||
stateObj.attributes.pressure,
|
||||
"Pression atmosphérique",
|
||||
"mdi:gauge",
|
||||
this.getUnit("air_pressure")
|
||||
)}
|
||||
<!-- Snow -->
|
||||
${this.renderMeteoFranceDetail(
|
||||
this.hass.states[this._config.snowChanceEntity]
|
||||
)}
|
||||
<!-- UV -->
|
||||
${this.renderMeteoFranceDetail(this.hass.states[this._config.uvEntity])}
|
||||
</ul>
|
||||
<ul class="flow-row details">
|
||||
<!-- Sunset up -->
|
||||
${next_rising
|
||||
? this.renderDetail(
|
||||
next_rising.toLocaleTimeString(),
|
||||
"Heure de lever",
|
||||
"mdi:weather-sunset-up"
|
||||
)
|
||||
: ""}
|
||||
<!-- Sunset down -->
|
||||
${next_setting
|
||||
? this.renderDetail(
|
||||
next_setting.toLocaleTimeString(),
|
||||
"Heure de coucher",
|
||||
"mdi:weather-sunset-down"
|
||||
)
|
||||
: ""}
|
||||
</ul>
|
||||
`;
|
||||
}
|
||||
|
||||
renderMeteoFranceDetail(entity) {
|
||||
return entity !== undefined
|
||||
? this.renderDetail(
|
||||
entity.state,
|
||||
entity.attributes.friendly_name,
|
||||
entity.attributes.icon,
|
||||
entity.attributes.unit_of_measurement
|
||||
)
|
||||
: "";
|
||||
}
|
||||
|
||||
renderDetail(state, label, icon, unit) {
|
||||
return html`
|
||||
<li>
|
||||
<ha-icon icon="${icon}" title="${label}"></ha-icon>
|
||||
${state} ${unit ? html`${unit}` : ""}
|
||||
</li>
|
||||
`;
|
||||
}
|
||||
|
||||
renderOneHourForecast() {
|
||||
const rainForecast = this.hass.states[this._config.rainForecastEntity];
|
||||
|
||||
if (!rainForecast || rainForecast.length === 0) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
this.numberElements++;
|
||||
|
||||
let [startTime, endTime] = this.getOneHourForecastTime(rainForecast);
|
||||
|
||||
return html` <ul
|
||||
class="flow-row oneHourHeader ${this.numberElements > 1
|
||||
? " spacer"
|
||||
: ""}"
|
||||
>
|
||||
<li>${startTime}</li>
|
||||
<li>${this.getOneHourNextRainText(rainForecast)}</li>
|
||||
<li>${endTime}</li>
|
||||
</ul>
|
||||
<ul class="flow-row oneHour">
|
||||
${html`
|
||||
${this.getOneHourForecast(rainForecast).map(
|
||||
(forecast) => html` <li
|
||||
class="rain-${forecast[0]}min"
|
||||
style="opacity: ${forecast[1]}"
|
||||
title="${forecast[2]}"
|
||||
></li>`
|
||||
)}
|
||||
`}
|
||||
</ul>
|
||||
<ul class="flow-row oneHourLabel">
|
||||
<li></li>
|
||||
<li>10</li>
|
||||
<li>20</li>
|
||||
<li>30</li>
|
||||
<li>40</li>
|
||||
<li>50</li>
|
||||
</ul>`;
|
||||
}
|
||||
|
||||
renderAlertForecast() {
|
||||
const alertForecast = this.hass.states[this._config.alertEntity];
|
||||
|
||||
if (!alertForecast) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
const alerts = this.getAlertForecast(alertForecast);
|
||||
|
||||
if (alerts.length == 0) return html``;
|
||||
|
||||
this.numberElements++;
|
||||
|
||||
return html` <div
|
||||
class="flow-row alertForecast ${this.numberElements > 1 ? " spacer" : ""}"
|
||||
>
|
||||
${alerts.map(
|
||||
(phenomenon) => html` <div class="alertForecast${phenomenon.color}">
|
||||
<ha-icon
|
||||
icon="${phenomenon.icon}"
|
||||
title="${phenomenon.name}"
|
||||
></ha-icon>
|
||||
</div>`
|
||||
)}
|
||||
</div>`;
|
||||
}
|
||||
|
||||
renderForecast(forecast) {
|
||||
if (!forecast || forecast.length === 0) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
const lang = this.hass.selectedLanguage || this.hass.language;
|
||||
const isDaily = this.isDailyForecast(forecast);
|
||||
|
||||
this.numberElements++;
|
||||
return html` <ul
|
||||
class="flow-row forecast ${this.numberElements > 1 ? " spacer" : ""}"
|
||||
>
|
||||
${forecast
|
||||
.slice(
|
||||
0,
|
||||
this._config.number_of_forecasts
|
||||
? this._config.number_of_forecasts
|
||||
: 5
|
||||
)
|
||||
.map((daily) => this.renderDailyForecast(daily, lang, isDaily))}
|
||||
</ul>`;
|
||||
}
|
||||
|
||||
renderDailyForecast(daily, lang, isDaily) {
|
||||
return html` <li>
|
||||
<ul class="flow-column day">
|
||||
<li>
|
||||
${isDaily
|
||||
? new Date(daily.datetime).toLocaleDateString(lang, {
|
||||
weekday: "short",
|
||||
})
|
||||
: new Date(daily.datetime).toLocaleTimeString(lang, {
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
})}
|
||||
</li>
|
||||
<li
|
||||
class="icon"
|
||||
style="background: none, url('${this.getWeatherIcon(
|
||||
daily.condition.toLowerCase(),
|
||||
!isDaily && this.isNightTime(daily.datetime)
|
||||
)}') no-repeat; background-size: contain"
|
||||
></li>
|
||||
<li class="highTemp">
|
||||
${daily.temperature}${this.getUnit("temperature")}
|
||||
</li>
|
||||
${daily.templow !== undefined
|
||||
? html`
|
||||
<li class="lowTemp">
|
||||
${daily.templow}${this.getUnit("temperature")}
|
||||
</li>
|
||||
`
|
||||
: ""}
|
||||
${!this._config.hide_precipitation &&
|
||||
daily.precipitation !== undefined &&
|
||||
daily.precipitation !== null
|
||||
? html`
|
||||
<li class="precipitation">
|
||||
${Math.round(daily.precipitation * 10) / 10}
|
||||
${this.getUnit("precipitation")}
|
||||
</li>
|
||||
`
|
||||
: ""}
|
||||
${!this._config.hide_precipitation &&
|
||||
daily.precipitation_probability !== undefined &&
|
||||
daily.precipitation_probability !== null
|
||||
? html`
|
||||
<li class="precipitation_probability">
|
||||
${Math.round(daily.precipitation_probability)}
|
||||
${this.getUnit("precipitation_probability")}
|
||||
</li>
|
||||
`
|
||||
: ""}
|
||||
${daily.wind_speed !== undefined && daily.wind_speed !== null
|
||||
? html`
|
||||
<li class="wind_speed">
|
||||
${Math.round(daily.wind_speed)} ${this.getUnit("speed")}
|
||||
</li>
|
||||
`
|
||||
: ""}
|
||||
</ul>
|
||||
</li>`;
|
||||
}
|
||||
|
||||
isDailyForecast(forecast) {
|
||||
const diff =
|
||||
new Date(forecast[1].datetime) - new Date(forecast[0].datetime);
|
||||
return diff > 3600000;
|
||||
}
|
||||
|
||||
isNightTime(datetimehourly) {
|
||||
const sun = this.hass.states["sun.sun"];
|
||||
if (!sun) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let nextrising = new Date(sun.attributes.next_rising);
|
||||
let nextsetting = new Date(sun.attributes.next_setting);
|
||||
|
||||
const thistime = datetimehourly ? new Date(datetimehourly) : new Date();
|
||||
|
||||
return (
|
||||
(thistime > nextsetting && thistime < nextrising) ||
|
||||
(thistime < nextsetting &&
|
||||
thistime < nextrising &&
|
||||
nextrising < nextsetting)
|
||||
);
|
||||
}
|
||||
|
||||
getOneHourForecast(rainForecastEntity) {
|
||||
let rainForecastList = [];
|
||||
for (let [time, value] of Object.entries(
|
||||
rainForecastEntity.attributes["1_hour_forecast"]
|
||||
)) {
|
||||
if (time != undefined && time.match(/[0-9]*min/g)) {
|
||||
time = time.replace("min", "").trim();
|
||||
rainForecastList.push([time, rainForecastValues.get(value), value]);
|
||||
}
|
||||
}
|
||||
|
||||
return rainForecastList;
|
||||
}
|
||||
|
||||
getOneHourForecastTime(rainForecastEntity) {
|
||||
let rainForecastTimeRef = new Date(
|
||||
rainForecastEntity.attributes["forecast_time_ref"]
|
||||
);
|
||||
let rainForecastStartTime = rainForecastTimeRef.toLocaleTimeString([], {
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
});
|
||||
rainForecastTimeRef.setHours(rainForecastTimeRef.getHours() + 1);
|
||||
let rainForecastEndTime = rainForecastTimeRef.toLocaleTimeString([], {
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
});
|
||||
|
||||
return [rainForecastStartTime, rainForecastEndTime];
|
||||
}
|
||||
|
||||
getOneHourNextRainText(rainForecastEntity) {
|
||||
for (let [time, value] of Object.entries(
|
||||
rainForecastEntity.attributes["1_hour_forecast"]
|
||||
)) {
|
||||
if (time != undefined && rainForecastValues.get(value) > 0.1) {
|
||||
let timeStr = time.replace(/([345])5/g, "$10");
|
||||
return (
|
||||
value +
|
||||
(time == "0 min" ? " actuellement." : " dans " + timeStr + ".")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return "Pas de pluie dans l'heure.";
|
||||
}
|
||||
|
||||
getAlertForecast(alertEntity) {
|
||||
let phenomenaList = [];
|
||||
|
||||
if (alertEntity == undefined) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (
|
||||
!this._config.hide_alertVentViolent &&
|
||||
alertEntity.attributes["Vent violent"]
|
||||
) {
|
||||
phenomenaList.push({
|
||||
name: "Vent violent",
|
||||
icon: "mdi:weather-windy",
|
||||
color: alertEntity.attributes["Vent violent"],
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!this._config.hide_alertPluieInondation &&
|
||||
alertEntity.attributes["Pluie-inondation"]
|
||||
) {
|
||||
phenomenaList.push({
|
||||
name: "Pluie-inondation",
|
||||
icon: "mdi:weather-pouring",
|
||||
color: alertEntity.attributes["Pluie-inondation"],
|
||||
});
|
||||
}
|
||||
|
||||
if (!this._config.hide_alertOrages && alertEntity.attributes["Orages"]) {
|
||||
phenomenaList.push({
|
||||
name: "Orages",
|
||||
icon: "mdi:weather-lightning",
|
||||
color: alertEntity.attributes["Orages"],
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!this._config.hide_alertInondation &&
|
||||
alertEntity.attributes["Inondation"]
|
||||
) {
|
||||
phenomenaList.push({
|
||||
name: "Inondation",
|
||||
icon: "mdi:home-flood",
|
||||
color: alertEntity.attributes["Inondation"],
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!this._config.hide_alertNeigeVerglas &&
|
||||
alertEntity.attributes["Neige-verglas"]
|
||||
) {
|
||||
phenomenaList.push({
|
||||
name: "Neige-verglas",
|
||||
icon: "mdi:weather-snowy-heavy",
|
||||
color: alertEntity.attributes["Neige-verglas"],
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!this._config.hide_alertCanicule &&
|
||||
alertEntity.attributes["Canicule"]
|
||||
) {
|
||||
phenomenaList.push({
|
||||
name: "Canicule",
|
||||
icon: "mdi:weather-sunny-alert",
|
||||
color: alertEntity.attributes["Canicule"],
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!this._config.hide_alertGrandFroid &&
|
||||
alertEntity.attributes["Grand-froid"]
|
||||
) {
|
||||
phenomenaList.push({
|
||||
name: "Grand-froid",
|
||||
icon: "mdi:snowflake",
|
||||
color: alertEntity.attributes["Grand-froid"],
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!this._config.hide_alertAvalanches &&
|
||||
alertEntity.attributes["Avalanches"]
|
||||
) {
|
||||
phenomenaList.push({
|
||||
name: "Avalanches",
|
||||
icon: "mdi:image-filter-hdr",
|
||||
color: alertEntity.attributes["Avalanches"],
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!this._config.hide_alertVaguesSubmersion &&
|
||||
alertEntity.attributes["Vagues-submersion"]
|
||||
) {
|
||||
phenomenaList.push({
|
||||
name: "Vagues-submersion",
|
||||
icon: "mdi:waves",
|
||||
color: alertEntity.attributes["Vagues-submersion"],
|
||||
});
|
||||
}
|
||||
|
||||
return phenomenaList;
|
||||
}
|
||||
|
||||
getWeatherIcon(condition, isNight) {
|
||||
return `${
|
||||
this._config.icons
|
||||
? this._config.icons
|
||||
: "/local/community/lovelace-meteofrance-weather-card/icons/"
|
||||
}${isNight ? weatherIconsNight[condition] : weatherIconsDay[condition]}${
|
||||
this.isSelected(this._config.animated_icons) ? "" : "-static"
|
||||
}.svg`;
|
||||
}
|
||||
|
||||
getPhenomenaText(phenomena, isNight) {
|
||||
return `${
|
||||
isNight ? phenomenaNightText[phenomena] : phenomenaText[phenomena]
|
||||
}`;
|
||||
}
|
||||
|
||||
getUnit(measure) {
|
||||
const lengthUnit = this.hass.config.unit_system.length;
|
||||
switch (measure) {
|
||||
case "air_pressure":
|
||||
return lengthUnit === "km" ? "hPa" : "inHg";
|
||||
case "length":
|
||||
return lengthUnit;
|
||||
case "precipitation":
|
||||
return lengthUnit === "km" ? "mm" : "in";
|
||||
case "precipitation_probability":
|
||||
return "%";
|
||||
case "speed":
|
||||
return lengthUnit === "km" ? "km/h" : "mph";
|
||||
default:
|
||||
return this.hass.config.unit_system[measure] || "";
|
||||
}
|
||||
}
|
||||
|
||||
_handleClick() {
|
||||
fireEvent(this, "hass-more-info", { entityId: this._config.entity });
|
||||
}
|
||||
|
||||
getCardSize() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
static get styles() {
|
||||
return css`
|
||||
ha-card {
|
||||
cursor: pointer;
|
||||
margin: auto;
|
||||
overflow: hidden;
|
||||
padding: 0.5em 1em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
ha-card ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.spacer {
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.flow-row {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
}
|
||||
|
||||
.flow-column {
|
||||
display: flex;
|
||||
flex-flow: column wrap;
|
||||
}
|
||||
|
||||
.ha-icon {
|
||||
height: 0.8em;
|
||||
margin-right: 5px;
|
||||
color: var(--paper-item-icon-color);
|
||||
}
|
||||
|
||||
/* Current Forecast */
|
||||
.current {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.current > *:first-child {
|
||||
min-width: 100px;
|
||||
height: 100px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.current > *:last-child {
|
||||
margin-left: auto;
|
||||
min-width: max-content;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.current > *:last-child sup {
|
||||
font-size: initial;
|
||||
}
|
||||
|
||||
.current > li {
|
||||
font-size: 2em;
|
||||
line-height: 1.2;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.current > li > *:last-child {
|
||||
line-height: 1;
|
||||
font-size: 0.6em;
|
||||
color: var(--secondary-text-color);
|
||||
}
|
||||
|
||||
/* Details */
|
||||
.details {
|
||||
justify-content: space-between;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.details ha-icon {
|
||||
height: 22px;
|
||||
margin-right: 5px;
|
||||
color: var(--paper-item-icon-color);
|
||||
}
|
||||
|
||||
.details > li {
|
||||
flex-basis: auto;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.details > li:nth-child(2n) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.details > li:nth-child(2n) ha-icon {
|
||||
margin-right: 0;
|
||||
margin-left: 8px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* One Hour Forecast */
|
||||
.oneHour {
|
||||
height: 1em;
|
||||
}
|
||||
|
||||
.oneHour > li {
|
||||
background-color: var(--paper-item-icon-color);
|
||||
border-right: 1px solid
|
||||
var(--lovelace-background, var(--primary-background-color));
|
||||
}
|
||||
|
||||
.oneHour > li:first-child {
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
}
|
||||
|
||||
.oneHour > li:last-child {
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* One Hour Labels */
|
||||
.rain-0min,
|
||||
.rain-5min,
|
||||
.rain-10min,
|
||||
.rain-15min,
|
||||
.rain-20min,
|
||||
.rain-25min {
|
||||
flex: 1 1 0;
|
||||
}
|
||||
|
||||
.rain-35min,
|
||||
.rain-45min,
|
||||
.rain-55min {
|
||||
flex: 2 1 0;
|
||||
}
|
||||
|
||||
.oneHourLabel > li {
|
||||
flex: 1 1 0;
|
||||
}
|
||||
|
||||
/* One Hour Header */
|
||||
.oneHourHeader {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.oneHourHeader li:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* Alert */
|
||||
.alertForecast {
|
||||
text-align: center;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.alertForecast > div {
|
||||
flex: 1;
|
||||
color: var(--paper-item-icon-color);
|
||||
color: grey;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
margin-left: 1px;
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
||||
.alertForecastVert {
|
||||
}
|
||||
|
||||
.alertForecastJaune {
|
||||
background-color: yellow;
|
||||
}
|
||||
|
||||
.alertForecastOrange {
|
||||
background-color: orange;
|
||||
}
|
||||
|
||||
.alertForecastRouge {
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
/* Forecast */
|
||||
.forecast {
|
||||
justify-content: space-between;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.forecast > li {
|
||||
flex: 1;
|
||||
border-right: 0.1em solid #d9d9d9;
|
||||
}
|
||||
|
||||
.forecast > *:last-child {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.forecast ul.day {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.forecast ul.day > *:first-child {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.forecast ul.day .highTemp {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.forecast ul.day .lowTemp {
|
||||
color: var(--secondary-text-color);
|
||||
}
|
||||
|
||||
.forecast ul.day .icon {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
`;
|
||||
}
|
||||
}
|
||||
customElements.define("meteofrance-weather-card", MeteofranceWeatherCard);
|
||||
@@ -0,0 +1,418 @@
|
||||
console.info(`%c TEMPOMETER-CARD \n%c v1.4-beta.1`, 'color: orange; font-weight: bold; background: black', 'color: white; font-weight: bold; background: dimgray');
|
||||
class TempometerGaugeCard extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.attachShadow({ mode: 'open' });
|
||||
}
|
||||
setConfig(config) {
|
||||
if (!config.entity) {
|
||||
throw new Error('Please define an entity');
|
||||
}
|
||||
if (config.max == null) {
|
||||
throw new Error('Please define the max config option');
|
||||
}
|
||||
if (config.min == null) {
|
||||
throw new Error('Please define the min config option');
|
||||
}
|
||||
|
||||
const root = this.shadowRoot;
|
||||
if (root.lastChild) root.removeChild(root.lastChild);
|
||||
|
||||
const cardConfig = Object.assign({}, config);
|
||||
if (!cardConfig.scale) cardConfig.scale = "50px";
|
||||
|
||||
if (config.horizontal) {
|
||||
cardConfig.scale = "40px";
|
||||
}
|
||||
|
||||
const entityParts = this._splitEntityAndAttribute(cardConfig.entity);
|
||||
cardConfig.entity = entityParts.entity;
|
||||
if (entityParts.attribute) cardConfig.attribute = entityParts.attribute;
|
||||
|
||||
if (cardConfig.entity_min !== undefined) {
|
||||
const entityMinParts = this._splitEntityAndAttribute(cardConfig.entity_min);
|
||||
cardConfig.entity_min = entityMinParts.entity;
|
||||
if (entityMinParts.attribute) cardConfig.minAttribute = entityMinParts.attribute;
|
||||
}
|
||||
|
||||
if (cardConfig.entity_max !== undefined) {
|
||||
const entityMaxParts = this._splitEntityAndAttribute(cardConfig.entity_max);
|
||||
cardConfig.entity_max = entityMaxParts.entity;
|
||||
if (entityMaxParts.attribute) cardConfig.maxAttribute = entityMaxParts.attribute;
|
||||
}
|
||||
|
||||
if (config.icon_color !== undefined) {
|
||||
var icon_color = config.icon_color;
|
||||
} else {
|
||||
var icon_color = "var(--paper-item-icon-color)";
|
||||
}
|
||||
|
||||
let card_style = cardConfig.card_style;
|
||||
const card = document.createElement('ha-card');
|
||||
const content = document.createElement('div');
|
||||
const style = document.createElement('style');
|
||||
|
||||
style.textContent = `
|
||||
ha-card {
|
||||
--base-unit: ${cardConfig.scale};
|
||||
height: calc(var(--base-unit)*3.5);
|
||||
position: relative;
|
||||
}
|
||||
.container{
|
||||
width: calc(var(--base-unit) * 4);
|
||||
height: calc(var(--base-unit) * 2.44);
|
||||
position: absolute;
|
||||
top: calc(var(--base-unit)*2.1);
|
||||
left: 50%;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
.gauge-a{
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
background-color: var(--secondary-background-color);
|
||||
width: calc(var(--base-unit) * 4);
|
||||
height: calc(var(--base-unit) * 2);
|
||||
top: 0%;
|
||||
border-radius:calc(var(--base-unit) * 2.5) calc(var(--base-unit) * 2.5) 0px 0px ;
|
||||
}
|
||||
.gauge-b{
|
||||
z-index: 3;
|
||||
position: absolute;
|
||||
background-color: var(--card-background-color);
|
||||
width: calc(var(--base-unit) * 3.6);
|
||||
height: calc(var(--base-unit) * 2);
|
||||
top: calc(var(--base-unit) * 0.2);
|
||||
margin-left: calc(var(--base-unit) * 0.2);
|
||||
margin-right: auto;
|
||||
border-radius: calc(var(--base-unit) * 3.6) calc(var(--base-unit) * 3.6) 0px 0px ;
|
||||
}
|
||||
.gauge-c{
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
background-color: var(--label-badge-yellow);
|
||||
width: calc(var(--base-unit) * 4);
|
||||
height: calc(var(--base-unit) * 2);
|
||||
top: calc(var(--base-unit) * 2);
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border-radius: 0px 0px calc(var(--base-unit) * 2) calc(var(--base-unit) * 2) ;
|
||||
transform-origin: center top;
|
||||
transition: all 1.3s ease-in-out;
|
||||
}
|
||||
.gauge-data{
|
||||
z-index: 4;
|
||||
color: var(--primary-text-color);
|
||||
line-height: calc(var(--base-unit) * 0.3);
|
||||
position: absolute;
|
||||
width: calc(var(--base-unit) * 4);
|
||||
height: calc(var(--base-unit) * 2.1);
|
||||
top: calc(var(--base-unit) * 1.25);
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
transition: all 1s ease-out;
|
||||
}
|
||||
.gauge-data #percent{
|
||||
font-size: calc(var(--base-unit) * 0.55);
|
||||
}
|
||||
.gauge-data #title{
|
||||
padding-top: calc(var(--base-unit) * 0.15);
|
||||
font-size: calc(var(--base-unit) * 0.30);
|
||||
}
|
||||
.gauge-icons{
|
||||
width: calc(var(--base-unit) * 4);
|
||||
height: calc(var(--base-unit) * 2.5);
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
padding-top: calc(var(--base-unit)*0.15);
|
||||
}
|
||||
.icon1{
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
color: ${icon_color};
|
||||
float: left;
|
||||
padding-top: 3em;
|
||||
}
|
||||
.icon2{
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
color: ${icon_color};
|
||||
padding-top: .5em;
|
||||
padding-right: 9px;
|
||||
}
|
||||
.icon3{
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
color: ${icon_color};
|
||||
float: right;
|
||||
padding-top: 3em;
|
||||
}
|
||||
.gauge-footer{
|
||||
position: absolute;
|
||||
width: calc(var(--base-unit) *4);
|
||||
height: calc(var(--base-unit) *.75);
|
||||
top: calc(var(--base-unit) *2);
|
||||
z-index: 4;
|
||||
font-size: calc(var(--base-unit) * 0.30);
|
||||
font-weight: 400;
|
||||
padding-top: .25em;
|
||||
background: var(--card-background-color);
|
||||
}
|
||||
.gauge-footer .minval{
|
||||
float: left;
|
||||
color: #797575;
|
||||
padding-left: .5em;
|
||||
}
|
||||
.gauge-footer .maxval{
|
||||
float: right;
|
||||
color: #797575;
|
||||
padding-right: .25em;
|
||||
}
|
||||
.gauge-c hr {
|
||||
visibility: hidden;
|
||||
}
|
||||
.gauge-d{
|
||||
z-index: 100;
|
||||
position: absolute;
|
||||
width: calc(var(--base-unit) * 4);
|
||||
height: 0;
|
||||
top: calc(var(--base-unit) * 2);
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border-radius: 0px 0px calc(var(--base-unit) * 2) calc(var(--base-unit) * 2) ;
|
||||
transform-origin: center top;
|
||||
transition: all 1.3s ease-in-out;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.gauge-e{
|
||||
z-index: 101;
|
||||
position: absolute;
|
||||
width: calc(var(--base-unit) * 4);
|
||||
height: 0;
|
||||
top: calc(var(--base-unit) * 2);
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border-radius: 0px 0px calc(var(--base-unit) * 2) calc(var(--base-unit) * 2) ;
|
||||
transform-origin: center top;
|
||||
transition: all 1.3s ease-in-out;
|
||||
transform: rotate(125deg);
|
||||
}
|
||||
`;
|
||||
content.innerHTML = `
|
||||
<div id="gauge-icons" class="gauge-icons" style="display: none;">
|
||||
<ha-icon class="icon1" icon="${cardConfig.icon1}"></ha-icon>
|
||||
<ha-icon class="icon2" icon="${cardConfig.icon2}"></ha-icon>
|
||||
<ha-icon class="icon3" icon="${cardConfig.icon3}"></ha-icon>
|
||||
</div>
|
||||
<div id="gauge-icons-baro" class="gauge-icons">
|
||||
<ha-icon class="icon1" icon=mdi:weather-pouring></ha-icon>
|
||||
<ha-icon class="icon2" icon=mdi:weather-partly-cloudy></ha-icon>
|
||||
<ha-icon class="icon3" icon=mdi:weather-sunny></ha-icon>
|
||||
</div>
|
||||
<div id="gauge-icons-thermo" class="gauge-icons" style="display: none;">
|
||||
<ha-icon class="icon1" icon=mdi:thermometer-low></ha-icon>
|
||||
<ha-icon class="icon2" icon=mdi:thermometer></ha-icon>
|
||||
<ha-icon class="icon3" icon=mdi:thermometer-high></ha-icon>
|
||||
</div>
|
||||
<div id="gauge-icons-water" class="gauge-icons" style="display: none;">
|
||||
<ha-icon class="icon1" icon=mdi:water-off></ha-icon>
|
||||
<ha-icon class="icon2" icon=mdi:water-percent></ha-icon>
|
||||
<ha-icon class="icon3" icon=mdi:water></ha-icon>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="gauge-a">
|
||||
</div>
|
||||
<div class="gauge-b"></div>
|
||||
<div class="gauge-c" id="gauge"></div>
|
||||
<div class="gauge-d" id="recentMin">
|
||||
<svg id="svg_min" style="margin-right: 90%; width: 18px;height: 18px; margin-top: -6px; padding-bottom: 10px" viewBox="0 0 24 24">
|
||||
<title id="svg_min_title"></title>
|
||||
<path fill="blue" d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="gauge-e" id="recentMax">
|
||||
<svg id="svg_max" style="margin-right: 90%; width: 18px;height: 18px; margin-top: -12px; padding-bottom:10px;" viewBox="0 0 24 24">
|
||||
<title id="svg_max_title"></title>
|
||||
<path fill="red" d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="gauge-data">
|
||||
<div id="percent"></div>
|
||||
<div id="title"></div>
|
||||
</div>
|
||||
<div class="gauge-footer">
|
||||
<span id="minval" class="minval"></span>
|
||||
<span id="maxval" class="maxval"></span>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
card.appendChild(content);
|
||||
card.appendChild(style);
|
||||
card.addEventListener('click', event => {
|
||||
this._fire('hass-more-info', { entityId: cardConfig.entity });
|
||||
});
|
||||
root.appendChild(card);
|
||||
this._config = cardConfig;
|
||||
|
||||
if (card_style == "thermometer") {
|
||||
root.getElementById("gauge-icons-baro").style.display = 'none';
|
||||
root.getElementById("gauge-icons-water").style.display = 'none';
|
||||
root.getElementById("gauge-icons-thermo").style.display = 'block';
|
||||
root.getElementById("gauge-icons").style.display = 'none';
|
||||
} else if (card_style == "humidity") {
|
||||
root.getElementById("gauge-icons-baro").style.display = 'none';
|
||||
root.getElementById("gauge-icons-water").style.display = 'block';
|
||||
root.getElementById("gauge-icons-thermo").style.display = 'none';
|
||||
root.getElementById("gauge-icons").style.display = 'none';
|
||||
} else if (card_style == "custom") {
|
||||
root.getElementById("gauge-icons-baro").style.display = 'none';
|
||||
root.getElementById("gauge-icons-water").style.display = 'none';
|
||||
root.getElementById("gauge-icons-thermo").style.display = 'none';
|
||||
root.getElementById("gauge-icons").style.display = 'block';
|
||||
}
|
||||
}
|
||||
|
||||
_splitEntityAndAttribute(entity) {
|
||||
let parts = entity.split('.');
|
||||
if (parts.length < 3) {
|
||||
return { entity: entity };
|
||||
}
|
||||
|
||||
return { attribute: parts.pop(), entity: parts.join('.') };
|
||||
}
|
||||
|
||||
_fire(type, detail, options) {
|
||||
const node = this.shadowRoot;
|
||||
options = options || {};
|
||||
detail = (detail === null || detail === undefined) ? {} : detail;
|
||||
const event = new Event(type, {
|
||||
bubbles: options.bubbles === undefined ? true : options.bubbles,
|
||||
cancelable: Boolean(options.cancelable),
|
||||
composed: options.composed === undefined ? true : options.composed
|
||||
});
|
||||
event.detail = detail;
|
||||
node.dispatchEvent(event);
|
||||
return event;
|
||||
}
|
||||
|
||||
_translateTurn(value, config) {
|
||||
return 5 * (value - config.min) / (config.max - config.min);
|
||||
}
|
||||
|
||||
_computeSeverity(stateValue, sections) {
|
||||
let numberValue = Number(stateValue);
|
||||
const severityMap = {
|
||||
red: "var(--label-badge-red)",
|
||||
green: "var(--label-badge-green)",
|
||||
yellow: "var(--label-badge-yellow)",
|
||||
normal: "var(--label-badge-blue)",
|
||||
};
|
||||
if (!sections) return severityMap["normal"];
|
||||
let sortable = [];
|
||||
for (let severity in sections) {
|
||||
sortable.push([severity, sections[severity]]);
|
||||
}
|
||||
sortable.sort((a, b) => { return a[1] - b[1] });
|
||||
if (numberValue >= sortable[0][1] && numberValue < sortable[1][1]) {
|
||||
return severityMap[sortable[0][0]];
|
||||
}
|
||||
if (numberValue >= sortable[1][1] && numberValue < sortable[2][1]) {
|
||||
return severityMap[sortable[1][0]];
|
||||
}
|
||||
if (sortable.length === 4) {
|
||||
if (numberValue >= sortable[2][1] && numberValue < sortable[3][1]) {
|
||||
return severityMap[sortable[2][0]];
|
||||
}
|
||||
if (numberValue > sortable[3][1]) {
|
||||
return severityMap["normal"]
|
||||
}
|
||||
} else {
|
||||
if (numberValue >= sortable[2][1]) {
|
||||
return severityMap[sortable[2][0]];
|
||||
}
|
||||
}
|
||||
return severityMap["normal"];
|
||||
}
|
||||
|
||||
_getEntityStateValue(entity, attribute) {
|
||||
if (!attribute) {
|
||||
return entity.state;
|
||||
}
|
||||
|
||||
return entity.attributes[attribute];
|
||||
}
|
||||
|
||||
set hass(hass) {
|
||||
const root = this.shadowRoot;
|
||||
const config = this._config;
|
||||
var entityState = this._getEntityStateValue(hass.states[config.entity], config.attribute);
|
||||
var maxEntityState = null;
|
||||
var minEntityState = null;
|
||||
if (config.entity_max !== undefined) {
|
||||
maxEntityState = this._getEntityStateValue(hass.states[config.entity_max], config.maxAttribute);
|
||||
} else {
|
||||
root.getElementById("recentMax").style.display = 'none';
|
||||
}
|
||||
if (config.entity_min !== undefined) {
|
||||
minEntityState = this._getEntityStateValue(hass.states[config.entity_min], config.minAttribute);
|
||||
} else {
|
||||
root.getElementById("recentMin").style.display = 'none';
|
||||
}
|
||||
|
||||
let measurement = "";
|
||||
if (config.measurement == null) {
|
||||
if (hass.states[config.entity].attributes.unit_of_measurement === undefined) {
|
||||
measurement = '';
|
||||
} else {
|
||||
measurement = hass.states[config.entity].attributes.unit_of_measurement;
|
||||
}
|
||||
} else {
|
||||
measurement = config.measurement;
|
||||
}
|
||||
|
||||
root.getElementById("minval").innerHTML = config.min;
|
||||
root.getElementById("maxval").innerHTML = config.max;
|
||||
|
||||
// Set decimal precision
|
||||
if (config.decimals !== undefined) {
|
||||
// Only allow positive numbers
|
||||
if (config.decimals >= 0) {
|
||||
entityState = Math.round(parseFloat(entityState) * (10 ** config.decimals)) / (10 ** config.decimals) // Round (https://stackoverflow.com/a/11832950)
|
||||
entityState = entityState.toFixed(config.decimals) // Add trailing zeroes if applicable
|
||||
}
|
||||
}
|
||||
|
||||
if (entityState !== this._entityState) {
|
||||
root.getElementById("percent").textContent = `${entityState} ${measurement}`;
|
||||
root.getElementById("title").textContent = config.title;
|
||||
const turn = this._translateTurn(entityState, config) / 10;
|
||||
root.getElementById("gauge").style.transform = `rotate(${turn}turn)`;
|
||||
root.getElementById("gauge").style.backgroundColor = this._computeSeverity(entityState, config.severity);
|
||||
this._entityState = entityState;
|
||||
}
|
||||
if (config.entity_max !== null) {
|
||||
if (maxEntityState !== this._maxEntityState) {
|
||||
this._maxEntityState = maxEntityState;
|
||||
const turn3 = this._translateTurn(maxEntityState, config) /10;
|
||||
root.getElementById("recentMax").style.transform = `rotate(${turn3}turn)`;
|
||||
root.getElementById("svg_max_title").innerHTML = maxEntityState;
|
||||
}
|
||||
}
|
||||
if (config.entity_min !== null) {
|
||||
if (minEntityState !== this._minEntityState) {
|
||||
this._minEntityState = minEntityState;
|
||||
const turn2 = this._translateTurn(minEntityState, config) /10;
|
||||
root.getElementById("recentMin").style.transform = `rotate(${turn2}turn)`;
|
||||
root.getElementById("svg_min_title").innerHTML = minEntityState;
|
||||
}
|
||||
}
|
||||
root.lastChild.hass = hass;
|
||||
}
|
||||
|
||||
getCardSize() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define('tempometer-gauge-card', TempometerGaugeCard);
|
||||
@@ -0,0 +1,289 @@
|
||||
if (!customElements.get("paper-input")) {
|
||||
console.log("imported", "paper-input");
|
||||
import("https://unpkg.com/@polymer/paper-input/paper-input.js?module");
|
||||
}
|
||||
|
||||
const fireEvent = (node, type, detail, options) => {
|
||||
options = options || {};
|
||||
detail = detail === null || detail === undefined ? {} : detail;
|
||||
const event = new Event(type, {
|
||||
bubbles: options.bubbles === undefined ? true : options.bubbles,
|
||||
cancelable: Boolean(options.cancelable),
|
||||
composed: options.composed === undefined ? true : options.composed
|
||||
});
|
||||
event.detail = detail;
|
||||
node.dispatchEvent(event);
|
||||
return event;
|
||||
};
|
||||
|
||||
const LitElement = Object.getPrototypeOf(
|
||||
customElements.get("ha-panel-lovelace")
|
||||
);
|
||||
const html = LitElement.prototype.html;
|
||||
|
||||
export class WeatherCardEditor extends LitElement {
|
||||
setConfig(config) {
|
||||
this._config = config;
|
||||
}
|
||||
|
||||
static get properties() {
|
||||
return { hass: {}, _config: {} };
|
||||
}
|
||||
|
||||
get _entity() {
|
||||
return this._config.entity || "";
|
||||
}
|
||||
|
||||
get _rainChanceEntity() {
|
||||
return this._config.rainChanceEntity || "";
|
||||
}
|
||||
|
||||
get _cloudCoverEntity() {
|
||||
return this._config.cloudCoverEntity || "";
|
||||
}
|
||||
|
||||
get _snowChanceEntity() {
|
||||
return this._config.snowChanceEntity || "";
|
||||
}
|
||||
|
||||
get _freezeChanceEntity() {
|
||||
return this._config.freezeChanceEntity || "";
|
||||
}
|
||||
|
||||
|
||||
get _alertEntity() {
|
||||
return this._config.alertEntity || "";
|
||||
}
|
||||
|
||||
get _uvEntity() {
|
||||
return this._config.uvEntity || "";
|
||||
}
|
||||
|
||||
get _rainForecastEntity() {
|
||||
return this._config.rainForecastEntity || "";
|
||||
}
|
||||
|
||||
get _name() {
|
||||
return this._config.name || "";
|
||||
}
|
||||
|
||||
get _icons() {
|
||||
return this._config.icons || "";
|
||||
}
|
||||
|
||||
render() {
|
||||
if (!this.hass) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
return html`
|
||||
<div class="card-config">
|
||||
<div class="side-by-side">
|
||||
<paper-input
|
||||
label="Nom"
|
||||
.value="${this._name}"
|
||||
.configValue="${"name"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
<paper-input
|
||||
label="Icônes"
|
||||
.value="${this._icons}"
|
||||
.configValue="${"icons"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
${
|
||||
customElements.get("ha-entity-picker")
|
||||
? html`
|
||||
<ha-entity-picker
|
||||
.hass="${this.hass}"
|
||||
.value="${this._entity}"
|
||||
.configValue=${"entity"}
|
||||
domain-filter="weather"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`
|
||||
: html`
|
||||
<paper-input
|
||||
label="Météo"
|
||||
.value="${this._entity}"
|
||||
.configValue="${"entity"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
`
|
||||
}
|
||||
${
|
||||
customElements.get("ha-entity-picker")
|
||||
? html`
|
||||
<ha-entity-picker
|
||||
.hass="${this.hass}"
|
||||
.value="${this._rainChanceEntity}"
|
||||
.configValue=${"rainChanceEntity"}
|
||||
domain-filter="sensor"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`
|
||||
: html`
|
||||
<paper-input
|
||||
label="Risque de pluie"
|
||||
.value="${this._rainChanceEntity}"
|
||||
.configValue="${"rainChanceEntity"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
`
|
||||
}
|
||||
${
|
||||
customElements.get("ha-entity-picker")
|
||||
? html`
|
||||
<ha-entity-picker
|
||||
.hass="${this.hass}"
|
||||
.value="${this._uvEntity}"
|
||||
.configValue=${"uvEntity"}
|
||||
domain-filter="sensor"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`
|
||||
: html`
|
||||
<paper-input
|
||||
label="UV"
|
||||
.value="${this._uvEntity}"
|
||||
.configValue="${"uvEntity"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
`
|
||||
}
|
||||
${
|
||||
customElements.get("ha-entity-picker")
|
||||
? html`
|
||||
<ha-entity-picker
|
||||
.hass="${this.hass}"
|
||||
.value="${this._cloudCoverEntity}"
|
||||
.configValue=${"cloudCoverEntity"}
|
||||
domain-filter="sensor"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`
|
||||
: html`
|
||||
<paper-input
|
||||
label="Couverture nuageuse"
|
||||
.value="${this._cloudCoverEntity}"
|
||||
.configValue="${"cloudCoverEntity"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
`
|
||||
}
|
||||
${
|
||||
customElements.get("ha-entity-picker")
|
||||
? html`
|
||||
<ha-entity-picker
|
||||
.hass="${this.hass}"
|
||||
.value="${this._freezeChanceEntity}"
|
||||
.configValue=${"freezeChanceEntity"}
|
||||
domain-filter="sensor"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`
|
||||
: html`
|
||||
<paper-input
|
||||
label="Risque de gel"
|
||||
.value="${this._freezeChanceEntity}"
|
||||
.configValue="${"freezeChanceEntity"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
`
|
||||
}
|
||||
${
|
||||
customElements.get("ha-entity-picker")
|
||||
? html`
|
||||
<ha-entity-picker
|
||||
.hass="${this.hass}"
|
||||
.value="${this._snowChanceEntity}"
|
||||
.configValue=${"snowChanceEntity"}
|
||||
domain-filter="sensor"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`
|
||||
: html`
|
||||
<paper-input
|
||||
label="Risque de neige"
|
||||
.value="${this._snowChanceEntity}"
|
||||
.configValue="${"snowChanceEntity"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
`
|
||||
}
|
||||
${
|
||||
customElements.get("ha-entity-picker")
|
||||
? html`
|
||||
<ha-entity-picker
|
||||
.hass="${this.hass}"
|
||||
.value="${this._alertEntity}"
|
||||
.configValue=${"alertEntity"}
|
||||
domain-filter="sensor"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`
|
||||
: html`
|
||||
<paper-input
|
||||
label="Vigilance Météo"
|
||||
.value="${this._alertEntity}"
|
||||
.configValue="${"alertEntity"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
`
|
||||
}
|
||||
${
|
||||
customElements.get("ha-entity-picker")
|
||||
? html`
|
||||
<ha-entity-picker
|
||||
.hass="${this.hass}"
|
||||
.value="${this._rainForecastEntity}"
|
||||
.configValue=${"rainForecastEntity"}
|
||||
domain-filter="sensor"
|
||||
@change="${this._valueChanged}"
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>
|
||||
`
|
||||
: html`
|
||||
<paper-input
|
||||
label="Pluie dans l'heure"
|
||||
.value="${this._rainForecastEntity}"
|
||||
.configValue="${"rainForecastEntity"}"
|
||||
@value-changed="${this._valueChanged}"
|
||||
></paper-input>
|
||||
`
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
_valueChanged(ev) {
|
||||
if (!this._config || !this.hass) {
|
||||
return;
|
||||
}
|
||||
const target = ev.target;
|
||||
if (this[`_${target.configValue}`] === target.value) {
|
||||
return;
|
||||
}
|
||||
if (target.configValue) {
|
||||
if (target.value === "") {
|
||||
delete this._config[target.configValue];
|
||||
} else {
|
||||
this._config = {
|
||||
...this._config,
|
||||
[target.configValue]: target.value
|
||||
};
|
||||
}
|
||||
}
|
||||
fireEvent(this, "config-changed", { config: this._config });
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("meteo-france-weather-card-editor", WeatherCardEditor);
|
||||
@@ -0,0 +1,724 @@
|
||||
const LitElement = Object.getPrototypeOf(
|
||||
customElements.get("ha-panel-lovelace")
|
||||
);
|
||||
const html = LitElement.prototype.html;
|
||||
|
||||
const weatherIconsDay = {
|
||||
clear: "day",
|
||||
"clear-night": "day",
|
||||
"nuit claire": "day",
|
||||
cloudy: "cloudy",
|
||||
fog: "cloudy",
|
||||
hail: "rainy-7",
|
||||
lightning: "thunder",
|
||||
"lightning-rainy": "thunder",
|
||||
partlycloudy: "cloudy-day-3",
|
||||
pouring: "rainy-6",
|
||||
rainy: "rainy-5",
|
||||
snowy: "snowy-6",
|
||||
"snowy-rainy": "rainy-7",
|
||||
sunny: "day",
|
||||
windy: "cloudy",
|
||||
"windy-variant": "cloudy-day-3",
|
||||
exceptional: "!!"
|
||||
};
|
||||
|
||||
const weatherIconsNight = {
|
||||
...weatherIconsDay,
|
||||
clear: "night",
|
||||
"clear-night": "night",
|
||||
sunny: "night",
|
||||
"nuit claire": "night",
|
||||
partlycloudy: "cloudy-night-3",
|
||||
"windy-variant": "cloudy-night-3"
|
||||
};
|
||||
|
||||
const fireEvent = (node, type, detail, options) => {
|
||||
options = options || {};
|
||||
detail = detail === null || detail === undefined ? {} : detail;
|
||||
const event = new Event(type, {
|
||||
bubbles: options.bubbles === undefined ? true : options.bubbles,
|
||||
cancelable: Boolean(options.cancelable),
|
||||
composed: options.composed === undefined ? true : options.composed
|
||||
});
|
||||
event.detail = detail;
|
||||
node.dispatchEvent(event);
|
||||
return event;
|
||||
};
|
||||
|
||||
function getWindDirectionRotation(direction) {
|
||||
let windDirections = [
|
||||
"N",//0
|
||||
"NNE",
|
||||
"NE",
|
||||
"ENE",
|
||||
"E",//90
|
||||
"ESE",
|
||||
"SE",
|
||||
"SSE",
|
||||
"S",//180
|
||||
"SSO",
|
||||
"SO",
|
||||
"OSO",
|
||||
"O",//270
|
||||
"ONO",
|
||||
"NO",
|
||||
"NNO"
|
||||
];
|
||||
|
||||
let name = windDirections[Math.round(direction/22.5)%16];
|
||||
return name;
|
||||
}
|
||||
|
||||
function getVigilance(color, alertEntity) {
|
||||
let phenomenaIcons = {
|
||||
"Vent violent": "mdi:weather-windy",
|
||||
"Pluie-inondation": "mdi:weather-pouring",
|
||||
"Orages": "mdi:weather-lightning",
|
||||
"Inondation": "mdi:home-flood",
|
||||
"Neige-verglas": "mdi:weather-snowy-heavy",
|
||||
"Canicule": "mdi:weather-sunny-alert",
|
||||
"Grand-froid": "mdi:snowflake",
|
||||
"Avalanches": "mdi:image-filter-hdr",
|
||||
"Vagues-submersion": "mdi:waves"
|
||||
};
|
||||
|
||||
if(alertEntity == undefined) {
|
||||
return [];
|
||||
}
|
||||
|
||||
let phenomenaList = [];
|
||||
for (const [currentPhenomenon, currentPhenomenonColor] of Object.entries(alertEntity.attributes)) {
|
||||
if(currentPhenomenonColor == color) {
|
||||
phenomenaList.push([currentPhenomenon, phenomenaIcons[currentPhenomenon]]);
|
||||
}
|
||||
}
|
||||
|
||||
return phenomenaList;
|
||||
}
|
||||
|
||||
function getRainForecast(rainForecastEntity) {
|
||||
|
||||
let rainForecastColors = new Map([
|
||||
['Temps sec', 0.1],
|
||||
['Pluie faible', 0.4],
|
||||
['Pluie modérée', 0.7],
|
||||
['Pluie forte', 1]
|
||||
]);
|
||||
|
||||
let rainForecastList = [];
|
||||
for (let [time, value] of Object.entries(rainForecastEntity.attributes['1_hour_forecast'])) {
|
||||
if(time != undefined && time.match(/[0-9]*min/g)) {
|
||||
time = time.replace('min', '').trim();
|
||||
rainForecastList.push([time, rainForecastColors.get(value), value]);
|
||||
}
|
||||
}
|
||||
|
||||
return rainForecastList;
|
||||
}
|
||||
|
||||
function hasConfigOrEntityChanged(element, changedProps) {
|
||||
if (changedProps.has("_config")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const oldHass = changedProps.get("hass");
|
||||
if (oldHass) {
|
||||
return (
|
||||
oldHass.states[element._config.entity] !==
|
||||
element.hass.states[element._config.entity] ||
|
||||
oldHass.states["sun.sun"] !== element.hass.states["sun.sun"]
|
||||
);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
class WeatherCard extends LitElement {
|
||||
static get properties() {
|
||||
return {
|
||||
_config: {},
|
||||
hass: {}
|
||||
};
|
||||
}
|
||||
|
||||
static async getConfigElement() {
|
||||
await import("./meteo-france-weather-card-editor.js");
|
||||
return document.createElement("meteo-france-weather-card-editor");
|
||||
}
|
||||
|
||||
static getStubConfig() {
|
||||
return {};
|
||||
}
|
||||
|
||||
setConfig(config) {
|
||||
if (!config.entity) {
|
||||
throw new Error("Please define a weather entity");
|
||||
}
|
||||
this._config = config;
|
||||
}
|
||||
|
||||
shouldUpdate(changedProps) {
|
||||
return hasConfigOrEntityChanged(this, changedProps);
|
||||
}
|
||||
|
||||
render() {
|
||||
if (!this._config || !this.hass) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
const stateObj = this.hass.states[this._config.entity];
|
||||
const rainChanceObj = this.hass.states[this._config.rainChanceEntity];
|
||||
const cloudCoverObj = this.hass.states[this._config.cloudCoverEntity];
|
||||
const snowChanceObj = this.hass.states[this._config.snowChanceEntity];
|
||||
const freezeChanceObj = this.hass.states[this._config.freezeChanceEntity];
|
||||
const alertObj = this.hass.states[this._config.alertEntity];
|
||||
const rainForecastObj = this.hass.states[this._config.rainForecastEntity];
|
||||
const uvObj = this.hass.states[this._config.uvEntity];
|
||||
|
||||
if (!stateObj) {
|
||||
return html`
|
||||
<style>
|
||||
.not-found {
|
||||
flex: 1;
|
||||
background-color: yellow;
|
||||
padding: 8px;
|
||||
}
|
||||
</style>
|
||||
<ha-card>
|
||||
<div class="not-found">
|
||||
Entity not available: ${this._config.entity}
|
||||
</div>
|
||||
</ha-card>
|
||||
`;
|
||||
}
|
||||
|
||||
const lang = this.hass.selectedLanguage || this.hass.language;
|
||||
|
||||
const next_rising = new Date(
|
||||
this.hass.states["sun.sun"].attributes.next_rising
|
||||
);
|
||||
const next_setting = new Date(
|
||||
this.hass.states["sun.sun"].attributes.next_setting
|
||||
);
|
||||
|
||||
return html`
|
||||
${this.renderStyle()}
|
||||
<ha-card @click="${this._handleClick}">
|
||||
<span
|
||||
class="icon bigger"
|
||||
style="background: none, url(${
|
||||
this.getWeatherIcon(
|
||||
stateObj.state.toLowerCase(),
|
||||
this.hass.states["sun.sun"].state
|
||||
)
|
||||
}) no-repeat; background-size: contain;"
|
||||
>${stateObj.state}
|
||||
</span>
|
||||
${
|
||||
this._config.name
|
||||
? html`
|
||||
<span class="title"> ${this._config.name} </span>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
<span class="temp"
|
||||
>${
|
||||
this.getUnit("temperature") == "°F"
|
||||
? Math.round(stateObj.attributes.temperature)
|
||||
: stateObj.attributes.temperature
|
||||
}</span
|
||||
>
|
||||
<span class="tempc"> ${this.getUnit("temperature")}</span>
|
||||
<span>
|
||||
<ul class="variations">
|
||||
<li>
|
||||
${
|
||||
rainChanceObj != undefined
|
||||
? html`
|
||||
<span title="${rainChanceObj.attributes.friendly_name}" class="ha-icon"
|
||||
><ha-icon icon="${rainChanceObj.attributes.icon === undefined ? 'mdi:weather-rainy' : rainChanceObj.attributes.icon}"></ha-icon
|
||||
></span>
|
||||
${rainChanceObj.state}<span class="unit"> ${rainChanceObj.attributes.unit_of_measurement} </span>
|
||||
<br />
|
||||
`
|
||||
: html`<div style="height: 24px;" ></div>`
|
||||
}
|
||||
${
|
||||
cloudCoverObj != undefined
|
||||
? html`
|
||||
<span title="${cloudCoverObj.attributes.friendly_name}" class="ha-icon"
|
||||
><ha-icon icon="${cloudCoverObj.attributes.icon === undefined ? 'mdi:weather-cloudy' : cloudCoverObj.attributes.icon}"></ha-icon
|
||||
></span>
|
||||
${cloudCoverObj.state}<span class="unit"> ${cloudCoverObj.attributes.unit_of_measurement} </span>
|
||||
<br />
|
||||
`
|
||||
: html`<div style="height: 24px;" ></div>`
|
||||
}
|
||||
${
|
||||
snowChanceObj != undefined
|
||||
? html`
|
||||
<span title="${snowChanceObj.attributes.friendly_name}" class="ha-icon"
|
||||
><ha-icon icon="${snowChanceObj.attributes.icon === undefined ? 'mdi:weather-snowy' : snowChanceObj.attributes.icon}"></ha-icon
|
||||
></span>
|
||||
${snowChanceObj.state}<span class="unit"> ${snowChanceObj.attributes.unit_of_measurement} </span>
|
||||
<br />
|
||||
`
|
||||
: html`<div style="height: 24px;" ></div>`
|
||||
}
|
||||
${
|
||||
freezeChanceObj != undefined
|
||||
? html`
|
||||
<span title="${freezeChanceObj.attributes.friendly_name}" class="ha-icon"
|
||||
><ha-icon icon="${freezeChanceObj.attributes.icon === undefined ? 'mdi:snowflake' : freezeChanceObj.attributes.icon}"></ha-icon
|
||||
></span>
|
||||
${freezeChanceObj.state}<span class="unit"> ${freezeChanceObj.attributes.unit_of_measurement} </span>
|
||||
<br />
|
||||
`
|
||||
: html`<div style="height: 24px;" ></div>`
|
||||
}
|
||||
<br />
|
||||
<span class="ha-icon"
|
||||
><ha-icon icon="mdi:weather-sunset-up"></ha-icon
|
||||
></span>
|
||||
${next_rising.toLocaleTimeString()}
|
||||
</li>
|
||||
<li>
|
||||
<span class="ha-icon"
|
||||
><ha-icon icon="mdi:weather-windy"></ha-icon
|
||||
></span>
|
||||
${stateObj.attributes.wind_speed}<span class="unit">
|
||||
${this.getUnit("length")}/h
|
||||
</span>
|
||||
<br />
|
||||
${
|
||||
stateObj.attributes.wind_bearing != undefined
|
||||
? html`
|
||||
<span class="ha-icon"
|
||||
><ha-icon icon="mdi:navigation" style="transform: rotate(${stateObj.attributes.wind_bearing - 180}deg); display: inline-block;"></ha-icon
|
||||
></span>
|
||||
`
|
||||
: html`<div style="height: 24px;" ></div>`
|
||||
}
|
||||
${
|
||||
stateObj.attributes.wind_bearing != undefined
|
||||
? html`
|
||||
${getWindDirectionRotation(stateObj.attributes.wind_bearing)}
|
||||
<br />
|
||||
<div style="height: 24px;" ></div>
|
||||
`
|
||||
: html`<div style="height: 24px;" ></div>`
|
||||
}
|
||||
${
|
||||
uvObj != undefined
|
||||
? html`
|
||||
<span title="${uvObj.attributes.friendly_name}" class="ha-icon"
|
||||
><ha-icon icon="${uvObj.attributes.icon === undefined ? 'mdi:sunglasses' : uvObj.attributes.icon}"></ha-icon
|
||||
></span>
|
||||
UV ${uvObj.state}
|
||||
<br />
|
||||
`
|
||||
: html`<div style="height: 24px;" ></div>`
|
||||
}
|
||||
<br />
|
||||
<span class="ha-icon"
|
||||
><ha-icon icon="mdi:weather-sunset-down"></ha-icon
|
||||
></span>
|
||||
${next_setting.toLocaleTimeString()}
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
${
|
||||
rainForecastObj != undefined
|
||||
? html`
|
||||
<div class="pluie">
|
||||
${
|
||||
html`
|
||||
${
|
||||
getRainForecast(rainForecastObj).map(
|
||||
forecast => html`
|
||||
<div class="pluie-element" style="opacity: ${forecast[1]}" title="${forecast[2] + " " + (forecast[0] == 0 ? "actuellement" : "dans " + forecast[0] + " min")}">
|
||||
</div>
|
||||
`
|
||||
)
|
||||
}
|
||||
|
||||
`
|
||||
}
|
||||
</div>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
${
|
||||
getVigilance("Jaune", alertObj).length > 0
|
||||
? html`
|
||||
<span class="vigilance jaune">
|
||||
<ha-icon icon="mdi:alert"></ha-icon>Vigilance jaune en cours
|
||||
<div class="vigilance-list">
|
||||
${
|
||||
getVigilance("Jaune", alertObj).map(
|
||||
phenomenon => html`
|
||||
<ha-icon icon="${phenomenon[1]}" title="${phenomenon[0]}"></ha-icon>
|
||||
`
|
||||
)
|
||||
}
|
||||
</div>
|
||||
</span>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
${
|
||||
getVigilance("Orange", alertObj).length > 0
|
||||
? html`
|
||||
<span class="vigilance orange">
|
||||
<ha-icon icon="mdi:alert"></ha-icon>Vigilance orange en cours
|
||||
<div class="vigilance-list">
|
||||
${
|
||||
getVigilance("Orange", alertObj).map(
|
||||
phenomenon => html`
|
||||
<ha-icon icon="${phenomenon[1]}" title="${phenomenon[0]}"></ha-icon>
|
||||
`
|
||||
)
|
||||
}
|
||||
</div>
|
||||
</span>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
${
|
||||
getVigilance("Rouge", alertObj).length > 0
|
||||
? html`
|
||||
<span class="vigilance rouge">
|
||||
<ha-icon icon="mdi:alert"></ha-icon>Vigilance rouge en cours
|
||||
<div class="vigilance-list">
|
||||
${
|
||||
getVigilance("Rouge", alertObj).map(
|
||||
phenomenon => html`
|
||||
<ha-icon icon="${phenomenon[1]}" title="${phenomenon[0]}"></ha-icon>
|
||||
`
|
||||
)
|
||||
}
|
||||
</div>
|
||||
</span>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
${
|
||||
stateObj.attributes.forecast &&
|
||||
stateObj.attributes.forecast.length > 0
|
||||
? html`
|
||||
<div class="forecast clear">
|
||||
${
|
||||
stateObj.attributes.forecast.slice(0, 5).map(
|
||||
daily => html`
|
||||
<div class="day">
|
||||
<span class="dayname"
|
||||
>${
|
||||
new Date(daily.datetime).toLocaleDateString(
|
||||
lang,
|
||||
{
|
||||
weekday: "short"
|
||||
}
|
||||
)
|
||||
}</span
|
||||
>
|
||||
<br /><i
|
||||
class="icon"
|
||||
style="background: none, url(${
|
||||
this.getWeatherIcon(daily.condition.toLowerCase())
|
||||
}) no-repeat; background-size: contain;"
|
||||
></i>
|
||||
<br /><span class="highTemp"
|
||||
>${daily.temperature}${
|
||||
this.getUnit("temperature")
|
||||
}</span
|
||||
>
|
||||
${
|
||||
typeof daily.templow !== 'undefined'
|
||||
? html`
|
||||
<br /><span class="lowTemp"
|
||||
>${daily.templow}${
|
||||
this.getUnit("temperature")
|
||||
}</span
|
||||
>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
${
|
||||
typeof daily.precipitation !== 'undefined'
|
||||
? html`
|
||||
<br /><span class="rainForcast"
|
||||
>${daily.precipitation}${
|
||||
this.getUnit("precipitation")
|
||||
}</span
|
||||
>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
</div>
|
||||
`
|
||||
)
|
||||
}
|
||||
</div>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
</ha-card>
|
||||
`;
|
||||
}
|
||||
|
||||
getWeatherIcon(condition, sun) {
|
||||
let icon = `${
|
||||
this._config.icons
|
||||
? this._config.icons
|
||||
: "https://cdn.jsdelivr.net/gh/bramkragten/custom-ui@master/weather-card/icons/animated/"
|
||||
}${
|
||||
sun && sun == "below_horizon"
|
||||
? weatherIconsNight[condition]
|
||||
: weatherIconsDay[condition]
|
||||
}.svg`;
|
||||
return icon;
|
||||
}
|
||||
|
||||
getUnit(measure) {
|
||||
const lengthUnit = this.hass.config.unit_system.length;
|
||||
switch (measure) {
|
||||
case "air_pressure":
|
||||
return lengthUnit === "km" ? "hPa" : "inHg";
|
||||
case "length":
|
||||
return lengthUnit;
|
||||
case "precipitation":
|
||||
return lengthUnit === "km" ? "mm" : "in";
|
||||
default:
|
||||
return this.hass.config.unit_system[measure] || "";
|
||||
}
|
||||
}
|
||||
|
||||
_handleClick() {
|
||||
fireEvent(this, "hass-more-info", { entityId: this._config.entity });
|
||||
}
|
||||
|
||||
getCardSize() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
renderStyle() {
|
||||
return html`
|
||||
<style>
|
||||
ha-card {
|
||||
cursor: pointer;
|
||||
margin: auto;
|
||||
padding-top: 2.5em;
|
||||
padding-bottom: 1.3em;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pluie {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
height: 15px;
|
||||
padding: 0px;
|
||||
color: var(--primary-text-color);
|
||||
margin: 10px 2px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.pluie-element {
|
||||
width: 100%;
|
||||
background-color: var(--paper-item-icon-color);
|
||||
border-right: 1px solid var(
|
||||
--lovelace-background,
|
||||
var(--primary-background-color)
|
||||
);
|
||||
}
|
||||
|
||||
.pluie-element:first-child {
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
}
|
||||
|
||||
.pluie-element:last-child {
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.ha-icon {
|
||||
height: 18px;
|
||||
margin-right: 5px;
|
||||
color: var(--paper-item-icon-color);
|
||||
}
|
||||
|
||||
.vigilance {
|
||||
display: block;
|
||||
border-radius: 5px;
|
||||
padding: 5px 10px;
|
||||
font-weight: 600;
|
||||
color: var(--primary-text-color);
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
.vigilance ha-icon {
|
||||
margin: 0px 10px 0px 0px;
|
||||
}
|
||||
|
||||
.vigilance-list ha-icon {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.vigilance-list {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.vigilance.jaune {
|
||||
background-color: rgba(255,235,0,0.5);
|
||||
}
|
||||
|
||||
.vigilance.orange {
|
||||
background-color: rgba(255,152,0,0.5);
|
||||
}
|
||||
|
||||
.vigilance.rouge {
|
||||
background-color: rgba(244,67,54,0.5);
|
||||
}
|
||||
|
||||
.title {
|
||||
position: absolute;
|
||||
left: 3em;
|
||||
top: 0.9em;
|
||||
font-weight: 300;
|
||||
font-size: 3em;
|
||||
color: var(--primary-text-color);
|
||||
}
|
||||
.temp {
|
||||
font-weight: 300;
|
||||
font-size: 4em;
|
||||
color: var(--primary-text-color);
|
||||
position: absolute;
|
||||
right: 1em;
|
||||
top: 0.7em;
|
||||
}
|
||||
|
||||
.tempc {
|
||||
font-weight: 300;
|
||||
font-size: 1.5em;
|
||||
vertical-align: super;
|
||||
color: var(--primary-text-color);
|
||||
position: absolute;
|
||||
right: 1em;
|
||||
margin-top: -14px;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.variations {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
justify-content: space-between;
|
||||
font-weight: 300;
|
||||
color: var(--primary-text-color);
|
||||
list-style: none;
|
||||
margin-top: 4.5em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.variations li {
|
||||
flex-basis: auto;
|
||||
}
|
||||
|
||||
.variations li:first-child {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.variations li:last-child {
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
.unit {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
.forecast {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
height: 11em;
|
||||
}
|
||||
|
||||
.day {
|
||||
display: block;
|
||||
width: 20%;
|
||||
float: left;
|
||||
text-align: center;
|
||||
color: var(--primary-text-color);
|
||||
border-right: 0.1em solid #d9d9d9;
|
||||
line-height: 2;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.dayname {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.forecast .day:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.forecast .day:nth-last-child(1) {
|
||||
border-right: none;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.highTemp {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.lowTemp {
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.rainForcast {
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.icon.bigger {
|
||||
width: 10em;
|
||||
height: 10em;
|
||||
margin-top: -8.5em;
|
||||
position: absolute;
|
||||
left: 0em;
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
margin-right: 5px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
background-size: contain;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
text-indent: -9999px;
|
||||
}
|
||||
|
||||
.weather {
|
||||
font-weight: 300;
|
||||
font-size: 1.5em;
|
||||
color: var(--primary-text-color);
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
top: -0.5em;
|
||||
left: 6em;
|
||||
word-wrap: break-word;
|
||||
width: 30%;
|
||||
}
|
||||
</style>
|
||||
`;
|
||||
}
|
||||
}
|
||||
customElements.define("meteo-france-weather-card", WeatherCard);
|
||||
@@ -0,0 +1,292 @@
|
||||
/*!
|
||||
* SVGInjector v2.1.5 - Fast, caching, dynamic inline SVG DOM injection library
|
||||
* https://github.com/flobacher/SVGInjector2
|
||||
* forked from:
|
||||
* https://github.com/iconic/SVGInjector
|
||||
*
|
||||
* Copyright (c) 2015 flobacher <flo@digital-fuse.net>
|
||||
* @license MIT
|
||||
*
|
||||
* original Copyright (c) 2014 Waybury <hello@waybury.com>
|
||||
* @license MIT
|
||||
*/
|
||||
! function(e, t) {
|
||||
"use strict";
|
||||
var r = function() {
|
||||
function r(e) {
|
||||
r.instanceCounter++, this.init(e)
|
||||
}
|
||||
var n, i, s, l, a, o, c, u, f, p, d, v, g, m, h, b, y, S, A, C, x, k, N, w, j, E, I, F, T, G, V = "http://www.w3.org/2000/svg",
|
||||
O = "http://www.w3.org/1999/xlink",
|
||||
q = ["sprite"];
|
||||
return s = [], r.instanceCounter = 0, r.prototype.init = function(r) {
|
||||
r = r || {}, n = {}, o = {}, o.isLocal = "file:" === e.location.protocol, o.hasSvgSupport = t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"), i = {
|
||||
count: 0,
|
||||
elements: []
|
||||
}, l = {}, a = {}, a.evalScripts = r.evalScripts || "always", a.pngFallback = r.pngFallback || !1, a.svgFallbackDir = r.svgFallbackDir || !1, a.onlyInjectVisiblePart = r.onlyInjectVisiblePart || !0, a.keepStylesClass = void 0 === r.keepStylesClass ? "" : r.keepStylesClass, a.spriteClassName = void 0 === r.spriteClassName ? "sprite" : r.spriteClassName, a.spriteClassIdName = void 0 === r.spriteClassIdName ? "sprite--" : r.spriteClassIdName, a.removeStylesClass = void 0 === r.removeStylesClass ? "icon" : r.removeStylesClass, a.removeAllStyles = void 0 !== r.removeAllStyles && r.removeAllStyles, a.fallbackClassName = void 0 === r.fallbackClassName ? q : r.fallbackClassName, a.prefixStyleTags = void 0 === r.prefixStyleTags || r.prefixStyleTags, a.spritesheetURL = void 0 !== r.spritesheetURL && "" !== r.spritesheetURL && r.spritesheetURL, a.prefixFragIdClass = a.spriteClassIdName, a.forceFallbacks = void 0 !== r.forceFallbacks && r.forceFallbacks, a.forceFallbacks && (o.hasSvgSupport = !1), x(t.querySelector("html"), "no-svg", o.hasSvgSupport), o.hasSvgSupport && void 0 === r.removeStylesClass && C(a.removeStylesClass)
|
||||
}, r.prototype.inject = function(e, t, r) {
|
||||
if (void 0 !== e.length)
|
||||
if (0 === e.length) t && t(0);
|
||||
else {
|
||||
var n = 0,
|
||||
i = this;
|
||||
I.call(e, function(s) {
|
||||
i.injectElement(s, function(i) {
|
||||
r && "function" == typeof r && r(i), t && e.length === ++n && t(n)
|
||||
})
|
||||
})
|
||||
}
|
||||
else e ? this.injectElement(e, function(n) {
|
||||
r && "function" == typeof r && r(n), t && t(1), e = null
|
||||
}) : t && t(0)
|
||||
}, G = r.prototype.injectElement = function(e, t) {
|
||||
var r, n = e.getAttribute("data-src") || e.getAttribute("src");
|
||||
if (!n) {
|
||||
if (!a.spritesheetURL) return;
|
||||
if ("" === (r = h(e))) return;
|
||||
n = a.spritesheetURL + "#" + r
|
||||
}
|
||||
e.setAttribute("data-src", n);
|
||||
var s = n.split("#");
|
||||
1 === s.length && s.push("");
|
||||
var l;
|
||||
if (!/\.svg/i.test(n)) return void t("Attempted to inject a file with a non-svg extension: " + n);
|
||||
if (!o.hasSvgSupport) {
|
||||
var f = e.getAttribute("data-fallback") || e.getAttribute("data-png");
|
||||
return void(f ? (e.setAttribute("src", f), t(null)) : a.pngFallback ? (s.length > 1 && s[1] ? (l = s[1] + ".png", j(a.fallbackClassName) ? c(e, s[1], a.fallbackClassName) : w(a.fallbackClassName) ? a.fallbackClassName(e, s[1]) : "string" == typeof a.fallbackClassName ? E(e, a.fallbackClassName) : e.setAttribute("src", a.pngFallback + "/" + l)) : (l = n.split("/").pop().replace(".svg", ".png"), e.setAttribute("src", a.pngFallback + "/" + l)), t(null)) : t("This browser does not support SVG and no PNG fallback was defined."))
|
||||
}
|
||||
j(a.fallbackClassName) && u(e, s[1], a.fallbackClassName), -1 === i.elements.indexOf(e) && (i.elements.push(e), A(t, n, e))
|
||||
}, r.prototype.getEnv = function() {
|
||||
return o
|
||||
}, r.prototype.getConfig = function() {
|
||||
return a
|
||||
}, c = function(e, t, r) {
|
||||
var n = void 0 === r ? q : r.slice(0);
|
||||
I.call(n, function(e, r) {
|
||||
n[r] = e.replace("%s", t)
|
||||
}), E(e, n)
|
||||
}, u = function(e, t, r) {
|
||||
r = void 0 === r ? q.slice(0) : r.slice(0);
|
||||
var n, i, s = e.getAttribute("class");
|
||||
void 0 !== s && null !== s && (i = s.split(" ")) && (I.call(r, function(e) {
|
||||
e = e.replace("%s", t), (n = i.indexOf(e)) >= 0 && (i[n] = "")
|
||||
}), e.setAttribute("class", N(i.join(" "))))
|
||||
}, p = function(e, t, r, n) {
|
||||
var i = 0;
|
||||
return e.textContent = e.textContent.replace(/url\(('|")*#.+('|")*(?=\))/g, function(e) {
|
||||
return i++, e + "-" + t
|
||||
}), i
|
||||
}, f = function(e, t) {
|
||||
var r, n, i, s, l, a, o, c, u, f, p, d, v, g, m, h, b = [
|
||||
// {
|
||||
// def: "linearGradient",
|
||||
// attrs: ["fill", "stroke"]
|
||||
// },
|
||||
{
|
||||
def: "radialGradient",
|
||||
attrs: ["fill", "stroke"]
|
||||
}, {
|
||||
def: "clipPath",
|
||||
attrs: ["clip-path"]
|
||||
}, {
|
||||
def: "mask",
|
||||
attrs: ["mask"]
|
||||
}, {
|
||||
def: "filter",
|
||||
attrs: ["filter"]
|
||||
}, {
|
||||
def: "color-profile",
|
||||
attrs: ["color-profile"]
|
||||
}, {
|
||||
def: "cursor",
|
||||
attrs: ["cursor"]
|
||||
}, {
|
||||
def: "marker",
|
||||
attrs: ["marker", "marker-start", "marker-mid", "marker-end"]
|
||||
}];
|
||||
I.call(b, function(b) {
|
||||
for (n = e.querySelectorAll(b.def + "[id]"), s = 0, i = n.length; s < i; s++) {
|
||||
for (r = n[s].id + "-" + t, c = b.attrs, f = 0, u = c.length; f < u; f++)
|
||||
for (l = e.querySelectorAll("[" + c[f] + '="url(#' + n[s].id + ')"]'), o = 0, a = l.length; o < a; o++) l[o].setAttribute(c[f], "url(#" + r + ")");
|
||||
for (p = e.querySelectorAll("[*|href]"), g = [], v = 0, d = p.length; v < d; v++) p[v].getAttributeNS(O, "href").toString() === "#" + n[s].id && g.push(p[v]);
|
||||
for (h = 0, m = g.length; h < m; h++) g[h].setAttributeNS(O, "href", "#" + r);
|
||||
n[s].id = r
|
||||
}
|
||||
})
|
||||
}, d = function(e, t, r) {
|
||||
var n;
|
||||
void 0 === r && (r = ["id", "viewBox"]);
|
||||
for (var i = 0; i < e.attributes.length; i++) n = e.attributes.item(i), r.indexOf(n.name) < 0 && t.setAttribute(n.name, n.value)
|
||||
}, v = function(e) {
|
||||
var r = t.createElementNS(V, "svg");
|
||||
return I.call(e.childNodes, function(e) {
|
||||
r.appendChild(e.cloneNode(!0))
|
||||
}), d(e, r), r
|
||||
}, g = function(e, t, r) {
|
||||
var n, i, s, l, a, o, c = r.getAttribute("data-src").split("#"),
|
||||
u = e.textContent,
|
||||
f = "",
|
||||
p = function(e, t, r) {
|
||||
r[t] = "." + s + " " + e
|
||||
};
|
||||
if (c.length > 1) i = c[1], s = i + "-" + t, n = new RegExp("\\." + i + " ", "g"), e.textContent = u.replace(n, "." + s + " ");
|
||||
else {
|
||||
for (l = c[0].split("/"), s = l[l.length - 1].replace(".svg", "") + "-" + t, n = new RegExp("([\\s\\S]*?){([\\s\\S]*?)}", "g"); null !== (a = n.exec(u));) {
|
||||
o = a[1].trim().split(", "), o.forEach(p);
|
||||
f += o.join(", ") + "{" + a[2] + "}\n"
|
||||
}
|
||||
e.textContent = f
|
||||
}
|
||||
r.setAttribute("class", r.getAttribute("class") + " " + s)
|
||||
}, m = function(e) {
|
||||
var t = e.getAttribute("class");
|
||||
return t ? t.trim().split(" ") : []
|
||||
}, h = function(e) {
|
||||
var t = m(e),
|
||||
r = "";
|
||||
return I.call(t, function(e) {
|
||||
e.indexOf(a.spriteClassIdName) >= 0 && (r = e.replace(a.spriteClassIdName, ""))
|
||||
}), r
|
||||
}, b = function(e, t, r) {
|
||||
var n, i, s, l, a, o, c = null,
|
||||
u = !1,
|
||||
f = !1,
|
||||
p = null;
|
||||
if (void 0 === r) n = c = t.cloneNode(!0), c.getAttribute("width") || t.getAttribute("width") || (f = !0);
|
||||
else if (!(n = t.getElementById(r))) return;
|
||||
if (s = n.getAttribute("viewBox"), i = s.split(" "), !c) {
|
||||
if (n instanceof SVGSymbolElement) c = v(n), f = u = !0;
|
||||
else if (n instanceof SVGViewElement) {
|
||||
if (p = null, e.onlyInjectVisiblePart) {
|
||||
var d = '*[width="' + i[2] + '"][height="' + i[3] + '"]';
|
||||
l = {}, 0 === Math.abs(parseInt(i[0])) ? d += ":not([x])" : (l.x = i[0], d += '[x="' + i[0] + '"]'), 0 === Math.abs(parseInt(i[1])) ? d += ":not([y])" : (l.y = i[1], d += '[y="' + i[1] + '"]'), o = t.querySelectorAll(d), o.length, p = o[0]
|
||||
}
|
||||
if (p && p instanceof SVGSVGElement) {
|
||||
c = p.cloneNode(!0);
|
||||
for (var g in l) "width" !== g && "height" !== g && c.removeAttribute(g)
|
||||
} else if (p && p instanceof SVGUseElement) {
|
||||
var h = t.getElementById(p.getAttributeNS(O, "href").substr(1));
|
||||
c = v(h), s = h.getAttribute("viewBox"), i = s.split(" "), f = u = !0
|
||||
} else f = u = !0, c = t.cloneNode(!0)
|
||||
}
|
||||
a = m(c);
|
||||
var b = e.prefixFragIdClass + r;
|
||||
a.indexOf(b) < 0 && (a.push(b), c.setAttribute("class", a.join(" ")))
|
||||
}
|
||||
return u && c.setAttribute("viewBox", i.join(" ")), f && (c.setAttribute("width", i[2] + "px"), c.setAttribute("height", i[3] + "px")), c.setAttribute("xmlns", V), c.setAttribute("xmlns:xlink", O), c
|
||||
}, y = function(e, t, r, n) {
|
||||
s[e] = s[e] || [], s[e].push({
|
||||
callback: r,
|
||||
fragmentId: t,
|
||||
element: n,
|
||||
name: name
|
||||
})
|
||||
}, S = function(e) {
|
||||
for (var t, r = 0, n = s[e].length; r < n; r++) ! function(r) {
|
||||
setTimeout(function() {
|
||||
t = s[e][r], k(e, t.fragmentId, t.callback, t.element, t.name)
|
||||
}, 0)
|
||||
}(r)
|
||||
}, A = function(t, r, i) {
|
||||
var s, l, a, c, u;
|
||||
if (s = r.split("#"), l = s[0], a = 2 === s.length ? s[1] : void 0, void 0 !== a && (u = l.split("/"), c = u[u.length - 1].replace(".svg", "")), void 0 !== n[l]) n[l] instanceof SVGSVGElement ? k(l, a, t, i, c) : y(l, a, t, i, c);
|
||||
else {
|
||||
if (!e.XMLHttpRequest) return t("Browser does not support XMLHttpRequest"), !1;
|
||||
n[l] = {}, y(l, a, t, i, c);
|
||||
var f = new XMLHttpRequest;
|
||||
f.onreadystatechange = function() {
|
||||
if (4 === f.readyState) {
|
||||
if (404 === f.status || null === f.responseXML) return t("Unable to load SVG file: " + l), !1;
|
||||
if (!(200 === f.status || o.isLocal && 0 === f.status)) return t("There was a problem injecting the SVG: " + f.status + " " + f.statusText), !1;
|
||||
if (f.responseXML instanceof Document) n[l] = f.responseXML.documentElement;
|
||||
else if (DOMParser && DOMParser instanceof Function) {
|
||||
var e;
|
||||
try {
|
||||
var i = new DOMParser;
|
||||
e = i.parseFromString(f.responseText, "text/xml")
|
||||
} catch (t) {
|
||||
e = void 0
|
||||
}
|
||||
if (!e || e.getElementsByTagName("parsererror").length) return t("Unable to parse SVG file: " + r), !1;
|
||||
n[l] = e.documentElement
|
||||
}
|
||||
S(l)
|
||||
}
|
||||
}, f.open("GET", l), f.overrideMimeType && f.overrideMimeType("text/xml"), f.send()
|
||||
}
|
||||
}, C = function(e) {
|
||||
var r = "svg." + e + " {fill: currentColor;}",
|
||||
n = t.head || t.getElementsByTagName("head")[0],
|
||||
i = t.createElement("style");
|
||||
i.type = "text/css", i.styleSheet ? i.styleSheet.cssText = r : i.appendChild(t.createTextNode(r)), n.appendChild(i)
|
||||
}, x = function(e, t, r) {
|
||||
r ? e.className.replace(t, "") : e.className += " " + t
|
||||
}, k = function(t, r, s, o, c) {
|
||||
var u, v, h, y, S, A, C, x;
|
||||
if (void 0 === (u = b(a, n[t], r)) || "string" == typeof u) return S = o.getAttribute("data-fallback-svg"), S = !(!S && !a.svgFallbackDir) && a.svgFallbackDir + "/" + r + ".svg", S ? (o.setAttribute("data-src", S), i.elements.splice(i.elements.indexOf(o), 1), G(o, s)) : s(u), !1;
|
||||
u.setAttribute("role", "img"), I.call(u.children || [], function(e) {
|
||||
e instanceof SVGDefsElement || e instanceof SVGTitleElement || e instanceof SVGDescElement || e.setAttribute("role", "presentation")
|
||||
}), y = o.getAttribute("aria-hidden") || u.getAttribute("aria-hidden"), y ? (u.setAttribute("aria-hidden", "true"), C = u.querySelector("title"), x = u.querySelector("desc"), C && u.removeChild(C), x && u.removeChild(x)) : (h = F("desc", u, o, r, !1), v = F("title", u, o, r, !1), (h.length > 0 || v.length > 0) && (A = v + " " + h, u.setAttribute("aria-labelledby", A.trim()))), d(o, u, ["class"]);
|
||||
var k = [].concat(u.getAttribute("class") || [], "injected-svg", o.getAttribute("class") || []).join(" ");
|
||||
u.setAttribute("class", N(k)), f(u, i.count, c), u.removeAttribute("xmlns:a");
|
||||
for (var w, j, E = u.querySelectorAll("script"), T = [], V = 0, O = E.length; V < O; V++)(j = E[V].getAttribute("type")) && "application/ecmascript" !== j && "application/javascript" !== j || (w = E[V].innerText || E[V].textContent, T.push(w), u.removeChild(E[V]));
|
||||
if (T.length > 0 && ("always" === a.evalScripts || "once" === a.evalScripts && !l[t])) {
|
||||
for (var q = 0, L = T.length; q < L; q++) new Function(T[q])(e);
|
||||
l[t] = !0
|
||||
}
|
||||
var M = u.querySelectorAll("style");
|
||||
I.call(M, function(e) {
|
||||
var t = m(u),
|
||||
r = !0;
|
||||
(t.indexOf(a.removeStylesClass) >= 0 || a.removeAllStyles) && t.indexOf(a.keepStylesClass) < 0 ? e.parentNode.removeChild(e) : (p(e, i.count, u, c) > 0 && (r = !1), a.prefixStyleTags && (g(e, i.count, u, c), r = !1), r && (e.textContent += ""))
|
||||
}), o.parentNode?.replaceChild(u, o), delete i.elements[i.elements.indexOf(o)], i.count++, s(u)
|
||||
}, N = function(e) {
|
||||
e = e.split(" ");
|
||||
for (var t = {}, r = e.length, n = []; r--;) t.hasOwnProperty(e[r]) || (t[e[r]] = 1, n.unshift(e[r]));
|
||||
return n.join(" ")
|
||||
}, w = function(e) {
|
||||
return !!(e && e.constructor && e.call && e.apply)
|
||||
}, j = function(e) {
|
||||
return "[object Array]" === Object.prototype.toString.call(e)
|
||||
}, E = function(e, t) {
|
||||
var r = e.getAttribute("class");
|
||||
r = r || "", j(t) && (t = t.join(" ")), t = r + " " + t, e.setAttribute("class", N(t))
|
||||
}, I = Array.prototype.forEach || function(e, t) {
|
||||
if (void 0 === this || null === this || "function" != typeof e) throw new TypeError;
|
||||
var r, n = this.length >>> 0;
|
||||
for (r = 0; r < n; ++r) r in this && e.call(t, this[r], r, this)
|
||||
}, F = function(e, t, r, n, s) {
|
||||
var l, a = n ? n + "-" : "";
|
||||
return a += e + "-" + i.count, l = r.querySelector(e), l ? T(e, t, l.textContent, a, t.firstChild) : (l = t.querySelector(e), l ? l.setAttribute("id", a) : s ? T(e, t, n, a, t.firstChild) : a = ""), a
|
||||
}, T = function(e, r, n, i, s) {
|
||||
var l, a = r.querySelector(e);
|
||||
return l = t.createElementNS(V, e), l.appendChild(t.createTextNode(n)), l.setAttribute("id", i), r.insertBefore(l, s), a && a.parentNode.removeChild(a), l
|
||||
}, r
|
||||
}();
|
||||
"object" == typeof angular ? angular.module("svginjector", []).provider("svgInjectorOptions", function() {
|
||||
var e = {};
|
||||
return {
|
||||
set: function(t) {
|
||||
e = t
|
||||
},
|
||||
$get: function() {
|
||||
return e
|
||||
}
|
||||
}
|
||||
}).factory("svgInjectorFactory", ["svgInjectorOptions", function(e) {
|
||||
return new r(e)
|
||||
}]).directive("svg", ["svgInjectorFactory", function(e) {
|
||||
var t = e.getConfig();
|
||||
return {
|
||||
restrict: "E",
|
||||
link: function(r, n, i) {
|
||||
i.class && i.class.indexOf(t.spriteClassIdName) >= 0 ? i.$observe("class", function() {
|
||||
e.inject(n[0])
|
||||
}) : (i.dataSrc || i.src) && e.inject(n[0])
|
||||
}
|
||||
}
|
||||
}]) : "object" == typeof module && "object" == typeof module.exports ? module.exports = r : "function" == typeof define && define.amd ? define(function() {
|
||||
return r
|
||||
}) : "object" == typeof e && (e.SVGInjector = r)
|
||||
}(window, document);
|
||||
//# sourceMappingURL=./dist/svg-injector.map.js
|
||||
@@ -0,0 +1,704 @@
|
||||
#
|
||||
# File : sak-css-definitions.yaml
|
||||
# Project : Home Assistant
|
||||
# Repository: https://github.com/AmoebeLabs/Home-Assistant-Config
|
||||
#
|
||||
# Author: Mars @ AmoebeLabs.com
|
||||
#
|
||||
# License: CC BY-SA, https://creativecommons.org/licenses/by/4.0/
|
||||
#
|
||||
# -----
|
||||
# Description:
|
||||
# Swiss Army Knife CSS class definitions used to style tools
|
||||
#
|
||||
###############################################################################
|
||||
#sak_css_definitions:
|
||||
- descr: sak-overwrite
|
||||
content: >
|
||||
.sak-state__value {
|
||||
--descr: extra-css;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
#
|
||||
# Toolsets
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
- descr: Toolset
|
||||
content: >
|
||||
.toolset__group-outer {
|
||||
overflow: visible;
|
||||
/*filter: drop-shadow(0px 1px 1px rgba(0,0,0,0.8));*/
|
||||
/*filter: url(#shadow);*/
|
||||
}
|
||||
.toolset__group {
|
||||
overflow: visible;
|
||||
/*filter: drop-shadow(0px 1px 1px rgba(0,0,0,0.8));*/
|
||||
/*filter: url(#shadow);*/
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Tools in slphabetical order
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
- descr: ArcSlider tool
|
||||
content: >
|
||||
.sak-circslider__group-inner {
|
||||
pointer-events: none;
|
||||
}
|
||||
#as-thumb-group {
|
||||
overflow: visible;
|
||||
pointer-events: all;
|
||||
}
|
||||
#as-label {
|
||||
overflow: visible;
|
||||
}
|
||||
.sak-circslider {
|
||||
overflow: visible;
|
||||
fill: none;
|
||||
stroke: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
.sak-circslider__capture {
|
||||
overflow: visible;
|
||||
pointer-events: all;
|
||||
fill: none;
|
||||
stroke-width: 0;
|
||||
touch-action: manipulation;
|
||||
fill: grey;
|
||||
fill-opacity: 0.1;
|
||||
stroke-width: 0em;
|
||||
stroke: red;
|
||||
}
|
||||
.sak-circslider__active {
|
||||
stroke: var(--theme-sys-color-primary);
|
||||
stroke-width: 4em;
|
||||
pointer-events: all;
|
||||
}
|
||||
.sak-circslider__track {
|
||||
fill: none;
|
||||
stroke-width: 2em;
|
||||
stroke: var(--theme-sys-elevation-surface-neutral10);
|
||||
overflow: visible;
|
||||
pointer-events: all;
|
||||
}
|
||||
.sak-circslider__thumb {
|
||||
overflow: visible;
|
||||
fill: var(--theme-sys-color-primary);
|
||||
fill-opacity: 1;
|
||||
transform-origin: center;
|
||||
transform-box: fill-box;
|
||||
}
|
||||
.sak-circslider__value {
|
||||
overflow: visible;
|
||||
fill: var(--primary-text-color);
|
||||
font-size: 8em;
|
||||
font-weight: 400;
|
||||
dominant-baseline: central;
|
||||
pointer-events: none;
|
||||
}
|
||||
.sak-circslider__uom {
|
||||
overflow: visible;
|
||||
fill: var(--primary-text-color);
|
||||
text-anchor: middle;
|
||||
dominant-baseline: central;
|
||||
opacity: 0.7;
|
||||
letter-spacing: 0.05em;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
- descr: Area tool
|
||||
content: >
|
||||
.sak-area {
|
||||
}
|
||||
|
||||
.sak-area__area {
|
||||
font-size: 3em;
|
||||
fill: var(--primary-text-color);
|
||||
opacity: 0.8;
|
||||
text-anchor: middle;
|
||||
dominant-baseline: central;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
- descr: Badge tool
|
||||
content: >
|
||||
.sak-badge {
|
||||
}
|
||||
.sak-badge__left {
|
||||
stroke-width: 0;
|
||||
fill: grey;
|
||||
}
|
||||
.sak-badge__right {
|
||||
stroke-width: 0;
|
||||
fill: var(--theme-gradient-color-03, darkgrey);
|
||||
}
|
||||
|
||||
- descr: Barchart tool
|
||||
content: >
|
||||
.sak-barchart {
|
||||
}
|
||||
.sak-barchart__line {
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
- descr: Circle tool
|
||||
content: >
|
||||
.sak-circle {
|
||||
}
|
||||
.sak-circle__circle {
|
||||
fill: var(--primary-background-color);
|
||||
}
|
||||
|
||||
- descr: Ellipse tool
|
||||
content: >
|
||||
.sak-ellipse {
|
||||
}
|
||||
.sak-ellipse__ellipse {
|
||||
fill: var(--primary-background-color);
|
||||
}
|
||||
|
||||
- descr: Horseshoe tool
|
||||
content: >
|
||||
.sak-horseshoe {
|
||||
}
|
||||
.sak-horseshoe__todo {
|
||||
}
|
||||
|
||||
- descr: Icon tool
|
||||
content: >
|
||||
.sak-icon {
|
||||
}
|
||||
.sak-icon__icon {
|
||||
--mdc-icon-size: 100%;
|
||||
align-self: center;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
fill: var(--primary-text-color);
|
||||
color: var(--primary-text-color);
|
||||
}
|
||||
|
||||
- descr: Line tool
|
||||
content: >
|
||||
.sak-line {
|
||||
overflow: visible;
|
||||
}
|
||||
.sak-line__line {
|
||||
stroke-linecap: round;
|
||||
stroke: var(--primary-text-color);
|
||||
opacity: 1.0;
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
- descr: Entity Name tool
|
||||
content: >
|
||||
.sak-name {
|
||||
overflow: visible;
|
||||
}
|
||||
.sak-name__name {
|
||||
font-size: 3em;
|
||||
fill: var(--primary-text-color);
|
||||
opacity: 1.0;
|
||||
text-anchor: middle;
|
||||
dominant-baseline: central;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
- descr: Polygon tool
|
||||
content: >
|
||||
.sak-polygon {
|
||||
overflow: visible;
|
||||
}
|
||||
.sak-polygon__regpoly {
|
||||
stroke: var(--primary-text-color);
|
||||
fill: var(--primary-background-color);
|
||||
fill-rule: nonzero;
|
||||
}
|
||||
|
||||
- descr: Rectangle tool
|
||||
content: >
|
||||
.sak-rectangle {
|
||||
overflow: visible;
|
||||
}
|
||||
.sak-rectangle__rectangle {
|
||||
stroke-linecap: round;
|
||||
stroke: var(--primary-text-color);
|
||||
opacity: 1.0;
|
||||
stroke-width: 2em;
|
||||
fill: var(--primary-background-color);
|
||||
}
|
||||
|
||||
- descr: RectEx tool
|
||||
content: >
|
||||
.sak-rectex {
|
||||
}
|
||||
.sak-rectex__rectex {
|
||||
stroke-linecap: round;
|
||||
stroke: var(--primary-text-color);
|
||||
opacity: 1.0;
|
||||
stroke-width: 0;
|
||||
fill: var(--primary-background-color);
|
||||
}
|
||||
|
||||
- descr: Segmented arc tool
|
||||
content: >
|
||||
.sak-segarc {
|
||||
}
|
||||
.sak-segarc__background {
|
||||
stroke-linecap: round;
|
||||
fill: var(--primary-background-color);
|
||||
stroke-width: 0;
|
||||
fill-rule: evenodd;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
.sak-segarc__foreground {
|
||||
stroke-linecap: round;
|
||||
fill: var(--primary-color);
|
||||
stroke: none;
|
||||
stroke-width: 0.5;
|
||||
fill-rule: evenodd;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
- descr: Slider tool
|
||||
content: >
|
||||
#rs-thumb-group {
|
||||
overflow: visible;
|
||||
}
|
||||
#rs-label {
|
||||
overflow: visible;
|
||||
}
|
||||
.sak-slider {
|
||||
pointer-events: none;
|
||||
overflow: visible;
|
||||
}
|
||||
.sak-slider__capture {
|
||||
overflow: visible;
|
||||
pointer-events: all;
|
||||
fill: none;
|
||||
stroke-width: 0;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
.sak-slider__track {
|
||||
overflow: visible;
|
||||
fill-opacity: 0.38;
|
||||
stroke-width: 0;
|
||||
stroke: var(--primary-text-color);
|
||||
fill: var(--switch-unchecked-track-color);
|
||||
transition: all .5s ease;
|
||||
pointer-events: none;
|
||||
}
|
||||
.sak-slider__thumb {
|
||||
overflow: visible;
|
||||
--thumb-stroke: var(--secondary-text-color);
|
||||
stroke: var(--thumb-stroke);
|
||||
fill: var(--primary-background-color);
|
||||
pointer-events: none;
|
||||
}
|
||||
.sak-slider__value {
|
||||
overflow: visible;
|
||||
fill: var(--primary-text-color);
|
||||
font-size: 8em;
|
||||
font-weight: 400;
|
||||
transition: all .5s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
pointer-events: none;
|
||||
dominant-baseline: central;
|
||||
}
|
||||
.sak-slider__uom {
|
||||
overflow: visible;
|
||||
fill: var(--primary-text-color);
|
||||
text-anchor: middle;
|
||||
dominant-baseline: central;
|
||||
opacity: 0.7;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
- descr: Entity state/units tool
|
||||
content: >
|
||||
.sak-state {
|
||||
}
|
||||
.sak-state__value {
|
||||
--descr: original;
|
||||
font-size: 3em;
|
||||
fill: var(--primary-text-color);
|
||||
opacity: 1.0;
|
||||
text-anchor: middle;
|
||||
dominant-baseline: central;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
.sak-state__uom {
|
||||
fill: var(--primary-text-color);
|
||||
text-anchor: middle;
|
||||
dominant-baseline: central;
|
||||
opacity: 0.7;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
- descr: Switch tool
|
||||
content: >
|
||||
.sak-switch {
|
||||
}
|
||||
.sak-switch__track {
|
||||
fill-opacity: 0.38;
|
||||
stroke-width: 0;
|
||||
stroke: var(--primary-text-color);
|
||||
fill: var(--primary-background-color);
|
||||
transition: all .5s ease;
|
||||
pointer-events: none;
|
||||
}
|
||||
.sak-switch__thumb {
|
||||
--thumb-stroke: var(--secondary-text-color);
|
||||
stroke: var(--thumb-stroke);
|
||||
fill: var(--primary-background-color);
|
||||
transition: all .5s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
- descr: Text tool
|
||||
content: >
|
||||
.sak-text {
|
||||
}
|
||||
.sak-text__text {
|
||||
font-size: 3em;
|
||||
fill: var(--primary-text-color);
|
||||
opacity: 1.0;
|
||||
text-anchor: middle;
|
||||
dominant-baseline: central;
|
||||
}
|
||||
|
||||
- descr: Usersvg tool
|
||||
content: >
|
||||
.sak-usersvg__group {
|
||||
}
|
||||
.sak-usersvg__image {
|
||||
}
|
||||
|
||||
#
|
||||
# CSS Animations using keyframes
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
- descr: CSS Animations
|
||||
content: >
|
||||
@keyframes blinkingText {
|
||||
0%{ opacity: 0%; }
|
||||
49%{ opacity: 0%; }
|
||||
60%{ opacity: 100%; }
|
||||
99%{ opacity: 100%; }
|
||||
100%{ opacity: 0%; }
|
||||
}
|
||||
|
||||
@keyframes zoomOut {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0;
|
||||
transform: scale3d(0.3, 0.3, 0.3);
|
||||
}
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bounce {
|
||||
from,
|
||||
20%,
|
||||
53%,
|
||||
80%,
|
||||
to {
|
||||
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
40%,
|
||||
43% {
|
||||
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
70% {
|
||||
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
90% {
|
||||
transform: translate3d(0, -4px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes flash {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@keyframes flash {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes flashold {
|
||||
from,
|
||||
50%,
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
25%,
|
||||
75% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes headShake {
|
||||
0% {
|
||||
transform: translateX(0);
|
||||
}
|
||||
6.5% {
|
||||
transform: translateX(-6px) rotateY(-9deg);
|
||||
}
|
||||
18.5% {
|
||||
transform: translateX(5px) rotateY(7deg);
|
||||
}
|
||||
31.5% {
|
||||
transform: translateX(-3px) rotateY(-5deg);
|
||||
}
|
||||
43.5% {
|
||||
transform: translateX(2px) rotateY(3deg);
|
||||
}
|
||||
50% {
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes heartBeat {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
14% {
|
||||
transform: scale(1.3);
|
||||
}
|
||||
28% {
|
||||
transform: scale(1);
|
||||
}
|
||||
42% {
|
||||
transform: scale(1.3);
|
||||
}
|
||||
70% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes jello {
|
||||
from,
|
||||
11.1%,
|
||||
to {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
22.2% {
|
||||
transform: skewX(-12.5deg) skewY(-12.5deg);
|
||||
}
|
||||
33.3% {
|
||||
transform: skewX(6.25deg) skewY(6.25deg);
|
||||
}
|
||||
44.4% {
|
||||
transform: skewX(-3.125deg) skewY(-3.125deg);
|
||||
}
|
||||
55.5% {
|
||||
transform: skewX(1.5625deg) skewY(1.5625deg);
|
||||
}
|
||||
66.6% {
|
||||
transform: skewX(-0.78125deg) skewY(-0.78125deg);
|
||||
}
|
||||
77.7% {
|
||||
transform: skewX(0.390625deg) skewY(0.390625deg);
|
||||
}
|
||||
88.8% {
|
||||
transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
from {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
50% {
|
||||
transform: scale3d(1.05, 1.05, 1.05);
|
||||
}
|
||||
to {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rubberBand {
|
||||
from {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
30% {
|
||||
transform: scale3d(1.25, 0.75, 1);
|
||||
}
|
||||
40% {
|
||||
transform: scale3d(0.75, 1.25, 1);
|
||||
}
|
||||
50% {
|
||||
transform: scale3d(1.15, 0.85, 1);
|
||||
}
|
||||
65% {
|
||||
transform: scale3d(0.95, 1.05, 1);
|
||||
}
|
||||
75% {
|
||||
transform: scale3d(1.05, 0.95, 1);
|
||||
}
|
||||
to {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes shake {
|
||||
from,
|
||||
to {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
10%,
|
||||
30%,
|
||||
50%,
|
||||
70%,
|
||||
90% {
|
||||
transform: translate3d(-10px, 0, 0);
|
||||
}
|
||||
20%,
|
||||
40%,
|
||||
60%,
|
||||
80% {
|
||||
transform: translate3d(10px, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes swing {
|
||||
20% {
|
||||
transform: rotate3d(0, 0, 1, 15deg);
|
||||
}
|
||||
40% {
|
||||
transform: rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
60% {
|
||||
transform: rotate3d(0, 0, 1, 5deg);
|
||||
}
|
||||
80% {
|
||||
transform: rotate3d(0, 0, 1, -5deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate3d(0, 0, 1, 0deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tada {
|
||||
from {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
10%,
|
||||
20% {
|
||||
transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
|
||||
}
|
||||
30%,
|
||||
50%,
|
||||
70%,
|
||||
90% {
|
||||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
||||
}
|
||||
40%,
|
||||
60%,
|
||||
80% {
|
||||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
||||
}
|
||||
to {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes wobble {
|
||||
from {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
15% {
|
||||
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
||||
}
|
||||
30% {
|
||||
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
||||
}
|
||||
45% {
|
||||
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
||||
}
|
||||
60% {
|
||||
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
||||
}
|
||||
75% {
|
||||
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
||||
}
|
||||
to {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@keyframes spinold {
|
||||
from {
|
||||
-webkit-transform: -webkit-rotate(0deg);
|
||||
transform:rotate(0deg);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: -webkit-rotate(360deg);
|
||||
transform:rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spinn {
|
||||
100% {
|
||||
-webkit-transform: -webkit-rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes spinn {
|
||||
100% {
|
||||
-webkit-transform: -webkit-rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin-stop {
|
||||
100% {
|
||||
-webkit-transform: -webkit-rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,427 @@
|
||||
#
|
||||
# File : sak-svg-definitions.yaml
|
||||
# Project : Home Assistant
|
||||
# Repository: https://github.com/AmoebeLabs/Home-Assistant-Config
|
||||
#
|
||||
# Author: Mars @ AmoebeLabs.com
|
||||
#
|
||||
# License: CC BY-SA, https://creativecommons.org/licenses/by/4.0/
|
||||
#
|
||||
# -----
|
||||
# Description:
|
||||
# Swiss Army Knife SVG <def> definitions
|
||||
#
|
||||
###############################################################################
|
||||
#sak_svg_definitions:
|
||||
# Light color temperature gradient
|
||||
# HA uses: linear-gradient( right, rgb(255, 160, 0) 0%, white 50%, rgb(166, 209, 255) 100% );
|
||||
# Then converted to SVG using https://www.kmhcreative.com/downloads/CSS2SVG.htm gives:
|
||||
|
||||
# ===== Inset shadow filters =====
|
||||
|
||||
# SVG inner shadow on rgba fill: https://codepen.io/salsita/pen/qBbmYMw
|
||||
# Damien Jurado Poster Rebound: https://codepen.io/dylanbaumann/pen/wevMwB
|
||||
- descr: sak-inset-1 filter
|
||||
content: |
|
||||
<filter id="sak-inset-1" x="-50%" y="-50%" width="400%" height="400%">
|
||||
<feComponentTransfer in=SourceAlpha>
|
||||
<feFuncA type="table" tableValues="1 0" />
|
||||
</feComponentTransfer>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feOffset dx="0" dy="1" result="offsetblur"/>
|
||||
<feFlood flood-color="rgba(0, 0, 0, 0.3)" result="color"/>
|
||||
<feComposite in2="offsetblur" operator="in"/>
|
||||
<feComposite in2="SourceAlpha" operator="in" />
|
||||
<feMerge>
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
<feMergeNode />
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
# SVG Inset Shadow: https://codepen.io/mattrosno/pen/zxpNwd
|
||||
- descr: sak-inset-2 filter
|
||||
content: |
|
||||
<filter id="sak-inset-2">
|
||||
<!-- Shadow Offset -->
|
||||
<feOffset
|
||||
dx='1'
|
||||
dy='1'
|
||||
/>
|
||||
<!-- Shadow Blur -->
|
||||
<feGaussianBlur
|
||||
stdDeviation='0.5'
|
||||
result='offset-blur'
|
||||
/>
|
||||
<!-- Invert the drop shadow
|
||||
to create an inner shadow -->
|
||||
<feComposite
|
||||
operator='out'
|
||||
in='SourceGraphic'
|
||||
in2='offset-blur'
|
||||
result='inverse'
|
||||
/>
|
||||
<!-- Color & Opacity -->
|
||||
<feFlood
|
||||
flood-color='black'
|
||||
flood-opacity='0.4'
|
||||
result='color'
|
||||
/>
|
||||
<!-- Clip color inside shadow -->
|
||||
<feComposite
|
||||
operator='in'
|
||||
in='color'
|
||||
in2='inverse'
|
||||
result='shadow'
|
||||
/>
|
||||
<!-- Put shadow over original object -->
|
||||
<feComposite
|
||||
operator='over'
|
||||
in='shadow'
|
||||
in2='SourceGraphic'
|
||||
/>
|
||||
</filter>
|
||||
|
||||
# ===== Neumorphic filters =====
|
||||
- descr: sak-neumorphic filters
|
||||
content: |
|
||||
<!-- Neumorphic filter -->
|
||||
<!-- -->
|
||||
<!-- Light Shadow, #FFFFFF at 50%, x:-6, Y:-6, Blur:16 -->
|
||||
<!-- Dark Shadow: #d1cdc7 at 50%, x:6, y:6, Blur:16 -->
|
||||
<!-- Main Background: #efeeee -->
|
||||
<!-- Shape Background: #efeeee -->
|
||||
<!-- Optional Border: #fff at 20% Alpha -->
|
||||
<!-- Dark Shadow was: 0d2750 -->
|
||||
|
||||
<!-- 2021.11.17 -->
|
||||
<!-- Performance with inset shadow and width/height=150% seems to be optimal setting -->
|
||||
<!-- Smaller settings give clipping, and larger settings performance hits -->
|
||||
<!-- Absolute settings (userSpaceOnUse) seem to be difficult to find right settings -->
|
||||
<filter id="is-1" x="-25%" y="-25%" width="150%" height="150%">
|
||||
<feComponentTransfer in=SourceAlpha>
|
||||
<feFuncA type="table" tableValues="1 0" />
|
||||
</feComponentTransfer>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feOffset dx="2" dy="2" result="offsetblur"/>
|
||||
<feFlood flood-color="#0d2750" flood-opacity="0.5" result="color"/>
|
||||
<feComposite in2="offsetblur" operator="in"/>
|
||||
<feComposite in2="SourceAlpha" operator="in" />
|
||||
<feMerge>
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
<feMergeNode />
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="is-1b" filterUnits="userSpaceOnUse" x="-200" y="-200" width="1000" height="1000">
|
||||
<feComponentTransfer in=SourceAlpha>
|
||||
<feFuncA type="table" tableValues="1 0" />
|
||||
</feComponentTransfer>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feOffset dx="2" dy="2" result="offsetblur"/>
|
||||
<feFlood flood-color="#0d2750" flood-opacity="0.5" result="color"/>
|
||||
<feComposite in2="offsetblur" operator="in"/>
|
||||
<feComposite in2="SourceAlpha" operator="in" />
|
||||
<feMerge>
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
<feMergeNode />
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<!-- Using feComposite in="offsetblur" operator="in" instead of in2 gives a -->
|
||||
<!-- much larger shadow area, much deeper! WHY?? -->
|
||||
|
||||
<filter id="nm-2" x="-50%" y="-50%" width="200%" height="200%">
|
||||
<feComponentTransfer in=SourceAlpha out=transfer>
|
||||
<feFuncA type="table" tableValues="1 0" />
|
||||
</feComponentTransfer>
|
||||
|
||||
<feGaussianBlur input="transfer" stdDeviation="5" result="blurdark"/>
|
||||
<feOffset input="blurdark" dx="12" dy="12" result="offsetblurdark"/>
|
||||
<feFlood input="offsetblurdark" flood-color="#d1cdc7" flood-opacity="0.4" result="colordark"/>
|
||||
|
||||
<feGaussianBlur input="transfer" stdDeviation="5" result="blurlight"/>
|
||||
<feOffset input="blurlight" dx="-12" dy="-12" result="offsetblurlight"/>
|
||||
<feFlood input="offsetblurlight" flood-color="white" flood-opacity="0.9" result="colorlight"/>
|
||||
|
||||
<feComposite in="offsetblurdark" operator="in"/>
|
||||
<feComposite in="SourceAlpha" operator="in" />
|
||||
|
||||
<feMerge>
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
<feMergeNode />
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="filter-yoksel" x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" primitiveUnits="userSpaceOnUse" color-interpolation-filters="linearRGB">
|
||||
<feFlood flood-color="#eeebe7" flood-opacity="0.7" x="0%" y="0%" width="100%" height="100%" result="flood2"/>
|
||||
<feComposite in="flood2" in2="SourceAlpha" operator="out" x="0%" y="0%" width="100%" height="100%" result="composite5"/>
|
||||
<feOffset dx="-9" dy="-7" x="0%" y="0%" width="100%" height="100%" in="composite5" result="offset1"/>
|
||||
<feGaussianBlur stdDeviation="3 10" x="0%" y="0%" width="100%" height="100%" in="offset1" edgeMode="none" result="blur2"/>
|
||||
<feComposite in="merge3" in2="SourceAlpha" operator="in" x="0%" y="0%" width="100%" height="100%" result="composite7"/>
|
||||
<feFlood flood-color="#0f0f0f" flood-opacity="1" x="0%" y="0%" width="100%" height="100%" result="flood4"/>
|
||||
<feComposite in="flood4" in2="SourceAlpha" operator="out" x="0%" y="0%" width="100%" height="100%" result="composite8"/>
|
||||
<feOffset dx="6" dy="6" x="0%" y="0%" width="100%" height="100%" in="merge3" result="offset2"/>
|
||||
<feGaussianBlur stdDeviation="3 10" x="0%" y="0%" width="100%" height="100%" in="offset2" edgeMode="none" result="blur3"/>
|
||||
<feComposite in="blur3" in2="SourceAlpha" operator="in" x="0%" y="0%" width="100%" height="100%" result="composite9"/>
|
||||
<feMerge x="0%" y="0%" width="100%" height="100%" result="merge3">
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
<feMergeNode in="composite7"/>
|
||||
<feMergeNode in="composite9"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<!-- 2021.11.15 -->
|
||||
<!-- For some reason, changing the filter width/height from 160% to 600% improves performance on iOS 15 -->
|
||||
|
||||
<!-- second try... -->
|
||||
<filter id="filter" x="-50%" y="-50%" width="300%" height="300%">
|
||||
<feFlood flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="flood2"/>
|
||||
<feComposite in="flood2" in2="SourceAlpha" operator="out" result="composite5"/>
|
||||
<feOffset dx="-6" dy="-6" in="composite5" result="offset1"/>
|
||||
<feGaussianBlur stdDeviation="5" in="offset1" edgeMode="none" result="blur2"/>
|
||||
<feComposite in="blur2" in2="SourceAlpha" operator="in" result="composite7"/>
|
||||
|
||||
<!-- flood-color="#777777" -->
|
||||
<feFlood flood-color="var(--cs-theme-shadow-darker)" flood-opacity="1" result="flood4"/>
|
||||
<feComposite in="flood4" in2="SourceAlpha" operator="out" result="composite8"/>
|
||||
<feOffset dx="6" dy="6" in="composite8" result="offset2"/>
|
||||
<feGaussianBlur stdDeviation="15" in="offset2" edgeMode="none" result="blur3"/>
|
||||
<feComposite in="blur3" in2="SourceAlpha" operator="in" result="composite9"/>
|
||||
|
||||
<feMerge result="merge3">
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
<feMergeNode in="composite7"/>
|
||||
<feMergeNode in="composite9"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="filterb" filterUnits="userSpaceOnUse" x="-200" y="-200" width="1000" height="1000">
|
||||
<feFlood flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="flood2"/>
|
||||
<feComposite in="flood2" in2="SourceAlpha" operator="out" result="composite5"/>
|
||||
<feOffset dx="-6" dy="-6" in="composite5" result="offset1"/>
|
||||
<feGaussianBlur stdDeviation="5" in="offset1" edgeMode="none" result="blur2"/>
|
||||
<feComposite in="blur2" in2="SourceAlpha" operator="in" result="composite7"/>
|
||||
|
||||
<!-- flood-color="#777777" -->
|
||||
<feFlood flood-color="var(--cs-theme-shadow-darker)" flood-opacity="1" result="flood4"/>
|
||||
<feComposite in="flood4" in2="SourceAlpha" operator="out" result="composite8"/>
|
||||
<feOffset dx="6" dy="6" in="composite8" result="offset2"/>
|
||||
<feGaussianBlur stdDeviation="15" in="offset2" edgeMode="none" result="blur3"/>
|
||||
<feComposite in="blur3" in2="SourceAlpha" operator="in" result="composite9"/>
|
||||
|
||||
<feMerge result="merge3">
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
<feMergeNode in="composite7"/>
|
||||
<feMergeNode in="composite9"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="bold" x="-50%" y="-50%" width="240%" height="240%">
|
||||
<feFlood flood-color="#FFFFFF" flood-opacity="0.8" result="flood2"/>
|
||||
<feComposite in="flood2" in2="SourceAlpha" operator="out" result="composite5"/>
|
||||
<feOffset dx="12" dy="12" in="composite5" result="offset1"/>
|
||||
<feGaussianBlur stdDeviation="5" in="offset1" edgeMode="none" result="blur2"/>
|
||||
<feComposite in="blur2" in2="SourceAlpha" operator="in" result="composite7"/>
|
||||
|
||||
<feFlood flood-color="#777777" flood-opacity="0.6" result="flood4"/>
|
||||
<feComposite in="flood4" in2="SourceAlpha" operator="out" result="composite8"/>
|
||||
<feOffset dx="-12" dy="-12" in="composite8" result="offset2"/>
|
||||
<feGaussianBlur stdDeviation="15" in="offset2" edgeMode="none" result="blur3"/>
|
||||
<feComposite in="blur3" in2="SourceAlpha" operator="in" result="composite9"/>
|
||||
|
||||
<feMerge result="merge3">
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
<feMergeNode in="composite7"/>
|
||||
<feMergeNode in="composite9"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="filterss" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feFlood flood-color="#eeebe7" flood-opacity="0.9" result="flood2"/>
|
||||
<feComposite in="flood2" in2="SourceAlpha" operator="out" result="composite5"/>
|
||||
<feOffset dx="-15" dy="-15" in="composite5" result="offset1"/>
|
||||
<feGaussianBlur stdDeviation="5" in="offset1" edgeMode="none" result="blur2"/>
|
||||
<feComposite in="blur2" in2="SourceAlpha" operator="in" result="composite7"/>
|
||||
|
||||
<feFlood flood-color="#0f0f0f" flood-opacity="1" result="flood4"/>
|
||||
<feComposite in="flood4" in2="SourceAlpha" operator="out" result="composite8"/>
|
||||
<feOffset dx="6" dy="6" in="composite8" result="offset2"/>
|
||||
<feGaussianBlur stdDeviation="5" in="offset2" edgeMode="none" result="blur3"/>
|
||||
<feComposite in="blur3" in2="SourceAlpha" operator="in" result="composite9"/>
|
||||
|
||||
<feMerge result="merge3">
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
<feMergeNode in="composite7"/>
|
||||
<feMergeNode in="composite9"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<!-- flood-color="#d1cdc7" -->
|
||||
<!-- flood-color="#FFFFFF" -->
|
||||
<filter id="nm-11" x="-50%" y="-50%" width="300%" height="300%">
|
||||
<feDropShadow stdDeviation="5" in="SourceGraphic"
|
||||
dx="6" dy="6" flood-color="var(--cs-theme-shadow-darker)" flood-opacity="0.5" result="dropShadow"
|
||||
</feDropShadow>
|
||||
<feDropShadow stdDeviation="4.5" in="SourceGraphic"
|
||||
dx="-6" dy="-6" flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="dropShadow1"/>
|
||||
<feMerge result="merge">
|
||||
<feMergeNode in="dropShadow1"/>
|
||||
<feMergeNode in="dropShadow"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<!-- 2021.11.15 -->
|
||||
<!-- For some reason, changing the filter width/height from 300% to 600% improves performance on iOS 15 -->
|
||||
<!-- Changing this value to 3000% improves performance also, but pixelates some of the views, so unusable! -->
|
||||
<!-- A value of 1000% seems to be a good value too! Switching views is now instant again for some reason! -->
|
||||
<!-- However, some views (sake5) becomes very, very, very slow. Views sake4 and sake6 are very fast. -->
|
||||
<!-- 2021.11.17 -->
|
||||
<!-- Let's settle for now with x/y=-10% and width/height=120%. This is actually the default for svg filters... -->
|
||||
|
||||
<filter id="sak-nm-default" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow stdDeviation="5" in="SourceGraphic" dx="6" dy="6" flood-color="var(--cs-theme-shadow-darker)" flood-opacity="0.5" result="dropShadow"/>
|
||||
<feDropShadow stdDeviation="4.5" in="SourceGraphic" dx="-6" dy="-6" flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="dropShadow1"/>
|
||||
<feMerge result="merge">
|
||||
<feMergeNode in="dropShadow1"/>
|
||||
<feMergeNode in="dropShadow"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="nm-1" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow stdDeviation="5" in="SourceGraphic" dx="6" dy="6" flood-color="var(--cs-theme-shadow-darker)" flood-opacity="0.5" result="dropShadow"/>
|
||||
<feDropShadow stdDeviation="4.5" in="SourceGraphic" dx="-6" dy="-6" flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="dropShadow1"/>
|
||||
<feMerge result="merge">
|
||||
<feMergeNode in="dropShadow1"/>
|
||||
<feMergeNode in="dropShadow"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="sak-nm-default-b" filterUnits="userSpaceOnUse" x="-100" y="-100" width="5000" height="800">
|
||||
<feDropShadow stdDeviation="5" in="SourceGraphic" dx="6" dy="6" flood-color="var(--cs-theme-shadow-darker)" flood-opacity="0.5" result="dropShadow"/>
|
||||
<feDropShadow stdDeviation="4.5" in="SourceGraphic" dx="-6" dy="-6" flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="dropShadow1"/>
|
||||
<feMerge result="merge">
|
||||
<feMergeNode in="dropShadow1"/>
|
||||
<feMergeNode in="dropShadow"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="nm-1b" filterUnits="userSpaceOnUse" x="-200" y="-200" width="2000" height="2000">
|
||||
<feDropShadow stdDeviation="5" in="SourceGraphic" dx="6" dy="6" flood-color="var(--cs-theme-shadow-darker)" flood-opacity="0.5" result="dropShadow"/>
|
||||
<feDropShadow stdDeviation="4.5" in="SourceGraphic" dx="-6" dy="-6" flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="dropShadow1"/>
|
||||
<feMerge result="merge">
|
||||
<feMergeNode in="dropShadow1"/>
|
||||
<feMergeNode in="dropShadow"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="nm-1-reverse" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow stdDeviation="4.5" in="SourceGraphic" dx="-6" dy="-6" flood-color="var(--cs-theme-shadow-darker)" flood-opacity="0.5" result="dropShadow"/>
|
||||
<feDropShadow stdDeviation="5" in="SourceGraphic" dx="6" dy="6" flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="dropShadow1"/>
|
||||
<feMerge result="merge">
|
||||
<feMergeNode in="dropShadow1"/>
|
||||
<feMergeNode in="dropShadow"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
<filter id="nm-1b-reverse" filterUnits="userSpaceOnUse" primitiveUnits="userSpaceOnUse" x="0" y="0" width="1000" height="1000">
|
||||
<feDropShadow stdDeviation="4.5" in="SourceGraphic" dx="-6" dy="-6" flood-color="var(--cs-theme-shadow-darker)" flood-opacity="0.5" result="dropShadow"/>
|
||||
<feDropShadow stdDeviation="5" in="SourceGraphic" dx="6" dy="6" flood-color="var(--cs-theme-shadow-lighter)" flood-opacity="1" result="dropShadow1"/>
|
||||
<feMerge result="merge">
|
||||
<feMergeNode in="dropShadow1"/>
|
||||
<feMergeNode in="dropShadow"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
|
||||
# ===== Drop shadow filters =====
|
||||
|
||||
- descr: shadow from https://css-tricks.com/adding-shadows-to-svg-icons-with-css-and-svg-filters/
|
||||
content: |
|
||||
<filter id='shadow' color-interpolation-filters="sRGB">
|
||||
<feDropShadow dx="2" dy="2" stdDeviation="3" flood-color="var(--cs-theme-shadow-darker)" flood-opacity="0.5"/>
|
||||
</filter>
|
||||
|
||||
- descr: sak-drop-shadow filters
|
||||
content: |
|
||||
<filter id="sak-drop-1" y="-50%" x="-50%" width="200%" height="400%">
|
||||
<feDropShadow dx="0" dy="1.5" flood-color="var(--cs-theme-shadow-darker)" stdDeviation=".3"/>
|
||||
</filter>
|
||||
|
||||
<filter id="sak-drop-1a" y="-50%" x="-50%" width="200%" height="400%">
|
||||
<feDropShadow dx="1" dy="2" flood-color="var(--cs-theme-shadow-darker)" stdDeviation=".5"/>
|
||||
</filter>
|
||||
|
||||
<filter id="sak-drop-1b" y="-50%" x="-50%" width="200%" height="400%">
|
||||
<feDropShadow dx="2" dy="4" flood-color="var(--cs-theme-shadow-darker)" stdDeviation="6"/>
|
||||
</filter>
|
||||
|
||||
<filter id="sak-drop-2" width="10" height="10">
|
||||
<feDropShadow dx="2" dy="3" flood-color="var(--cs-theme-shadow-darker)" stdDeviation="0.5"/>
|
||||
</filter>
|
||||
|
||||
<filter id="sak-drop-3" x="0" y="0" width="200%" height="200%">
|
||||
<feOffset result="offOut" in="SourceAlpha" dx="20" dy="20" />
|
||||
<feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" />
|
||||
<feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
|
||||
</filter>
|
||||
|
||||
<filter id="sak-drop-4" x="0" y="0" width="200%" height="200%">
|
||||
<feGaussianBlur stdDeviation="1" />
|
||||
</filter>
|
||||
|
||||
# ===== Markers (testing segmented arc) =====
|
||||
|
||||
- descr: sak-markers
|
||||
content: |
|
||||
<marker viewBox="0 0 200 200" id="markerCircle" markerWidth="8" markerHeight="8" refX="5" refY="5">
|
||||
<circle cx="5" cy="5" r="3" style="stroke: none; fill:currentColor;"/>
|
||||
</marker>
|
||||
|
||||
<marker viewBox="0 0 200 200" id="markerArrow" markerWidth="13" markerHeight="13" refX="2" refY="6"
|
||||
orient="auto">
|
||||
<path d="M2,2 L2,11 L10,6 L2,2" style="fill: currentColor;" />
|
||||
</marker>
|
||||
|
||||
# ===== Clip path test =====
|
||||
|
||||
- descr: sak-clip-path tests
|
||||
content: |
|
||||
<rect id="cliprect" width="100%" height="100%" fill="none" stroke="none" rx="3" />
|
||||
<clipPath id="clip">
|
||||
<use xlink:href="#cliprect"/>
|
||||
</clipPath>
|
||||
|
||||
# ===== Gradients =====
|
||||
|
||||
- descr: sak-gradients
|
||||
content: |
|
||||
<linearGradient id="sak-light-brightness-gradient" x1="1" x2="0">
|
||||
<stop stop-color="#eeeeee"/>
|
||||
<stop offset="1" stop-color="#555555"/>
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="sak-light-brightness-gradient--orange" x1="1" x2="0">
|
||||
<stop stop-color="white"/>
|
||||
<stop offset="1" stop-color="darkorange"/>
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="sak-light-brightness-gradient--reverse" x1="1" x2="0">
|
||||
<stop stop-color="#555555"/>
|
||||
<stop offset="1" stop-color="#eeeeee"/>
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="sak-light-color-temperature-gradient" x1="1" x2="0">
|
||||
<stop stop-color="#ffa000"/>
|
||||
<stop offset=".5" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#a6d1ff"/>
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="sak-boiler-setpoint-blue-orange-gradient" x1="1" x2="0">
|
||||
<stop stop-color="#ff8c00"/>
|
||||
<stop offset="1" stop-color="#0094ff"/>
|
||||
</linearGradient>
|
||||
|
||||
<radialGradient id="sak-mask-radial-gradient">
|
||||
<stop offset="0" stop-color="white" stop-opacity="1"/>
|
||||
<stop offset="0.8" stop-color="white" stop-opacity="0.8"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
@@ -0,0 +1,6 @@
|
||||
#definitions: !include_dir_merge_named definitions
|
||||
definitions:
|
||||
sak_css_definitions:
|
||||
!include sak-css-definitions.yml
|
||||
sak_svg_definitions:
|
||||
!include sak-svg-definitions.yml
|
||||
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 45 KiB |