release: v1.2.6-pre1
- Various website improvements (CSS) - Adjust keyring path use the new relative path: pgp/anonymousplanet.asc - 02-sign.yml: use a fpr match to lock a specific key - 02-sign.yml: quick mkdir -p repo/export before copying files to the dir ^_^ - Moved the Acknowledgements section to the bottom - COM Class Identifiers (CLSID/GUID) (NEW) - Windows Global Device Identifier (GDID) (NEW) - USB bus telemetry (device enumeration history) (NEW) - Glossary (`docs/includes/glossary.md`) and removed inline expansions where applicable Signed-off-by: nopeitsnothing <no@anonymousplanet.net>
@@ -13,7 +13,6 @@ schema:
|
||||
sameAs:
|
||||
- https://github.com/Anon-Planet
|
||||
- https://opencollective.com/anonymousplanetorg
|
||||
- https://mastodon.social/@anonymousplanet
|
||||
---
|
||||
|
||||
<div class="hero-block">
|
||||
@@ -47,6 +46,28 @@ We are high-risk individuals. We do this because it matters.
|
||||
|
||||
---
|
||||
|
||||
## Maintainers { #maintainers }
|
||||
|
||||
<div class="maintainer-bio">
|
||||
<img src="../media/nope-keyoxide-profile.png" alt="nope" class="maintainer-avatar">
|
||||
<div class="maintainer-text" markdown="1">
|
||||
|
||||
Nope -- background in signals intelligence (SIGINT), software engineering, "hacking", privacy software engineering, operational security, drone piloting and repair. Years ago, I realized there really wasn't a definitive guide for whistleblowers, without having to dig on various sites including darknet locations that could provide potentially incorrect or misleading information. I haven't stopped working on that since. We're the people this guide is written for - the threat model isn't hypothetical for us. I stay anonymous by necessity, not preference. Previously this project was ran by Lena, the founder and a few other people with various backgrounds. Obviously, not much else can be said, but we are active members of the intelligence community (IC) and privacy/security circles. We strive to be the definitive source, not just a glorified recommendation website.
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="maintainer-bio">
|
||||
<img src="../media/daskolburn-keyoxide-profile.png" alt="daskolburn" class="maintainer-avatar">
|
||||
<div class="maintainer-text" markdown="1">
|
||||
|
||||
<>
|
||||
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
---
|
||||
|
||||
## Community { #community }
|
||||
|
||||
<div class="index-grid">
|
||||
@@ -62,7 +83,7 @@ We are high-risk individuals. We do this because it matters.
|
||||
<div class="index-card">
|
||||
<h3 class="index-card__title">Mastodon</h3>
|
||||
<p class="index-card__body">Follow us for announcements on the Fediverse.</p>
|
||||
<a href="https://ioc.exchange/@anonymousplanet" class="index-card__link" rel="me">@anonymousplanet@ioc.exchange</a>
|
||||
<a href="https://ioc.exchange/@unknown" class="index-card__link" rel="me">@unknown@ioc.exchange</a>
|
||||
</div>
|
||||
|
||||
<div class="index-card">
|
||||
|
||||
@@ -11,7 +11,6 @@ schema:
|
||||
sameAs:
|
||||
- https://github.com/Anon-Planet
|
||||
- https://opencollective.com/anonymousplanetorg
|
||||
- https://mastodon.social/@anonymousplanet
|
||||
---
|
||||
|
||||
<div class="hero-block">
|
||||
@@ -31,6 +30,29 @@ schema:
|
||||
<!-- Change nothing below this line, please. -->
|
||||
---
|
||||
|
||||
## [v1.2.6-pre1]
|
||||
|
||||
!!! Note "Meta"
|
||||
|
||||
- Various website improvements (CSS)
|
||||
|
||||
!!! Note "Changed"
|
||||
|
||||
- Adjust keyring path use the new relative path: pgp/anonymousplanet.asc
|
||||
- 02-sign.yml: use a fpr match to lock a specific key
|
||||
- 02-sign.yml: quick mkdir -p repo/export before copying files to the dir
|
||||
- Moved the Acknowledgements section to the bottom
|
||||
|
||||
!!! Note "Added"
|
||||
|
||||
- COM Class Identifiers (CLSID/GUID) (NEW)
|
||||
- Windows Global Device Identifier (GDID) (NEW)
|
||||
- USB bus telemetry (device enumeration history) (NEW)
|
||||
|
||||
!!! Note "Improved"
|
||||
|
||||
- Glossary (`docs/includes/glossary.md`) and removed inline expansions where applicable
|
||||
|
||||
## [v1.2.5]
|
||||
|
||||
!!! Note "Meta"
|
||||
@@ -148,6 +170,7 @@ First automated PDF build and the start of the CI pipeline.
|
||||
|
||||
---
|
||||
|
||||
[v1.2.6-pre1]: https://github.com/Anon-Planet/thgtoa/releases/tag/v1.2.6-pre1
|
||||
[v1.2.5]: https://github.com/Anon-Planet/thgtoa/releases/tag/v1.2.5
|
||||
[v1.2.4]: https://github.com/Anon-Planet/thgtoa/releases/tag/v1.2.4
|
||||
[v1.2.3]: https://github.com/Anon-Planet/thgtoa/releases/tag/v1.2.3
|
||||
|
||||
@@ -19,7 +19,7 @@ hide:
|
||||
</div>
|
||||
|
||||
<div class="donate-goals-block">
|
||||
<h2 class="donate-goals-title">Current Goals</h2>
|
||||
<h3 class="donate-goals-title">Current Goals</h3>
|
||||
<ul class="donate-goals-list">
|
||||
<li class="donate-goal donate-goal--done"><span class="donate-goal-icon">✓</span> VPS for .onion hosting <strong>funded</strong></li>
|
||||
<li class="donate-goal donate-goal--done"><span class="donate-goal-icon">✓</span> Domain <code>anonymousplanet.net</code> — <strong>secured until 2029</strong></li>
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
<!-- Abbreviation definitions. No prose. -->
|
||||
<!-- markdownlint-disable MD041 -->
|
||||
|
||||
*[AEM]: Anti Evil Maid
|
||||
*[AES]: Advanced Encryption Standard
|
||||
*[AML]: Anti-Money Laundering
|
||||
*[APT]: Advanced Persistent Threat
|
||||
*[ARP]: Address Resolution Protocol
|
||||
*[ASLR]: Address Space Layout Randomization
|
||||
*[BGP]: Border Gateway Protocol
|
||||
*[BIOS]: Basic Input/Output System
|
||||
*[CA]: Certificate Authority
|
||||
*[CDN]: Content Delivery Network
|
||||
*[CLI]: Command Line Interface
|
||||
*[CLSID]: COM Class Identifiers
|
||||
*[CNAME]: Canonical Name (DNS record type)
|
||||
*[CRL]: Certificate Revocation List
|
||||
*[CSP]: Content Security Policy
|
||||
*[CT]: Certificate Transparency
|
||||
*[CVE]: Common Vulnerabilities and Exposures
|
||||
*[DDoS]: Distributed Denial of Service
|
||||
*[DEA]: Disposable Email Address
|
||||
*[DEP]: Data Execution Prevention
|
||||
*[DHCP]: Dynamic Host Configuration Protocol
|
||||
*[DNS]: Domain Name System
|
||||
*[DNSSEC]: Domain Name System Security Extensions
|
||||
*[DoH]: DNS over HTTPS
|
||||
*[DoS]: Denial of Service
|
||||
*[DoT]: DNS over TLS
|
||||
*[DRM]: Digital Rights Management
|
||||
*[DSP]: Digital Signal Processor
|
||||
*[ECH]: Encrypted Client Hello
|
||||
*[ECPA]: Electronic Communications Privacy Act
|
||||
*[EFF]: Electronic Frontier Foundation
|
||||
*[EIDV]: Electronic Identity Verification
|
||||
*[EXIF]: Exchangeable Image File Format
|
||||
*[FIDO]: Fast Identity Online
|
||||
*[FISA]: Foreign Intelligence Surveillance Act
|
||||
*[FOSS]: Free and Open-Source Software
|
||||
*[FSB]: Federal Security Service (Russian Federation)
|
||||
*[GDID]: Global Device Identifier (Windows OS)
|
||||
*[GDPR]: General Data Protection Regulation
|
||||
*[GEOINT]: Geospatial Intelligence
|
||||
*[GFW]: Great Firewall of China
|
||||
*[GSM]: Global System for Mobile Communications
|
||||
*[HUMINT]: Human Intelligence
|
||||
*[IANAL]: I Am Not A Lawyer
|
||||
*[ICMP]: Internet Control Message Protocol
|
||||
*[IMEI]: International Mobile Equipment Identity
|
||||
*[IMSI]: International Mobile Subscriber Identity
|
||||
*[IoT]: Internet of Things
|
||||
*[ISP]: Internet Service Provider
|
||||
*[IV]: Initialization Vector
|
||||
*[KDF]: Key Derivation Function
|
||||
*[KYC]: Know Your Customer
|
||||
*[LUKS]: Linux Unified Key Setup
|
||||
*[MAC]: Media Access Control (hardware address) or Message Authentication Code
|
||||
*[MITM]: Man-in-the-Middle
|
||||
*[MNO]: Mobile Network Operator
|
||||
*[MTU]: Maximum Transmission Unit
|
||||
*[NAT]: Network Address Translation
|
||||
*[NIST]: National Institute of Standards and Technology
|
||||
*[NLP]: Natural Language Processing
|
||||
*[NTFS]: New Technology File System
|
||||
*[OEM]: Original Equipment Manufacturer
|
||||
*[OPSec]: Operational Security
|
||||
*[OPSEC]: Operational Security
|
||||
*[OSINT]: Open-Source Intelligence
|
||||
*[OTP]: One-Time Password or One-Time Pad
|
||||
*[PGP]: Pretty Good Privacy
|
||||
*[PKI]: Public Key Infrastructure
|
||||
*[POP]: Point of Presence
|
||||
*[PQ]: Post-Quantum
|
||||
*[PQXDH]: Post-Quantum Extended Diffie-Hellman
|
||||
*[PSP]: A hardware-based security subsystem built into AMD processors
|
||||
*[PTR]: Pointer (DNS record type)
|
||||
*[QUIC]: Quick UDP Internet Connections
|
||||
*[RF]: Radio Frequency
|
||||
*[RSA]: Rivest-Shamir-Adleman (asymmetric cryptographic algorithm)
|
||||
*[SDR]: Software-Defined Radio
|
||||
*[SIGINT]: Signals Intelligence
|
||||
*[SNI]: Server Name Indication
|
||||
*[SOC]: System on a Chip or Security Operations Center
|
||||
*[SSH]: Secure Shell
|
||||
*[SSL]: Secure Sockets Layer
|
||||
*[SSID]: Service Set Identifier (Wi-Fi network name)
|
||||
*[TCP]: Transmission Control Protocol
|
||||
*[TLS]: Transport Layer Security
|
||||
*[TOR]: The Onion Router
|
||||
*[Tor]: The Onion Router
|
||||
*[TPM]: Trusted Platform Module
|
||||
*[UA]: User Agent
|
||||
*[UEFI]: Unified Extensible Firmware Interface
|
||||
*[UUID]: Universally Unique Identifier
|
||||
*[VoIP]: Voice over Internet Protocol
|
||||
*[VPN]: Virtual Private Network
|
||||
*[WebRTC]: Web Real-Time Communication
|
||||
*[XMPP]: Extensible Messaging and Presence Protocol
|
||||
*[XMP]: Extensible Metadata Platform
|
||||
*[XSS]: Cross-Site Scripting
|
||||
*[XTLS]: XTLS Protocol (Xray TLS)
|
||||
@@ -7,15 +7,12 @@ schema:
|
||||
"@id": https://anonymousplanet.net/
|
||||
name: Anonymous Planet
|
||||
url: https://anonymousplanet.net/
|
||||
logo: media/profile.png
|
||||
logo: media/profile.svg
|
||||
sameAs:
|
||||
- https://github.com/Anon-Planet
|
||||
- https://opencollective.com/anonymousplanetorg
|
||||
- https://mastodon.social/@anonymousplanet
|
||||
---
|
||||
|
||||
<div class="hero-block">
|
||||
<div class="hero-eyebrow">Anonymous Planet presents</div>
|
||||
<h1 class="hero-title">The Hitchhiker's Guide<br><span class="hero-subtitle">to Online Anonymity (and Privacy)</span></h1>
|
||||
<p class="hero-tagline">
|
||||
You are being tracked. Your metadata is being sold. Your identity is a product. This guide is your manual out.
|
||||
|
||||
|
After Width: | Height: | Size: 120 KiB |
@@ -0,0 +1,79 @@
|
||||
<svg width="100%" viewBox="0 0 680 260" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Anonymous Planet</title>
|
||||
<desc>A hacker terminal style logo: an eye shape with a curved orbital arc passing through it and a small satellite riding the arc, set inside a bracket frame</desc>
|
||||
<style>
|
||||
.ap-frame { stroke: #0a8a3d80; }
|
||||
.ap-fill { fill: #eef6ee; }
|
||||
.ap-line { stroke: #0a8a3d; }
|
||||
.ap-line-faint { stroke: #0a8a3d80; }
|
||||
.ap-core { fill: #007a3d; }
|
||||
.ap-accent { stroke: #007a3d; }
|
||||
.ap-accent-fill { fill: #007a3d; }
|
||||
|
||||
[data-md-color-scheme="slate"] .ap-frame { stroke: #0b850080; }
|
||||
[data-md-color-scheme="slate"] .ap-fill { fill: #0f1f0f; }
|
||||
[data-md-color-scheme="slate"] .ap-line { stroke: #039634; }
|
||||
[data-md-color-scheme="slate"] .ap-line-faint { stroke: #0b850080; }
|
||||
[data-md-color-scheme="slate"] .ap-core { fill: #00f080; }
|
||||
[data-md-color-scheme="slate"] .ap-accent { stroke: #00f080; }
|
||||
[data-md-color-scheme="slate"] .ap-accent-fill { fill: #00f080; }
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.ap-frame { stroke: #0b850080; }
|
||||
.ap-fill { fill: #0f1f0f; }
|
||||
.ap-line { stroke: #039634; }
|
||||
.ap-line-faint { stroke: #0b850080; }
|
||||
.ap-core { fill: #00f080; }
|
||||
.ap-accent { stroke: #00f080; }
|
||||
.ap-accent-fill { fill: #00f080; }
|
||||
}
|
||||
</style>
|
||||
<defs>
|
||||
<marker id="ap-arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="context-stroke" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></marker>
|
||||
</defs>
|
||||
|
||||
<path class="ap-frame" d="M250 40 L230 40 L230 110" fill="none" stroke-width="1.5"/>
|
||||
<path class="ap-frame" d="M430 40 L450 40 L450 110" fill="none" stroke-width="1.5"/>
|
||||
<path class="ap-frame" d="M250 220 L230 220 L230 150" fill="none" stroke-width="1.5"/>
|
||||
<path class="ap-frame" d="M430 220 L450 220 L450 150" fill="none" stroke-width="1.5"/>
|
||||
|
||||
<path class="ap-fill ap-line" d="M255 130 C 285 85, 395 85, 425 130 C 395 175, 285 175, 255 130 Z" stroke-width="0.75"/>
|
||||
|
||||
<circle class="ap-line" cx="340" cy="130" r="32" fill="none" stroke-width="0.5"/>
|
||||
<circle class="ap-core" cx="340" cy="130" r="13" opacity="0.10"/>
|
||||
<circle class="ap-line" cx="340" cy="130" r="13" fill="none" stroke-width="0.5"/>
|
||||
|
||||
<g class="ap-line-faint" stroke-width="0.5">
|
||||
<line x1="340" y1="98" x2="340" y2="106"/>
|
||||
<line x1="340" y1="154" x2="340" y2="162"/>
|
||||
<line x1="308" y1="130" x2="316" y2="130"/>
|
||||
<line x1="364" y1="130" x2="372" y2="130"/>
|
||||
</g>
|
||||
|
||||
<circle class="ap-core" cx="340" cy="130" r="2.5"/>
|
||||
|
||||
<g>
|
||||
<circle class="ap-fill ap-line" cx="255" cy="130" r="3" stroke-width="1"/>
|
||||
<circle class="ap-fill ap-line" cx="425" cy="130" r="3" stroke-width="1"/>
|
||||
<circle class="ap-fill ap-line" cx="295" cy="98" r="2.5" stroke-width="1"/>
|
||||
<circle class="ap-fill ap-line" cx="385" cy="98" r="2.5" stroke-width="1"/>
|
||||
<circle class="ap-fill ap-line" cx="295" cy="162" r="2.5" stroke-width="1"/>
|
||||
<circle class="ap-fill ap-line" cx="385" cy="162" r="2.5" stroke-width="1"/>
|
||||
</g>
|
||||
|
||||
<path class="ap-accent" d="M225 185 C 300 130, 380 130, 455 75" fill="none" stroke-width="2" stroke-linecap="round"/>
|
||||
|
||||
<circle class="ap-accent-fill" cx="225" cy="185" r="3"/>
|
||||
<circle class="ap-accent-fill" cx="455" cy="75" r="3"/>
|
||||
|
||||
<g transform="translate(403, 95) rotate(-32)">
|
||||
<rect class="ap-fill ap-accent" x="-7" y="-5" width="14" height="10" rx="1.5" stroke-width="1"/>
|
||||
<rect class="ap-accent" x="-22" y="-2" width="12" height="4" fill="none" stroke-width="0.75"/>
|
||||
<line class="ap-accent" x1="-22" y1="0" x2="-10" y2="0" stroke-width="0.5"/>
|
||||
<rect class="ap-accent" x="10" y="-2" width="12" height="4" fill="none" stroke-width="0.75"/>
|
||||
<line class="ap-accent" x1="10" y1="0" x2="22" y2="0" stroke-width="0.5"/>
|
||||
<line class="ap-accent" x1="0" y1="-5" x2="0" y2="-11" stroke-width="0.75"/>
|
||||
<circle class="ap-accent-fill" cx="0" cy="-11" r="1.5"/>
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
@@ -0,0 +1,7 @@
|
||||
<svg width="220" height="220" viewBox="0 0 220 220" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Anonymous Planet favicon mark: a simplified eye outline with a solid pupil</title>
|
||||
<desc>A minimal eye outline with a filled pupil, simplified for legibility at very small sizes such as a browser favicon.</desc>
|
||||
<path d="M 25,110 Q 110,64 195,110 Q 110,156 25,110 Z" fill="none" stroke="#00f080" stroke-width="6" stroke-linejoin="round"/>
|
||||
<circle cx="110" cy="110" r="17" fill="#060d06" stroke="#00f080" stroke-width="3"/>
|
||||
<circle cx="110" cy="110" r="5" fill="#00f080"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 594 B |
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,7 @@
|
||||
<svg width="220" height="220" viewBox="0 0 220 220" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Anonymous Planet favicon mark: a simplified eye outline with a solid pupil</title>
|
||||
<desc>A minimal eye outline with a filled pupil, simplified for legibility at very small sizes such as a browser favicon.</desc>
|
||||
<path d="M 25,110 Q 110,64 195,110 Q 110,156 25,110 Z" fill="none" stroke="#4a3800" stroke-width="6" stroke-linejoin="round"/>
|
||||
<circle cx="110" cy="110" r="17" fill="#1a1a1a" stroke="#4a3800" stroke-width="3"/>
|
||||
<circle cx="110" cy="110" r="5" fill="#4a3800"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 594 B |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1,36 @@
|
||||
<svg width="220" height="150" viewBox="0 0 220 150" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Anonymous Planet mark: a simplified eye with a striated iris and crosshair reticle</title>
|
||||
<desc>A standalone eye mark with a radially striated iris and a crosshair target reticle over the pupil, used as a compact icon without the full seal border.</desc>
|
||||
<path d="M 29,72 Q 110,29 191,72" fill="none" stroke="#00f080" stroke-width="1" opacity="0.45"/>
|
||||
<path d="M 25,80 Q 110,34 195,80 Q 110,126 25,80 Z" fill="none" stroke="#00f080" stroke-width="2.6" stroke-linejoin="round"/>
|
||||
<g stroke="#00f080" stroke-width="1" opacity="0.6" stroke-linecap="round">
|
||||
<line x1="30.4" y1="83.9" x2="18.7" y2="89.1"/>
|
||||
<line x1="34.3" y1="89.1" x2="25.2" y2="97.0"/>
|
||||
<line x1="39.6" y1="93.0" x2="33.0" y2="103.5"/>
|
||||
</g>
|
||||
<circle cx="110" cy="80" r="32" fill="none" stroke="#00f080" stroke-width="0.8" opacity="0.5"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(0.0 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(22.5 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(45.0 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(67.5 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(90.0 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(112.5 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(135.0 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(157.5 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(180.0 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(202.5 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(225.0 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(247.5 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(270.0 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(292.5 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(315.0 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(337.5 110 80)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<circle cx="110" cy="80" r="17" fill="#060d06"/>
|
||||
<g stroke="#00f080" stroke-width="1.6" stroke-linecap="round">
|
||||
<line x1="110" y1="56" x2="110" y2="70"/>
|
||||
<line x1="110" y1="90" x2="110" y2="104"/>
|
||||
<line x1="86" y1="80" x2="100" y2="80"/>
|
||||
<line x1="134" y1="80" x2="120" y2="80"/>
|
||||
</g>
|
||||
<circle cx="110" cy="80" r="2.1" fill="#00f080"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,36 @@
|
||||
<svg width="220" height="150" viewBox="0 0 220 150" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Anonymous Planet mark: a simplified eye with a striated iris and crosshair reticle</title>
|
||||
<desc>A standalone eye mark with a radially striated iris and a crosshair target reticle over the pupil, used as a compact icon without the full seal border.</desc>
|
||||
<path d="M 29,72 Q 110,29 191,72" fill="none" stroke="#4a3800" stroke-width="1" opacity="0.45"/>
|
||||
<path d="M 25,80 Q 110,34 195,80 Q 110,126 25,80 Z" fill="none" stroke="#4a3800" stroke-width="2.6" stroke-linejoin="round"/>
|
||||
<g stroke="#4a3800" stroke-width="1" opacity="0.6" stroke-linecap="round">
|
||||
<line x1="30.4" y1="83.9" x2="18.7" y2="89.1"/>
|
||||
<line x1="34.3" y1="89.1" x2="25.2" y2="97.0"/>
|
||||
<line x1="39.6" y1="93.0" x2="33.0" y2="103.5"/>
|
||||
</g>
|
||||
<circle cx="110" cy="80" r="32" fill="none" stroke="#4a3800" stroke-width="0.8" opacity="0.5"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(0.0 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(22.5 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(45.0 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(67.5 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(90.0 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(112.5 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(135.0 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(157.5 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(180.0 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(202.5 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(225.0 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(247.5 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(270.0 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(292.5 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(315.0 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="110" y1="63" x2="110" y2="48" transform="rotate(337.5 110 80)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<circle cx="110" cy="80" r="17" fill="#1a1a1a"/>
|
||||
<g stroke="#4a3800" stroke-width="1.6" stroke-linecap="round">
|
||||
<line x1="110" y1="56" x2="110" y2="70"/>
|
||||
<line x1="110" y1="90" x2="110" y2="104"/>
|
||||
<line x1="86" y1="80" x2="100" y2="80"/>
|
||||
<line x1="134" y1="80" x2="120" y2="80"/>
|
||||
</g>
|
||||
<circle cx="110" cy="80" r="2.1" fill="#4a3800"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,102 @@
|
||||
<svg width="340" height="340" viewBox="0 0 340 340" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Anonymous Planet seal: an eye with a striated iris and crosshair reticle, under watch by two satellites, circuit traces and a subtle grid inside a ringed badge</title>
|
||||
<desc>A circular seal mark. A horizontal eye sits at the center with a radially striated iris and a crosshair target reticle over the pupil. Two satellites float at different angles nearby, unconnected to the eye, representing observation from multiple vantage points. Short circuit-trace lines with node pads radiate toward the ring, and a faint coordinate grid sits behind everything, all inside a double-ring circular border with tick marks at the four cardinal points.</desc>
|
||||
<defs>
|
||||
<clipPath id="circleClip"><circle cx="170" cy="170" r="141"/></clipPath>
|
||||
<clipPath id="eyeClip"><path d="M 85,170 Q 170,124 255,170 Q 170,216 85,170 Z"/></clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#circleClip)" stroke="#00f080" stroke-width="0.5" opacity="0.08">
|
||||
<line x1="66" y1="20" x2="66" y2="320"/>
|
||||
<line x1="20" y1="66" x2="320" y2="66"/>
|
||||
<line x1="118" y1="20" x2="118" y2="320"/>
|
||||
<line x1="20" y1="118" x2="320" y2="118"/>
|
||||
<line x1="170" y1="20" x2="170" y2="320"/>
|
||||
<line x1="20" y1="170" x2="320" y2="170"/>
|
||||
<line x1="222" y1="20" x2="222" y2="320"/>
|
||||
<line x1="20" y1="222" x2="320" y2="222"/>
|
||||
<line x1="274" y1="20" x2="274" y2="320"/>
|
||||
<line x1="20" y1="274" x2="320" y2="274"/>
|
||||
</g>
|
||||
<g>
|
||||
<line x1="224" y1="264" x2="237" y2="286" stroke="#00f080" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="237" cy="286" r="2.2" fill="#00f080"/>
|
||||
<circle cx="224" cy="264" r="1.1" fill="#00f080"/>
|
||||
<line x1="116" y1="264" x2="103" y2="286" stroke="#00f080" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="103" cy="286" r="2.2" fill="#00f080"/>
|
||||
<circle cx="116" cy="264" r="1.1" fill="#00f080"/>
|
||||
<line x1="77" y1="224" x2="54" y2="237" stroke="#00f080" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="54" cy="237" r="2.2" fill="#00f080"/>
|
||||
<circle cx="77" cy="224" r="1.1" fill="#00f080"/>
|
||||
<line x1="77" y1="116" x2="54" y2="103" stroke="#00f080" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="54" cy="103" r="2.2" fill="#00f080"/>
|
||||
<circle cx="77" cy="116" r="1.1" fill="#00f080"/>
|
||||
<line x1="142" y1="66" x2="135" y2="41" stroke="#00f080" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="135" cy="41" r="2.2" fill="#00f080"/>
|
||||
<circle cx="142" cy="66" r="1.1" fill="#00f080"/>
|
||||
<line x1="224" y1="77" x2="237" y2="54" stroke="#00f080" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="237" cy="54" r="2.2" fill="#00f080"/>
|
||||
<circle cx="224" cy="77" r="1.1" fill="#00f080"/>
|
||||
</g>
|
||||
<circle cx="170" cy="170" r="150" fill="none" stroke="#00f080" stroke-width="1.6"/>
|
||||
<circle cx="170" cy="170" r="141" fill="none" stroke="#00f080" stroke-width="0.6" opacity="0.5"/>
|
||||
<g stroke="#00f080" stroke-width="1.4" opacity="0.8" stroke-linecap="round">
|
||||
<line x1="170" y1="20" x2="170" y2="32"/>
|
||||
<line x1="170" y1="308" x2="170" y2="320"/>
|
||||
<line x1="20" y1="170" x2="32" y2="170"/>
|
||||
<line x1="308" y1="170" x2="320" y2="170"/>
|
||||
</g>
|
||||
<g clip-path="url(#eyeClip)">
|
||||
<line x1="85" y1="130" x2="255" y2="130" stroke="#00f080" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="145" x2="255" y2="145" stroke="#00f080" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="160" x2="255" y2="160" stroke="#00f080" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="180" x2="255" y2="180" stroke="#00f080" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="195" x2="255" y2="195" stroke="#00f080" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="210" x2="255" y2="210" stroke="#00f080" stroke-width="0.5" opacity="0.15"/>
|
||||
</g>
|
||||
<path d="M 89,162 Q 170,119 251,162" fill="none" stroke="#00f080" stroke-width="1" opacity="0.45"/>
|
||||
<path d="M 85,170 Q 170,124 255,170 Q 170,216 85,170 Z" fill="none" stroke="#00f080" stroke-width="2.6" stroke-linejoin="round"/>
|
||||
<g stroke="#00f080" stroke-width="1" opacity="0.6" stroke-linecap="round">
|
||||
<line x1="90.4" y1="173.9" x2="78.7" y2="179.1"/>
|
||||
<line x1="94.3" y1="179.1" x2="85.2" y2="187.0"/>
|
||||
<line x1="99.6" y1="183.0" x2="93.0" y2="193.5"/>
|
||||
</g>
|
||||
<circle cx="170" cy="170" r="32" fill="none" stroke="#00f080" stroke-width="0.8" opacity="0.5"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(0.0 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(22.5 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(45.0 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(67.5 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(90.0 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(112.5 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(135.0 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(157.5 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(180.0 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(202.5 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(225.0 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(247.5 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(270.0 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(292.5 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(315.0 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(337.5 170 170)" stroke="#00f080" stroke-width="0.7" opacity="0.55"/>
|
||||
<circle cx="170" cy="170" r="17" fill="#060d06"/>
|
||||
<g stroke="#00f080" stroke-width="1.6" stroke-linecap="round">
|
||||
<line x1="170" y1="146" x2="170" y2="160"/>
|
||||
<line x1="170" y1="180" x2="170" y2="194"/>
|
||||
<line x1="146" y1="170" x2="160" y2="170"/>
|
||||
<line x1="194" y1="170" x2="180" y2="170"/>
|
||||
</g>
|
||||
<circle cx="170" cy="170" r="2.1" fill="#00f080"/>
|
||||
<g transform="translate(104,98) rotate(35)" stroke="#00f080" fill="#00f080" stroke-linecap="round">
|
||||
<rect x="-3.0" y="-3.0" width="6.0" height="6.0" rx="1.2" stroke="none"/>
|
||||
<rect x="-1.3" y="-9.0" width="2.6" height="6.0" rx="0.6" stroke="none" opacity="0.9"/>
|
||||
<rect x="-1.3" y="3.0" width="2.6" height="6.0" rx="0.6" stroke="none" opacity="0.9"/>
|
||||
<line x1="-3.0" y1="0" x2="-10.4" y2="0" stroke-width="1.1"/>
|
||||
<line x1="3.0" y1="0" x2="10.4" y2="0" stroke-width="1.1"/>
|
||||
</g>
|
||||
<g transform="translate(242,237) rotate(-60)" stroke="#00f080" fill="#00f080" stroke-linecap="round">
|
||||
<rect x="-3.0" y="-3.0" width="6.0" height="6.0" rx="1.2" stroke="none"/>
|
||||
<rect x="-1.3" y="-9.0" width="2.6" height="6.0" rx="0.6" stroke="none" opacity="0.9"/>
|
||||
<rect x="-1.3" y="3.0" width="2.6" height="6.0" rx="0.6" stroke="none" opacity="0.9"/>
|
||||
<line x1="-3.0" y1="0" x2="-10.4" y2="0" stroke-width="1.1"/>
|
||||
<line x1="3.0" y1="0" x2="10.4" y2="0" stroke-width="1.1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.7 KiB |
@@ -0,0 +1,102 @@
|
||||
<svg width="340" height="340" viewBox="0 0 340 340" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Anonymous Planet seal: an eye with a striated iris and crosshair reticle, under watch by two satellites, circuit traces and a subtle grid inside a ringed badge</title>
|
||||
<desc>A circular seal mark. A horizontal eye sits at the center with a radially striated iris and a crosshair target reticle over the pupil. Two satellites float at different angles nearby, unconnected to the eye, representing observation from multiple vantage points. Short circuit-trace lines with node pads radiate toward the ring, and a faint coordinate grid sits behind everything, all inside a double-ring circular border with tick marks at the four cardinal points.</desc>
|
||||
<defs>
|
||||
<clipPath id="circleClip"><circle cx="170" cy="170" r="141"/></clipPath>
|
||||
<clipPath id="eyeClip"><path d="M 85,170 Q 170,124 255,170 Q 170,216 85,170 Z"/></clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#circleClip)" stroke="#4a3800" stroke-width="0.5" opacity="0.08">
|
||||
<line x1="66" y1="20" x2="66" y2="320"/>
|
||||
<line x1="20" y1="66" x2="320" y2="66"/>
|
||||
<line x1="118" y1="20" x2="118" y2="320"/>
|
||||
<line x1="20" y1="118" x2="320" y2="118"/>
|
||||
<line x1="170" y1="20" x2="170" y2="320"/>
|
||||
<line x1="20" y1="170" x2="320" y2="170"/>
|
||||
<line x1="222" y1="20" x2="222" y2="320"/>
|
||||
<line x1="20" y1="222" x2="320" y2="222"/>
|
||||
<line x1="274" y1="20" x2="274" y2="320"/>
|
||||
<line x1="20" y1="274" x2="320" y2="274"/>
|
||||
</g>
|
||||
<g>
|
||||
<line x1="224" y1="264" x2="237" y2="286" stroke="#4a3800" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="237" cy="286" r="2.2" fill="#4a3800"/>
|
||||
<circle cx="224" cy="264" r="1.1" fill="#4a3800"/>
|
||||
<line x1="116" y1="264" x2="103" y2="286" stroke="#4a3800" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="103" cy="286" r="2.2" fill="#4a3800"/>
|
||||
<circle cx="116" cy="264" r="1.1" fill="#4a3800"/>
|
||||
<line x1="77" y1="224" x2="54" y2="237" stroke="#4a3800" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="54" cy="237" r="2.2" fill="#4a3800"/>
|
||||
<circle cx="77" cy="224" r="1.1" fill="#4a3800"/>
|
||||
<line x1="77" y1="116" x2="54" y2="103" stroke="#4a3800" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="54" cy="103" r="2.2" fill="#4a3800"/>
|
||||
<circle cx="77" cy="116" r="1.1" fill="#4a3800"/>
|
||||
<line x1="142" y1="66" x2="135" y2="41" stroke="#4a3800" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="135" cy="41" r="2.2" fill="#4a3800"/>
|
||||
<circle cx="142" cy="66" r="1.1" fill="#4a3800"/>
|
||||
<line x1="224" y1="77" x2="237" y2="54" stroke="#4a3800" stroke-width="1" opacity="0.5"/>
|
||||
<circle cx="237" cy="54" r="2.2" fill="#4a3800"/>
|
||||
<circle cx="224" cy="77" r="1.1" fill="#4a3800"/>
|
||||
</g>
|
||||
<circle cx="170" cy="170" r="150" fill="none" stroke="#4a3800" stroke-width="1.6"/>
|
||||
<circle cx="170" cy="170" r="141" fill="none" stroke="#4a3800" stroke-width="0.6" opacity="0.5"/>
|
||||
<g stroke="#4a3800" stroke-width="1.4" opacity="0.8" stroke-linecap="round">
|
||||
<line x1="170" y1="20" x2="170" y2="32"/>
|
||||
<line x1="170" y1="308" x2="170" y2="320"/>
|
||||
<line x1="20" y1="170" x2="32" y2="170"/>
|
||||
<line x1="308" y1="170" x2="320" y2="170"/>
|
||||
</g>
|
||||
<g clip-path="url(#eyeClip)">
|
||||
<line x1="85" y1="130" x2="255" y2="130" stroke="#4a3800" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="145" x2="255" y2="145" stroke="#4a3800" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="160" x2="255" y2="160" stroke="#4a3800" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="180" x2="255" y2="180" stroke="#4a3800" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="195" x2="255" y2="195" stroke="#4a3800" stroke-width="0.5" opacity="0.15"/>
|
||||
<line x1="85" y1="210" x2="255" y2="210" stroke="#4a3800" stroke-width="0.5" opacity="0.15"/>
|
||||
</g>
|
||||
<path d="M 89,162 Q 170,119 251,162" fill="none" stroke="#4a3800" stroke-width="1" opacity="0.45"/>
|
||||
<path d="M 85,170 Q 170,124 255,170 Q 170,216 85,170 Z" fill="none" stroke="#4a3800" stroke-width="2.6" stroke-linejoin="round"/>
|
||||
<g stroke="#4a3800" stroke-width="1" opacity="0.6" stroke-linecap="round">
|
||||
<line x1="90.4" y1="173.9" x2="78.7" y2="179.1"/>
|
||||
<line x1="94.3" y1="179.1" x2="85.2" y2="187.0"/>
|
||||
<line x1="99.6" y1="183.0" x2="93.0" y2="193.5"/>
|
||||
</g>
|
||||
<circle cx="170" cy="170" r="32" fill="none" stroke="#4a3800" stroke-width="0.8" opacity="0.5"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(0.0 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(22.5 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(45.0 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(67.5 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(90.0 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(112.5 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(135.0 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(157.5 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(180.0 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(202.5 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(225.0 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(247.5 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(270.0 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(292.5 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(315.0 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<line x1="170" y1="153" x2="170" y2="138" transform="rotate(337.5 170 170)" stroke="#4a3800" stroke-width="0.7" opacity="0.55"/>
|
||||
<circle cx="170" cy="170" r="17" fill="#1a1a1a"/>
|
||||
<g stroke="#4a3800" stroke-width="1.6" stroke-linecap="round">
|
||||
<line x1="170" y1="146" x2="170" y2="160"/>
|
||||
<line x1="170" y1="180" x2="170" y2="194"/>
|
||||
<line x1="146" y1="170" x2="160" y2="170"/>
|
||||
<line x1="194" y1="170" x2="180" y2="170"/>
|
||||
</g>
|
||||
<circle cx="170" cy="170" r="2.1" fill="#4a3800"/>
|
||||
<g transform="translate(104,98) rotate(35)" stroke="#4a3800" fill="#4a3800" stroke-linecap="round">
|
||||
<rect x="-3.0" y="-3.0" width="6.0" height="6.0" rx="1.2" stroke="none"/>
|
||||
<rect x="-1.3" y="-9.0" width="2.6" height="6.0" rx="0.6" stroke="none" opacity="0.9"/>
|
||||
<rect x="-1.3" y="3.0" width="2.6" height="6.0" rx="0.6" stroke="none" opacity="0.9"/>
|
||||
<line x1="-3.0" y1="0" x2="-10.4" y2="0" stroke-width="1.1"/>
|
||||
<line x1="3.0" y1="0" x2="10.4" y2="0" stroke-width="1.1"/>
|
||||
</g>
|
||||
<g transform="translate(242,237) rotate(-60)" stroke="#4a3800" fill="#4a3800" stroke-linecap="round">
|
||||
<rect x="-3.0" y="-3.0" width="6.0" height="6.0" rx="1.2" stroke="none"/>
|
||||
<rect x="-1.3" y="-9.0" width="2.6" height="6.0" rx="0.6" stroke="none" opacity="0.9"/>
|
||||
<rect x="-1.3" y="3.0" width="2.6" height="6.0" rx="0.6" stroke="none" opacity="0.9"/>
|
||||
<line x1="-3.0" y1="0" x2="-10.4" y2="0" stroke-width="1.1"/>
|
||||
<line x1="3.0" y1="0" x2="10.4" y2="0" stroke-width="1.1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
@@ -13,7 +13,6 @@ schema:
|
||||
sameAs:
|
||||
- https://github.com/Anon-Planet
|
||||
- https://opencollective.com/anonymousplanetorg
|
||||
- https://mastodon.social/@anonymousplanet
|
||||
---
|
||||
|
||||
<div class="hero-block">
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{% extends "base.html" %}
|
||||
<!-- for verifying Mastodon -->
|
||||
{% block extrahead %}
|
||||
<link href="https://ioc.exchange/@unknown" rel="me">
|
||||
<link rel="icon" id="ap-favicon" href="{{ 'media/profile.png' | url }}" sizes="any">
|
||||
<link rel="icon" type="image/
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,66 @@
|
||||
{% set class = "md-header" %}
|
||||
{% if "navigation.tabs.sticky" in features %}
|
||||
{% set class = class ~ " md-header--shadow md-header--lifted" %}
|
||||
{% elif "navigation.tabs" not in features %}
|
||||
{% set class = class ~ " md-header--shadow" %}
|
||||
{% endif %}
|
||||
<header class="{{ class }}" data-md-component="header">
|
||||
<nav class="md-header__inner md-grid" aria-label="{{ lang.t('header') }}">
|
||||
<a href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" title="{{ config.site_name | e }}" class="md-header__button md-logo" aria-label="{{ config.site_name }}" data-md-component="logo">
|
||||
{% include "partials/logo.html" %}
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
{% set icon = config.theme.icon.menu or "material/menu" %}
|
||||
{% include ".icons/" ~ icon ~ ".svg" %}
|
||||
</label>
|
||||
<div class="md-header__title" data-md-component="header-title">
|
||||
<div class="md-header__ellipsis">
|
||||
<div class="md-header__topic">
|
||||
<span class="md-ellipsis">
|
||||
{{ config.site_name }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-header__topic" data-md-component="header-topic">
|
||||
<span class="md-ellipsis">
|
||||
{% if page.meta and page.meta.title %}
|
||||
{{ page.meta.title }}
|
||||
{% else %}
|
||||
{{ page.title }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if config.theme.palette %}
|
||||
{% if not config.theme.palette is mapping %}
|
||||
{% include "partials/palette-toggle.html" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if not config.theme.palette is mapping %}
|
||||
{% include "partials/javascripts/palette.html" %}
|
||||
{% endif %}
|
||||
{% if config.extra.alternate %}
|
||||
{% include "partials/alternate.html" %}
|
||||
{% endif %}
|
||||
{% if "material/search" in config.plugins %}
|
||||
{% set search = config.plugins["material/search"] | attr("config") %}
|
||||
{% if search.enabled %}
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
{% set icon = config.theme.icon.search or "material/magnify" %}
|
||||
{% include ".icons/" ~ icon ~ ".svg" %}
|
||||
</label>
|
||||
{% include "partials/search.html" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if config.repo_url %}
|
||||
<div class="md-header__source">
|
||||
{% include "partials/source.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</nav>
|
||||
{% if "navigation.tabs.sticky" in features %}
|
||||
{% if "navigation.tabs" in features %}
|
||||
{% include "partials/tabs.html" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</header>
|
||||
@@ -0,0 +1,70 @@
|
||||
<div class="toggle-container toggle-container--header" id="ap-palette-toggle">
|
||||
<div class="toggle-wrap">
|
||||
<input type="checkbox" class="toggle-input" id="ap-toggle-input" aria-label="Turn the monitor on or off">
|
||||
<label for="ap-toggle-input" class="toggle-track">
|
||||
<div class="holo-glow"></div>
|
||||
<div class="track-lines"><div class="track-line"></div></div>
|
||||
<div class="toggle-thumb">
|
||||
<div class="thumb-core"></div>
|
||||
<div class="thumb-inner"></div>
|
||||
<div class="thumb-scan"></div>
|
||||
<div class="thumb-particles">
|
||||
<div class="thumb-particle"></div>
|
||||
<div class="thumb-particle"></div>
|
||||
<div class="thumb-particle"></div>
|
||||
<div class="thumb-particle"></div>
|
||||
<div class="thumb-particle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="energy-rings">
|
||||
<div class="energy-ring"></div>
|
||||
<div class="energy-ring"></div>
|
||||
<div class="energy-ring"></div>
|
||||
</div>
|
||||
<div class="toggle-data">
|
||||
<div class="data-text off">On</div>
|
||||
<div class="data-text on">Off</div>
|
||||
</div>
|
||||
<div class="status-indicator off"></div>
|
||||
<div class="status-indicator on"></div>
|
||||
<div class="interface-lines">
|
||||
<div class="interface-line"></div>
|
||||
<div class="interface-line"></div>
|
||||
<div class="interface-line"></div>
|
||||
<div class="interface-line"></div>
|
||||
<div class="interface-line"></div>
|
||||
<div class="interface-line"></div>
|
||||
</div>
|
||||
<div class="toggle-reflection"></div>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
var KEY = "__palette";
|
||||
var input = document.getElementById("ap-toggle-input");
|
||||
if (!input) return;
|
||||
|
||||
function currentScheme() {
|
||||
return document.body.getAttribute("data-md-color-scheme") || "slate";
|
||||
}
|
||||
|
||||
function applyScheme(scheme) {
|
||||
document.body.setAttribute("data-md-color-scheme", scheme);
|
||||
|
||||
var stored = { index: scheme === "default" ? 1 : 0 };
|
||||
try {
|
||||
localStorage.setItem(KEY, JSON.stringify(stored));
|
||||
} catch (e) {
|
||||
/* storage unavailable, fail silently */
|
||||
}
|
||||
}
|
||||
|
||||
input.checked = currentScheme() === "default";
|
||||
|
||||
input.addEventListener("change", function () {
|
||||
applyScheme(input.checked ? "default" : "slate");
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
@@ -13,7 +13,6 @@ schema:
|
||||
sameAs:
|
||||
- https://github.com/Anon-Planet
|
||||
- https://opencollective.com/anonymousplanetorg
|
||||
- https://mastodon.social/@anonymousplanet
|
||||
---
|
||||
|
||||
<div class="hero-block">
|
||||
|
||||
@@ -281,3 +281,33 @@ pre.highlight .hll {
|
||||
cursor: text;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
|
||||
.maintainer-bio {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 1.25em;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.maintainer-avatar {
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
border: 2px solid var(--border-color);
|
||||
flex-shrink: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.maintainer-text {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.maintainer-text p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.maintainer-bio {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,581 @@
|
||||
/* Adapted from a holographic toggle concept (Uiverse.io by reglobby), recolored to match site palette */
|
||||
|
||||
.toggle-container {
|
||||
position: relative;
|
||||
width: 150px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
perspective: 800px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.toggle-wrap {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
flex: 0 0 auto;
|
||||
align-self: stretch;
|
||||
height: 60px;
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
.toggle-input {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.toggle-track {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 30, 10, 0.4);
|
||||
border-radius: 30px;
|
||||
cursor: pointer;
|
||||
box-shadow:
|
||||
0 0 15px rgba(0, 240, 128, 0.15),
|
||||
inset 0 0 10px rgba(0, 0, 0, 0.8);
|
||||
overflow: hidden;
|
||||
backdrop-filter: blur(5px);
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
border: 1px solid rgba(0, 240, 128, 0.3);
|
||||
}
|
||||
|
||||
.toggle-track::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: radial-gradient(
|
||||
ellipse at center,
|
||||
rgba(0, 240, 128, 0.1) 0%,
|
||||
rgba(0, 0, 0, 0) 70%
|
||||
),
|
||||
linear-gradient(90deg, rgba(0, 90, 40, 0.1) 0%, rgba(0, 30, 10, 0.2) 100%);
|
||||
opacity: 0.6;
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
|
||||
.toggle-track::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
right: 2px;
|
||||
height: 10px;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(0, 240, 128, 0.3) 0%,
|
||||
rgba(3, 150, 52, 0.1) 100%
|
||||
);
|
||||
border-radius: 30px 30px 0 0;
|
||||
opacity: 0.7;
|
||||
filter: blur(1px);
|
||||
}
|
||||
|
||||
.track-lines {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
transform: translateY(-50%);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.track-line {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: repeating-linear-gradient(
|
||||
90deg,
|
||||
rgba(0, 240, 128, 0.3) 0px,
|
||||
rgba(0, 240, 128, 0.3) 5px,
|
||||
transparent 5px,
|
||||
transparent 15px
|
||||
);
|
||||
animation: track-line-move 3s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes track-line-move {
|
||||
0% { transform: translateX(0); }
|
||||
100% { transform: translateX(20px); }
|
||||
}
|
||||
|
||||
.toggle-thumb {
|
||||
position: absolute;
|
||||
width: 54px;
|
||||
height: 54px;
|
||||
left: 3px;
|
||||
top: 3px;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(10, 60, 30, 0.9) 0%,
|
||||
rgba(0, 30, 15, 0.8) 100%
|
||||
);
|
||||
border-radius: 50%;
|
||||
box-shadow:
|
||||
0 2px 15px rgba(0, 0, 0, 0.5),
|
||||
inset 0 0 15px rgba(0, 240, 128, 0.5);
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
z-index: 2;
|
||||
border: 1px solid rgba(0, 240, 128, 0.6);
|
||||
overflow: hidden;
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
.thumb-core {
|
||||
position: absolute;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(0, 240, 128, 0.6) 0%,
|
||||
rgba(3, 150, 52, 0.2) 100%
|
||||
);
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 0 20px rgba(0, 240, 128, 0.5);
|
||||
opacity: 0.9;
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
|
||||
.thumb-inner {
|
||||
position: absolute;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(255, 255, 255, 0.8) 0%,
|
||||
rgba(150, 255, 200, 0.5) 100%
|
||||
);
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 0 10px rgba(150, 255, 200, 0.7);
|
||||
opacity: 0.7;
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
animation: pulse 2s infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); }
|
||||
100% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1); }
|
||||
}
|
||||
|
||||
.thumb-scan {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 5px;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(0, 0, 0, 0) 0%,
|
||||
rgba(0, 240, 128, 0.5) 20%,
|
||||
rgba(255, 255, 255, 0.8) 50%,
|
||||
rgba(0, 240, 128, 0.5) 80%,
|
||||
rgba(0, 0, 0, 0) 100%
|
||||
);
|
||||
top: 0;
|
||||
left: 0;
|
||||
filter: blur(1px);
|
||||
animation: thumb-scan 2s linear infinite;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
@keyframes thumb-scan {
|
||||
0% { top: -5px; opacity: 0; }
|
||||
20% { opacity: 0.7; }
|
||||
80% { opacity: 0.7; }
|
||||
100% { top: 54px; opacity: 0; }
|
||||
}
|
||||
|
||||
.thumb-particles {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.thumb-particle {
|
||||
position: absolute;
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
background: rgba(150, 255, 200, 0.8);
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 0 5px rgba(150, 255, 200, 0.8);
|
||||
animation: thumb-particle-float 3s infinite ease-out;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.thumb-particle:nth-child(1) { top: 70%; left: 30%; animation-delay: 0.2s; }
|
||||
.thumb-particle:nth-child(2) { top: 60%; left: 60%; animation-delay: 0.6s; }
|
||||
.thumb-particle:nth-child(3) { top: 50%; left: 40%; animation-delay: 1s; }
|
||||
.thumb-particle:nth-child(4) { top: 40%; left: 70%; animation-delay: 1.4s; }
|
||||
.thumb-particle:nth-child(5) { top: 80%; left: 50%; animation-delay: 1.8s; }
|
||||
|
||||
@keyframes thumb-particle-float {
|
||||
0% { transform: translateY(0) scale(1); opacity: 0; }
|
||||
20% { opacity: 0.8; }
|
||||
100% { transform: translateY(-30px) scale(0); opacity: 0; }
|
||||
}
|
||||
|
||||
.toggle-data {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.data-text {
|
||||
position: absolute;
|
||||
font-family: var(--code-font, monospace);
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
letter-spacing: 1px;
|
||||
text-transform: uppercase;
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
.data-text.off {
|
||||
right: 12px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
opacity: 1;
|
||||
color: rgba(0, 240, 128, 0.6);
|
||||
text-shadow: 0 0 5px rgba(0, 240, 128, 0.4);
|
||||
}
|
||||
|
||||
.data-text.on {
|
||||
left: 15px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
opacity: 0;
|
||||
color: rgba(231, 217, 163, 0.7);
|
||||
text-shadow: 0 0 5px rgba(231, 217, 163, 0.4);
|
||||
}
|
||||
|
||||
.status-indicator {
|
||||
position: absolute;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(0, 240, 128, 0.8) 0%,
|
||||
rgba(3, 150, 52, 0.4) 100%
|
||||
);
|
||||
box-shadow: 0 0 10px rgba(0, 240, 128, 0.5);
|
||||
animation: blink 2s infinite alternate;
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
|
||||
.status-indicator.off { top: 25px; right: 15px; }
|
||||
|
||||
.status-indicator.on {
|
||||
top: 25px;
|
||||
left: 15px;
|
||||
opacity: 0;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(231, 217, 163, 0.8) 0%,
|
||||
rgba(180, 160, 100, 0.4) 100%
|
||||
);
|
||||
box-shadow: 0 0 10px rgba(231, 217, 163, 0.5);
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
0%, 100% { opacity: 0.5; transform: scale(0.9); }
|
||||
50% { opacity: 1; transform: scale(1.1); }
|
||||
}
|
||||
|
||||
.energy-rings {
|
||||
position: absolute;
|
||||
width: 54px;
|
||||
height: 54px;
|
||||
left: 3px;
|
||||
top: 3px;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
|
||||
.energy-ring {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 50%;
|
||||
border: 2px solid transparent;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.energy-ring:nth-child(1) {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-top-color: rgba(0, 240, 128, 0.5);
|
||||
border-right-color: rgba(0, 240, 128, 0.3);
|
||||
animation: spin 3s linear infinite;
|
||||
}
|
||||
|
||||
.energy-ring:nth-child(2) {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-bottom-color: rgba(0, 240, 128, 0.5);
|
||||
border-left-color: rgba(0, 240, 128, 0.3);
|
||||
animation: spin 2s linear infinite reverse;
|
||||
}
|
||||
|
||||
.energy-ring:nth-child(3) {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-left-color: rgba(0, 240, 128, 0.5);
|
||||
border-top-color: rgba(0, 240, 128, 0.3);
|
||||
animation: spin 1.5s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% { transform: translate(-50%, -50%) rotate(0deg); }
|
||||
100% { transform: translate(-50%, -50%) rotate(360deg); }
|
||||
}
|
||||
|
||||
.interface-lines {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.interface-line {
|
||||
position: absolute;
|
||||
background: rgba(0, 240, 128, 0.3);
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
|
||||
.interface-line:nth-child(1) { width: 15px; height: 1px; bottom: -5px; left: 20px; }
|
||||
.interface-line:nth-child(2) { width: 1px; height: 8px; bottom: -12px; left: 35px; }
|
||||
.interface-line:nth-child(3) { width: 25px; height: 1px; bottom: -12px; left: 35px; }
|
||||
.interface-line:nth-child(4) { width: 15px; height: 1px; bottom: -5px; right: 20px; }
|
||||
.interface-line:nth-child(5) { width: 1px; height: 8px; bottom: -12px; right: 35px; }
|
||||
.interface-line:nth-child(6) { width: 25px; height: 1px; bottom: -12px; right: 10px; }
|
||||
|
||||
.toggle-reflection {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(255, 255, 255, 0.1) 0%,
|
||||
rgba(255, 255, 255, 0) 40%
|
||||
);
|
||||
border-radius: 30px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.toggle-label {
|
||||
position: relative;
|
||||
margin-top: 20px;
|
||||
font-family: var(--code-font, monospace);
|
||||
font-size: 14px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 2px;
|
||||
text-align: center;
|
||||
color: rgba(0, 240, 128, 0.7);
|
||||
text-shadow: 0 0 10px rgba(0, 240, 128, 0.5);
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
|
||||
.holo-glow {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 30px;
|
||||
background: radial-gradient(
|
||||
ellipse at center,
|
||||
rgba(0, 240, 128, 0.2) 0%,
|
||||
rgba(0, 0, 0, 0) 70%
|
||||
);
|
||||
filter: blur(10px);
|
||||
opacity: 0.5;
|
||||
transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
/* checked state = "default" (light/printing press) scheme, amber accent.
|
||||
Bound to both :checked AND the page's actual data-md-color-scheme so the
|
||||
toggle can never visually drift from the real active palette (e.g. on
|
||||
load, before the init script has a chance to sync the checkbox). */
|
||||
body[data-md-color-scheme="default"] .toggle-input + .toggle-track,
|
||||
.toggle-input:checked + .toggle-track {
|
||||
background: rgba(40, 32, 10, 0.4);
|
||||
border-color: rgba(231, 217, 163, 0.4);
|
||||
box-shadow:
|
||||
0 0 15px rgba(231, 217, 163, 0.2),
|
||||
inset 0 0 10px rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track::before, body[data-md-color-scheme="default"] .toggle-input + .toggle-track::before {
|
||||
background: radial-gradient(
|
||||
ellipse at center,
|
||||
rgba(231, 217, 163, 0.1) 0%,
|
||||
rgba(0, 0, 0, 0) 70%
|
||||
),
|
||||
linear-gradient(90deg, rgba(120, 100, 50, 0.1) 0%, rgba(40, 32, 10, 0.2) 100%);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track::after, body[data-md-color-scheme="default"] .toggle-input + .toggle-track::after {
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(231, 217, 163, 0.3) 0%,
|
||||
rgba(180, 160, 100, 0.1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .track-line, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .track-line {
|
||||
background: repeating-linear-gradient(
|
||||
90deg,
|
||||
rgba(231, 217, 163, 0.3) 0px,
|
||||
rgba(231, 217, 163, 0.3) 5px,
|
||||
transparent 5px,
|
||||
transparent 15px
|
||||
);
|
||||
animation-direction: reverse;
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .toggle-thumb, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .toggle-thumb {
|
||||
left: calc(100% - 57px);
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(90, 75, 30, 0.9) 0%,
|
||||
rgba(50, 40, 15, 0.8) 100%
|
||||
);
|
||||
border-color: rgba(231, 217, 163, 0.6);
|
||||
box-shadow:
|
||||
0 2px 15px rgba(0, 0, 0, 0.5),
|
||||
inset 0 0 15px rgba(231, 217, 163, 0.5);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .thumb-core, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .thumb-core {
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(231, 217, 163, 0.6) 0%,
|
||||
rgba(120, 100, 50, 0.2) 100%
|
||||
);
|
||||
box-shadow: 0 0 20px rgba(231, 217, 163, 0.5);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .thumb-inner, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .thumb-inner {
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(255, 255, 255, 0.8) 0%,
|
||||
rgba(255, 240, 200, 0.5) 100%
|
||||
);
|
||||
box-shadow: 0 0 10px rgba(255, 240, 200, 0.7);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .thumb-scan, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .thumb-scan {
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(0, 0, 0, 0) 0%,
|
||||
rgba(231, 217, 163, 0.5) 20%,
|
||||
rgba(255, 255, 255, 0.8) 50%,
|
||||
rgba(231, 217, 163, 0.5) 80%,
|
||||
rgba(0, 0, 0, 0) 100%
|
||||
);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .thumb-particle, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .thumb-particle {
|
||||
background: rgba(255, 240, 200, 0.8);
|
||||
box-shadow: 0 0 5px rgba(255, 240, 200, 0.8);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .data-text.off, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .data-text.off { opacity: 0; }
|
||||
.toggle-input:checked + .toggle-track .data-text.on, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .data-text.on { opacity: 1; }
|
||||
.toggle-input:checked + .toggle-track .status-indicator.off, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .status-indicator.off { opacity: 0; }
|
||||
.toggle-input:checked + .toggle-track .status-indicator.on, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .status-indicator.on { opacity: 1; }
|
||||
.toggle-input:checked + .toggle-track .energy-rings, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .energy-rings { left: calc(100% - 57px); }
|
||||
.toggle-input:checked + .toggle-track .energy-ring, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .energy-ring { opacity: 1; }
|
||||
|
||||
.toggle-input:checked + .toggle-track .energy-ring:nth-child(1), body[data-md-color-scheme="default"] .toggle-input + .toggle-track .energy-ring:nth-child(1) {
|
||||
border-top-color: rgba(231, 217, 163, 0.5);
|
||||
border-right-color: rgba(231, 217, 163, 0.3);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .energy-ring:nth-child(2), body[data-md-color-scheme="default"] .toggle-input + .toggle-track .energy-ring:nth-child(2) {
|
||||
border-bottom-color: rgba(231, 217, 163, 0.5);
|
||||
border-left-color: rgba(231, 217, 163, 0.3);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .energy-ring:nth-child(3), body[data-md-color-scheme="default"] .toggle-input + .toggle-track .energy-ring:nth-child(3) {
|
||||
border-left-color: rgba(231, 217, 163, 0.5);
|
||||
border-top-color: rgba(231, 217, 163, 0.3);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .interface-line, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .interface-line {
|
||||
background: rgba(231, 217, 163, 0.3);
|
||||
}
|
||||
|
||||
.toggle-input:checked ~ .toggle-label, body[data-md-color-scheme="default"] .toggle-input ~ .toggle-label {
|
||||
color: rgba(231, 217, 163, 0.7);
|
||||
text-shadow: 0 0 10px rgba(231, 217, 163, 0.5);
|
||||
}
|
||||
|
||||
.toggle-input:checked + .toggle-track .holo-glow, body[data-md-color-scheme="default"] .toggle-input + .toggle-track .holo-glow {
|
||||
background: radial-gradient(
|
||||
ellipse at center,
|
||||
rgba(231, 217, 163, 0.2) 0%,
|
||||
rgba(0, 0, 0, 0) 70%
|
||||
);
|
||||
}
|
||||
|
||||
.toggle-input:hover + .toggle-track {
|
||||
box-shadow:
|
||||
0 0 20px rgba(0, 240, 128, 0.3),
|
||||
inset 0 0 10px rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
.toggle-input:checked:hover + .toggle-track, body[data-md-color-scheme="default"] .toggle-input:hover + .toggle-track {
|
||||
box-shadow:
|
||||
0 0 20px rgba(231, 217, 163, 0.3),
|
||||
inset 0 0 10px rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
.toggle-container--header {
|
||||
width: 80px;
|
||||
margin: 0 8px;
|
||||
}
|
||||
|
||||
.toggle-container--header .toggle-wrap {
|
||||
height: 32px;
|
||||
}
|
||||
.toggle-container--header .toggle-thumb,
|
||||
.toggle-container--header .energy-rings { width: 28px; height: 28px; }
|
||||
.toggle-container--header .thumb-core { width: 20px; height: 20px; }
|
||||
.toggle-container--header .thumb-inner { width: 12px; height: 12px; }
|
||||
.toggle-container--header .data-text { font-size: 8px; }
|
||||
.toggle-container--header .toggle-label { display: none; }
|
||||
.toggle-container--header .energy-ring:nth-child(1) { width: 26px; height: 26px; }
|
||||
.toggle-container--header .energy-ring:nth-child(2) { width: 20px; height: 20px; }
|
||||
.toggle-container--header .energy-ring:nth-child(3) { width: 15px; height: 15px; }
|
||||
|
||||
.toggle-input:checked + .toggle-track .toggle-thumb,
|
||||
.toggle-container--header .toggle-input:checked + .toggle-track .toggle-thumb,
|
||||
body[data-md-color-scheme="default"] .toggle-container--header .toggle-input + .toggle-track .toggle-thumb {
|
||||
left: calc(100% - 31px);
|
||||
}
|
||||
|
||||
.toggle-container--header .toggle-input:checked + .toggle-track .energy-rings,
|
||||
body[data-md-color-scheme="default"] .toggle-container--header .toggle-input + .toggle-track .energy-rings {
|
||||
left: calc(100% - 31px);
|
||||
}
|
||||