Feat: homepage update from rocket

This commit is contained in:
Jonathan Kelley committed 2021-02-09 12:33:54 -05:00
1 parent f671ae5c8b
commit a61503f6cc
27 files changed
+2344 -5

No files matched your search

+2
View File
@@ -16,3 +16,5 @@ Dodrio
fc
Jemalloc
Cloudfare
webapps
downcasting
+5 -4
View File
@@ -11,12 +11,12 @@ Dioxus is a portable, performant, and ergonomic framework for building cross-pla
```rust
static Example: FC<()> = |ctx| {
let (val1, set_val1) = use_state(&ctx, || "___?");
let (value, set_value) = use_state(&ctx, || "...?");
ctx.view(html! {
<div>
<button onclick={move |_| set_val1("world!")}> "world" </button>
<button onclick={move |_| set_val1("dioxus 🎉")}> "dioxus" </button>
<button onclick={move |_| set_value("world!")}> "world" </button>
<button onclick={move |_| set_value("dioxus 🎉")}> "dioxus" </button>
<div>
<p> "Hello, {val1}" </p>
</div>
@@ -24,7 +24,8 @@ static Example: FC<()> = |ctx| {
})
};
```
The primary Dioxus crate is agnostic to platform and is meant to be configured with external renderers for getting content to the screen. We have built renderers for Dioxus to serve WebApps, Desktop Apps, static pages, liveview, Android, and iOS.
Dioxus can be used to serve webapps, desktop apps, static pages, LiveView apps, Android apps, iOS Apps, and more. At its core,
Dioxus is entirely renderer agnostic and has great documentation for creating new renderers for any platform.
Dioxus is supported by Dioxus Labs, a company providing end-to-end services for building, testing, deploying, and managing Dioxus apps on all supported platforms, designed especially for your next startup.
View File
Whitespace-only changes.
View File
Whitespace-only changes.
View File
Whitespace-only changes.
View File
Whitespace-only changes.
+89 -1
View File
@@ -1 +1,89 @@
hello world!
<!doctype html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width"><title>Dioxus - Simple, Fast, Type-Safe Web Framework for Rust</title><meta name=description content="Dioxus is a web framework for the Rust
programming language that makes it simple to write fast web applications
without sacrificing flexibility or type safety."><meta name=author content="Sergio Benitez"><link href="https://fonts.googleapis.com/css?family=Proza+Libre:400,500" rel=stylesheet><link rel=stylesheet href=/v0.4/css/style.css media=all><link rel=icon type=image/png href=/v0.4/images/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v0.4/images/favicon-16x16.png sizes=16x16><style media=screen>#logo{background-image:url(/v0.4/images/logo.svg)}@media(max-width:870px){#logo{background-image:url(/v0.4/images/logo-small.svg)}}input#search-input{background-image:url(/v0.4/images/search-icon.svg)}.cancel-search{background:url(/v0.4/images/cancel-icon.svg) no-repeat center}.admonition.note .title{background-image:url(/v0.4/images/pencil-icon.svg)}.admonition.tip .title{background-image:url(/v0.4/images/star-icon.svg)}.admonition.warning .title{background-image:url(/v0.4/images/warning-icon.svg)}</style></head><body><header><div id=clouds></div><div class=container><a id=logo href=/ ><span>Dioxus Homepage</span></a><nav class=version-select><span onclick=toggleOptions()>v0.4 <i></i></span><options><a href=/v0.3/ >v0.3</a> <a href=/master/ >master</a></options></nav><input type=checkbox id=toggle> <label for=toggle class=hamburger><span></span> <span></span> <span></span></label><nav class=main><a href=/v0.4/overview>overview</a> <a href=/v0.4/guide>guide</a> <a href=https://api.Dioxus.rs/v0.4/Dioxus>api</a> <a href=/v0.4/news>news</a> <a href=https://github.com/SergioBenitez/Dioxus/tree/v0.4>code</a></nav><div class="centered banner"><h1>Meet Dioxus.</h1><h2>Dioxus is a web framework for Rust that makes it simple to write <i>fast</i>, <b>secure</b> web applications without sacrificing flexibility, usability, or type safety.</h2><a href=/v0.4/guide class=button>Get Started</a> <a href=/v0.4/overview class="button inverted">Learn More</a></div><div class=grid><div class=col><hr></div><h4 class=col style=text-align:center;margin:0;padding:0>Latest Release: <a href=https://crates.io/crates/Dioxus/0.4.6>0.4.6 (Nov 09, 2020)</a></h4><div class=col><hr></div></div><br><div class="grid features"><div class="col centered"><img src=/v0.4/images/helmet.svg alt="Type Safe Icon (helmet)"><h3>Type Safe</h3><figcaption>From request to response Dioxus ensures that your types mean something.</figcaption><a class="button inverted small" href=/v0.4/overview/#how-Dioxus-works>Learn More</a></div><div class="col centered"><img src=/v0.4/images/robot-free.svg alt="Boilerplate Free Icon (robot-free)"><h3>Boilerplate Free</h3><figcaption>Spend your time writing code that really matters, and let Dioxus generate the rest.</figcaption><a class="button inverted small" href=/v0.4/overview/#anatomy-of-a-Dioxus-application>See Examples</a></div><div class="col centered"><img src=/v0.4/images/sun.svg alt="Easy To Use Icon (sun)" style=margin-top:2px><h3>Easy To Use</h3><figcaption>Simple, intuitive APIs make Dioxus approachable, no matter your background.</figcaption><a class="button inverted small" href=/v0.4/guide>Get Started</a></div><div class="col centered"><img src=/v0.4/images/telescope.svg alt="Extensible Icon (telescope)" style=margin-top:9px><h3>Extensible</h3><figcaption>Create your own first-class primitives that any Dioxus application can use.</figcaption><a class="button inverted small" href=/v0.4/overview/#anatomy-of-a-Dioxus-application>See How</a></div></div></div></header><a href=https://github.com/SergioBenitez/Dioxus/tree/v0.4 class=github-corner aria-label="View source on Github"><svg width=75 height=75 viewBox="0 0 250 250" style=fill:#fff;z-index:10;color:#151513;mix-blend-mode:screen;position:absolute;top:0;border:0;right:0 aria-hidden=true><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7
120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9
125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill=currentColor style="transform-origin:130px 106px" class=octo-arm></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6
C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0
C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1
C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4
C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9
C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5
C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9
L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill=currentColor class=octo-body></path></svg> </a><span></span><section class="grid mobile-reverse"><div class=container><div class="col left-main"><h3>Hello, Dioxus!</h3><hr><p>This is a <strong>complete Dioxus application</strong>. It does exactly what you would expect. If you were to visit <strong>http://localhost:8000/hello/John/58</strong>, you’d see:</p><p><span class=callout>Hello, 58 year old named John!</span></p><p>If someone visits a path with an <code>&lt;age></code> that isn’t a <code>u8</code>, Dioxus doesn’t blindly call <code>hello</code>. Instead, it tries other matching routes or returns a <strong>404</strong>.</p></div><div class="col right-main hl-dark"><table class="code hltable"><tr><td class=linenos><div class=linenodiv><pre> 1
2
3
4
5
6
7
8
9
10
11
12</pre></div></td><td class=code><div class="code hl"><pre><span></span><span class=cp></span><span class=w></span>
<span class=cp>#[macro_use]</span><span class=w> </span><span class=k>extern</span><span class=w> </span><span class=k>crate</span><span class=w> </span><span class=n>dioxus</span><span class=p>;</span><span class=w></span>
<span class=cp>#[get(</span><span class=s>"/hello/&lt;name>/&lt;age>"</span><span class=cp>)]</span><span class=w></span>
<span class=k>fn</span> <span class=nf>hello</span><span class=p>(</span><span class=n>name</span>: <span class=nb>String</span><span class=p>,</span><span class=w> </span><span class=n>age</span>: <span class=kt>u8</span><span class=p>)</span><span class=w> </span>-> <span class=nb>String</span> <span class=p>{</span><span class=w></span>
<span class=w> </span><span class=n>format</span><span class=o>!</span><span class=p>(</span><span class=s>"Hello, {} year old named {}!"</span><span class=p>,</span><span class=w> </span><span class=n>age</span><span class=p>,</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w></span>
<span class=p>}</span><span class=w></span>
<span class=k>fn</span> <span class=nf>main</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=n>Dioxus</span>::<span class=n>ignite</span><span class=p>().</span><span class=n>mount</span><span class=p>(</span><span class=s>"/"</span><span class=p>,</span><span class=w> </span><span class=n>routes</span><span class=o>!</span><span class=p>[</span><span class=n>hello</span><span class=p>]).</span><span class=n>launch</span><span class=p>();</span><span class=w></span>
<span class=p>}</span><span class=w></span>
</pre></div></td></tr></table></div></div></section><section class="grid mobile-reverse"><div class=container><div class="col left-main"><h3>Forms? Check!</h3><hr><p>Handling forms <strong>is simple and easy</strong>. Simply derive <code>FromForm</code> for your structure and let Dioxus know which parameter to use. Dioxus <strong>parses and validates</strong> the form request, creates the structure, and calls your function.</p><p>Bad form request? Dioxus doesn’t call your function! What if you want to know if the form was bad? Simple! Change the type of <code>task</code> to <code>Option</code> or <code>Result</code>!</p></div><div class="col right-main hl-light"><table class="code hltable"><tr><td class=linenos><div class=linenodiv><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14</pre></div></td><td class=code><div class="code hl"><pre><span></span><span class=cp>#[derive(FromForm)]</span><span class=w></span>
<span class=k>struct</span> <span class=nc>Task</span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=n>description</span>: <span class=nb>String</span><span class=p>,</span><span class=w></span>
<span class=w> </span><span class=n>completed</span>: <span class=kt>bool</span>
<span class=p>}</span><span class=w></span>
<span class=cp>#[post(</span><span class=s>"/"</span><span class=cp>, data = </span><span class=s>"&lt;task>"</span><span class=cp>)]</span><span class=w></span>
<span class=k>fn</span> <span class=nf>new</span><span class=p>(</span><span class=n>task</span>: <span class=nc>Form</span><span class=o>&lt;</span><span class=n>Task</span><span class=o>></span><span class=p>)</span><span class=w> </span>-> <span class=nc>Flash</span><span class=o>&lt;</span><span class=n>Redirect</span><span class=o>></span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=k>if</span><span class=w> </span><span class=n>task</span><span class=p>.</span><span class=n>description</span><span class=p>.</span><span class=n>is_empty</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=n>Flash</span>::<span class=n>error</span><span class=p>(</span><span class=n>Redirect</span>::<span class=n>to</span><span class=p>(</span><span class=s>"/"</span><span class=p>),</span><span class=w> </span><span class=s>"Cannot be empty."</span><span class=p>)</span><span class=w></span>
<span class=w> </span><span class=p>}</span><span class=w> </span><span class=k>else</span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=n>Flash</span>::<span class=n>success</span><span class=p>(</span><span class=n>Redirect</span>::<span class=n>to</span><span class=p>(</span><span class=s>"/"</span><span class=p>),</span><span class=w> </span><span class=s>"Task added."</span><span class=p>)</span><span class=w></span>
<span class=w> </span><span class=p>}</span><span class=w></span>
<span class=p>}</span><span class=w></span>
</pre></div></td></tr></table></div></div></section><section class="grid mobile-reverse"><div class=container><div class="col left-main"><h3>JSON, out of the box.</h3><hr><p>Dioxus has first-class support for JSON, right out of the box. Simply derive <code>Deserialize</code> or <code>Serialize</code> to receive or return JSON, respectively.</p><p>Like other important features, JSON works through Dioxus’s <code>FromData</code> trait, Dioxus’s approach to deriving types from body data. It works like this: specify a <code>data</code> route parameter of any type that implements <code>FromData</code>. A value of that type will then be created automatically from the incoming request body. Best of all, you can implement <code>FromData</code> for your types!</p></div><div class="col right-main hl-dark"><table class="code hltable"><tr><td class=linenos><div class=linenodiv><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14</pre></div></td><td class=code><div class="code hl"><pre><span></span><span class=cp>#[derive(Serialize, Deserialize)]</span><span class=w></span>
<span class=k>struct</span> <span class=nc>Message</span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=n>contents</span>: <span class=nb>String</span><span class=p>,</span><span class=w></span>
<span class=p>}</span><span class=w></span>
<span class=cp>#[put(</span><span class=s>"/&lt;id>"</span><span class=cp>, data = </span><span class=s>"&lt;msg>"</span><span class=cp>)]</span><span class=w></span>
<span class=k>fn</span> <span class=nf>update</span><span class=p>(</span><span class=n>db</span>: <span class=kp>&</span><span class=nc>Db</span><span class=p>,</span><span class=w> </span><span class=n>id</span>: <span class=nc>Id</span><span class=p>,</span><span class=w> </span><span class=n>msg</span>: <span class=nc>Json</span><span class=o>&lt;</span><span class=n>Message</span><span class=o>></span><span class=p>)</span><span class=w> </span>-> <span class=nc>JsonValue</span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=k>if</span><span class=w> </span><span class=n>db</span><span class=p>.</span><span class=n>contains_key</span><span class=p>(</span><span class=o>&</span><span class=n>id</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=n>db</span><span class=p>.</span><span class=n>insert</span><span class=p>(</span><span class=n>id</span><span class=p>,</span><span class=w> </span><span class=o>&</span><span class=n>msg</span><span class=p>.</span><span class=n>contents</span><span class=p>);</span><span class=w></span>
<span class=w> </span><span class=n>json</span><span class=o>!</span><span class=p>({</span><span class=w> </span><span class=s>"status"</span>: <span class=s>"ok"</span><span class=w> </span><span class=p>})</span><span class=w></span>
<span class=w> </span><span class=p>}</span><span class=w> </span><span class=k>else</span><span class=w> </span><span class=p>{</span><span class=w></span>
<span class=w> </span><span class=n>json</span><span class=o>!</span><span class=p>({</span><span class=w> </span><span class=s>"status"</span>: <span class=s>"error"</span><span class=w> </span><span class=p>})</span><span class=w></span>
<span class=w> </span><span class=p>}</span><span class=w></span>
<span class=p>}</span><span class=w></span>
</pre></div></td></tr></table></div></div></section><section class=centered><h1>Dioxus is ready to launch.</h1><a href=/v0.4/guide class=button>Get Started</a> <a href=/v0.4/overview class="button inverted">Learn More</a></section><section class=features><div class=container><div class=centered><h2>And so much more.</h2><h4>Essential features, built in.</h4></div><div class=grid><div class="col centered tight"><img src=/v0.4/images/templating-icon.svg alt="Templating Icon (templating-icon)"><h3 class=blue>Templating</h3><figcaption class=wide>Dioxus makes templating a breeze with built-in templating support.</figcaption><a class="button inverted small blue" href=/v0.4/guide/responses/#templates>Learn More</a></div><div class="col centered tight"><img src=/v0.4/images/cookies-icon.svg alt="Cookies Icon (cookies-icon)" style=margin-top:-6px><h3 class=purple>Cookies</h3><figcaption class=wide>View, add, or remove cookies, with or without encryption, without hassle.</figcaption><a class="button inverted small purple" href=/v0.4/guide/requests/#cookies>Learn More</a></div><div class="col centered tight"><img src=/v0.4/images/streams-icon.svg alt="Streams Icon (streams-icon)" style=margin-top:-29px><h3 class=red>Streams</h3><figcaption class=wide>Dioxus streams all incoming and outgoing data, so size isn't a concern.</figcaption><a class="button inverted small red" href=/v0.4/guide/requests/#streaming>Learn More</a></div></div><hr><div class=grid><div class="col centered tight"><img src=/v0.4/images/config-icon.svg alt="Config Environments Icon (config-icon)" style=margin-top:-3px><h3 class=yellow>Config Environments</h3><figcaption class=wide>Configure your application your way for development, staging, and production.</figcaption><a class="button inverted small yellow" href=/v0.4/guide/configuration/#environment>Learn More</a></div><div class="col centered tight"><img src=/v0.4/images/testing-icon.svg alt="Testing Library Icon (testing-icon)"><h3 class=orange>Testing Library</h3><figcaption class=wide>Unit test your applications with ease using the built-in testing library.</figcaption><a class="button inverted small orange" href=/v0.4/guide/testing#testing>Learn More</a></div><div class="col centered tight"><img src=/v0.4/images/ship-icon.svg alt="Typed URIs Icon (ship-icon)" style=margin-top:-20px><h3 class=green>Typed URIs</h3><figcaption class=wide>Dioxus typechecks route URIs for you so you never mistype a URI again.</figcaption><a class="button inverted small green" href=/v0.4/guide/responses/#typed-uris>Learn More</a></div></div></div></section><footer class=grid><div class=container><div class="col mobile-hide"><a href=https://sergio.bz>© 2016-2020 Sergio Benitez</a></div><div class="col centered"><img src=/v0.4/images/logo-small.svg alt="Small Dioxus Logo"></div><div class="col text-right mobile-hide"><a href=#>BACK TO TOP Δ</a></div></div></footer><script>function toggleOptions(){if(!(870<=screen.width)){var e=document.querySelector("nav.version-select options");e.style.display="none"===e.style.display?"block":"none"}}</script><script>function make_clouds(){for(var t=[{src:"/v0.4/images/cloud-0.png",className:"cloud back",style:{width:"254px",height:"159px",left:.4150208376753395,top:.8482790827243787,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-1.png",className:"cloud front",style:{width:"231px",height:"117px",left:.08151647217334701,top:.46384778619445943,transform:""}},{src:"/v0.4/images/cloud-2.png",className:"cloud front",style:{width:"66px",height:"37px",left:.748033557779848,top:.22765147586875178,transform:""}},{src:"/v0.4/images/cloud-0.png",className:"cloud front",style:{width:"114px",height:"71px",left:.9580076354609097,top:.5181917598421091,transform:""}},{src:"/v0.4/images/cloud-0.png",className:"cloud back",style:{width:"96px",height:"60px",left:.526598813402908,top:.828749451839631,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-0.png",className:"cloud front",style:{width:"72px",height:"45px",left:.43174032452284195,top:.03627323642266411,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-0.png",className:"cloud back",style:{width:"84px",height:"53px",left:.9296373513977365,top:.2143312531352375,transform:""}},{src:"/v0.4/images/cloud-1.png",className:"cloud front",style:{width:"157px",height:"79px",left:.8394192676334562,top:.06256812600484052,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-1.png",className:"cloud front",style:{width:"129px",height:"66px",left:.5289903611035771,top:.44941927870774023,transform:""}},{src:"/v0.4/images/cloud-2.png",className:"cloud front",style:{width:"191px",height:"107px",left:.5054580108916613,top:.21665631039514555,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-1.png",className:"cloud front",style:{width:"257px",height:"130px",left:.711964549651326,top:.9866528842991085,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-0.png",className:"cloud front",style:{width:"160px",height:"100px",left:.8804341424789892,top:.9525512115988461,transfoLine truncated
+29
View File
@@ -1 +1,30 @@
# Custom Renderer
Dioxus is an incredibly portable framework for UI development. The lessons, knowledge, hooks, and components you acquire over time can always be used for future projects. However, sometimes those projects cannot leverage a supported renderer or you need to implement your own better renderer.
Great news: the design of the renderer is entirely up to you! We provide suggestions and inspiration with the 1st party renderers, but provide no trait or explicit interface to follow.
Implementing the renderer is fairly straightforward. The renderer needs to:
1. Handle the stream of edit events generated by updates to the virtual DOM
2. Register listeners and pass events into the virtual DOM's event system
3. Progress the virtual DOM with an async executor (or disable the suspense API and use `progress_sync`)
Essentially, your renderer needs to understand the EditEvent type and provide a callback for injecting events. From there, you'll have everything needed to render the VirtualDOM to the screen.
Internally, Dioxus handles the tree relationship, diffing, memory management, and the event system, leaving as little as possible required for renderers to implement themselves.
For inspiration, check out the source code for the various renderers we support:
- WebSys
- Morph
## Compatibility
Forewarning: not every hook and service will work on your platform. Dioxus wraps things that need to be cross-platform in "synthetic" types. However, downcasting to a native type might fail if the types don't match.
There are three opportunities for platform incompatibilities to break your program:
1. When downcasting elements via `Ref.to_native<T>()`
2. When downcasting events via `Event.to_native<T>()`
3. Calling platform-specific APIs that don't exist
The best hooks will properly detect the target platform and still provide functionality, failing gracefully when a platform is not supported. We encourage - and provide - an indication to the user on what platforms a hook supports. For issues 1 and 2, these return a result as to not cause panics on unsupported platforms. When designing your hooks, we recommend propagating this error upwards into user facing code, making it obvious that this particular service is not supported.
+91
View File
@@ -0,0 +1,91 @@
<!DOCTYPE html>
<!-- saved from url=(0018)https://rocket.rs/ -->
<html><link type="text/css" rel="stylesheet" id="dark-mode-general-link"><link type="text/css" rel="stylesheet" id="dark-mode-custom-link"><style lang="en" type="text/css" id="dark-mode-custom-style"></style><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width"><title>Dioxus - Simple, Fast, Type-Safe Web Framework for Rust</title><meta name="description" content="Dioxus is a web framework for the Rust
programming language that makes it simple to write fast web applications
without sacrificing flexibility or type safety."><meta name="author" content="Sergio Benitez"><link href="./rocketsrchrome_files/css" rel="stylesheet"><link rel="stylesheet" href="./rocketsrchrome_files/style.css" media="all"><link rel="icon" type="image/png" href="https://rocket.rs/v0.4/images/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="https://rocket.rs/v0.4/images/favicon-16x16.png" sizes="16x16"><style media="screen">#logo{background-image:url(/v0.4/images/logo.svg)}@media(max-width:870px){#logo{background-image:url(/v0.4/images/logo-small.svg)}}input#search-input{background-image:url(/v0.4/images/search-icon.svg)}.cancel-search{background:url(/v0.4/images/cancel-icon.svg) no-repeat center}.admonition.note .title{background-image:url(/v0.4/images/pencil-icon.svg)}.admonition.tip .title{background-image:url(/v0.4/images/star-icon.svg)}.admonition.warning .title{background-image:url(/v0.4/images/warning-icon.svg)}</style></head><body><header><div id="clouds"><img src="./rocketsrchrome_files/cloud-0.png" class="cloud back" style="width: 254px; height: 159px; transform: scaleX(-1); left: 327.999px; top: 620.94px;"><img src="./rocketsrchrome_files/cloud-1.png" class="cloud front" style="width: 231px; height: 117px; left: -122.168px; top: 339.537px;"><img src="./rocketsrchrome_files/cloud-2.png" class="cloud front" style="width: 66px; height: 37px; left: 505.832px; top: 166.641px;"><img src="./rocketsrchrome_files/cloud-0.png" class="cloud front" style="width: 114px; height: 71px; left: 740.832px; top: 379.316px;"><img src="./rocketsrchrome_files/cloud-0.png" class="cloud back" style="width: 96px; height: 60px; transform: scaleX(-1); left: 452.999px; top: 606.645px;"><img src="./rocketsrchrome_files/cloud-0.png" class="cloud front" style="width: 72px; height: 45px; transform: scaleX(-1); left: 149.832px; top: 26.552px;"><img src="./rocketsrchrome_files/cloud-0.png" class="cloud back" style="width: 84px; height: 53px; left: 939.999px; top: 156.89px;"><img src="./rocketsrchrome_files/cloud-1.png" class="cloud front" style="width: 157px; height: 79px; transform: scaleX(-1); left: 607.832px; top: 45.7999px;"><img src="./rocketsrchrome_files/cloud-1.png" class="cloud front" style="width: 129px; height: 66px; left: 259.832px; top: 328.975px;"><img src="./rocketsrchrome_files/cloud-2.png" class="cloud front" style="width: 191px; height: 107px; transform: scaleX(-1); left: 232.832px; top: 158.592px;"><img src="./rocketsrchrome_files/cloud-1.png" class="cloud front" style="width: 257px; height: 130px; transform: scaleX(-1); left: 464.832px; top: 722.23px;"><img src="./rocketsrchrome_files/cloud-0.png" class="cloud front" style="width: 160px; height: 100px; transform: scaleX(-1); left: 653.832px; top: 697.267px;"><img src="./rocketsrchrome_files/cloud-0.png" class="cloud front" style="width: 189px; height: 118px; left: -103.168px; top: 158.261px;"><img src="./rocketsrchrome_files/cloud-2.png" class="cloud back" style="width: 167px; height: 93px; transform: scaleX(-1); left: 506.999px; top: 296.27px;"><img src="./rocketsrchrome_files/cloud-2.png" class="cloud back" style="width: 211px; height: 118px; transform: scaleX(-1); left: 580.999px; top: 625.646px;"><img src="./rocketsrchrome_files/cloud-2.png" class="cloud back" style="width: 228px; height: 128px; transform: scaleX(-1); left: 1034px; top: 248.156px;"></div><div class="container"><a id="logo" href="https://rocket.rs/"><span>Dioxus Homepage</span></a><nav class="version-select"><span onclick="toggleOptions()">v0.4 <i></i></span><options><a href="https://rocket.rs/v0.3/">v0.3</a> <a href="https://rocket.rs/master/">master</a></options></nav><input type="checkbox" id="toggle"> <label for="toggle" class="hamburger"><span></span> <span></span> <span></span></label><nav class="main"><a href="https://rocket.rs/v0.4/overview">overview</a> <a href="https://rocket.rs/v0.4/guide">guide</a> <a href="https://api.rocket.rs/v0.4/rocket">api</a> <a href="https://rocket.rs/v0.4/news">news</a> <a href="https://github.com/SergioBenitez/Dioxus/tree/v0.4">code</a></nav><div class="centered banner"><h1>Meet Dioxus.</h1><h2>Dioxus is a web framework for Rust that makes it simple to write <i>fast</i>, <b>secure</b> web applications without sacrificing flexibility, usability, or type safety.</h2><a href="https://rocket.rs/v0.4/guide" class="button">Get Started</a> <a href="https://rocket.rs/v0.4/overview" class="button inverted">Learn More</a></div><div class="grid"><div class="col"><hr></div><h4 class="col" style="text-align:center;margin:0;padding:0">Latest Release: <a href="https://crates.io/crates/rocket/0.4.6">0.4.6 (Nov 09, 2020)</a></h4><div class="col"><hr></div></div><br><div class="grid features"><div class="col centered"><img src="./rocketsrchrome_files/helmet.svg" alt="Type Safe Icon (helmet)"><h3>Type Safe</h3><figcaption>From request to response Dioxus ensures that your types mean something.</figcaption><a class="button inverted small" hrLine truncated
120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9
125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin:130px 106px" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6
C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0
C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1
C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4
C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9
C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5
C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9
L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg> </a><span></span><section class="grid mobile-reverse"><div class="container"><div class="col left-main"><h3>Hello, Dioxus!</h3><hr><p>This is a <strong>complete Dioxus application</strong>. It does exactly what you would expect. If you were to visit <strong>http://localhost:8000/hello/John/58</strong>, you’d see:</p><p><span class="callout">Hello, 58 year old named John!</span></p><p>If someone visits a path with an <code>&lt;age&gt;</code> that isn’t a <code>u8</code>, Dioxus doesn’t blindly call <code>hello</code>. Instead, it tries other matching routes or returns a <strong>404</strong>.</p></div><div class="col right-main hl-dark"><table class="code hltable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12</pre></div></td><td class="code"><div class="code hl"><pre><span></span><span class="cp">#![feature(proc_macro_hygiene, decl_macro)]</span><span class="w"></span>
<span class="cp">#[macro_use]</span><span class="w"> </span><span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">rocket</span><span class="p">;</span><span class="w"></span>
<span class="cp">#[get(</span><span class="s">"/hello/&lt;name&gt;/&lt;age&gt;"</span><span class="cp">)]</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">hello</span><span class="p">(</span><span class="n">name</span>: <span class="nb">String</span><span class="p">,</span><span class="w"> </span><span class="n">age</span>: <span class="kt">u8</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nb">String</span> <span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">format</span><span class="o">!</span><span class="p">(</span><span class="s">"Hello, {} year old named {}!"</span><span class="p">,</span><span class="w"> </span><span class="n">age</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">)</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">rocket</span>::<span class="n">ignite</span><span class="p">().</span><span class="n">mount</span><span class="p">(</span><span class="s">"/"</span><span class="p">,</span><span class="w"> </span><span class="n">routes</span><span class="o">!</span><span class="p">[</span><span class="n">hello</span><span class="p">]).</span><span class="n">launch</span><span class="p">();</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div></td></tr></tbody></table></div></div></section><section class="grid mobile-reverse"><div class="container"><div class="col left-main"><h3>Forms? Check!</h3><hr><p>Handling forms <strong>is simple and easy</strong>. Simply derive <code>FromForm</code> for your structure and let Dioxus know which parameter to use. Dioxus <strong>parses and validates</strong> the form request, creates the structure, and calls your function.</p><p>Bad form request? Dioxus doesn’t call your function! What if you want to know if the form was bad? Simple! Change the type of <code>task</code> to <code>Option</code> or <code>Result</code>!</p></div><div class="col right-main hl-light"><table class="code hltable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14</pre></div></td><td class="code"><div class="code hl"><pre><span></span><span class="cp">#[derive(FromForm)]</span><span class="w"></span>
<span class="k">struct</span> <span class="nc">Task</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">description</span>: <span class="nb">String</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="n">completed</span>: <span class="kt">bool</span>
<span class="p">}</span><span class="w"></span>
<span class="cp">#[post(</span><span class="s">"/"</span><span class="cp">, data = </span><span class="s">"&lt;task&gt;"</span><span class="cp">)]</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">new</span><span class="p">(</span><span class="n">task</span>: <span class="nc">Form</span><span class="o">&lt;</span><span class="n">Task</span><span class="o">&gt;</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Flash</span><span class="o">&lt;</span><span class="n">Redirect</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">task</span><span class="p">.</span><span class="n">description</span><span class="p">.</span><span class="n">is_empty</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">Flash</span>::<span class="n">error</span><span class="p">(</span><span class="n">Redirect</span>::<span class="n">to</span><span class="p">(</span><span class="s">"/"</span><span class="p">),</span><span class="w"> </span><span class="s">"Cannot be empty."</span><span class="p">)</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">Flash</span>::<span class="n">success</span><span class="p">(</span><span class="n">Redirect</span>::<span class="n">to</span><span class="p">(</span><span class="s">"/"</span><span class="p">),</span><span class="w"> </span><span class="s">"Task added."</span><span class="p">)</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div></td></tr></tbody></table></div></div></section><section class="grid mobile-reverse"><div class="container"><div class="col left-main"><h3>JSON, out of the box.</h3><hr><p>Dioxus has first-class support for JSON, right out of the box. Simply derive <code>Deserialize</code> or <code>Serialize</code> to receive or return JSON, respectively.</p><p>Like other important features, JSON works through Dioxus’s <code>FromData</code> trait, Dioxus’s approach to deriving types from body data. It works like this: specify a <code>data</code> route parameter of any type that implements <code>FromData</code>. A value of that type will then be created automatically from the incoming request body. Best of all, you can implement <code>FromData</code> for your types!</p></div><div class="col right-main hl-dark"><table class="code hltable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14</pre></div></td><td class="code"><div class="code hl"><pre><span></span><span class="cp">#[derive(Serialize, Deserialize)]</span><span class="w"></span>
<span class="k">struct</span> <span class="nc">Message</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">contents</span>: <span class="nb">String</span><span class="p">,</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="cp">#[put(</span><span class="s">"/&lt;id&gt;"</span><span class="cp">, data = </span><span class="s">"&lt;msg&gt;"</span><span class="cp">)]</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">update</span><span class="p">(</span><span class="n">db</span>: <span class="kp">&amp;</span><span class="nc">Db</span><span class="p">,</span><span class="w"> </span><span class="n">id</span>: <span class="nc">Id</span><span class="p">,</span><span class="w"> </span><span class="n">msg</span>: <span class="nc">Json</span><span class="o">&lt;</span><span class="n">Message</span><span class="o">&gt;</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">JsonValue</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">db</span><span class="p">.</span><span class="n">contains_key</span><span class="p">(</span><span class="o">&amp;</span><span class="n">id</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">db</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">msg</span><span class="p">.</span><span class="n">contents</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">json</span><span class="o">!</span><span class="p">({</span><span class="w"> </span><span class="s">"status"</span>: <span class="s">"ok"</span><span class="w"> </span><span class="p">})</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">json</span><span class="o">!</span><span class="p">({</span><span class="w"> </span><span class="s">"status"</span>: <span class="s">"error"</span><span class="w"> </span><span class="p">})</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div></td></tr></tbody></table></div></div></section><section class="centered"><h1>Dioxus is ready to launch.</h1><a href="https://rocket.rs/v0.4/guide" class="button">Get Started</a> <a href="https://rocket.rs/v0.4/overview" class="button inverted">Learn More</a></section><section class="features"><div class="container"><div class="centered"><h2>And so much more.</h2><h4>Essential features, built in.</h4></div><div class="grid"><div class="col centered tight"><img src="./rocketsrchrome_files/templating-icon.svg" alt="Templating Icon (templating-icon)"><h3 class="blue">Templating</h3><figcaption class="wide">Dioxus makes templating a breeze with built-in templating support.</figcaption><a class="button inverted small blue" href="https://rocket.rs/v0.4/guide/responses/#templates">Learn More</a></div><div class="col centered tight"><img src="./rocketsrchrome_files/cookies-icon.svg" alt="Cookies Icon (cookies-icon)" style="margin-top:-6px"><h3 class="purple">Cookies</h3><figcaption class="wide">View, add, or remove cookies, with or without encryption, without hassle.</figcaption><a class="button inverted small purple" href="https://rocket.rs/v0.4/guide/requests/#cookies">Learn More</a></div><div class="col centered tight"><img src="./rocketsrchrome_files/streams-icon.svg" alt="Streams Icon (streams-icon)" style="margin-top:-29px"><h3 class="red">Streams</h3><figcaption class="wide">Dioxus streams all incoming and outgoing data, so size isn't a concern.</figcaption><a class="button inverted small red" href="https://rocket.rs/v0.4/guide/requests/#streaming">Learn More</a></div></div><hr><div class="grid"><div class="col centered tight"><img src="./rocketsrchrome_files/config-icon.svg" alt="Config Environments Icon (config-icon)" style="margin-top:-3px"><h3 class="yellow">Config Environments</h3><figcaption class="wide">Configure your application your way for development, staging, and production.</figcaption><a class="button inverted small yellow" href="https://rocket.rs/v0.4/guide/configuration/#environment">Learn More</a></div><div class="col centered tight"><img src="./rocketsrchrome_files/testing-icon.svg" alt="Testing Library Icon (testing-icon)"><h3 class="orange">Testing Library</h3><figcaption class="wide">Unit test your applications with ease using the built-in testing library.</figcaption><a class="button inverted small orange" href="https://rocket.rs/v0.4/guide/testing#testing">Learn More</a></div><div class="col centered tight"><img src="./rocketsrchrome_files/ship-icon.svg" alt="Typed URIs Icon (ship-icon)" style="margin-top:-20px"><h3 class="green">Typed URIs</h3><figcaption class="wide">Dioxus typechecks route URIs for you so you never mistype a URI again.</figcaption><a class="button inverted small green" href="https://rocket.rs/v0.4/guide/responses/#typed-uris">Learn More</a></div></div></div></section><footer class="grid"><div class="container"><div class="col mobile-hide"><a href="https://sergio.bz/">© 2016-2020 Sergio Benitez</a></div><div class="col centered"><img src="./rocketsrchrome_files/logo-small.svg" alt="Small Dioxus Logo"></div><div class="col text-right mobile-hide"><a href="https://rocket.rs/#">BACK TO TOP Δ</a></div></div></footer><script>function toggleOptions(){if(!(870<=screen.width)){var e=document.querySelector("nav.version-select options");e.style.display="none"===e.style.display?"block":"none"}}</script><script>function make_clouds(){for(var t=[{src:"/v0.4/images/cloud-0.png",className:"cloud back",style:{width:"254px",height:"159px",left:.4150208376753395,top:.8482790827243787,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-1.png",className:"cloud front",style:{width:"231px",height:"117px",left:.08151647217334701,top:.46384778619445943,transform:""}},{src:"/v0.4/images/cloud-2.png",className:"cloud front",style:{width:"66px",height:"37px",left:.748033557779848,top:.22765147586875178,transform:""}},{src:"/v0.4/images/cloud-0.png",className:"cloud front",style:{width:"114px",height:"71px",left:.9580076354609097,top:.5181917598421091,transform:""}},{src:"/v0.4/images/cloud-0.png",className:"cloud back",style:{width:"96px",height:"60px",left:.526598813402908,top:.828749451839631,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-0.png",className:"cloud front",style:{width:"72px",height:"45px",left:.43174032452284195,top:.03627323642266411,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-0.png",className:"cloud back",style:{width:"84px",height:"53px",left:.9296373513977365,top:.2143312531352375,transform:""}},{src:"/v0.4/images/cloud-1.png",className:"cloud front",style:{width:"157px",height:"79px",left:.8394192676334562,top:.06256812600484052,transform:"scaleX(-1)"}},{src:"/v0.4/images/cloud-1.png",className:"cloud front",style:{width:"129px",height:"66px",left:.5289903611035771,top:.44941927870774023,transform:""}},{src:"/v0.4/images/cloud-2.png",className:"cloud front",style:{width:"191px",height:"107px",left:.5054580108916613,top:.21665631039514555,transform:"scLine truncated
Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 856 B

@@ -0,0 +1 @@
<svg width="57" height="57" xmlns="http://www.w3.org/2000/svg"><g fill="#FFF" fill-rule="evenodd"><path d="M28.44 49.58v-1a20.07 20.07 0 0 1-14.23-5.9 20.07 20.07 0 0 1 0-28.47 20.07 20.07 0 0 1 28.47 0 20.08 20.08 0 0 1 0 28.47 20.07 20.07 0 0 1-14.24 5.9v2a22.16 22.16 0 0 0 22.14-22.14c0-12.2-9.93-22.13-22.14-22.14A22.16 22.16 0 0 0 6.3 28.44a22.16 22.16 0 0 0 22.14 22.14v-1"/><path d="M28.44 55.89v-1c-7.29 0-13.9-2.97-18.69-7.76a26.36 26.36 0 0 1 0-37.38 26.36 26.36 0 0 1 37.38 0 26.36 26.36 0 0 1 0 37.38 26.35 26.35 0 0 1-18.69 7.76v2a28.47 28.47 0 0 0 28.44-28.45A28.47 28.47 0 0 0 28.44 0 28.47 28.47 0 0 0 0 28.44 28.47 28.47 0 0 0 28.44 56.9v-1"/><path d="M43.04 28.44h-1 .03-.03.03-.03l-.02.05a1.66 1.66 0 0 1-.27.37c-.21.25-.53.54-.85.88a4.5 4.5 0 0 0-.46.57 2.4 2.4 0 0 0-.35.8 2.25 2.25 0 0 0-.06.5c0 .34.07.64.14.91.11.42.26.79.37 1.1.1.32.16.58.15.68v.05l.08.03-.08-.04v.01l.08.03-.08-.04.03.02-.02-.02.02.02-.02-.02s-.09.08-.27.17c-.27.13-.7.27-1.18.44a5.07 5.07 0 0 0-.74.33 2.49 2.49 0 0 0-.73.6c-.31.4-.43.82-.51 1.2-.12.56-.14 1.1-.2 1.49a2.05 2.05 0 0 1-.11.43l-.04.07.03.05-.03-.05.03.05-.03-.05.04.06-.03-.06h-.01l.04.06-.03-.06s-.12.04-.32.04a7.04 7.04 0 0 1-.78-.07c-.3-.03-.64-.07-1-.07-.37 0-.78.03-1.2.24a2.6 2.6 0 0 0-.98.85c-.35.45-.6.92-.82 1.24a2.1 2.1 0 0 1-.29.34l-.07.06v.04-.04.04-.04l.01.06v-.06h-.01l.01.06v-.06a.89.89 0 0 1-.3-.1c-.27-.14-.65-.4-1.08-.66a5.08 5.08 0 0 0-.73-.36 2.55 2.55 0 0 0-.93-.2c-.47 0-.85.15-1.19.3-.49.25-.9.54-1.24.74l-.43.23a.58.58 0 0 1-.18.05v.06l.02-.06h-.02v.06l.02-.06-.02.05.02-.05-.02.05.02-.05c-.03-.02-.14-.1-.26-.26-.2-.25-.42-.64-.69-1.05a4.94 4.94 0 0 0-.48-.63 2.47 2.47 0 0 0-.73-.55c-.43-.2-.83-.24-1.2-.24-.36 0-.7.04-1 .07a7.28 7.28 0 0 1-.78.07 1.21 1.21 0 0 1-.28-.03l-.04-.01-.04.06.05-.06h-.01l-.04.06.05-.06-.03.03.03-.02-.03.02.03-.02s-.06-.1-.1-.3c-.08-.29-.1-.75-.18-1.25a5.18 5.18 0 0 0-.16-.8 2.5 2.5 0 0 0-.43-.84c-.32-.4-.7-.6-1.04-.77-.53-.23-1.04-.37-1.4-.52a2.06 2.06 0 0 1-.4-.2l-.07-.06-.04.02.04-.02-.04.02.04-.02-.07.04.08-.03-.08.03.08-.03h-.02.02-.02.02v-.05a1.6 1.6 0 0 1 .06-.38c.07-.27.2-.61.33-1 .13-.38.26-.8.26-1.31 0-.16-.01-.33-.05-.5-.12-.5-.37-.85-.61-1.15-.37-.43-.77-.78-1.03-1.07a2 2 0 0 1-.27-.36l-.04-.08v-.01h-.02.02-.02.02-.04.04-.04.04l.02-.05a1.65 1.65 0 0 1 .26-.37c.22-.24.54-.53.85-.87.16-.17.32-.36.47-.58a2.18 2.18 0 0 0 .4-1.29 3.51 3.51 0 0 0-.14-.92c-.1-.41-.26-.78-.36-1.1-.1-.32-.16-.58-.16-.68v-.05l-.07-.02.07.03-.07-.03.07.03-.03-.01.03.02-.03-.02.03.02s.08-.09.26-.17c.27-.14.71-.27 1.19-.45a5.06 5.06 0 0 0 .73-.33c.25-.14.51-.33.73-.6.32-.4.44-.82.52-1.2.11-.56.14-1.09.2-1.48.03-.2.07-.35.11-.43l.04-.08-.04-.04.04.04-.04-.04.04.04-.05-.06.04.07-.04-.07.04.07a.92.92 0 0 1 .32-.04c.2 0 .47.03.78.06.3.04.64.08 1 .08.37 0 .77-.04 1.2-.24.46-.23.74-.55.98-.85.34-.46.59-.93.82-1.25.11-.16.21-.28.28-.34l.07-.05h.01l-.01-.04v.04h.01l-.01-.04v.04-.07.07-.07.07a.89.89 0 0 1 .29.1c.27.13.65.4 1.09.65.22.13.45.26.72.37.27.1.58.19.93.19.47 0 .86-.15 1.2-.3.48-.24.9-.54 1.24-.74.17-.1.32-.18.43-.22a.58.58 0 0 1 .17-.05v-.07l-.01.06h.01v-.06l-.01.06.01-.04-.02.04.02-.04-.02.04h.01c.03.02.13.1.26.27.2.24.41.64.68 1.05.14.2.3.41.48.62.2.2.42.4.73.56.43.2.84.24 1.2.24.37 0 .7-.04 1-.08.31-.03.59-.06.79-.06l.27.02.04.02.04-.07-.04.06.04-.05-.04.05.03-.03-.04.03h.01l.03-.03-.04.03s.07.1.11.3c.07.28.1.75.17 1.25.03.25.08.51.16.79.09.27.21.57.43.85.32.39.7.6 1.05.76.52.24 1.03.37 1.4.53a2 2 0 0 1 .4.2l.06.05.05-.02-.05.02.05-.02-.05.02.08-.03-.08.02v.01l.08-.03-.08.02h.01-.01.01-.01v.05c0 .07-.02.2-.06.39l-.34 1c-.12.38-.25.8-.26 1.3 0 .17.02.34.06.51.12.5.37.84.6 1.14.38.44.78.78 1.04 1.08a2 2 0 0 1 .27.35l.03.08v.01h.03-.02.02-.02 2a2.07 2.07 0 0 0-.14-.74 3.24 3.24 0 0 0-.6-.94c-.32-.37-.66-.68-.9-.95a2.8 2.8 0 0 1-.29-.33.53.53 0 0 1-.07-.14v-.06a1.61 1.61 0 0 1 .06-.4c.07-.27.2-.61.33-.99s.26-.8.26-1.3c0-.29-.05-.6-.2-.92a2.04 2.04 0 0 0-.45-.6c-.3-.28-.62-.45-.93-.58-.46-.2-.9-.33-1.23-.46a2.83 2.83 0 0 1-.4-.18.52.52 0 0 1-.14-.1 1 1 0 0 1-.12-.35c-.07-.34-.1-.85-.18-1.4a3.94 3.94 0 0 0-.23-.87 2.15 2.15 0 0 0-.64-.88 2.08 2.08 0 0 0-.81-.39 3.16 3.16 0 0 0-.75-.08c-.37 0-.7.04-1 .07a7.43 7.43 0 0 1-.79.07.89.89 0 0 1-.33-.04s-.11-.08-.25-.26c-.21-.28-.46-.73-.78-1.19a3.93 3.93 0 0 0-.59-.68 2.17 2.17 0 0 0-.96-.52 1.89 1.89 0 0 0-.43-.04c-.47 0-.85.15-1.17.3-.48.24-.89.53-1.23.73-.17.1-.32.18-.44.23a.62.62 0 0 1-.2.05.9.9 0 0 1-.32-.1c-.28-.14-.66-.4-1.09-.66a5.13 5.13 0 0 0-.7-.36 2.47 2.47 0 0 0-.93-.2c-.14 0-.28.02-.43.06a2.05 2.05 0 0 0-.69.3 3.25 3.25 0 0 0-.78.78c-.3.4-.51.8-.72 1.1l-.26.35a.54.54 0 0 1-.13.1c0 .01-.12.05-.33.05a7.28 7.28 0 0 1-.78-.07c-.3-.03-.64-.07-1-.07-.24 0-.49.02-.75.08a2.08 2.08 0 0 0-.81.39 2.04 2.04 0 0 0-.5.57c-.2.36-.28.71-.35 1.04-.09.49-.11.95-.17 1.3a2.77 2.77 0 0 1-.09.43.53.53 0 0 1-.07.16s-.1.1-.31.2c-.32.14-.81.28-1.33.48a3.93 3.93 0 0 0-.8.42 2.15 2.15 0 0 0-.71.82 2.08 2.08 0 0 0-.2.91c0 .34.07.64.14.91.11.41.26.78.36 1.1.11.31.17.58.16.69v.06l-.04.08a2.54 2.54 0 0 1-.35.43c-.26Line truncated

After

Width:  |  Height:  |  Size: 6.2 KiB

@@ -0,0 +1 @@
<svg width="72" height="58" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M51.1 35.7a3 3 0 0 1-2.8-3c0-.4 0-.8.2-1.1l.4-1-1-.3a5.1 5.1 0 0 1-3.3-4.8l.1-1.1.3-1.2h-1.4a4.6 4.6 0 0 1-4.6-4.6V17l-1.2.4a3.2 3.2 0 0 1-1.1.2 3.3 3.3 0 0 1-3.3-3.2c0-.6.2-1.2.5-1.7l.7-1-1.2-.4a26 26 0 0 0-7.4-1 26 26 0 1 0 26 26.3v-.9h-.9z" id="b"/><filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="a"><feOffset dx="2" in="SourceAlpha" result="shadowOffsetOuter1"/><feGaussianBlur stdDeviation=".5" in="shadowOffsetOuter1" result="shadowBlurOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0" in="shadowBlurOuter1"/></filter></defs><g fill="none" fill-rule="evenodd"><g transform="rotate(14 33.7 105.7)" fill="#FFF"><path d="M51.1 25.4a3 3 0 0 1-2.8-3c0-.3 0-.7.2-1l.4-1-1-.3a5.1 5.1 0 0 1-3.3-4.8l.1-1.2.3-1.1h-1.4A4.6 4.6 0 0 1 39 8.4V6.8l-1.2.4a3.2 3.2 0 0 1-1.1.2 3.3 3.3 0 0 1-3.3-3.2c0-.6.2-1.2.5-1.7l.7-1-1.2-.4A26 26 0 0 0 26 0a26 26 0 1 0 26 26.4v-1h-.9zM26 50.1c-7.5 0-14.3-3.4-18.7-8.9a3.2 3.2 0 1 0 .3-6.3 3.2 3.2 0 0 0-3 2.2 24 24 0 0 1-2.7-10.7 2 2 0 0 0 2 1.5 2 2 0 0 0 0-4.1 2 2 0 0 0-2 1.5 24.2 24.2 0 0 1 19.4-23l-.2 1a2.2 2.2 0 1 0 4.4 0 2.2 2.2 0 0 0-.5-1.4h1c2 0 4 .2 5.8.7a5 5 0 0 0-.2 1.6 5.1 5.1 0 0 0 5 5h.6a6.5 6.5 0 0 0 5.5 5.6 6.5 6.5 0 0 0 0 .5 7 7 0 0 0 3.8 6.2 4.8 4.8 0 0 0 3.6 5.7 24.2 24.2 0 0 1-24.1 23z" stroke="#FFF"/><ellipse cx="14.5" cy="11.4" rx="2" ry="2"/><ellipse cx="27.9" cy="14.1" rx="2.9" ry="2.9"/><ellipse cx="15.5" cy="21.6" rx="3.1" ry="3.1"/><circle cx="26.5" cy="29.5" r="3.8"/><ellipse cx="34" cy="42.5" rx="2.3" ry="2.3"/><ellipse cx="41.6" cy="32.9" rx="2" ry="2"/><circle cx="20.8" cy="41.7" r="2.6"/><ellipse cx="39.1" cy="20.7" rx="2" ry="2"/></g><g transform="translate(0 -6)"><use fill="#000" filter="url(#a)" xlink:href="#b"/><use fill="#282828" xlink:href="#b"/></g><g transform="translate(1.9 4.2)" fill="#FFF" stroke="#FFF"><path d="M51.1 25.4a3 3 0 0 1-2.8-3c0-.3 0-.7.2-1l.4-1-1-.3a5.1 5.1 0 0 1-3.3-4.8l.1-1.2.3-1.1h-1.4A4.6 4.6 0 0 1 39 8.4V6.8l-1.2.4a3.2 3.2 0 0 1-1.1.2 3.3 3.3 0 0 1-3.3-3.2c0-.6.2-1.2.5-1.7l.7-1-1.2-.4A26 26 0 0 0 26 0a26 26 0 1 0 26 26.4v-1h-.9zM26 50.1c-7.5 0-14.3-3.4-18.7-8.9a3.2 3.2 0 1 0 .3-6.3 3.2 3.2 0 0 0-3 2.2 24 24 0 0 1-2.7-10.7 2 2 0 0 0 2 1.5 2 2 0 0 0 0-4.1 2 2 0 0 0-2 1.5 24.2 24.2 0 0 1 19.4-23l-.2 1a2.2 2.2 0 1 0 4.4 0 2.2 2.2 0 0 0-.5-1.4h1c2 0 4 .2 5.8.7a5 5 0 0 0-.2 1.6 5.1 5.1 0 0 0 5 5h.6a6.5 6.5 0 0 0 5.5 5.6 6.5 6.5 0 0 0 0 .5 7 7 0 0 0 3.8 6.2 4.8 4.8 0 0 0 3.6 5.7 24.2 24.2 0 0 1-24.1 23z"/><ellipse cx="14.5" cy="11.4" rx="2" ry="2"/><ellipse cx="27.9" cy="14.1" rx="2.9" ry="2.9"/><ellipse cx="15.5" cy="21.6" rx="3.1" ry="3.1"/><ellipse cx="26.5" cy="29.5" rx="3.8" ry="3.8"/><ellipse cx="34" cy="42.5" rx="2.3" ry="2.3"/><ellipse cx="41.6" cy="32.9" rx="2" ry="2"/><ellipse cx="20.8" cy="41.7" rx="2.6" ry="2.6"/><ellipse cx="39.1" cy="20.7" rx="2" ry="2"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

+32
View File
@@ -0,0 +1,32 @@
/* latin-ext */
@font-face {
font-family: 'Proza Libre';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/prozalibre/v5/LYjGdGHgj0k1DIQRyUEyyEomdNr1Wpyyzzc.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Proza Libre';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/prozalibre/v5/LYjGdGHgj0k1DIQRyUEyyEoodNr1Wpyy.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Proza Libre';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/prozalibre/v5/LYjbdGHgj0k1DIQRyUEyyELbV8_WeJGY9T6Mh1k.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Proza Libre';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/prozalibre/v5/LYjbdGHgj0k1DIQRyUEyyELbV8_YeJGY9T6M.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
+1
View File
@@ -0,0 +1 @@
<svg width="69" height="71" xmlns="http://www.w3.org/2000/svg"><defs><filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="a"><feOffset dy="1" in="SourceAlpha" result="shadowOffsetOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" in="shadowOffsetOuter1" result="shadowMatrixOuter1"/><feMerge><feMergeNode in="shadowMatrixOuter1"/><feMergeNode in="SourceGraphic"/></feMerge></filter></defs><g filter="url(#a)" fill="#FFF" fill-rule="evenodd"><path d="M61 41.5h-1.2v.2c0 3.7 0 7.1-.4 10.2a20 20 0 0 1-1.7 6.1 12.3 12.3 0 0 1-2.7 3.6 17 17 0 0 1-7.3 3.9c-3.3 1-7.6 1.4-13.1 1.4-6.5 0-11.4-.7-14.9-2-2.6-1-4.6-2.2-6-3.7a16 16 0 0 1-2.5-3.7c-.9-2.1-1.3-4.6-1.6-7.3-.2-2.7-.2-5.6-.2-8.7a25.5 25.5 0 0 1 7.4-18 25 25 0 0 1 35.6 0 25.5 25.5 0 0 1 7.4 18h2.5c0-15.5-12.4-28-27.7-28a27.9 27.9 0 0 0-27.8 28c0 3.7 0 7.2.5 10.5.3 2.5.8 4.9 1.9 7a15 15 0 0 0 3.1 4.4c2 2 4.8 3.5 8.5 4.5 3.6 1 8.1 1.6 13.8 1.6a47 47 0 0 0 15.7-2.2c3-1 5.2-2.5 7-4.2 1.2-1.4 2.2-2.9 2.9-4.5 1-2.4 1.6-5.1 1.9-8 .2-2.8.2-5.8.2-8.9v-.2h-1.2"/><path d="M61 41.5h-1.2v.2c0 3.7 0 7.1-.4 10.2a20 20 0 0 1-1.7 6.1 12.3 12.3 0 0 1-2.7 3.6 17 17 0 0 1-7.3 3.9c-3.3 1-7.6 1.4-13.1 1.4-6.5 0-11.4-.7-14.9-2-2.6-1-4.6-2.2-6-3.7a16 16 0 0 1-2.5-3.7c-.9-2.1-1.3-4.6-1.6-7.3-.2-2.7-.2-5.6-.2-8.7a25.5 25.5 0 0 1 7.4-18 25 25 0 0 1 35.6 0 25.5 25.5 0 0 1 7.4 18h2.5c0-15.5-12.4-28-27.7-28a27.9 27.9 0 0 0-27.8 28c0 3.7 0 7.2.5 10.5.3 2.5.8 4.9 1.9 7a15 15 0 0 0 3.1 4.4c2 2 4.8 3.5 8.5 4.5 3.6 1 8.1 1.6 13.8 1.6a47 47 0 0 0 15.7-2.2c3-1 5.2-2.5 7-4.2 1.2-1.4 2.2-2.9 2.9-4.5 1-2.4 1.6-5.1 1.9-8 .2-2.8.2-5.8.2-8.9v-.2h-1.2"/><path d="M55.7 54.5h-1.3a4.3 4.3 0 0 1-2.2 3.7 3.5 3.5 0 0 1-1.6.3H19a4.8 4.8 0 0 1-1.9-.3 6.2 6.2 0 0 1-2.3-1.8 4.3 4.3 0 0 1-.7-1 2.3 2.3 0 0 1-.2-.9V39.7c0-.4.1-.6.3-1 .4-.4 1-.9 1.9-1.2.8-.4 1.8-.6 2.9-.6h31.6c1.4 0 2.3.4 3 .8a2.3 2.3 0 0 1 .8 2v14.8H57V39.7a5.1 5.1 0 0 0-.5-2.2 5 5 0 0 0-2.3-2.4c-1-.5-2.3-.7-3.6-.7H19c-1.8 0-3.6.4-5 1.3-.7.4-1.4 1-1.8 1.6a4.2 4.2 0 0 0-.8 2.4v14.8c0 1 .3 1.7.7 2.5a8.2 8.2 0 0 0 6.9 4h31.6a6 6 0 0 0 2.7-.5 6.7 6.7 0 0 0 3.7-6h-1.3M37.7 5h-1.3a2 2 0 0 1-2 2 2 2 0 0 1-2.1-2 2 2 0 0 1 2-2.1 2 2 0 0 1 2 2H39c0-2.5-2-4.5-4.6-4.5-2.5 0-4.6 2-4.6 4.6A4.6 4.6 0 1 0 39 5h-1.3"/><path d="M32.3 15.3h2.5V7.6h-2.5zM19.6 19v6.4a1.3 1.3 0 0 0 1.3 1.2c.7 0 1.3-.5 1.3-1.2V19a1.3 1.3 0 0 0-1.3-1.3c-.7 0-1.3.6-1.3 1.3m26.6 0v6.4a1.3 1.3 0 0 0 1.3 1.2c.7 0 1.2-.5 1.2-1.2V19a1.3 1.3 0 0 0-1.2-1.3c-.7 0-1.3.6-1.3 1.3M7.6 52.6H6.3l.1.6.2.4h.5-.5.5-.5l1-.2h-1v.2l1-.2h-1 1.2l-1.2-.3v.3h1.2l-1.2-.3 1.2.3-1-.6a1.3 1.3 0 0 0-.2.3l1.2.3-1-.6 1 .6-.6-1c-.2 0-.4.3-.5.4l1.1.6-.6-1 .6 1v-1.2a1.2 1.2 0 0 0-.6.1l.6 1.1v-1.2H2.2v1.1l.4-1-.4-.1v1.1l.4-1-.3.6.4-.6h-.1l-.3.6.4-.6a2 2 0 0 1-.3-.2l-.5.3.5-.3-.5.3.5-.3-1 .5h1.1v-.5l-1 .5h1V37H1.4l1 .6a1.2 1.2 0 0 0 .1-.6H1.4l1 .6-1-.6.6 1 .3-.4-1-.6.7 1-.6-1 .2 1.1.4-.1-.6-1 .2 1.1-.2-.8v.8h.2l-.2-.8v.8-.3.3-.3.3l.2.1h6.2A1.3 1.3 0 0 0 9.1 37a1.3 1.3 0 0 0-.1-.6l-.3-.4a1.5 1.5 0 0 0-.4-.2 1.4 1.4 0 0 0-.6-.2 1.3 1.3 0 0 0-1 .4 1.4 1.4 0 0 0-.3.5 1.4 1.4 0 0 0 0 .5v15.7h2.5V37H7.8l1 .3a1 1 0 0 0 0-.3h-1l1 .3-1.1-.3.7 1a1.2 1.2 0 0 0 .4-.7L7.7 37l.7 1-.7-1v1c.1 0 .4 0 .7-.2l-.7-1V38v-1l-.5 1h.5v-1l-.5 1 .4-1-.7.8a1 1 0 0 0 .3.2l.4-1-.7.8.8-.8-1 .6.2.2.8-.8-1 .6 1-.7-1 .4v.3l1-.7-1 .4 1.1-.4H6.6v.4l1.2-.4H6.6h1.2l-1-.6c-.2.2-.2.4-.2.6h1.2l-1-.6 1 .6-.8-1a1.3 1.3 0 0 0-.3.4l1.1.6-.8-1 .8 1-.3-1.2a1.2 1.2 0 0 0-.5.2l.8 1-.3-1.2.3 1.1v-1.2a1.2 1.2 0 0 0-.3 0l.3 1.2v-1.2H2.2v1l.2-1h-.2v1l.2-1v.2-.2.2-.2H2l-.6-.1c-.2 0-.4 0-.7.2a1.4 1.4 0 0 0-.6.4 1.4 1.4 0 0 0-.2.8v15.7l.2.8.4.5a4.4 4.4 0 0 0 1 .6 1.8 1.8 0 0 0 .3.2h6a1.3 1.3 0 0 0 1.3-1V53l-.2-.3v-.2l-.8.1H9v-.1l-.8.1H9 7.6m59.5 0h-1.3l.1.6.2.4h.5-.5.5-.5l1-.2h-1v.2l1-.2h-1 1.2l-1.2-.3v.3h1.2l-1.2-.3 1.2.3-1-.6a1.3 1.3 0 0 0-.2.3l1.2.3-1-.6 1 .6-.6-1c-.2 0-.4.3-.5.4l1.1.6-.6-1 .6 1v-1.2a1.2 1.2 0 0 0-.6.1l.6 1.1v-1.2h-5.6v1.1l.4-1-.4-.1v1.1l.4-1-.3.6.4-.6H62l-.3.6.4-.6a2 2 0 0 1-.3-.2l-.5.3.5-.3-.5.3.5-.3-1 .5H62v-.5l-1 .5h1V37h-1l1 .6a1.2 1.2 0 0 0 .1-.6H61l1 .6-1-.6.6 1 .3-.4-1-.6.7 1-.6-1 .2 1.1a1 1 0 0 0 .4-.1l-.6-1 .2 1.1-.1-.8v.8h.1l-.1-.8v.8-.3.3-.3.3l.2.1h6.1a1.3 1.3 0 0 0 1.3-1.2 1.3 1.3 0 0 0-.1-.6l-.3-.4a1.5 1.5 0 0 0-.4-.2 1.4 1.4 0 0 0-.6-.2 1.3 1.3 0 0 0-1.3 1 1.4 1.4 0 0 0 0 .4v15.7h2.5V37h-1.1l1 .3a1 1 0 0 0 0-.3h-1l1 .3-1.1-.4.7 1a1.2 1.2 0 0 0 .4-.6l-1.1-.4.7 1-.7-1V38c.2 0 .4 0 .7-.2l-.7-1V38v-1l-.5 1h.5v-1l-.5 1 .4-1-.7.8a1 1 0 0 0 .3.2l.4-1-.7.8.8-.8-1 .6.2.2.8-.8-1 .6 1-.7-1 .4v.3l1-.7-1 .4 1.1-.4h-1.2v.4l1.2-.4h-1.2 1.2l-1-.6a1.3 1.3 0 0 0-.2.6h1.2l-1-.6 1 .6-.8-1a1.3 1.3 0 0 0-.3.4l1.1.6-.8-1 .8 1-.3-1.2a1.2 1.2 0 0 0-.5.2l.8 1-.3-1.2.3 1.1v-1.2a1.2 1.2 0 0 0-.3 0l.3 1.2v-1.2h-5.6v1l.2-1h-.2v1l.2-1v.2-.2.2-.2h-.3l-.6-.1c-.2 0-.4 0-.7.2a1.4 1.4 0 0 0-.8 1.2v15.7l.2.8.4.5a4.4 4.4 0 0 0 1 .6 1.8 1.8 0 0 0 .3.2 1.3 1.3 0 0 0 .3 0h5.6a1.3 1.3 0 0 0 1.3-1V53l-.1-.3-.1-.2-.8.1h.8v-.1l-.8.1h.8H67m-42.9-5.8l4.8-4.9a1.3 1.3 0 0 0 0-1.8 1.3 1.3 0 0 0-1.8 0L22.4 45a1.3 1.3 0 0 0 0 1.8 1.3 1.3 0 0Line truncated

After

Width:  |  Height:  |  Size: 5.1 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="139" height="28" xmlns="http://www.w3.org/2000/svg"><defs><filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="a"><feOffset dx="-2" in="SourceAlpha" result="shadowOffsetOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" in="shadowOffsetOuter1" result="shadowMatrixOuter1"/><feMerge><feMergeNode in="shadowMatrixOuter1"/><feMergeNode in="SourceGraphic"/></feMerge></filter><linearGradient x1="-18.384%" y1="118.346%" x2="91.782%" y2="8.547%" id="b"><stop offset="0%"/><stop stop-color="#FFF" offset="100%"/></linearGradient></defs><g filter="url(#a)" transform="rotate(45 103.014 54.088)" fill="none" fill-rule="evenodd"><path d="M63.563 29.254c0 1.444.367 2.725 1.1 3.793L62.1 35.615c-.272.294-.072.497.216.786l2.012 2.003c.277.294.465.475.748.187l2.78-2.778c.624.229 2.121.628 4.385.296l1.74-1.311c.13-.099.357-.245.507-.327l1.563-.855-1.253 1.266c-.12.121-.324.3-.453.398l-1.496 1.127 2.55 6.977a.45.45 0 0 0 .735.171l5.985-5.693a.455.455 0 0 0 .134-.248l1.342-7.499c1.632-1.411 3.284-3.053 4.913-4.882 9.376-10.53 10.775-18.76 10.775-22.728 0-1.307-.159-2.027-.165-2.057a.452.452 0 0 0-.365-.346c-.466-.08-11.581-1.793-26.046 12.662-.018.02-1.897 1.957-3.92 4.674l-7.428 2.065a.451.451 0 0 0-.226.147l-5.284 6.349a.452.452 0 0 0 .221.722l7.1 2.064 1.195-1.375c.106-.122.295-.308.423-.418l1.334-1.143-.945 1.48a4.67 4.67 0 0 1-.356.478l-1.258 1.447zM79.24 13.868c2.348-2.348 5.694-2.81 7.473-1.03 1.78 1.78 1.319 5.125-1.03 7.474-2.348 2.348-5.693 2.809-7.473 1.03-1.78-1.78-1.318-5.126 1.03-7.474z" fill="#FFF"/><path d="M79.225 13.894c2.348-2.349 5.694-2.81 7.473-1.03 1.78 1.78 1.319 5.125-1.03 7.473-2.348 2.349-5.693 2.81-7.473 1.03-1.78-1.78-1.318-5.125 1.03-7.473z" fill-opacity=".1" fill="url(#b)"/><path d="M62.342 40.43L9.359 93.336a.815.815 0 0 1-1.152 0l-.573-.572a.813.813 0 0 1 0-1.15l52.982-52.909a.815.815 0 0 1 1.152 0l.574.573a.813.813 0 0 1 0 1.15m-.762 6.738L8.595 100.074a.815.815 0 0 1-1.152 0l-.573-.573a.813.813 0 0 1 0-1.15l52.983-52.908a.815.815 0 0 1 1.152 0l.573.572a.813.813 0 0 1 0 1.15M2.027 94.388a.817.817 0 0 1-1.152 0L.3 93.816a.813.813 0 0 1 0-1.15l52.983-52.91a.815.815 0 0 1 1.152 0l.574.573a.813.813 0 0 1 0 1.15L2.027 94.39z" fill="#FFF"/></g></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="78" height="71" xmlns="http://www.w3.org/2000/svg"><defs><filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="a"><feOffset dy="1" in="SourceAlpha" result="shadowOffsetOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" in="shadowOffsetOuter1" result="shadowMatrixOuter1"/><feMerge><feMergeNode in="shadowMatrixOuter1"/><feMergeNode in="SourceGraphic"/></feMerge></filter></defs><g filter="url(#a)" fill="#FFF" fill-rule="evenodd"><path d="M36.24 21.208h-1.155c0 .36-.14.673-.36.901a1.15 1.15 0 0 1-1.667 0 1.286 1.286 0 0 1-.361-.9c0-.361.14-.674.36-.901.224-.228.51-.357.834-.359.324.002.61.131.833.359.221.227.361.54.361.9h2.311a3.6 3.6 0 0 0-1.016-2.515 3.468 3.468 0 0 0-2.489-1.058 3.47 3.47 0 0 0-2.49 1.058 3.604 3.604 0 0 0-1.015 2.515 3.6 3.6 0 0 0 1.016 2.515 3.469 3.469 0 0 0 2.49 1.058c.973 0 1.861-.41 2.488-1.058a3.6 3.6 0 0 0 1.016-2.515h-1.155m5.225-17.097H40.31c0 .36-.14.674-.36.902a1.152 1.152 0 0 1-1.666 0 1.287 1.287 0 0 1-.361-.902c0-.36.14-.672.36-.9a1.15 1.15 0 0 1 1.667 0c.22.228.36.54.36.9h2.312a3.6 3.6 0 0 0-1.016-2.515A3.464 3.464 0 0 0 39.117.54a3.467 3.467 0 0 0-2.49 1.057 3.605 3.605 0 0 0-1.015 2.515 3.6 3.6 0 0 0 1.016 2.516 3.467 3.467 0 0 0 2.49 1.057 3.464 3.464 0 0 0 2.488-1.057 3.6 3.6 0 0 0 1.016-2.516h-1.156m5.226 17.096h-1.156c0 .36-.14.673-.36.901a1.146 1.146 0 0 1-1.666 0 1.286 1.286 0 0 1-.361-.9c0-.361.14-.674.36-.902.224-.227.51-.356.834-.358.324.002.61.131.833.359.22.227.36.54.36.9h2.312a3.6 3.6 0 0 0-1.016-2.515 3.47 3.47 0 0 0-2.49-1.058c-.973 0-1.861.41-2.488 1.058a3.602 3.602 0 0 0-1.016 2.515 3.6 3.6 0 0 0 1.016 2.515 3.468 3.468 0 0 0 2.489 1.058c.973 0 1.862-.41 2.489-1.058a3.6 3.6 0 0 0 1.016-2.515h-1.156"/><path d="M52.94 21.116h-1.156c0 2.355-.923 4.444-2.412 5.957a8.121 8.121 0 0 1-5.809 2.431h-8.825a8.12 8.12 0 0 1-5.809-2.431c-1.489-1.513-2.412-3.602-2.413-5.957.001-2.356.924-4.445 2.413-5.957a8.12 8.12 0 0 1 5.809-2.432h8.825a8.121 8.121 0 0 1 5.809 2.432c1.489 1.512 2.412 3.601 2.412 5.957h2.312c0-2.97-1.175-5.654-3.08-7.583a10.43 10.43 0 0 0-7.453-3.12h-8.825a10.429 10.429 0 0 0-7.453 3.12c-1.905 1.93-3.081 4.613-3.08 7.583-.001 2.97 1.175 5.653 3.08 7.582a10.429 10.429 0 0 0 7.453 3.12h8.825a10.43 10.43 0 0 0 7.453-3.12c1.905-1.93 3.08-4.613 3.08-7.582H52.94m3.104 37.314v-1.157H21.956V38.182h32.933V58.43h1.155v-1.157 1.157H57.2V35.868H19.644v23.719H57.2V58.43h-1.156"/><path d="M67.282 59.298h-1.155c-.001 2.355-.925 4.444-2.414 5.956a8.12 8.12 0 0 1-5.808 2.432h-37.51a8.12 8.12 0 0 1-5.807-2.432c-1.49-1.512-2.413-3.6-2.414-5.956 0-2.356.924-4.445 2.414-5.957a8.12 8.12 0 0 1 5.808-2.432h37.509a8.12 8.12 0 0 1 5.808 2.432c1.49 1.512 2.413 3.6 2.414 5.957h2.31c.001-2.97-1.174-5.654-3.08-7.583a10.43 10.43 0 0 0-7.452-3.12h-37.51a10.43 10.43 0 0 0-7.452 3.12c-1.905 1.93-3.08 4.613-3.08 7.583 0 2.969 1.175 5.653 3.08 7.582A10.43 10.43 0 0 0 20.396 70h37.509a10.43 10.43 0 0 0 7.453-3.12c1.905-1.93 3.08-4.613 3.08-7.582h-1.156"/><path d="M20.396 63.636c-2.342 0-4.177-1.905-4.177-4.338s1.835-4.34 4.177-4.34h37.509c2.342 0 4.177 1.907 4.177 4.34s-1.835 4.338-4.177 4.338h-37.51M41.6 36.446V35.29h-4.622v-2.892h3.466v4.05H41.6V35.29v1.157h1.156v-6.363h-8.09v7.52h8.09v-1.157H41.6m-20.12 5.511L9.544 29.688 7.89 31.302l11.934 12.27m37.04 1.321L70.336 31.31l-1.64-1.63-13.471 13.582"/><path d="M5.851 27.344l-.828-.808c-.33.349-.877.593-1.411.718a5.251 5.251 0 0 1-1.147.142h-.03v.035-.036.036-.036l.003.001-.082-.002a1.96 1.96 0 0 0-1.308.467 1.766 1.766 0 0 0-.59 1.33c0 .3.069.583.18.842.062.146.285.58.915 1.227l.045.047-.046-.047a5.67 5.67 0 0 0 4.076 1.733 5.67 5.67 0 0 0 4.075-1.733 5.936 5.936 0 0 0 1.672-4.147 5.933 5.933 0 0 0-1.672-4.146l-.007-.006.005.005c-.624-.64-1.023-.863-1.182-.936a2.12 2.12 0 0 0-.874-.198 1.728 1.728 0 0 0-1.531.897 2.038 2.038 0 0 0-.244.993v.113c.002.143-.012.66-.14 1.22-.123.564-.37 1.145-.706 1.481l.827.808.828.807c.78-.811 1.12-1.784 1.306-2.587a8.15 8.15 0 0 0 .197-1.73l-.001-.109v-.003l-.415-.03.283.274a.444.444 0 0 0 .132-.244l-.415-.03.283.274-.404-.392v.572a.589.589 0 0 0 .404-.18l-.404-.392v.572-.32l-.073.312.073.008v-.32l-.073.312.028-.116-.04.114.012.002.028-.116-.04.114.004.001.244-.54-.302.511.058.029.244-.54-.302.511c.004.002.19.114.541.474a3.617 3.617 0 0 1 1.017 2.531c0 .925-.34 1.837-1.017 2.533a3.357 3.357 0 0 1-2.42 1.033 3.355 3.355 0 0 1-2.418-1.033 3.907 3.907 0 0 1-.42-.496l-.05-.076-.596.312.618-.266-.021-.046-.597.312.618-.266-.05-.118.05.118-.002-.004-.229.075h.239l-.01-.075-.229.075h.239-.552l.358.407a.575.575 0 0 0 .194-.407h-.552l.358.407-.316-.36.152.458a.486.486 0 0 0 .164-.098l-.316-.36.152.458-.087-.26.041.271.046-.011-.087-.26.041.271-.009-.062v.063h.01l-.01-.063v.063h.005c.012 0 .048.002.104.002a7.51 7.51 0 0 0 1.686-.205c.784-.192 1.741-.552 2.529-1.354l-.829-.807m66.531 0l-.828.807c.788.802 1.745 1.162 2.529 1.354a7.498 7.498 0 0 0 1.79.203h.005v-.063l-.01.062.01.001v-.063l-.01.062.069-.446-.322.293a.47.47 0 0 0 .254.153l.068-.446-.32Line truncated

After

Width:  |  Height:  |  Size: 6.8 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="98" height="74" xmlns="http://www.w3.org/2000/svg"><g fill="#FFF" fill-rule="evenodd"><path d="M96.384 53.5h-1.617c-.001 1.045-.26 2.068-.793 3.11-.927 1.82-2.738 3.681-5.355 5.399-3.919 2.58-9.597 4.817-16.405 6.377C65.407 69.95 57.468 70.852 49 70.852c-12.903.003-24.582-2.102-32.892-5.426-4.155-1.657-7.459-3.622-9.643-5.69-1.094-1.032-1.908-2.085-2.44-3.125-.532-1.043-.791-2.066-.792-3.111 0-1.046.26-2.07.792-3.112.927-1.82 2.738-3.68 5.355-5.398 3.92-2.58 9.598-4.817 16.405-6.377C32.593 37.05 40.531 36.148 49 36.148c12.903-.004 24.58 2.101 32.892 5.426 4.155 1.657 7.458 3.621 9.642 5.689 1.095 1.032 1.908 2.086 2.44 3.125.533 1.042.792 2.066.793 3.112H98c0-1.568-.403-3.096-1.133-4.517-1.283-2.493-3.517-4.677-6.44-6.602-4.39-2.882-10.387-5.202-17.47-6.832C65.873 33.923 57.703 33 49 33c-13.267.004-25.28 2.135-34.12 5.66-4.419 1.77-8.055 3.882-10.665 6.343-1.304 1.231-2.352 2.556-3.083 3.98C.402 50.404-.002 51.932 0 53.5c-.002 1.567.402 3.094 1.132 4.517 1.283 2.492 3.517 4.676 6.44 6.601 4.391 2.882 10.387 5.202 17.471 6.832C32.125 73.077 40.295 74 49 74c13.266-.004 25.28-2.136 34.118-5.661 4.42-1.77 8.056-3.882 10.667-6.343 1.304-1.23 2.352-2.555 3.082-3.98.73-1.422 1.134-2.95 1.133-4.516h-1.616"/><path d="M89.78 46.567c0 .866.72 1.568 1.61 1.568.89 0 1.61-.702 1.61-1.568 0-.865-.72-1.567-1.61-1.567-.89 0-1.61.702-1.61 1.567zm-1.957 4.701a1.539 1.539 0 0 0 .226 2.206 1.64 1.64 0 0 0 2.266-.22 1.539 1.539 0 0 0-.226-2.205 1.641 1.641 0 0 0-2.266.219zM83.32 54.97a1.543 1.543 0 0 0-.504 2.162 1.637 1.637 0 0 0 2.221.49c.753-.461.978-1.43.503-2.162a1.637 1.637 0 0 0-2.22-.49zm-5.493 2.718a1.553 1.553 0 0 0-.872 2.048c.34.8 1.283 1.18 2.104.848.822-.332 1.212-1.249.872-2.048-.341-.8-1.283-1.18-2.104-.848zm-5.916 1.995c-.854.24-1.347 1.11-1.1 1.94.246.832 1.14 1.312 1.993 1.072.856-.24 1.348-1.109 1.101-1.94-.246-.832-1.138-1.311-1.994-1.072zm-6.128 1.44c-.873.169-1.44.993-1.267 1.843.173.848 1.02 1.4 1.893 1.231.872-.168 1.44-.992 1.267-1.842-.173-.849-1.021-1.4-1.893-1.232zm-6.248.977c-.882.108-1.508.891-1.398 1.75.11.86.916 1.468 1.799 1.36.882-.107 1.508-.89 1.397-1.75-.11-.858-.915-1.467-1.798-1.36zm-6.313.57c-.888.053-1.563.797-1.509 1.66.054.865.819 1.523 1.706 1.47.888-.054 1.564-.797 1.509-1.661-.055-.864-.818-1.521-1.706-1.468zm-6.344.195c-.89.002-1.609.706-1.607 1.57.002.867.725 1.567 1.614 1.565.89-.002 1.61-.705 1.607-1.57-.002-.867-.725-1.566-1.614-1.565zm-6.351-.156c-.889-.046-1.647.618-1.694 1.482-.047.865.635 1.603 1.523 1.648.888.047 1.646-.617 1.693-1.482.048-.864-.634-1.602-1.522-1.648zm-6.325-.51c-.883-.098-1.68.52-1.781 1.38-.101.86.534 1.637 1.418 1.735.883.097 1.68-.52 1.781-1.38.101-.86-.533-1.637-1.418-1.735zm-6.262-.901c-.875-.158-1.715.406-1.876 1.257-.16.851.417 1.668 1.292 1.825.874.158 1.714-.406 1.875-1.257.162-.851-.417-1.668-1.291-1.825zm-6.15-1.356c-.86-.228-1.744.264-1.978 1.1-.235.834.271 1.696 1.129 1.924.858.228 1.744-.264 1.978-1.1.234-.834-.271-1.696-1.13-1.924zm-5.94-1.914c-.827-.321-1.764.07-2.094.874-.33.804.073 1.716.9 2.037.824.321 1.762-.07 2.092-.875.33-.803-.073-1.715-.899-2.037v.001zm-5.512-2.657c-.756-.457-1.749-.232-2.218.504a1.542 1.542 0 0 0 .517 2.158 1.636 1.636 0 0 0 2.218-.503 1.543 1.543 0 0 0-.517-2.159zM5.87 51.684a1.641 1.641 0 0 0-2.263-.251 1.54 1.54 0 0 0-.258 2.202 1.64 1.64 0 0 0 2.263.251 1.54 1.54 0 0 0 .258-2.202zm22.24-25.73c2.976 1.4 10.46 4.391 20.173 4.396 5.905 0 12.634-1.114 19.63-4.375 4.502 4.369 7.453 10.212 7.996 16.71a50.737 50.737 0 0 1-4.564 2.236c-3.207 1.375-7.215 2.648-10.837 2.643-.45 0-.814.35-.814.782 0 .43.365.781.814.781 4.276-.005 8.732-1.546 12.153-3.064a52.697 52.697 0 0 0 3.335-1.629c.003.144.004.287.004.431 0 14.847-56 14.847-56 0 0-.225.003-.45.009-.674a52.741 52.741 0 0 0 3.786 1.872c3.421 1.518 7.878 3.059 12.152 3.064.45 0 .815-.35.815-.781 0-.432-.364-.782-.815-.782-3.862.006-8.165-1.445-11.467-2.918a51.002 51.002 0 0 1-4.368-2.204c.597-6.411 3.54-12.172 7.997-16.488zm1.264-1.151C34.324 20.57 40.85 18 48 18c7.162 0 13.697 2.579 18.649 6.822-6.557 2.953-12.828 3.964-18.366 3.965-6.089 0-11.29-1.227-14.963-2.454a42.813 42.813 0 0 1-3.946-1.53z"/><path d="M49.48 9.283l7.268-1.692a1.63 1.63 0 0 0 1.24-1.385 1.609 1.609 0 0 0-.884-1.626l-8.69-4.4a1.692 1.692 0 0 0-1.62.055A1.62 1.62 0 0 0 46 1.62v18.76c0 .895.74 1.62 1.655 1.62.914 0 1.655-.725 1.655-1.62l.17-11.097z"/></g></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1 @@
<svg width="82" height="81" xmlns="http://www.w3.org/2000/svg"><g fill="#FFF" fill-rule="evenodd"><path d="M17.41 20.294c0 2.096-1.732 3.795-3.87 3.795-2.137 0-3.869-1.699-3.869-3.795s1.732-3.796 3.87-3.796c2.137 0 3.869 1.7 3.869 3.796m48.14 48.052c0 .828-.684 1.5-1.528 1.5-.846 0-1.53-.672-1.53-1.5 0-.83.684-1.5 1.53-1.5.844 0 1.529.67 1.529 1.5M35.542 55.012l-1.377.553a15.557 15.557 0 0 1 1.208 6.002c0 3.127-.95 6.18-2.685 8.76a16.045 16.045 0 0 1-7.387 5.949 16.41 16.41 0 0 1-6.12 1.185c-3.19 0-6.301-.932-8.932-2.633a15.872 15.872 0 0 1-6.064-7.247 15.558 15.558 0 0 1-1.21-6.002c0-3.128.95-6.18 2.686-8.76a16.04 16.04 0 0 1 7.388-5.949 16.406 16.406 0 0 1 6.12-1.185c3.189 0 6.3.932 8.931 2.633a15.878 15.878 0 0 1 6.065 7.247l1.377-.553 1.378-.551a18.806 18.806 0 0 0-7.182-8.58 19.46 19.46 0 0 0-17.815-1.713 19.015 19.015 0 0 0-8.747 7.044A18.607 18.607 0 0 0 0 61.579c0 2.37.46 4.781 1.43 7.106a18.804 18.804 0 0 0 7.18 8.58 19.46 19.46 0 0 0 17.816 1.713c3.71-1.487 6.697-3.99 8.747-7.044a18.6 18.6 0 0 0 3.176-10.367c0-2.37-.46-4.781-1.43-7.107l-1.377.552"/><path d="M10.119 48.911L45.309 2.78a1.441 1.441 0 0 0-.3-2.043 1.508 1.508 0 0 0-2.082.295L7.737 47.163a1.44 1.44 0 0 0 .3 2.043c.657.482 1.59.35 2.082-.295m24.25 24.432l47.034-34.516a1.44 1.44 0 0 0 .3-2.042 1.507 1.507 0 0 0-2.082-.295L32.586 71.006a1.441 1.441 0 0 0-.3 2.043 1.507 1.507 0 0 0 2.083.294m3.907-27.893l30.631-31.594a1.44 1.44 0 0 0-.053-2.064 1.51 1.51 0 0 0-2.104.052L36.12 43.439a1.44 1.44 0 0 0 .054 2.064 1.508 1.508 0 0 0 2.103-.053M25.648 75.23c-2.724-4.05-5.68-7.907-9.206-11.319-1.828-1.769-3.996-3.122-6.07-4.585-1.797-1.268-4.234-1.856-5.919-3.144-1.1-.84-2.623.347-2.123 1.59.544 1.349 1.643 1.665 2.86 2.409 2.077 1.271 3.884 3.002 5.71 4.586 4.205 3.645 7.617 8.153 10.211 13.025 1.784 3.345 6.654.583 4.537-2.562"/><path d="M35.876 60.62c-2.09.656-8.949-1.58-11.42-2.508-2.914-1.094-5.503-2.671-7.921-4.584-1.58-1.248-4.243-3.255-4.894-5.29-.747-2.33-4.626-.554-3.109 1.758 3.506 5.342 10.075 9.056 16.056 10.963 1.287.41 12.404 3.44 12.321.257-.012-.515-.607-.729-1.033-.596"/></g></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

File diff suppressed because it is too large. Load diff
+1
View File
@@ -0,0 +1 @@
<svg width="68" height="69" xmlns="http://www.w3.org/2000/svg"><defs><filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="a"><feOffset dy="1" in="SourceAlpha" result="shadowOffsetOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" in="shadowOffsetOuter1" result="shadowMatrixOuter1"/><feMerge><feMergeNode in="shadowMatrixOuter1"/><feMergeNode in="SourceGraphic"/></feMerge></filter></defs><g filter="url(#a)" fill="#FFF" fill-rule="evenodd"><path d="M1.3 33.8h1.2H2l.5.3a.6.6 0 0 0 .1-.3H2l.5.3-.2-.1.2.2-.2-.2.2.2.4-.3c.5-.3 1.3-.5 2.1-.8 1.3-.4 2.8-.8 4-1.3.7-.2 1.2-.4 1.7-.8l.8-.5a2 2 0 0 0 .5-1.4 2.2 2.2 0 0 0-.1-.8l-.8-1.1-1.8-1.8L6 22.8l-1-1a1.6 1.6 0 0 1-.2-.3l-.4.1H5h-.4.4-.6l.6.3a.7.7 0 0 0 0-.3h-.6l.6.3-.5-.2.3.5a.6.6 0 0 0 .2-.3l-.5-.2.3.5-.2-.2.2.2-.2-.2.2.2A1.2 1.2 0 0 1 5 22h.7c.9 0 2 0 3.2.2l3.4.2 1.5-.1.7-.3.7-.6c.3-.4.3-.9.3-1.2 0-.4 0-.8-.2-1.2-.2-.7-.5-1.4-1-2.2l-1.7-3.3a13.8 13.8 0 0 1-.8-2.1l-.4-.1.4.2a.4.4 0 0 0 0-.1l-.4-.1.4.2-.6-.3.5.5a.7.7 0 0 0 0-.2l-.5-.3.5.5-.5-.5.2.6a.6.6 0 0 0 .3-.1l-.5-.5.2.6-.1-.3v.3h.1l-.1-.3v.3l.5.1 1.8.8 3.4 1.8 1.6.7 1.6.4a2 2 0 0 0 1.2-.4c.3-.2.5-.4.6-.7l.3-1 .1-1.2-.2-3.4a33.6 33.6 0 0 1-.2-4.1v-.1l-.2-.2.2.2-.2-.2.2.2-.5-.4.3.6a.6.6 0 0 0 .2-.2l-.5-.4.3.6-.3-.6V5a.7.7 0 0 0 .3 0l-.3-.6V5v-.4.4-.4.4-.2.2-.2.2l.4.3L23.3 7l2.7 3c.4.5.8 1 1.3 1.3l.7.5 1 .2h.4a2 2 0 0 0 .8-.4c.5-.4.7-.8 1-1.2L32 8l1.3-4 .5-1.2.1-.2-.2-.2.2.3-.2-.3.2.3-.3-.6v.6a.6.6 0 0 0 .3 0l-.3-.6v.6V2l-.3.5a.6.6 0 0 0 .3.1V2l-.3.5.2-.2-.2.2.2-.2-.2.2.3.4.8 2.1c.4 1.3.8 2.8 1.3 4l.7 1.7.6.8a2 2 0 0 0 1.4.5l.8-.1 1.1-.8 1.8-1.8 2.5-3 1-1A1.7 1.7 0 0 1 46 5v-.4.4-.4.4-.6l-.3.6a.7.7 0 0 0 .2 0v-.6l-.2.6.2-.5-.5.3.3.2.2-.5-.5.3.2-.1h-.2.2-.2a1.3 1.3 0 0 1 0 .4l.1.8c0 .8 0 2-.2 3l-.2 3.5.1 1.5c0 .2.1.5.3.7.1.3.3.5.6.7a2 2 0 0 0 1.2.4l1.2-.3 2.2-.9 3.3-1.8a13.8 13.8 0 0 1 2.1-.8v-.4.4-.4.4l.2-.6-.5.5a.7.7 0 0 0 .2.1l.3-.6-.5.5.5-.5-.6.2a.6.6 0 0 0 .1.3l.5-.5-.6.2h.3-.4.4-.4a2 2 0 0 1 0 .4l-.8 1.8-1.8 3.4a16.4 16.4 0 0 0-.7 1.6c-.2.5-.4 1-.4 1.6 0 .3 0 .8.4 1.2.2.3.4.5.7.6.3.2.7.3 1 .3l1.2.1 3.4-.2a33.6 33.6 0 0 1 4.1-.2h.1l.2-.2-.3.2h.1l.2-.2-.3.2.5-.5-.6.3a.6.6 0 0 0 .1.2l.5-.5-.6.3.6-.3h-.7v.3l.7-.3h-.7.5-.4.4-.4.1-.1.1-.1l-.4.4-1.5 1.4-3.2 2.7c-.5.4-.9.8-1.2 1.3l-.5.7a2.3 2.3 0 0 0-.3 1v.4l.5.9c.3.4.7.6 1.1.8l2.6 1 4 1.3 1.2.6h.1l.3-.1H65a.3.3 0 0 0 0 .2l.3-.2H65l.6-.2H65a.6.6 0 0 0 0 .3l.6-.3H65h.5l-.5-.3a.6.6 0 0 0 0 .3h.5l-.5-.3.3.2-.2-.2.2.2-.2-.2-.5.3-2 .8c-1.3.4-2.8.8-4 1.3l-1.8.7-.7.6a2 2 0 0 0-.5 1 1.8 1.8 0 0 0 0 .4l.1.8.7 1.1 1.9 1.8 3 2.6a8.7 8.7 0 0 1 1.2 1.2h.4-.4.4-.4.7l-.6-.3a.7.7 0 0 0 0 .2h.6l-.6-.2.5.2-.3-.5a.6.6 0 0 0-.2.3l.5.2-.3-.5.1.2v-.2h-.1l.1.2v-.2l-.4.1h-.8c-.8 0-2 0-3.1-.2l-3.4-.2-1.5.1a3 3 0 0 0-.7.3 2 2 0 0 0-.7.6 2 2 0 0 0-.4 1.2l.2 1.2 1 2.2 1.7 3.3a13.9 13.9 0 0 1 .8 2.1h.5-.4.4-.4l.6.2-.5-.5a.7.7 0 0 0-.1.2l.6.3-.5-.5.5.5-.2-.6a.6.6 0 0 0-.3.1l.5.5-.2-.6v.3-.3.3-.3a2 2 0 0 1-.5-.1l-1.7-.8-3.4-1.8-1.6-.7c-.5-.2-1-.4-1.6-.4a2 2 0 0 0-1.2.4 2 2 0 0 0-.6.7l-.4 1a8 8 0 0 0 0 1.2c0 1 0 2.2.2 3.4a33.6 33.6 0 0 1 .1 4.1v.1l.3.2-.2-.3v.1l.2.2-.2-.3.4.5-.2-.6a.6.6 0 0 0-.2.1l.4.5-.2-.6.2.6v-.6a.7.7 0 0 0-.2 0l.2.6v-.6.4l.1-.4v.4-.4.1-.1.1-.1a2 2 0 0 1-.4-.3l-1.5-1.6-2.6-3.2-1.3-1.2a4.1 4.1 0 0 0-.8-.5 2.3 2.3 0 0 0-1-.2h-.3a2 2 0 0 0-.9.4c-.4.4-.6.7-.8 1.2-.4.7-.7 1.6-1 2.5l-1.3 4-.6 1.2v.1l.1.3-.1-.3.1.3-.1-.3.2.6V65a.6.6 0 0 0-.2 0l.2.6V65v.5l.3-.5a.6.6 0 0 0-.3 0v.5l.3-.5-.1.3.2-.2-.2.2.2-.2-.3-.5c-.3-.4-.5-1.2-.8-2-.4-1.3-.8-2.8-1.3-4-.2-.7-.5-1.3-.8-1.8a3.4 3.4 0 0 0-.5-.7 2 2 0 0 0-1-.5 1.9 1.9 0 0 0-.4 0 2.2 2.2 0 0 0-.8.1l-1.1.7-1.8 1.9-2.6 3a8.7 8.7 0 0 1-1.3 1.3l.1.3v-.4.4-.4.7l.3-.6a.7.7 0 0 0-.3 0v.6l.3-.6-.2.5.4-.3a.6.6 0 0 0-.2-.2l-.2.5.4-.3-.2.1h.3v-.1l-.3.1h.3a1.3 1.3 0 0 1-.1-.4 5.8 5.8 0 0 1 0-.8c0-.8 0-2 .2-3.1l.2-3.4-.1-1.5a3 3 0 0 0-.3-.7 2 2 0 0 0-.6-.7 2 2 0 0 0-1.2-.4l-1.2.3-2.2.9-3.3 1.7a14.3 14.3 0 0 1-2.2.9v.4l.2-.4a.4.4 0 0 0-.2 0v.4l.2-.4-.3.6.5-.5a.7.7 0 0 0-.2-.1l-.3.6.5-.5-.5.5.6-.2a.6.6 0 0 0-.1-.3l-.5.5.6-.2h-.3.3-.3.3a1.9 1.9 0 0 1 .1-.5l.8-1.7 1.8-3.4.7-1.6c.2-.5.3-1 .3-1.6a2 2 0 0 0-.3-1.2 2 2 0 0 0-.7-.6l-1.1-.4a7.8 7.8 0 0 0-1.1 0c-1 0-2.3 0-3.4.2a34.3 34.3 0 0 1-4.2.2l-.2.2.2-.2-.2.2.2-.2-.4.4.6-.2a.6.6 0 0 0-.2-.2l-.4.4.6-.2-.6.2h.6a.7.7 0 0 0 0-.2l-.6.2h.6-.4l.4.1h-.4.4-.2.2-.2.2l.3-.4 1.6-1.5c1-.8 2.2-1.7 3.1-2.6l1.3-1.3.5-.8a2.3 2.3 0 0 0 .2-1v-.3a2 2 0 0 0-.4-.9c-.4-.4-.8-.6-1.2-.8-.7-.4-1.6-.7-2.5-1l-4-1.3-1.2-.6h-.2l-.2.1.3-.1-.3.1.3-.1-.6.2h.6a.6.6 0 0 0 0-.2l-.6.2h.6H0c0 .4.2.8.3 1l.5.6L2 36l2.4 1c1.3.3 2.8.7 3.8 1.1a6.8 6.8 0 0 1 1.4.7l.1-.2-.2.2.2-.2-.2.2.5-.3h-.5a.6.6 0 0 0 0 .3l.5-.3h-.5.5-.5.5-.5.4l-.4-.1h.4-.4.1-.1.1-.1L9 39l-1.6 1.5-3 2.5-1.3 1.3a4 4 0 0 0-.4.7 2.3 2.3 0 0 0-.2 1 1.8 1.8 0 0 0 .8 1.5c.4.3.8.4 1.2.4l1.2.1 3.4-.2a34 34 0 0 1 4.1-.2h.1l.1-.2-.1.2.1-.2-.1.2.3-.4-.4.3a.6.6 0 0 0 0 .1l.4-.4-.4.3.4-.3-.5.1v.2l.5-.3-.5.1h.2-.2.2-.2l-.1.5-.8 1.8-1.8 3.3-.7 1.6c-.2.6-.3 1-.3 1.6v.7a1.8 1.8 0 0 0 1.2 1.2l.7.1c.5 0 .9 0 1.3-.2a15 15 0 0 0 2.1-1l3.4-1.7a1Line truncated

After

Width:  |  Height:  |  Size: 8.4 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="71" height="62" xmlns="http://www.w3.org/2000/svg"><defs><filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="a"><feOffset dy="1" in="SourceAlpha" result="shadowOffsetOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" in="shadowOffsetOuter1" result="shadowMatrixOuter1"/><feMerge><feMergeNode in="shadowMatrixOuter1"/><feMergeNode in="SourceGraphic"/></feMerge></filter></defs><g filter="url(#a)" fill="#FFF" fill-rule="evenodd"><path d="M69.102 15.534l-.176-1.251-17.997 2.504-1.604-11.455 16.742-2.33 1.78 12.707 1.255-.175-.176-1.251.176 1.251 1.256-.174L68.228.15 46.463 3.178l2.305 16.461 21.765-3.029-.175-1.251-1.256.174"/><path d="M48.858 15.387l-.175-1.252-15.082 2.099-.708-5.057 13.825-1.925.884 6.31 1.256-.175-.175-1.252.175 1.252 1.256-.175-1.236-8.813-18.847 2.623 1.41 10.065 18.849-2.623-.176-1.252-1.256.175"/><path d="M33.104 17.58l-.175-1.253-22.666 3.155-.708-5.058 21.41-2.98.884 6.31 1.255-.175-.175-1.252.175 1.252 1.256-.175-1.234-8.812L6.692 12.27l1.41 10.064 26.433-3.678-.175-1.252-1.256.175"/><path d="M9.345 22.071L9.17 20.82l-4.58.637-1.033-7.384 3.322-.462 1.21 8.635 1.256-.175-.175-1.251.175 1.251 1.256-.175-1.56-11.138-8.346 1.161L2.43 24.31l8.347-1.16-.176-1.253-1.256.175m17.914-3.115v39.81c0 .7.567 1.265 1.268 1.265.7 0 1.268-.566 1.268-1.264v-39.81c0-.699-.568-1.264-1.268-1.264-.7 0-1.268.565-1.268 1.263m-3.804 0v39.81c0 .7.568 1.265 1.268 1.265.7 0 1.268-.566 1.268-1.264v-39.81c0-.699-.567-1.264-1.268-1.264-.7 0-1.268.565-1.268 1.263"/><path d="M24.723 60.032h3.804c.7 0 1.268-.566 1.268-1.264 0-.698-.568-1.264-1.268-1.264h-3.804c-.7 0-1.268.566-1.268 1.264 0 .698.568 1.264 1.268 1.264m3.607-31.537l22.559 22.487a1.271 1.271 0 0 0 1.793 0 1.261 1.261 0 0 0 0-1.788L30.123 26.707a1.271 1.271 0 0 0-1.793 0 1.261 1.261 0 0 0 0 1.788m-.144 4.84l20.57 20.504a1.27 1.27 0 0 0 1.792 0 1.26 1.26 0 0 0 0-1.787L29.98 31.548a1.27 1.27 0 0 0-1.793 0 1.26 1.26 0 0 0 0 1.787"/><path d="M50.548 53.839l2.5-2.491a1.261 1.261 0 0 0 0-1.788 1.271 1.271 0 0 0-1.793 0l-2.5 2.492a1.26 1.26 0 0 0 0 1.787 1.27 1.27 0 0 0 1.793 0M23.696 26.707L1.136 49.194a1.261 1.261 0 0 0 0 1.788 1.27 1.27 0 0 0 1.793 0l22.56-22.487a1.261 1.261 0 0 0 0-1.788 1.27 1.27 0 0 0-1.793 0m.142 4.841L3.27 52.052a1.26 1.26 0 0 0 0 1.787 1.271 1.271 0 0 0 1.793 0l20.568-20.504a1.26 1.26 0 0 0 0-1.787 1.271 1.271 0 0 0-1.793 0"/><path d="M5.063 52.052l-2.5-2.492a1.27 1.27 0 0 0-1.793 0 1.261 1.261 0 0 0 0 1.788l2.5 2.491a1.271 1.271 0 0 0 1.793 0 1.26 1.26 0 0 0 0-1.787"/></g></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1 @@
<svg width="101" height="52" xmlns="http://www.w3.org/2000/svg"><g fill="#FFF" fill-rule="evenodd"><path d="M37.102 50.632V26h10.306v-2.737H34.354v27.369h2.748"/><path d="M28.857 52H42.6v-2.737H28.857zm0-4.79H42.6v-2.736H28.857zm39.163 3.422V23.263H54.966V26h10.306v24.632h2.748"/><path d="M59.776 52h13.741v-2.737H59.776zm0-4.79h13.741v-2.736H59.776zM39.163 13h22.674a1.37 1.37 0 0 0 1.374-1.368 1.37 1.37 0 0 0-1.374-1.369H39.163a1.37 1.37 0 0 0-1.374 1.369A1.37 1.37 0 0 0 39.163 13"/><path d="M99.626 15.737v-1.369H63.21v-4.79h35.04v6.159h1.375v-1.369 1.369H101V6.842H60.463v10.263H101v-1.368h-1.374m-60.463-.684v-1.369H2.748v-4.79H37.79v6.159h1.374v-1.369 1.369h1.374V6.158H0V16.42h40.537v-1.368h-1.374"/><path d="M9.619 7.526v6.842a1.37 1.37 0 0 0 1.374 1.369 1.37 1.37 0 0 0 1.374-1.369V7.526a1.37 1.37 0 0 0-1.374-1.368A1.37 1.37 0 0 0 9.62 7.526m15.115 0v6.842a1.37 1.37 0 0 0 1.374 1.369 1.37 1.37 0 0 0 1.374-1.369V7.526a1.37 1.37 0 0 0-1.374-1.368 1.37 1.37 0 0 0-1.374 1.368m63.898 1.369v6.842a1.37 1.37 0 0 0 1.374 1.368 1.37 1.37 0 0 0 1.374-1.368V8.895a1.37 1.37 0 0 0-1.374-1.369 1.37 1.37 0 0 0-1.374 1.369m-15.116 0v6.842a1.37 1.37 0 0 0 1.374 1.368 1.37 1.37 0 0 0 1.374-1.368V8.895a1.37 1.37 0 0 0-1.374-1.369 1.37 1.37 0 0 0-1.374 1.369M55.653 34.21v-1.368h-7.558V2.737h6.184V34.21h1.374v-1.369 1.369h1.374V0h-11.68v35.579h11.68V34.21h-1.374"/></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1 @@
<svg width="47" height="54" xmlns="http://www.w3.org/2000/svg"><g fill="#FFF" fill-rule="evenodd"><path d="M38.339 48h-1.08c-.004.12-.029.224-.157.407-.113.155-.314.35-.61.55-.515.352-1.31.71-2.296 1.018-1.48.465-3.389.83-5.498 1.07-2.11.242-4.425.364-6.739.364-4.027.002-8.065-.374-11.006-1.094-1.468-.356-2.662-.808-3.395-1.273-.368-.23-.613-.457-.74-.635-.13-.183-.154-.287-.157-.407a7.28 7.28 0 0 1 1.122-3.897c1.09-1.764 2.98-3.27 5.442-4.328 2.458-1.058 5.473-1.66 8.734-1.66 4.35-.003 8.258 1.075 10.998 2.86 1.371.89 2.45 1.952 3.179 3.128A7.286 7.286 0 0 1 37.259 48h2.16a9.492 9.492 0 0 0-1.452-5.055c-1.395-2.245-3.66-3.987-6.426-5.178-2.77-1.19-6.058-1.833-9.582-1.834-4.697.003-8.978 1.14-12.166 3.207-1.593 1.035-2.913 2.31-3.841 3.805A9.482 9.482 0 0 0 4.5 48c-.004.63.228 1.23.579 1.702.307.42.697.763 1.143 1.066.782.527 1.744.938 2.86 1.29 1.67.524 3.69.901 5.895 1.155 2.205.252 4.593.378 6.982.378 4.163-.002 8.314-.376 11.515-1.156 1.604-.394 2.97-.88 4.028-1.54.528-.333.986-.714 1.338-1.192A2.878 2.878 0 0 0 39.42 48h-1.081"/><path d="M23.394 37.09V36h-2.702V2.182h1.621V37.09h1.08V36v1.09h1.081V0h-5.942v38.182h5.942V37.09h-1.08"/><path d="M45.543 16.003l.496-.969c-1.65-.864-3.33-1.182-4.953-1.18-2.222.003-4.346.566-6.41 1.092-2.066.53-4.07 1.027-6.015 1.024-1.426-.001-2.819-.254-4.26-.95l-.467.983h1.08V2.913h-1.08l-.467.983c1.755.853 3.51 1.167 5.194 1.165 2.304-.002 4.477-.564 6.545-1.091 2.069-.533 4.032-1.028 5.88-1.025 1.354.002 2.643.25 3.961.936l.496-.969h-1.08v13.091h1.08l.496-.969-.496.97h1.08V2.247l-.584-.305c-1.65-.864-3.33-1.182-4.953-1.18-2.222.003-4.346.566-6.41 1.092-2.066.53-4.07 1.027-6.015 1.024-1.426-.001-2.819-.254-4.26-.95l-1.548-.75V16.69l.614.297c1.755.853 3.51 1.167 5.194 1.165 2.304-.003 4.477-.564 6.545-1.091 2.069-.533 4.032-1.028 5.88-1.025 1.354.002 2.643.25 3.961.936l1.576.823v-1.792h-1.08M5.157 14.22l.741.33.029-.055v-.001l-.198-.146.128.206a.244.244 0 0 0 .07-.06l-.198-.146.128.206-.264-.427v.5c.11.001.21-.038.264-.073l-.264-.427v.5-.46l-.315.348a.479.479 0 0 0 .315.112v-.46l-.315.348.133-.147-.151.129.018.018.133-.147-.151.129.029-.025-.03.022v.003l.03-.025-.03.022.028.057.643 1.471c.192.435.51.762.873.996.366.231.788.377 1.25.38.071 0 .143-.005.216-.012l1.583-.174.05-.003h.014l.023-.199-.073.184.05.015.023-.199-.073.184.175-.44-.38.271a.479.479 0 0 0 .205.17l.175-.442-.38.272.412-.295h-.509c-.002.075.027.2.097.295l.412-.295h-.509.277l-.26-.106a.276.276 0 0 0-.017.106h.277l-.26-.106-.006.011-.029.042-.94 1.298a2.33 2.33 0 0 0-.42 1.364c.002.468.122.946.42 1.363L9.546 22l.029.042.005.012.121-.055-.128.031.007.024.121-.055-.128.031.343-.083h-.351l.008.083.343-.083h-.351.498l-.445-.223a.508.508 0 0 0-.053.223h.498l-.445-.223.437.22-.204-.455a.508.508 0 0 0-.233.235l.437.22-.204-.455.109.242-.048-.262-.06.02.108.242-.048-.262.006.037-.003-.038-.003.001.006.037-.003-.038h-.013l-.05-.002-1.583-.174a1.946 1.946 0 0 0-.217-.012 2.35 2.35 0 0 0-1.249.379c-.363.234-.68.56-.873.996l-.643 1.472-.028.055-.001.002.198.145-.127-.206c-.056.036-.07.06-.071.06l.198.146-.127-.206.264.428v-.5a.506.506 0 0 0-.264.072l.264.428v-.5.458l.315-.346a.475.475 0 0 0-.315-.112v.458l.315-.346-.133.146.15-.128-.017-.018-.133.146.15-.128-.028.025.03-.023-.001-.002-.03.025.032-.023-.03-.056-.642-1.472a2.29 2.29 0 0 0-.873-.996 2.349 2.349 0 0 0-1.25-.38c-.071 0-.143.005-.216.013l-1.584.174-.05.003-.013-.001-.024.2.073-.185-.05-.015-.023.2.073-.185-.174.441.379-.272a.476.476 0 0 0-.205-.17l-.174.442.379-.272-.412.295h.509a.528.528 0 0 0-.097-.295l-.412.295h.509-.277l.261.107a.305.305 0 0 0 .016-.107h-.277l.261.107.006-.012.028-.042.94-1.298c.299-.417.418-.895.42-1.363a2.33 2.33 0 0 0-.42-1.364l-.972-1.342.032.044-.028-.042-.007-.012-.12.055.128-.032-.008-.023-.12.055.128-.032-.343.084h.352l-.009-.084-.343.084h.352-.499l.445.223a.52.52 0 0 0 .054-.223h-.499l.445.223-.437-.22.204.455a.511.511 0 0 0 .233-.235l-.437-.22.204.455-.108-.242.048.263.06-.021-.108-.242.048.263-.007-.038.003.038h.004l-.007-.038.003.038h.014l.049.003 1.584.174c.073.007.145.011.216.011a2.351 2.351 0 0 0 1.25-.379c.363-.234.68-.56.873-.996l.642-1.471-.741-.33-.742-.33-.642 1.47a.678.678 0 0 1-.257.274.752.752 0 0 1-.383.126l-.04-.002-1.585-.174a2.069 2.069 0 0 0-.224-.013 1.38 1.38 0 0 0-.827.248 1.115 1.115 0 0 0-.457.91c.006.38.153.662.331.914l.94 1.297c.054.068.11.228.108.398a.705.705 0 0 1-.107.397l-.94 1.297c-.18.252-.326.534-.332.914a1.124 1.124 0 0 0 .665 1.032c.213.097.419.125.619.126.075 0 .15-.004.224-.013l1.584-.174.041-.002a.755.755 0 0 1 .383.126c.132.083.227.2.257.273l.642 1.472c.094.212.213.409.398.582.18.17.461.32.78.318.318.001.6-.147.779-.318.186-.173.305-.37.398-.582l.643-1.472a.678.678 0 0 1 .256-.273.757.757 0 0 1 .383-.126l.042.002 1.583.174c.075.009.15.013.225.013.263-.002.55-.05.827-.248a1.109 1.109 0 0 0 .456-.91c-.006-.38-.152-.661-.33-.913l-.941-1.298a.706.706 0 0 1-.107-.397.706.706 0 0 1 .107-.398l.958-1.32-.017.022c.178-.251.324-.533.33-.913a1.13 1.13 0 0 0-.116-.505 1.126 1.126 0 0 0-.549-.527 1.476 1Line truncated

After

Width:  |  Height:  |  Size: 5.1 KiB

+4
View File
@@ -41,6 +41,10 @@ path = "common.rs"
# Examples are manually keyed in
# ================================
[[example]]
path = "example_app.rs"
name = "example_app"
# [[example]]
# path = "hello_web.rs"
# name = "hello_web"
+48
View File
@@ -0,0 +1,48 @@
//! Example App
//! --------------
//!
//! This example shows how to use the cross-platform abilities of dioxus to generate everything a dioxus app might need.
//! All of your apps will look like this.
//!
//! cargo run --features dioxus/static
fn main() {
// DioxusApp::new(launch)
}
mod launches {
#[cfg(feature = "wasm")]
fn launch() {
// launch the wasm_rednerer
}
#[cfg(feature = "static")]
fn launch() {
// render the tree to text
}
// #[cfg(features = "server")]
// fn launch() {
// // launch the app
// }
// #[cfg(features = "liveview")]
// fn launch() {
// // launch the app
// }
// #[cfg(features = "desktop")]
// fn launch() {
// // launch the app
// }
// #[cfg(features = "android")]
// fn launch() {
// // launch a simulator in dev mode
// }
// #[cfg(features = "ios")]
// fn launch() {
// // launch a simulator in dev mode
// }
}