logo.rs
| 1 | //! The dovenest mark, a dove in a woven nest. Same artwork as |
| 2 | //! `web/favicon.svg`; keep the two in sync. |
| 3 | |
| 4 | use leptos::prelude::*; |
| 5 | |
| 6 | #[component] |
| 7 | pub fn Logo(#[prop(optional)] class: Option<String>) -> impl IntoView { |
| 8 | let mut cls = String::from("logo"); |
| 9 | if let Some(extra) = class { |
| 10 | cls.push(' '); |
| 11 | cls.push_str(&extra); |
| 12 | } |
| 13 | view! { |
| 14 | <svg class=cls viewBox="0 0 32 32" aria-hidden="true"> |
| 15 | <rect width="32" height="32" fill="#2563eb"/> |
| 16 | <path |
| 17 | d="M4 12.5l6 3.2c1.2-2.6 3.6-4 6.5-4 1.2 0 2.2.2 3 .6.4-2.2 2.1-3.6 4-3.6 1.6 0 2.8.9 3.3 2.2l2.2.9-2.1.7c-.2 1.2-.8 2.3-1.8 3.1 0 3.6-3.2 6.4-8 6.4H11c-3 0-5.5-2.9-7-9.5z" |
| 18 | fill="#fff" |
| 19 | /> |
| 20 | <path d="M11.5 16.5c3 2.2 7 2.3 10 .2" fill="none" stroke="#2563eb" stroke-width="1.4"/> |
| 21 | <circle cx="24" cy="11.2" r=".9" fill="#2563eb"/> |
| 22 | <path d="M3 20h26c-1 4.8-6.2 7.6-13 7.6S4 24.8 3 20z" fill="#fff"/> |
| 23 | <path |
| 24 | d="M6 22.9l3.4 2.3 3.4-2.3 3.2 2.3 3.2-2.3 3.4 2.3 3.4-2.3" |
| 25 | fill="none" |
| 26 | stroke="#2563eb" |
| 27 | stroke-width="1.5" |
| 28 | /> |
| 29 | </svg> |
| 30 | } |
| 31 | } |
| 32 |