initial import
this is what's currently published on https://nakamochi.io/ at the time of this commit.master
@ -0,0 +1,2 @@
|
||||
public
|
||||
output
|
@ -0,0 +1,11 @@
|
||||
Copyright (c) 2023 qeles AG
|
||||
|
||||
This website uses parts of Pico CSS framework (https://picocss.com) distributed
|
||||
according to the MIT license.
|
||||
|
||||
Courier Prime monospace fonts (https://quoteunquoteapps.com/courierprime/) are
|
||||
designed by Alan Dague-Greene and released under OFL license.
|
||||
|
||||
The rest of the work, except where otherwise noted, is released under
|
||||
Creative Commons Attribution-ShareAlike 4.0 International License.
|
||||
To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.
|
@ -0,0 +1,41 @@
|
||||
# https://www.getzola.org/documentation/getting-started/configuration/
|
||||
base_url = "https://nakamochi.io"
|
||||
# default page meta title and <title/> suffix
|
||||
title = "nakamochi"
|
||||
# appears in all pages metadata
|
||||
description = "a simple to use bitcoin and lightning node for anyone and everyone"
|
||||
default_language = "en"
|
||||
|
||||
output_dir = "output"
|
||||
compile_sass = true
|
||||
build_search_index = false
|
||||
ignored_content = []
|
||||
|
||||
[markdown]
|
||||
highlight_code = true
|
||||
external_links_target_blank = false
|
||||
external_links_no_follow = true
|
||||
external_links_no_referrer = true
|
||||
|
||||
[link_checker]
|
||||
skip_prefixes = []
|
||||
skip_anchor_prefixes = []
|
||||
internal_level = "error"
|
||||
external_level = "error"
|
||||
|
||||
# custom variables accessible at config.extra in templates
|
||||
[extra]
|
||||
sitenav = [
|
||||
{path = "@/source.md", en = "sources", it = "sorgenti"},
|
||||
{path = "@/about.md", en = "about", it = "about"},
|
||||
]
|
||||
|
||||
[translations]
|
||||
not_found = "not found"
|
||||
|
||||
# language translations
|
||||
[languages.de]
|
||||
title = "nakamochi"
|
||||
|
||||
[languages.it]
|
||||
title = "nakamochi"
|
@ -0,0 +1,127 @@
|
||||
---
|
||||
template: "home.html"
|
||||
title: "nakamochi"
|
||||
extra:
|
||||
landing: true
|
||||
tagline: "a device for complete privacy and financial independence leveraging bitcoin and lightning networks"
|
||||
---
|
||||
## Motivation
|
||||
|
||||
Nowadays, there are many web and mobile apps providing bitcoin and lightning wallets
|
||||
functionality. They are mostly known as [SPV], Simplified Payment Verification clients
|
||||
which connect to a [full node]. Likewise, [hardware wallets] also typically require
|
||||
a companion app which in turn connects to a full node run by someone else.
|
||||
|
||||
Historically, bitcoin - and especially lightning - nodes have been run by
|
||||
organizations and people with knowledge in cryptography, system networks and
|
||||
software engineering.
|
||||
|
||||
Nakamochi takes on the challenge to make such nodes usable to a broader audience.
|
||||
Just like a coffee maker or a microwave oven, we believe anyone should be able
|
||||
to run a node at home and reach 100% privacy and independence. Running one's own
|
||||
full node also helps the whole Bitcoin network to remain decentralized.
|
||||
|
||||
[SPV]: https://developer.bitcoin.org/devguide/operating_modes.html#simplified-payment-verification-spv
|
||||
[full node]: https://bitcoin.org/en/full-node#what-is-a-full-node
|
||||
[hardware wallets]: https://bitcoin.org/en/wallets/hardware/
|
||||
|
||||
## The name
|
||||
|
||||
The name "nakamochi" comes from putting together [Satoshi Nakamoto], the founder
|
||||
of Bitcoin, and a
|
||||
[famous Japanese handheld digital pet](https://en.wikipedia.org/wiki/Tamagotchi)
|
||||
to emphasize personal, self-hosting.
|
||||
|
||||
[Satoshi Nakamoto]: https://en.bitcoin.it/wiki/Satoshi_Nakamoto
|
||||
|
||||
## Editions
|
||||
|
||||
The following editions are listed in an order of increasing ease of use.
|
||||
It is always a trade-off between the costs and effort oneself has to put
|
||||
in and the trust into the manufacturing companies and their supply chain.
|
||||
|
||||
<div class="text-media-card">
|
||||
<div class="card-text">
|
||||
|
||||
All the editions have something in common: the touch screen user interface and
|
||||
automated system updates. Even at a high level of distrust one can still benefit
|
||||
from the open source software and, equally important, system updates.
|
||||
|
||||
</div>
|
||||
<figure class="card-media screenshot">
|
||||
<img src="/assets/ngui-screenshot.png" alt="nakamochi touchscreen GUI screenshot">
|
||||
<figcaption>nakamochi touchscreen GUI screenshot</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
|
||||
### DIY
|
||||
|
||||
<div class="text-media-card">
|
||||
<div class="card-text">
|
||||
|
||||
The [DIY version](https://git.qcode.ch/nakamochi/3d#diy-version-fff) is designed using
|
||||
only off-the-shelf hardware components and 3D printed parts. It is a running system
|
||||
and you can source and even replace the hardware. Everything is open source and freely
|
||||
accessible for everyone. You can of course buy the whole kit from us to make things easier.
|
||||
Enjoy checking out the source code, CAD designs and schematics. You can tinker here, just
|
||||
be sure that the device still works after that.
|
||||
|
||||
</div>
|
||||
<figure class="card-media bogen">
|
||||
<img src="/assets/diy-assembly.png" alt="DIY version assembly">
|
||||
<figcaption>DIY version assembly</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
|
||||
### DIY+
|
||||
|
||||
<div class="text-media-card">
|
||||
<div class="card-text">
|
||||
|
||||
If you want to profit from some product engineering but still want to use
|
||||
off-the-shelf components, we recommend the DIY+ version. As the name tells,
|
||||
the "plus" in this version improves some characteristics of the device.
|
||||
|
||||
For example, the previous DIY version may suffer from overheating in certain
|
||||
conditions. This edition improves heat dissipation while keeping the device
|
||||
completely silent, fanless.
|
||||
|
||||
However, this edition still requires technical knowledge in CNC machining
|
||||
and 3D printing.
|
||||
|
||||
</div>
|
||||
<div class="card-media">
|
||||
<figure class="bogen">
|
||||
<img src="/assets/diyplus-assembly.png" alt="DIY+ version assembly">
|
||||
<figcaption>DIY+ version assembly</figcaption>
|
||||
</figure>
|
||||
<figure>
|
||||
<img src="/assets/ir1166.jpg" alt="DIY+ heat dissipation">
|
||||
<figcaption>DIY+ heat dissipation during initial block download</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
### PRO
|
||||
|
||||
<div class="text-media-card">
|
||||
<div class="card-text">
|
||||
|
||||
If you are mostly interested in the freedom of the Bitcoin Standard, helping
|
||||
the Bitcon network to remain decentralized, and want a device that just works
|
||||
without a DIY-like technical knowledge in hardware design and software engineering,
|
||||
the PRO edition is the one for you.
|
||||
|
||||
We are taking all the knowledge and learnings from the DIY versions and designing
|
||||
most of the parts ourselves here: from mechanical parts and enclosure to PCBs for
|
||||
an optimal device solution where hardware and software work very well together.
|
||||
All of the work is open source.
|
||||
|
||||
The PRO edition is still work-in-progress.
|
||||
|
||||
</div>
|
||||
<figure class="card-media bogen">
|
||||
<img src="/assets/pro-question-mark.png" alt="PRO version in progress">
|
||||
<figcaption>PRO version in progress</figcaption>
|
||||
</figure>
|
||||
</div>
|
@ -0,0 +1,21 @@
|
||||
---
|
||||
title: "who we are"
|
||||
---
|
||||
|
||||
<figure class="qlogo"><img src="/assets/qeles-logo.png" alt="qeles AG logo"></figure>
|
||||
|
||||
We as [qeles AG] have many years of experience in manufacturing PCBs and
|
||||
hardware assembly. We want to use this knowledge to start a bottom up
|
||||
approach to a concept that has mainly moved in the software world. Designing
|
||||
and manufacturing a secure device, starting at the hardware level, allows
|
||||
us to keep a large part of the supply chain and the manufacturing as secure
|
||||
as possible in an open source device.
|
||||
|
||||
Knowing the manufacturing processes, bringing a portfolio of products to the
|
||||
market to cater for all freedom and contribution levels and assuring security,
|
||||
we believe we can offer a product for many participants.
|
||||
|
||||
We value privacy and security. We will use our knowledge in this field to help
|
||||
people in achieving complete financial sovereignty and independence.
|
||||
|
||||
[qeles AG]: https://qeles.ch/
|
@ -0,0 +1,56 @@
|
||||
---
|
||||
title: "design and code sources"
|
||||
---
|
||||
|
||||
All the designs and software source code are located on our self-hosted
|
||||
git repositories at [git.qcode.ch/nakamochi/](https://git.qcode.ch/nakamochi/).
|
||||
We also mirror them on GitHub at [github.com/nakamochi/](https://github.com/nakamochi/)
|
||||
for redundancy, broader awareness and to ease contributions.
|
||||
|
||||
Our self-hosted git repositories accept issues and code changes only from
|
||||
existing accounts, and creating new accounts feature is disabled: we'd like
|
||||
to avoid potential abuse. Nonetheless, we will happily take in any suggestions
|
||||
on the GitHub mirrors.
|
||||
|
||||
The following are the main repositories where the development is done.
|
||||
|
||||
## NDG
|
||||
|
||||
Nakamochi daemon and GUI, the main software part. It is composed of two layers:
|
||||
a background daemon and a touch-capable GUI interface.
|
||||
|
||||
- repository: [git.qcode.ch/nakamochi/ndg](https://git.qcode.ch/nakamochi/ndg)
|
||||
- mirror: [github.com/nakamochi/ndg](https://github.com/nakamochi/ndg)
|
||||
|
||||
{{ screenshot(src="/assets/ngui-screenshot.png", caption="nakamochi touchscreen GUI screenshot") }}
|
||||
|
||||
## 3D
|
||||
|
||||
CAD designs of enclosures and other related mechanical parts.
|
||||
|
||||
- repository: [git.qcode.ch/nakamochi/3d](https://git.qcode.ch/nakamochi/3d)
|
||||
- mirror: [github.com/nakamochi/3d](https://github.com/nakamochi/3d)
|
||||
|
||||
{{ screenshot(src="/assets/git-3d-screenshot.png", caption="nakamochi touchscreen GUI screenshot") }}
|
||||
|
||||
## sysupdates
|
||||
|
||||
Operating system tweaks and automated updates. All nodes fetch and install updates
|
||||
from this repository.
|
||||
|
||||
- repository: [git.qcode.ch/nakamochi/sysupdates](https://git.qcode.ch/nakamochi/sysupdates)
|
||||
- mirror: [github.com/nakamochi/sysupdates](https://github.com/nakamochi/sysupdates)
|
||||
|
||||
## PCB
|
||||
|
||||
<div class="text-media-card">
|
||||
<div class="card-text">
|
||||
|
||||
PRO version custom board hardware designs. This is still upcoming. We will add links here
|
||||
as soon as the repository is live.
|
||||
|
||||
</div>
|
||||
<figure class="card-media">
|
||||
<img src="/assets/pro-question-mark.png" alt="PRO version in progress">
|
||||
</figure>
|
||||
</div>
|
@ -0,0 +1,65 @@
|
||||
// navy-grey
|
||||
$grey-hue: 205 !default;
|
||||
$grey-50: hsl($grey-hue, 20%, 94%) !default;
|
||||
$grey-100: hsl($grey-hue, 18%, 86%) !default;
|
||||
$grey-200: hsl($grey-hue, 16%, 77%) !default;
|
||||
$grey-300: hsl($grey-hue, 14%, 68%) !default;
|
||||
$grey-400: hsl($grey-hue, 12%, 59%) !default;
|
||||
$grey-500: hsl($grey-hue, 10%, 50%) !default;
|
||||
$grey-600: hsl($grey-hue, 15%, 41%) !default;
|
||||
$grey-700: hsl($grey-hue, 20%, 32%) !default;
|
||||
$grey-800: hsl($grey-hue, 25%, 23%) !default;
|
||||
$grey-900: hsl($grey-hue, 30%, 15%) !default;
|
||||
|
||||
// light blue
|
||||
$primary-hue: 195 !default;
|
||||
$primary-50: hsl($primary-hue, 90%, 94%) !default;
|
||||
$primary-100: hsl($primary-hue, 88%, 86%) !default;
|
||||
$primary-200: hsl($primary-hue, 86%, 77%) !default;
|
||||
$primary-300: hsl($primary-hue, 84%, 68%) !default;
|
||||
$primary-400: hsl($primary-hue, 82%, 59%) !default;
|
||||
$primary-500: hsl($primary-hue, 80%, 50%) !default;
|
||||
$primary-600: hsl($primary-hue, 85%, 41%) !default;
|
||||
$primary-700: hsl($primary-hue, 90%, 32%) !default;
|
||||
$primary-800: hsl($primary-hue, 95%, 23%) !default;
|
||||
$primary-900: hsl($primary-hue, 100%, 15%) !default;
|
||||
|
||||
// black & white
|
||||
$black: #000 !default;
|
||||
$white: #fff !default;
|
||||
|
||||
// amber
|
||||
$amber-50: #fff8e1 !default;
|
||||
$amber-100: #ffecb3 !default;
|
||||
$amber-200: #ffe082 !default;
|
||||
$amber-300: #ffd54f !default;
|
||||
$amber-400: #ffca28 !default;
|
||||
$amber-500: #ffc107 !default;
|
||||
$amber-600: #ffb300 !default;
|
||||
$amber-700: #ffa000 !default;
|
||||
$amber-800: #ff8f00 !default;
|
||||
$amber-900: #ff6f00 !default;
|
||||
|
||||
// green
|
||||
$green-50: #e8f5e9 !default;
|
||||
$green-100: #c8e6c9 !default;
|
||||
$green-200: #a5d6a7 !default;
|
||||
$green-300: #81c784 !default;
|
||||
$green-400: #66bb6a !default;
|
||||
$green-500: #4caf50 !default;
|
||||
$green-600: #43a047 !default;
|
||||
$green-700: #388e3c !default;
|
||||
$green-800: #2e7d32 !default;
|
||||
$green-900: #1b5e20 !default;
|
||||
|
||||
// red
|
||||
$red-50: #ffebee !default;
|
||||
$red-100: #ffcdd2 !default;
|
||||
$red-200: #ef9a9a !default;
|
||||
$red-300: #e57373 !default;
|
||||
$red-400: #ef5350 !default;
|
||||
$red-500: #f44336 !default;
|
||||
$red-600: #e53935 !default;
|
||||
$red-700: #d32f2f !default;
|
||||
$red-800: #c62828 !default;
|
||||
$red-900: #b71c1c !default;
|
@ -0,0 +1,188 @@
|
||||
@import "_pico/variables"; // for $breakpoints
|
||||
@import "colors";
|
||||
|
||||
@font-face {
|
||||
font-family: "courier prime code";
|
||||
src: url("/assets/courierprimecode.woff2") format('woff2'),
|
||||
url("/assets/courierprimecode.woff") format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@media (min-width: map-get($breakpoints, "md")) and (prefers-color-scheme: light) {
|
||||
.bg-landing {
|
||||
background-image: url("/assets/bg-landing-light.svg");
|
||||
background-size: contain;
|
||||
background-position: top;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: map-get($breakpoints, "md")) and (prefers-color-scheme: dark) {
|
||||
.bg-landing {
|
||||
background-image: url("/assets/bg-landing-dark.svg");
|
||||
background-size: contain;
|
||||
background-position: top;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************
|
||||
* language translation picker
|
||||
*/
|
||||
|
||||
.langpicker {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
ul.translist {
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
ul.translist > li {
|
||||
font-size: 0.75em;
|
||||
color: var(--muted-color);
|
||||
display: inline-block;
|
||||
padding: var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal);
|
||||
}
|
||||
|
||||
/*************************
|
||||
* main logo in the header
|
||||
*/
|
||||
|
||||
.logonav {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
ul.logonav > li {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.logo img {
|
||||
width: 64px;
|
||||
min-width: 64px;
|
||||
}
|
||||
.logo.landing img {
|
||||
width: 128px;
|
||||
min-width: 128px;
|
||||
}
|
||||
|
||||
@media (max-width: map-get($breakpoints, "sm")) {
|
||||
.logo-name {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.mainnav {
|
||||
align-items: flex-start;
|
||||
align-content: flex-start;
|
||||
flex-flow: row wrap;
|
||||
column-gap: 5px;
|
||||
}
|
||||
|
||||
ul.mainnav > li {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
/* other large-sized logos in the <main> content */
|
||||
@media (min-width: map-get($breakpoints, "md")) {
|
||||
.qlogo {
|
||||
max-width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************
|
||||
* random styles used anywhere and everywhere
|
||||
*/
|
||||
.top {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
/* top corners rounded; typically applied to images to resemble a bit
|
||||
* nakamochi enclosure shape */
|
||||
.bogen {
|
||||
border-radius: 10px 10px 0 0;
|
||||
}
|
||||
|
||||
/* useful for notes in footer */
|
||||
.muted {
|
||||
color: var(--muted-color);
|
||||
}
|
||||
|
||||
figure.screenshot > img, img.screenshot {
|
||||
border: 1px solid $grey-700;
|
||||
}
|
||||
|
||||
h1 {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* media cards have text and images or videos on a side, left or right.
|
||||
* on small screens, the flow is typically in a column.
|
||||
* on larger screens, media is displayed on a side along the text.
|
||||
*/
|
||||
|
||||
/* text first, media on the right or the opposite */
|
||||
.text-media-card {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
/* place media captions closer and smaller than usual */
|
||||
.card-media figcaption {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
/* align in-text header with the image part of the card */
|
||||
.card-text h2:first-child,
|
||||
.card-text h3:first-child,
|
||||
.card-text h4:first-child {
|
||||
line-height: 1;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
/* breakpoint at which media is placed on a side along the text. */
|
||||
@media (min-width: map-get($breakpoints, "md")) {
|
||||
.text-media-card {
|
||||
flex-flow: row nowrap;
|
||||
column-gap: 10px;
|
||||
}
|
||||
.text-media-card > .card-text {
|
||||
flex-grow: 1
|
||||
}
|
||||
.text-media-card > .card-media {
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: map-get($breakpoints, "lg")) {
|
||||
.text-media-card {
|
||||
column-gap: 20px;
|
||||
}
|
||||
.text-media-card > .card-media {
|
||||
width: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: map-get($breakpoints, "xl")) {
|
||||
.text-media-card > .card-media {
|
||||
width: 350px;
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************
|
||||
* footer and other end-of-page styles
|
||||
*/
|
||||
footer {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
footer nav [role=icon] {
|
||||
width: 32px;
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
@import "_pico/variables";
|
||||
@import "colors";
|
||||
|
||||
// commons styles
|
||||
@import "picostyle";
|
||||
|
||||
// light theme by default; can be forced with data-theme="light"
|
||||
@import "picolight";
|
||||
|
||||
// dark theme; automatically enabled if user has dark mode enabled
|
||||
@import "picodark";
|
||||
@media only screen and (prefers-color-scheme: dark) {
|
||||
:root:not([data-theme]) {
|
||||
@include dark;
|
||||
}
|
||||
}
|
||||
// dark theme forced with with data-theme="dark"
|
||||
[data-theme="dark"] {
|
||||
@include dark;
|
||||
}
|
||||
|
||||
// accent-color
|
||||
progress,
|
||||
[type="checkbox"],
|
||||
[type="radio"],
|
||||
[type="range"] {
|
||||
accent-color: var(--primary);
|
||||
}
|
||||
|
||||
@import "_pico/layout/document"; // html
|
||||
@import "_pico/layout/sectioning"; // body, header, main, footer
|
||||
@import "_pico/layout/container"; // .container, .container-fluid
|
||||
@import "_pico/layout/section"; // section
|
||||
@import "_pico/layout/grid"; // .grid
|
||||
@import "_pico/layout/scroller"; // figure
|
||||
|
||||
@import "_pico/content/typography"; // a, headings, p, ul, blockquote, ...
|
||||
@import "_pico/content/embedded"; // audio, canvas, iframe, img, svg, video
|
||||
@import "_pico/content/button"; // button, a[role=button], type=button, type=submit ...
|
||||
//@import "_pico/content/form"; // input, select, textarea, label, fieldset, legend
|
||||
//@import "_pico/content/form-checkbox-radio"; // type=checkbox, type=radio, role=switch
|
||||
//@import "_pico/content/form-alt-input-types"; // type=color, type=date, type=file, type=search, ...
|
||||
@import "_pico/content/table"; // table, tr, td, ...
|
||||
@import "_pico/content/code"; // pre, code, ...
|
||||
@import "_pico/content/miscs"; // hr, template, [hidden], dialog, canvas
|
||||
|
||||
@import "_pico/components/accordion"; // details, summary
|
||||
@import "_pico/components/card"; // article
|
||||
//@import "_pico/components/modal"; // dialog
|
||||
@import "_pico/components/nav"; // nav
|
||||
//@import "_pico/components/progress"; // progress
|
||||
//@import "_pico/components/dropdown"; // dropdown
|
||||
|
||||
@import "_pico/utilities/loading"; // aria-busy=true
|
||||
@import "_pico/utilities/tooltip"; // data-tooltip
|
||||
@import "_pico/utilities/accessibility"; // -ms-touch-action, aria-*
|
||||
@import "_pico/utilities/reduce-motion"; // prefers-reduced-motion
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019-2023 Pico
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -0,0 +1,4 @@
|
||||
// Output color in RGB format
|
||||
@function to-rgb($color) {
|
||||
@return unquote("rgb(#{red($color)}, #{green($color)}, #{blue($color)})");
|
||||
}
|
@ -0,0 +1,116 @@
|
||||
/**
|
||||
* Accordion (<details>)
|
||||
*/
|
||||
|
||||
details {
|
||||
display: block;
|
||||
margin-bottom: var(--spacing);
|
||||
padding-bottom: var(--spacing);
|
||||
border-bottom: var(--border-width) solid var(--accordion-border-color);
|
||||
|
||||
summary {
|
||||
line-height: 1rem;
|
||||
list-style-type: none;
|
||||
cursor: pointer;
|
||||
|
||||
&:not([role]) {
|
||||
color: var(--accordion-close-summary-color);
|
||||
}
|
||||
|
||||
@if $enable-transitions {
|
||||
transition: color var(--transition);
|
||||
}
|
||||
|
||||
// Reset marker
|
||||
&::-webkit-details-marker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&::marker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&::-moz-list-bullet {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
// Marker
|
||||
&::after {
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-inline-start: calc(var(--spacing, 1rem) * 0.5);
|
||||
float: right;
|
||||
transform: rotate(-90deg);
|
||||
background-image: var(--icon-chevron);
|
||||
background-position: right center;
|
||||
background-size: 1rem auto;
|
||||
background-repeat: no-repeat;
|
||||
content: "";
|
||||
|
||||
@if $enable-transitions {
|
||||
transition: transform var(--transition);
|
||||
}
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
|
||||
&:not([role="button"]) {
|
||||
color: var(--accordion-active-summary-color);
|
||||
}
|
||||
}
|
||||
|
||||
// Type button
|
||||
&[role="button"] {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
|
||||
// Marker
|
||||
&::after {
|
||||
height: calc(1rem * var(--line-height, 1.5));
|
||||
background-image: var(--icon-chevron-button);
|
||||
}
|
||||
|
||||
@if $enable-classes {
|
||||
// .contrast
|
||||
&:not(.outline).contrast {
|
||||
// Marker
|
||||
&::after {
|
||||
background-image: var(--icon-chevron-button-inverse);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Open
|
||||
&[open] {
|
||||
> summary {
|
||||
margin-bottom: calc(var(--spacing));
|
||||
|
||||
&:not([role]) {
|
||||
&:not(:focus) {
|
||||
color: var(--accordion-open-summary-color);
|
||||
}
|
||||
}
|
||||
|
||||
&::after {
|
||||
transform: rotate(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[dir="rtl"] {
|
||||
details {
|
||||
summary {
|
||||
text-align: right;
|
||||
|
||||
&::after {
|
||||
float: left;
|
||||
background-position: left center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Card (<article>)
|
||||
*/
|
||||
|
||||
article {
|
||||
margin: var(--block-spacing-vertical) 0;
|
||||
padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
|
||||
border-radius: var(--border-radius);
|
||||
background: var(--card-background-color);
|
||||
box-shadow: var(--card-box-shadow);
|
||||
|
||||
> header,
|
||||
> footer {
|
||||
margin-right: calc(var(--block-spacing-horizontal) * -1);
|
||||
margin-left: calc(var(--block-spacing-horizontal) * -1);
|
||||
padding: calc(var(--block-spacing-vertical) * 0.66)
|
||||
var(--block-spacing-horizontal);
|
||||
background-color: var(--card-sectionning-background-color);
|
||||
}
|
||||
|
||||
> header {
|
||||
margin-top: calc(var(--block-spacing-vertical) * -1);
|
||||
margin-bottom: var(--block-spacing-vertical);
|
||||
border-bottom: var(--border-width) solid var(--card-border-color);
|
||||
border-top-right-radius: var(--border-radius);
|
||||
border-top-left-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
> footer {
|
||||
margin-top: var(--block-spacing-vertical);
|
||||
margin-bottom: calc(var(--block-spacing-vertical) * -1);
|
||||
border-top: var(--border-width) solid var(--card-border-color);
|
||||
border-bottom-right-radius: var(--border-radius);
|
||||
border-bottom-left-radius: var(--border-radius);
|
||||
}
|
||||
}
|
@ -0,0 +1,213 @@
|
||||
/**
|
||||
* Dropdown ([role="list"])
|
||||
*/
|
||||
|
||||
// Menu
|
||||
details[role="list"],
|
||||
li[role="list"] {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
details[role="list"] summary + ul,
|
||||
li[role="list"] > ul {
|
||||
display: flex;
|
||||
z-index: 99;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
right: 0;
|
||||
left: 0;
|
||||
flex-direction: column;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: var(--border-width) solid var(--dropdown-border-color);
|
||||
border-radius: var(--border-radius);
|
||||
border-top-right-radius: 0;
|
||||
border-top-left-radius: 0;
|
||||
background-color: var(--dropdown-background-color);
|
||||
box-shadow: var(--card-box-shadow);
|
||||
color: var(--dropdown-color);
|
||||
white-space: nowrap;
|
||||
|
||||
li {
|
||||
width: 100%;
|
||||
margin-bottom: 0;
|
||||
padding: calc(var(--form-element-spacing-vertical) * 0.5)
|
||||
var(--form-element-spacing-horizontal);
|
||||
list-style: none;
|
||||
|
||||
&:first-of-type {
|
||||
margin-top: calc(var(--form-element-spacing-vertical) * 0.5);
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
margin-bottom: calc(var(--form-element-spacing-vertical) * 0.5);
|
||||
}
|
||||
|
||||
a {
|
||||
display: block;
|
||||
margin: calc(var(--form-element-spacing-vertical) * -0.5)
|
||||
calc(var(--form-element-spacing-horizontal) * -1);
|
||||
padding: calc(var(--form-element-spacing-vertical) * 0.5)
|
||||
var(--form-element-spacing-horizontal);
|
||||
overflow: hidden;
|
||||
color: var(--dropdown-color);
|
||||
text-decoration: none;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--dropdown-hover-background-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Marker
|
||||
details[role="list"] summary,
|
||||
li[role="list"] > a {
|
||||
&::after {
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: calc(1rem * var(--line-height, 1.5));
|
||||
margin-inline-start: 0.5rem;
|
||||
float: right;
|
||||
transform: rotate(0deg);
|
||||
background-position: right center;
|
||||
background-size: 1rem auto;
|
||||
background-repeat: no-repeat;
|
||||
content: "";
|
||||
}
|
||||
}
|
||||
|
||||
// Global dropdown only
|
||||
details[role="list"] {
|
||||
padding: 0;
|
||||
border-bottom: none;
|
||||
|
||||
// Style <summary> as <select>
|
||||
summary {
|
||||
margin-bottom: 0;
|
||||
|
||||
&:not([role]) {
|
||||
height: calc(
|
||||
1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 +
|
||||
var(--border-width) * 2
|
||||
);
|
||||
padding: var(--form-element-spacing-vertical)
|
||||
var(--form-element-spacing-horizontal);
|
||||
border: var(--border-width) solid var(--form-element-border-color);
|
||||
border-radius: var(--border-radius);
|
||||
background-color: var(--form-element-background-color);
|
||||
color: var(--form-element-placeholder-color);
|
||||
line-height: inherit;
|
||||
cursor: pointer;
|
||||
|
||||
@if $enable-transitions {
|
||||
transition: background-color var(--transition),
|
||||
border-color var(--transition), color var(--transition),
|
||||
box-shadow var(--transition);
|
||||
}
|
||||
|
||||
&:active,
|
||||
&:focus {
|
||||
border-color: var(--form-element-active-border-color);
|
||||
background-color: var(--form-element-active-background-color);
|
||||
}
|
||||
|
||||
&:focus {
|
||||
box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Close for details[role="list"]
|
||||
&[open] summary {
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
|
||||
&::before {
|
||||
display: block;
|
||||
z-index: 1;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background: none;
|
||||
content: "";
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// All Dropdowns inside <nav>
|
||||
nav details[role="list"] summary,
|
||||
nav li[role="list"] a {
|
||||
display: flex;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
nav details[role="list"] summary + ul,
|
||||
nav li[role="list"] > ul {
|
||||
min-width: fit-content;
|
||||
border-radius: var(--border-radius);
|
||||
|
||||
li a {
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Dropdowns inside <nav> as nested <details>
|
||||
nav details[role="list"] {
|
||||
summary,
|
||||
summary:not([role]) {
|
||||
height: auto;
|
||||
padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
|
||||
}
|
||||
|
||||
&[open] summary {
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
summary + ul {
|
||||
margin-top: var(--outline-width);
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
|
||||
summary[role="link"] {
|
||||
margin-bottom: calc(var(--nav-link-spacing-vertical) * -1);
|
||||
line-height: var(--line-height);
|
||||
|
||||
+ ul {
|
||||
margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
|
||||
margin-inline-start: calc(var(--nav-link-spacing-horizontal) * -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dropdowns inside a <nav> without using <details>
|
||||
li[role="list"] {
|
||||
// Open on hover (for mobile)
|
||||
// or on active/focus (for keyboard navigation)
|
||||
&:hover > ul,
|
||||
a:active ~ ul,
|
||||
a:focus ~ ul {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
> ul {
|
||||
display: none;
|
||||
margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
|
||||
margin-inline-start: calc(
|
||||
var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal)
|
||||
);
|
||||
}
|
||||
|
||||
> a::after {
|
||||
background-image: var(--icon-chevron);
|
||||
}
|
||||
}
|
||||
|
||||
label > details[role="list"] {
|
||||
margin-top: calc(var(--spacing) * .25);
|
||||
margin-bottom: var(--spacing);
|
||||
}
|
@ -0,0 +1,169 @@
|
||||
/**
|
||||
* Modal (<dialog>)
|
||||
*/
|
||||
|
||||
:root {
|
||||
--scrollbar-width: 0px;
|
||||
}
|
||||
|
||||
dialog {
|
||||
display: flex;
|
||||
z-index: 999;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: inherit;
|
||||
min-width: 100%;
|
||||
height: inherit;
|
||||
min-height: 100%;
|
||||
padding: var(--spacing);
|
||||
border: 0;
|
||||
backdrop-filter: var(--modal-overlay-backdrop-filter);
|
||||
background-color: var(--modal-overlay-background-color);
|
||||
color: var(--color);
|
||||
|
||||
// Content
|
||||
article {
|
||||
max-height: calc(100vh - var(--spacing) * 2);
|
||||
overflow: auto;
|
||||
|
||||
@if map-get($breakpoints, "sm") {
|
||||
@media (min-width: map-get($breakpoints, "sm")) {
|
||||
max-width: map-get($viewports, "sm");
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "md") {
|
||||
@media (min-width: map-get($breakpoints, "md")) {
|
||||
max-width: map-get($viewports, "md");
|
||||
}
|
||||
}
|
||||
|
||||
> header,
|
||||
> footer {
|
||||
padding: calc(var(--block-spacing-vertical) * 0.5)
|
||||
var(--block-spacing-horizontal);
|
||||
}
|
||||
|
||||
> header {
|
||||
.close {
|
||||
margin: 0;
|
||||
margin-left: var(--spacing);
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
> footer {
|
||||
text-align: right;
|
||||
|
||||
[role="button"] {
|
||||
margin-bottom: 0;
|
||||
|
||||
&:not(:first-of-type) {
|
||||
margin-left: calc(var(--spacing) * 0.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
&:last-of-type {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Close icon
|
||||
@if $enable-classes {
|
||||
.close {
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-top: calc(var(--block-spacing-vertical) * -0.5);
|
||||
margin-bottom: var(--typography-spacing-vertical);
|
||||
margin-left: auto;
|
||||
background-image: var(--icon-close);
|
||||
background-position: center;
|
||||
background-size: auto 1rem;
|
||||
background-repeat: no-repeat;
|
||||
opacity: 0.5;
|
||||
|
||||
@if $enable-transitions {
|
||||
transition: opacity var(--transition);
|
||||
}
|
||||
|
||||
&:is([aria-current], :hover, :active, :focus) {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Closed state
|
||||
&:not([open]),
|
||||
&[open="false"] {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Utilities
|
||||
@if $enable-classes {
|
||||
.modal-is-open {
|
||||
padding-right: var(--scrollbar-width, 0px);
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
touch-action: none;
|
||||
|
||||
dialog {
|
||||
pointer-events: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Animations
|
||||
@if ($enable-classes and $enable-transitions) {
|
||||
$animation-duration: 0.2s;
|
||||
|
||||
:where(.modal-is-opening, .modal-is-closing) {
|
||||
dialog,
|
||||
dialog > article {
|
||||
animation-duration: $animation-duration;
|
||||
animation-timing-function: ease-in-out;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
dialog {
|
||||
animation-duration: ($animation-duration * 4);
|
||||
animation-name: modal-overlay ;
|
||||
|
||||
> article {
|
||||
animation-delay: $animation-duration;
|
||||
animation-name: modal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.modal-is-closing {
|
||||
dialog,
|
||||
dialog > article {
|
||||
animation-delay: 0s;
|
||||
animation-direction: reverse;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes modal-overlay {
|
||||
from {
|
||||
backdrop-filter: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes modal {
|
||||
from {
|
||||
transform: translateY(-100%);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,272 @@
|
||||
/**
|
||||
* Form elements
|
||||
* Alternatives input types (Not Checkboxes & Radios)
|
||||
*/
|
||||
|
||||
// Color
|
||||
[type="color"] {
|
||||
// Wrapper
|
||||
@mixin color-wrapper {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
&::-webkit-color-swatch-wrapper {
|
||||
@include color-wrapper;
|
||||
}
|
||||
|
||||
&::-moz-focus-inner {
|
||||
@include color-wrapper;
|
||||
}
|
||||
|
||||
// Swatch
|
||||
@mixin color-swatch {
|
||||
border: 0;
|
||||
border-radius: calc(var(--border-radius) * 0.5);
|
||||
}
|
||||
|
||||
&::-webkit-color-swatch {
|
||||
@include color-swatch;
|
||||
}
|
||||
|
||||
&::-moz-color-swatch {
|
||||
@include color-swatch;
|
||||
}
|
||||
}
|
||||
|
||||
// Date & Time
|
||||
// :not() are needed to add Specificity and avoid !important on padding
|
||||
input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]) {
|
||||
&:is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
|
||||
--icon-position: 0.75rem;
|
||||
--icon-width: 1rem;
|
||||
padding-right: calc(var(--icon-width) + var(--icon-position));
|
||||
background-image: var(--icon-date);
|
||||
background-position: center right var(--icon-position);
|
||||
background-size: var(--icon-width) auto;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
// Time
|
||||
&[type="time"] {
|
||||
background-image: var(--icon-time);
|
||||
}
|
||||
}
|
||||
|
||||
// Calendar picker
|
||||
[type="date"],
|
||||
[type="datetime-local"],
|
||||
[type="month"],
|
||||
[type="time"],
|
||||
[type="week"] {
|
||||
&::-webkit-calendar-picker-indicator {
|
||||
width: var(--icon-width);
|
||||
margin-right: calc(var(--icon-width) * -1);
|
||||
margin-left: var(--icon-position);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
[dir="rtl"]
|
||||
:is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
// File
|
||||
[type="file"] {
|
||||
--color: var(--muted-color);
|
||||
padding: calc(var(--form-element-spacing-vertical) * 0.5) 0;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
background: none;
|
||||
|
||||
@mixin file-selector-button {
|
||||
--background-color: var(--secondary);
|
||||
--border-color: var(--secondary);
|
||||
--color: var(--secondary-inverse);
|
||||
margin-right: calc(var(--spacing) / 2);
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: calc(var(--spacing) / 2);
|
||||
padding: calc(var(--form-element-spacing-vertical) * 0.5)
|
||||
calc(var(--form-element-spacing-horizontal) * 0.5);
|
||||
border: var(--border-width) solid var(--border-color);
|
||||
border-radius: var(--border-radius);
|
||||
outline: none;
|
||||
background-color: var(--background-color);
|
||||
box-shadow: var(--box-shadow);
|
||||
color: var(--color);
|
||||
font-weight: var(--font-weight);
|
||||
font-size: 1rem;
|
||||
line-height: var(--line-height);
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
||||
@if $enable-transitions {
|
||||
transition: background-color var(--transition),
|
||||
border-color var(--transition), color var(--transition),
|
||||
box-shadow var(--transition);
|
||||
}
|
||||
|
||||
&:is(:hover, :active, :focus) {
|
||||
--background-color: var(--secondary-hover);
|
||||
--border-color: var(--secondary-hover);
|
||||
}
|
||||
}
|
||||
|
||||
&::file-selector-button {
|
||||
@include file-selector-button;
|
||||
}
|
||||
|
||||
&::-webkit-file-upload-button {
|
||||
@include file-selector-button;
|
||||
}
|
||||
|
||||
&::-ms-browse {
|
||||
@include file-selector-button;
|
||||
}
|
||||
}
|
||||
|
||||
// Range
|
||||
[type="range"] {
|
||||
// Config
|
||||
$height-track: 0.25rem;
|
||||
$height-thumb: 1.25rem;
|
||||
$border-thumb: 2px;
|
||||
|
||||
// Styles
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
width: 100%;
|
||||
height: $height-thumb;
|
||||
background: none;
|
||||
|
||||
// Slider Track
|
||||
@mixin slider-track {
|
||||
width: 100%;
|
||||
height: $height-track;
|
||||
border-radius: var(--border-radius);
|
||||
background-color: var(--range-border-color);
|
||||
|
||||
@if $enable-transitions {
|
||||
transition: background-color var(--transition),
|
||||
box-shadow var(--transition);
|
||||
}
|
||||
}
|
||||
|
||||
&::-webkit-slider-runnable-track {
|
||||
@include slider-track;
|
||||
}
|
||||
|
||||
&::-moz-range-track {
|
||||
@include slider-track;
|
||||
}
|
||||
|
||||
&::-ms-track {
|
||||
@include slider-track;
|
||||
}
|
||||
|
||||
// Slider Thumb
|
||||
@mixin slider-thumb {
|
||||
-webkit-appearance: none;
|
||||
width: $height-thumb;
|
||||
height: $height-thumb;
|
||||
margin-top: #{(-($height-thumb * 0.5) + ($height-track * 0.5))};
|
||||
border: $border-thumb solid var(--range-thumb-border-color);
|
||||
border-radius: 50%;
|
||||
background-color: var(--range-thumb-color);
|
||||
cursor: pointer;
|
||||
|
||||
@if $enable-transitions {
|
||||
transition: background-color var(--transition),
|
||||
transform var(--transition);
|
||||
}
|
||||
}
|
||||
&::-webkit-slider-thumb {
|
||||
@include slider-thumb;
|
||||
}
|
||||
|
||||
&::-moz-range-thumb {
|
||||
@include slider-thumb;
|
||||
}
|
||||
|
||||
&::-ms-thumb {
|
||||
@include slider-thumb;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
--range-border-color: var(--range-active-border-color);
|
||||
--range-thumb-color: var(--range-thumb-hover-color);
|
||||
}
|
||||
|
||||
&:active {
|
||||
--range-thumb-color: var(--range-thumb-active-color);
|
||||
|
||||
// Slider Thumb
|
||||
&::-webkit-slider-thumb {
|
||||
transform: scale(1.25);
|
||||
}
|
||||
|
||||
&::-moz-range-thumb {
|
||||
transform: scale(1.25);
|
||||
}
|
||||
|
||||
&::-ms-thumb {
|
||||
transform: scale(1.25);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Search
|
||||
// :not() are needed to add Specificity and avoid !important on padding
|
||||
input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]) {
|
||||
&[type="search"] {
|
||||
padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);
|
||||
border-radius: 5rem;
|
||||
background-image: var(--icon-search);
|
||||
background-position: center left 1.125rem;
|
||||
background-size: 1rem auto;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
&[aria-invalid] {
|
||||
@if $enable-important {
|
||||
padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem) !important;
|
||||
}
|
||||
@else {
|
||||
padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);
|
||||
}
|
||||
background-position: center left 1.125rem, center right 0.75rem;
|
||||
}
|
||||
|
||||
&[aria-invalid="false"] {
|
||||
background-image: var(--icon-search), var(--icon-valid);
|
||||
}
|
||||
|
||||
&[aria-invalid="true"] {
|
||||
background-image: var(--icon-search), var(--icon-invalid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Cancel button
|
||||
[type="search"] {
|
||||
&::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
[dir="rtl"] {
|
||||
:where(input) {
|
||||
&:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]) {
|
||||
&[type="search"] {
|
||||
background-position: center right 1.125rem;
|
||||
|
||||
&[aria-invalid] {
|
||||
background-position: center right 1.125rem, center left 0.75rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,138 @@
|
||||
/**
|
||||
* Form elements
|
||||
* Checkboxes & Radios
|
||||
*/
|
||||
|
||||
[type="checkbox"],
|
||||
[type="radio"] {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
width: 1.25em;
|
||||
height: 1.25em;
|
||||
margin-top: -0.125em;
|
||||
margin-right: 0.375em;
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: 0.375em;
|
||||
border-width: var(--border-width);
|
||||
font-size: inherit;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
|
||||
&::-ms-check {
|
||||
display: none; // unstyle IE checkboxes
|
||||
}
|
||||
|
||||
&:checked,
|
||||
&:checked:active,
|
||||
&:checked:focus {
|
||||
--background-color: var(--primary);
|
||||
--border-color: var(--primary);
|
||||
background-image: var(--icon-checkbox);
|
||||
background-position: center;
|
||||
background-size: 0.75em auto;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
& ~ label {
|
||||
display: inline-block;
|
||||
margin-right: 0.375em;
|
||||
margin-bottom: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
// Checkboxes
|
||||
[type="checkbox"] {
|
||||
&:indeterminate {
|
||||
--background-color: var(--primary);
|
||||
--border-color: var(--primary);
|
||||
background-image: var(--icon-minus);
|
||||
background-position: center;
|
||||
background-size: 0.75em auto;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
// Radios
|
||||
[type="radio"] {
|
||||
border-radius: 50%;
|
||||
|
||||
&:checked,
|
||||
&:checked:active,
|
||||
&:checked:focus {
|
||||
--background-color: var(--primary-inverse);
|
||||
border-width: 0.35em;
|
||||
background-image: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Switchs
|
||||
[type="checkbox"][role="switch"] {
|
||||
--background-color: var(--switch-background-color);
|
||||
--border-color: var(--switch-background-color);
|
||||
--color: var(--switch-color);
|
||||
|
||||
// Config
|
||||
$switch-height: 1.25em;
|
||||
$switch-width: 2.25em;
|
||||
$switch-transition: 0.1s ease-in-out;
|
||||
|
||||
// Styles
|
||||
width: $switch-width;
|
||||
height: $switch-height;
|
||||
border: var(--border-width) solid var(--border-color);
|
||||
border-radius: $switch-height;
|
||||
background-color: var(--background-color);
|
||||
line-height: $switch-height;
|
||||
|
||||
&:focus {
|
||||
--background-color: var(--switch-background-color);
|
||||
--border-color: var(--switch-background-color);
|
||||
}
|
||||
|
||||
&:checked {
|
||||
--background-color: var(--switch-checked-background-color);
|
||||
--border-color: var(--switch-checked-background-color);
|
||||
}
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
width: calc(#{$switch-height} - (var(--border-width) * 2));
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color);
|
||||
content: "";
|
||||
|
||||
@if $enable-transitions {
|
||||
transition: margin $switch-transition;
|
||||
}
|
||||
}
|
||||
|
||||
&:checked {
|
||||
background-image: none;
|
||||
|
||||
&::before {
|
||||
margin-left: calc(#{$switch-width * 0.5} - var(--border-width));
|
||||
margin-inline-start: calc(#{$switch-width * 0.5} - var(--border-width));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Aria-invalid
|
||||
[type="checkbox"],
|
||||
[type="checkbox"]:checked,
|
||||
[type="radio"],
|
||||
[type="radio"]:checked,
|
||||
[type="checkbox"][role="switch"],
|
||||
[type="checkbox"][role="switch"]:checked {
|
||||
|
||||
&[aria-invalid="false"] {
|
||||
--border-color: var(--form-element-valid-border-color);
|
||||
}
|
||||
|
||||
&[aria-invalid="true"] {
|
||||
--border-color: var(--form-element-invalid-border-color);
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
@if ($enable-class-container and $enable-classes) {
|
||||
/**
|
||||
* Container
|
||||
*/
|
||||
|
||||
.container,
|
||||
.container-fluid {
|
||||
width: 100%;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
padding-right: var(--spacing);
|
||||
padding-left: var(--spacing);
|
||||
}
|
||||
|
||||
.container {
|
||||
@if map-get($breakpoints, "sm") {
|
||||
@media (min-width: map-get($breakpoints, "sm")) {
|
||||
max-width: map-get($viewports, "sm");
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "md") {
|
||||
@media (min-width: map-get($breakpoints, "md")) {
|
||||
max-width: map-get($viewports, "md");
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "lg") {
|
||||
@media (min-width: map-get($breakpoints, "lg")) {
|
||||
max-width: map-get($viewports, "lg");
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "xl") {
|
||||
@media (min-width: map-get($breakpoints, "xl")) {
|
||||
max-width: map-get($viewports, "xl");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
@if ($enable-classes and $enable-grid) {
|
||||
/**
|
||||
* Grid
|
||||
* Minimal grid system with auto-layout columns
|
||||
*/
|
||||
|
||||
.grid {
|
||||
grid-column-gap: var(--grid-spacing-horizontal);
|
||||
grid-row-gap: var(--grid-spacing-vertical);
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
margin: 0;
|
||||
|
||||
@if map-get($breakpoints, "lg") {
|
||||
@media (min-width: map-get($breakpoints, "lg")) {
|
||||
grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
|
||||
}
|
||||
}
|
||||
|
||||
& > * {
|
||||
min-width: 0; // HACK for childs in overflow
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Horizontal scroller (<figure>)
|
||||
*/
|
||||
|
||||
// Wrapper to make any content responsive across all viewports
|
||||
figure {
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow-x: auto;
|
||||
|
||||
figcaption {
|
||||
padding: calc(var(--spacing) * 0.5) 0;
|
||||
color: var(--muted-color);
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/**
|
||||
* Section
|
||||
* Responsive spacings for section
|
||||
*/
|
||||
|
||||
section {
|
||||
margin-bottom: var(--block-spacing-vertical);
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
{
|
||||
"name": "@picocss/pico",
|
||||
"version": "1.5.9",
|
||||
"description": "Minimal CSS Framework for semantic HTML",
|
||||
"author": "Lucas Larroche",
|
||||
"main": "css/pico.min.css",
|
||||
"homepage": "https://picocss.com",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/picocss/pico.git"
|
||||
},
|
||||
"keywords": [
|
||||
"css",
|
||||
"css-framework",
|
||||
"dark-mode",
|
||||
"dark-theme",
|
||||
"lightweight",
|
||||
"minimal",
|
||||
"minimalist",
|
||||
"minimalistic",
|
||||
"native-html",
|
||||
"scss-framework",
|
||||
"semantic"
|
||||
],
|
||||
"bugs": {
|
||||
"url": "https://github.com/picocss/pico/issues"
|
||||
},
|
||||
"scripts": {
|
||||
"watch": "npm-run-all --parallel watch:pico watch:docs:scss watch:docs:html watch:docs:js --silent",
|
||||
"build": "npm-run-all scss:sorter:pico build:pico scss:sorter:docs build:docs:css build:docs:js build:docs:html --silent",
|
||||
|
||||
"build:docs": "npm-run-all --parallel build:docs:css build:docs:js build:docs:html --silent",
|
||||
"build:docs:css": "npm-run-all css:compile:docs css:prefix:docs css:minify:docs --silent",
|
||||
"build:docs:html": "npm-run-all htmlincludes:docs --silent",
|
||||
"build:docs:js": "npm-run-all js:bundle:docs:commons js:bundle:docs:customization js:babel:docs:commons js:babel:docs:customization js:babel:docs:grid js:babel:docs:modal js:minify:docs:commons js:minify:docs:customization js:minify:docs:grid js:minify:docs:modal --silent",
|
||||
"build:pico": "npm-run-all css:compile:pico css:prefix:pico css:minify:pico --silent",
|
||||
|
||||
"css:compile:docs": "sass --style expanded --source-map --embed-sources --no-error-css docs/scss/:docs/css/",
|
||||
"css:compile:pico": "sass --style expanded --source-map --embed-sources --no-error-css scss/:css/",
|
||||
"css:minify:docs": "cleancss -O1 --with-rebase --source-map --source-map-inline-sources --batch --batch-suffix .min docs/css/*.css !docs/css/*.min.css",
|
||||
"css:minify:pico": "cleancss -O1 --with-rebase --source-map --source-map-inline-sources --batch --batch-suffix .min css/*.css css/*/*.css !css/*.min.css !css/*/*.min.css",
|
||||
"css:prefix:docs": "postcss --config css --replace docs/css/*.css !docs/css/*.min.css",
|
||||
"css:prefix:pico": "postcss --config css --replace css/*.css css/*/*.css !css/*.min.css",
|
||||
|
||||
"htmlincludes:docs": "html-includes --src docs/src --dest docs --minify minifyJS=true --quiet",
|
||||
|
||||
"js:babel:docs:commons": "babel docs/js/commons.min.js --out-dir docs/js/ --presets=@babel/preset-env --quiet",
|
||||
"js:babel:docs:customization": "babel docs/js/customization.min.js --out-dir docs/js/ --presets=@babel/preset-env --quiet",
|
||||
"js:babel:docs:grid": "babel docs/js/grid.js --out-file docs/js/grid.min.js --presets=@babel/preset-env --quiet",
|
||||
"js:babel:docs:modal": "babel docs/js/modal.js --out-file docs/js/modal.min.js --presets=@babel/preset-env --quiet",
|
||||
"js:bundle:docs:commons": "rollup docs/js/commons.js --file docs/js/commons.min.js --format iife --silent",
|
||||
"js:bundle:docs:customization": "rollup docs/js/customization.js --file docs/js/customization.min.js --format iife --silent",
|
||||
"js:minify:docs:commons": "uglifyjs docs/js/commons.min.js --compress --mangle --output docs/js/commons.min.js",
|
||||
"js:minify:docs:customization": "uglifyjs docs/js/customization.min.js --compress --mangle --output docs/js/customization.min.js",
|
||||
"js:minify:docs:grid": "uglifyjs docs/js/grid.min.js --compress --mangle --output docs/js/grid.min.js",
|
||||
"js:minify:docs:modal": "uglifyjs docs/js/modal.min.js --compress --mangle --output docs/js/modal.min.js",
|
||||
|
||||
"scss:sorter:docs": "postcss --config scss ./docs/scss/**/*.scss --replace",
|
||||
"scss:sorter:pico": "postcss --config scss ./scss/**/*.scss --replace",
|
||||
|
||||
"prebuild:docs:html": "echo '[@picocss/pico] Create documentation pages'",
|
||||
"prebuild:docs:js": "echo '[@picocss/pico] Bundle and minify documentation .js files'",
|
||||
"precss:compile:docs": "echo '[@picocss/pico] Compile documentation .css file'",
|
||||
"precss:compile:pico": "echo '[@picocss/pico] Compile Pico .css files'",
|
||||
"precss:minify:docs": "echo '[@picocss/pico] Minify documentation .css file'",
|
||||
"precss:minify:pico": "echo '[@picocss/pico] Minify Pico .css files'",
|
||||
"prescss:sorter:docs": "echo '[@picocss/pico] Order documentation .scss properties'",
|
||||
"prescss:sorter:pico": "echo '[@picocss/pico] Order Pico .scss properties'",
|
||||
|
||||
"postbuild:docs:css": "echo '\\033[32m[@picocss/pico] Documentation .css build done\\033[0m'",
|
||||
"postbuild:docs:html": "echo '\\033[32m[@picocss/pico] Documentation pages done\\033[0m'",
|
||||
"postbuild:docs:js": "echo '\\033[32m[@picocss/pico] Documentation .js build done\\033[0m'",
|
||||
"postbuild:pico": "echo '\\033[32m[@picocss/pico] Pico library build done\\033[0m'",
|
||||
|
||||
"watch:docs:html": "nodemon --watch docs/src/ --ext html --exec 'npm run build:docs:html'",
|
||||
"watch:docs:js": "nodemon --watch docs/js/ --ext js --ignore *.min.js --exec 'npm run build:docs:js'",
|
||||
"watch:docs:scss": "nodemon --watch docs/scss/ --ext scss --exec 'npm run build:docs:css'",
|
||||
"watch:pico": "nodemon --watch scss/ --ext scss --exec 'npm run build:pico'"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.21.0",
|
||||
"@babel/core": "^7.21.4",
|
||||
"@babel/preset-env": "^7.21.4",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"caniuse-lite": "1.0.30001476",
|
||||
"clean-css-cli": "^5.6.2",
|
||||
"css-declaration-sorter": "^6.4.0",
|
||||
"html-includes": "^4.4.1",
|
||||
"nodemon": "^2.0.22",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"postcss": "^8.4.21",
|
||||
"postcss-cli": "^10.1.0",
|
||||
"postcss-scss": "^4.0.6",
|
||||
"rollup": "^3.20.2",
|
||||
"sass": "^1.61.0",
|
||||
"uglify-js": "^3.17.4"
|
||||
},
|
||||
"browserslist": [
|
||||
">= 0.5%",
|
||||
"last 2 major versions",
|
||||
"not dead",
|
||||
"not ie > 0"
|
||||
]
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
/**
|
||||
* Loading ([aria-busy=true])
|
||||
*/
|
||||
|
||||
|
||||
// Cursor
|
||||
[aria-busy="true"] {
|
||||
cursor: progress;
|
||||
}
|
||||
|
||||
// Everyting except form elements
|
||||
[aria-busy="true"]:not(input, select, textarea) {
|
||||
|
||||
&::before {
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
border: 0.1875em solid currentColor;
|
||||
border-radius: 1em;
|
||||
border-right-color: transparent;
|
||||
content: "";
|
||||
vertical-align: text-bottom;
|
||||
vertical-align: -.125em; // Visual alignment
|
||||
animation: spinner 0.75s linear infinite;
|
||||
opacity: var(--loading-spinner-opacity);
|
||||
}
|
||||
|
||||
&:not(:empty) {
|
||||
&::before {
|
||||
margin-right: calc(var(--spacing) * 0.5);
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: calc(var(--spacing) * 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
&:empty {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
// Buttons and links
|
||||
button,
|
||||
input[type="submit"],
|
||||
input[type="button"],
|
||||
input[type="reset"],
|
||||
a {
|
||||
&[aria-busy="true"] {
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Animation: rotate
|
||||
@keyframes spinner {
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
@ -0,0 +1,278 @@
|
||||
/**
|
||||
* Tooltip ([data-tooltip])
|
||||
*/
|
||||
|
||||
[data-tooltip] {
|
||||
position: relative;
|
||||
|
||||
&:not(a, button, input) {
|
||||
border-bottom: 1px dotted;
|
||||
text-decoration: none;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
&[data-placement="top"]::before,
|
||||
&[data-placement="top"]::after,
|
||||
&::before,
|
||||
&::after {
|
||||
display: block;
|
||||
z-index: 99;
|
||||
position: absolute;
|
||||
bottom: 100%;
|
||||
left: 50%;
|
||||
padding: .25rem .5rem;
|
||||
overflow: hidden;
|
||||
transform: translate(-50%, -.25rem);
|
||||
border-radius: var(--border-radius);
|
||||
background: var(--tooltip-background-color);
|
||||
content: attr(data-tooltip);
|
||||
color: var(--tooltip-color);
|
||||
font-style: normal;
|
||||
font-weight: var(--font-weight);
|
||||
font-size: .875rem;
|
||||
text-decoration: none;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
// Caret
|
||||
&[data-placement="top"]::after,
|
||||
&::after {
|
||||
padding: 0;
|
||||
transform: translate(-50%, 0rem);
|
||||
border-top: .3rem solid;
|
||||
border-right: .3rem solid transparent;
|
||||
border-left: .3rem solid transparent;
|
||||
border-radius: 0;
|
||||
background-color: transparent;
|
||||
content: "";
|
||||
color: var(--tooltip-background-color);
|
||||
}
|
||||
|
||||
&[data-placement="bottom"] {
|
||||
&::before,
|
||||
&::after {
|
||||
top: 100%;
|
||||
bottom: auto;
|
||||
transform: translate(-50%, .25rem);
|
||||
}
|
||||
|
||||
&:after{
|
||||
transform: translate(-50%, -.3rem);
|
||||
border: .3rem solid transparent;
|
||||
border-bottom: .3rem solid;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-placement="left"] {
|
||||
&::before,
|
||||
&::after {
|
||||
top: 50%;
|
||||
right: 100%;
|
||||
bottom: auto;
|
||||
left: auto;
|
||||
transform: translate(-.25rem, -50%);
|
||||
}
|
||||
|
||||
&:after{
|
||||
transform: translate(.3rem, -50%);
|
||||
border: .3rem solid transparent;
|
||||
border-left: .3rem solid;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-placement="right"] {
|
||||
&::before,
|
||||
&::after {
|
||||
top: 50%;
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
left: 100%;
|
||||
transform: translate(.25rem, -50%);
|
||||
}
|
||||
|
||||
&:after{
|
||||
transform: translate(-.3rem, -50%);
|
||||
border: .3rem solid transparent;
|
||||
border-right: .3rem solid;
|
||||
}
|
||||
}
|
||||
|
||||
// Display
|
||||
&:focus,
|
||||
&:hover {
|
||||
&::before,
|
||||
&::after {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@if $enable-transitions {
|
||||
|
||||
// Animations, excluding touch devices
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
&[data-placement="bottom"]:focus,
|
||||
&[data-placement="bottom"]:hover
|
||||
&:focus,
|
||||
&:hover {
|
||||
&::before,
|
||||
&::after {
|
||||
animation-duration: .2s;
|
||||
animation-name: tooltip-slide-top;
|
||||
}
|
||||
|
||||
&::after {
|
||||
animation-name: tooltip-caret-slide-top;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-placement="bottom"] {
|
||||
&:focus,
|
||||
&:hover {
|
||||
&::before,
|
||||
&::after {
|
||||
animation-duration: .2s;
|
||||
animation-name: tooltip-slide-bottom;
|
||||
}
|
||||
|
||||
&::after {
|
||||
animation-name: tooltip-caret-slide-bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&[data-placement="left"] {
|
||||
&:focus,
|
||||
&:hover {
|
||||
&::before,
|
||||
&::after {
|
||||
animation-duration: .2s;
|
||||
animation-name: tooltip-slide-left;
|
||||
}
|
||||
|
||||
&::after {
|
||||
animation-name: tooltip-caret-slide-left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&[data-placement="right"] {
|
||||
&:focus,
|
||||
&:hover {
|
||||
&::before,
|
||||
&::after {
|
||||
animation-duration: .2s;
|
||||
animation-name: tooltip-slide-right;
|
||||
}
|
||||
|
||||
&::after {
|
||||
animation-name: tooltip-caret-slide-right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltip-slide-top {
|
||||
from {
|
||||
transform: translate(-50%, .75rem);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translate(-50%, -.25rem);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltip-caret-slide-top {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
transform: translate(-50%, -.25rem);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translate(-50%, 0rem);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltip-slide-bottom {
|
||||
from {
|
||||
transform: translate(-50%, -.75rem);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translate(-50%, .25rem);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltip-caret-slide-bottom {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
transform: translate(-50%, -.5rem);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translate(-50%, -.3rem);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltip-slide-left {
|
||||
from {
|
||||
transform: translate(.75rem, -50%);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translate(-.25rem, -50%);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltip-caret-slide-left {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
transform: translate(.05rem, -50%);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translate(.3rem, -50%);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltip-slide-right {
|
||||
from {
|
||||
transform: translate(-.75rem, -50%);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translate(.25rem, -50%);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltip-caret-slide-right {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
transform: translate(-.05rem, -50%);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translate(-.3rem, -50%);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,158 @@
|
||||
@import "_pico/functions";
|
||||
|
||||
@mixin dark {
|
||||
--background-color: #{mix($black, $grey-900, 37.5%)};
|
||||
|
||||
// texts colors
|
||||
--color: #{$grey-200};
|
||||
--h1-color: #{$grey-50};
|
||||
--h2-color: #{mix($grey-100, $grey-50)};
|
||||
--h3-color: #{$grey-100};
|
||||
--h4-color: #{mix($grey-200, $grey-100)};
|
||||
--h5-color: #{$grey-200};
|
||||
--h6-color: #{mix($grey-300, $grey-200)};
|
||||
|
||||
// muted colors
|
||||
--muted-color: #{$grey-500};
|
||||
--muted-border-color: #{mix($grey-900, $grey-800, 75%)};
|
||||
|
||||
// primary colors
|
||||
--primary: #{$primary-600};
|
||||
--primary-hover: #{$primary-500};
|
||||
--primary-focus: #{rgba($primary-600, 0.25)};
|
||||
--primary-inverse: #{$white};
|
||||
|
||||
// secondary colors
|
||||
--secondary: #{$grey-600};
|
||||
--secondary-hover: #{$grey-500};
|
||||
--secondary-focus: #{rgba($grey-500, 0.25)};
|
||||
--secondary-inverse: #{$white};
|
||||
|
||||
// contrast colors
|
||||
--contrast: #{$grey-50};
|
||||
--contrast-hover: #{$white};
|
||||
--contrast-focus: #{rgba($grey-500, 0.25)};
|
||||
--contrast-inverse: #{$black};
|
||||
|
||||
// highlighted text (<mark>)
|
||||
--mark-background-color: #{mix($grey-300, $amber-300)};
|
||||
--mark-color: #{mix($black, $grey-900, 37.5%)};
|
||||
|
||||
// inserted (<ins>) and deleted (<ins>)
|
||||
--ins-color: #{$green-700};
|
||||
--del-color: #{$red-800};
|
||||
|
||||
// blockquote
|
||||
--blockquote-border-color: var(--muted-border-color);
|
||||
--blockquote-footer-color: var(--muted-color);
|
||||
|
||||
// button
|
||||
// to disable box-shadow, remove the var or set to '0 0 0 rgba(0, 0, 0, 0)'
|
||||
// don't use, 'none, 'false, 'null', '0', etc.
|
||||
--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||
--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||
|
||||
// form elements
|
||||
--form-element-background-color: #{mix($black, $grey-900, 37.5%)};
|
||||
--form-element-border-color: #{mix($grey-800, $grey-700)};
|
||||
--form-element-color: var(--color);
|
||||
--form-element-placeholder-color: var(--muted-color);
|
||||
--form-element-active-background-color: var(--form-element-background-color);
|
||||
--form-element-active-border-color: var(--primary);
|
||||
--form-element-focus-color: var(--primary-focus);
|
||||
--form-element-disabled-background-color: #{$grey-800};
|
||||
--form-element-disabled-border-color: #{$grey-700};
|
||||
--form-element-disabled-opacity: 0.5;
|
||||
--form-element-invalid-border-color: #{$red-900};
|
||||
--form-element-invalid-active-border-color: #{$red-800};
|
||||
--form-element-invalid-focus-color: #{rgba($red-800, 0.25)};
|
||||
--form-element-valid-border-color: #{$green-800};
|
||||
--form-element-valid-active-border-color: #{$green-700};
|
||||
--form-element-valid-focus-color: #{rgba($green-700, 0.25)};
|
||||
|
||||
// switch (input[type="checkbox"][role="switch"])
|
||||
--switch-background-color: #{mix($grey-800, $grey-700)};
|
||||
--switch-color: var(--primary-inverse);
|
||||
--switch-checked-background-color: var(--primary);
|
||||
|
||||
// range (input[type="range"])
|
||||
--range-border-color: #{mix($grey-900, $grey-800)};
|
||||
--range-active-border-color: #{$grey-800};
|
||||
--range-thumb-border-color: var(--background-color);
|
||||
--range-thumb-color: var(--secondary);
|
||||
--range-thumb-hover-color: var(--secondary-hover);
|
||||
--range-thumb-active-color: var(--primary);
|
||||
|
||||
// table
|
||||
--table-border-color: var(--muted-border-color);
|
||||
--table-row-stripped-background-color: #{rgba($grey-500, 0.05)};
|
||||
|
||||
// code
|
||||
--code-background-color: #{mix($black, $grey-900, 12.5%)};
|
||||
--code-color: var(--muted-color);
|
||||
--code-kbd-background-color: var(--contrast);
|
||||
--code-kbd-color: var(--contrast-inverse);
|
||||
--code-tag-color: #{hsl(330, 30%, 50%)};
|
||||
--code-property-color: #{hsl(185, 30%, 50%)};
|
||||
--code-value-color: #{hsl(40, 10%, 50%)};
|
||||
--code-comment-color: #{mix($grey-700, $grey-600)};
|
||||
|
||||
// accordion (<details>)
|
||||
--accordion-border-color: var(--muted-border-color);
|
||||
--accordion-active-summary-color: var(--primary);
|
||||
--accordion-close-summary-color: var(--color);
|
||||
--accordion-open-summary-color: var(--muted-color);
|
||||
|
||||
// card (<article>)
|
||||
$box-shadow-elevation: 1rem;
|
||||
$box-shadow-blur-strengh: 6rem;
|
||||
$box-shadow-opacity: 0.06;
|
||||
--card-background-color: #{mix($black, $grey-900, 25%)};
|
||||
--card-border-color: var(--card-background-color);
|
||||
--card-box-shadow:
|
||||
#{($box-shadow-elevation * 0.5 * 0.029)} #{($box-shadow-elevation * 0.029)} #{($box-shadow-blur-strengh * 0.029)} #{rgba($black, ($box-shadow-opacity * 0.283))},
|
||||
#{($box-shadow-elevation * 0.5 * 0.067)} #{($box-shadow-elevation * 0.067)} #{($box-shadow-blur-strengh * 0.067)} #{rgba($black, ($box-shadow-opacity * 0.4))},
|
||||
#{($box-shadow-elevation * 0.5 * 0.125)} #{($box-shadow-elevation * 0.125)} #{($box-shadow-blur-strengh * 0.125)} #{rgba($black, ($box-shadow-opacity * 0.5))},
|
||||
#{($box-shadow-elevation * 0.5 * 0.225)} #{($box-shadow-elevation * 0.225)} #{($box-shadow-blur-strengh * 0.225)} #{rgba($black, ($box-shadow-opacity * 0.6))},
|
||||
#{($box-shadow-elevation * 0.5 * 0.417)} #{($box-shadow-elevation * 0.417)} #{($box-shadow-blur-strengh * 0.417)} #{rgba($black, ($box-shadow-opacity * 0.717))},
|
||||
#{($box-shadow-elevation * 0.5)} #{$box-shadow-elevation} #{$box-shadow-blur-strengh} #{rgba($black, $box-shadow-opacity)},
|
||||
0 0 0 0.0625rem #{rgba($black, ($box-shadow-opacity * 0.25) )};
|
||||
--card-sectionning-background-color: #{mix($black, $grey-900, 12.5%)};
|
||||
|
||||
// dropdown (<details role="list">)
|
||||
--dropdown-background-color: #{$grey-900};
|
||||
--dropdown-border-color: #{mix($grey-900, $grey-800)};
|
||||
--dropdown-box-shadow: var(--card-box-shadow);
|
||||
--dropdown-color: var(--color);
|
||||
--dropdown-hover-background-color: #{rgba(mix($grey-900, $grey-800), 0.75)};
|
||||
|
||||
// modal (<dialog>)
|
||||
--modal-overlay-background-color: #{rgba(mix($grey-900, $grey-800), 0.8)};
|
||||
|
||||
// progress
|
||||
--progress-background-color: #{mix($grey-900, $grey-800)};
|
||||
--progress-color: var(--primary);
|
||||
|
||||
// loading ([aria-busy=true])
|
||||
--loading-spinner-opacity: 0.5;
|
||||
|
||||
// tooltip ([data-tooltip])
|
||||
--tooltip-background-color: var(--contrast);
|
||||
--tooltip-color: var(--contrast-inverse);
|
||||
|
||||
// icons
|
||||
--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-300)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($black)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-500)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-300)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($red-900)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-300)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-300)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($green-800)}' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
|
||||
// document
|
||||
color-scheme: dark;
|
||||
}
|
@ -0,0 +1,158 @@
|
||||
@import "_pico/functions";
|
||||
|
||||
[data-theme="light"],
|
||||
:root:not([data-theme="dark"]) {
|
||||
--background-color: #{$white};
|
||||
|
||||
// texts colors
|
||||
--color: #{$grey-700};
|
||||
--h1-color: #{$grey-900};
|
||||
--h2-color: #{mix($grey-900, $grey-800)};
|
||||
--h3-color: #{$grey-800};
|
||||
--h4-color: #{mix($grey-800, $grey-700)};
|
||||
--h5-color: #{$grey-700};
|
||||
--h6-color: #{mix($grey-700, $grey-600)};
|
||||
|
||||
// muted colors
|
||||
--muted-color: #{$grey-500};
|
||||
--muted-border-color: #{$grey-50};
|
||||
|
||||
// primary colors
|
||||
--primary: #{$primary-600};
|
||||
--primary-hover: #{$primary-700};
|
||||
--primary-focus: #{rgba($primary-600, 0.125)};
|
||||
--primary-inverse: #{$white};
|
||||
|
||||
// secondary colors
|
||||
--secondary: #{$grey-600};
|
||||
--secondary-hover: #{$grey-700};
|
||||
--secondary-focus: #{rgba($grey-600, 0.125)};
|
||||
--secondary-inverse: #{$white};
|
||||
|
||||
// contrast colors
|
||||
--contrast: #{$grey-900};
|
||||
--contrast-hover: #{$black};
|
||||
--contrast-focus: #{rgba($grey-600, 0.125)};
|
||||
--contrast-inverse: #{$white};
|
||||
|
||||
// highlighted text (<mark>)
|
||||
--mark-background-color: #{mix($amber-100, $amber-50)};
|
||||
--mark-color: #{mix($grey-900, $amber-900, 75%)};
|
||||
|
||||
// inserted (<ins>) and deleted (<ins>)
|
||||
--ins-color: #{$green-700};
|
||||
--del-color: #{$red-800};
|
||||
|
||||
// blockquote
|
||||
--blockquote-border-color: var(--muted-border-color);
|
||||
--blockquote-footer-color: var(--muted-color);
|
||||
|
||||
// button
|
||||
// to disable box-shadow, remove the var or set to '0 0 0 rgba(0, 0, 0, 0)'
|
||||
// don't use, 'none, 'false, 'null', '0', etc.
|
||||
--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||
--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||
|
||||
// form elements
|
||||
--form-element-background-color: transparent;
|
||||
--form-element-border-color: #{$grey-300};
|
||||
--form-element-color: var(--color);
|
||||
--form-element-placeholder-color: var(--muted-color);
|
||||
--form-element-active-background-color: transparent;
|
||||
--form-element-active-border-color: var(--primary);
|
||||
--form-element-focus-color: var(--primary-focus);
|
||||
--form-element-disabled-background-color: #{$grey-100};
|
||||
--form-element-disabled-border-color: #{$grey-300};
|
||||
--form-element-disabled-opacity: 0.5;
|
||||
--form-element-invalid-border-color: #{$red-800};
|
||||
--form-element-invalid-active-border-color: #{$red-700};
|
||||
--form-element-invalid-focus-color: #{rgba($red-700, 0.125)};
|
||||
--form-element-valid-border-color: #{$green-700};
|
||||
--form-element-valid-active-border-color: #{$green-600};
|
||||
--form-element-valid-focus-color: #{rgba($green-600, 0.125)};
|
||||
|
||||
// switch (input[type="checkbox"][role="switch"])
|
||||
--switch-background-color: #{$grey-200};
|
||||
--switch-color: var(--primary-inverse);
|
||||
--switch-checked-background-color: var(--primary);
|
||||
|
||||
// range (input[type="range"])
|
||||
--range-border-color: #{$grey-100};
|
||||
--range-active-border-color: #{$grey-200};
|
||||
--range-thumb-border-color: var(--background-color);
|
||||
--range-thumb-color: var(--secondary);
|
||||
--range-thumb-hover-color: var(--secondary-hover);
|
||||
--range-thumb-active-color: var(--primary);
|
||||
|
||||
// table
|
||||
--table-border-color: var(--muted-border-color);
|
||||
--table-row-stripped-background-color: #{mix($grey-50, $white)};
|
||||
|
||||
// code
|
||||
--code-background-color: #{$grey-50};
|
||||
--code-color: var(--muted-color);
|
||||
--code-kbd-background-color: var(--contrast);
|
||||
--code-kbd-color: var(--contrast-inverse);
|
||||
--code-tag-color: #{hsl(330, 40%, 50%)};
|
||||
--code-property-color: #{hsl(185, 40%, 40%)};
|
||||
--code-value-color: #{hsl(40, 20%, 50%)};
|
||||
--code-comment-color: #{$grey-300};
|
||||
|
||||
// accordion (<details>)
|
||||
--accordion-border-color: var(--muted-border-color);
|
||||
--accordion-close-summary-color: var(--color);
|
||||
--accordion-open-summary-color: var(--muted-color);
|
||||
|
||||
// card (<article>)
|
||||
$box-shadow-elevation: 1rem;
|
||||
$box-shadow-blur-strengh: 6rem;
|
||||
$box-shadow-opacity: 0.06;
|
||||
--card-background-color: var(--background-color);
|
||||
--card-border-color: var(--muted-border-color);
|
||||
--card-box-shadow:
|
||||
#{($box-shadow-elevation * 0.5 * 0.029)} #{($box-shadow-elevation * 0.029)} #{($box-shadow-blur-strengh * 0.029)} #{rgba($grey-900, ($box-shadow-opacity * 0.283))},
|
||||
#{($box-shadow-elevation * 0.5 * 0.067)} #{($box-shadow-elevation * 0.067)} #{($box-shadow-blur-strengh * 0.067)} #{rgba($grey-900, ($box-shadow-opacity * 0.4))},
|
||||
#{($box-shadow-elevation * 0.5 * 0.125)} #{($box-shadow-elevation * 0.125)} #{($box-shadow-blur-strengh * 0.125)} #{rgba($grey-900, ($box-shadow-opacity * 0.5))},
|
||||
#{($box-shadow-elevation * 0.5 * 0.225)} #{($box-shadow-elevation * 0.225)} #{($box-shadow-blur-strengh * 0.225)} #{rgba($grey-900, ($box-shadow-opacity * 0.6))},
|
||||
#{($box-shadow-elevation * 0.5 * 0.417)} #{($box-shadow-elevation * 0.417)} #{($box-shadow-blur-strengh * 0.417)} #{rgba($grey-900, ($box-shadow-opacity * 0.717))},
|
||||
#{($box-shadow-elevation * 0.5)} #{$box-shadow-elevation} #{$box-shadow-blur-strengh} #{rgba($grey-900, $box-shadow-opacity)},
|
||||
0 0 0 0.0625rem #{rgba($grey-900, ($box-shadow-opacity * 0.25) )};
|
||||
--card-sectionning-background-color: #{mix($grey-50, $white, 25%)};
|
||||
|
||||
// dropdown (<details role="list">)
|
||||
--dropdown-background-color: #{mix($grey-50, $white, 25%)};
|
||||
--dropdown-border-color: #{mix($grey-100, $grey-50)};
|
||||
--dropdown-box-shadow: var(--card-box-shadow);
|
||||
--dropdown-color: var(--color);
|
||||
--dropdown-hover-background-color: #{$grey-50};
|
||||
|
||||
// modal (<dialog>)
|
||||
--modal-overlay-background-color: #{rgba($grey-100, 0.7)};
|
||||
|
||||
// progress
|
||||
--progress-background-color: #{$grey-100};
|
||||
--progress-color: var(--primary);
|
||||
|
||||
// loading ([aria-busy=true])
|
||||
--loading-spinner-opacity: 0.5;
|
||||
|
||||
// tooltip ([data-tooltip])
|
||||
--tooltip-background-color: var(--contrast);
|
||||
--tooltip-color: var(--contrast-inverse);
|
||||
|
||||
// icons
|
||||
--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-700)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-500)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-700)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($red-800)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-700)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
|
||||
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-700)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($green-700)}' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
|
||||
|
||||
// document
|
||||
color-scheme: light;
|
||||
}
|
@ -0,0 +1,251 @@
|
||||
// common pico theme styles
|
||||
:root {
|
||||
// font face defined in custom.scss
|
||||
--font-family: "courier prime code", sans-serif;
|
||||
// pico default theme:
|
||||
//--font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu",
|
||||
// "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
|
||||
// "Segoe UI Symbol", "Noto Color Emoji";
|
||||
--line-height: 1.5;
|
||||
--font-weight: 400;
|
||||
--font-size: 20px;
|
||||
|
||||
// responsive typography
|
||||
@if $enable-responsive-typography {
|
||||
@if map-get($breakpoints, "sm") {
|
||||
@media (min-width: map-get($breakpoints, "sm")) {
|
||||
--font-size: 20px;
|
||||
}
|
||||
}
|
||||
@if map-get($breakpoints, "md") {
|
||||
@media (min-width: map-get($breakpoints, "md")) {
|
||||
--font-size: 21px;
|
||||
--line-height: 1.4;
|
||||
}
|
||||
}
|
||||
@if map-get($breakpoints, "lg") {
|
||||
@media (min-width: map-get($breakpoints, "lg")) {
|
||||
--font-size: 22px;
|
||||
}
|
||||
}
|
||||
//@if map-get($breakpoints, "xl") {
|
||||
// @media (min-width: map-get($breakpoints, "xl")) {
|
||||
// --font-size: 22px;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
// borders
|
||||
--border-radius: 0.25rem;
|
||||
--border-width: 1px;
|
||||
--outline-width: 3px;
|
||||
|
||||
// spacings
|
||||
--spacing: 1rem;
|
||||
|
||||
// spacings for typography elements
|
||||
--typography-spacing-vertical: 1.5rem;
|
||||
|
||||
// spacings for body > header, body > main, body > footer, section, article
|
||||
--block-spacing-vertical: calc(var(--spacing) * 2);
|
||||
--block-spacing-horizontal: var(--spacing);
|
||||
|
||||
@if ($enable-classes and $enable-grid) {
|
||||
--grid-spacing-vertical: 0;
|
||||
--grid-spacing-horizontal: var(--spacing);
|
||||
}
|
||||
|
||||
// spacings for form elements and button
|
||||
--form-element-spacing-vertical: 0.75rem;
|
||||
--form-element-spacing-horizontal: 1rem;
|
||||
|
||||
// spacings for nav component
|
||||
--nav-element-spacing-vertical: 1rem;
|
||||
--nav-element-spacing-horizontal: 0.5rem;
|
||||
--nav-link-spacing-vertical: 0.5rem;
|
||||
--nav-link-spacing-horizontal: 0.5rem;
|
||||
|
||||
// font weight for form labels & fieldsets legend
|
||||
--form-label-font-weight: var(--font-weight);
|
||||
|
||||
// transitions
|
||||
--transition: 0.2s ease-in-out;
|
||||
|
||||
// modal (<dialog>)
|
||||
--modal-overlay-backdrop-filter: blur(0.25rem);
|
||||
}
|
||||
|
||||
// responsives spacings
|
||||
@if $enable-responsive-spacings {
|
||||
// Sectioning
|
||||
#{$semantic-root-element} > header,
|
||||
#{$semantic-root-element} > main,
|
||||
#{$semantic-root-element} > footer,
|
||||
section {
|
||||
@if map-get($breakpoints, "sm") {
|
||||
@media (min-width: map-get($breakpoints, "sm")) {
|
||||
--block-spacing-vertical: calc(var(--spacing) * 2.5);
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "md") {
|
||||
@media (min-width: map-get($breakpoints, "md")) {
|
||||
--block-spacing-vertical: calc(var(--spacing) * 3);
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "lg") {
|
||||
@media (min-width: map-get($breakpoints, "lg")) {
|
||||
--block-spacing-vertical: calc(var(--spacing) * 3.5);
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "xl") {
|
||||
@media (min-width: map-get($breakpoints, "xl")) {
|
||||
--block-spacing-vertical: calc(var(--spacing) * 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// card (<article>)
|
||||
article {
|
||||
@if map-get($breakpoints, "sm") {
|
||||
@media (min-width: map-get($breakpoints, "sm")) {
|
||||
--block-spacing-horizontal: calc(var(--spacing) * 1.25);
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "md") {
|
||||
@media (min-width: map-get($breakpoints, "md")) {
|
||||
--block-spacing-horizontal: calc(var(--spacing) * 1.5);
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "lg") {
|
||||
@media (min-width: map-get($breakpoints, "lg")) {
|
||||
--block-spacing-horizontal: calc(var(--spacing) * 1.75);
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "xl") {
|
||||
@media (min-width: map-get($breakpoints, "xl")) {
|
||||
--block-spacing-horizontal: calc(var(--spacing) * 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// modal
|
||||
dialog > article {
|
||||
|
||||
--block-spacing-vertical: calc(var(--spacing) * 2);
|
||||
--block-spacing-horizontal: var(--spacing);
|
||||
|
||||
@if map-get($breakpoints, "sm") {
|
||||
@media (min-width: map-get($breakpoints, "sm")) {
|
||||
--block-spacing-vertical: calc(var(--spacing) * 2.5);
|
||||
--block-spacing-horizontal: calc(var(--spacing) * 1.25);
|
||||
}
|
||||
}
|
||||
|
||||
@if map-get($breakpoints, "md") {
|
||||
@media (min-width: map-get($breakpoints, "md")) {
|
||||
--block-spacing-vertical: calc(var(--spacing) * 3);
|
||||
--block-spacing-horizontal: calc(var(--spacing) * 1.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// link
|
||||
a {
|
||||
--text-decoration: none;
|
||||
|
||||
// Secondary & Contrast
|
||||
@if $enable-classes {
|
||||
&.secondary,
|
||||
&.contrast {
|
||||
--text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// small
|
||||
small {
|
||||
--font-size: 0.875em;
|
||||
}
|
||||
|
||||
// headings
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
--font-weight: 700;
|
||||
}
|
||||
|
||||
h1 {
|
||||
--font-size: 2rem;
|
||||
--typography-spacing-vertical: 3rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
--font-size: 1.75rem;
|
||||
--typography-spacing-vertical: 2.625rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
--font-size: 1.5rem;
|
||||
--typography-spacing-vertical: 2.25rem;
|
||||
}
|
||||
|
||||
h4 {
|
||||
--font-size: 1.25rem;
|
||||
--typography-spacing-vertical: 1.874rem;
|
||||
}
|
||||
|
||||
h5 {
|
||||
--font-size: 1.125rem;
|
||||
--typography-spacing-vertical: 1.6875rem;
|
||||
}
|
||||
|
||||
// forms elements
|
||||
[type="checkbox"],
|
||||
[type="radio"] {
|
||||
--border-width: 2px;
|
||||
}
|
||||
|
||||
[type="checkbox"][role="switch"] {
|
||||
--border-width: 3px;
|
||||
}
|
||||
|
||||
// table
|
||||
thead,
|
||||
tfoot {
|
||||
th,
|
||||
td {
|
||||
--border-width: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
:not(thead, tfoot) > * > td {
|
||||
--font-size: 0.875em;
|
||||
}
|
||||
|
||||
// code
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
// font face defined in custom.scss
|
||||
--font-family: "courier prime code", "Menlo", "Consolas", "Roboto Mono", "Noto Mono",
|
||||
"Liberation Mono", monospace;
|
||||
// pico default theme:
|
||||
//--font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace",
|
||||
// "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace,
|
||||
// "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
}
|
||||
|
||||
kbd {
|
||||
--font-weight: bolder;
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
@import "../custom";
|
||||
@import "../pico";
|
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1,233 @@
|
||||
<svg width="297mm" height="210mm" version="1.1" viewBox="0 0 297 210" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<style>.measure-arrow
|
||||
{
|
||||
}
|
||||
.measure-label
|
||||
{
|
||||
|
||||
}
|
||||
.measure-line
|
||||
{
|
||||
}</style>
|
||||
<defs>
|
||||
<filter id="filter23020" x="-.0065432" y="-.010843" width="1.0154" height="1.0218" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="0.091856593"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill-rule="evenodd" filter="url(#filter23020)" font-family="'Sans Serif'" font-size="31.75px" font-weight="400" opacity=".6" stroke="#000" stroke-linejoin="bevel">
|
||||
<g fill-opacity="0" stroke-linecap="square">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m689.09-345.54-46.372 400.65-1.035 6.9362-1.5 6.9198-1.967 6.8932-2.437 6.8563-2.906 6.8089-3.377 6.7509-3.846 6.6819-4.315 6.603-4.78 6.513-5.243 6.412-5.701 6.3-6.154 6.178-6.603 6.044-7.043 5.9-802.44 551.37-3.157 1.954-3.405 1.696-3.608 1.415-3.765 1.116-3.873 0.801-3.932 0.477-3.94 0.145-3.896-0.188-3.803-0.518-3.66-0.842-3.469-1.155-3.236-1.451-2.96-1.729-2.647-1.985-436.27-370.23c-2.385-2.025-3.916-4.491-4.461-7.166l-85.575-421.04-0.16-1.347 0.059-1.376 0.278-1.395 0.495-1.407 0.708-1.409 0.916-1.401 1.117-1.384 1.311-1.358 1.495-1.325 1.671-1.281 1.834-1.231 1.986-1.172 2.125-1.106 2.249-1.032 861.89-371.28 48.004-15.222 52.718-11.28 56.097-7.145 58.133-2.889 58.815 1.424 58.127 5.732 56.046 9.967 52.549 14.056 47.614 17.916 41.234 21.449 33.432 24.54 24.272 27.068 13.886 28.891 2.487 29.875" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m628.94-263.86 7.59-5.29 7.1-5.413 6.603-5.525 6.1-5.628 5.593-5.722 5.081-5.805 4.567-5.879 4.05-5.943 3.532-5.998 3.016-6.042 2.499-6.078 1.983-6.104 1.472-6.121 0.963-6.128-2.487-29.875-13.886-28.891-24.272-27.068-33.432-24.54-41.234-21.449-47.614-17.916-52.549-14.056-56.046-9.967-58.127-5.732-58.815-1.424-58.133 2.889-56.097 7.145-52.718 11.28-48.004 15.222-861.89 371.28-2.249 1.032-2.125 1.106-1.986 1.172-1.834 1.231-1.671 1.281-1.495 1.325-1.311 1.358-1.117 1.384-0.916 1.401-0.708 1.409-0.495 1.407-0.278 1.395-0.059 1.376 0.16 1.347c0.491 2.4092 2.077 4.6251 4.62 6.4381l473.32 337.17 2.926 1.837 3.283 1.597 3.597 1.336 3.867 1.058 4.086 0.766 4.252 0.462 4.364 0.154 4.419-0.158 4.417-0.467 4.356-0.77 4.24-1.062 4.069-1.342 3.846-1.601 3.573-1.842 888-507.02" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.623-468.78-804.13 348.92-2.205 1.019-2.082 1.091-1.945 1.156-1.797 1.213-1.635 1.263-1.465 1.306-1.285 1.339-1.095 1.365-0.898 1.382-0.696 1.391-0.488 1.39-0.278 1.381-0.064 1.362 0.151 1.335c0.487 2.4917 2.135 4.7859 4.794 6.6524l6.509 4.5673 436.99 306.64 2.897 1.792 3.249 1.558 3.559 1.303 3.824 1.031 4.04 0.746 4.203 0.45 4.312 0.148 4.366-0.156 4.362-0.457 4.302-0.753 4.187-1.039 4.017-1.31 3.795-1.565 3.525-1.799 826.36-467.19 1.117-0.632c1.962-1.115 3.533-2.391 4.645-3.77 1.098-1.383 1.735-2.865 1.887-4.383l0.023-1.025-0.124-1.03-0.271-1.03-0.415-1.026-0.559-1.017-0.698-1.003-0.835-0.984-0.967-0.961-1.095-0.933-1.217-0.901-1.333-0.865-1.443-0.825-1.547-0.781-1.643-0.734-466.62-196.01-2.26-0.845-2.4705-0.729-2.6498-0.603-2.7965-0.47-2.9083-0.33-2.9845-0.188-3.0238-0.043-3.026 0.102-2.9909 0.247-2.919 0.388-2.8113 0.525-2.6687 0.655-2.4931 0.777-2.2865 0.89" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m568.68-263.8 6.264 2.646-853.5 480.13-468.64-326.25 9.316-4.06 802.61-349.85 18.101-7.89 20.135 8.507 465.71 196.78" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-216.63 698.28 802.44-551.37 43.13-410.77-888 507.02 42.423 455.12" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.34-277.6 0.476-0.256-378.25-163.29-742.7 328.7 361.08 243.27 759.39-408.43" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.34-277.6-377.77-163.13-742.48 328.44 360.86 243.12 759.39-408.43" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-702.25 327.78 436.27 370.23-48.367-454.82-473.32-337.17 85.416 421.77" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-265.98 698.01 2.647 1.985 2.96 1.729 3.236 1.451 3.469 1.155 3.66 0.842 3.803 0.518 3.896 0.188 3.94-0.145 3.932-0.477 3.873-0.801 3.765-1.116 3.608-1.415 3.405-1.696 3.157-1.954-42.423-455.12-3.573 1.842-3.846 1.601-4.069 1.342-4.24 1.062-4.356 0.77-4.417 0.467-4.419 0.158-4.364-0.154-4.252-0.462-4.086-0.766-3.867-1.058-3.597-1.336-3.283-1.597-2.926-1.837 48.367 454.82" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m585.82 146.9 43.13-410.77 7.59-5.29 7.1-5.413 6.603-5.525 6.1-5.628 5.593-5.722 5.081-5.805 4.567-5.879 4.05-5.943 3.532-5.998 3.016-6.042 2.499-6.078 1.983-6.104 1.472-6.121 0.963-6.128-46.372 400.65-1.035 6.9362-1.5 6.9198-1.967 6.8932-2.437 6.8563-2.906 6.8089-3.377 6.7509-3.846 6.6819-4.315 6.603-4.78 6.513-5.243 6.412-5.701 6.3-6.154 6.178-6.603 6.044-7.043 5.9" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m574.94-261.16-0.928 9.912-826.36 467.19-3.525 1.799-3.795 1.565-4.017 1.31-4.187 1.039-4.302 0.753-4.362 0.457-4.366 0.156-4.312-0.148-4.203-0.45-4.04-0.746-3.824-1.031-3.559-1.303-3.249-1.558-2.897-1.792-436.99-306.64-3.213-16.64 468.64 326.25 0.389 3.99-0.389-3.99 853.5-480.13" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-737.88-111.34 802.61-349.85-0.1061-7.58-804.13 348.92 1.624 8.513" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m102.96-460.58 465.71 196.78 0.861-9.342-466.62-196.01 0.053 8.573" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-706.72 320.62c0.545 2.675 2.076 5.141 4.461 7.166l-85.416-421.77c-2.543-1.813-4.129-4.0289-4.62-6.4381l85.575 421.04" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m74.568-441.15 5e-3 0.418-742.71 328.28 742.7-328.7" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.729-461.2 18.101-7.89 20.135 8.507-0.053-8.573-2.26-0.845-2.4705-0.729-2.6498-0.603-2.7965-0.47-2.9083-0.33-2.9845-0.188-3.0238-0.043-3.026 0.102-2.9909 0.247-2.919 0.388-2.8113 0.525-2.6687 0.655-2.4931 0.777-2.2865 0.89 0.1061 7.58" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-747.19-107.28 9.316-4.06-1.624-8.513-2.205 1.019-2.082 1.091-1.945 1.156-1.797 1.213-1.635 1.263-1.465 1.306-1.285 1.339-1.095 1.365-0.898 1.382-0.696 1.391-0.488 1.39-0.278 1.381-0.064 1.362 0.151 1.335c0.487 2.4917 2.135 4.7859 4.794 6.6524l6.509 4.5673-3.213-16.64" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.34-277.6 0.476-0.256-378.24-163.08 377.77 163.34" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m568.68-263.8 6.264 2.646-0.928 9.912 1.117-0.632c1.962-1.115 3.533-2.391 4.645-3.77 1.098-1.383 1.735-2.865 1.887-4.383l0.023-1.025-0.124-1.03-0.271-1.03-0.415-1.026-0.559-1.017-0.698-1.003-0.835-0.984-0.967-0.961-1.095-0.933-1.217-0.901-1.333-0.865-1.443-0.825-1.547-0.781-1.643-0.734-0.861 9.342" fill-rule="evenodd" stroke="#000" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
</g>
|
||||
<g fill="none" stroke-linecap="round">
|
||||
<g stroke-width="7">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.623-468.78-804.13 348.92" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.623-468.78 2.2865-0.89 2.4931-0.777 2.6687-0.655 2.8113-0.525 2.919-0.388 2.9909-0.247 3.026-0.102 3.0238 0.043 2.9845 0.188 2.9083 0.33 2.7965 0.47 2.6498 0.603 2.4705 0.729 2.26 0.845" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-739.5-119.86-2.205 1.019-2.082 1.091-1.945 1.156-1.797 1.213-1.635 1.263-1.465 1.306-1.285 1.339-1.095 1.365-0.898 1.382-0.696 1.391-0.488 1.39-0.278 1.381-0.064 1.362 0.151 1.335" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-755.28-101.86c0.487 2.4917 2.135 4.7859 4.794 6.6524" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m569.54-273.14-466.62-196.01" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-750.49-95.21 443.5 311.2" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m575.13-251.88c1.962-1.115 3.533-2.391 4.645-3.77 1.098-1.383 1.735-2.865 1.887-4.383" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m581.66-260.03 0.023-1.025-0.124-1.03-0.271-1.03-0.415-1.026-0.559-1.017-0.698-1.003-0.835-0.984-0.967-0.961-1.095-0.933-1.217-0.901-1.333-0.865-1.443-0.825-1.547-0.781-1.643-0.734" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-306.99 215.99 2.897 1.792 3.249 1.558 3.559 1.303 3.824 1.031 4.04 0.746 4.203 0.45 4.312 0.148 4.366-0.156 4.362-0.457 4.302-0.753 4.187-1.039 4.017-1.31 3.795-1.565 3.525-1.799" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-252.35 215.94 827.48-467.82" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="16.735">
|
||||
<path d="m85.68-489.92-861.89 371.28" fill-rule="evenodd" stroke="#000" stroke-width="16.735"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="16.735">
|
||||
<path d="m-776.21-118.65-2.249 1.032-2.125 1.106-1.986 1.172-1.834 1.231-1.671 1.281-1.495 1.325-1.311 1.358-1.117 1.384-0.916 1.401-0.708 1.409-0.495 1.407-0.278 1.395-0.059 1.376 0.16 1.347" fill-rule="evenodd" stroke="#000" stroke-width="16.735"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="7">
|
||||
<path d="m-792.29-100.42c0.491 2.4092 2.077 4.6251 4.62 6.4381" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g>
|
||||
<g stroke-width="23.642">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-787.67-93.985 473.32 337.17" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-314.35 243.19 2.926 1.837 3.283 1.597 3.597 1.336 3.867 1.058 4.086 0.766 4.252 0.462 4.364 0.154 4.419-0.158 4.417-0.467 4.356-0.77 4.24-1.062 4.069-1.342 3.846-1.601 3.573-1.842" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-259.05 243.16 888-507.02" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="16.735">
|
||||
<path d="m628.94-263.86 7.59-5.29 7.1-5.413 6.603-5.525 6.1-5.628 5.593-5.722 5.081-5.805 4.567-5.879 4.05-5.943 3.532-5.998 3.016-6.042 2.499-6.078 1.983-6.104 1.472-6.121 0.963-6.128" fill-rule="evenodd" stroke="#000" stroke-width="16.735"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="23.642">
|
||||
<path d="m689.09-345.54c1.0337-28.608-10.861-56.249-31.613-75.813-38.017-39.631-90.98-60.852-142.52-77.03-123.47-34.737-256.26-37.263-380.85-6.6241-16.358 4.3132-32.202 10.316-48.423 15.085" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="7">
|
||||
<path d="m-706.72 320.62c0.545 2.675 2.076 5.141 4.461 7.166" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g stroke-width="23.642">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m585.82 146.9 7.043-5.9 6.603-6.044 6.154-6.178 5.701-6.3 5.243-6.412 4.78-6.513 4.315-6.603 3.846-6.6819 3.377-6.7509 2.906-6.8089 2.437-6.8563 1.967-6.8932 1.5-6.9198 1.035-6.9362" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-702.25 327.78 436.27 370.23" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-216.63 698.28 802.44-551.37" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-265.98 698.01 2.647 1.985 2.96 1.729 3.236 1.451 3.469 1.155 3.66 0.842 3.803 0.518 3.896 0.188 3.94-0.145 3.932-0.477 3.873-0.801 3.765-1.116 3.608-1.415 3.405-1.696 3.157-1.954" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
</g>
|
||||
<g stroke-width="7">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m585.82 146.9 43.13-410.77" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m574.94-261.16-853.5 480.13" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m574.94-261.16-0.928 9.912" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-278.56 218.97 0.389 3.99" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-278.56 218.97-468.64-326.25" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-747.19-107.28 830.02-361.8" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m82.83-469.08 492.11 207.93" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-668.36-112.6 361.31 243.42" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-307.05 130.83 759.87-408.69" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.82-277.86-378.25-163.29" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m74.568-441.15-742.93 328.55" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-747.19-107.28 3.213 16.64" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m74.568-441.15 5e-3 0.418" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m74.574-440.73-742.48 328.44" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.34-277.6-377.77-163.13" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-706.72 320.62-85.575-421.04" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="23.642">
|
||||
<path d="m689.09-345.54-46.372 400.65" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g stroke-width="7">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.729-461.2-0.1061-7.58" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-737.88-111.34-1.624-8.513" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m102.96-460.58-0.053-8.573" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m568.68-263.8 0.861-9.342" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="23.642">
|
||||
<path d="m-702.25 327.78-85.416-421.77" fill-rule="evenodd" stroke="#000" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="7">
|
||||
<path d="m-265.98 698.01-48.367-454.82" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="7">
|
||||
<path d="m-216.63 698.28-42.423-455.12" fill-rule="evenodd" stroke="#000"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
@ -0,0 +1,233 @@
|
||||
<svg width="297mm" height="210mm" version="1.1" viewBox="0 0 297 210" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<style>.measure-arrow
|
||||
{
|
||||
}
|
||||
.measure-label
|
||||
{
|
||||
|
||||
}
|
||||
.measure-line
|
||||
{
|
||||
}</style>
|
||||
<defs>
|
||||
<filter id="filter23020" x="-.0065432" y="-.010843" width="1.0154" height="1.0218" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="0.091856593"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill-rule="evenodd" filter="url(#filter23020)" font-family="'Sans Serif'" font-size="31.75px" font-weight="400" opacity=".6" stroke="#f0f0f0" stroke-linejoin="bevel">
|
||||
<g fill-opacity="0" stroke-linecap="square">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m689.09-345.54-46.372 400.65-1.035 6.9362-1.5 6.9198-1.967 6.8932-2.437 6.8563-2.906 6.8089-3.377 6.7509-3.846 6.6819-4.315 6.603-4.78 6.513-5.243 6.412-5.701 6.3-6.154 6.178-6.603 6.044-7.043 5.9-802.44 551.37-3.157 1.954-3.405 1.696-3.608 1.415-3.765 1.116-3.873 0.801-3.932 0.477-3.94 0.145-3.896-0.188-3.803-0.518-3.66-0.842-3.469-1.155-3.236-1.451-2.96-1.729-2.647-1.985-436.27-370.23c-2.385-2.025-3.916-4.491-4.461-7.166l-85.575-421.04-0.16-1.347 0.059-1.376 0.278-1.395 0.495-1.407 0.708-1.409 0.916-1.401 1.117-1.384 1.311-1.358 1.495-1.325 1.671-1.281 1.834-1.231 1.986-1.172 2.125-1.106 2.249-1.032 861.89-371.28 48.004-15.222 52.718-11.28 56.097-7.145 58.133-2.889 58.815 1.424 58.127 5.732 56.046 9.967 52.549 14.056 47.614 17.916 41.234 21.449 33.432 24.54 24.272 27.068 13.886 28.891 2.487 29.875" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m628.94-263.86 7.59-5.29 7.1-5.413 6.603-5.525 6.1-5.628 5.593-5.722 5.081-5.805 4.567-5.879 4.05-5.943 3.532-5.998 3.016-6.042 2.499-6.078 1.983-6.104 1.472-6.121 0.963-6.128-2.487-29.875-13.886-28.891-24.272-27.068-33.432-24.54-41.234-21.449-47.614-17.916-52.549-14.056-56.046-9.967-58.127-5.732-58.815-1.424-58.133 2.889-56.097 7.145-52.718 11.28-48.004 15.222-861.89 371.28-2.249 1.032-2.125 1.106-1.986 1.172-1.834 1.231-1.671 1.281-1.495 1.325-1.311 1.358-1.117 1.384-0.916 1.401-0.708 1.409-0.495 1.407-0.278 1.395-0.059 1.376 0.16 1.347c0.491 2.4092 2.077 4.6251 4.62 6.4381l473.32 337.17 2.926 1.837 3.283 1.597 3.597 1.336 3.867 1.058 4.086 0.766 4.252 0.462 4.364 0.154 4.419-0.158 4.417-0.467 4.356-0.77 4.24-1.062 4.069-1.342 3.846-1.601 3.573-1.842 888-507.02" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.623-468.78-804.13 348.92-2.205 1.019-2.082 1.091-1.945 1.156-1.797 1.213-1.635 1.263-1.465 1.306-1.285 1.339-1.095 1.365-0.898 1.382-0.696 1.391-0.488 1.39-0.278 1.381-0.064 1.362 0.151 1.335c0.487 2.4917 2.135 4.7859 4.794 6.6524l6.509 4.5673 436.99 306.64 2.897 1.792 3.249 1.558 3.559 1.303 3.824 1.031 4.04 0.746 4.203 0.45 4.312 0.148 4.366-0.156 4.362-0.457 4.302-0.753 4.187-1.039 4.017-1.31 3.795-1.565 3.525-1.799 826.36-467.19 1.117-0.632c1.962-1.115 3.533-2.391 4.645-3.77 1.098-1.383 1.735-2.865 1.887-4.383l0.023-1.025-0.124-1.03-0.271-1.03-0.415-1.026-0.559-1.017-0.698-1.003-0.835-0.984-0.967-0.961-1.095-0.933-1.217-0.901-1.333-0.865-1.443-0.825-1.547-0.781-1.643-0.734-466.62-196.01-2.26-0.845-2.4705-0.729-2.6498-0.603-2.7965-0.47-2.9083-0.33-2.9845-0.188-3.0238-0.043-3.026 0.102-2.9909 0.247-2.919 0.388-2.8113 0.525-2.6687 0.655-2.4931 0.777-2.2865 0.89" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m568.68-263.8 6.264 2.646-853.5 480.13-468.64-326.25 9.316-4.06 802.61-349.85 18.101-7.89 20.135 8.507 465.71 196.78" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-216.63 698.28 802.44-551.37 43.13-410.77-888 507.02 42.423 455.12" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.34-277.6 0.476-0.256-378.25-163.29-742.7 328.7 361.08 243.27 759.39-408.43" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.34-277.6-377.77-163.13-742.48 328.44 360.86 243.12 759.39-408.43" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-702.25 327.78 436.27 370.23-48.367-454.82-473.32-337.17 85.416 421.77" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-265.98 698.01 2.647 1.985 2.96 1.729 3.236 1.451 3.469 1.155 3.66 0.842 3.803 0.518 3.896 0.188 3.94-0.145 3.932-0.477 3.873-0.801 3.765-1.116 3.608-1.415 3.405-1.696 3.157-1.954-42.423-455.12-3.573 1.842-3.846 1.601-4.069 1.342-4.24 1.062-4.356 0.77-4.417 0.467-4.419 0.158-4.364-0.154-4.252-0.462-4.086-0.766-3.867-1.058-3.597-1.336-3.283-1.597-2.926-1.837 48.367 454.82" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m585.82 146.9 43.13-410.77 7.59-5.29 7.1-5.413 6.603-5.525 6.1-5.628 5.593-5.722 5.081-5.805 4.567-5.879 4.05-5.943 3.532-5.998 3.016-6.042 2.499-6.078 1.983-6.104 1.472-6.121 0.963-6.128-46.372 400.65-1.035 6.9362-1.5 6.9198-1.967 6.8932-2.437 6.8563-2.906 6.8089-3.377 6.7509-3.846 6.6819-4.315 6.603-4.78 6.513-5.243 6.412-5.701 6.3-6.154 6.178-6.603 6.044-7.043 5.9" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m574.94-261.16-0.928 9.912-826.36 467.19-3.525 1.799-3.795 1.565-4.017 1.31-4.187 1.039-4.302 0.753-4.362 0.457-4.366 0.156-4.312-0.148-4.203-0.45-4.04-0.746-3.824-1.031-3.559-1.303-3.249-1.558-2.897-1.792-436.99-306.64-3.213-16.64 468.64 326.25 0.389 3.99-0.389-3.99 853.5-480.13" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-737.88-111.34 802.61-349.85-0.1061-7.58-804.13 348.92 1.624 8.513" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m102.96-460.58 465.71 196.78 0.861-9.342-466.62-196.01 0.053 8.573" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-706.72 320.62c0.545 2.675 2.076 5.141 4.461 7.166l-85.416-421.77c-2.543-1.813-4.129-4.0289-4.62-6.4381l85.575 421.04" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m74.568-441.15 5e-3 0.418-742.71 328.28 742.7-328.7" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.729-461.2 18.101-7.89 20.135 8.507-0.053-8.573-2.26-0.845-2.4705-0.729-2.6498-0.603-2.7965-0.47-2.9083-0.33-2.9845-0.188-3.0238-0.043-3.026 0.102-2.9909 0.247-2.919 0.388-2.8113 0.525-2.6687 0.655-2.4931 0.777-2.2865 0.89 0.1061 7.58" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-747.19-107.28 9.316-4.06-1.624-8.513-2.205 1.019-2.082 1.091-1.945 1.156-1.797 1.213-1.635 1.263-1.465 1.306-1.285 1.339-1.095 1.365-0.898 1.382-0.696 1.391-0.488 1.39-0.278 1.381-0.064 1.362 0.151 1.335c0.487 2.4917 2.135 4.7859 4.794 6.6524l6.509 4.5673-3.213-16.64" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.34-277.6 0.476-0.256-378.24-163.08 377.77 163.34" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m568.68-263.8 6.264 2.646-0.928 9.912 1.117-0.632c1.962-1.115 3.533-2.391 4.645-3.77 1.098-1.383 1.735-2.865 1.887-4.383l0.023-1.025-0.124-1.03-0.271-1.03-0.415-1.026-0.559-1.017-0.698-1.003-0.835-0.984-0.967-0.961-1.095-0.933-1.217-0.901-1.333-0.865-1.443-0.825-1.547-0.781-1.643-0.734-0.861 9.342" fill-rule="evenodd" stroke="#f0f0f0" vector-effect="non-scaling-stroke"/>
|
||||
</g>
|
||||
</g>
|
||||
<g fill="none" stroke-linecap="round">
|
||||
<g stroke-width="7">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.623-468.78-804.13 348.92" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.623-468.78 2.2865-0.89 2.4931-0.777 2.6687-0.655 2.8113-0.525 2.919-0.388 2.9909-0.247 3.026-0.102 3.0238 0.043 2.9845 0.188 2.9083 0.33 2.7965 0.47 2.6498 0.603 2.4705 0.729 2.26 0.845" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-739.5-119.86-2.205 1.019-2.082 1.091-1.945 1.156-1.797 1.213-1.635 1.263-1.465 1.306-1.285 1.339-1.095 1.365-0.898 1.382-0.696 1.391-0.488 1.39-0.278 1.381-0.064 1.362 0.151 1.335" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-755.28-101.86c0.487 2.4917 2.135 4.7859 4.794 6.6524" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m569.54-273.14-466.62-196.01" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-750.49-95.21 443.5 311.2" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m575.13-251.88c1.962-1.115 3.533-2.391 4.645-3.77 1.098-1.383 1.735-2.865 1.887-4.383" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m581.66-260.03 0.023-1.025-0.124-1.03-0.271-1.03-0.415-1.026-0.559-1.017-0.698-1.003-0.835-0.984-0.967-0.961-1.095-0.933-1.217-0.901-1.333-0.865-1.443-0.825-1.547-0.781-1.643-0.734" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-306.99 215.99 2.897 1.792 3.249 1.558 3.559 1.303 3.824 1.031 4.04 0.746 4.203 0.45 4.312 0.148 4.366-0.156 4.362-0.457 4.302-0.753 4.187-1.039 4.017-1.31 3.795-1.565 3.525-1.799" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-252.35 215.94 827.48-467.82" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="16.735">
|
||||
<path d="m85.68-489.92-861.89 371.28" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="16.735"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="16.735">
|
||||
<path d="m-776.21-118.65-2.249 1.032-2.125 1.106-1.986 1.172-1.834 1.231-1.671 1.281-1.495 1.325-1.311 1.358-1.117 1.384-0.916 1.401-0.708 1.409-0.495 1.407-0.278 1.395-0.059 1.376 0.16 1.347" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="16.735"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="7">
|
||||
<path d="m-792.29-100.42c0.491 2.4092 2.077 4.6251 4.62 6.4381" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g>
|
||||
<g stroke-width="23.642">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-787.67-93.985 473.32 337.17" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-314.35 243.19 2.926 1.837 3.283 1.597 3.597 1.336 3.867 1.058 4.086 0.766 4.252 0.462 4.364 0.154 4.419-0.158 4.417-0.467 4.356-0.77 4.24-1.062 4.069-1.342 3.846-1.601 3.573-1.842" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-259.05 243.16 888-507.02" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="16.735">
|
||||
<path d="m628.94-263.86 7.59-5.29 7.1-5.413 6.603-5.525 6.1-5.628 5.593-5.722 5.081-5.805 4.567-5.879 4.05-5.943 3.532-5.998 3.016-6.042 2.499-6.078 1.983-6.104 1.472-6.121 0.963-6.128" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="16.735"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="23.642">
|
||||
<path d="m689.09-345.54c1.0337-28.608-10.861-56.249-31.613-75.813-38.017-39.631-90.98-60.852-142.52-77.03-123.47-34.737-256.26-37.263-380.85-6.6241-16.358 4.3132-32.202 10.316-48.423 15.085" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="7">
|
||||
<path d="m-706.72 320.62c0.545 2.675 2.076 5.141 4.461 7.166" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g stroke-width="23.642">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m585.82 146.9 7.043-5.9 6.603-6.044 6.154-6.178 5.701-6.3 5.243-6.412 4.78-6.513 4.315-6.603 3.846-6.6819 3.377-6.7509 2.906-6.8089 2.437-6.8563 1.967-6.8932 1.5-6.9198 1.035-6.9362" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-702.25 327.78 436.27 370.23" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-216.63 698.28 802.44-551.37" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-265.98 698.01 2.647 1.985 2.96 1.729 3.236 1.451 3.469 1.155 3.66 0.842 3.803 0.518 3.896 0.188 3.94-0.145 3.932-0.477 3.873-0.801 3.765-1.116 3.608-1.415 3.405-1.696 3.157-1.954" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
</g>
|
||||
<g stroke-width="7">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m585.82 146.9 43.13-410.77" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m574.94-261.16-853.5 480.13" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m574.94-261.16-0.928 9.912" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-278.56 218.97 0.389 3.99" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-278.56 218.97-468.64-326.25" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-747.19-107.28 830.02-361.8" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m82.83-469.08 492.11 207.93" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-668.36-112.6 361.31 243.42" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-307.05 130.83 759.87-408.69" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.82-277.86-378.25-163.29" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m74.568-441.15-742.93 328.55" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-747.19-107.28 3.213 16.64" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m74.568-441.15 5e-3 0.418" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m74.574-440.73-742.48 328.44" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m452.34-277.6-377.77-163.13" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-706.72 320.62-85.575-421.04" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="23.642">
|
||||
<path d="m689.09-345.54-46.372 400.65" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g stroke-width="7">
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m64.729-461.2-0.1061-7.58" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m-737.88-111.34-1.624-8.513" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m102.96-460.58-0.053-8.573" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)">
|
||||
<path d="m568.68-263.8 0.861-9.342" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="23.642">
|
||||
<path d="m-702.25 327.78-85.416-421.77" fill-rule="evenodd" stroke="#f0f0f0" stroke-width="23.642"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="7">
|
||||
<path d="m-265.98 698.01-48.367-454.82" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
<g transform="matrix(.16521 0 0 .13265 151.49 93.253)" stroke-width="7">
|
||||
<path d="m-216.63 698.28-42.423-455.12" fill-rule="evenodd" stroke="#f0f0f0"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 134 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 170 KiB |
@ -0,0 +1 @@
|
||||
<svg width="612" height="612" version="1.1" viewBox="0 0 612 612" xmlns="http://www.w3.org/2000/svg"><title>nakamochi logo</title><rect x="25.614" y="25.614" width="560.77" height="560.77" fill="#f7931a" stroke="#f7931a" stroke-width="51.229"/><path d="m391.05 274.39v147.62h-36.238c-0.10955-45.856 0.22212-91.719-0.17054-137.57-0.63333-13.457-3.7204-27.441-11.263-38.726-5.7502-7.9783-13.757-14.306-23.321-16.921-11.544-2.9368-24.175-2.4527-35.071 2.6744-8.1663 3.832-14.622 10.959-19.255 18.61-10.667 20.901-8.1825 44.791-8.4971 67.465v104.47h-36.238v-147.62c-0.67305-37.646 27.262-73.024 63.777-81.735 35.897-9.787 76.841 7.2086 95.011 39.728 7.3788 12.684 11.295 27.334 11.265 42.006" fill="#fff"/></svg>
|
After Width: | Height: | Size: 709 B |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 196 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 499 B |
After Width: | Height: | Size: 602 B |
@ -0,0 +1,22 @@
|
||||
{%- extends "layout.html" %}
|
||||
{%- set_global landing = true -%}
|
||||
{%- set_global current_url = "/404" -%}
|
||||
{%- block meta_title %}{{ trans(key="not_found") ~ " | " ~ config.title }}{% endblock meta_title %}
|
||||
{%- block multilang %}{{ nav_macro::lang_picker(transarr=[]) }}{% endblock multilang %}
|
||||
|
||||
{%- block header %}
|
||||
<nav>
|
||||
<ul class="logonav">
|
||||
<li class="logo">
|
||||
<a href="{{get_url(path='/', lang=lang)}}"><img src="/assets/nakamochi-bogen.svg" alt="nakamochi logo"></a>
|
||||
</li>
|
||||
<li class="logo-name">nakamochi</li>
|
||||
</ul>
|
||||
{{- nav_macro::main_nav() }}
|
||||
</nav>
|
||||
<h1>{{ trans(key="not_found") }}</h1>
|
||||
{%- endblock header %}
|
||||
|
||||
{%- block main %}
|
||||
<img src="/assets/pro-question-mark.png">
|
||||
{%- endblock main %}
|
@ -0,0 +1,20 @@
|
||||
{%- extends "layout.html" %}
|
||||
{%- block meta_title %}{{ section.title }}{% endblock meta_title %}
|
||||
{%- block multilang %}{{ nav_macro::lang_picker(transarr=section.translations) }}{% endblock multilang %}
|
||||
|
||||
{%- block header %}
|
||||
<nav>
|
||||
<ul class="logonav">
|
||||
<li class="logo landing"><img src="/assets/nakamochi-bogen.svg" alt="nakamochi logo"></li>
|
||||
</ul>
|
||||
{{- nav_macro::main_nav() }}
|
||||
</nav>
|
||||
<hgroup>
|
||||
<h1>{{ section.title }}</h1>
|
||||
<h2>{{ section.extra.tagline }}</h2>
|
||||
</hgroup>
|
||||
{%- endblock header %}
|
||||
|
||||
{%- block main %}
|
||||
{{ section.content | safe }}
|
||||
{%- endblock main %}
|
@ -0,0 +1,55 @@
|
||||
{%- import "nav.html" as nav_macro -%}
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{lang}}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="{{ config.description }}">
|
||||
<title>{% block meta_title %}{{ config.title }}{% endblock %}</title>
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
{%- if current_url is defined -%}
|
||||
<link rel="canonical" href="{{current_url|safe}}">
|
||||
{%- endif -%}
|
||||
<link rel="stylesheet" href="/css/bundle.css">
|
||||
</head>
|
||||
{%- set landing = false %}
|
||||
{%- if section.extra.landing is defined %}{% set landing = section.extra.landing %}
|
||||
{%- elif page.extra.landing is defined %}{% set landing = page.extra.landing %}
|
||||
{%- endif %}
|
||||
<body {%- if landing %} class="bg-landing"{% endif %}>
|
||||
<div class="container langpicker">
|
||||
{%- block multilang %}{% endblock multilang -%}
|
||||
</div>
|
||||
<header class="container top">
|
||||
{%- block header %}{%- endblock header %}
|
||||
</header>
|
||||
<main class="container top">
|
||||
{%- block main %}{% endblock main -%}
|
||||
</main>
|
||||
|
||||
<footer class="container">
|
||||
<hr/>
|
||||
<nav>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://git.qcode.ch/nakamochi/" target="_blank">
|
||||
<svg role="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>sources</title><path d="M23.546 10.93L13.067.452c-.604-.603-1.582-.603-2.188 0L8.708 2.627l2.76 2.76c.645-.215 1.379-.07 1.889.441.516.515.658 1.258.438 1.9l2.658 2.66c.645-.223 1.387-.078 1.9.435.721.72.721 1.884 0 2.604-.719.719-1.881.719-2.6 0-.539-.541-.674-1.337-.404-1.996L12.86 8.955v6.525c.176.086.342.203.488.348.713.721.713 1.883 0 2.6-.719.721-1.889.721-2.609 0-.719-.719-.719-1.879 0-2.598.182-.18.387-.316.605-.406V8.835c-.217-.091-.424-.222-.6-.401-.545-.545-.676-1.342-.396-2.009L7.636 3.7.45 10.881c-.6.605-.6 1.584 0 2.189l10.48 10.477c.604.604 1.582.604 2.186 0l10.43-10.43c.605-.603.605-1.582 0-2.187"/></svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/nakamochi/" target="_blank" rel="noreferrer noopener">
|
||||
<svg role="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub mirrors</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<p><small class="muted">
|
||||
<a href="https://qeles.ch" target="_blank">qeles AG</a> •
|
||||
except where otherwise noted, content on this site is licensed under a
|
||||
<a href="https://creativecommons.org/licenses/by/4.0/" rel="license noreferrer noopener">CC BY 4.0</a> license.
|
||||
</small></p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,37 @@
|
||||
{%- macro main_nav() %}
|
||||
<ul class="mainnav">
|
||||
{%- for item in config.extra.sitenav -%}
|
||||
{%- set url = get_url(path=item.path, lang=lang) -%}
|
||||
{%- set is_curr_url = false -%}
|
||||
{%- if current_url is defined -%}
|
||||
{%- set is_curr_url = url == current_url -%}
|
||||
{%- endif -%}
|
||||
{%- if is_curr_url %}
|
||||
<li class="muted">{{item[lang]}}</li>
|
||||
{%- else %}
|
||||
<li><a href="{{url|safe}}">{{item[lang]}}</a></li>
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{%- endmacro -%}
|
||||
|
||||
{%- macro lang_picker(transarr) -%}
|
||||
{%- set currlang = lang -%}
|
||||
{%- set translations = [] -%}
|
||||
{%- for t in transarr -%}
|
||||
{%- if t.title -%}
|
||||
{%- set_global translations = translations | concat(with=t) -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
<ul class="translist">
|
||||
{%- for t in translations -%}
|
||||
{%- if t.lang != currlang -%}
|
||||
<li><a href="{{t.permalink|safe}}" hreflang="{{t.lang}}" title="{{t.title}}">{{t.lang|upper}}</a></li>
|
||||
{%- else -%}
|
||||
<li>{{t.lang|upper}}</li>
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
<!-- no translations -->
|
||||
{%- endfor -%}
|
||||
</ul>
|
||||
{%- endmacro -%}
|
@ -0,0 +1,20 @@
|
||||
{%- extends "layout.html" %}
|
||||
{%- block meta_title %}{{ page.title ~ " | " ~ config.title }}{% endblock meta_title %}
|
||||
{%- block multilang %}{{ nav_macro::lang_picker(transarr=page.translations) }}{% endblock multilang %}
|
||||
|
||||
{%- block header %}
|
||||
<nav>
|
||||
<ul class="logonav">
|
||||
<li class="logo">
|
||||
<a href="{{get_url(path='/', lang=lang)}}"><img src="/assets/nakamochi-bogen.svg" alt="nakamochi logo"></a>
|
||||
</li>
|
||||
<li class="logo-name">nakamochi</li>
|
||||
</ul>
|
||||
{{- nav_macro::main_nav() }}
|
||||
</nav>
|
||||
<h1>{{ page.title }}</h1>
|
||||
{%- endblock header %}
|
||||
|
||||
{%- block main %}
|
||||
{{ page.content | safe }}
|
||||
{%- endblock main %}
|
@ -0,0 +1,4 @@
|
||||
<figure class="screenshot">
|
||||
<img src="{{src|safe}}" alt="{{caption}}">
|
||||
<figcaption>{{caption}}</figcaption>
|
||||
</figure>
|